OSDN Git Service

b211b450b637551b14c981ae0560788a9ae636bc
[linuxjm/LDP_man-pages.git] / po4a / signal / po / ja.po
1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
6 msgid ""
7 msgstr ""
8 "Project-Id-Version: PACKAGE VERSION\n"
9 "POT-Creation-Date: 2013-07-15 16:08+0900\n"
10 "PO-Revision-Date: 2013-05-06 21:18+0900\n"
11 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Language-Team: LANGUAGE <LL@li.org>\n"
13 "Language: \n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17
18 #. type: TH
19 #: build/C/man3/bsd_signal.3:25
20 #, no-wrap
21 msgid "BSD_SIGNAL"
22 msgstr "BSD_SIGNAL"
23
24 #. type: TH
25 #: build/C/man3/bsd_signal.3:25
26 #, no-wrap
27 msgid "2009-03-15"
28 msgstr "2009-03-15"
29
30 #. type: TH
31 #: build/C/man3/bsd_signal.3:25 build/C/man2/eventfd.2:22
32 #: build/C/man2/getitimer.2:12 build/C/man3/gsignal.3:27
33 #: build/C/man2/kill.2:44 build/C/man2/killpg.2:42 build/C/man2/pause.2:30
34 #: build/C/man2/prctl.2:52 build/C/man3/profil.3:28 build/C/man3/psignal.3:30
35 #: build/C/man3/raise.3:29 build/C/man2/rt_sigqueueinfo.2:25
36 #: build/C/man2/s390_runtime_instr.2:25 build/C/man2/sgetmask.2:26
37 #: build/C/man2/sigaction.2:47 build/C/man2/sigaltstack.2:27
38 #: build/C/man7/sigevent.7:26 build/C/man3/siginterrupt.3:31
39 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
40 #: build/C/man2/signalfd.2:20 build/C/man3/sigpause.3:25
41 #: build/C/man2/sigpending.2:29 build/C/man2/sigprocmask.2:29
42 #: build/C/man3/sigqueue.3:28 build/C/man2/sigreturn.2:29
43 #: build/C/man3/sigset.3:26 build/C/man3/sigsetops.3:31
44 #: build/C/man2/sigsuspend.2:29 build/C/man3/sigvec.3:26
45 #: build/C/man3/sigwait.3:26 build/C/man2/sigwaitinfo.2:25
46 #: build/C/man3/sysv_signal.3:25 build/C/man2/timer_create.2:31
47 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
48 #: build/C/man2/timer_settime.2:26 build/C/man2/timerfd_create.2:21
49 #: build/C/man2/tkill.2:29 build/C/man2/wait.2:49 build/C/man2/wait4.2:33
50 #, no-wrap
51 msgid "Linux Programmer's Manual"
52 msgstr "Linux Programmer's Manual"
53
54 #. type: SH
55 #: build/C/man3/bsd_signal.3:26 build/C/man2/eventfd.2:23
56 #: build/C/man2/getitimer.2:13 build/C/man3/gsignal.3:28
57 #: build/C/man2/kill.2:45 build/C/man2/killpg.2:43 build/C/man2/pause.2:31
58 #: build/C/man2/prctl.2:53 build/C/man3/profil.3:29 build/C/man3/psignal.3:31
59 #: build/C/man3/raise.3:30 build/C/man2/rt_sigqueueinfo.2:26
60 #: build/C/man2/s390_runtime_instr.2:26 build/C/man2/sgetmask.2:27
61 #: build/C/man2/sigaction.2:48 build/C/man2/sigaltstack.2:28
62 #: build/C/man7/sigevent.7:27 build/C/man3/siginterrupt.3:32
63 #: build/C/man2/signal.2:37 build/C/man7/signal.7:47
64 #: build/C/man2/signalfd.2:21 build/C/man3/sigpause.3:26
65 #: build/C/man2/sigpending.2:30 build/C/man2/sigprocmask.2:30
66 #: build/C/man3/sigqueue.3:29 build/C/man2/sigreturn.2:30
67 #: build/C/man3/sigset.3:27 build/C/man3/sigsetops.3:32
68 #: build/C/man2/sigsuspend.2:30 build/C/man3/sigvec.3:27
69 #: build/C/man3/sigwait.3:27 build/C/man2/sigwaitinfo.2:26
70 #: build/C/man3/sysv_signal.3:26 build/C/man2/timer_create.2:32
71 #: build/C/man2/timer_delete.2:27 build/C/man2/timer_getoverrun.2:27
72 #: build/C/man2/timer_settime.2:27 build/C/man2/timerfd_create.2:22
73 #: build/C/man2/tkill.2:30 build/C/man2/wait.2:50 build/C/man2/wait4.2:34
74 #, no-wrap
75 msgid "NAME"
76 msgstr "名前"
77
78 #. type: Plain text
79 #: build/C/man3/bsd_signal.3:28
80 msgid "bsd_signal - signal handling with BSD semantics"
81 msgstr "bsd_signal - BSD 方式のシグナル処理"
82
83 #. type: SH
84 #: build/C/man3/bsd_signal.3:28 build/C/man2/eventfd.2:25
85 #: build/C/man2/getitimer.2:15 build/C/man3/gsignal.3:30
86 #: build/C/man2/kill.2:47 build/C/man2/killpg.2:45 build/C/man2/pause.2:33
87 #: build/C/man2/prctl.2:55 build/C/man3/profil.3:31 build/C/man3/psignal.3:33
88 #: build/C/man3/raise.3:32 build/C/man2/rt_sigqueueinfo.2:28
89 #: build/C/man2/s390_runtime_instr.2:28 build/C/man2/sgetmask.2:29
90 #: build/C/man2/sigaction.2:50 build/C/man2/sigaltstack.2:30
91 #: build/C/man7/sigevent.7:29 build/C/man3/siginterrupt.3:34
92 #: build/C/man2/signal.2:39 build/C/man2/signalfd.2:23
93 #: build/C/man3/sigpause.3:28 build/C/man2/sigpending.2:32
94 #: build/C/man2/sigprocmask.2:32 build/C/man3/sigqueue.3:31
95 #: build/C/man2/sigreturn.2:32 build/C/man3/sigset.3:29
96 #: build/C/man3/sigsetops.3:35 build/C/man2/sigsuspend.2:32
97 #: build/C/man3/sigvec.3:29 build/C/man3/sigwait.3:29
98 #: build/C/man2/sigwaitinfo.2:28 build/C/man3/sysv_signal.3:28
99 #: build/C/man2/timer_create.2:34 build/C/man2/timer_delete.2:29
100 #: build/C/man2/timer_getoverrun.2:29 build/C/man2/timer_settime.2:30
101 #: build/C/man2/timerfd_create.2:25 build/C/man2/tkill.2:32
102 #: build/C/man2/wait.2:52 build/C/man2/wait4.2:36
103 #, no-wrap
104 msgid "SYNOPSIS"
105 msgstr "書式"
106
107 #. type: Plain text
108 #: build/C/man3/bsd_signal.3:30
109 msgid "B<#define _XOPEN_SOURCE> /* See feature_test_macros(7) */"
110 msgstr "B<#define _XOPEN_SOURCE> /* feature_test_macros(7) 参照 */"
111
112 #. type: Plain text
113 #: build/C/man3/bsd_signal.3:32 build/C/man2/killpg.2:47
114 #: build/C/man2/sigaltstack.2:32 build/C/man2/signal.2:41
115 #: build/C/man2/sigpending.2:34 build/C/man2/sigprocmask.2:34
116 #: build/C/man3/sigqueue.3:33 build/C/man3/sigset.3:31
117 #: build/C/man3/sigsetops.3:37 build/C/man2/sigsuspend.2:34
118 #: build/C/man3/sigvec.3:31 build/C/man3/sysv_signal.3:32
119 msgid "B<#include E<lt>signal.hE<gt>>"
120 msgstr "B<#include E<lt>signal.hE<gt>>"
121
122 #. type: Plain text
123 #: build/C/man3/bsd_signal.3:34 build/C/man2/signal.2:43
124 #: build/C/man3/sigset.3:33 build/C/man3/sysv_signal.3:34
125 msgid "B<typedef void (*sighandler_t)(int);>"
126 msgstr "B<typedef void (*sighandler_t)(int);>"
127
128 #. type: Plain text
129 #: build/C/man3/bsd_signal.3:36
130 msgid ""
131 "B<sighandler_t bsd_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
132 msgstr ""
133 "B<sighandler_t bsd_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
134
135 #. type: SH
136 #: build/C/man3/bsd_signal.3:36 build/C/man2/eventfd.2:29
137 #: build/C/man2/getitimer.2:24 build/C/man3/gsignal.3:49
138 #: build/C/man2/kill.2:65 build/C/man2/killpg.2:60 build/C/man2/pause.2:37
139 #: build/C/man2/prctl.2:62 build/C/man3/profil.3:46 build/C/man3/psignal.3:56
140 #: build/C/man3/raise.3:38 build/C/man2/rt_sigqueueinfo.2:38
141 #: build/C/man2/s390_runtime_instr.2:34 build/C/man2/sgetmask.2:36
142 #: build/C/man2/sigaction.2:70 build/C/man2/sigaltstack.2:51
143 #: build/C/man7/sigevent.7:52 build/C/man3/siginterrupt.3:55
144 #: build/C/man2/signal.2:45 build/C/man7/signal.7:49
145 #: build/C/man2/signalfd.2:27 build/C/man3/sigpause.3:36
146 #: build/C/man2/sigpending.2:46 build/C/man2/sigprocmask.2:47
147 #: build/C/man3/sigqueue.3:43 build/C/man2/sigreturn.2:34
148 #: build/C/man3/sigset.3:58 build/C/man3/sigsetops.3:63
149 #: build/C/man2/sigsuspend.2:46 build/C/man3/sigvec.3:49
150 #: build/C/man3/sigwait.3:45 build/C/man2/sigwaitinfo.2:46
151 #: build/C/man3/sysv_signal.3:36 build/C/man2/timer_create.2:52
152 #: build/C/man2/timer_delete.2:45 build/C/man2/timer_getoverrun.2:45
153 #: build/C/man2/timer_settime.2:50 build/C/man2/timerfd_create.2:37
154 #: build/C/man2/tkill.2:41 build/C/man2/wait.2:81 build/C/man2/wait4.2:67
155 #, no-wrap
156 msgid "DESCRIPTION"
157 msgstr "説明"
158
159 #. type: Plain text
160 #: build/C/man3/bsd_signal.3:41
161 msgid ""
162 "The B<bsd_signal>()  function takes the same arguments, and performs the "
163 "same task, as B<signal>(2)."
164 msgstr ""
165 "B<bsd_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
166 "る。"
167
168 #. type: Plain text
169 #: build/C/man3/bsd_signal.3:54
170 msgid ""
171 "The difference between the two is that B<bsd_signal>()  is guaranteed to "
172 "provide reliable signal semantics, that is: a) the disposition of the signal "
173 "is not reset to the default when the handler is invoked; b) delivery of "
174 "further instances of the signal is blocked while the signal handler is "
175 "executing; and c) if the handler interrupts a blocking system call, then the "
176 "system call is automatically restarted.  A portable application cannot rely "
177 "on B<signal>(2)  to provide these guarantees."
178 msgstr ""
179 "両者の違いは、 B<bsd_signal>()  では信頼性のあるシグナル処理方式の提供が保証"
180 "されていることである。 信頼性のあるシグナル処理方式は以下の特徴を持つ。 a) ハ"
181 "ンドラが起動された場合に、シグナルの処理方法 (disposition) が デフォルトにリ"
182 "セットされない、 b) シグナルハンドラの実行中は、それ以降に発生した同じシグナ"
183 "ルの配送が ブロックされない、 c) ハンドラが停止中の (blocking している) シス"
184 "テムコールを 中断した場合、そのシステムコールが自動的に再開される。 移植性が"
185 "必要なアプリケーションでは、 B<signal>(2)  でこれらが保証されることを前提にす"
186 "べきではない。"
187
188 #. type: SH
189 #: build/C/man3/bsd_signal.3:54 build/C/man2/eventfd.2:222
190 #: build/C/man2/getitimer.2:122 build/C/man2/kill.2:99
191 #: build/C/man2/killpg.2:89 build/C/man2/pause.2:42 build/C/man2/prctl.2:775
192 #: build/C/man3/profil.3:68 build/C/man3/psignal.3:89 build/C/man3/raise.3:61
193 #: build/C/man2/rt_sigqueueinfo.2:129 build/C/man2/s390_runtime_instr.2:54
194 #: build/C/man2/sgetmask.2:59 build/C/man2/sigaction.2:660
195 #: build/C/man2/sigaltstack.2:133 build/C/man3/siginterrupt.3:73
196 #: build/C/man2/signal.2:97 build/C/man2/signalfd.2:251
197 #: build/C/man3/sigpause.3:48 build/C/man2/sigpending.2:53
198 #: build/C/man2/sigprocmask.2:93 build/C/man3/sigqueue.3:83
199 #: build/C/man2/sigreturn.2:53 build/C/man3/sigset.3:129
200 #: build/C/man3/sigsetops.3:107 build/C/man2/sigsuspend.2:70
201 #: build/C/man3/sigvec.3:199 build/C/man3/sigwait.3:69
202 #: build/C/man2/sigwaitinfo.2:105 build/C/man3/sysv_signal.3:51
203 #: build/C/man2/timer_create.2:167 build/C/man2/timer_delete.2:53
204 #: build/C/man2/timer_getoverrun.2:82 build/C/man2/timer_settime.2:173
205 #: build/C/man2/timerfd_create.2:287 build/C/man2/tkill.2:95
206 #: build/C/man2/wait.2:353 build/C/man2/wait4.2:132
207 #, no-wrap
208 msgid "RETURN VALUE"
209 msgstr "返り値"
210
211 #. type: Plain text
212 #: build/C/man3/bsd_signal.3:60
213 msgid ""
214 "The B<bsd_signal>()  function returns the previous value of the signal "
215 "handler, or B<SIG_ERR> on error."
216 msgstr ""
217 "B<bsd_signal>()  関数はシグナルハンドラの直前の値を返す。 エラーの場合、 "
218 "B<SIG_ERR> を返す。"
219
220 #. type: SH
221 #: build/C/man3/bsd_signal.3:60 build/C/man2/eventfd.2:229
222 #: build/C/man2/getitimer.2:127 build/C/man2/kill.2:104
223 #: build/C/man2/killpg.2:94 build/C/man2/pause.2:53 build/C/man2/prctl.2:793
224 #: build/C/man2/rt_sigqueueinfo.2:134 build/C/man2/s390_runtime_instr.2:65
225 #: build/C/man2/sgetmask.2:64 build/C/man2/sigaction.2:665
226 #: build/C/man2/sigaltstack.2:137 build/C/man3/siginterrupt.3:83
227 #: build/C/man2/signal.2:105 build/C/man2/signalfd.2:265
228 #: build/C/man2/sigpending.2:59 build/C/man2/sigprocmask.2:99
229 #: build/C/man3/sigqueue.3:91 build/C/man3/sigset.3:154
230 #: build/C/man3/sigsetops.3:126 build/C/man2/sigsuspend.2:76
231 #: build/C/man3/sigvec.3:216 build/C/man3/sigwait.3:74
232 #: build/C/man2/sigwaitinfo.2:114 build/C/man3/sysv_signal.3:57
233 #: build/C/man2/timer_create.2:175 build/C/man2/timer_delete.2:60
234 #: build/C/man2/timer_getoverrun.2:90 build/C/man2/timer_settime.2:182
235 #: build/C/man2/timerfd_create.2:302 build/C/man2/tkill.2:99
236 #: build/C/man2/wait.2:382 build/C/man2/wait4.2:135
237 #, no-wrap
238 msgid "ERRORS"
239 msgstr "エラー"
240
241 #. type: Plain text
242 #: build/C/man3/bsd_signal.3:63 build/C/man3/sysv_signal.3:60
243 msgid "As for B<signal>(2)."
244 msgstr "B<signal>(2)  と同じ。"
245
246 #. type: SH
247 #: build/C/man3/bsd_signal.3:63 build/C/man2/eventfd.2:266
248 #: build/C/man2/getitimer.2:148 build/C/man3/gsignal.3:95
249 #: build/C/man2/kill.2:120 build/C/man2/killpg.2:111 build/C/man2/pause.2:57
250 #: build/C/man2/prctl.2:965 build/C/man3/profil.3:70 build/C/man3/psignal.3:99
251 #: build/C/man3/raise.3:64 build/C/man2/rt_sigqueueinfo.2:176
252 #: build/C/man2/s390_runtime_instr.2:81 build/C/man2/sgetmask.2:66
253 #: build/C/man2/sigaction.2:677 build/C/man2/sigaltstack.2:156
254 #: build/C/man7/sigevent.7:130 build/C/man3/siginterrupt.3:87
255 #: build/C/man2/signal.2:110 build/C/man7/signal.7:838
256 #: build/C/man2/signalfd.2:307 build/C/man3/sigpause.3:56
257 #: build/C/man2/sigpending.2:64 build/C/man2/sigprocmask.2:112
258 #: build/C/man3/sigqueue.3:114 build/C/man2/sigreturn.2:60
259 #: build/C/man3/sigset.3:173 build/C/man3/sigsetops.3:131
260 #: build/C/man2/sigsuspend.2:84 build/C/man3/sigvec.3:221
261 #: build/C/man3/sigwait.3:80 build/C/man2/sigwaitinfo.2:133
262 #: build/C/man3/sysv_signal.3:60 build/C/man2/timer_create.2:193
263 #: build/C/man2/timer_delete.2:67 build/C/man2/timer_getoverrun.2:97
264 #: build/C/man2/timer_settime.2:207 build/C/man2/timerfd_create.2:371
265 #: build/C/man2/tkill.2:116 build/C/man2/wait.2:420 build/C/man2/wait4.2:138
266 #, no-wrap
267 msgid "CONFORMING TO"
268 msgstr "準拠"
269
270 #. type: Plain text
271 #: build/C/man3/bsd_signal.3:70
272 msgid ""
273 "4.2BSD, POSIX.1-2001.  POSIX.1-2008 removes the specification of "
274 "B<bsd_signal>(), recommending the use of B<sigaction>(2)  instead."
275 msgstr ""
276 "4.2BSD, POSIX.1-2001.  POSIX.1-2008 では B<bsd_signal>()  の仕様が削除されて"
277 "いる。 代わりに、 B<sigaction>(2)  の使用が推奨されている。"
278
279 #. type: SH
280 #: build/C/man3/bsd_signal.3:70 build/C/man2/eventfd.2:271
281 #: build/C/man2/getitimer.2:158 build/C/man2/kill.2:122
282 #: build/C/man2/killpg.2:115 build/C/man3/raise.3:66
283 #: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/s390_runtime_instr.2:84
284 #: build/C/man2/sgetmask.2:68 build/C/man2/sigaction.2:680
285 #: build/C/man2/sigaltstack.2:158 build/C/man2/signal.2:112
286 #: build/C/man2/signalfd.2:312 build/C/man3/sigpause.3:60
287 #: build/C/man2/sigpending.2:66 build/C/man2/sigprocmask.2:114
288 #: build/C/man3/sigqueue.3:116 build/C/man2/sigreturn.2:64
289 #: build/C/man3/sigset.3:190 build/C/man3/sigsetops.3:133
290 #: build/C/man2/sigsuspend.2:86 build/C/man3/sigvec.3:227
291 #: build/C/man3/sigwait.3:82 build/C/man2/sigwaitinfo.2:135
292 #: build/C/man3/sysv_signal.3:62 build/C/man2/timer_create.2:195
293 #: build/C/man2/timer_getoverrun.2:99 build/C/man2/tkill.2:122
294 #: build/C/man2/wait.2:422 build/C/man2/wait4.2:147
295 #, no-wrap
296 msgid "NOTES"
297 msgstr "注意"
298
299 #. type: Plain text
300 #: build/C/man3/bsd_signal.3:76
301 msgid ""
302 "Use of B<bsd_signal>()  should be avoided; use B<sigaction>(2)  instead."
303 msgstr ""
304 "B<bsd_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使うこ"
305 "と。"
306
307 #. type: Plain text
308 #: build/C/man3/bsd_signal.3:87
309 msgid ""
310 "On modern Linux systems, B<bsd_signal>()  and B<signal>(2)  are equivalent.  "
311 "But on older systems, B<signal>(2)  provided unreliable signal semantics; "
312 "see B<signal>(2)  for details."
313 msgstr ""
314 "最近の Linux システムでは、 B<bsd_signal>()  と B<signal>(2)  は等価である。"
315 "しかし、以前のシステムでは、 B<signal>(2)  は信頼性に欠けるシグナル処理方式を"
316 "提供していた。 詳細は B<signal>(2)  を参照。"
317
318 #. type: Plain text
319 #: build/C/man3/bsd_signal.3:94 build/C/man3/sysv_signal.3:87
320 msgid ""
321 "The use of I<sighandler_t> is a GNU extension; this type is defined only if "
322 "the B<_GNU_SOURCE> feature test macro is defined."
323 msgstr ""
324 "I<sighandler_t> を使っているのは GNU による拡張である。 この型は機能検査マク"
325 "ロ B<_GNU_SOURCE> を定義した場合にのみ定義される。"
326
327 #. type: SH
328 #: build/C/man3/bsd_signal.3:94 build/C/man2/eventfd.2:417
329 #: build/C/man2/getitimer.2:239 build/C/man3/gsignal.3:103
330 #: build/C/man2/kill.2:170 build/C/man2/killpg.2:134 build/C/man2/pause.2:59
331 #: build/C/man2/prctl.2:979 build/C/man3/profil.3:81
332 #: build/C/man3/psignal.3:113 build/C/man3/raise.3:77
333 #: build/C/man2/rt_sigqueueinfo.2:188 build/C/man2/s390_runtime_instr.2:88
334 #: build/C/man2/sgetmask.2:80 build/C/man2/sigaction.2:793
335 #: build/C/man2/sigaltstack.2:232 build/C/man7/sigevent.7:132
336 #: build/C/man3/siginterrupt.3:96 build/C/man2/signal.2:278
337 #: build/C/man7/signal.7:850 build/C/man2/signalfd.2:433
338 #: build/C/man3/sigpause.3:98 build/C/man2/sigpending.2:87
339 #: build/C/man2/sigprocmask.2:144 build/C/man3/sigqueue.3:149
340 #: build/C/man2/sigreturn.2:74 build/C/man3/sigset.3:266
341 #: build/C/man3/sigsetops.3:171 build/C/man2/sigsuspend.2:108
342 #: build/C/man3/sigvec.3:252 build/C/man3/sigwait.3:89
343 #: build/C/man2/sigwaitinfo.2:187 build/C/man3/sysv_signal.3:87
344 #: build/C/man2/timer_create.2:399 build/C/man2/timer_delete.2:69
345 #: build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212
346 #: build/C/man2/timerfd_create.2:541 build/C/man2/tkill.2:131
347 #: build/C/man2/wait.2:619 build/C/man2/wait4.2:165
348 #, no-wrap
349 msgid "SEE ALSO"
350 msgstr "関連項目"
351
352 #. type: Plain text
353 #: build/C/man3/bsd_signal.3:99
354 msgid "B<sigaction>(2), B<signal>(2), B<sysv_signal>(3), B<signal>(7)"
355 msgstr "B<sigaction>(2), B<signal>(2), B<sysv_signal>(3), B<signal>(7)"
356
357 #. type: SH
358 #: build/C/man3/bsd_signal.3:99 build/C/man2/eventfd.2:428
359 #: build/C/man2/getitimer.2:246 build/C/man3/gsignal.3:107
360 #: build/C/man2/kill.2:180 build/C/man2/killpg.2:140 build/C/man2/pause.2:64
361 #: build/C/man2/prctl.2:982 build/C/man3/profil.3:86
362 #: build/C/man3/psignal.3:118 build/C/man3/raise.3:84
363 #: build/C/man2/rt_sigqueueinfo.2:196 build/C/man2/s390_runtime_instr.2:91
364 #: build/C/man2/sgetmask.2:83 build/C/man2/sigaction.2:812
365 #: build/C/man2/sigaltstack.2:239 build/C/man7/sigevent.7:142
366 #: build/C/man3/siginterrupt.3:98 build/C/man2/signal.2:297
367 #: build/C/man7/signal.7:883 build/C/man2/signalfd.2:446
368 #: build/C/man3/sigpause.3:106 build/C/man2/sigpending.2:95
369 #: build/C/man2/sigprocmask.2:155 build/C/man3/sigqueue.3:157
370 #: build/C/man2/sigreturn.2:79 build/C/man3/sigset.3:276
371 #: build/C/man3/sigsetops.3:176 build/C/man2/sigsuspend.2:118
372 #: build/C/man3/sigvec.3:262 build/C/man3/sigwait.3:97
373 #: build/C/man2/sigwaitinfo.2:199 build/C/man3/sysv_signal.3:92
374 #: build/C/man2/timer_create.2:414 build/C/man2/timer_delete.2:75
375 #: build/C/man2/timer_getoverrun.2:141 build/C/man2/timer_settime.2:216
376 #: build/C/man2/timerfd_create.2:553 build/C/man2/tkill.2:136
377 #: build/C/man2/wait.2:631 build/C/man2/wait4.2:172
378 #, no-wrap
379 msgid "COLOPHON"
380 msgstr "この文書について"
381
382 #. type: Plain text
383 #: build/C/man3/bsd_signal.3:106 build/C/man2/eventfd.2:435
384 #: build/C/man2/getitimer.2:253 build/C/man3/gsignal.3:114
385 #: build/C/man2/kill.2:187 build/C/man2/killpg.2:147 build/C/man2/pause.2:71
386 #: build/C/man2/prctl.2:989 build/C/man3/profil.3:93
387 #: build/C/man3/psignal.3:125 build/C/man3/raise.3:91
388 #: build/C/man2/rt_sigqueueinfo.2:203 build/C/man2/s390_runtime_instr.2:98
389 #: build/C/man2/sgetmask.2:90 build/C/man2/sigaction.2:819
390 #: build/C/man2/sigaltstack.2:246 build/C/man7/sigevent.7:149
391 #: build/C/man3/siginterrupt.3:105 build/C/man2/signal.2:304
392 #: build/C/man7/signal.7:890 build/C/man2/signalfd.2:453
393 #: build/C/man3/sigpause.3:113 build/C/man2/sigpending.2:102
394 #: build/C/man2/sigprocmask.2:162 build/C/man3/sigqueue.3:164
395 #: build/C/man2/sigreturn.2:86 build/C/man3/sigset.3:283
396 #: build/C/man3/sigsetops.3:183 build/C/man2/sigsuspend.2:125
397 #: build/C/man3/sigvec.3:269 build/C/man3/sigwait.3:104
398 #: build/C/man2/sigwaitinfo.2:206 build/C/man3/sysv_signal.3:99
399 #: build/C/man2/timer_create.2:421 build/C/man2/timer_delete.2:82
400 #: build/C/man2/timer_getoverrun.2:148 build/C/man2/timer_settime.2:223
401 #: build/C/man2/timerfd_create.2:560 build/C/man2/tkill.2:143
402 #: build/C/man2/wait.2:638 build/C/man2/wait4.2:179
403 #, fuzzy
404 #| msgid ""
405 #| "This page is part of release 3.51 of the Linux I<man-pages> project.  A "
406 #| "description of the project, and information about reporting bugs, can be "
407 #| "found at http://www.kernel.org/doc/man-pages/."
408 msgid ""
409 "This page is part of release 3.52 of the Linux I<man-pages> project.  A "
410 "description of the project, and information about reporting bugs, can be "
411 "found at \\%http://www.kernel.org/doc/man-pages/."
412 msgstr ""
413 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.51 の一部\n"
414 "である。プロジェクトの説明とバグ報告に関する情報は\n"
415 "http://www.kernel.org/doc/man-pages/ に書かれている。"
416
417 #. type: TH
418 #: build/C/man2/eventfd.2:22
419 #, no-wrap
420 msgid "EVENTFD"
421 msgstr "EVENTFD"
422
423 #. type: TH
424 #: build/C/man2/eventfd.2:22
425 #, no-wrap
426 msgid "2010-08-30"
427 msgstr "2010-08-30"
428
429 #. type: TH
430 #: build/C/man2/eventfd.2:22 build/C/man2/getitimer.2:12
431 #: build/C/man2/kill.2:44 build/C/man2/killpg.2:42 build/C/man2/pause.2:30
432 #: build/C/man2/prctl.2:52 build/C/man3/profil.3:28
433 #: build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/sgetmask.2:26
434 #: build/C/man2/sigaction.2:47 build/C/man2/sigaltstack.2:27
435 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
436 #: build/C/man2/signalfd.2:20 build/C/man3/sigpause.3:25
437 #: build/C/man2/sigpending.2:29 build/C/man2/sigprocmask.2:29
438 #: build/C/man3/sigqueue.3:28 build/C/man2/sigreturn.2:29
439 #: build/C/man3/sigset.3:26 build/C/man3/sigsetops.3:31
440 #: build/C/man2/sigsuspend.2:29 build/C/man3/sigvec.3:26
441 #: build/C/man3/sigwait.3:26 build/C/man2/sigwaitinfo.2:25
442 #: build/C/man2/timer_create.2:31 build/C/man2/timer_delete.2:26
443 #: build/C/man2/timer_getoverrun.2:26 build/C/man2/timer_settime.2:26
444 #: build/C/man2/timerfd_create.2:21 build/C/man2/tkill.2:29
445 #: build/C/man2/wait.2:49 build/C/man2/wait4.2:33
446 #, no-wrap
447 msgid "Linux"
448 msgstr "Linux"
449
450 #. type: Plain text
451 #: build/C/man2/eventfd.2:25
452 msgid "eventfd - create a file descriptor for event notification"
453 msgstr "eventfd - イベント通知用のファイルディスクリプタを生成する"
454
455 #. type: Plain text
456 #: build/C/man2/eventfd.2:27
457 msgid "B<#include E<lt>sys/eventfd.hE<gt>>"
458 msgstr "B<#include E<lt>sys/eventfd.hE<gt>>"
459
460 #. type: Plain text
461 #: build/C/man2/eventfd.2:29
462 msgid "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
463 msgstr "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
464
465 #. type: Plain text
466 #: build/C/man2/eventfd.2:39
467 msgid ""
468 "B<eventfd>()  creates an \"eventfd object\" that can be used as an event "
469 "wait/notify mechanism by user-space applications, and by the kernel to "
470 "notify user-space applications of events.  The object contains an unsigned "
471 "64-bit integer (I<uint64_t>)  counter that is maintained by the kernel.  "
472 "This counter is initialized with the value specified in the argument "
473 "I<initval>."
474 msgstr ""
475 "B<eventfd>()  は \"eventfd オブジェクト\" を生成する。 eventfd オブジェクトは"
476 "ユーザ空間アプリケーションがイベント待ち受け/通知用の 仕組みとして使うことが"
477 "できる。また、カーネルがユーザ空間アプリケーションに イベントを通知するために"
478 "も使うことができる。 このオブジェクトには、unsigned の 64 ビット整数 "
479 "(I<uint64_t>)  型のカウンタが含まれており、このカウンタはカーネルにより管理さ"
480 "れる。 このカウンタは I<initval> 引き数で指定された値で初期化される。"
481
482 #. type: Plain text
483 #: build/C/man2/eventfd.2:44
484 msgid ""
485 "The following values may be bitwise ORed in I<flags> to change the behaviour "
486 "of B<eventfd>():"
487 msgstr ""
488 "以下の値のいくつかをビット単位の論理和 (OR) で指定することで、\n"
489 "B<eventfd>() の振舞いを変更することができる。"
490
491 #. type: TP
492 #: build/C/man2/eventfd.2:44
493 #, no-wrap
494 msgid "B<EFD_CLOEXEC> (since Linux 2.6.27)"
495 msgstr "B<EFD_CLOEXEC> (Linux 2.6.27 以降)"
496
497 #. type: Plain text
498 #: build/C/man2/eventfd.2:54 build/C/man2/signalfd.2:95
499 #: build/C/man2/timerfd_create.2:103
500 msgid ""
501 "Set the close-on-exec (B<FD_CLOEXEC>)  flag on the new file descriptor.  See "
502 "the description of the B<O_CLOEXEC> flag in B<open>(2)  for reasons why this "
503 "may be useful."
504 msgstr ""
505 "新しいファイルディスクリプタに対して close-on-exec (B<FD_CLOEXEC>)  フラグを"
506 "セットする。 このフラグが役に立つ理由については、 B<open>(2)  の "
507 "B<O_CLOEXEC> フラグの説明を参照のこと。"
508
509 #. type: TP
510 #: build/C/man2/eventfd.2:54
511 #, no-wrap
512 msgid "B<EFD_NONBLOCK> (since Linux 2.6.27)"
513 msgstr "B<EFD_NONBLOCK> (Linux 2.6.27 以降)"
514
515 #. type: Plain text
516 #: build/C/man2/eventfd.2:62 build/C/man2/signalfd.2:85
517 #: build/C/man2/timerfd_create.2:93
518 msgid ""
519 "Set the B<O_NONBLOCK> file status flag on the new open file description.  "
520 "Using this flag saves extra calls to B<fcntl>(2)  to achieve the same result."
521 msgstr ""
522 "新しく生成されるオープンファイル記述 (open file description) の "
523 "B<O_NONBLOCK> ファイルステータスフラグをセットする。 このフラグを使うこと"
524 "で、 B<O_NONBLOCK> をセットするために B<fcntl>(2)  を追加で呼び出す必要がなく"
525 "なる。"
526
527 #. type: TP
528 #: build/C/man2/eventfd.2:62
529 #, no-wrap
530 msgid "B<EFD_SEMAPHORE> (since Linux 2.6.30)"
531 msgstr "B<EFD_SEMAPHORE> (Linux 2.6.30 以降)"
532
533 #. type: Plain text
534 #: build/C/man2/eventfd.2:66
535 msgid ""
536 "Provide semaphore-like semantics for reads from the new file descriptor.  "
537 "See below."
538 msgstr ""
539 "新しいファイルディスクリプタからの読み出しにおいて、セマフォ風の動作を行"
540 "う。\n"
541 "下記参照。"
542
543 #. type: Plain text
544 #: build/C/man2/eventfd.2:70 build/C/man2/signalfd.2:99
545 msgid ""
546 "In Linux up to version 2.6.26, the I<flags> argument is unused, and must be "
547 "specified as zero."
548 msgstr ""
549 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
550 "しなければならない。"
551
552 #. type: Plain text
553 #: build/C/man2/eventfd.2:76
554 msgid ""
555 "As its return value, B<eventfd>()  returns a new file descriptor that can be "
556 "used to refer to the eventfd object.  The following operations can be "
557 "performed on the file descriptor:"
558 msgstr ""
559 "B<eventfd>()  は eventfd オブジェクトを参照するのに使用できる新しいファイル"
560 "ディスクリプタ を返す。返されたファイルディスクリプタに対しては以下の操作を実"
561 "行できる。"
562
563 #. type: TP
564 #: build/C/man2/eventfd.2:76 build/C/man2/signalfd.2:102
565 #: build/C/man2/timerfd_create.2:211
566 #, no-wrap
567 msgid "B<read>(2)"
568 msgstr "B<read>(2)"
569
570 #. type: Plain text
571 #: build/C/man2/eventfd.2:86
572 msgid ""
573 "Each successful B<read>(2)  returns an 8-byte integer.  A B<read>(2)  will "
574 "fail with the error B<EINVAL> if the size of the supplied buffer is less "
575 "than 8 bytes."
576 msgstr ""
577 "B<read>(2) は成功すると、8 バイトの整数を返す。\n"
578 "渡されたバッファの大きさが 8 バイト未満の場合、\n"
579 "B<read>(2)  はエラー B<EINVAL> で失敗する。"
580
581 #. type: Plain text
582 #: build/C/man2/eventfd.2:91
583 msgid ""
584 "The value returned by B<read>(2)  is in host byte order, i.e., the native "
585 "byte order for integers on the host machine."
586 msgstr ""
587 "B<read>(2) が返す値は、ホストバイトオーダ、つまり\n"
588 "そのホストマシンにおける整数の通常のバイトオーダである。"
589
590 #. type: Plain text
591 #: build/C/man2/eventfd.2:98
592 msgid ""
593 "The semantics of B<read>(2)  depend on whether the eventfd counter currently "
594 "has a nonzero value and whether the B<EFD_SEMAPHORE> flag was specified when "
595 "creating the eventfd file descriptor:"
596 msgstr ""
597 "B<read>(2) の動作は、 eventfd カウンタの現在の値が 0 以外であるかと、\n"
598 "eventfd ファイルディスクリプタを作成する際に B<EFD_SEMAPHORE> フラグが\n"
599 "指定されたか、により変化する。"
600
601 #. type: IP
602 #: build/C/man2/eventfd.2:99 build/C/man2/eventfd.2:106
603 #: build/C/man2/eventfd.2:113 build/C/man2/eventfd.2:158
604 #: build/C/man2/eventfd.2:168 build/C/man2/eventfd.2:178
605 #: build/C/man2/prctl.2:836 build/C/man2/prctl.2:841 build/C/man2/prctl.2:846
606 #: build/C/man2/prctl.2:856 build/C/man3/psignal.3:105
607 #: build/C/man3/psignal.3:109 build/C/man2/sigaction.2:298
608 #: build/C/man2/sigaction.2:313 build/C/man2/sigaction.2:329
609 #: build/C/man2/sigaction.2:344 build/C/man2/sigaction.2:391
610 #: build/C/man2/sigaction.2:427 build/C/man2/signal.2:68
611 #: build/C/man2/signal.2:73 build/C/man2/signal.2:80 build/C/man2/signal.2:224
612 #: build/C/man2/signal.2:228 build/C/man2/signal.2:267
613 #: build/C/man7/signal.7:149 build/C/man7/signal.7:157
614 #: build/C/man7/signal.7:615 build/C/man7/signal.7:617
615 #: build/C/man7/signal.7:638 build/C/man7/signal.7:653
616 #: build/C/man7/signal.7:657 build/C/man7/signal.7:664
617 #: build/C/man7/signal.7:680 build/C/man7/signal.7:686
618 #: build/C/man7/signal.7:693 build/C/man7/signal.7:698
619 #: build/C/man7/signal.7:717 build/C/man7/signal.7:736
620 #: build/C/man7/signal.7:743 build/C/man7/signal.7:752
621 #: build/C/man7/signal.7:760 build/C/man7/signal.7:766
622 #: build/C/man7/signal.7:771 build/C/man7/signal.7:791
623 #: build/C/man7/signal.7:810 build/C/man7/signal.7:813
624 #: build/C/man7/signal.7:816 build/C/man7/signal.7:819
625 #: build/C/man7/signal.7:824 build/C/man7/signal.7:830
626 #: build/C/man7/signal.7:834 build/C/man3/sigwait.3:62
627 #: build/C/man3/sigwait.3:67 build/C/man2/timer_create.2:216
628 #: build/C/man2/timer_create.2:219 build/C/man2/timer_create.2:222
629 #: build/C/man2/timer_create.2:226 build/C/man2/timer_create.2:229
630 #: build/C/man2/timer_create.2:235 build/C/man2/timer_create.2:239
631 #, no-wrap
632 msgid "*"
633 msgstr "*"
634
635 #. type: Plain text
636 #: build/C/man2/eventfd.2:106
637 msgid ""
638 "If B<EFD_SEMAPHORE> was not specified and the eventfd counter has a nonzero "
639 "value, then a B<read>(2)  returns 8 bytes containing that value, and the "
640 "counter's value is reset to zero."
641 msgstr ""
642 "B<EFD_SEMAPHORE> が指定されておらず、eventfd カウンタが 0 以外の値\n"
643 "の場合、 B<read>(2) はカウンタ値を格納した 8 バイトの値を返し、\n"
644 "カウンタ値は 0 にリセットされる。"
645
646 #. type: Plain text
647 #: build/C/man2/eventfd.2:113
648 msgid ""
649 "If B<EFD_SEMAPHORE> was specified and the eventfd counter has a nonzero "
650 "value, then a B<read>(2)  returns 8 bytes containing the value 1, and the "
651 "counter's value is decremented by 1."
652 msgstr ""
653 "B<EFD_SEMAPHORE> が指定されていて eventfd カウンタが 0 以外の値の場合、\n"
654 "B<read>(2) は値 1 の 8 バイト値を返し、カウンタ値は 1 減算される。"
655
656 #. type: Plain text
657 #: build/C/man2/eventfd.2:123
658 msgid ""
659 "If the eventfd counter is zero at the time of the call to B<read>(2), then "
660 "the call either blocks until the counter becomes nonzero (at which time, the "
661 "B<read>(2)  proceeds as described above)  or fails with the error B<EAGAIN> "
662 "if the file descriptor has been made nonblocking."
663 msgstr ""
664 "B<read>(2) を呼び出した時点で eventfd カウンタが 0 の場合、 B<read>(2)\n"
665 "はカウンタが 0 以外になるまで停止 (block) する (0 以外になった時点で\n"
666 "B<read>(2) は上記で述べた通り実行を再開する)、 もしくはファイルディスク\n"
667 "リプタが非停止 (nonblocking) に設定されている場合はエラー B<EAGAIN>で\n"
668 "失敗する。"
669
670 #. type: TP
671 #: build/C/man2/eventfd.2:124
672 #, no-wrap
673 msgid "B<write>(2)"
674 msgstr "B<write>(2)"
675
676 #. type: Plain text
677 #: build/C/man2/eventfd.2:141
678 msgid ""
679 "A B<write>(2)  call adds the 8-byte integer value supplied in its buffer to "
680 "the counter.  The maximum value that may be stored in the counter is the "
681 "largest unsigned 64-bit value minus 1 (i.e., 0xfffffffffffffffe).  If the "
682 "addition would cause the counter's value to exceed the maximum, then the "
683 "B<write>(2)  either blocks until a B<read>(2)  is performed on the file "
684 "descriptor, or fails with the error B<EAGAIN> if the file descriptor has "
685 "been made nonblocking."
686 msgstr ""
687 "B<write>(2)  は、引き数のバッファで渡された 8 バイトの整数値をカウンタに加算"
688 "する。 カウンタに格納可能な最大値は unsigned の 64 ビット整数の最大値から 1 "
689 "を引いた値 (すなわち 0xfffffffffffffffe) である。 加算を行うとカウンタ値が最"
690 "大値を超過する場合には、 そのファイルディスクリプタに対して B<read>(2)  が実"
691 "行されるまで、 B<write>(2)  は停止 (block) する、 もしくはファイルディスクリ"
692 "プタが非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗す"
693 "る。"
694
695 #. type: Plain text
696 #: build/C/man2/eventfd.2:148
697 msgid ""
698 "A B<write>(2)  will fail with the error B<EINVAL> if the size of the "
699 "supplied buffer is less than 8 bytes, or if an attempt is made to write the "
700 "value 0xffffffffffffffff."
701 msgstr ""
702 "渡されたバッファの大きさが 8 バイト未満の場合、もしくは 値 "
703 "0xffffffffffffffff を書き込もうとした場合、 B<write>(2)  はエラー B<EINVAL> "
704 "で失敗する。"
705
706 #. type: TP
707 #: build/C/man2/eventfd.2:148 build/C/man2/signalfd.2:140
708 #: build/C/man2/timerfd_create.2:244
709 #, no-wrap
710 msgid "B<poll>(2), B<select>(2) (and similar)"
711 msgstr "B<poll>(2), B<select>(2) (と同様の操作)"
712
713 #. type: Plain text
714 #: build/C/man2/eventfd.2:157
715 msgid ""
716 "The returned file descriptor supports B<poll>(2)  (and analogously B<epoll>"
717 "(7))  and B<select>(2), as follows:"
718 msgstr ""
719 "返されたファイルディスクリプタは、 B<poll>(2)  (B<epoll>(7)  も同じ) や "
720 "B<select>(2)  をサポートしており、以下のような動作をする。"
721
722 #. type: Plain text
723 #: build/C/man2/eventfd.2:168
724 msgid ""
725 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
726 "B<poll>(2)  B<POLLIN> flag)  if the counter has a value greater than 0."
727 msgstr ""
728 "カウンタが 0 より大きい値の場合、 ファイルディスクリプタは読み出し可能となる "
729 "(B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
730
731 #. type: Plain text
732 #: build/C/man2/eventfd.2:178
733 msgid ""
734 "The file descriptor is writable (the B<select>(2)  I<writefds> argument; the "
735 "B<poll>(2)  B<POLLOUT> flag)  if it is possible to write a value of at least "
736 "\"1\" without blocking."
737 msgstr ""
738 "少なくとも値 \"1\" を、停止 (block) を伴わずに書き込める場合、 ファイルディス"
739 "クリプタは書き込み可能となる (B<select>(2)  の I<writefds> 引き数や B<poll>"
740 "(2)  の B<POLLOUT> フラグ)。"
741
742 #. type: Plain text
743 #: build/C/man2/eventfd.2:198
744 msgid ""
745 "If an overflow of the counter value was detected, then B<select>(2)  "
746 "indicates the file descriptor as being both readable and writable, and "
747 "B<poll>(2)  returns a B<POLLERR> event.  As noted above, B<write>(2)  can "
748 "never overflow the counter.  However an overflow can occur if 2^64 eventfd "
749 "\"signal posts\" were performed by the KAIO subsystem (theoretically "
750 "possible, but practically unlikely).  If an overflow has occurred, then "
751 "B<read>(2)  will return that maximum I<uint64_t> value (i.e., "
752 "0xffffffffffffffff)."
753 msgstr ""
754 "カウンタ値のオーバーフローが検出された場合、 B<select>(2)  はファイルディスク"
755 "リプタは読み出し可能と書き込み可能の両方を通知し、 B<poll>(2)  は B<POLLERR> "
756 "イベントを返す。 上述の通り、 B<write>(2)  でカウンタがオーバーフローすること"
757 "は決してない。 しかしながら、 KAIO サブシステムによって 2^64 回の eventfd "
758 "\"signal posts\" が 実行された場合にはオーバーフローが起こり得る (理論的には"
759 "あり得るが、実用的にはあり得ない)。 オーバーフローが発生した場合、 B<read>"
760 "(2)  は I<uint64_t> の最大値 (すなわち 0xffffffffffffffff) を返す。"
761
762 #. type: Plain text
763 #: build/C/man2/eventfd.2:205
764 msgid ""
765 "The eventfd file descriptor also supports the other file-descriptor "
766 "multiplexing APIs: B<pselect>(2)  and B<ppoll>(2)."
767 msgstr ""
768 "eventfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
769 "である B<pselect>(2) と B<ppoll>(2) もサポートしている。"
770
771 #. type: TP
772 #: build/C/man2/eventfd.2:205 build/C/man2/signalfd.2:160
773 #: build/C/man2/timerfd_create.2:262
774 #, no-wrap
775 msgid "B<close>(2)"
776 msgstr "B<close>(2)"
777
778 #. type: Plain text
779 #: build/C/man2/eventfd.2:210
780 msgid ""
781 "When the file descriptor is no longer required it should be closed.  When "
782 "all file descriptors associated with the same eventfd object have been "
783 "closed, the resources for object are freed by the kernel."
784 msgstr ""
785 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
786 "る。 同じ eventfd オブジェクトに関連付けられたファイルディスクリプタが全て ク"
787 "ローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
788
789 #. type: Plain text
790 #: build/C/man2/eventfd.2:222
791 msgid ""
792 "A copy of the file descriptor created by B<eventfd>()  is inherited by the "
793 "child produced by B<fork>(2).  The duplicate file descriptor is associated "
794 "with the same eventfd object.  File descriptors created by B<eventfd>()  are "
795 "preserved across B<execve>(2), unless the close-on-exec flag has been set."
796 msgstr ""
797 "B<fork>(2) で生成された子プロセスは、 B<eventfd>() で生成されたファイル\n"
798 "ディスクリプタのコピーを継承する。 複製されたファイルディスクリプタは同\n"
799 "じ eventfd オブジェクトに関連付けられる。\n"
800 "close-on-exec フラグが設定されていない場合、 B<execve>(2) の前後で\n"
801 "B<eventfd>() で生成されたファイルディスクリプタは保持される。"
802
803 #. type: Plain text
804 #: build/C/man2/eventfd.2:229
805 msgid ""
806 "On success, B<eventfd>()  returns a new eventfd file descriptor.  On error, "
807 "-1 is returned and I<errno> is set to indicate the error."
808 msgstr ""
809 "成功すると、 B<eventfd>()  は新規の eventfd ファイルディスクリプタを返す。 エ"
810 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
811
812 #. type: TP
813 #: build/C/man2/eventfd.2:230 build/C/man2/getitimer.2:135
814 #: build/C/man2/kill.2:105 build/C/man2/killpg.2:95 build/C/man2/prctl.2:798
815 #: build/C/man2/prctl.2:803 build/C/man2/prctl.2:815 build/C/man2/prctl.2:820
816 #: build/C/man2/prctl.2:829 build/C/man2/prctl.2:869
817 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man2/s390_runtime_instr.2:66
818 #: build/C/man2/sigaction.2:670 build/C/man2/sigaltstack.2:142
819 #: build/C/man3/siginterrupt.3:84 build/C/man2/signal.2:106
820 #: build/C/man2/signalfd.2:271 build/C/man2/signalfd.2:279
821 #: build/C/man2/sigprocmask.2:107 build/C/man3/sigqueue.3:98
822 #: build/C/man3/sigsetops.3:127 build/C/man3/sigwait.3:75
823 #: build/C/man2/sigwaitinfo.2:129 build/C/man2/timer_create.2:179
824 #: build/C/man2/timer_delete.2:61 build/C/man2/timer_getoverrun.2:91
825 #: build/C/man2/timer_settime.2:191 build/C/man2/timer_settime.2:199
826 #: build/C/man2/timerfd_create.2:305 build/C/man2/timerfd_create.2:313
827 #: build/C/man2/timerfd_create.2:349 build/C/man2/timerfd_create.2:356
828 #: build/C/man2/timerfd_create.2:362 build/C/man2/tkill.2:100
829 #: build/C/man2/wait.2:415
830 #, no-wrap
831 msgid "B<EINVAL>"
832 msgstr "B<EINVAL>"
833
834 #. type: Plain text
835 #: build/C/man2/eventfd.2:234
836 msgid "An unsupported value was specified in I<flags>."
837 msgstr "I<flags> にサポートされていない値が指定された。"
838
839 #. type: TP
840 #: build/C/man2/eventfd.2:234 build/C/man2/signalfd.2:286
841 #: build/C/man2/timerfd_create.2:320
842 #, no-wrap
843 msgid "B<EMFILE>"
844 msgstr "B<EMFILE>"
845
846 #. type: Plain text
847 #: build/C/man2/eventfd.2:237
848 msgid "The per-process limit on open file descriptors has been reached."
849 msgstr ""
850 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
851
852 #. type: TP
853 #: build/C/man2/eventfd.2:237 build/C/man2/signalfd.2:289
854 #: build/C/man2/timerfd_create.2:323
855 #, no-wrap
856 msgid "B<ENFILE>"
857 msgstr "B<ENFILE>"
858
859 #. type: Plain text
860 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
861 #: build/C/man2/timerfd_create.2:327
862 msgid ""
863 "The system-wide limit on the total number of open files has been reached."
864 msgstr "オープン済みのファイル総数がシステム全体の上限に達していた。"
865
866 #. type: TP
867 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
868 #: build/C/man2/timerfd_create.2:327
869 #, no-wrap
870 msgid "B<ENODEV>"
871 msgstr "B<ENODEV>"
872
873 #. type: Plain text
874 #: build/C/man2/eventfd.2:249 build/C/man2/signalfd.2:296
875 #: build/C/man2/timerfd_create.2:330
876 msgid "Could not mount (internal) anonymous inode device."
877 msgstr "(カーネル内の) 無名 inode デバイスをマウントできなかった。"
878
879 #. type: TP
880 #: build/C/man2/eventfd.2:249 build/C/man2/s390_runtime_instr.2:73
881 #: build/C/man2/sigaltstack.2:147 build/C/man2/signalfd.2:296
882 #: build/C/man2/timer_create.2:187 build/C/man2/timerfd_create.2:330
883 #, no-wrap
884 msgid "B<ENOMEM>"
885 msgstr "B<ENOMEM>"
886
887 #. type: Plain text
888 #: build/C/man2/eventfd.2:253
889 msgid "There was insufficient memory to create a new eventfd file descriptor."
890 msgstr ""
891 "新しい eventfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
892
893 #. type: SH
894 #: build/C/man2/eventfd.2:253 build/C/man2/prctl.2:960
895 #: build/C/man3/psignal.3:95 build/C/man2/rt_sigqueueinfo.2:169
896 #: build/C/man2/s390_runtime_instr.2:79 build/C/man2/signalfd.2:299
897 #: build/C/man3/sigqueue.3:112 build/C/man2/timer_create.2:191
898 #: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
899 #: build/C/man2/timer_settime.2:205 build/C/man2/timerfd_create.2:368
900 #: build/C/man2/tkill.2:111
901 #, no-wrap
902 msgid "VERSIONS"
903 msgstr "バージョン"
904
905 #.  eventfd() is in glibc 2.7, but reportedly does not build
906 #. type: Plain text
907 #: build/C/man2/eventfd.2:266
908 msgid ""
909 "B<eventfd>()  is available on Linux since kernel 2.6.22.  Working support is "
910 "provided in glibc since version 2.8.  The B<eventfd2>()  system call (see "
911 "NOTES) is available on Linux since kernel 2.6.27.  Since version 2.9, the "
912 "glibc B<eventfd>()  wrapper will employ the B<eventfd2>()  system call, if "
913 "it is supported by the kernel."
914 msgstr ""
915 "B<eventfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
916 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<eventfd2>()  "
917 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
918 "る。 バージョン 2.9 以降では、glibc の B<eventfd>()  のラッパー関数は、カーネ"
919 "ルが対応していれば B<eventfd2>()  システムコールを利用する。"
920
921 #. type: Plain text
922 #: build/C/man2/eventfd.2:271
923 msgid "B<eventfd>()  and B<eventfd2>()  are Linux-specific."
924 msgstr "B<eventfd>()  と B<eventfd2>()  は Linux 固有である。"
925
926 #. type: Plain text
927 #: build/C/man2/eventfd.2:279
928 msgid ""
929 "Applications can use an eventfd file descriptor instead of a pipe (see "
930 "B<pipe>(2))  in all cases where a pipe is used simply to signal events.  The "
931 "kernel overhead of an eventfd file descriptor is much lower than that of a "
932 "pipe, and only one file descriptor is required (versus the two required for "
933 "a pipe)."
934 msgstr ""
935 "アプリケーションは、パイプをイベントを通知するためだけに使用している 全ての場"
936 "面において、パイプの代わりに eventfd ファイルディスクリプタを 使用することが"
937 "できる。 eventfd ファイルディスクリプタを使う方が、パイプを使う場合に比べて "
938 "カーネルでのオーバヘッドは比べるとずっと小さく、ファイルディスクリプタも 一つ"
939 "しか必要としない (パイプの場合は二つ必要である)。"
940
941 #.  or eventually syslets/threadlets
942 #. type: Plain text
943 #: build/C/man2/eventfd.2:285
944 msgid ""
945 "When used in the kernel, an eventfd file descriptor can provide a bridge "
946 "from kernel to user space, allowing, for example, functionalities like KAIO "
947 "(kernel AIO)  to signal to a file descriptor that some operation is complete."
948 msgstr ""
949 "カーネル内で使用すると、eventfd ファイルディスクリプタはカーネル空間からユー"
950 "ザ空間へのブリッジ機能を提供することができ、 例えば KAIO (kernel AIO)  のよう"
951 "な機能が、あるファイルディスクリプタに何らかの操作が完了したことを 通知するこ"
952 "とができる。"
953
954 #. type: Plain text
955 #: build/C/man2/eventfd.2:302
956 msgid ""
957 "A key point about an eventfd file descriptor is that it can be monitored "
958 "just like any other file descriptor using B<select>(2), B<poll>(2), or "
959 "B<epoll>(7).  This means that an application can simultaneously monitor the "
960 "readiness of \"traditional\" files and the readiness of other kernel "
961 "mechanisms that support the eventfd interface.  (Without the B<eventfd>()  "
962 "interface, these mechanisms could not be multiplexed via B<select>(2), "
963 "B<poll>(2), or B<epoll>(7).)"
964 msgstr ""
965 "eventfd ファイルディスクリプタの重要な点は、 eventfd ファイルディスクリプタ"
966 "が B<select>(2), B<poll>(2), B<epoll>(7)  を使って他のファイルディスクリプタ"
967 "と全く同様に監視できる点である。 このことは、アプリケーションは「従来の "
968 "(traditional)」 ファイルの状態変化と eventfd インタフェースをサポートする他の"
969 "カーネル機構の状態変化を同時に監視 できることを意味する (B<eventfd>()  インタ"
970 "フェースがない時には、これらのカーネル機構は B<select>(2), B<poll>(2), "
971 "B<epoll>(7)  経由で多重することはできなかった)。"
972
973 #. type: SS
974 #: build/C/man2/eventfd.2:302 build/C/man2/signalfd.2:336
975 #, no-wrap
976 msgid "Underlying Linux system calls"
977 msgstr "下層にある Linux のシステムコール"
978
979 #. type: Plain text
980 #: build/C/man2/eventfd.2:316
981 msgid ""
982 "There are two underlying Linux system calls: B<eventfd>()  and the more "
983 "recent B<eventfd2>().  The former system call does not implement a I<flags> "
984 "argument.  The latter system call implements the I<flags> values described "
985 "above.  The glibc wrapper function will use B<eventfd2>()  where it is "
986 "available."
987 msgstr ""
988 "下層にある Linux システムコールは二種類あり、 B<eventfd>()  と、もっと新しい "
989 "B<eventfd2>()  である。 B<eventfd>()  は I<flags> 引き数を実装していない。 "
990 "B<eventfd2>()  では上記の値の I<flags> が実装されている。 glibc のラッパー関"
991 "数は、 B<eventfd2>()  が利用可能であれば、これを使用する。"
992
993 #. type: SS
994 #: build/C/man2/eventfd.2:316
995 #, no-wrap
996 msgid "Additional glibc features"
997 msgstr "glibc の追加機能"
998
999 #. type: Plain text
1000 #: build/C/man2/eventfd.2:320
1001 msgid ""
1002 "The GNU C library defines an additional type, and two functions that attempt "
1003 "to abstract some of the details of reading and writing on an eventfd file "
1004 "descriptor:"
1005 msgstr ""
1006 "GNU C ライブラリは、eventfd ファイルディスクリプタの読み出しと書き込みに を関"
1007 "する詳細のいくつか抽象化するために、一つの型と、二つの関数を追加で 定義してい"
1008 "る。"
1009
1010 #. type: Plain text
1011 #: build/C/man2/eventfd.2:324
1012 #, no-wrap
1013 msgid "typedef uint64_t eventfd_t;\n"
1014 msgstr "typedef uint64_t eventfd_t;\n"
1015
1016 #. type: Plain text
1017 #: build/C/man2/eventfd.2:327
1018 #, no-wrap
1019 msgid ""
1020 "int eventfd_read(int fd, eventfd_t *value);\n"
1021 "int eventfd_write(int fd, eventfd_t value);\n"
1022 msgstr ""
1023 "int eventfd_read(int fd, eventfd_t *value);\n"
1024 "int eventfd_write(int fd, eventfd_t value);\n"
1025
1026 #. type: Plain text
1027 #: build/C/man2/eventfd.2:334
1028 msgid ""
1029 "The functions perform the read and write operations on an eventfd file "
1030 "descriptor, returning 0 if the correct number of bytes was transferred, or "
1031 "-1 otherwise."
1032 msgstr ""
1033 "これらの関数は、eventfd ファイルディスクリプタに対する読み出しと 書き込みの操"
1034 "作を実行し、正しいバイト数が転送された場合には 0 を返し、そうでない場合は -1 "
1035 "を返す。"
1036
1037 #. type: SH
1038 #: build/C/man2/eventfd.2:334 build/C/man2/sigaction.2:790
1039 #: build/C/man2/sigaltstack.2:215 build/C/man2/signalfd.2:360
1040 #: build/C/man3/sigwait.3:86 build/C/man2/timer_create.2:253
1041 #: build/C/man2/timer_getoverrun.2:128 build/C/man2/timer_settime.2:209
1042 #: build/C/man2/timerfd_create.2:379 build/C/man2/wait.2:536
1043 #, no-wrap
1044 msgid "EXAMPLE"
1045 msgstr "例"
1046
1047 #. type: Plain text
1048 #: build/C/man2/eventfd.2:343
1049 msgid ""
1050 "The following program creates an eventfd file descriptor and then forks to "
1051 "create a child process.  While the parent briefly sleeps, the child writes "
1052 "each of the integers supplied in the program's command-line arguments to the "
1053 "eventfd file descriptor.  When the parent has finished sleeping, it reads "
1054 "from the eventfd file descriptor."
1055 msgstr ""
1056 "以下のプログラムは eventfd ファイルディスクリプタを生成し、 その後 fork を実"
1057 "行して子プロセスを生成する。 親プロセスが少しの間 sleep する間に、子プロセス"
1058 "は プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ eventfd "
1059 "ファイルディスクリプタに書き込む。 親プロセスは sleep を完了すると eventfd "
1060 "ファイルディスクリプタから 読み出しを行う。"
1061
1062 #. type: Plain text
1063 #: build/C/man2/eventfd.2:345
1064 msgid "The following shell session shows a sample run of the program:"
1065 msgstr "以下に示すシェルセッションにこのプログラムの使い方を示す。"
1066
1067 #. type: Plain text
1068 #: build/C/man2/eventfd.2:357
1069 #, no-wrap
1070 msgid ""
1071 "$B< ./a.out 1 2 4 7 14>\n"
1072 "Child writing 1 to efd\n"
1073 "Child writing 2 to efd\n"
1074 "Child writing 4 to efd\n"
1075 "Child writing 7 to efd\n"
1076 "Child writing 14 to efd\n"
1077 "Child completed write loop\n"
1078 "Parent about to read\n"
1079 "Parent read 28 (0x1c) from efd\n"
1080 msgstr ""
1081 "$B< ./a.out 1 2 4 7 14>\n"
1082 "Child writing 1 to efd\n"
1083 "Child writing 2 to efd\n"
1084 "Child writing 4 to efd\n"
1085 "Child writing 7 to efd\n"
1086 "Child writing 14 to efd\n"
1087 "Child completed write loop\n"
1088 "Parent about to read\n"
1089 "Parent read 28 (0x1c) from efd\n"
1090
1091 #. type: SS
1092 #: build/C/man2/eventfd.2:359 build/C/man2/signalfd.2:383
1093 #: build/C/man2/timer_create.2:284 build/C/man2/timerfd_create.2:407
1094 #: build/C/man2/wait.2:571
1095 #, no-wrap
1096 msgid "Program source"
1097 msgstr "プログラムのソース"
1098
1099 #. type: Plain text
1100 #: build/C/man2/eventfd.2:367
1101 #, no-wrap
1102 msgid ""
1103 "#include E<lt>sys/eventfd.hE<gt>\n"
1104 "#include E<lt>unistd.hE<gt>\n"
1105 "#include E<lt>stdlib.hE<gt>\n"
1106 "#include E<lt>stdio.hE<gt>\n"
1107 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1108 msgstr ""
1109 "#include E<lt>sys/eventfd.hE<gt>\n"
1110 "#include E<lt>unistd.hE<gt>\n"
1111 "#include E<lt>stdlib.hE<gt>\n"
1112 "#include E<lt>stdio.hE<gt>\n"
1113 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1114
1115 #. type: Plain text
1116 #: build/C/man2/eventfd.2:370 build/C/man2/signalfd.2:394
1117 #, no-wrap
1118 msgid ""
1119 "#define handle_error(msg) \\e\n"
1120 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1121 msgstr ""
1122 "#define handle_error(msg) \\e\n"
1123 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1124
1125 #. type: Plain text
1126 #: build/C/man2/eventfd.2:377
1127 #, no-wrap
1128 msgid ""
1129 "int\n"
1130 "main(int argc, char *argv[])\n"
1131 "{\n"
1132 "    int efd, j;\n"
1133 "    uint64_t u;\n"
1134 "    ssize_t s;\n"
1135 msgstr ""
1136 "int\n"
1137 "main(int argc, char *argv[])\n"
1138 "{\n"
1139 "    int efd, j;\n"
1140 "    uint64_t u;\n"
1141 "    ssize_t s;\n"
1142
1143 #. type: Plain text
1144 #: build/C/man2/eventfd.2:382
1145 #, no-wrap
1146 msgid ""
1147 "    if (argc E<lt> 2) {\n"
1148 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1149 "        exit(EXIT_FAILURE);\n"
1150 "    }\n"
1151 msgstr ""
1152 "    if (argc E<lt> 2) {\n"
1153 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1154 "        exit(EXIT_FAILURE);\n"
1155 "    }\n"
1156
1157 #. type: Plain text
1158 #: build/C/man2/eventfd.2:386
1159 #, no-wrap
1160 msgid ""
1161 "    efd = eventfd(0, 0);\n"
1162 "    if (efd == -1)\n"
1163 "        handle_error(\"eventfd\");\n"
1164 msgstr ""
1165 "    efd = eventfd(0, 0);\n"
1166 "    if (efd == -1)\n"
1167 "        handle_error(\"eventfd\");\n"
1168
1169 #. type: Plain text
1170 #: build/C/man2/eventfd.2:398
1171 #, no-wrap
1172 msgid ""
1173 "    switch (fork()) {\n"
1174 "    case 0:\n"
1175 "        for (j = 1; j E<lt> argc; j++) {\n"
1176 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1177 "            u = strtoull(argv[j], NULL, 0);\n"
1178 "                    /* strtoull() allows various bases */\n"
1179 "            s = write(efd, &u, sizeof(uint64_t));\n"
1180 "            if (s != sizeof(uint64_t))\n"
1181 "                handle_error(\"write\");\n"
1182 "        }\n"
1183 "        printf(\"Child completed write loop\\en\");\n"
1184 msgstr ""
1185 "    switch (fork()) {\n"
1186 "    case 0:\n"
1187 "        for (j = 1; j E<lt> argc; j++) {\n"
1188 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1189 "            u = strtoull(argv[j], NULL, 0);\n"
1190 "                    /* strtoull() allows various bases */\n"
1191 "            s = write(efd, &u, sizeof(uint64_t));\n"
1192 "            if (s != sizeof(uint64_t))\n"
1193 "                handle_error(\"write\");\n"
1194 "        }\n"
1195 "        printf(\"Child completed write loop\\en\");\n"
1196
1197 #. type: Plain text
1198 #: build/C/man2/eventfd.2:400
1199 #, no-wrap
1200 msgid "        exit(EXIT_SUCCESS);\n"
1201 msgstr "        exit(EXIT_SUCCESS);\n"
1202
1203 #. type: Plain text
1204 #: build/C/man2/eventfd.2:403
1205 #, no-wrap
1206 msgid ""
1207 "    default:\n"
1208 "        sleep(2);\n"
1209 msgstr ""
1210 "    default:\n"
1211 "        sleep(2);\n"
1212
1213 #. type: Plain text
1214 #: build/C/man2/eventfd.2:411
1215 #, no-wrap
1216 msgid ""
1217 "        printf(\"Parent about to read\\en\");\n"
1218 "        s = read(efd, &u, sizeof(uint64_t));\n"
1219 "        if (s != sizeof(uint64_t))\n"
1220 "            handle_error(\"read\");\n"
1221 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1222 "                (unsigned long long) u, (unsigned long long) u);\n"
1223 "        exit(EXIT_SUCCESS);\n"
1224 msgstr ""
1225 "        printf(\"Parent about to read\\en\");\n"
1226 "        s = read(efd, &u, sizeof(uint64_t));\n"
1227 "        if (s != sizeof(uint64_t))\n"
1228 "            handle_error(\"read\");\n"
1229 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1230 "                (unsigned long long) u, (unsigned long long) u);\n"
1231 "        exit(EXIT_SUCCESS);\n"
1232
1233 #. type: Plain text
1234 #: build/C/man2/eventfd.2:416
1235 #, no-wrap
1236 msgid ""
1237 "    case -1:\n"
1238 "        handle_error(\"fork\");\n"
1239 "    }\n"
1240 "}\n"
1241 msgstr ""
1242 "    case -1:\n"
1243 "        handle_error(\"fork\");\n"
1244 "    }\n"
1245 "}\n"
1246
1247 #. type: Plain text
1248 #: build/C/man2/eventfd.2:428
1249 msgid ""
1250 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), B<signalfd>"
1251 "(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), B<sem_overview>(7)"
1252 msgstr ""
1253 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), B<signalfd>"
1254 "(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), B<sem_overview>(7)"
1255
1256 #. type: TH
1257 #: build/C/man2/getitimer.2:12
1258 #, no-wrap
1259 msgid "GETITIMER"
1260 msgstr "GETITIMER"
1261
1262 #. type: TH
1263 #: build/C/man2/getitimer.2:12
1264 #, no-wrap
1265 msgid "2012-10-01"
1266 msgstr "2012-10-01"
1267
1268 #. type: Plain text
1269 #: build/C/man2/getitimer.2:15
1270 msgid "getitimer, setitimer - get or set value of an interval timer"
1271 msgstr "getitimer, setitimer - インターバル・タイマーの値を取得または設定する"
1272
1273 #. type: Plain text
1274 #: build/C/man2/getitimer.2:18
1275 #, no-wrap
1276 msgid "B<#include E<lt>sys/time.hE<gt>>\n"
1277 msgstr "B<#include E<lt>sys/time.hE<gt>>\n"
1278
1279 #. type: Plain text
1280 #: build/C/man2/getitimer.2:20
1281 #, no-wrap
1282 msgid "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1283 msgstr "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1284
1285 #. type: Plain text
1286 #: build/C/man2/getitimer.2:23
1287 #, no-wrap
1288 msgid ""
1289 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1290 "B<              struct itimerval *>I<old_value>B<);>\n"
1291 msgstr ""
1292 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1293 "B<              struct itimerval *>I<old_value>B<);>\n"
1294
1295 #. type: Plain text
1296 #: build/C/man2/getitimer.2:29
1297 msgid ""
1298 "The system provides each process with three interval timers, each "
1299 "decrementing in a distinct time domain.  When any timer expires, a signal is "
1300 "sent to the process, and the timer (potentially) restarts."
1301 msgstr ""
1302 "システムは 1 個のプロセスにつき 3 個のインターバル・タイマーを提供する。 それ"
1303 "ぞれのタイマーは別々の時間領域で減少する。 どのタイマーも満了するとプロセスに"
1304 "シグナルが送られ、 タイマーは (設定によっては) 再び開始される。"
1305
1306 #. type: TP
1307 #: build/C/man2/getitimer.2:29
1308 #, no-wrap
1309 msgid "B<ITIMER_REAL>"
1310 msgstr "B<ITIMER_REAL>"
1311
1312 #. type: Plain text
1313 #: build/C/man2/getitimer.2:34
1314 msgid "decrements in real time, and delivers B<SIGALRM> upon expiration."
1315 msgstr "実時間 (real time) で減少し、満了すると B<SIGALRM> が送られる。"
1316
1317 #. type: TP
1318 #: build/C/man2/getitimer.2:34
1319 #, no-wrap
1320 msgid "B<ITIMER_VIRTUAL>"
1321 msgstr "B<ITIMER_VIRTUAL>"
1322
1323 #. type: Plain text
1324 #: build/C/man2/getitimer.2:39
1325 msgid ""
1326 "decrements only when the process is executing, and delivers B<SIGVTALRM> "
1327 "upon expiration."
1328 msgstr ""
1329 "プロセスが実行されている間のみ減少し、満了すると B<SIGVTALRM> が送られる。"
1330
1331 #. type: TP
1332 #: build/C/man2/getitimer.2:39
1333 #, no-wrap
1334 msgid "B<ITIMER_PROF>"
1335 msgstr "B<ITIMER_PROF>"
1336
1337 #. type: Plain text
1338 #: build/C/man2/getitimer.2:49
1339 msgid ""
1340 "decrements both when the process executes and when the system is executing "
1341 "on behalf of the process.  Coupled with B<ITIMER_VIRTUAL>, this timer is "
1342 "usually used to profile the time spent by the application in user and kernel "
1343 "space.  B<SIGPROF> is delivered upon expiration."
1344 msgstr ""
1345 "プロセスが実行されていて、 かつシステムがそのプロセスのために処理を行なってい"
1346 "る間に減少する。 多くの場合、このタイマーは B<ITIMER_VIRTUAL> と組み合わされ"
1347 "て、アプリケーションがカーネル空間とユーザー空間で どれだけの時間を過ごしたか"
1348 "をプロファイルするのに使用される。 満了すると B<SIGPROF> が送られる。"
1349
1350 #. type: Plain text
1351 #: build/C/man2/getitimer.2:51
1352 msgid "Timer values are defined by the following structures:"
1353 msgstr "タイマーの値は以下の構造体によって定義される:"
1354
1355 #. type: Plain text
1356 #: build/C/man2/getitimer.2:59
1357 #, no-wrap
1358 msgid ""
1359 "struct itimerval {\n"
1360 "    struct timeval it_interval; /* next value */\n"
1361 "    struct timeval it_value;    /* current value */\n"
1362 "};\n"
1363 msgstr ""
1364 "struct itimerval {\n"
1365 "    struct timeval it_interval; /* next value */\n"
1366 "    struct timeval it_value;    /* current value */\n"
1367 "};\n"
1368
1369 #. type: Plain text
1370 #: build/C/man2/getitimer.2:64
1371 #, no-wrap
1372 msgid ""
1373 "struct timeval {\n"
1374 "    time_t      tv_sec;         /* seconds */\n"
1375 "    suseconds_t tv_usec;        /* microseconds */\n"
1376 "};\n"
1377 msgstr ""
1378 "struct timeval {\n"
1379 "    time_t      tv_sec;         /* seconds */\n"
1380 "    suseconds_t tv_usec;        /* microseconds */\n"
1381 "};\n"
1382
1383 #. type: Plain text
1384 #: build/C/man2/getitimer.2:86
1385 msgid ""
1386 "The function B<getitimer>()  fills the structure pointed to by I<curr_value> "
1387 "with the current setting for the timer specified by I<which> (one of "
1388 "B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>).  The element "
1389 "I<it_value> is set to the amount of time remaining on the timer, or zero if "
1390 "the timer is disabled.  Similarly, I<it_interval> is set to the reset value."
1391 msgstr ""
1392 "B<getitimer>()  関数は、 I<which> で指定されたタイマー (B<ITIMER_REAL>, "
1393 "B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれか) の現在の設定を、 I<curr_value> で"
1394 "指定された構造体に格納する。 I<it_value> 要素にはタイマーの残り時間が設定され"
1395 "る。タイマーがオフの場合は ゼロが設定される。同様に I<it_interval> には初期値"
1396 "が設定される。"
1397
1398 #. type: Plain text
1399 #: build/C/man2/getitimer.2:94
1400 msgid ""
1401 "The function B<setitimer>()  sets the specified timer to the value in "
1402 "I<new_value>.  If I<old_value> is non-NULL, the old value of the timer is "
1403 "stored there."
1404 msgstr ""
1405 "B<setitimer>()  関数は指定されたタイマーに I<new_value> の値を設定する。 "
1406 "I<old_value> が NULL 以外の場合、タイマーの古い値が I<old_value> に格納され"
1407 "る。"
1408
1409 #. type: Plain text
1410 #: build/C/man2/getitimer.2:104
1411 msgid ""
1412 "Timers decrement from I<it_value> to zero, generate a signal, and reset to "
1413 "I<it_interval>.  A timer which is set to zero (I<it_value> is zero or the "
1414 "timer expires and I<it_interval> is zero) stops."
1415 msgstr ""
1416 "タイマーは I<it_value> からゼロへ向けて減っていき、シグナルを生成し、 "
1417 "I<it_interval> に初期化される。 タイマーがゼロに設定された場合 (I<it_value> "
1418 "がゼロか、タイマーが満了した時に I<it_interval> がゼロの場合) は停止する。"
1419
1420 #. type: Plain text
1421 #: build/C/man2/getitimer.2:110
1422 msgid ""
1423 "Both I<tv_sec> and I<tv_usec> are significant in determining the duration of "
1424 "a timer."
1425 msgstr "タイマーの期間は I<tv_sec> と I<tv_usec> の両方により決定される。"
1426
1427 #. type: Plain text
1428 #: build/C/man2/getitimer.2:122
1429 msgid ""
1430 "Timers will never expire before the requested time, but may expire some "
1431 "(short) time afterward, which depends on the system timer resolution and on "
1432 "the system load; see B<time>(7).  (But see BUGS below.)  Upon expiration, a "
1433 "signal will be generated and the timer reset.  If the timer expires while "
1434 "the process is active (always true for B<ITIMER_VIRTUAL>)  the signal will "
1435 "be delivered immediately when generated.  Otherwise the delivery will be "
1436 "offset by a small time dependent on the system loading."
1437 msgstr ""
1438 "要求した時間がくる前にタイマーが満了することはないが、 逆にある (短い) 時間だ"
1439 "け満了が遅れることはある。 どれだけ遅れるかはシステムの時間分解能とシステムの"
1440 "負荷に依存する (B<time>(7)  参照; 但し、バグの項も参照のこと)。 タイマーが満"
1441 "了するとシグナルが生成され、タイマーは初期化される。 プロセスがアクティブな"
1442 "時 (B<ITIMER_VIRTUAL> の場合には常にそうである) にタイマーが満了した場合、生"
1443 "成されたシグナルは すぐに配送される。それ以外の場合は、システムの負荷により少"
1444 "しの時間だけ 遅れて配送される。"
1445
1446 #. type: Plain text
1447 #: build/C/man2/getitimer.2:127 build/C/man2/killpg.2:94
1448 #: build/C/man2/tkill.2:99
1449 msgid ""
1450 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1451 "appropriately."
1452 msgstr ""
1453 "成功した場合、0 が返される。エラーが発生した場合、-1 が返され、 I<errno> が適"
1454 "切に設定される。"
1455
1456 #. type: TP
1457 #: build/C/man2/getitimer.2:128 build/C/man2/prctl.2:794
1458 #: build/C/man2/sigaction.2:666 build/C/man2/sigaltstack.2:138
1459 #: build/C/man2/sigpending.2:60 build/C/man2/sigprocmask.2:100
1460 #: build/C/man2/sigsuspend.2:77 build/C/man2/timer_settime.2:184
1461 #: build/C/man2/timerfd_create.2:342
1462 #, no-wrap
1463 msgid "B<EFAULT>"
1464 msgstr "B<EFAULT>"
1465
1466 #. type: Plain text
1467 #: build/C/man2/getitimer.2:135 build/C/man2/timerfd_create.2:349
1468 msgid "I<new_value>, I<old_value>, or I<curr_value> is not valid a pointer."
1469 msgstr "I<new_value>, I<old_value>, I<curr_value> が有効なポインタではない。"
1470
1471 #. type: Plain text
1472 #: build/C/man2/getitimer.2:148
1473 msgid ""
1474 "I<which> is not one of B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>; "
1475 "or (since Linux 2.6.22) one of the I<tv_usec> fields in the structure "
1476 "pointed to by I<new_value> contains a value outside the range 0 to 999999."
1477 msgstr ""
1478 "I<which> が B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれでもな"
1479 "い。 または (Linux 2.6.22 以降で)  I<new_value> で指定された構造体の "
1480 "I<tv_usec> フィールドの一つが 0 以上 999999 以下の範囲に入らない値である。"
1481
1482 #. type: Plain text
1483 #: build/C/man2/getitimer.2:158
1484 msgid ""
1485 "POSIX.1-2001, SVr4, 4.4BSD (this call first appeared in 4.2BSD).  "
1486 "POSIX.1-2008 marks B<getitimer>()  and B<setitimer>()  obsolete, "
1487 "recommending the use of the POSIX timers API (B<timer_gettime>(2), "
1488 "B<timer_settime>(2), etc.) instead."
1489 msgstr ""
1490 "POSIX.1-2001, SVr4, 4.4BSD (このコールは 4.2BSD で始めて現われた).  "
1491 "POSIX.1-2008 では、 B<getitimer>()  と B<setitimer>()  は廃止予定とされてお"
1492 "り、 代わりに POSIX タイマー API (B<timer_gettime>(2), B<timer_settime>(2)  "
1493 "など) を使うことが推奨されている。"
1494
1495 #. type: Plain text
1496 #: build/C/man2/getitimer.2:164
1497 msgid ""
1498 "A child created via B<fork>(2)  does not inherit its parent's interval "
1499 "timers.  Interval timers are preserved across an B<execve>(2)."
1500 msgstr ""
1501 "B<fork>(2)  で作成された子プロセスは、 親プロセスのインターバル・タイマーを継"
1502 "承しない。 B<execve>(2)  の前後ではインターバル・タイマーは保存される。"
1503
1504 #. type: Plain text
1505 #: build/C/man2/getitimer.2:174
1506 msgid ""
1507 "POSIX.1 leaves the interaction between B<setitimer>()  and the three "
1508 "interfaces B<alarm>(2), B<sleep>(3), and B<usleep>(3)  unspecified."
1509 msgstr ""
1510 "POSIX.1 では、 B<setitimer>()  と、 B<alarm>(2), B<sleep>(3), B<usleep>(3)  "
1511 "という 3 つのインタフェースとの相互の影響については規定していない。"
1512
1513 #. type: Plain text
1514 #: build/C/man2/getitimer.2:176
1515 msgid "The standards are silent on the meaning of the call:"
1516 msgstr "標準では、次の呼び出しの意味については規定されていない。"
1517
1518 #. type: Plain text
1519 #: build/C/man2/getitimer.2:178
1520 #, no-wrap
1521 msgid "    setitimer(which, NULL, &old_value);\n"
1522 msgstr "    setitimer(which, NULL, &old_value);\n"
1523
1524 #. type: Plain text
1525 #: build/C/man2/getitimer.2:181
1526 msgid ""
1527 "Many systems (Solaris, the BSDs, and perhaps others)  treat this as "
1528 "equivalent to:"
1529 msgstr ""
1530 "(Solaris, BSD 系やおそらく他のシステムもそうだが) 多くのシステムでは、\n"
1531 "この呼び出しは以下と等価である。"
1532
1533 #. type: Plain text
1534 #: build/C/man2/getitimer.2:183
1535 #, no-wrap
1536 msgid "    getitimer(which, &old_value);\n"
1537 msgstr "    getitimer(which, &old_value);\n"
1538
1539 #. type: Plain text
1540 #: build/C/man2/getitimer.2:189
1541 msgid ""
1542 "In Linux, this is treated as being equivalent to a call in which the "
1543 "I<new_value> fields are zero; that is, the timer is disabled.  I<Don't use "
1544 "this Linux misfeature>: it is nonportable and unnecessary."
1545 msgstr ""
1546 "Linux では、この呼び出しは I<new_value> フィールドが 0 の呼び出しと等価なもの"
1547 "と扱われる。 つまり、タイマーが無効になる。 I<Linux のこの間違った機能を使用"
1548 "しないこと>。移植性もなく、不必要な機能である。"
1549
1550 #. type: SH
1551 #: build/C/man2/getitimer.2:189 build/C/man2/kill.2:160
1552 #: build/C/man3/profil.3:72 build/C/man3/psignal.3:101
1553 #: build/C/man2/sigaction.2:781 build/C/man2/signalfd.2:352
1554 #: build/C/man2/sigpending.2:81 build/C/man3/sigset.3:232
1555 #: build/C/man2/timer_getoverrun.2:115 build/C/man2/timerfd_create.2:373
1556 #: build/C/man2/wait.2:521
1557 #, no-wrap
1558 msgid "BUGS"
1559 msgstr "バグ"
1560
1561 #. type: Plain text
1562 #: build/C/man2/getitimer.2:198
1563 msgid ""
1564 "The generation and delivery of a signal are distinct, and only one instance "
1565 "of each of the signals listed above may be pending for a process.  Under "
1566 "very heavy loading, an B<ITIMER_REAL> timer may expire before the signal "
1567 "from a previous expiration has been delivered.  The second signal in such an "
1568 "event will be lost."
1569 msgstr ""
1570 "シグナルの生成と配送は別個のものであり、 前述のシグナルのそれぞれについて一つ"
1571 "だけがプロセスのために 待機する。 非常に重い負荷の下では、 B<ITIMER_REAL> タ"
1572 "イマーでは、時間切れにより生成された一つ前のシグナルが配送される前に、 次の時"
1573 "間切れが起こる場合がある。 そのような場合、 2 個めのイベントに対するシグナル"
1574 "は失われてしまう。"
1575
1576 #. type: Plain text
1577 #: build/C/man2/getitimer.2:213
1578 msgid ""
1579 "On Linux kernels before 2.6.16, timer values are represented in jiffies.  If "
1580 "a request is made set a timer with a value whose jiffies representation "
1581 "exceeds B<MAX_SEC_IN_JIFFIES> (defined in I<include/linux/jiffies.h>), then "
1582 "the timer is silently truncated to this ceiling value.  On Linux/i386 "
1583 "(where, since Linux 2.6.13, the default jiffy is 0.004 seconds), this means "
1584 "that the ceiling value for a timer is approximately 99.42 days.  Since Linux "
1585 "2.6.16, the kernel uses a different internal representation for times, and "
1586 "this ceiling is removed."
1587 msgstr ""
1588 "バージョン 2.6.16 より前の Linux カーネルでは、 タイマーの値は jiffy で表現さ"
1589 "れる。 要求が jiffy 表現で (I<include/linux/jiffies.h> で定義されている)  "
1590 "B<MAX_SEC_IN_JIFFIES> を越える値をタイマーに設定しようとするものの場合、 タイ"
1591 "マーは暗黙にこの上限値に切り詰められる。 Linux/i386 の場合 (Linux 2.6.13 以降"
1592 "では jiffy は 0.004 秒) の場合、 これはタイマーの上限値がおよそ 99.42 日にな"
1593 "ることを意味する。 Linux 2.6.16 以降では、カーネルは時間に関する内部表現とし"
1594 "て 異なる表現を使うようになっており、この上限はなくなった。"
1595
1596 #.  4 Jul 2005: It looks like this bug may remain in 2.4.x.
1597 #.      http://lkml.org/lkml/2005/7/1/165
1598 #. type: Plain text
1599 #: build/C/man2/getitimer.2:220
1600 msgid ""
1601 "On certain systems (including i386), Linux kernels before version 2.6.12 "
1602 "have a bug which will produce premature timer expirations of up to one jiffy "
1603 "under some circumstances.  This bug is fixed in kernel 2.6.12."
1604 msgstr ""
1605 "(i386 を含む) いくつかのシステムでは、 バージョン 2.6.12 以前の Linux カーネ"
1606 "ルは ある種の状況では 1 jiffy 早くタイマーが終了してしまうというバグがあっ"
1607 "た。 このバグはカーネル 2.6.12 で修正された。"
1608
1609 #.  Bugzilla report 25 Apr 2006:
1610 #.  http://bugzilla.kernel.org/show_bug.cgi?id=6443
1611 #.  "setitimer() should reject noncanonical arguments"
1612 #. type: Plain text
1613 #: build/C/man2/getitimer.2:239
1614 msgid ""
1615 "POSIX.1-2001 says that B<setitimer>()  should fail if a I<tv_usec> value is "
1616 "specified that is outside of the range 0 to 999999.  However, in kernels up "
1617 "to and including 2.6.21, Linux does not give an error, but instead silently "
1618 "adjusts the corresponding seconds value for the timer.  From kernel 2.6.22 "
1619 "onward, this nonconformance has been repaired: an improper I<tv_usec> value "
1620 "results in an B<EINVAL> error."
1621 msgstr ""
1622 "POSIX.1-2001 では B<setitimer>()  は I<tv_usec> の値が 0 から 999999 の範囲外"
1623 "である場合には失敗するべきだとしている。 しかし、2.6.21 以前のカーネルの "
1624 "Linux ではエラーにならず、 対応する秒数の分だけそのタイマーの秒の値が暗黙に調"
1625 "整される。 カーネル 2.6.22 以降では、この標準非準拠の動作は修正され、 "
1626 "I<tv_usec> の値が不適切な場合には B<EINVAL> エラーとなる。"
1627
1628 #. type: Plain text
1629 #: build/C/man2/getitimer.2:246
1630 msgid ""
1631 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1632 "B<timerfd_create>(2), B<time>(7)"
1633 msgstr ""
1634 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1635 "B<timerfd_create>(2), B<time>(7)"
1636
1637 #. type: TH
1638 #: build/C/man3/gsignal.3:27
1639 #, no-wrap
1640 msgid "GSIGNAL"
1641 msgstr "GSIGNAL"
1642
1643 #. type: TH
1644 #: build/C/man3/gsignal.3:27 build/C/man3/profil.3:28
1645 #, no-wrap
1646 msgid "2007-07-26"
1647 msgstr "2007-07-26"
1648
1649 #. type: Plain text
1650 #: build/C/man3/gsignal.3:30
1651 msgid "gsignal, ssignal - software signal facility"
1652 msgstr "gsignal, ssignal - ソフトウェア・シグナル機能"
1653
1654 #. type: Plain text
1655 #: build/C/man3/gsignal.3:33 build/C/man2/kill.2:52 build/C/man3/psignal.3:36
1656 #: build/C/man3/raise.3:35 build/C/man2/sigaction.2:53
1657 #: build/C/man3/siginterrupt.3:37 build/C/man3/sigpause.3:31
1658 #: build/C/man3/sigwait.3:32 build/C/man2/sigwaitinfo.2:31
1659 #, no-wrap
1660 msgid "B<#include E<lt>signal.hE<gt>>\n"
1661 msgstr "B<#include E<lt>signal.hE<gt>>\n"
1662
1663 #. type: Plain text
1664 #: build/C/man3/gsignal.3:35
1665 #, no-wrap
1666 msgid "B<typedef void (*sighandler_t)(int);>\n"
1667 msgstr "B<typedef void (*sighandler_t)(int);>\n"
1668
1669 #. type: Plain text
1670 #: build/C/man3/gsignal.3:37
1671 #, no-wrap
1672 msgid "B<int gsignal(int >I<signum>B<);>\n"
1673 msgstr "B<int gsignal(int >I<signum>B<);>\n"
1674
1675 #. type: Plain text
1676 #: build/C/man3/gsignal.3:39
1677 #, no-wrap
1678 msgid "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1679 msgstr "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1680
1681 #. type: Plain text
1682 #: build/C/man3/gsignal.3:44 build/C/man2/kill.2:59 build/C/man2/killpg.2:53
1683 #: build/C/man3/profil.3:42 build/C/man3/psignal.3:46
1684 #: build/C/man2/sigaction.2:61 build/C/man2/sigaltstack.2:38
1685 #: build/C/man3/siginterrupt.3:44 build/C/man2/sigpending.2:40
1686 #: build/C/man2/sigprocmask.2:41 build/C/man3/sigqueue.3:39
1687 #: build/C/man3/sigset.3:45 build/C/man3/sigsetops.3:51
1688 #: build/C/man2/sigsuspend.2:40 build/C/man3/sigvec.3:45
1689 #: build/C/man3/sigwait.3:39 build/C/man2/sigwaitinfo.2:41
1690 #: build/C/man2/timer_create.2:48 build/C/man2/timer_delete.2:41
1691 #: build/C/man2/timer_getoverrun.2:41 build/C/man2/timer_settime.2:45
1692 #: build/C/man2/wait.2:67 build/C/man2/wait4.2:53
1693 msgid ""
1694 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
1695 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7)  参照):"
1696
1697 #. type: Plain text
1698 #: build/C/man3/gsignal.3:49
1699 msgid "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1700 msgstr "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1701
1702 #. type: Plain text
1703 #: build/C/man3/gsignal.3:57
1704 msgid ""
1705 "Don't use these functions under Linux.  Due to a historical mistake, under "
1706 "Linux these functions are aliases for B<raise>(3)  and B<signal>(2), "
1707 "respectively."
1708 msgstr ""
1709 "Linux ではこれらの関数を使用しないこと。 過去に間違いがあり、Linux では "
1710 "B<gsignal>()  と B<ssignal>()  はそれぞれ B<raise>(3)  と B<signal>(2)  の別"
1711 "名になっている。"
1712
1713 #. type: Plain text
1714 #: build/C/man3/gsignal.3:95
1715 msgid ""
1716 "Elsewhere, on System V-like systems, these functions implement software "
1717 "signaling, entirely independent of the classical B<signal>(2)  and B<kill>"
1718 "(2)  functions.  The function B<ssignal>()  defines the action to take when "
1719 "the software signal with number I<signum> is raised using the function "
1720 "B<gsignal>(), and returns the previous such action or B<SIG_DFL>.  The "
1721 "function B<gsignal>()  does the following: if no action (or the action "
1722 "B<SIG_DFL>)  was specified for I<signum>, then it does nothing and returns "
1723 "0.  If the action B<SIG_IGN> was specified for I<signum>, then it does "
1724 "nothing and returns 1.  Otherwise, it resets the action to B<SIG_DFL> and "
1725 "calls the action function with argument I<signum>, and returns the value "
1726 "returned by that function.  The range of possible values I<signum> varies "
1727 "(often 1-15 or 1-17)."
1728 msgstr ""
1729 "一方、System V 風のシステムでは、これらの関数で、 従来の B<signal>(2)  や "
1730 "B<kill>(2)  の関数群とは完全に独立な、 ソフトウェア・シグナリングを実現してい"
1731 "る。 B<ssignal>()  関数は、番号 I<signum> のソフトウェア・シグナルが "
1732 "B<gsignal>()  関数を使って発生された時にとるべきアクションを定義する。 "
1733 "B<gsignal>()  の返り値は、一つ前に指定されていたアクション、もしくは "
1734 "B<SIG_DFL> である。 B<gsignal>()  は以下のような動作を行う: I<signum> に対し"
1735 "てアクションが指定されていないか、アクション B<SIG_DFL> が指定されていた場"
1736 "合、何もせずに 0 を返す。 I<signum> に対して アクション B<SIG_IGN> が指定され"
1737 "ていた場合、何もせずに 1 を返す。 それ以外の場合、アクションを B<SIG_DFL> に"
1738 "リセットし、引き数に I<signum> を指定してアクション関数を呼び出して、アクショ"
1739 "ン関数の返り値を返す。 I<signum> がとり得る値の範囲は実装により異なる (多くの"
1740 "場合 1〜15 か 1〜17 である)。"
1741
1742 #. type: Plain text
1743 #: build/C/man3/gsignal.3:103
1744 msgid ""
1745 "These functions are available under AIX, DG/UX, HP-UX, SCO, Solaris, Tru64.  "
1746 "They are called obsolete under most of these systems, and are broken under "
1747 "Linux libc and glibc.  Some systems also have B<gsignal_r>()  and "
1748 "B<ssignal_r>()."
1749 msgstr ""
1750 "これらの関数は、AIX, DG/UX, HP-UX, SCO, Solaris, Tru64 で使用可能である。 こ"
1751 "れらのシステムのほとんどで廃止されたことになっており、 Linux の libc および "
1752 "glibc では正しく実装されていない。 B<gsignal_r>()  と B<ssignal_r>()  が実装"
1753 "されているシステムもある。"
1754
1755 #. type: Plain text
1756 #: build/C/man3/gsignal.3:107
1757 msgid "B<kill>(2), B<signal>(2), B<raise>(3)"
1758 msgstr "B<kill>(2), B<signal>(2), B<raise>(3)"
1759
1760 #. type: TH
1761 #: build/C/man2/kill.2:44
1762 #, no-wrap
1763 msgid "KILL"
1764 msgstr "KILL"
1765
1766 #. type: TH
1767 #: build/C/man2/kill.2:44
1768 #, no-wrap
1769 msgid "2013-02-05"
1770 msgstr "2013-02-05"
1771
1772 #. type: Plain text
1773 #: build/C/man2/kill.2:47
1774 msgid "kill - send signal to a process"
1775 msgstr "kill - プロセスにシグナルを送る"
1776
1777 #. type: Plain text
1778 #: build/C/man2/kill.2:50
1779 #, no-wrap
1780 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
1781 msgstr "B<#include E<lt>sys/types.hE<gt>>\n"
1782
1783 #. type: Plain text
1784 #: build/C/man2/kill.2:54
1785 #, no-wrap
1786 msgid "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1787 msgstr "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1788
1789 #. type: Plain text
1790 #: build/C/man2/kill.2:64
1791 msgid ""
1792 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1793 msgstr ""
1794 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1795
1796 #. type: Plain text
1797 #: build/C/man2/kill.2:70
1798 msgid ""
1799 "The B<kill>()  system call can be used to send any signal to any process "
1800 "group or process."
1801 msgstr ""
1802 "システムコールの B<kill>()  は、任意のプロセス・グループもしくはプロセスにシ"
1803 "グナルを 送るのに使われる。"
1804
1805 #. type: Plain text
1806 #: build/C/man2/kill.2:73
1807 msgid ""
1808 "If I<pid> is positive, then signal I<sig> is sent to the process with the ID "
1809 "specified by I<pid>."
1810 msgstr ""
1811 "I<pid> に正の値を指定した場合、シグナル I<sig> が I<pid> で指定された ID を持"
1812 "つプロセスに送られる。"
1813
1814 #. type: Plain text
1815 #: build/C/man2/kill.2:76
1816 msgid ""
1817 "If I<pid> equals 0, then I<sig> is sent to every process in the process "
1818 "group of the calling process."
1819 msgstr ""
1820 "I<pid> に 0 を指定した場合、 呼び出し元のプロセスのプロセス・グループに属する"
1821 "すべてのプロセスに I<sig> で指定したシグナルが送られる。"
1822
1823 #. type: Plain text
1824 #: build/C/man2/kill.2:80
1825 msgid ""
1826 "If I<pid> equals -1, then I<sig> is sent to every process for which the "
1827 "calling process has permission to send signals, except for process 1 "
1828 "(I<init>), but see below."
1829 msgstr ""
1830 "I<pid> に -1 を指定した場合、 I<sig> で指定したシグナルが、 呼び出し元のプロ"
1831 "セスがシグナルを送る許可を持つ全てのプロセスに 送られる。但し、プロセス番号 "
1832 "1 (I<init>) へはシグナルは送られない。 以下の関連部分も参照のこと。"
1833
1834 #. type: Plain text
1835 #: build/C/man2/kill.2:83
1836 msgid ""
1837 "If I<pid> is less than -1, then I<sig> is sent to every process in the "
1838 "process group whose ID is I<-pid>."
1839 msgstr ""
1840 "I<pid> に -1 より小さな値を指定した場合、 ID が I<-pid> のプロセス・グループ"
1841 "に属するすべてのプロセスに I<sig> で指定したシグナルが送られる。"
1842
1843 #. type: Plain text
1844 #: build/C/man2/kill.2:88
1845 msgid ""
1846 "If I<sig> is 0, then no signal is sent, but error checking is still "
1847 "performed; this can be used to check for the existence of a process ID or "
1848 "process group ID."
1849 msgstr ""
1850 "I<sig> に 0 を指定した場合、シグナルは送られないが、 エラーのチェックは行われ"
1851 "る。これを使って、プロセス ID や プロセスグループ ID の存在確認を行うことがで"
1852 "きる。"
1853
1854 #. type: Plain text
1855 #: build/C/man2/kill.2:99 build/C/man2/killpg.2:89
1856 msgid ""
1857 "For a process to have permission to send a signal it must either be "
1858 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
1859 "effective user ID of the sending process must equal the real or saved set-"
1860 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
1861 "the sending and receiving processes belong to the same session."
1862 msgstr ""
1863 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
1864 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
1865 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
1866 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
1867 "プロセスが 同じセッションに属していれば十分である。"
1868
1869 #. type: Plain text
1870 #: build/C/man2/kill.2:104
1871 msgid ""
1872 "On success (at least one signal was sent), zero is returned.  On error, -1 "
1873 "is returned, and I<errno> is set appropriately."
1874 msgstr ""
1875 "成功した場合 (少なくとも一つのシグナルが送信された場合)、 0 が返される。エ"
1876 "ラーの場合 -1 が返され、 I<errno> が適切に設定される。"
1877
1878 #. type: Plain text
1879 #: build/C/man2/kill.2:108
1880 msgid "An invalid signal was specified."
1881 msgstr "無効なシグナルを指定した。"
1882
1883 #. type: TP
1884 #: build/C/man2/kill.2:108 build/C/man2/killpg.2:99 build/C/man2/prctl.2:879
1885 #: build/C/man2/prctl.2:891 build/C/man2/prctl.2:901 build/C/man2/prctl.2:909
1886 #: build/C/man2/rt_sigqueueinfo.2:148 build/C/man2/sigaltstack.2:151
1887 #: build/C/man3/sigqueue.3:102 build/C/man2/tkill.2:103
1888 #, no-wrap
1889 msgid "B<EPERM>"
1890 msgstr "B<EPERM>"
1891
1892 #. type: Plain text
1893 #: build/C/man2/kill.2:112 build/C/man2/killpg.2:103
1894 msgid ""
1895 "The process does not have permission to send the signal to any of the target "
1896 "processes."
1897 msgstr ""
1898 "プロセスが、受信するプロセスのいずれに対しても シグナルを送る許可を持っていな"
1899 "い。"
1900
1901 #. type: TP
1902 #: build/C/man2/kill.2:112 build/C/man2/killpg.2:103 build/C/man2/killpg.2:107
1903 #: build/C/man2/rt_sigqueueinfo.2:156 build/C/man3/sigqueue.3:108
1904 #: build/C/man2/tkill.2:108
1905 #, no-wrap
1906 msgid "B<ESRCH>"
1907 msgstr "B<ESRCH>"
1908
1909 #. type: Plain text
1910 #: build/C/man2/kill.2:120
1911 msgid ""
1912 "The pid or process group does not exist.  Note that an existing process "
1913 "might be a zombie, a process which already committed termination, but has "
1914 "not yet been B<wait>(2)ed for."
1915 msgstr ""
1916 "指定したプロセスまたはプロセス・グループが存在しなかった。 ゾンビプロセスは存"
1917 "在するプロセスとしてみなされる。 ゾンビプロセスとはすでに処理は終了している"
1918 "が、親プロセスによる B<wait>()  処理が行われていないプロセスのことである。"
1919
1920 #. type: Plain text
1921 #: build/C/man2/kill.2:122 build/C/man2/pause.2:59 build/C/man2/wait.2:422
1922 msgid "SVr4, 4.3BSD, POSIX.1-2001."
1923 msgstr "SVr4, 4.3BSD, POSIX.1-2001."
1924
1925 #. type: Plain text
1926 #: build/C/man2/kill.2:130
1927 msgid ""
1928 "The only signals that can be sent to process ID 1, the I<init> process, are "
1929 "those for which I<init> has explicitly installed signal handlers.  This is "
1930 "done to assure the system is not brought down accidentally."
1931 msgstr ""
1932 "プロセス番号 1 の I<init> プロセスに送ることができるシグナルは、 I<init> が明"
1933 "示的にシグナルハンドラを設定したシグナルだけである。 こうなっているのは、誤っ"
1934 "てシステムをダウンさせないようにするためである。"
1935
1936 #. type: Plain text
1937 #: build/C/man2/kill.2:136
1938 msgid ""
1939 "POSIX.1-2001 requires that I<kill(-1,sig)> send I<sig> to all processes that "
1940 "the calling process may send signals to, except possibly for some "
1941 "implementation-defined system processes.  Linux allows a process to signal "
1942 "itself, but on Linux the call I<kill(-1,sig)> does not signal the calling "
1943 "process."
1944 msgstr ""
1945 "POSIX.1-2001 では、 I<kill(-1,sig)> が 呼び出し元のプロセスがシグナルを送るこ"
1946 "とが出来るプロセス全てに I<sig> を送ることを要求している。 但し、システム実装"
1947 "時に定められたシステムプロセスは シグナルの送信対象から除外される。 Linux で"
1948 "は、プロセスが自分自身にシグナルを送れるようになっているが、 Linux の I<kill"
1949 "(-1,sig)> は呼び出し元のプロセスにはシグナルを送らない。"
1950
1951 #. type: Plain text
1952 #: build/C/man2/kill.2:146
1953 msgid ""
1954 "POSIX.1-2001 requires that if a process sends a signal to itself, and the "
1955 "sending thread does not have the signal blocked, and no other thread has it "
1956 "unblocked or is waiting for it in B<sigwait>(3), at least one unblocked "
1957 "signal must be delivered to the sending thread before the B<kill>()  returns."
1958 msgstr ""
1959 "POSIX.1-2001 では以下の動作になることを要求している。 自分自身にシグナルを送"
1960 "ると、シグナルを送ったスレッドがそのシグナルをブロック しておらず、他のどのス"
1961 "レッドもそのシグナルを受ける状態にもなく B<sigwait>(3)  でそのシグナルを待っ"
1962 "てもいない場合、 B<kill>()  が返る前に少なくとも一つのブロックされていない シ"
1963 "グナルがシグナルを送ったスレッドに配送されなければならない。"
1964
1965 #. type: SS
1966 #: build/C/man2/kill.2:146 build/C/man3/sigpause.3:77 build/C/man2/wait.2:476
1967 #, no-wrap
1968 msgid "Linux notes"
1969 msgstr "Linux での注意"
1970
1971 #.  In the 0.* kernels things chopped and changed quite
1972 #.  a bit - MTK, 24 Jul 02
1973 #. type: Plain text
1974 #: build/C/man2/kill.2:160
1975 msgid ""
1976 "Across different kernel versions, Linux has enforced different rules for the "
1977 "permissions required for an unprivileged process to send a signal to another "
1978 "process.  In kernels 1.0 to 1.2.2, a signal could be sent if the effective "
1979 "user ID of the sender matched that of the receiver, or the real user ID of "
1980 "the sender matched that of the receiver.  From kernel 1.2.3 until 1.3.77, a "
1981 "signal could be sent if the effective user ID of the sender matched either "
1982 "the real or effective user ID of the receiver.  The current rules, which "
1983 "conform to POSIX.1-2001, were adopted in kernel 1.3.78."
1984 msgstr ""
1985 "Linux では、特権のないプロセスが他のプロセスにシグナルを送信するために 必要な"
1986 "権限についてのルールが、カーネルバージョンにより違っている。 カーネル 1.0 か"
1987 "ら 1.2.2 では、送信側の実効ユーザーID が受信側の 実効ユーザー IDと一致すれば"
1988 "シグナルを送信できた。 カーネル 1.2.3 から 1.3.77では、送信側の実効ユーザー"
1989 "ID が受信側の 実ユーザーID か実効ユーザーID のいずれかと一致すればシグナルを"
1990 "送信できた。 現在のルールは、POSIX.1-2001 に準拠しており、カーネル 1.3.78 以"
1991 "降で 適用されている。"
1992
1993 #. type: Plain text
1994 #: build/C/man2/kill.2:170
1995 msgid ""
1996 "In 2.6 kernels up to and including 2.6.7, there was a bug that meant that "
1997 "when sending signals to a process group, B<kill>()  failed with the error "
1998 "B<EPERM> if the caller did not have permission to send the signal to I<any> "
1999 "(rather than I<all>) of the members of the process group.  Notwithstanding "
2000 "this error return, the signal was still delivered to all of the processes "
2001 "for which the caller had permission to signal."
2002 msgstr ""
2003 "バージョン 2.6.7 以前の 2.6 系のカーネルには、 プロセスグループにシグナルを"
2004 "送ったときに、 呼び出し元のプロセスがプロセスグループの (全メンバーではなく) "
2005 "一部のメンバーに対してのみシグナルを送る許可を持っていない場合に、 B<kill>"
2006 "()  がエラー B<EPERM> で失敗するというバグがある。 このエラーが返るにもかかわ"
2007 "らず、そのシグナルは呼び出し元が シグナルを送る許可を持つ全てのプロセスへ送ら"
2008 "れる。"
2009
2010 #. type: Plain text
2011 #: build/C/man2/kill.2:180
2012 msgid ""
2013 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), B<sigqueue>"
2014 "(3), B<capabilities>(7), B<credentials>(7), B<signal>(7)"
2015 msgstr ""
2016 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), B<sigqueue>"
2017 "(3), B<credentials>(7), B<capabilities>(7), B<signal>(7)"
2018
2019 #. type: TH
2020 #: build/C/man2/killpg.2:42
2021 #, no-wrap
2022 msgid "KILLPG"
2023 msgstr "KILLPG"
2024
2025 #. type: TH
2026 #: build/C/man2/killpg.2:42 build/C/man3/sigset.3:26
2027 #, no-wrap
2028 msgid "2010-09-20"
2029 msgstr "2010-09-20"
2030
2031 #. type: Plain text
2032 #: build/C/man2/killpg.2:45
2033 msgid "killpg - send signal to a process group"
2034 msgstr "killpg - シグナルをプロセス・グループに送る"
2035
2036 #. type: Plain text
2037 #: build/C/man2/killpg.2:49
2038 msgid "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2039 msgstr "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2040
2041 #. type: TP
2042 #: build/C/man2/killpg.2:55
2043 #, no-wrap
2044 msgid "B<killpg>():"
2045 msgstr "B<killpg>():"
2046
2047 #. type: Plain text
2048 #: build/C/man2/killpg.2:59 build/C/man2/sigaltstack.2:46
2049 #: build/C/man3/siginterrupt.3:51 build/C/man2/wait4.2:60
2050 msgid ""
2051 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2052 "_XOPEN_SOURCE_EXTENDED"
2053 msgstr ""
2054 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2055 "_XOPEN_SOURCE_EXTENDED"
2056
2057 #. type: Plain text
2058 #: build/C/man2/killpg.2:69
2059 msgid ""
2060 "B<killpg>()  sends the signal I<sig> to the process group I<pgrp>.  See "
2061 "B<signal>(7)  for a list of signals."
2062 msgstr ""
2063 "B<killpg>()  は I<sig> で指定したシグナルを I<pgrp> で指定したプロセス・グ"
2064 "ループに送る。 シグナルの定義の一覧は B<signal>(7)  を参照のこと。"
2065
2066 #. type: Plain text
2067 #: build/C/man2/killpg.2:78
2068 msgid ""
2069 "If I<pgrp> is 0, B<killpg>()  sends the signal to the calling process's "
2070 "process group.  (POSIX says: If I<pgrp> is less than or equal to 1, the "
2071 "behavior is undefined.)"
2072 msgstr ""
2073 "引き数 I<pgrp> に 0 を指定した場合には B<killpg>()  は呼び出し元のプロセスが"
2074 "属しているプロセス・グループに対してシグナルを送る。 (POSIX では以下のように"
2075 "記述されている: I<pgrp> が 1 以下である場合、動作は未定義である。)"
2076
2077 #. type: Plain text
2078 #: build/C/man2/killpg.2:99
2079 #, fuzzy
2080 #| msgid "I<Sig> is not a valid signal number."
2081 msgid "I<sig> is not a valid signal number."
2082 msgstr "I<sig> で指定された値は無効なシグナル番号である。"
2083
2084 #. type: Plain text
2085 #: build/C/man2/killpg.2:107
2086 msgid "No process can be found in the process group specified by I<pgrp>."
2087 msgstr ""
2088 "I<pgrp> で指定されたプロセス・グループに属するプロセスが存在しなかった。"
2089
2090 #. type: Plain text
2091 #: build/C/man2/killpg.2:111
2092 msgid ""
2093 "The process group was given as 0 but the sending process does not have a "
2094 "process group."
2095 msgstr ""
2096 "プロセス・グループとして 0 が指定されたが、送信プロセスは プロセス・グループ"
2097 "を持っていない。"
2098
2099 #. type: Plain text
2100 #: build/C/man2/killpg.2:115
2101 msgid ""
2102 "SVr4, 4.4BSD (the B<killpg>()  function call first appeared in 4BSD), "
2103 "POSIX.1-2001."
2104 msgstr "SVr4, 4.4BSD (B<killpg>()  は 4BSD で初めて追加された), POSIX.1-2001。"
2105
2106 #. type: Plain text
2107 #: build/C/man2/killpg.2:129
2108 msgid ""
2109 "There are various differences between the permission checking in BSD-type "
2110 "systems and System V-type systems.  See the POSIX rationale for B<kill>().  "
2111 "A difference not mentioned by POSIX concerns the return value B<EPERM>: BSD "
2112 "documents that no signal is sent and B<EPERM> returned when the permission "
2113 "check failed for at least one target process, while POSIX documents B<EPERM> "
2114 "only when the permission check failed for all target processes."
2115 msgstr ""
2116 "BSD 系システムと System V 系システムでは、 許可のチェックに様々な違いがあ"
2117 "る。 B<kill>(2)  についての POSIX の原理 (rationale) を参照すること。 POSIX "
2118 "で記述されていない違いとしては、返り値 B<EPERM> がある。 BSD では「送信先プロ"
2119 "セスの許可のチェックが 1 つでも失敗した場合は、 シグナルが送信されず、 "
2120 "B<EPERM> が返される」と記述されている。 POSIX では「送信先プロセスの許可の"
2121 "チェックが全て失敗した場合にのみ、 B<EPERM> が返される」と記述されている。"
2122
2123 #. type: Plain text
2124 #: build/C/man2/killpg.2:134
2125 msgid ""
2126 "On Linux, B<killpg>()  is implemented as a library function that makes the "
2127 "call I<kill(-pgrp,\\ sig)>."
2128 msgstr ""
2129 "Linux では、 B<killpg>()  はライブラリ関数として実装されており、 I<kill(-"
2130 "pgrp,\\ sig)> の呼び出しが行われる。"
2131
2132 #. type: Plain text
2133 #: build/C/man2/killpg.2:140
2134 msgid ""
2135 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<capabilities>(7), B<credentials>"
2136 "(7)"
2137 msgstr ""
2138 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<credentials>(7), B<capabilities>"
2139 "(7)"
2140
2141 #. type: TH
2142 #: build/C/man2/pause.2:30
2143 #, no-wrap
2144 msgid "PAUSE"
2145 msgstr "PAUSE"
2146
2147 #. type: TH
2148 #: build/C/man2/pause.2:30
2149 #, no-wrap
2150 msgid "2008-10-06"
2151 msgstr "2008-10-06"
2152
2153 #. type: Plain text
2154 #: build/C/man2/pause.2:33
2155 msgid "pause - wait for signal"
2156 msgstr "pause - シグナルを待つ"
2157
2158 #. type: Plain text
2159 #: build/C/man2/pause.2:35
2160 msgid "B<#include E<lt>unistd.hE<gt>>"
2161 msgstr "B<#include E<lt>unistd.hE<gt>>"
2162
2163 #. type: Plain text
2164 #: build/C/man2/pause.2:37
2165 msgid "B<int pause(void);>"
2166 msgstr "B<int pause(void);>"
2167
2168 #. type: Plain text
2169 #: build/C/man2/pause.2:42
2170 msgid ""
2171 "B<pause>()  causes the calling process (or thread) to sleep until a signal "
2172 "is delivered that either terminates the process or causes the invocation of "
2173 "a signal-catching function."
2174 msgstr ""
2175 "B<pause>()  は、呼び出したプロセス (またはスレッド) を、 そのプロセスを終了さ"
2176 "せたり、シグナル捕捉関数が起動されるような シグナルが配送されるまで、スリープ"
2177 "させる。"
2178
2179 #.  .BR ERESTARTNOHAND .
2180 #. type: Plain text
2181 #: build/C/man2/pause.2:53
2182 msgid ""
2183 "B<pause>()  returns only when a signal was caught and the signal-catching "
2184 "function returned.  In this case B<pause>()  returns -1, and I<errno> is set "
2185 "to B<EINTR>."
2186 msgstr ""
2187 "B<pause>()  が返るのは、シグナルを受け取りシグナル捕獲関数から返った場合だけ"
2188 "である。 この場合は B<pause>()  は -1 を返し、 I<errno> に B<EINTR> が設定さ"
2189 "れる。"
2190
2191 #. type: TP
2192 #: build/C/man2/pause.2:54 build/C/man2/sigsuspend.2:81
2193 #: build/C/man2/sigwaitinfo.2:123 build/C/man2/wait.2:408
2194 #, no-wrap
2195 msgid "B<EINTR>"
2196 msgstr "B<EINTR>"
2197
2198 #. type: Plain text
2199 #: build/C/man2/pause.2:57
2200 msgid "a signal was caught and the signal-catching function returned."
2201 msgstr "シグナルを受け取り、シグナル捕獲関数から帰ってきた。"
2202
2203 #. type: Plain text
2204 #: build/C/man2/pause.2:64
2205 msgid "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2206 msgstr "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2207
2208 #. type: TH
2209 #: build/C/man2/prctl.2:52
2210 #, no-wrap
2211 msgid "PRCTL"
2212 msgstr "PRCTL"
2213
2214 #. type: TH
2215 #: build/C/man2/prctl.2:52
2216 #, fuzzy, no-wrap
2217 #| msgid "2013-02-25"
2218 msgid "2013-05-21"
2219 msgstr "2013-02-25"
2220
2221 #. type: Plain text
2222 #: build/C/man2/prctl.2:55
2223 msgid "prctl - operations on a process"
2224 msgstr "prctl - プロセスの操作を行なう"
2225
2226 #. type: Plain text
2227 #: build/C/man2/prctl.2:58
2228 #, no-wrap
2229 msgid "B<#include E<lt>sys/prctl.hE<gt>>\n"
2230 msgstr "B<#include E<lt>sys/prctl.hE<gt>>\n"
2231
2232 #. type: Plain text
2233 #: build/C/man2/prctl.2:61
2234 #, no-wrap
2235 msgid ""
2236 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2237 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2238 msgstr ""
2239 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2240 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2241
2242 #. type: Plain text
2243 #: build/C/man2/prctl.2:68
2244 msgid ""
2245 "B<prctl>()  is called with a first argument describing what to do (with "
2246 "values defined in I<E<lt>linux/prctl.hE<gt>>), and further arguments with a "
2247 "significance depending on the first one.  The first argument can be:"
2248 msgstr ""
2249 "B<prctl>()  の動作は最初の引き数によって決定される (この値は I<E<lt>linux/"
2250 "prctl.hE<gt>> に定義されている)。 残りの引き数は最初の引き数によって変化す"
2251 "る。 一番目の引き数として以下のものを指定できる:"
2252
2253 #. type: TP
2254 #: build/C/man2/prctl.2:68
2255 #, no-wrap
2256 msgid "B<PR_CAPBSET_READ> (since Linux 2.6.25)"
2257 msgstr "B<PR_CAPBSET_READ> (Linux 2.6.25 以降)"
2258
2259 #. type: Plain text
2260 #: build/C/man2/prctl.2:80
2261 msgid ""
2262 "Return (as the function result) 1 if the capability specified in I<arg2> is "
2263 "in the calling thread's capability bounding set, or 0 if it is not.  (The "
2264 "capability constants are defined in I<E<lt>linux/capability.hE<gt>>.)  The "
2265 "capability bounding set dictates whether the process can receive the "
2266 "capability through a file's permitted capability set on a subsequent call to "
2267 "B<execve>(2)."
2268 msgstr ""
2269 "で指定されたケーパビリティが呼び出したスレッドのケーパビリティ バインディング"
2270 "セット (capability bounding set) に含まれている場合、 (関数の返り値として) 1 "
2271 "を返し、そうでない場合 0 を返す (ケーパビリティ定数は I<E<lt>linux/"
2272 "capability.hE<gt>> で定義されている)。 ケーパビリティバウンディングセット"
2273 "は、 B<execve>(2)  を呼び出した際に、ファイルの許可 (permitted) ケーパビリ"
2274 "ティの中で そのプロセスが獲得できるケーパビリティを指示するものである。"
2275
2276 #. type: Plain text
2277 #: build/C/man2/prctl.2:85
2278 msgid ""
2279 "If the capability specified in I<arg2> is not valid, then the call fails "
2280 "with the error B<EINVAL>."
2281 msgstr ""
2282 "I<arg2> に指定されたケーパビリティが有効でない場合、 呼び出しはエラー "
2283 "B<EINVAL> で失敗する。"
2284
2285 #. type: TP
2286 #: build/C/man2/prctl.2:85
2287 #, no-wrap
2288 msgid "B<PR_CAPBSET_DROP> (since Linux 2.6.25)"
2289 msgstr "B<PR_CAPBSET_DROP> (Linux 2.6.25 以降)"
2290
2291 #. type: Plain text
2292 #: build/C/man2/prctl.2:94
2293 msgid ""
2294 "If the calling thread has the B<CAP_SETPCAP> capability, then drop the "
2295 "capability specified by I<arg2> from the calling thread's capability "
2296 "bounding set.  Any children of the calling thread will inherit the newly "
2297 "reduced bounding set."
2298 msgstr ""
2299 "呼び出したスレッドがケーパビリティ B<CAP_SETPCAP> を持っている場合、 呼び出し"
2300 "たスレッドのケーパビリティバウンディングセットから I<arg2> で指定されたケーパ"
2301 "ビリティを外す。 呼び出したスレッドの子プロセスは変更後のバウンディングセット"
2302 "を 継承する。"
2303
2304 #. type: Plain text
2305 #: build/C/man2/prctl.2:106
2306 msgid ""
2307 "The call fails with the error: B<EPERM> if the calling thread does not have "
2308 "the B<CAP_SETPCAP>; B<EINVAL> if I<arg2> does not represent a valid "
2309 "capability; or B<EINVAL> if file capabilities are not enabled in the kernel, "
2310 "in which case bounding sets are not supported."
2311 msgstr ""
2312 "呼び出したスレッドが B<CAP_SETPCAP> を持っていない場合、呼び出しはエラー "
2313 "B<EPERM> で失敗する。 I<arg2> に指定されたケーパビリティが有効でない場合、 "
2314 "B<EINVAL> で失敗する。 ファイルケーパビリティがカーネルで有効になっていない場"
2315 "合 (この場合にはバウンディングセットがサポートされない)、 B<EINVAL> で失敗す"
2316 "る。"
2317
2318 #. type: TP
2319 #: build/C/man2/prctl.2:106
2320 #, no-wrap
2321 msgid "B<PR_SET_CHILD_SUBREAPER> (since Linux 3.4)"
2322 msgstr "B<PR_SET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2323
2324 #.  commit ebec18a6d3aa1e7d84aab16225e87fd25170ec2b
2325 #. type: Plain text
2326 #: build/C/man2/prctl.2:131
2327 msgid ""
2328 "If I<arg2> is nonzero, set the \"child subreaper\" attribute of the calling "
2329 "process; if I<arg2> is zero, unset the attribute.  When a process is marked "
2330 "as a child subreaper, all of the children that it creates, and their "
2331 "descendants, will be marked as having a subreaper.  In effect, a subreaper "
2332 "fulfills the role of B<init>(1)  for its descendant processes.  Upon "
2333 "termination of a process that is orphaned (i.e., its immediate parent has "
2334 "already terminated)  and marked as having a subreaper, the nearest still "
2335 "living ancestor subreaper will receive a B<SIGCHLD> signal and be able to "
2336 "B<wait>(2)  on the process to discover its termination status."
2337 msgstr ""
2338
2339 #. type: TP
2340 #: build/C/man2/prctl.2:131
2341 #, no-wrap
2342 msgid "B<PR_GET_CHILD_SUBREAPER> (since Linux 3.4)"
2343 msgstr "B<PR_GET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2344
2345 #. type: Plain text
2346 #: build/C/man2/prctl.2:136
2347 #, fuzzy
2348 #| msgid ""
2349 #| "Return the endian-ness of the calling process, in the location pointed to "
2350 #| "by I<(int\\ *) arg2>."
2351 msgid ""
2352 "Return the \"child subreaper\" setting of the caller, in the location "
2353 "pointed to by I<(int\\ *) arg2>."
2354 msgstr ""
2355 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<(int\\ *) arg2> が指"
2356 "す場所に格納して返す。"
2357
2358 #. type: TP
2359 #: build/C/man2/prctl.2:136
2360 #, no-wrap
2361 msgid "B<PR_SET_DUMPABLE> (since Linux 2.3.20)"
2362 msgstr "B<PR_SET_DUMPABLE> (Linux 2.3.20 以降)"
2363
2364 #.  See http://marc.theaimsgroup.com/?l=linux-kernel&m=115270289030630&w=2
2365 #.  Subject:    Fix prctl privilege escalation (CVE-2006-2451)
2366 #.  From:       Marcel Holtmann <marcel () holtmann ! org>
2367 #.  Date:       2006-07-12 11:12:00
2368 #. type: Plain text
2369 #: build/C/man2/prctl.2:162
2370 msgid ""
2371 "Set the state of the flag determining whether core dumps are produced for "
2372 "the calling process upon delivery of a signal whose default behavior is to "
2373 "produce a core dump.  (Normally, this flag is set for a process by default, "
2374 "but it is cleared when a set-user-ID or set-group-ID program is executed and "
2375 "also by various system calls that manipulate process UIDs and GIDs).  In "
2376 "kernels up to and including 2.6.12, I<arg2> must be either 0 (process is not "
2377 "dumpable) or 1 (process is dumpable).  Between kernels 2.6.13 and 2.6.17, "
2378 "the value 2 was also permitted, which caused any binary which normally would "
2379 "not be dumped to be dumped readable by root only; for security reasons, this "
2380 "feature has been removed.  (See also the description of I</proc/sys/fs/"
2381 "suid_dumpable> in B<proc>(5).)  Processes that are not dumpable can not be "
2382 "attached via B<ptrace>(2)  B<PTRACE_ATTACH>."
2383 msgstr ""
2384 "(Linux 2.3.20 以降) デフォルトの振る舞いではコアダンプを引き起こすよう\n"
2385 "なシグナルを受信したときに、呼び出し元のプロセスでコアダンプを\n"
2386 "生成するかどうかを決定するフラグを\n"
2387 "設定する (通常このフラグは、デフォルトではセットされているが、\n"
2388 "set-user-ID あるいは set-group-ID プログラムが実行されたり、 さまざまな\n"
2389 "システムコールによってプロセスの UID や GID が操作されたときに クリアさ\n"
2390 "れる)。 2.6.12 以前のカーネルでは、 I<arg2> は 0 (プロセスはダンプ不可)\n"
2391 "あるいは 1 (プロセスはダンプ可能) の どちらかでなければならない。\n"
2392 "2.6.13 から 2.6.17 までのカーネルでは、値 2 も認められていた。 この値を\n"
2393 "指定すると、通常はダンプされないバイナリが root だけが 読み込み可能な形\n"
2394 "でダンプされた。 セキュリティ上の理由から、この機能は削除された\n"
2395 "(B<proc>(5) の I</proc/sys/fs/suid_dumpable> の説明も参照)。\n"
2396 "ダンプ不可のプロセスを B<ptrace>(2) B<PTRACE_ATTACH> 経由で接続すること\n"
2397 "はできない。"
2398
2399 #. type: TP
2400 #: build/C/man2/prctl.2:162
2401 #, no-wrap
2402 msgid "B<PR_GET_DUMPABLE> (since Linux 2.3.20)"
2403 msgstr "B<PR_GET_DUMPABLE> (Linux 2.3.20 以降)"
2404
2405 #.  Since Linux 2.6.13, the dumpable flag can have the value 2,
2406 #.  but in 2.6.13 PR_GET_DUMPABLE simply returns 1 if the dumpable
2407 #.  flags has a nonzero value.  This was fixed in 2.6.14.
2408 #. type: Plain text
2409 #: build/C/man2/prctl.2:169
2410 msgid ""
2411 "Return (as the function result) the current state of the calling process's "
2412 "dumpable flag."
2413 msgstr ""
2414 "(Linux 2.3.20 以降)  呼び出し元プロセスにおけるダンプ可能フラグの 現在の状態"
2415 "を (関数の返り値として) 返す。"
2416
2417 #. type: TP
2418 #: build/C/man2/prctl.2:169
2419 #, no-wrap
2420 msgid "B<PR_SET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2421 msgstr "B<PR_SET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2422
2423 #.  Respectively 0, 1, 2
2424 #. type: Plain text
2425 #: build/C/man2/prctl.2:179
2426 msgid ""
2427 "Set the endian-ness of the calling process to the value given in I<arg2>, "
2428 "which should be one of the following: B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2429 "or B<PR_ENDIAN_PPC_LITTLE> (PowerPC pseudo little endian)."
2430 msgstr ""
2431 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<arg2> で指定された値"
2432 "に設定する。 指定できる値は B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2433 "B<PR_ENDIAN_PPC_LITTLE> (PowerPC 擬似リトルエンディアン)  のいずれか一つであ"
2434 "る。"
2435
2436 #. type: TP
2437 #: build/C/man2/prctl.2:179
2438 #, no-wrap
2439 msgid "B<PR_GET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2440 msgstr "B<PR_GET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2441
2442 #. type: Plain text
2443 #: build/C/man2/prctl.2:184
2444 msgid ""
2445 "Return the endian-ness of the calling process, in the location pointed to by "
2446 "I<(int\\ *) arg2>."
2447 msgstr ""
2448 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<(int\\ *) arg2> が指"
2449 "す場所に格納して返す。"
2450
2451 #. type: TP
2452 #: build/C/man2/prctl.2:184
2453 #, no-wrap
2454 msgid "B<PR_SET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2455 msgstr "B<PR_SET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2456
2457 #. type: Plain text
2458 #: build/C/man2/prctl.2:191
2459 msgid ""
2460 "Set floating-point emulation control bits to I<arg2>.  Pass "
2461 "B<PR_FPEMU_NOPRINT> to silently emulate fp operations accesses, or "
2462 "B<PR_FPEMU_SIGFPE> to not emulate fp operations and send B<SIGFPE> instead."
2463 msgstr ""
2464 "浮動小数点エミュレーション (floating-point emulation) 制御ビットを I<arg2> で"
2465 "指定された値に設定する。 指定できる値は B<PR_FPEMU_NOPRINT> (浮動小数点命令ア"
2466 "クセスを黙って エミュレートする) か B<PR_FPEMU_SIGFPE> (浮動小数点命令をエ"
2467 "ミュレートせず、 代わりに B<SIGFPE> を送る) である。"
2468
2469 #. type: TP
2470 #: build/C/man2/prctl.2:191
2471 #, no-wrap
2472 msgid "B<PR_GET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2473 msgstr "B<PR_GET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2474
2475 #. type: Plain text
2476 #: build/C/man2/prctl.2:196
2477 msgid ""
2478 "Return floating-point emulation control bits, in the location pointed to by "
2479 "I<(int\\ *) arg2>."
2480 msgstr ""
2481 "浮動小数点エミュレーション制御ビットの値を I<(int\\ *) arg2> が指す場所に格納"
2482 "して返す。"
2483
2484 #. type: TP
2485 #: build/C/man2/prctl.2:196
2486 #, no-wrap
2487 msgid "B<PR_SET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2488 msgstr "B<PR_SET_FPEXC> (Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2489
2490 #. type: Plain text
2491 #: build/C/man2/prctl.2:209
2492 msgid ""
2493 "Set floating-point exception mode to I<arg2>.  Pass B<PR_FP_EXC_SW_ENABLE> "
2494 "to use FPEXC for FP exception enables, B<PR_FP_EXC_DIV> for floating-point "
2495 "divide by zero, B<PR_FP_EXC_OVF> for floating-point overflow, "
2496 "B<PR_FP_EXC_UND> for floating-point underflow, B<PR_FP_EXC_RES> for floating-"
2497 "point inexact result, B<PR_FP_EXC_INV> for floating-point invalid operation, "
2498 "B<PR_FP_EXC_DISABLED> for FP exceptions disabled, B<PR_FP_EXC_NONRECOV> for "
2499 "async nonrecoverable exception mode, B<PR_FP_EXC_ASYNC> for async "
2500 "recoverable exception mode, B<PR_FP_EXC_PRECISE> for precise exception mode."
2501 msgstr ""
2502 "浮動小数点例外モード (floating-point exception mode) を I<arg2> で指定された"
2503 "値に設定する。 指定できるのは以下の値である: B<PR_FP_EXC_SW_ENABLE> (FPEXC で"
2504 "浮動小数点例外を有効にする)、 B<PR_FP_EXC_DIV> (0 除算)、 B<PR_FP_EXC_OVF> "
2505 "(オーバーフロー)、 B<PR_FP_EXC_UND> (アンダーフロー)、 B<PR_FP_EXC_RES> (不正"
2506 "確な結果 (inexact result))、 B<PR_FP_EXC_INV> (不正な命令 (invalid "
2507 "operation))、 B<PR_FP_EXC_DISABLED> (浮動小数点例外を無効にする)、 "
2508 "B<PR_FP_EXC_NONRECOV> (async nonrecoverable exception mode)、 "
2509 "B<PR_FP_EXC_ASYNC> (async recoverable exception mode)、 B<PR_FP_EXC_PRECISE> "
2510 "(precise exception mode)。"
2511
2512 #. type: TP
2513 #: build/C/man2/prctl.2:209
2514 #, no-wrap
2515 msgid "B<PR_GET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2516 msgstr "B<PR_GET_FPEXC>(Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2517
2518 #. type: Plain text
2519 #: build/C/man2/prctl.2:214
2520 msgid ""
2521 "Return floating-point exception mode, in the location pointed to by I<(int\\ "
2522 "*) arg2>."
2523 msgstr ""
2524 "浮動小数点例外モードの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
2525
2526 #. type: TP
2527 #: build/C/man2/prctl.2:214
2528 #, no-wrap
2529 msgid "B<PR_SET_KEEPCAPS> (since Linux 2.2.18)"
2530 msgstr "B<PR_SET_KEEPCAPS> (Linux 2.2.18 以降)"
2531
2532 #. type: Plain text
2533 #: build/C/man2/prctl.2:232
2534 msgid ""
2535 "Set the state of the thread's \"keep capabilities\" flag, which determines "
2536 "whether the threads's permitted capability set is cleared when a change is "
2537 "made to the threads's user IDs such that the threads's real UID, effective "
2538 "UID, and saved set-user-ID all become nonzero when at least one of them "
2539 "previously had the value 0.  By default, the permitted capability set is "
2540 "cleared when such a change is made; setting the \"keep capabilities\" flag "
2541 "prevents it from being cleared.  I<arg2> must be either 0 (permitted "
2542 "capabilities are cleared)  or 1 (permitted capabilities are kept).  (A "
2543 "thread's I<effective> capability set is always cleared when such a "
2544 "credential change is made, regardless of the setting of the \"keep "
2545 "capabilities\" flag.)  The \"keep capabilities\" value will be reset to 0 on "
2546 "subsequent calls to B<execve>(2)."
2547 msgstr ""
2548 "スレッドの「ケーパビリティ保持」フラグを設定する。\n"
2549 "このフラグは、スレッドの実 UID、実効 UID、保存 set-user-ID のうち少なく\n"
2550 "とも一つが 0 であった状態から、これら全てが 0 以外に変更されたとき、\n"
2551 "スレッドの許可ケーパビリティ集合がクリアされるかどうかを決定する。\n"
2552 "デフォルトでは、このような変更が行われた場合、許可ケーパビリティセット\n"
2553 "はクリアされる。「ケーパビリティ保持」フラグを設定すると、\n"
2554 "許可ケーパビリティセットはクリアされなくなる。\n"
2555 "I<arg2> は 0 (許可ケーパビリティをクリアする) か 1 (許可ケーパビリティ\n"
2556 "を保持する) の どちらかでなければならない。\n"
2557 "(このような ID の変更が行われた場合、「ケーパビリティ保持」フラグの設定\n"
2558 "に関わらず、スレッドのI<実効>ケーパビリティセットは常にクリアされる。)\n"
2559 "B<execve>(2) が呼び出されると、「ケーパビリティ保持」フラグは 0\n"
2560 "にリセットされる。"
2561
2562 #. type: TP
2563 #: build/C/man2/prctl.2:232
2564 #, no-wrap
2565 msgid "B<PR_GET_KEEPCAPS> (since Linux 2.2.18)"
2566 msgstr "B<PR_GET_KEEPCAPS> (Linux 2.2.18 以降)"
2567
2568 #. type: Plain text
2569 #: build/C/man2/prctl.2:236
2570 msgid ""
2571 "Return (as the function result) the current state of the calling threads's "
2572 "\"keep capabilities\" flag."
2573 msgstr ""
2574 "呼び出し元スレッドにおける「ケーパビリティ保持」フラグの 現在の状態を (関数の"
2575 "返り値として) 返す。"
2576
2577 #. type: TP
2578 #: build/C/man2/prctl.2:236
2579 #, no-wrap
2580 msgid "B<PR_SET_NAME> (since Linux 2.6.9)"
2581 msgstr "B<PR_SET_NAME> (Linux 2.6.9 以降)"
2582
2583 #.  TASK_COMM_LEN in include/linux/sched.h
2584 #. type: Plain text
2585 #: build/C/man2/prctl.2:253
2586 #, fuzzy
2587 #| msgid ""
2588 #| "Set the process name for the calling thread, using the value in the "
2589 #| "location pointed to by I<(char\\ *) arg2>.  The name can be up to 16 "
2590 #| "bytes long, and should be null-terminated if it contains fewer bytes."
2591 msgid ""
2592 "Set the name of the calling thread, using the value in the location pointed "
2593 "to by I<(char\\ *) arg2>.  The name can be up to 16 bytes long, and should "
2594 "be null-terminated if it contains fewer bytes.  This is the same attribute "
2595 "that can be set via B<pthread_setname_np>(3)  and retrieved using "
2596 "B<pthread_getname_np>(3).  The attribute is likewise accessible via I</proc/"
2597 "self/task/[tid]/comm>, where I<tid> is the name of the calling thread."
2598 msgstr ""
2599 "呼び出し元スレッドのプロセス名を I<(char\\ *) arg2> が指す場所に格納された値"
2600 "を使って設定する。 名前は最大で 16 バイトであり、 それより少ないバイト数の場"
2601 "合は NULL で終端すべきである。"
2602
2603 #. type: TP
2604 #: build/C/man2/prctl.2:253
2605 #, no-wrap
2606 msgid "B<PR_GET_NAME> (since Linux 2.6.11)"
2607 msgstr "B<PR_GET_NAME> (Linux 2.6.11 以降)"
2608
2609 #. type: Plain text
2610 #: build/C/man2/prctl.2:260
2611 #, fuzzy
2612 #| msgid ""
2613 #| "Return the name for the calling thread, in the buffer pointed to by I<"
2614 #| "(char\\ *) arg2>.  The buffer should allow space for up to 16 bytes; the "
2615 #| "returned string will be null-terminated if it is shorter than that."
2616 msgid ""
2617 "Return the name of the calling thread, in the buffer pointed to by I<(char\\ "
2618 "*) arg2>.  The buffer should allow space for up to 16 bytes; the returned "
2619 "string will be null-terminated if it is shorter than that."
2620 msgstr ""
2621 "呼び出し元スレッドの名前を I<(char\\ *) arg2> が指す場所に格納して返す。 バッ"
2622 "ファは最大で 16 バイトを格納できるようにすべきである。 返される文字列は、長さ"
2623 "が 16 バイトより短い場合は NULL 終端される。"
2624
2625 #. type: TP
2626 #: build/C/man2/prctl.2:260
2627 #, no-wrap
2628 msgid "B<PR_SET_NO_NEW_PRIVS> (since Linux 3.5)"
2629 msgstr "B<PR_SET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2630
2631 #. type: Plain text
2632 #: build/C/man2/prctl.2:283
2633 msgid ""
2634 "Set the calling process's I<no_new_privs> bit to the value in I<arg2>.  With "
2635 "I<no_new_privs> set to 1, B<execve>(2)  promises not to grant privileges to "
2636 "do anything that could not have been done without the B<execve>(2)  call "
2637 "(for example, rendering the set-user-ID and set-group-ID permission bits, "
2638 "and file capabilities non-functional).  Once set, this bit cannot be unset.  "
2639 "The setting of this bit is inherited by children created by B<fork>(2)  and "
2640 "B<clone>(2), and preserved across B<execve>(2)."
2641 msgstr ""
2642
2643 #. type: Plain text
2644 #: build/C/man2/prctl.2:286
2645 msgid ""
2646 "For more information, see the kernel source file I<Documentation/prctl/"
2647 "no_new_privs.txt>."
2648 msgstr ""
2649
2650 #. type: TP
2651 #: build/C/man2/prctl.2:286
2652 #, no-wrap
2653 msgid "B<PR_GET_NO_NEW_PRIVS> (since Linux 3.5)"
2654 msgstr "B<PR_GET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2655
2656 #. type: Plain text
2657 #: build/C/man2/prctl.2:297
2658 msgid ""
2659 "Return the value of the I<no_new_privs> bit for the current process.  A "
2660 "value of 0 indicates the regular B<execve>(2)  behavior.  A value of 1 "
2661 "indicates B<execve>(2)  will operate in the privilege-restricting mode "
2662 "described above."
2663 msgstr ""
2664
2665 #. type: TP
2666 #: build/C/man2/prctl.2:297
2667 #, no-wrap
2668 msgid "B<PR_SET_PDEATHSIG> (since Linux 2.1.57)"
2669 msgstr "B<PR_SET_PDEATHSIG> (Linux 2.1.57 以降)"
2670
2671 #. type: Plain text
2672 #: build/C/man2/prctl.2:308
2673 msgid ""
2674 "Set the parent process death signal of the calling process to I<arg2> "
2675 "(either a signal value in the range 1..maxsig, or 0 to clear).  This is the "
2676 "signal that the calling process will get when its parent dies.  This value "
2677 "is cleared for the child of a B<fork>(2)  and (since Linux 2.4.36 / 2.6.23)  "
2678 "when executing a set-user-ID or set-group-ID binary."
2679 msgstr ""
2680 "親プロセス死亡シグナル (parent process death signal) を I<arg2> に設定\n"
2681 "する (設定できるシグナル値の範囲は 1..maxsig であり、0 は通知の解除であ\n"
2682 "る)。 呼び出し元プロセスの親プロセスが死んだ際に、ここで設定した値が シ\n"
2683 "グナルとして通知される。この値は B<fork>(2) の子プロセスでは解除される。\n"
2684 "(Linux 2.4.36 以降および 2.6.23 以降では) set-user-ID もしくは\n"
2685 "set-group-ID されたバイナリを実行した場合にも、このフラグは解除される。"
2686
2687 #. type: TP
2688 #: build/C/man2/prctl.2:308
2689 #, no-wrap
2690 msgid "B<PR_GET_PDEATHSIG> (since Linux 2.3.15)"
2691 msgstr "B<PR_GET_PDEATHSIG> (Linux 2.3.15 以降)"
2692
2693 #. type: Plain text
2694 #: build/C/man2/prctl.2:313
2695 msgid ""
2696 "Return the current value of the parent process death signal, in the location "
2697 "pointed to by I<(int\\ *) arg2>."
2698 msgstr ""
2699 "親プロセス死亡シグナルの現在の値を I<(int\\ *) arg2> が指す場所に格納して返"
2700 "す。"
2701
2702 #. type: TP
2703 #: build/C/man2/prctl.2:313
2704 #, no-wrap
2705 msgid "B<PR_SET_PTRACER> (since Linux 3.4)"
2706 msgstr "B<PR_SET_PTRACER> (Linux 3.4 以降)"
2707
2708 #.  commit 2d514487faf188938a4ee4fb3464eeecfbdcf8eb
2709 #.  commit bf06189e4d14641c0148bea16e9dd24943862215
2710 #. type: Plain text
2711 #: build/C/man2/prctl.2:338
2712 msgid ""
2713 "This is meaningful only when the Yama LSM is enabled and in mode 1 "
2714 "(\"restricted ptrace\", visible via I</proc/sys/kernel/yama/ptrace_scope>).  "
2715 "When a \"ptracer process ID\" is passed in I<arg2>, the caller is declaring "
2716 "that the ptracer process can B<ptrace>(2)  the calling process as if it were "
2717 "a direct process ancestor.  Each B<PR_SET_PTRACER> operation replaces the "
2718 "previous \"ptracer process ID\".  Employing B<PR_SET_PTRACER> with I<arg2> "
2719 "set to 0 clears the caller's \"ptracer process ID\".  If I<arg2> is "
2720 "B<PR_SET_PTRACER_ANY,> the ptrace restrictions introduced by Yama are "
2721 "effectively disabled for the calling process."
2722 msgstr ""
2723
2724 #. type: Plain text
2725 #: build/C/man2/prctl.2:341
2726 msgid ""
2727 "For further information, see the kernel source file I<Documentation/security/"
2728 "Yama.txt>."
2729 msgstr ""
2730
2731 #. type: TP
2732 #: build/C/man2/prctl.2:341
2733 #, no-wrap
2734 msgid "B<PR_SET_SECCOMP> (since Linux 2.6.23)"
2735 msgstr "B<PR_SET_SECCOMP> (Linux 2.6.23 以降)"
2736
2737 #.  See http://thread.gmane.org/gmane.linux.kernel/542632
2738 #.  [PATCH 0 of 2] seccomp updates
2739 #.  andrea@cpushare.com
2740 #. type: Plain text
2741 #: build/C/man2/prctl.2:352
2742 msgid ""
2743 "Set the secure computing (seccomp) mode for the calling thread, to limit the "
2744 "available system calls.  The seccomp mode is selected via I<arg2>.  (The "
2745 "seccomp constants are defined in I<E<lt>linux/seccomp.hE<gt>>.)"
2746 msgstr ""
2747
2748 #. type: Plain text
2749 #: build/C/man2/prctl.2:373
2750 #, fuzzy
2751 #| msgid ""
2752 #| "Set the secure computing mode for the calling thread.  In the current "
2753 #| "implementation, I<arg2> must be 1.  After the secure computing mode has "
2754 #| "been set to 1, the only system calls that the thread is permitted to make "
2755 #| "are B<read>(2), B<write>(2), B<_exit>(2), and B<sigreturn>(2).  Other "
2756 #| "system calls result in the delivery of a B<SIGKILL> signal.  Secure "
2757 #| "computing mode is useful for number-crunching applications that may need "
2758 #| "to execute untrusted byte code, perhaps obtained by reading from a pipe "
2759 #| "or socket.  This operation is only available if the kernel is configured "
2760 #| "with CONFIG_SECCOMP enabled."
2761 msgid ""
2762 "With I<arg2> set to B<SECCOMP_MODE_STRICT> the only system calls that the "
2763 "thread is permitted to make are B<read>(2), B<write>(2), B<_exit>(2), and "
2764 "B<sigreturn>(2).  Other system calls result in the delivery of a B<SIGKILL> "
2765 "signal.  Strict secure computing mode is useful for number-crunching "
2766 "applications that may need to execute untrusted byte code, perhaps obtained "
2767 "by reading from a pipe or socket.  This operation is available only if the "
2768 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2769 msgstr ""
2770 "呼び出したスレッドの secure computing モードを設定する。 現在の実装では、 "
2771 "I<arg2> は 1 にしなければならない。 secure computing モードを 1 に設定する"
2772 "と、 そのスレッドが呼び出しを許可されるシステムコールは B<read>(2), B<write>"
2773 "(2), B<_exit>(2), B<sigreturn>(2)  だけになる。 それ以外のシステムコールを呼"
2774 "び出すと、シグナル B<SIGKILL> が配送される。 パイプやソケットから読み込んだ、"
2775 "信頼できないバイトコードを実行する 必要がある大量の演算を行うアプリケーション"
2776 "において、 secure computing モードは役立つ。 この操作は利用できるのは、カーネ"
2777 "ルが CONFIG_SECCOMP を有効にして 作成されている場合だけである。"
2778
2779 #. type: Plain text
2780 #: build/C/man2/prctl.2:388
2781 msgid ""
2782 "With I<arg2> set to B<SECCOMP_MODE_FILTER> (since Linux 3.5)  the system "
2783 "calls allowed are defined by a pointer to a Berkeley Packet Filter passed in "
2784 "I<arg3>.  This argument is a pointer to I<struct sock_fprog>; it can be "
2785 "designed to filter arbitrary system calls and system call arguments.  This "
2786 "mode is available only if the kernel is configured with "
2787 "B<CONFIG_SECCOMP_FILTER> enabled."
2788 msgstr ""
2789
2790 #. type: Plain text
2791 #: build/C/man2/prctl.2:403
2792 msgid ""
2793 "If B<SECCOMP_MODE_FILTER> filters permit B<fork>(2), then the seccomp mode "
2794 "is inherited by children created by B<fork>(2); if B<execve>(2)  is "
2795 "permitted, then the seccomp mode is preserved across B<execve>(2).  If the "
2796 "filters permit B<prctl>()  calls, then additional filters can be added; they "
2797 "are run in order until the first non-allow result is seen."
2798 msgstr ""
2799
2800 #. type: Plain text
2801 #: build/C/man2/prctl.2:406
2802 msgid ""
2803 "For further information, see the kernel source file I<Documentation/prctl/"
2804 "seccomp_filter.txt>."
2805 msgstr ""
2806
2807 #. type: TP
2808 #: build/C/man2/prctl.2:406
2809 #, no-wrap
2810 msgid "B<PR_GET_SECCOMP> (since Linux 2.6.23)"
2811 msgstr "B<PR_GET_SECCOMP> (Linux 2.6.23 以降)"
2812
2813 #. type: Plain text
2814 #: build/C/man2/prctl.2:421
2815 #, fuzzy
2816 #| msgid ""
2817 #| "Return the secure computing mode of the calling thread.  Not very useful "
2818 #| "for the current implementation (mode equals 1), but may be useful for "
2819 #| "other possible future modes: if the caller is not in secure computing "
2820 #| "mode, this operation returns 0; if the caller is in secure computing "
2821 #| "mode, then the B<prctl>()  call will cause a B<SIGKILL> signal to be sent "
2822 #| "to the process.  This operation is only available if the kernel is "
2823 #| "configured with CONFIG_SECCOMP enabled."
2824 msgid ""
2825 "Return the secure computing mode of the calling thread.  If the caller is "
2826 "not in secure computing mode, this operation returns 0; if the caller is in "
2827 "strict secure computing mode, then the B<prctl>()  call will cause a "
2828 "B<SIGKILL> signal to be sent to the process.  If the caller is in filter "
2829 "mode, and this system call is allowed by the seccomp filters, it returns 2.  "
2830 "This operation is available only if the kernel is configured with "
2831 "B<CONFIG_SECCOMP> enabled."
2832 msgstr ""
2833 "呼び出したスレッドの secure computing モードを返す。 現在の実装 (モードは 1 "
2834 "固定) はあまり役に立たないが、 将来他のモードが実装されると役立つようになるか"
2835 "もしれない。 呼び出したスレッドが secure computing モードでなかった場合、 こ"
2836 "の操作は 0 を返す。 呼び出したスレッドが secure computing モードの場合、 "
2837 "B<prctl>()  を呼び出すとシグナル B<SIGKILL> がそのプロセスに送信される。 この"
2838 "操作が利用できるのは、カーネルが CONFIG_SECCOMP を有効にして 作成されている場"
2839 "合だけである。"
2840
2841 #. type: TP
2842 #: build/C/man2/prctl.2:421
2843 #, no-wrap
2844 msgid "B<PR_SET_SECUREBITS> (since Linux 2.6.26)"
2845 msgstr "B<PR_SET_SECUREBITS> (Linux 2.6.26 以降)"
2846
2847 #. type: Plain text
2848 #: build/C/man2/prctl.2:427
2849 msgid ""
2850 "Set the \"securebits\" flags of the calling thread to the value supplied in "
2851 "I<arg2>.  See B<capabilities>(7)."
2852 msgstr ""
2853 "呼び出したスレッドの \"securebits\" フラグを I<arg2> で渡された値に設定す"
2854 "る。 B<capabilities>(7)  参照。"
2855
2856 #. type: TP
2857 #: build/C/man2/prctl.2:427
2858 #, no-wrap
2859 msgid "B<PR_GET_SECUREBITS> (since Linux 2.6.26)"
2860 msgstr "B<PR_GET_SECUREBITS> (Linux 2.6.26 以降)"
2861
2862 #. type: Plain text
2863 #: build/C/man2/prctl.2:433
2864 msgid ""
2865 "Return (as the function result)  the \"securebits\" flags of the calling "
2866 "thread.  See B<capabilities>(7)."
2867 msgstr ""
2868 "呼び出したスレッドの \"securebits\" フラグを (関数の返り値として) 返す。 "
2869 "B<capabilities>(7)  参照。"
2870
2871 #. type: TP
2872 #: build/C/man2/prctl.2:433
2873 #, no-wrap
2874 msgid "B<PR_GET_TID_ADDRESS> (since Linux 3.5)"
2875 msgstr "B<PR_GET_TID_ADDRESS> (Linux 3.5 以降)"
2876
2877 #.  commit 300f786b2683f8bb1ec0afb6e1851183a479c86d
2878 #. type: Plain text
2879 #: build/C/man2/prctl.2:448
2880 msgid ""
2881 "Retrieve the I<clear_child_tid> address set by B<set_tid_address>(2)  and "
2882 "the B<clone>(2)  B<CLONE_CHILD_CLEARTID> flag, in the location pointed to by "
2883 "I<(int\\ **)\\ arg2>.  This feature is available only if the kernel is built "
2884 "with the B<CONFIG_CHECKPOINT_RESTORE> option enabled."
2885 msgstr ""
2886
2887 #. type: TP
2888 #: build/C/man2/prctl.2:448
2889 #, no-wrap
2890 msgid "B<PR_SET_TIMERSLACK> (since Linux 2.6.28)"
2891 msgstr "B<PR_SET_TIMERSLACK> (Linux 2.6.28 以降)"
2892
2893 #.  See https://lwn.net/Articles/369549/
2894 #.  commit 6976675d94042fbd446231d1bd8b7de71a980ada
2895 #.  It seems that it's not possible to set the timer slack to zero;
2896 #.  The minimum value is 1? Seems a little strange.
2897 #. type: Plain text
2898 #: build/C/man2/prctl.2:467
2899 msgid ""
2900 "Set the current timer slack for the calling thread to the nanosecond value "
2901 "supplied in I<arg2>.  If I<arg2> is less than or equal to zero, reset the "
2902 "current timer slack to the thread's default timer slack value.  The timer "
2903 "slack is used by the kernel to group timer expirations for the calling "
2904 "thread that are close to one another; as a consequence, timer expirations "
2905 "for the thread may be up to the specified number of nanoseconds late (but "
2906 "will never expire early).  Grouping timer expirations can help reduce system "
2907 "power consumption by minimizing CPU wake-ups."
2908 msgstr ""
2909
2910 #.  List obtained by grepping for futex usage in glibc source
2911 #. type: Plain text
2912 #: build/C/man2/prctl.2:487
2913 msgid ""
2914 "The timer expirations affected by timer slack are those set by B<select>(2), "
2915 "B<pselect>(2), B<poll>(2), B<ppoll>(2), B<epoll_wait>(2), B<epoll_pwait>(2), "
2916 "B<clock_nanosleep>(2), B<nanosleep>(2), and B<futex>(2)  (and thus the "
2917 "library functions implemented via futexes, including "
2918 "B<pthread_cond_timedwait>(3), B<pthread_mutex_timedlock>(3), "
2919 "B<pthread_rwlock_timedrdlock>(3), B<pthread_rwlock_timedwrlock>(3), and "
2920 "B<sem_timedwait>(3))."
2921 msgstr ""
2922
2923 #. type: Plain text
2924 #: build/C/man2/prctl.2:491
2925 msgid ""
2926 "Timer slack is not applied to threads that are scheduled under a realtime "
2927 "scheduling policy (see B<sched_setscheduler>(2))."
2928 msgstr ""
2929
2930 #. type: Plain text
2931 #: build/C/man2/prctl.2:508
2932 msgid ""
2933 "Each thread has two associated timer slack values: a \"default\" value, and "
2934 "a \"current\" value.  The current value is the one that governs grouping of "
2935 "timer expirations.  When a new thread is created, the two timer slack values "
2936 "are made the same as the current value of the creating thread.  Thereafter, "
2937 "a thread can adjust its current timer slack value via B<PR_SET_TIMERSLACK> "
2938 "(the default value can't be changed).  The timer slack values of I<init> "
2939 "(PID 1), the ancestor of all processes, are 50,000 nanoseconds (50 "
2940 "microseconds).  The timer slack values are preserved across B<execve>(2)."
2941 msgstr ""
2942
2943 #. type: TP
2944 #: build/C/man2/prctl.2:508
2945 #, no-wrap
2946 msgid "B<PR_GET_TIMERSLACK> (since Linux 2.6.28)"
2947 msgstr "B<PR_GET_TIMERSLACK> (Linux 2.6.28 以降)"
2948
2949 #. type: Plain text
2950 #: build/C/man2/prctl.2:511
2951 msgid "Return the current timer slack value of the calling thread."
2952 msgstr ""
2953
2954 #. type: TP
2955 #: build/C/man2/prctl.2:511
2956 #, no-wrap
2957 msgid "B<PR_SET_TIMING> (since Linux 2.6.0-test4)"
2958 msgstr "B<PR_SET_TIMING> (Linux 2.6.0-test4 以降)"
2959
2960 #.  0
2961 #.  1
2962 #.  PR_TIMING_TIMESTAMP doesn't do anything in 2.6.26-rc8,
2963 #.  and looking at the patch history, it appears
2964 #.  that it never did anything.
2965 #. type: Plain text
2966 #: build/C/man2/prctl.2:528
2967 msgid ""
2968 "Set whether to use (normal, traditional) statistical process timing or "
2969 "accurate timestamp-based process timing, by passing B<PR_TIMING_STATISTICAL> "
2970 "or B<PR_TIMING_TIMESTAMP> to I<arg2>.  B<PR_TIMING_TIMESTAMP> is not "
2971 "currently implemented (attempting to set this mode will yield the error "
2972 "B<EINVAL>)."
2973 msgstr ""
2974 "(通常の、伝統的に使われてきた) 統計的なプロセスタイミングを使用するか、\n"
2975 "正確なタイムスタンプに基づくプロセスタイミングを使用するかを設定する。\n"
2976 "I<arg2> に指定できる値は B<PR_TIMING_STATISTICAL> か\n"
2977 "B<PR_TIMING_TIMESTAMP> である。 B<PR_TIMING_TIMESTAMP> は現在のところ実\n"
2978 "装されていない (このモードに設定しようとするとエラー B<EINVAL> が起こる\n"
2979 "ことだろう)。"
2980
2981 #. type: TP
2982 #: build/C/man2/prctl.2:528
2983 #, no-wrap
2984 msgid "B<PR_GET_TIMING> (since Linux 2.6.0-test4)"
2985 msgstr "B<PR_GET_TIMING> (Linux 2.6.0-test4 以降)"
2986
2987 #. type: Plain text
2988 #: build/C/man2/prctl.2:532
2989 msgid ""
2990 "Return (as the function result) which process timing method is currently in "
2991 "use."
2992 msgstr "現在使用中のプロセスタイミングを決める方法を返す。"
2993
2994 #. type: TP
2995 #: build/C/man2/prctl.2:532
2996 #, no-wrap
2997 msgid "B<PR_TASK_PERF_EVENTS_DISABLE> (since Linux 2.6.31)"
2998 msgstr "B<PR_TASK_PERF_EVENTS_DISABLE> (Linux 2.6.31 以降)"
2999
3000 #. type: Plain text
3001 #: build/C/man2/prctl.2:541
3002 msgid ""
3003 "Disable all performance counters attached to the calling process, regardless "
3004 "of whether the counters were created by this process or another process.  "
3005 "Performance counters created by the calling process for other processes are "
3006 "unaffected.  For more information on performance counters, see the Linux "
3007 "kernel source file I<tools/perf/design.txt>."
3008 msgstr ""
3009
3010 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3011 #. type: Plain text
3012 #: build/C/man2/prctl.2:547
3013 msgid ""
3014 "Originally called B<PR_TASK_PERF_COUNTERS_DISABLE>; renamed (with same "
3015 "numerical value)  in Linux 2.6.32."
3016 msgstr ""
3017 "以前は B<PR_TASK_PERF_COUNTERS_DISABLE> と呼ばれていた。\n"
3018 "Linux 2.6.32 で名前が変更された (数値は同じままである)。"
3019
3020 #. type: TP
3021 #: build/C/man2/prctl.2:547
3022 #, no-wrap
3023 msgid "B<PR_TASK_PERF_EVENTS_ENABLE> (since Linux 2.6.31)"
3024 msgstr "B<PR_TASK_PERF_EVENTS_ENABLE> (Linux 2.6.31 以降)"
3025
3026 #. type: Plain text
3027 #: build/C/man2/prctl.2:552
3028 msgid ""
3029 "The converse of B<PR_TASK_PERF_EVENTS_DISABLE>; enable performance counters "
3030 "attached to the calling process."
3031 msgstr ""
3032
3033 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3034 #.  commit cdd6c482c9ff9c55475ee7392ec8f672eddb7be6
3035 #. type: Plain text
3036 #: build/C/man2/prctl.2:559
3037 msgid ""
3038 "Originally called B<PR_TASK_PERF_COUNTERS_ENABLE>; renamed in Linux 2.6.32."
3039 msgstr ""
3040 "以前は B<PR_TASK_PERF_COUNTERS_ENABLE> と呼ばれていた。\n"
3041 "Linux 2.6.32 で名前が変更された。"
3042
3043 #. type: TP
3044 #: build/C/man2/prctl.2:559
3045 #, no-wrap
3046 msgid "B<PR_SET_TSC> (since Linux 2.6.26, x86 only)"
3047 msgstr "B<PR_SET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3048
3049 #. type: Plain text
3050 #: build/C/man2/prctl.2:572
3051 msgid ""
3052 "Set the state of the flag determining whether the timestamp counter can be "
3053 "read by the process.  Pass B<PR_TSC_ENABLE> to I<arg2> to allow it to be "
3054 "read, or B<PR_TSC_SIGSEGV> to generate a B<SIGSEGV> when the process tries "
3055 "to read the timestamp counter."
3056 msgstr ""
3057 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態を"
3058 "設定する。 読み出しを許可する場合は I<arg2> に B<PR_TSC_ENABLE> を、そのプロ"
3059 "セスがタイムスタンプ・カウンタを読み出そうとした際に B<SIGSEGV> を発生させる"
3060 "場合には B<PR_TSC_SIGSEGV> を渡す。"
3061
3062 #. type: TP
3063 #: build/C/man2/prctl.2:572
3064 #, no-wrap
3065 msgid "B<PR_GET_TSC> (since Linux 2.6.26, x86 only)"
3066 msgstr "B<PR_GET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3067
3068 #. type: Plain text
3069 #: build/C/man2/prctl.2:578
3070 msgid ""
3071 "Return the state of the flag determining whether the timestamp counter can "
3072 "be read, in the location pointed to by I<(int\\ *) arg2>."
3073 msgstr ""
3074 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態"
3075 "を I<(int\\ *) arg2> が指す場所に格納して返す。"
3076
3077 #. type: TP
3078 #: build/C/man2/prctl.2:578
3079 #, no-wrap
3080 msgid "B<PR_SET_UNALIGN>"
3081 msgstr "B<PR_SET_UNALIGN>"
3082
3083 #. type: Plain text
3084 #: build/C/man2/prctl.2:588
3085 msgid ""
3086 "(Only on: ia64, since Linux 2.3.48; parisc, since Linux 2.6.15; PowerPC, "
3087 "since Linux 2.6.18; Alpha, since Linux 2.6.22)  Set unaligned access control "
3088 "bits to I<arg2>.  Pass B<PR_UNALIGN_NOPRINT> to silently fix up unaligned "
3089 "user accesses, or B<PR_UNALIGN_SIGBUS> to generate B<SIGBUS> on unaligned "
3090 "user access."
3091 msgstr ""
3092 "(ia64 では Linux 2.3.48 以降; parisc では Linux 2.6.15 以降; PowerPC では "
3093 "Linux 2.6.18 以降; Alpha では Linux 2.6.22 以降; これらのアーキテクチャの"
3094 "み)  unaligned アクセス制御ビットを I<arg2> で指定された値に設定する。 指定で"
3095 "きる値は B<PR_UNALIGN_NOPRINT> (unaligned なユーザアクセスを黙って 修正する) "
3096 "か B<PR_UNALIGN_SIGBUS> (unaligned なユーザアクセスがあった場合 B<SIGBUS> を"
3097 "生成する) である。"
3098
3099 #. type: TP
3100 #: build/C/man2/prctl.2:588
3101 #, no-wrap
3102 msgid "B<PR_GET_UNALIGN>"
3103 msgstr "B<PR_GET_UNALIGN>"
3104
3105 #. type: Plain text
3106 #: build/C/man2/prctl.2:595
3107 msgid ""
3108 "(see B<PR_SET_UNALIGN> for information on versions and architectures)  "
3109 "Return unaligned access control bits, in the location pointed to by I<(int\\ "
3110 "*) arg2>."
3111 msgstr ""
3112 "(バージョンとアーキテクチャの情報は B<PR_SET_UNALIGN> 参照)  unaligned アクセ"
3113 "ス制御ビットの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
3114
3115 #. type: TP
3116 #: build/C/man2/prctl.2:595
3117 #, no-wrap
3118 msgid "B<PR_MCE_KILL> (since Linux 2.6.32)"
3119 msgstr "B<PR_MCE_KILL> (Linux 2.6.32 以降)"
3120
3121 #. type: Plain text
3122 #: build/C/man2/prctl.2:635
3123 msgid ""
3124 "Set the machine check memory corruption kill policy for the current thread.  "
3125 "If I<arg2> is B<PR_MCE_KILL_CLEAR>, clear the thread memory corruption kill "
3126 "policy and use the system-wide default.  (The system-wide default is defined "
3127 "by I</proc/sys/vm/memory_failure_early_kill>; see B<proc>(5).)  If I<arg2> "
3128 "is B<PR_MCE_KILL_SET>, use a thread-specific memory corruption kill policy.  "
3129 "In this case, I<arg3> defines whether the policy is I<early kill> "
3130 "(B<PR_MCE_KILL_EARLY>), I<late kill> (B<PR_MCE_KILL_LATE>), or the system-"
3131 "wide default (B<PR_MCE_KILL_DEFAULT>).  Early kill means that the thread "
3132 "receives a B<SIGBUS> signal as soon as hardware memory corruption is "
3133 "detected inside its address space.  In late kill mode, the process is killed "
3134 "only when it accesses a corrupted page.  See B<sigaction>(2)  for more "
3135 "information on the B<SIGBUS> signal.  The policy is inherited by children.  "
3136 "The remaining unused B<prctl>()  arguments must be zero for future "
3137 "compatibility."
3138 msgstr ""
3139
3140 #. type: TP
3141 #: build/C/man2/prctl.2:635
3142 #, no-wrap
3143 msgid "B<PR_MCE_KILL_GET> (since Linux 2.6.32)"
3144 msgstr "B<PR_MCE_KILL_GET> (Linux 2.6.32 以降)"
3145
3146 #. type: Plain text
3147 #: build/C/man2/prctl.2:641
3148 msgid ""
3149 "Return the current per-process machine check kill policy.  All unused "
3150 "B<prctl>()  arguments must be zero."
3151 msgstr ""
3152
3153 #. type: TP
3154 #: build/C/man2/prctl.2:641
3155 #, no-wrap
3156 msgid "B<PR_SET_MM> (since Linux 3.3)"
3157 msgstr "B<PR_SET_MM> (Linux 3.3 以降)"
3158
3159 #. type: Plain text
3160 #: build/C/man2/prctl.2:661
3161 msgid ""
3162 "Modify certain kernel memory map descriptor fields of the calling process.  "
3163 "Usually these fields are set by the kernel and dynamic loader (see B<ld.so>"
3164 "(8)  for more information) and a regular application should not use this "
3165 "feature.  However, there are cases, such as self-modifying programs, where a "
3166 "program might find it useful to change its own memory map.  This feature is "
3167 "available only if the kernel is built with the B<CONFIG_CHECKPOINT_RESTORE> "
3168 "option enabled.  The calling process must have the B<CAP_SYS_RESOURCE> "
3169 "capability.  The value in I<arg2> is one of the options below, while I<arg3> "
3170 "provides a new value for the option."
3171 msgstr ""
3172
3173 #. type: TP
3174 #: build/C/man2/prctl.2:662
3175 #, no-wrap
3176 msgid "B<PR_SET_MM_START_CODE>"
3177 msgstr "B<PR_SET_MM_START_CODE>"
3178
3179 #. type: Plain text
3180 #: build/C/man2/prctl.2:671
3181 msgid ""
3182 "Set the address above which the program text can run.  The corresponding "
3183 "memory area must be readable and executable, but not writable or sharable "
3184 "(see B<mprotect>(2)  and B<mmap>(2)  for more information)."
3185 msgstr ""
3186
3187 #. type: TP
3188 #: build/C/man2/prctl.2:671
3189 #, no-wrap
3190 msgid "B<PR_SET_MM_END_CODE>"
3191 msgstr "B<PR_SET_MM_END_CODE>"
3192
3193 #. type: Plain text
3194 #: build/C/man2/prctl.2:676
3195 msgid ""
3196 "Set the address below which the program text can run.  The corresponding "
3197 "memory area must be readable and executable, but not writable or sharable."
3198 msgstr ""
3199
3200 #. type: TP
3201 #: build/C/man2/prctl.2:676
3202 #, no-wrap
3203 msgid "B<PR_SET_MM_START_DATA>"
3204 msgstr "B<PR_SET_MM_START_DATA>"
3205
3206 #. type: Plain text
3207 #: build/C/man2/prctl.2:682
3208 msgid ""
3209 "Set the address above which initialized and uninitialized (bss) data are "
3210 "placed.  The corresponding memory area must be readable and writable, but "
3211 "not executable or sharable."
3212 msgstr ""
3213
3214 #. type: TP
3215 #: build/C/man2/prctl.2:682
3216 #, no-wrap
3217 msgid "B<PR_SET_MM_END_DATA>"
3218 msgstr "B<PR_SET_MM_END_DATA>"
3219
3220 #. type: Plain text
3221 #: build/C/man2/prctl.2:688
3222 msgid ""
3223 "Set the address below which initialized and uninitialized (bss) data are "
3224 "placed.  The corresponding memory area must be readable and writable, but "
3225 "not executable or sharable."
3226 msgstr ""
3227
3228 #. type: TP
3229 #: build/C/man2/prctl.2:688
3230 #, no-wrap
3231 msgid "B<PR_SET_MM_START_STACK>"
3232 msgstr "B<PR_SET_MM_START_STACK>"
3233
3234 #. type: Plain text
3235 #: build/C/man2/prctl.2:692
3236 msgid ""
3237 "Set the start address of the stack.  The corresponding memory area must be "
3238 "readable and writable."
3239 msgstr ""
3240
3241 #. type: TP
3242 #: build/C/man2/prctl.2:692
3243 #, no-wrap
3244 msgid "B<PR_SET_MM_START_BRK>"
3245 msgstr "B<PR_SET_MM_START_BRK>"
3246
3247 #. type: Plain text
3248 #: build/C/man2/prctl.2:704
3249 msgid ""
3250 "Set the address above which the program heap can be expanded with B<brk>(2)  "
3251 "call.  The address must be greater than the ending address of the current "
3252 "program data segment.  In addition, the combined size of the resulting heap "
3253 "and the size of the data segment can't exceed the B<RLIMIT_DATA> resource "
3254 "limit (see B<setrlimit>(2))."
3255 msgstr ""
3256
3257 #. type: TP
3258 #: build/C/man2/prctl.2:704
3259 #, no-wrap
3260 msgid "B<PR_SET_MM_BRK>"
3261 msgstr "B<PR_SET_MM_BRK>"
3262
3263 #.  FIXME The following (until ========) is not yet in mainline kernel,
3264 #.  so commented out for the moment.
3265 #.  .TP
3266 #.  .BR PR_SET_MM_ARG_START
3267 #.  Set the address above which the program command line is placed.
3268 #.  .TP
3269 #.  .BR PR_SET_MM_ARG_END
3270 #.  Set the address below which the program command line is placed.
3271 #.  .TP
3272 #.  .BR PR_SET_MM_ENV_START
3273 #.  Set the address above which the program environment is placed.
3274 #.  .TP
3275 #.  .BR PR_SET_MM_ENV_END
3276 #.  Set the address below which the program environment is placed.
3277 #.  .IP
3278 #.  The address passed with
3279 #.  .BR PR_SET_MM_ARG_START ,
3280 #.  .BR PR_SET_MM_ARG_END ,
3281 #.  .BR PR_SET_MM_ENV_START ,
3282 #.  and
3283 #.  .BR PR_SET_MM_ENV_END
3284 #.  should belong to a process stack area.
3285 #.  Thus, the corresponding memory area must be readable, writable, and
3286 #.  (depending on the kernel configuration) have the
3287 #.  .BR MAP_GROWSDOWN
3288 #.  attribute set (see
3289 #.  .BR mmap (2)).
3290 #.  .TP
3291 #.  .BR PR_SET_MM_AUXV
3292 #.  Set a new auxiliary vector.
3293 #.  The
3294 #.  .I arg3
3295 #.  argument should provide the address of the vector.
3296 #.  The
3297 #.  .I arg4
3298 #.  is the size of the vector.
3299 #.  .TP
3300 #.  .BR PR_SET_MM_EXE_FILE
3301 #.  Supersede the
3302 #.  .IR /proc/pid/exe
3303 #.  symbolic link with a new one pointing to a new executable file
3304 #.  identified by the file descriptor provided in
3305 #.  .I arg3
3306 #.  argument.
3307 #.  The file descriptor should be obtained with a regular
3308 #.  .BR open (2)
3309 #.  call.
3310 #.  .IP
3311 #.  To change the symbolic link, one needs to unmap all existing
3312 #.  executable memory areas, including those created by the kernel itself
3313 #.  (for example the kernel usually creates at least one executable
3314 #.  memory area for the ELF
3315 #.  .IR .text
3316 #.  section).
3317 #.  .IP
3318 #.  The second limitation is that such transitions can be done only once
3319 #.  in a process life time.
3320 #.  Any further attempts will be rejected.
3321 #.  This should help system administrators to monitor unusual
3322 #.  symbolic-link transitions over all process running in a system.
3323 #.  ========== END FIXME
3324 #. type: Plain text
3325 #: build/C/man2/prctl.2:773
3326 msgid ""
3327 "Set the current B<brk>(2)  value.  The requirements for the address are the "
3328 "same as for the B<PR_SET_MM_START_BRK> option."
3329 msgstr ""
3330
3331 #. type: Plain text
3332 #: build/C/man2/prctl.2:793
3333 msgid ""
3334 "On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3335 "B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, B<PR_GET_SECUREBITS>, "
3336 "B<PR_MCE_KILL_GET>, and (if it returns)  B<PR_GET_SECCOMP> return the "
3337 "nonnegative values described above.  All other I<option> values return 0 on "
3338 "success.  On error, -1 is returned, and I<errno> is set appropriately."
3339 msgstr ""
3340 "成功すると、 B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, "
3341 "B<PR_GET_NO_NEW_PRIVS>,\n"
3342 "B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, B<PR_GET_SECUREBITS>,\n"
3343 "B<PR_MCE_KILL_GET>, B<PR_GET_SECCOMP> は上述の負でない値を返す (なお、\n"
3344 "B<PR_GET_SECCOMP> は返らない場合もある)。 I<option> が他の値の場合は\n"
3345 "成功時に 0 を返す。\n"
3346 "エラーの場合、-1 を返し、 I<errno> に適切な値を設定する。"
3347
3348 #. type: Plain text
3349 #: build/C/man2/prctl.2:798
3350 msgid "I<arg2> is an invalid address."
3351 msgstr "I<arg2> が不正なアドレスである。"
3352
3353 #. type: Plain text
3354 #: build/C/man2/prctl.2:803
3355 msgid "The value of I<option> is not recognized."
3356 msgstr "I<option> の値が理解できない。"
3357
3358 #. type: Plain text
3359 #: build/C/man2/prctl.2:815
3360 msgid ""
3361 "I<option> is B<PR_MCE_KILL> or B<PR_MCE_KILL_GET> or B<PR_SET_MM>, and "
3362 "unused B<prctl>()  arguments were not specified as zero."
3363 msgstr ""
3364
3365 #. type: Plain text
3366 #: build/C/man2/prctl.2:820
3367 msgid "I<arg2> is not valid value for this I<option>."
3368 msgstr "I<arg2> が指定された I<option> で有効な値ではない。"
3369
3370 #. type: Plain text
3371 #: build/C/man2/prctl.2:829
3372 msgid ""
3373 "I<option> is B<PR_SET_SECCOMP> or B<PR_GET_SECCOMP>, and the kernel was not "
3374 "configured with B<CONFIG_SECCOMP>."
3375 msgstr ""
3376 "I<option> が B<PR_SET_SECCOMP> か B<PR_GET_SECCOMP> だが、カーネルが "
3377 "B<CONFIG_SECCOMP> を有効にして作成されていなかった。"
3378
3379 #. type: Plain text
3380 #: build/C/man2/prctl.2:835
3381 msgid "I<option> is B<PR_SET_MM>, and one of the following is true"
3382 msgstr ""
3383
3384 #. type: Plain text
3385 #: build/C/man2/prctl.2:841
3386 msgid "I<arg4> or I<arg5> is nonzero;"
3387 msgstr ""
3388
3389 #. type: Plain text
3390 #: build/C/man2/prctl.2:846
3391 msgid ""
3392 "I<arg3> is greater than B<TASK_SIZE> (the limit on the size of the user "
3393 "address space for this architecture);"
3394 msgstr ""
3395
3396 #. type: Plain text
3397 #: build/C/man2/prctl.2:856
3398 msgid ""
3399 "I<arg2> is B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3400 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, or B<PR_SET_MM_START_STACK,> "
3401 "and the permissions of the corresponding memory area are not as required;"
3402 msgstr ""
3403
3404 #. type: Plain text
3405 #: build/C/man2/prctl.2:868
3406 msgid ""
3407 "I<arg2> is B<PR_SET_MM_START_BRK> or B<PR_SET_MM_BRK>, and I<arg3> is less "
3408 "than or equal to the end of the data segment or specifies a value that would "
3409 "cause the B<RLIMIT_DATA> resource limit to be exceeded."
3410 msgstr ""
3411
3412 #. type: Plain text
3413 #: build/C/man2/prctl.2:879
3414 msgid ""
3415 "I<option> is B<PR_SET_PTRACER> and I<arg2> is not 0, B<PR_SET_PTRACER_ANY>, "
3416 "or the PID of an existing process."
3417 msgstr ""
3418
3419 #. type: Plain text
3420 #: build/C/man2/prctl.2:891
3421 msgid ""
3422 "I<option> is B<PR_SET_SECUREBITS>, and the caller does not have the "
3423 "B<CAP_SETPCAP> capability, or tried to unset a \"locked\" flag, or tried to "
3424 "set a flag whose corresponding locked flag was set (see B<capabilities>(7))."
3425 msgstr ""
3426 "I<option> が B<PR_SET_SECUREBITS> で、呼び出し元がケーパビリティ "
3427 "B<CAP_SETPCAP> を持っていない。 または、\"locked\" フラグを解除しようとし"
3428 "た。 または、locked フラグがセットされているフラグをセットしようとした "
3429 "(B<capabilities>(7)  参照)。"
3430
3431 #. type: Plain text
3432 #: build/C/man2/prctl.2:901
3433 msgid ""
3434 "I<option> is B<PR_SET_KEEPCAPS>, and the callers's "
3435 "B<SECURE_KEEP_CAPS_LOCKED> flag is set (see B<capabilities>(7))."
3436 msgstr ""
3437 "I<option> が B<PR_SET_KEEPCAPS> で、呼び出し元のフラグ "
3438 "B<SECURE_KEEP_CAPS_LOCKED> がセットされている (B<capabilities>(7)  参照)。"
3439
3440 #. type: Plain text
3441 #: build/C/man2/prctl.2:909
3442 msgid ""
3443 "I<option> is B<PR_CAPBSET_DROP>, and the caller does not have the "
3444 "B<CAP_SETPCAP> capability."
3445 msgstr ""
3446 "I<option> が B<PR_CAPBSET_DROP> で、呼び出し元がケーパビリティ "
3447 "B<CAP_SETPCAP> を持っていない。"
3448
3449 #.  FIXME The following (until ========) is not yet in mainline kernel,
3450 #.  so commented out for the moment.
3451 #.  .TP
3452 #.  .B EACCES
3453 #.  .I option
3454 #.  is
3455 #.  .BR PR_SET_MM ,
3456 #.  and
3457 #.  .I arg3
3458 #.  is
3459 #.  .BR PR_SET_MM_EXE_FILE ,
3460 #.  the file is not executable.
3461 #.  .TP
3462 #.  .B EBUSY
3463 #.  .I option
3464 #.  is
3465 #.  .BR PR_SET_MM ,
3466 #.  .I arg3
3467 #.  is
3468 #.  .BR PR_SET_MM_EXE_FILE ,
3469 #.  and this the second attempt to change the
3470 #.  .I /proc/pid/exe
3471 #.  symbolic link, which is prohibited.
3472 #.  .TP
3473 #.  .B EBADF
3474 #.  .I option
3475 #.  is
3476 #.  .BR PR_SET_MM ,
3477 #.  .I arg3
3478 #.  is
3479 #.  .BR PR_SET_MM_EXE_FILE ,
3480 #.  and the file descriptor passed in
3481 #.  .I arg4
3482 #.  is not valid.
3483 #.  ========== END FIXME
3484 #.  The following can't actually happen, because prctl() in
3485 #.  seccomp mode will cause SIGKILL.
3486 #.  .TP
3487 #.  .B EPERM
3488 #.  .I option
3489 #.  is
3490 #.  .BR PR_SET_SECCOMP ,
3491 #.  and secure computing mode is already 1.
3492 #. type: Plain text
3493 #: build/C/man2/prctl.2:960
3494 msgid ""
3495 "I<option> is B<PR_SET_MM>, and the caller does not have the "
3496 "B<CAP_SYS_RESOURCE> capability."
3497 msgstr ""
3498 "I<option> が B<PR_SET_MM> で、呼び出し元がケーパビリティ\n"
3499 "B<CAP_SYS_RESOURCE> を持っていない。"
3500
3501 #.  The library interface was added in glibc 2.0.6
3502 #. type: Plain text
3503 #: build/C/man2/prctl.2:965
3504 msgid "The B<prctl>()  system call was introduced in Linux 2.1.57."
3505 msgstr "B<prctl>()  システムコールは Linux 2.1.57 で導入された。"
3506
3507 #. type: Plain text
3508 #: build/C/man2/prctl.2:972
3509 msgid ""
3510 "This call is Linux-specific.  IRIX has a B<prctl>()  system call (also "
3511 "introduced in Linux 2.1.44 as irix_prctl on the MIPS architecture), with "
3512 "prototype"
3513 msgstr ""
3514 "このコールは Linux 特有である。 IRIX には B<prctl>()  システム・コールがある"
3515 "が (MIPS アーキテクチャにおいて irix_prctl として Linux 2.1.44 で同様に導入さ"
3516 "れた)、 そのプロトタイプは"
3517
3518 #. type: Plain text
3519 #: build/C/man2/prctl.2:974
3520 msgid "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3521 msgstr "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3522
3523 #. type: Plain text
3524 #: build/C/man2/prctl.2:979
3525 msgid ""
3526 "and options to get the maximum number of processes per user, get the maximum "
3527 "number of processors the calling process can use, find out whether a "
3528 "specified process is currently blocked, get or set the maximum stack size, "
3529 "and so on."
3530 msgstr ""
3531 "である。ユーザー当りのプロセス最大数を取得するオプション、 プロセスの使用でき"
3532 "る最大プロッサー数を取得するオプション、 現在特定のプロセスが停止(block)させ"
3533 "られているかどうか調べるオプション、 スタックサイズの最大値の取得や設定を行な"
3534 "うオプションなどがある。"
3535
3536 #. type: Plain text
3537 #: build/C/man2/prctl.2:982
3538 msgid "B<signal>(2), B<core>(5)"
3539 msgstr "B<signal>(2), B<core>(5)"
3540
3541 #. type: TH
3542 #: build/C/man3/profil.3:28
3543 #, no-wrap
3544 msgid "PROFIL"
3545 msgstr "PROFIL"
3546
3547 #. type: Plain text
3548 #: build/C/man3/profil.3:31
3549 msgid "profil - execution time profile"
3550 msgstr "profil - 実行時間プロファイル (profile)"
3551
3552 #. type: Plain text
3553 #: build/C/man3/profil.3:34
3554 #, fuzzy, no-wrap
3555 #| msgid "B<#include E<lt>unistd.hE<gt>>"
3556 msgid "B<#include E<lt>unistd.hE<gt>>\n"
3557 msgstr "B<#include E<lt>unistd.hE<gt>>"
3558
3559 #. type: Plain text
3560 #: build/C/man3/profil.3:37
3561 #, fuzzy, no-wrap
3562 #| msgid "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<, size_t >I<offset>B<, unsigned int >I<scale>B<);>"
3563 msgid ""
3564 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3565 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3566 msgstr "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<, size_t >I<offset>B<, unsigned int >I<scale>B<);>"
3567
3568 #. type: Plain text
3569 #: build/C/man3/profil.3:46
3570 msgid ""
3571 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3572 msgstr ""
3573 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3574
3575 #. type: Plain text
3576 #: build/C/man3/profil.3:68
3577 msgid ""
3578 "This routine provides a means to find out in what areas your program spends "
3579 "most of its time.  The argument I<buf> points to I<bufsiz> bytes of core.  "
3580 "Every virtual 10 milliseconds, the user's program counter (PC)  is examined: "
3581 "I<offset> is subtracted and the result is multiplied by I<scale> and divided "
3582 "by 65536.  If the resulting value is less than I<bufsiz>, then the "
3583 "corresponding entry in I<buf> is incremented.  If I<buf> is NULL, profiling "
3584 "is disabled."
3585 msgstr ""
3586 "このルーティンはプログラムのどこの部分で時間を費やしているかを調べる 手段を提"
3587 "供する。引き数 I<buf> は I<bufsiz> バイトのメモリを指している。仮想の 10 ミリ"
3588 "秒ごとに、ユーザーの プログラム・カウンター (PC) が検査される: I<offset> が引"
3589 "かれ、その結果が I<scale> 倍され 65536 で割られる。 結果が I<bufsiz> より小さ"
3590 "い場合は I<buf> の対応するエントリがインクリメントされる。 I<buf> が NULL な"
3591 "らば、プロファイル (profile) は無効にされる。"
3592
3593 #. type: Plain text
3594 #: build/C/man3/profil.3:70
3595 msgid "Zero is always returned."
3596 msgstr "常に 0 が返される。"
3597
3598 #. type: Plain text
3599 #: build/C/man3/profil.3:72
3600 msgid "Similar to a call in SVr4 (but not POSIX.1-2001)."
3601 msgstr "SVr4 のコールに似ている (しかし POSIX.1-2001 ではない)。"
3602
3603 #. type: Plain text
3604 #: build/C/man3/profil.3:78
3605 msgid ""
3606 "B<profil>()  cannot be used on a program that also uses B<ITIMER_PROF> "
3607 "interval timers (see B<setitimer>(2))."
3608 msgstr ""
3609 "B<profil>()  は B<ITIMER_PROF> インターバル・タイマーも使用しているプログラム"
3610 "では使用できない (B<setitimer>(2)  参照)。"
3611
3612 #. type: Plain text
3613 #: build/C/man3/profil.3:81
3614 msgid ""
3615 "True kernel profiling provides more accurate results.  Libc 4.4 contained a "
3616 "kernel patch providing a system call profil."
3617 msgstr ""
3618 "本当のカーネル・プロファイルはより正確な結果を与える。 libc 4.4 にはシステム"
3619 "コール profil を提供するための カーネルパッチが含まれていた。"
3620
3621 #. type: Plain text
3622 #: build/C/man3/profil.3:86
3623 msgid "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3624 msgstr "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3625
3626 #. type: TH
3627 #: build/C/man3/psignal.3:30
3628 #, no-wrap
3629 msgid "PSIGNAL"
3630 msgstr "PSIGNAL"
3631
3632 #. type: TH
3633 #: build/C/man3/psignal.3:30
3634 #, no-wrap
3635 msgid "2010-10-06"
3636 msgstr "2010-10-06"
3637
3638 #. type: TH
3639 #: build/C/man3/psignal.3:30 build/C/man3/raise.3:29
3640 #: build/C/man7/sigevent.7:26
3641 #, no-wrap
3642 msgid "GNU"
3643 msgstr "GNU"
3644
3645 #. type: Plain text
3646 #: build/C/man3/psignal.3:33
3647 msgid "psignal, psiginfo - print signal message"
3648 msgstr "psignal, psiginfo - シグナルメッセージを表示"
3649
3650 #. type: Plain text
3651 #: build/C/man3/psignal.3:39
3652 #, no-wrap
3653 msgid ""
3654 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3655 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3656 msgstr ""
3657 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3658 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3659
3660 #. type: Plain text
3661 #: build/C/man3/psignal.3:41
3662 #, no-wrap
3663 msgid "B<extern const char *const >I<sys_siglist>B<[];>\n"
3664 msgstr "B<extern const char *const >I<sys_siglist>B<[];>\n"
3665
3666 #. type: Plain text
3667 #: build/C/man3/psignal.3:50
3668 msgid "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3669 msgstr "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3670
3671 #. type: Plain text
3672 #: build/C/man3/psignal.3:53
3673 msgid ""
3674 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3675 "200809L"
3676 msgstr ""
3677 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3678 "200809L"
3679
3680 #. type: Plain text
3681 #: build/C/man3/psignal.3:56
3682 msgid "I<sys_siglist>: _BSD_SOURCE"
3683 msgstr "I<sys_siglist>: _BSD_SOURCE"
3684
3685 #. type: Plain text
3686 #: build/C/man3/psignal.3:65
3687 msgid ""
3688 "The B<psignal>()  function displays a message on I<stderr> consisting of the "
3689 "string I<s>, a colon, a space, a string describing the signal number I<sig>, "
3690 "and a trailing newline.  If the string I<s> is NULL or empty, the colon and "
3691 "space are omitted.  If I<sig> is invalid, the message displayed will "
3692 "indicate an unknown signal."
3693 msgstr ""
3694 "B<psignal>() 関数は、文字列 I<s>、コロン、スペース、\n"
3695 "シグナル番号 I<sig> を説明する文字列、終端の改行から\n"
3696 "構成されるメッセージを I<stderr> に表示する。\n"
3697 "文字列 I<s> が NULL か空の場合、コロンとスペースは省略される。\n"
3698 "I<sig> が不正ならば、表示される メッセージは未知のシグナルを示す。"
3699
3700 #. type: Plain text
3701 #: build/C/man3/psignal.3:86
3702 msgid ""
3703 "The B<psiginfo>()  function is like B<psignal>(), except that it displays "
3704 "information about the signal described by I<pinfo>, which should point to a "
3705 "valid I<siginfo_t> structure.  As well as the signal description, B<psiginfo>"
3706 "()  displays information about the origin of the signal, and other "
3707 "information relevant to the signal (e.g., the relevant memory address for "
3708 "hardware-generated signals, the child process ID for B<SIGCHLD>, and the "
3709 "user ID and process ID of the sender, for signals set using B<kill>(2)  or "
3710 "B<sigqueue>(3))."
3711 msgstr ""
3712 "B<psiginfo>() 関数は B<psignal>() と同じだが、 I<pinfo> に書かれたシグナルの"
3713 "情報を表示する点が異なる。 I<pinfo> は有効な I<siginfo_t> 構造体を指している"
3714 "必要がある。 B<psiginfo>() は、 シグナルの説明だけでなく、 シグナルの送信元や"
3715 "そのシグナルに関連するその他の情報も表示する (例えば、ハードウェアが発生した"
3716 "シグナルの関連メモリアドレス、 B<SIGCHLD> の子プロセス ID、 I<kill>(2) や "
3717 "B<sigqueue>(3) を使って送信されたシグナルの送信元プロセスのユーザ ID とプロセ"
3718 "ス ID など)。"
3719
3720 #. type: Plain text
3721 #: build/C/man3/psignal.3:89
3722 msgid ""
3723 "The array I<sys_siglist> holds the signal description strings indexed by "
3724 "signal number."
3725 msgstr ""
3726 "配列 I<sys_siglist> はシグナルを説明する文字列を保持しており、 配列へのアクセ"
3727 "スにはシグナル番号を添え字として用いる事ができる。"
3728
3729 #. type: Plain text
3730 #: build/C/man3/psignal.3:95
3731 msgid "The B<psignal>()  and B<psiginfo>()  functions return no value."
3732 msgstr "関数 B<psignal>() と B<psiginfo>() は、値を返さない。"
3733
3734 #. type: Plain text
3735 #: build/C/man3/psignal.3:99
3736 msgid "The B<psiginfo>()  function was added to glibc in version 2.10."
3737 msgstr "B<psiginfo>() 関数は glibc バージョン 2.10 で追加された。"
3738
3739 #. type: Plain text
3740 #: build/C/man3/psignal.3:101
3741 msgid "POSIX.1-2008, 4.3BSD."
3742 msgstr "POSIX.1-2008, 4.3BSD."
3743
3744 #. type: Plain text
3745 #: build/C/man3/psignal.3:105
3746 msgid "In glibc versions up to 2.12, B<psiginfo>()  had the following bugs:"
3747 msgstr ""
3748 "バージョン 2.12 までの glibc では B<psiginfo>() には以下のバグがあった。"
3749
3750 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12107
3751 #.  Reportedly now fixed; check glibc 2.13
3752 #. type: Plain text
3753 #: build/C/man3/psignal.3:109
3754 msgid "In some circumstances, a trailing newline is not printed."
3755 msgstr "特定の状況で、末尾の改行が出力されない。"
3756
3757 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12108
3758 #.  Reportedly now fixed; check glibc 2.13
3759 #. type: Plain text
3760 #: build/C/man3/psignal.3:113
3761 msgid "Additional details are not displayed for real-time signals."
3762 msgstr "リアルタイムシグナルの場合に、追加の詳細情報が表示されない。"
3763
3764 #. type: Plain text
3765 #: build/C/man3/psignal.3:118
3766 msgid "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
3767 msgstr "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
3768
3769 #. type: TH
3770 #: build/C/man3/raise.3:29
3771 #, no-wrap
3772 msgid "RAISE"
3773 msgstr "RAISE"
3774
3775 #. type: TH
3776 #: build/C/man3/raise.3:29
3777 #, no-wrap
3778 msgid "2012-04-20"
3779 msgstr "2012-04-20"
3780
3781 #. type: Plain text
3782 #: build/C/man3/raise.3:32
3783 msgid "raise - send a signal to the caller"
3784 msgstr "raise - 呼び出し元にシグナルを送る"
3785
3786 #. type: Plain text
3787 #: build/C/man3/raise.3:37
3788 #, no-wrap
3789 msgid "B<int raise(int >I<sig>B<);>\n"
3790 msgstr "B<int raise(int >I<sig>B<);>\n"
3791
3792 #. type: Plain text
3793 #: build/C/man3/raise.3:43
3794 msgid ""
3795 "The B<raise>()  function sends a signal to the calling process or thread.  "
3796 "In a single-threaded program it is equivalent to"
3797 msgstr ""
3798 "B<raise>()  関数は、呼び出し元のプロセスもしくはスレッドにシグナルを送る。 シ"
3799 "ングルスレッドのプログラムでは、以下と等価である。"
3800
3801 #. type: Plain text
3802 #: build/C/man3/raise.3:47
3803 #, no-wrap
3804 msgid "kill(getpid(), sig);\n"
3805 msgstr "kill(getpid(), sig);\n"
3806
3807 #. type: Plain text
3808 #: build/C/man3/raise.3:51
3809 msgid "In a multithreaded program it is equivalent to"
3810 msgstr "マルチスレッドのプログラムでは、以下と等価である。"
3811
3812 #. type: Plain text
3813 #: build/C/man3/raise.3:55
3814 #, no-wrap
3815 msgid "pthread_kill(pthread_self(), sig);\n"
3816 msgstr "pthread_kill(pthread_self(), sig);\n"
3817
3818 #. type: Plain text
3819 #: build/C/man3/raise.3:61
3820 msgid ""
3821 "If the signal causes a handler to be called, B<raise>()  will return only "
3822 "after the signal handler has returned."
3823 msgstr ""
3824 "シグナルに起因してシグナル・ハンドラが呼び出される場合には、 B<raise>()  が返"
3825 "るのは必ずシグナル・ハンドラが返った後になる。"
3826
3827 #. type: Plain text
3828 #: build/C/man3/raise.3:64
3829 msgid "B<raise>()  returns 0 on success, and nonzero for failure."
3830 msgstr "成功した場合は 0 を、失敗した場合は 0 以外の値を返す。"
3831
3832 #. type: Plain text
3833 #: build/C/man3/raise.3:66 build/C/man2/signal.2:112
3834 msgid "C89, C99, POSIX.1-2001."
3835 msgstr "C89, C99, POSIX.1-2001."
3836
3837 #.  2.3.2 used the obsolete tkill(), if available.
3838 #. type: Plain text
3839 #: build/C/man3/raise.3:77
3840 msgid ""
3841 "Since version 2.3.3, glibc implements B<raise>()  by calling B<tgkill>(2), "
3842 "if the kernel supports that system call.  Older glibc versions implemented "
3843 "B<raise>()  using B<kill>(2)."
3844 msgstr ""
3845 "glibc バージョン 2.3.3 以降では、カーネルが B<tgkill>(2) システムコール\n"
3846 "をサポートしている場合はB<raise>() は B<tgkill>(2) を使って実装されて\n"
3847 "いる。古いバージョンの glibc では、B<raise>() は B<kill>(2) を使って\n"
3848 "実装されている。"
3849
3850 #. type: Plain text
3851 #: build/C/man3/raise.3:84
3852 msgid ""
3853 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
3854 "B<signal>(7)"
3855 msgstr ""
3856 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
3857 "B<signal>(7)"
3858
3859 #. type: TH
3860 #: build/C/man2/rt_sigqueueinfo.2:25
3861 #, no-wrap
3862 msgid "RT_SIGQUEUEINFO"
3863 msgstr "RT_SIGQUEUEINFO"
3864
3865 #. type: TH
3866 #: build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/sgetmask.2:26
3867 #: build/C/man2/tkill.2:29
3868 #, no-wrap
3869 msgid "2012-07-13"
3870 msgstr "2012-07-13"
3871
3872 #. type: Plain text
3873 #: build/C/man2/rt_sigqueueinfo.2:28
3874 msgid "rt_sigqueueinfo, rt_tgsigqueueinfo - queue a signal and data"
3875 msgstr ""
3876
3877 #. type: Plain text
3878 #: build/C/man2/rt_sigqueueinfo.2:31
3879 #, no-wrap
3880 msgid "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
3881 msgstr "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
3882
3883 #. type: Plain text
3884 #: build/C/man2/rt_sigqueueinfo.2:34
3885 #, no-wrap
3886 msgid ""
3887 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
3888 "B<                      siginfo_t *>I<uinfo>B<);>\n"
3889 msgstr ""
3890 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
3891 "B<                      siginfo_t *>I<uinfo>B<);>\n"
3892
3893 #. type: Plain text
3894 #: build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/sgetmask.2:36
3895 #: build/C/man2/tkill.2:41
3896 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
3897 msgstr ""
3898 "I<注>: これらのシステムコールには、glibc のラッパー関数はない。「注意」の節を"
3899 "参照。"
3900
3901 #. type: Plain text
3902 #: build/C/man2/rt_sigqueueinfo.2:50
3903 msgid ""
3904 "The B<rt_sigqueueinfo>()  and B<rt_tgsigqueueinfo>()  system calls are the "
3905 "low-level interfaces used to send a signal plus data to a process or "
3906 "thread.  The receiver of the signal can obtain the accompanying data by "
3907 "establishing a signal handler with the B<sigaction>(2)  B<SA_SIGINFO> flag."
3908 msgstr ""
3909
3910 #. type: Plain text
3911 #: build/C/man2/rt_sigqueueinfo.2:56
3912 msgid ""
3913 "These system calls are not intended for direct application use; they are "
3914 "provided to allow the implementation of B<sigqueue>(3)  and "
3915 "B<pthread_sigqueue>(3)."
3916 msgstr ""
3917
3918 #. type: Plain text
3919 #: build/C/man2/rt_sigqueueinfo.2:68
3920 msgid ""
3921 "The B<rt_sigqueueinfo>()  system call sends the signal I<sig> to the thread "
3922 "group with the ID I<tgid>.  (The term \"thread group\" is synonymous with "
3923 "\"process\", and I<tid> corresponds to the traditional UNIX process ID.)  "
3924 "The signal will be delivered to an arbitrary member of the thread group (i."
3925 "e., one of the threads that is not currently blocking the signal)."
3926 msgstr ""
3927
3928 #. type: Plain text
3929 #: build/C/man2/rt_sigqueueinfo.2:79
3930 msgid ""
3931 "The I<uinfo> argument specifies the data to accompany the signal.  This "
3932 "argument is a pointer to a structure of type I<siginfo_t>, described in "
3933 "B<sigaction>(2)  (and defined by including I<E<lt>sigaction.hE<gt>>).  The "
3934 "caller should set the following fields in this structure:"
3935 msgstr ""
3936
3937 #. type: TP
3938 #: build/C/man2/rt_sigqueueinfo.2:79 build/C/man7/sigevent.7:88
3939 #: build/C/man2/wait.2:314
3940 #, no-wrap
3941 msgid "I<si_code>"
3942 msgstr "I<si_code>"
3943
3944 #.  tkill(2) or
3945 #. type: Plain text
3946 #: build/C/man2/rt_sigqueueinfo.2:95
3947 msgid ""
3948 "This must be one of the B<SI_*> codes in the Linux kernel source file "
3949 "I<include/asm-generic/siginfo.h>, with the restriction that the code must be "
3950 "negative (i.e., cannot be B<SI_USER>, which is used by the kernel to "
3951 "indicate a signal sent by B<kill>(2))  and cannot (since Linux 2.6.39) be "
3952 "B<SI_TKILL> (which is used by the kernel to indicate a signal sent using "
3953 "B<tgkill>(2))."
3954 msgstr ""
3955
3956 #. type: TP
3957 #: build/C/man2/rt_sigqueueinfo.2:95 build/C/man2/wait.2:293
3958 #, no-wrap
3959 msgid "I<si_pid>"
3960 msgstr "I<si_pid>"
3961
3962 #. type: Plain text
3963 #: build/C/man2/rt_sigqueueinfo.2:99
3964 msgid ""
3965 "This should be set to a process ID, typically the process ID of the sender."
3966 msgstr ""
3967
3968 #. type: TP
3969 #: build/C/man2/rt_sigqueueinfo.2:99 build/C/man2/wait.2:296
3970 #, no-wrap
3971 msgid "I<si_uid>"
3972 msgstr "I<si_uid>"
3973
3974 #. type: Plain text
3975 #: build/C/man2/rt_sigqueueinfo.2:103
3976 msgid ""
3977 "This should be set to a user ID, typically the real user ID of the sender."
3978 msgstr ""
3979
3980 #. type: TP
3981 #: build/C/man2/rt_sigqueueinfo.2:103 build/C/man7/sigevent.7:96
3982 #, no-wrap
3983 msgid "I<si_value>"
3984 msgstr "I<si_value>"
3985
3986 #. type: Plain text
3987 #: build/C/man2/rt_sigqueueinfo.2:110
3988 msgid ""
3989 "This field contains the user data to accompany the signal.  For more "
3990 "information, see the description of the last (I<union sigval>)  argument of "
3991 "B<sigqueue>(3)."
3992 msgstr ""
3993
3994 #. type: Plain text
3995 #: build/C/man2/rt_sigqueueinfo.2:117
3996 msgid ""
3997 "Internally, the kernel sets the I<si_signo> field to the value specified in "
3998 "I<sig>, so that the receiver of the signal can also obtain the signal number "
3999 "via that field."
4000 msgstr ""
4001
4002 #. type: Plain text
4003 #: build/C/man2/rt_sigqueueinfo.2:129
4004 msgid ""
4005 "The B<rt_tgsigqueueinfo>()  system call is like B<rt_sigqueueinfo>(), but "
4006 "sends the signal and data to the single thread specified by the combination "
4007 "of I<tgid>, a thread group ID, and I<tid>, a thread in that thread group."
4008 msgstr ""
4009
4010 #. type: Plain text
4011 #: build/C/man2/rt_sigqueueinfo.2:134
4012 msgid ""
4013 "On success, these system calls return 0.  On error, they return -1 and "
4014 "I<errno> is set to indicate the error."
4015 msgstr ""
4016
4017 #. type: TP
4018 #: build/C/man2/rt_sigqueueinfo.2:135 build/C/man3/sigqueue.3:92
4019 #: build/C/man2/sigwaitinfo.2:115 build/C/man2/timer_create.2:176
4020 #, no-wrap
4021 msgid "B<EAGAIN>"
4022 msgstr "B<EAGAIN>"
4023
4024 #. type: Plain text
4025 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man3/sigqueue.3:98
4026 msgid ""
4027 "The limit of signals which may be queued has been reached.  (See B<signal>"
4028 "(7)  for further information.)"
4029 msgstr ""
4030 "待ち行列に入れられるシグナルの最大数に達した (より詳しい情報は B<signal>(7)  "
4031 "を参照すること)。"
4032
4033 #. type: Plain text
4034 #: build/C/man2/rt_sigqueueinfo.2:148
4035 msgid "I<sig>, I<tgid>, or I<tid> was invalid."
4036 msgstr ""
4037
4038 #. type: Plain text
4039 #: build/C/man2/rt_sigqueueinfo.2:156
4040 msgid ""
4041 "The caller does not have permission to send the signal to the target.  For "
4042 "the required permissions, see B<kill>(2).  Or: I<uinfo-E<gt>si_code> is "
4043 "invalid."
4044 msgstr ""
4045
4046 #. type: Plain text
4047 #: build/C/man2/rt_sigqueueinfo.2:162
4048 msgid "B<rt_sigqueueinfo>(): No thread group matching I<tgid> was found."
4049 msgstr ""
4050
4051 #. type: Plain text
4052 #: build/C/man2/rt_sigqueueinfo.2:169
4053 msgid "B<rt_tgsigqueinfo>(): No thread matching I<tgid> and I<tid> was found."
4054 msgstr ""
4055
4056 #. type: Plain text
4057 #: build/C/man2/rt_sigqueueinfo.2:176
4058 msgid ""
4059 "The B<rt_sigqueueinfo>()  system call was added to Linux in version 2.2.  "
4060 "The B<rt_tgsigqueueinfo>()  system call was added to Linux in version 2.6.31."
4061 msgstr ""
4062
4063 #. type: Plain text
4064 #: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/sgetmask.2:68
4065 #: build/C/man2/timerfd_create.2:373
4066 msgid "These system calls are Linux-specific."
4067 msgstr "これらのシステムコールは Linux 固有である。"
4068
4069 #. type: Plain text
4070 #: build/C/man2/rt_sigqueueinfo.2:183
4071 msgid ""
4072 "Since these system calls are not intended for application use, there are no "
4073 "glibc wrapper functions; use B<syscall>(2)  in the unlikely case that you "
4074 "want to call them directly."
4075 msgstr ""
4076 "これらのシステムコールはアプリケーションでの使用を目的として用意されたわけで"
4077 "はないので、 glibc のラッパー関数は存在しない。おそらくないと思うが、このシス"
4078 "テムコールを直接呼び出したい場合は B<syscall>(2) を使うこと。"
4079
4080 #. type: Plain text
4081 #: build/C/man2/rt_sigqueueinfo.2:188
4082 msgid ""
4083 "As with B<kill>(2), the null signal (0) can be used to check if the "
4084 "specified process or thread exists."
4085 msgstr ""
4086
4087 #. type: Plain text
4088 #: build/C/man2/rt_sigqueueinfo.2:196
4089 msgid ""
4090 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4091 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4092 msgstr ""
4093 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4094 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4095
4096 #. type: TH
4097 #: build/C/man2/s390_runtime_instr.2:25
4098 #, no-wrap
4099 msgid "S390_RUNTIME_INSTR"
4100 msgstr ""
4101
4102 #. type: TH
4103 #: build/C/man2/s390_runtime_instr.2:25
4104 #, no-wrap
4105 msgid "2012-12-17"
4106 msgstr "2012-12-17"
4107
4108 #. type: Plain text
4109 #: build/C/man2/s390_runtime_instr.2:28
4110 msgid "s390_runtime_instr - enable/disable s390 CPU run-time instrumentation"
4111 msgstr ""
4112
4113 #. type: Plain text
4114 #: build/C/man2/s390_runtime_instr.2:31
4115 #, no-wrap
4116 msgid "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4117 msgstr "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4118
4119 #. type: Plain text
4120 #: build/C/man2/s390_runtime_instr.2:33
4121 #, no-wrap
4122 msgid "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4123 msgstr "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4124
4125 #. type: Plain text
4126 #: build/C/man2/s390_runtime_instr.2:39
4127 msgid ""
4128 "The B<s390_runtime_instr>()  system call starts or stops CPU run-time "
4129 "instrumentation for the calling thread."
4130 msgstr ""
4131
4132 #. type: Plain text
4133 #: build/C/man2/s390_runtime_instr.2:47
4134 msgid ""
4135 "The I<command> argument controls whether run-time instrumentation is started "
4136 "(B<S390_RUNTIME_INSTR_START>, 1) or stopped (B<S390_RUNTIME_INSTR_STOP>, 2) "
4137 "for the calling thread."
4138 msgstr ""
4139
4140 #. type: Plain text
4141 #: build/C/man2/s390_runtime_instr.2:54
4142 msgid ""
4143 "The I<signum> argument specifies the number of a real-time signal.  The real-"
4144 "time signal is sent to the thread if the run-time instrumentation buffer is "
4145 "full or if the run-time-instrumentation-halted interrupt occurred."
4146 msgstr ""
4147
4148 #. type: Plain text
4149 #: build/C/man2/s390_runtime_instr.2:65
4150 msgid ""
4151 "On success, B<s390_runtime_instr>()  returns 0 and enables the thread for "
4152 "run-time instrumentation by assigning the thread a default run-time "
4153 "instrumentation control block.  The caller can then read and modify the "
4154 "control block and start the run-time instrumentation.  On error, -1 is "
4155 "returned and I<errno> is set to one of the error codes listed below."
4156 msgstr ""
4157
4158 #. type: Plain text
4159 #: build/C/man2/s390_runtime_instr.2:73
4160 msgid ""
4161 "The value specified in I<command> is not a valid command or the value "
4162 "specified in I<signum> is not a real-time signal number."
4163 msgstr ""
4164
4165 #. type: Plain text
4166 #: build/C/man2/s390_runtime_instr.2:76
4167 msgid ""
4168 "Allocating memory for the run-time instrumentation control block failed."
4169 msgstr ""
4170
4171 #. type: TP
4172 #: build/C/man2/s390_runtime_instr.2:76
4173 #, no-wrap
4174 msgid "B<EOPNOTSUPP>"
4175 msgstr ""
4176
4177 #. type: Plain text
4178 #: build/C/man2/s390_runtime_instr.2:79
4179 msgid "The run-time instrumentation facility is not available."
4180 msgstr ""
4181
4182 #. type: Plain text
4183 #: build/C/man2/s390_runtime_instr.2:81
4184 msgid "This system call is available since Linux 3.7."
4185 msgstr "このシステムコールは Linux 3.7 で初めて登場した。"
4186
4187 #. type: Plain text
4188 #: build/C/man2/s390_runtime_instr.2:84
4189 msgid ""
4190 "This Linux-specific system call is available only on the s390 architecture.  "
4191 "The run-time instrumentation facility is available beginning with System z "
4192 "EC12."
4193 msgstr ""
4194
4195 #. type: Plain text
4196 #: build/C/man2/s390_runtime_instr.2:88
4197 msgid ""
4198 "Glibc does not provide a wrapper for this system call, use B<syscall>(2)  to "
4199 "call it."
4200 msgstr ""
4201 "glibc はこのシステムコールに対するラッパー関数を提供していない。 B<syscall>"
4202 "(2) を使用すること。"
4203
4204 #. type: Plain text
4205 #: build/C/man2/s390_runtime_instr.2:91
4206 msgid "B<syscall>(2), B<signal>(7)"
4207 msgstr "B<syscall>(2), B<signal>(7)"
4208
4209 #. type: TH
4210 #: build/C/man2/sgetmask.2:26
4211 #, no-wrap
4212 msgid "SGETMASK"
4213 msgstr "SGETMASK"
4214
4215 #. type: Plain text
4216 #: build/C/man2/sgetmask.2:29
4217 msgid "sgetmask, ssetmask - manipulation of signal mask (obsolete)"
4218 msgstr "sgetmask, ssetmask - シグナルマスクの操作 (廃止予定)"
4219
4220 #. type: Plain text
4221 #: build/C/man2/sgetmask.2:31
4222 msgid "B<long sgetmask(void);>"
4223 msgstr "B<long sgetmask(void);>"
4224
4225 #. type: Plain text
4226 #: build/C/man2/sgetmask.2:33
4227 msgid "B<long ssetmask(long >I<newmask>B<);>"
4228 msgstr "B<long ssetmask(long >I<newmask>B<);>"
4229
4230 #. type: Plain text
4231 #: build/C/man2/sgetmask.2:42
4232 msgid ""
4233 "These system calls are obsolete.  I<Do not use them>; use B<sigprocmask>(2)  "
4234 "instead."
4235 msgstr ""
4236 "これらのシステムコールは廃止予定であり、 「使用しないこと」。 代わりに "
4237 "B<sigprocmask>(2)  を使用すること。"
4238
4239 #. type: Plain text
4240 #: build/C/man2/sgetmask.2:45
4241 msgid "B<sgetmask>()  returns the signal mask of the calling process."
4242 msgstr "B<sgetmask>()  は、呼び出し元プロセスのシグナルマスクを返す。"
4243
4244 #. type: Plain text
4245 #: build/C/man2/sgetmask.2:50
4246 msgid ""
4247 "B<ssetmask>()  sets the signal mask of the calling process to the value "
4248 "given in I<newmask>.  The previous signal mask is returned."
4249 msgstr ""
4250 "B<ssetmask>()  は、呼び出し元プロセスのシグナルマスクを I<newmask> で指定され"
4251 "た値に設定し、変更前のシグナルマスクを返す。"
4252
4253 #. type: Plain text
4254 #: build/C/man2/sgetmask.2:59
4255 msgid ""
4256 "The signal masks dealt with by these two system calls are plain bit masks "
4257 "(unlike the I<sigset_t> used by B<sigprocmask>(2)); use B<sigmask>(3)  to "
4258 "create and inspect these masks."
4259 msgstr ""
4260 "これら二つのシステムコールが扱うシグナルマスクは、 単純なビットマスクである "
4261 "(この点が B<sigprocmask>(2)  で使用される I<sigset_t> と異なる)。 これらのマ"
4262 "スクを作成したり検査するには B<sigmask>(3)  を使用すること。"
4263
4264 #. type: Plain text
4265 #: build/C/man2/sgetmask.2:64
4266 msgid ""
4267 "B<sgetmask>()  always successfully returns the signal mask.  B<ssetmask>()  "
4268 "always succeeds, and returns the previous signal mask."
4269 msgstr ""
4270 "B<sgetmask>()  は常に成功し、シグナルマスクを返す。 B<ssetmask>()  は常に成功"
4271 "し、直前のシグナルマスクを返す。"
4272
4273 #. type: Plain text
4274 #: build/C/man2/sgetmask.2:66
4275 msgid "These system calls always succeed."
4276 msgstr "これらのシステムコールは常に成功する。"
4277
4278 #. type: Plain text
4279 #: build/C/man2/sgetmask.2:72
4280 msgid ""
4281 "Glibc does not provide wrappers for these obsolete system calls; in the "
4282 "unlikely event that you want to call them, use B<syscall>(2)."
4283 msgstr ""
4284 "glibc はこれらの古いシステムコールに対するラッパー関数を提供していない。\n"
4285 "あまりないと思うが、これらを呼び出したい場合には B<syscall>(2) を使うこと。"
4286
4287 #. type: Plain text
4288 #: build/C/man2/sgetmask.2:75
4289 msgid ""
4290 "These system calls are unaware of signal numbers greater than 31 (i.e., real-"
4291 "time signals)."
4292 msgstr ""
4293 "これらのシステムコールは、 31 より大きいシグナル番号 (つまり、リアルタイムシ"
4294 "グナル) を扱えない。"
4295
4296 #. type: Plain text
4297 #: build/C/man2/sgetmask.2:80
4298 msgid "It is not possible to block B<SIGSTOP> or B<SIGKILL>."
4299 msgstr "B<SIGSTOP> や B<SIGKILL> をブロックすることはできない。"
4300
4301 #. type: Plain text
4302 #: build/C/man2/sgetmask.2:83
4303 msgid "B<sigprocmask>(2), B<signal>(7)"
4304 msgstr "B<sigprocmask>(2), B<signal>(7)"
4305
4306 #. type: TH
4307 #: build/C/man2/sigaction.2:47
4308 #, no-wrap
4309 msgid "SIGACTION"
4310 msgstr "SIGACTION"
4311
4312 #. type: TH
4313 #: build/C/man2/sigaction.2:47 build/C/man3/siginterrupt.3:31
4314 #: build/C/man2/signal.2:36 build/C/man2/sigpending.2:29
4315 #: build/C/man2/sigprocmask.2:29 build/C/man3/sigsetops.3:31
4316 #: build/C/man2/sigsuspend.2:29
4317 #, fuzzy, no-wrap
4318 #| msgid "2013-02-12"
4319 msgid "2013-04-19"
4320 msgstr "2013-02-12"
4321
4322 #. type: Plain text
4323 #: build/C/man2/sigaction.2:50
4324 msgid "sigaction - examine and change a signal action"
4325 msgstr "sigaction - シグナルの動作の確認と変更"
4326
4327 #. type: Plain text
4328 #: build/C/man2/sigaction.2:56
4329 #, no-wrap
4330 msgid ""
4331 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4332 "B<              struct sigaction *>I<oldact>B<);>\n"
4333 msgstr ""
4334 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4335 "B<              struct sigaction *>I<oldact>B<);>\n"
4336
4337 #. type: Plain text
4338 #: build/C/man2/sigaction.2:66
4339 msgid ""
4340 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4341 "_POSIX_SOURCE"
4342 msgstr ""
4343 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4344 "_POSIX_SOURCE"
4345
4346 #. type: Plain text
4347 #: build/C/man2/sigaction.2:69
4348 msgid "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4349 msgstr "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4350
4351 #. type: Plain text
4352 #: build/C/man2/sigaction.2:78
4353 msgid ""
4354 "The B<sigaction>()  system call is used to change the action taken by a "
4355 "process on receipt of a specific signal.  (See B<signal>(7)  for an overview "
4356 "of signals.)"
4357 msgstr ""
4358 "B<sigaction>()  システムコールは、特定のシグナルを受信した際の プロセスの動作"
4359 "を変更するのに使用される (シグナルの概要については B<signal>(7)  を参照)。"
4360
4361 #. type: Plain text
4362 #: build/C/man2/sigaction.2:84
4363 msgid ""
4364 "I<signum> specifies the signal and can be any valid signal except B<SIGKILL> "
4365 "and B<SIGSTOP>."
4366 msgstr ""
4367 "I<signum> には、 B<SIGKILL> と B<SIGSTOP> 以外の有効なシグナルをどれでも指定"
4368 "できる。"
4369
4370 #. type: Plain text
4371 #: build/C/man2/sigaction.2:95
4372 msgid ""
4373 "If I<act> is non-NULL, the new action for signal I<signum> is installed from "
4374 "I<act>.  If I<oldact> is non-NULL, the previous action is saved in I<oldact>."
4375 msgstr ""
4376 "I<act> が NULL 以外であれば、シグナル I<signum> の新しい動作 (action) として "
4377 "I<act> が設定される。 I<oldact> が NULL でなければ、今までの動作が I<oldact> "
4378 "に格納される。"
4379
4380 #. type: Plain text
4381 #: build/C/man2/sigaction.2:99
4382 msgid "The I<sigaction> structure is defined as something like:"
4383 msgstr "I<sigaction> 構造体は以下のような感じに定義される。"
4384
4385 #. type: Plain text
4386 #: build/C/man2/sigaction.2:109
4387 #, no-wrap
4388 msgid ""
4389 "struct sigaction {\n"
4390 "    void     (*sa_handler)(int);\n"
4391 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4392 "    sigset_t   sa_mask;\n"
4393 "    int        sa_flags;\n"
4394 "    void     (*sa_restorer)(void);\n"
4395 "};\n"
4396 msgstr ""
4397 "struct sigaction {\n"
4398 "    void     (*sa_handler)(int);\n"
4399 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4400 "    sigset_t   sa_mask;\n"
4401 "    int        sa_flags;\n"
4402 "    void     (*sa_restorer)(void);\n"
4403 "};\n"
4404
4405 #. type: Plain text
4406 #: build/C/man2/sigaction.2:116
4407 msgid ""
4408 "On some architectures a union is involved: do not assign to both "
4409 "I<sa_handler> and I<sa_sigaction>."
4410 msgstr ""
4411 "アーキテクチャによっては共用体 (union) が用いられており、その場合には "
4412 "I<sa_handler> と I<sa_sigaction> の両方を同時に割り当てることはできない。"
4413
4414 #. type: Plain text
4415 #: build/C/man2/sigaction.2:123
4416 msgid ""
4417 "The I<sa_restorer> element is obsolete and should not be used.  POSIX does "
4418 "not specify a I<sa_restorer> element."
4419 msgstr ""
4420 "I<sa_restorer> 要素は廃止予定であり使用すべきではない。 POSIX には "
4421 "I<sa_restorer> 要素に関する規定はない。"
4422
4423 #. type: Plain text
4424 #: build/C/man2/sigaction.2:133
4425 msgid ""
4426 "I<sa_handler> specifies the action to be associated with I<signum> and may "
4427 "be B<SIG_DFL> for the default action, B<SIG_IGN> to ignore this signal, or a "
4428 "pointer to a signal handling function.  This function receives the signal "
4429 "number as its only argument."
4430 msgstr ""
4431 "I<sa_handler> は I<signum> に対応する動作を指定するもので、 デフォルトの動作"
4432 "を行う B<SIG_DFL>、 そのシグナルを無視する B<SIG_IGN>、 シグナルハンドラ関数"
4433 "へのポインタが設定できる。 シグナルハンドラ関数の引き数は一つであり、シグナル"
4434 "番号が引き数として 渡される。"
4435
4436 #. type: Plain text
4437 #: build/C/man2/sigaction.2:155
4438 msgid ""
4439 "If B<SA_SIGINFO> is specified in I<sa_flags>, then I<sa_sigaction> (instead "
4440 "of I<sa_handler>)  specifies the signal-handling function for I<signum>.  "
4441 "This function receives the signal number as its first argument, a pointer to "
4442 "a I<siginfo_t> as its second argument and a pointer to a I<ucontext_t> (cast "
4443 "to I<void\\ *>) as its third argument.  (Commonly, the handler function "
4444 "doesn't make any use of the third argument.  See B<getcontext>(3)  for "
4445 "further information about I<ucontext_t>.)"
4446 msgstr ""
4447 "I<sa_flags> に B<SA_SIGINFO> が指定された場合、 (I<sa_handler> ではなく)\n"
4448 "I<sa_sigaction> により I<signum> に対応するシグナルハンドラ関数が指定さ\n"
4449 "れる。指定される関数は、最初の引き数としてシグナル番号を、二番目の引き\n"
4450 "数として I<siginfo_t> へのポインタを、三番目の引き数として (I<void\\ *>\n"
4451 "にキャストした) I<ucontext_t> へのポインタを受けとる。 (一般的には、\n"
4452 "ハンドラ関数の三番目の引き数が使用されない。I<ucontext_t> についての\n"
4453 "詳しい情報は B<getcontext>(3) を参照。)"
4454
4455 #. type: Plain text
4456 #: build/C/man2/sigaction.2:165
4457 msgid ""
4458 "I<sa_mask> specifies a mask of signals which should be blocked (i.e., added "
4459 "to the signal mask of the thread in which the signal handler is invoked)  "
4460 "during execution of the signal handler.  In addition, the signal which "
4461 "triggered the handler will be blocked, unless the B<SA_NODEFER> flag is used."
4462 msgstr ""
4463 "I<sa_mask> は、シグナル・ハンドラ実行中に禁止 (block) すべきシグナルのマスク"
4464 "を指定する (ハンドラ実行中のシグナルの禁止は、シグナル・ハンドラが起動された"
4465 "スレッド のシグナルのマスクに追加することで行われる)。 さらに、 "
4466 "B<SA_NODEFER> フラグが指定されていない場合は、ハンドラを起動するきっかけとな"
4467 "る シグナルにも I<sa_mask> が適用される。"
4468
4469 #. type: Plain text
4470 #: build/C/man2/sigaction.2:169
4471 msgid ""
4472 "I<sa_flags> specifies a set of flags which modify the behavior of the "
4473 "signal.  It is formed by the bitwise OR of zero or more of the following:"
4474 msgstr ""
4475 "I<sa_flags> はシグナル・ハンドラの動作を変更するためのフラグの集合を指定す"
4476 "る。 I<sa_flags> には、以下に示すフラグの (0 個以上の) 論理和をとったものを指"
4477 "定する。"
4478
4479 #. type: TP
4480 #: build/C/man2/sigaction.2:170
4481 #, no-wrap
4482 msgid "B<SA_NOCLDSTOP>"
4483 msgstr "B<SA_NOCLDSTOP>"
4484
4485 #. type: Plain text
4486 #: build/C/man2/sigaction.2:187
4487 msgid ""
4488 "If I<signum> is B<SIGCHLD>, do not receive notification when child processes "
4489 "stop (i.e., when they receive one of B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN> or "
4490 "B<SIGTTOU>)  or resume (i.e., they receive B<SIGCONT>)  (see B<wait>(2)).  "
4491 "This flag is meaningful only when establishing a handler for B<SIGCHLD>."
4492 msgstr ""
4493 "I<signum> が B<SIGCHLD> の場合、 子プロセスが停止したり (子プロセスが "
4494 "B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, B<SIGTTOU> を受けたとき) 再開したり (子プ"
4495 "ロセスが B<SIGCONT> を受けたとき) したときに B<SIGCHLD> の通知を受けない。 こ"
4496 "のフラグは、 B<SIGCHLD> に対してハンドラを設定する際にのみ意味を持つ。"
4497
4498 #. type: TP
4499 #: build/C/man2/sigaction.2:187
4500 #, no-wrap
4501 msgid "B<SA_NOCLDWAIT> (since Linux 2.6)"
4502 msgstr "B<SA_NOCLDWAIT> (Linux 2.6 以降)"
4503
4504 #.  To be precise: Linux 2.5.60 -- MTK
4505 #. type: Plain text
4506 #: build/C/man2/sigaction.2:201
4507 msgid ""
4508 "If I<signum> is B<SIGCHLD>, do not transform children into zombies when they "
4509 "terminate.  See also B<waitpid>(2).  This flag is meaningful only when "
4510 "establishing a handler for B<SIGCHLD>, or when setting that signal's "
4511 "disposition to B<SIG_DFL>."
4512 msgstr ""
4513 "(Linux 2.6 以降)  I<signum> が B<SIGCHLD> の場合、子プロセスが終了したときに "
4514 "子プロセスをゾンビプロセスに変化させない (B<waitpid>(2)  も参照)。 このフラグ"
4515 "は、 B<SIGCHLD> に対してハンドラを設定する際、もしくはそのシグナルの処理方法"
4516 "を B<SIG_DFL> に設定する際にのみ意味を持つ。"
4517
4518 #. type: Plain text
4519 #: build/C/man2/sigaction.2:213
4520 msgid ""
4521 "If the B<SA_NOCLDWAIT> flag is set when establishing a handler for "
4522 "B<SIGCHLD>, POSIX.1 leaves it unspecified whether a B<SIGCHLD> signal is "
4523 "generated when a child process terminates.  On Linux, a B<SIGCHLD> signal is "
4524 "generated in this case; on some other implementations, it is not."
4525 msgstr ""
4526 "B<SIGCHLD> に対してハンドラを設定する際に B<SA_NOCLDWAIT> フラグをセットした"
4527 "場合、 子プロセスが終了した際に B<SIGCHLD> シグナルが生成されるかどうかは、 "
4528 "POSIX.1 では規定されていない。 Linux では、この状況で B<SIGCHLD> シグナルは生"
4529 "成される。 いくつかの他の実装では生成されない。"
4530
4531 #. type: TP
4532 #: build/C/man2/sigaction.2:213
4533 #, no-wrap
4534 msgid "B<SA_NODEFER>"
4535 msgstr "B<SA_NODEFER>"
4536
4537 #. type: Plain text
4538 #: build/C/man2/sigaction.2:220
4539 msgid ""
4540 "Do not prevent the signal from being received from within its own signal "
4541 "handler.  This flag is meaningful only when establishing a signal handler.  "
4542 "B<SA_NOMASK> is an obsolete, nonstandard synonym for this flag."
4543 msgstr ""
4544 "それ自身のシグナル・ハンドラーの内部にいる時でも そのシグナルをマスクしないよ"
4545 "うにする。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 "
4546 "B<SA_NOMASK> はこのフラグと同じ意味だが、廃止されており、非標準である。"
4547
4548 #. type: TP
4549 #: build/C/man2/sigaction.2:220
4550 #, no-wrap
4551 msgid "B<SA_ONSTACK>"
4552 msgstr "B<SA_ONSTACK>"
4553
4554 #. type: Plain text
4555 #: build/C/man2/sigaction.2:226
4556 msgid ""
4557 "Call the signal handler on an alternate signal stack provided by "
4558 "B<sigaltstack>(2).  If an alternate stack is not available, the default "
4559 "stack will be used.  This flag is meaningful only when establishing a signal "
4560 "handler."
4561 msgstr ""
4562 "B<sigaltstack>(2)  で提供される別のシグナル・スタックでシグナルハンドラを呼び"
4563 "出す。 別のシグナル・スタックが利用可能でなければ、デフォルトのスタックが 使"
4564 "用される。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。"
4565
4566 #. type: TP
4567 #: build/C/man2/sigaction.2:226
4568 #, no-wrap
4569 msgid "B<SA_RESETHAND>"
4570 msgstr "B<SA_RESETHAND>"
4571
4572 #. type: Plain text
4573 #: build/C/man2/sigaction.2:232
4574 msgid ""
4575 "Restore the signal action to the default upon entry to the signal handler.  "
4576 "This flag is meaningful only when establishing a signal handler.  "
4577 "B<SA_ONESHOT> is an obsolete, nonstandard synonym for this flag."
4578 msgstr ""
4579 "シグナルハンドラを設定する際に、シグナルの動作をデフォルトに戻す。 このフラグ"
4580 "はシグナルハンドラを設定する際にのみ意味を持つ。 B<SA_ONESHOT> はこのフラグと"
4581 "同じ意味だが、廃止されており、非標準である。"
4582
4583 #. type: TP
4584 #: build/C/man2/sigaction.2:232
4585 #, no-wrap
4586 msgid "B<SA_RESTART>"
4587 msgstr "B<SA_RESTART>"
4588
4589 #. type: Plain text
4590 #: build/C/man2/sigaction.2:240
4591 msgid ""
4592 "Provide behavior compatible with BSD signal semantics by making certain "
4593 "system calls restartable across signals.  This flag is meaningful only when "
4594 "establishing a signal handler.  See B<signal>(7)  for a discussion of system "
4595 "call restarting."
4596 msgstr ""
4597 "いくつかのシステムコールをシグナルの通知の前後で再開できるようにして、 BSD シ"
4598 "グナル方式 (semantics) と互換性のある動作を提供する。 このフラグはシグナルハ"
4599 "ンドラを設定する際にのみ意味を持つ。 B<signal>(7)  に書かれているシステムコー"
4600 "ルの再開に関する議論を参照のこと。"
4601
4602 #. type: TP
4603 #: build/C/man2/sigaction.2:240
4604 #, no-wrap
4605 msgid "B<SA_SIGINFO> (since Linux 2.2)"
4606 msgstr "B<SA_SIGINFO> (Linux 2.2 以降)"
4607
4608 #.  (The
4609 #.  .I sa_sigaction
4610 #.  field was added in Linux 2.1.86.)
4611 #. type: Plain text
4612 #: build/C/man2/sigaction.2:251
4613 msgid ""
4614 "The signal handler takes three arguments, not one.  In this case, "
4615 "I<sa_sigaction> should be set instead of I<sa_handler>.  This flag is "
4616 "meaningful only when establishing a signal handler."
4617 msgstr ""
4618 "シグナルハンドラは一つではなく、三つの引き数を持つ。この場合は I<sa_handler> "
4619 "のかわりに I<sa_sigaction> を設定しなければならない このフラグはシグナルハン"
4620 "ドラを設定する際にのみ意味を持つ。"
4621
4622 #. type: Plain text
4623 #: build/C/man2/sigaction.2:258
4624 msgid ""
4625 "The I<siginfo_t> argument to I<sa_sigaction> is a struct with the following "
4626 "elements:"
4627 msgstr ""
4628 "I<sa_sigaction> のパラメータ I<siginfo_t> は以下の要素を持つ構造体である:"
4629
4630 #.  FIXME
4631 #.  si_trapno seems to be only used on SPARC and Alpha;
4632 #.  this page could use a little more detail on its purpose there.
4633 #.  In the kernel: si_tid
4634 #. type: Plain text
4635 #: build/C/man2/sigaction.2:289
4636 #, no-wrap
4637 msgid ""
4638 "siginfo_t {\n"
4639 "    int      si_signo;    /* Signal number */\n"
4640 "    int      si_errno;    /* An errno value */\n"
4641 "    int      si_code;     /* Signal code */\n"
4642 "    int      si_trapno;   /* Trap number that caused\n"
4643 "                             hardware-generated signal\n"
4644 "                             (unused on most architectures) */\n"
4645 "    pid_t    si_pid;      /* Sending process ID */\n"
4646 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
4647 "    int      si_status;   /* Exit value or signal */\n"
4648 "    clock_t  si_utime;    /* User time consumed */\n"
4649 "    clock_t  si_stime;    /* System time consumed */\n"
4650 "    sigval_t si_value;    /* Signal value */\n"
4651 "    int      si_int;      /* POSIX.1b signal */\n"
4652 "    void    *si_ptr;      /* POSIX.1b signal */\n"
4653 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
4654 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
4655 "    void    *si_addr;     /* Memory location which caused fault */\n"
4656 "    long     si_band;     /* Band event (was I<int> in\n"
4657 "                             glibc 2.3.2 and earlier) */\n"
4658 "    int      si_fd;       /* File descriptor */\n"
4659 "    short    si_addr_lsb; /* Least significant bit of address\n"
4660 "                             (since Linux 2.6.32) */\n"
4661 "}\n"
4662 msgstr ""
4663 "siginfo_t {\n"
4664 "    int      si_signo;    /* Signal number */\n"
4665 "    int      si_errno;    /* An errno value */\n"
4666 "    int      si_code;     /* Signal code */\n"
4667 "    int      si_trapno;   /* Trap number that caused\n"
4668 "                             hardware-generated signal\n"
4669 "                             (unused on most architectures) */\n"
4670 "    pid_t    si_pid;      /* Sending process ID */\n"
4671 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
4672 "    int      si_status;   /* Exit value or signal */\n"
4673 "    clock_t  si_utime;    /* User time consumed */\n"
4674 "    clock_t  si_stime;    /* System time consumed */\n"
4675 "    sigval_t si_value;    /* Signal value */\n"
4676 "    int      si_int;      /* POSIX.1b signal */\n"
4677 "    void    *si_ptr;      /* POSIX.1b signal */\n"
4678 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
4679 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
4680 "    void    *si_addr;     /* Memory location which caused fault */\n"
4681 "    long     si_band;     /* Band event (was I<int> in\n"
4682 "                             glibc 2.3.2 and earlier) */\n"
4683 "    int      si_fd;       /* File descriptor */\n"
4684 "    short    si_addr_lsb; /* Least significant bit of address\n"
4685 "                             (since Linux 2.6.32) */\n"
4686 "}\n"
4687
4688 #. type: Plain text
4689 #: build/C/man2/sigaction.2:298
4690 msgid ""
4691 "I<si_signo>, I<si_errno> and I<si_code> are defined for all signals.  "
4692 "(I<si_errno> is generally unused on Linux.)  The rest of the struct may be a "
4693 "union, so that one should read only the fields that are meaningful for the "
4694 "given signal:"
4695 msgstr ""
4696 "I<si_signo>, I<si_errno>, I<si_code> は全てのシグナルに対して定義されている "
4697 "(I<si_errno> は Linux では一般的には使用されない)。 構造体の残りの部分は、共"
4698 "用体 (union) になっているかもしれない。 その場合は該当するシグナルにおいて意"
4699 "味のあるフィールドのみを読み込む ことができる。"
4700
4701 #. type: Plain text
4702 #: build/C/man2/sigaction.2:313
4703 msgid ""
4704 "Signals sent with B<kill>(2)  and B<sigqueue>(3)  fill in I<si_pid> and "
4705 "I<si_uid>.  In addition, signals sent with B<sigqueue>(3)  fill in I<si_int> "
4706 "and I<si_ptr> with the values specified by the sender of the signal; see "
4707 "B<sigqueue>(3)  for more details."
4708 msgstr ""
4709 "B<kill>(2) や B<sigqueue>(3) で送信されたシグナルでは I<si_pid> と I<si_uid> "
4710 "が設定される。\n"
4711 "さらに、 B<sigqueue>(3) で送信されたシグナルでは I<si_int> と I<si_pid> にシ"
4712 "グナルの送信者により指定された値が設定される。詳細は B<sigqueue>(3) を参照。"
4713
4714 #. type: Plain text
4715 #: build/C/man2/sigaction.2:329
4716 msgid ""
4717 "Signals sent by POSIX.1b timers (since Linux 2.6) fill in I<si_overrun> and "
4718 "I<si_timerid>.  The I<si_timerid> field is an internal ID used by the kernel "
4719 "to identify the timer; it is not the same as the timer ID returned by "
4720 "B<timer_create>(2).  The I<si_overrun> field is the timer overrun count; "
4721 "this is the same information as is obtained by a call to B<timer_getoverrun>"
4722 "(2).  These fields are nonstandard Linux extensions."
4723 msgstr ""
4724 "POSIX.1b タイマ (Linux 2.6 以降) は I<si_overrun> と I<si_timerid> を\n"
4725 "設定する。 I<si_timerid> フィールドはカーネルがタイマを特定するのに\n"
4726 "使用する内部 ID であり、 B<timer_create>(2) が返すタイマ ID と同じではな"
4727 "い。\n"
4728 "I<si_overrun> フィールドはタイマが回り切った回数である。\n"
4729 "これは B<timer_getoverrun>(2) の呼び出しで取得できる情報と同じである。\n"
4730 "これらのフィールドは非標準で Linux による拡張である。"
4731
4732 #. type: Plain text
4733 #: build/C/man2/sigaction.2:344
4734 msgid ""
4735 "Signals sent for message queue notification (see the description of "
4736 "B<SIGEV_SIGNAL> in B<mq_notify>(3))  fill in I<si_int>/I<si_ptr>, with the "
4737 "I<sigev_value> supplied to B<mq_notify>(3); I<si_pid>, with the process ID "
4738 "of the message sender; and I<si_uid>, with the real user ID of the message "
4739 "sender."
4740 msgstr ""
4741 "メッセージキューの通知用に送信されたシグナル (B<mq_notify>(3) の "
4742 "B<SIGEV_SIGNAL> の説明を参照) では、 I<si_int>/I<si_ptr> に B<mq_notify>(3) "
4743 "に渡された I<sigev_value> が設定される。 I<si_pid> にはメッセージ送信者のプロ"
4744 "セス ID が設定され、 I<si_uid> にはメッセージ送信者の実ユーザ ID が設定され"
4745 "る。"
4746
4747 #.  FIXME .
4748 #.  When si_utime and si_stime where originally implemented, the
4749 #.  measurement unit was HZ, which was the same as clock ticks
4750 #.  (sysconf(_SC_CLK_TCK)).  In 2.6, HZ became configurable, and
4751 #.  was *still* used as the unit to return the info these fields,
4752 #.  with the result that the field values depended on the the
4753 #.  configured HZ.  Of course, the should have been measured in
4754 #.  USER_HZ instead, so that sysconf(_SC_CLK_TCK) could be used to
4755 #.  convert to seconds.  I have a queued patch to fix this:
4756 #.  http://thread.gmane.org/gmane.linux.kernel/698061/ .
4757 #.  This patch made it into 2.6.27.
4758 #.  But note that these fields still don't return the times of
4759 #.  waited-for children (as is done by getrusage() and times()
4760 #.  and wait4()).  Solaris 8 does include child times.
4761 #. type: Plain text
4762 #: build/C/man2/sigaction.2:391
4763 msgid ""
4764 "B<SIGCHLD> fills in I<si_pid>, I<si_uid>, I<si_status>, I<si_utime> and "
4765 "I<si_stime>, providing information about the child.  The I<si_pid> field is "
4766 "the process ID of the child; I<si_uid> is the child's real user ID.  The "
4767 "I<si_status> field contains the exit status of the child (if I<si_code> is "
4768 "B<CLD_EXITED>), or the signal number that caused the process to change "
4769 "state.  The I<si_utime> and I<si_stime> contain the user and system CPU time "
4770 "used by the child process; these fields do not include the times used by "
4771 "waited-for children (unlike B<getrusage>(2)  and B<time>(2)).  In kernels up "
4772 "to 2.6, and since 2.6.27, these fields report CPU time in units of I<sysconf"
4773 "(_SC_CLK_TCK)>.  In 2.6 kernels before 2.6.27, a bug meant that these fields "
4774 "reported time in units of the (configurable) system jiffy (see B<time>(7))."
4775 msgstr ""
4776 "B<SIGCHLD> は I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>,\n"
4777 "I<si_stime> を設定し、子プロセスに関する情報を提供する。\n"
4778 "I<si_pid> フィールドは子プロセスのプロセス ID で、\n"
4779 "I<si_uid> フィールドは子プロセスの実ユーザ ID である。\n"
4780 "I<si_stime> フィールドには、 (I<si_code> が B<CLD_EXITED> の場合は) \n"
4781 "子プロセスの終了ステータスが、それ以外の場合は状態が変化する原因と\n"
4782 "なったシグナル番号が格納される。\n"
4783 "I<si_utime> と I<si_stime> には子プロセスが使用したユーザ CPU 時間とシ\n"
4784 "ステム CPU 時間がそれぞれ格納される。(B<getrusage>(2) や B<time>(2) と\n"
4785 "異なり) これらのフィールドには wait 待ちの子プロセスにより使用された時\n"
4786 "間は含まれない。 2.6 より前と 2.6.27 以降のカーネルでは、 これらのフィー\n"
4787 "ルドに格納される CPU 時間の単位は I<sysconf(_SC_CLK_TCK)> である。\n"
4788 "2.6.27 より前の 2.6 系のカーネルでは、バグがあり、 これらのフィールドの\n"
4789 "CPU 時間の単位が (カーネルのコンフィグで指定される) システムの jiffy で\n"
4790 "あった (B<time>(7) 参照)。"
4791
4792 #.  FIXME SIGTRAP also sets the following for ptrace_notify() ?
4793 #.      info.si_code = exit_code;
4794 #.      info.si_pid = task_pid_vnr(current);
4795 #.      info.si_uid = current_uid();  /* Real UID */
4796 #. type: Plain text
4797 #: build/C/man2/sigaction.2:427
4798 msgid ""
4799 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, and B<SIGTRAP> fill in "
4800 "I<si_addr> with the address of the fault.  On some architectures, these "
4801 "signals also fill in the I<si_trapno> filed.  Some suberrors of B<SIGBUS>, "
4802 "in particular B<BUS_MCEERR_AO> and B<BUS_MCEERR_AR>, also fill in "
4803 "I<si_addr_lsb>.  This field indicates the least significant bit of the "
4804 "reported address and therefore the extent of the corruption.  For example, "
4805 "if a full page was corrupted, I<si_addr_lsb> contains I<log2(sysconf"
4806 "(_SC_PAGESIZE))>.  B<BUS_MCERR_*> and I<si_addr_lsb> are Linux-specific "
4807 "extensions."
4808 msgstr ""
4809 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, B<SIGTRAP> では、 I<si_addr> に "
4810 "fault が発生したアドレスが設定される。 いくつかのアーキテクチャでは "
4811 "I<si_trapno> も設定される。 B<SIGBUS> が発生するエラーのいくつか、特に "
4812 "B<BUS_MCEERR_AO> と B<BUS_MCEERR_AR> では、 I<si_addr_lsb> も設定される。 こ"
4813 "のフィールドは報告されるアドレスの最下位ビットを示し、 これによりメモリ破壊の"
4814 "程度を知ることができる。 例えば、ページ全体が壊れている場合には "
4815 "I<si_addr_lsb> には I<log2(sysconf(_SC_PAGESIZE))> が入る。 B<BUS_MCERR_*> "
4816 "と I<si_addr_lsb> は Linux 固有の拡張である。"
4817
4818 #. type: Plain text
4819 #: build/C/man2/sigaction.2:441
4820 msgid ""
4821 "B<SIGIO>/B<SIGPOLL> (the two names are synonyms on Linux)  fills in "
4822 "I<si_band> and I<si_fd>.  The I<si_band> event is a bit mask containing the "
4823 "same values as are filled in the I<revents> field by B<poll>(2).  The "
4824 "I<si_fd> field indicates the file descriptor for which the I/O event "
4825 "occurred."
4826 msgstr ""
4827 "B<SIGIO>/B<SIGPOLL> (2 つの名前は Linux では同義語) では I<si_band> と "
4828 "I<si_fd> が設定される。 I<si_band> イベントは、 B<poll>(2) が I<revents> "
4829 "フィールドに設定するのと同じ値が入ったビットマスクである。 I<si_fd> フィール"
4830 "ドは I/O イベントが発生したファイルディスクリプタを示す。"
4831
4832 #. type: Plain text
4833 #: build/C/man2/sigaction.2:448
4834 msgid ""
4835 "I<si_code> is a value (not a bit mask)  indicating why this signal was "
4836 "sent.  The following list shows the values which can be placed in I<si_code> "
4837 "for any signal, along with reason that the signal was generated."
4838 msgstr ""
4839 "I<si_code> は、そのシグナルが送信された理由を示す値である (ビットマスクではな"
4840 "い)。 以下は、どのシグナルの場合でも I<si_code> に入りうる値のリストである。"
4841 "シグナルが生成された理由も記載している。"
4842
4843 #. type: TP
4844 #: build/C/man2/sigaction.2:449
4845 #, no-wrap
4846 msgid "B<SI_USER>"
4847 msgstr "B<SI_USER>"
4848
4849 #. type: TP
4850 #: build/C/man2/sigaction.2:452 build/C/man7/signal.7:111
4851 #, no-wrap
4852 msgid "B<kill>(2)"
4853 msgstr "B<kill>(2)"
4854
4855 #. type: TP
4856 #: build/C/man2/sigaction.2:452
4857 #, no-wrap
4858 msgid "B<SI_KERNEL>"
4859 msgstr "B<SI_KERNEL>"
4860
4861 #. type: Plain text
4862 #: build/C/man2/sigaction.2:455
4863 msgid "Sent by the kernel."
4864 msgstr "カーネルにより送信された"
4865
4866 #. type: TP
4867 #: build/C/man2/sigaction.2:455
4868 #, no-wrap
4869 msgid "B<SI_QUEUE>"
4870 msgstr "B<SI_QUEUE>"
4871
4872 #. type: TP
4873 #: build/C/man2/sigaction.2:458 build/C/man7/signal.7:128
4874 #, no-wrap
4875 msgid "B<sigqueue>(3)"
4876 msgstr "B<sigqueue>(3)"
4877
4878 #. type: TP
4879 #: build/C/man2/sigaction.2:458
4880 #, no-wrap
4881 msgid "B<SI_TIMER>"
4882 msgstr "B<SI_TIMER>"
4883
4884 #. type: Plain text
4885 #: build/C/man2/sigaction.2:461
4886 msgid "POSIX timer expired"
4887 msgstr "POSIX タイマが満了した"
4888
4889 #. type: TP
4890 #: build/C/man2/sigaction.2:461
4891 #, no-wrap
4892 msgid "B<SI_MESGQ>"
4893 msgstr "B<SI_MESGQ>"
4894
4895 #. type: Plain text
4896 #: build/C/man2/sigaction.2:465
4897 msgid ""
4898 "POSIX message queue state changed (since Linux 2.6.6); see B<mq_notify>(3)"
4899 msgstr ""
4900 "POSIX メッセージキューの状態が変化した (Linux 2.6.6 以降)。 B<mq_notify>(3)B<"
4901 "参照。>"
4902
4903 #. type: TP
4904 #: build/C/man2/sigaction.2:465
4905 #, no-wrap
4906 msgid "B<SI_ASYNCIO>"
4907 msgstr "B<SI_ASYNCIO>"
4908
4909 #. type: Plain text
4910 #: build/C/man2/sigaction.2:468
4911 msgid "AIO completed"
4912 msgstr "非同期 IO (AIO) が完了した"
4913
4914 #. type: TP
4915 #: build/C/man2/sigaction.2:468
4916 #, no-wrap
4917 msgid "B<SI_SIGIO>"
4918 msgstr "B<SI_SIGIO>"
4919
4920 #. type: Plain text
4921 #: build/C/man2/sigaction.2:477
4922 msgid ""
4923 "Queued B<SIGIO> (only in kernels up to Linux 2.2; from Linux 2.4 onward "
4924 "B<SIGIO>/B<SIGPOLL> fills in I<si_code> as described below)."
4925 msgstr ""
4926 "B<SIGIO> がキューイングされた (Linux 2.2 以下のカーネルのみ; Linux 2.4 以降で"
4927 "は以下で説明する B<SIGIO>/B<SIGPOLL> の I<si_code> が入る)。"
4928
4929 #. type: TP
4930 #: build/C/man2/sigaction.2:477
4931 #, no-wrap
4932 msgid "B<SI_TKILL>"
4933 msgstr "B<SI_TKILL>"
4934
4935 #.  SI_DETHREAD is defined in 2.6.9 sources, but isn't implemented
4936 #.  It appears to have been an idea that was tried during 2.5.6
4937 #.  through to 2.5.24 and then was backed out.
4938 #. type: Plain text
4939 #: build/C/man2/sigaction.2:486
4940 msgid "B<tkill>(2)  or B<tgkill>(2)  (since Linux 2.4.19)"
4941 msgstr "B<tkill>(2)  または B<tgkill>(2)  (Linux 2.4.19 以降)"
4942
4943 #. type: Plain text
4944 #: build/C/man2/sigaction.2:493
4945 msgid ""
4946 "The following values can be placed in I<si_code> for a B<SIGILL> signal:"
4947 msgstr "B<SIGILL> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
4948
4949 #. type: TP
4950 #: build/C/man2/sigaction.2:494
4951 #, no-wrap
4952 msgid "B<ILL_ILLOPC>"
4953 msgstr "B<ILL_ILLOPC>"
4954
4955 #. type: Plain text
4956 #: build/C/man2/sigaction.2:497
4957 msgid "illegal opcode"
4958 msgstr "不正な命令コード (opcode)"
4959
4960 #. type: TP
4961 #: build/C/man2/sigaction.2:497
4962 #, no-wrap
4963 msgid "B<ILL_ILLOPN>"
4964 msgstr "B<ILL_ILLOPN>"
4965
4966 #. type: Plain text
4967 #: build/C/man2/sigaction.2:500
4968 msgid "illegal operand"
4969 msgstr "不正なオペランド"
4970
4971 #. type: TP
4972 #: build/C/man2/sigaction.2:500
4973 #, no-wrap
4974 msgid "B<ILL_ILLADR>"
4975 msgstr "B<ILL_ILLADR>"
4976
4977 #. type: Plain text
4978 #: build/C/man2/sigaction.2:503
4979 msgid "illegal addressing mode"
4980 msgstr "不正なアドレッシングモード"
4981
4982 #. type: TP
4983 #: build/C/man2/sigaction.2:503
4984 #, no-wrap
4985 msgid "B<ILL_ILLTRP>"
4986 msgstr "B<ILL_ILLTRP>"
4987
4988 #. type: Plain text
4989 #: build/C/man2/sigaction.2:506
4990 msgid "illegal trap"
4991 msgstr "不正なトラップ"
4992
4993 #. type: TP
4994 #: build/C/man2/sigaction.2:506
4995 #, no-wrap
4996 msgid "B<ILL_PRVOPC>"
4997 msgstr "B<ILL_PRVOPC>"
4998
4999 #. type: Plain text
5000 #: build/C/man2/sigaction.2:509
5001 msgid "privileged opcode"
5002 msgstr "特権が必要な命令コード (opcode)"
5003
5004 #. type: TP
5005 #: build/C/man2/sigaction.2:509
5006 #, no-wrap
5007 msgid "B<ILL_PRVREG>"
5008 msgstr "B<ILL_PRVREG>"
5009
5010 #. type: Plain text
5011 #: build/C/man2/sigaction.2:512
5012 msgid "privileged register"
5013 msgstr "特権が必要なレジスタ"
5014
5015 #. type: TP
5016 #: build/C/man2/sigaction.2:512
5017 #, no-wrap
5018 msgid "B<ILL_COPROC>"
5019 msgstr "B<ILL_COPROC>"
5020
5021 #. type: Plain text
5022 #: build/C/man2/sigaction.2:515
5023 msgid "coprocessor error"
5024 msgstr "コプロセッサのエラー"
5025
5026 #. type: TP
5027 #: build/C/man2/sigaction.2:515
5028 #, no-wrap
5029 msgid "B<ILL_BADSTK>"
5030 msgstr "B<ILL_BADSTK>"
5031
5032 #. type: Plain text
5033 #: build/C/man2/sigaction.2:518
5034 msgid "internal stack error"
5035 msgstr "内部スタックエラー"
5036
5037 #. type: Plain text
5038 #: build/C/man2/sigaction.2:525
5039 msgid ""
5040 "The following values can be placed in I<si_code> for a B<SIGFPE> signal:"
5041 msgstr "B<SIGFPE> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5042
5043 #. type: TP
5044 #: build/C/man2/sigaction.2:526
5045 #, no-wrap
5046 msgid "B<FPE_INTDIV>"
5047 msgstr "B<FPE_INTDIV>"
5048
5049 #. type: Plain text
5050 #: build/C/man2/sigaction.2:529
5051 msgid "integer divide by zero"
5052 msgstr "整数の 0 による除算"
5053
5054 #. type: TP
5055 #: build/C/man2/sigaction.2:529
5056 #, no-wrap
5057 msgid "B<FPE_INTOVF>"
5058 msgstr "B<FPE_INTOVF>"
5059
5060 #. type: Plain text
5061 #: build/C/man2/sigaction.2:532
5062 msgid "integer overflow"
5063 msgstr "整数のオーバーフロー"
5064
5065 #. type: TP
5066 #: build/C/man2/sigaction.2:532
5067 #, no-wrap
5068 msgid "B<FPE_FLTDIV>"
5069 msgstr "B<FPE_FLTDIV>"
5070
5071 #. type: Plain text
5072 #: build/C/man2/sigaction.2:535
5073 msgid "floating-point divide by zero"
5074 msgstr "浮動小数点の 0 による除算"
5075
5076 #. type: TP
5077 #: build/C/man2/sigaction.2:535
5078 #, no-wrap
5079 msgid "B<FPE_FLTOVF>"
5080 msgstr "B<FPE_FLTOVF>"
5081
5082 #. type: Plain text
5083 #: build/C/man2/sigaction.2:538
5084 msgid "floating-point overflow"
5085 msgstr "浮動小数点のオーバーフロー"
5086
5087 #. type: TP
5088 #: build/C/man2/sigaction.2:538
5089 #, no-wrap
5090 msgid "B<FPE_FLTUND>"
5091 msgstr "B<FPE_FLTUND>"
5092
5093 #. type: Plain text
5094 #: build/C/man2/sigaction.2:541
5095 msgid "floating-point underflow"
5096 msgstr "浮動小数点のアンダーフロー"
5097
5098 #. type: TP
5099 #: build/C/man2/sigaction.2:541
5100 #, no-wrap
5101 msgid "B<FPE_FLTRES>"
5102 msgstr "B<FPE_FLTRES>"
5103
5104 #. type: Plain text
5105 #: build/C/man2/sigaction.2:544
5106 msgid "floating-point inexact result"
5107 msgstr "浮動小数点の不正確な演算結果 (inexact result)"
5108
5109 #. type: TP
5110 #: build/C/man2/sigaction.2:544
5111 #, no-wrap
5112 msgid "B<FPE_FLTINV>"
5113 msgstr "B<FPE_FLTINV>"
5114
5115 #. type: Plain text
5116 #: build/C/man2/sigaction.2:547
5117 msgid "floating-point invalid operation"
5118 msgstr "浮動小数点の不正な操作"
5119
5120 #. type: TP
5121 #: build/C/man2/sigaction.2:547
5122 #, no-wrap
5123 msgid "B<FPE_FLTSUB>"
5124 msgstr "B<FPE_FLTSUB>"
5125
5126 #. type: Plain text
5127 #: build/C/man2/sigaction.2:550
5128 msgid "subscript out of range"
5129 msgstr "範囲外の添字 (subscript)"
5130
5131 #. type: Plain text
5132 #: build/C/man2/sigaction.2:557
5133 msgid ""
5134 "The following values can be placed in I<si_code> for a B<SIGSEGV> signal:"
5135 msgstr "B<SIGSEGV> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5136
5137 #. type: TP
5138 #: build/C/man2/sigaction.2:558
5139 #, no-wrap
5140 msgid "B<SEGV_MAPERR>"
5141 msgstr "B<SEGV_MAPERR>"
5142
5143 #. type: Plain text
5144 #: build/C/man2/sigaction.2:561
5145 msgid "address not mapped to object"
5146 msgstr "オブジェクトにマッピングされていないアドレス"
5147
5148 #. type: TP
5149 #: build/C/man2/sigaction.2:561
5150 #, no-wrap
5151 msgid "B<SEGV_ACCERR>"
5152 msgstr "B<SEGV_ACCERR>"
5153
5154 #. type: Plain text
5155 #: build/C/man2/sigaction.2:564
5156 msgid "invalid permissions for mapped object"
5157 msgstr "マッピングされたオブジェクトに対するアクセス許可がない"
5158
5159 #. type: Plain text
5160 #: build/C/man2/sigaction.2:571
5161 msgid ""
5162 "The following values can be placed in I<si_code> for a B<SIGBUS> signal:"
5163 msgstr "B<SIGBUS> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5164
5165 #. type: TP
5166 #: build/C/man2/sigaction.2:572
5167 #, no-wrap
5168 msgid "B<BUS_ADRALN>"
5169 msgstr "B<BUS_ADRALN>"
5170
5171 #. type: Plain text
5172 #: build/C/man2/sigaction.2:575
5173 msgid "invalid address alignment"
5174 msgstr "不正なアドレス・アライメント (alignment)"
5175
5176 #. type: TP
5177 #: build/C/man2/sigaction.2:575
5178 #, no-wrap
5179 msgid "B<BUS_ADRERR>"
5180 msgstr "B<BUS_ADRERR>"
5181
5182 #. type: Plain text
5183 #: build/C/man2/sigaction.2:578
5184 msgid "nonexistent physical address"
5185 msgstr "存在しない物理アドレス"
5186
5187 #. type: TP
5188 #: build/C/man2/sigaction.2:578
5189 #, no-wrap
5190 msgid "B<BUS_OBJERR>"
5191 msgstr "B<BUS_OBJERR>"
5192
5193 #. type: Plain text
5194 #: build/C/man2/sigaction.2:581
5195 msgid "object-specific hardware error"
5196 msgstr "オブジェクト固有のハードウェアエラー"
5197
5198 #. type: TP
5199 #: build/C/man2/sigaction.2:581
5200 #, no-wrap
5201 msgid "B<BUS_MCEERR_AR> (since Linux 2.6.32)"
5202 msgstr "B<BUS_MCEERR_AR> (Linux 2.6.32 以降)"
5203
5204 #. type: Plain text
5205 #: build/C/man2/sigaction.2:584
5206 msgid "Hardware memory error consumed on a machine check; action required."
5207 msgstr ""
5208 "マシンチェックで使用中のハードウェアメモリのエラーが検出された。対応が必須。"
5209
5210 #. type: TP
5211 #: build/C/man2/sigaction.2:584
5212 #, no-wrap
5213 msgid "B<BUS_MCEERR_AO> (since Linux 2.6.32)"
5214 msgstr "B<BUS_MCEERR_AO> (Linux 2.6.32  以降)"
5215
5216 #. type: Plain text
5217 #: build/C/man2/sigaction.2:587
5218 msgid ""
5219 "Hardware memory error detected in process but not consumed; action optional."
5220 msgstr ""
5221 "実行中にハードウェアメモリエラーが検出されたが、使用中のメモリではない。対応"
5222 "は必須ではない。"
5223
5224 #. type: Plain text
5225 #: build/C/man2/sigaction.2:594
5226 msgid ""
5227 "The following values can be placed in I<si_code> for a B<SIGTRAP> signal:"
5228 msgstr "B<SIGTRAP> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5229
5230 #. type: TP
5231 #: build/C/man2/sigaction.2:595
5232 #, no-wrap
5233 msgid "B<TRAP_BRKPT>"
5234 msgstr "B<TRAP_BRKPT>"
5235
5236 #. type: Plain text
5237 #: build/C/man2/sigaction.2:598
5238 msgid "process breakpoint"
5239 msgstr "プロセスのブレークポイント"
5240
5241 #. type: TP
5242 #: build/C/man2/sigaction.2:598
5243 #, no-wrap
5244 msgid "B<TRAP_TRACE>"
5245 msgstr "B<TRAP_TRACE>"
5246
5247 #. type: Plain text
5248 #: build/C/man2/sigaction.2:601
5249 msgid "process trace trap"
5250 msgstr "プロセスのトレース・トラップ"
5251
5252 #. type: TP
5253 #: build/C/man2/sigaction.2:601
5254 #, no-wrap
5255 msgid "B<TRAP_BRANCH> (since Linux 2.4)"
5256 msgstr "B<TRAP_BRANCH> (Linux 2.4 以降)"
5257
5258 #. type: Plain text
5259 #: build/C/man2/sigaction.2:604
5260 msgid "process taken branch trap"
5261 msgstr "プロセスのブランチ・トラップ"
5262
5263 #. type: TP
5264 #: build/C/man2/sigaction.2:604
5265 #, no-wrap
5266 msgid "B<TRAP_HWBKPT> (since Linux 2.4)"
5267 msgstr "B<TRAP_HWBKPT> (Linux 2.4 以降)"
5268
5269 #. type: Plain text
5270 #: build/C/man2/sigaction.2:607
5271 msgid "hardware breakpoint/watchpoint"
5272 msgstr "ハードウェア・ブレークポイント/ウォッチポイント"
5273
5274 #. type: Plain text
5275 #: build/C/man2/sigaction.2:614
5276 msgid ""
5277 "The following values can be placed in I<si_code> for a B<SIGCHLD> signal:"
5278 msgstr "B<SIGCHLD> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5279
5280 #. type: TP
5281 #: build/C/man2/sigaction.2:615
5282 #, no-wrap
5283 msgid "B<CLD_EXITED>"
5284 msgstr "B<CLD_EXITED>"
5285
5286 #. type: Plain text
5287 #: build/C/man2/sigaction.2:618
5288 msgid "child has exited"
5289 msgstr "子プロセスが終了した (exited)"
5290
5291 #. type: TP
5292 #: build/C/man2/sigaction.2:618
5293 #, no-wrap
5294 msgid "B<CLD_KILLED>"
5295 msgstr "B<CLD_KILLED>"
5296
5297 #. type: Plain text
5298 #: build/C/man2/sigaction.2:621
5299 msgid "child was killed"
5300 msgstr "子プロセスが kill された"
5301
5302 #. type: TP
5303 #: build/C/man2/sigaction.2:621
5304 #, no-wrap
5305 msgid "B<CLD_DUMPED>"
5306 msgstr "B<CLD_DUMPED>"
5307
5308 #. type: Plain text
5309 #: build/C/man2/sigaction.2:624
5310 msgid "child terminated abnormally"
5311 msgstr "子プロセスが異常終了した"
5312
5313 #. type: TP
5314 #: build/C/man2/sigaction.2:624
5315 #, no-wrap
5316 msgid "B<CLD_TRAPPED>"
5317 msgstr "B<CLD_TRAPPED>"
5318
5319 #. type: Plain text
5320 #: build/C/man2/sigaction.2:627
5321 msgid "traced child has trapped"
5322 msgstr "トレース対象の子プロセスがトラップを上げた"
5323
5324 #. type: TP
5325 #: build/C/man2/sigaction.2:627
5326 #, no-wrap
5327 msgid "B<CLD_STOPPED>"
5328 msgstr "B<CLD_STOPPED>"
5329
5330 #. type: Plain text
5331 #: build/C/man2/sigaction.2:630
5332 msgid "child has stopped"
5333 msgstr "子プロセスが停止 (stop) した"
5334
5335 #. type: TP
5336 #: build/C/man2/sigaction.2:630
5337 #, no-wrap
5338 msgid "B<CLD_CONTINUED>"
5339 msgstr "B<CLD_CONTINUED>"
5340
5341 #. type: Plain text
5342 #: build/C/man2/sigaction.2:633
5343 msgid "stopped child has continued (since Linux 2.6.9)"
5344 msgstr "停止していた子プロセスが再開した (Linux 2.6.9 以降)"
5345
5346 #. type: Plain text
5347 #: build/C/man2/sigaction.2:640
5348 msgid ""
5349 "The following values can be placed in I<si_code> for a B<SIGIO>/B<SIGPOLL> "
5350 "signal:"
5351 msgstr ""
5352 "B<SIGIO>/B<SIGPOLL> シグナルの場合、 I<si_code> には以下の値が入る可能性があ"
5353 "る:"
5354
5355 #. type: TP
5356 #: build/C/man2/sigaction.2:641
5357 #, no-wrap
5358 msgid "B<POLL_IN>"
5359 msgstr "B<POLL_IN>"
5360
5361 #. type: Plain text
5362 #: build/C/man2/sigaction.2:644
5363 msgid "data input available"
5364 msgstr "入力データが利用可能"
5365
5366 #. type: TP
5367 #: build/C/man2/sigaction.2:644
5368 #, no-wrap
5369 msgid "B<POLL_OUT>"
5370 msgstr "B<POLL_OUT>"
5371
5372 #. type: Plain text
5373 #: build/C/man2/sigaction.2:647
5374 msgid "output buffers available"
5375 msgstr "出力バッファが利用可能"
5376
5377 #. type: TP
5378 #: build/C/man2/sigaction.2:647
5379 #, no-wrap
5380 msgid "B<POLL_MSG>"
5381 msgstr "B<POLL_MSG>"
5382
5383 #. type: Plain text
5384 #: build/C/man2/sigaction.2:650
5385 msgid "input message available"
5386 msgstr "入力メッセージが利用可能"
5387
5388 #. type: TP
5389 #: build/C/man2/sigaction.2:650
5390 #, no-wrap
5391 msgid "B<POLL_ERR>"
5392 msgstr "B<POLL_ERR>"
5393
5394 #. type: Plain text
5395 #: build/C/man2/sigaction.2:653
5396 msgid "I/O error"
5397 msgstr "I/O エラー"
5398
5399 #. type: TP
5400 #: build/C/man2/sigaction.2:653
5401 #, no-wrap
5402 msgid "B<POLL_PRI>"
5403 msgstr "B<POLL_PRI>"
5404
5405 #. type: Plain text
5406 #: build/C/man2/sigaction.2:656
5407 msgid "high priority input available"
5408 msgstr "高優先の入力が利用可能"
5409
5410 #. type: TP
5411 #: build/C/man2/sigaction.2:656
5412 #, no-wrap
5413 msgid "B<POLL_HUP>"
5414 msgstr "B<POLL_HUP>"
5415
5416 #. type: Plain text
5417 #: build/C/man2/sigaction.2:659
5418 msgid "device disconnected"
5419 msgstr "デバイスが接続されていない"
5420
5421 #. type: Plain text
5422 #: build/C/man2/sigaction.2:665
5423 #, fuzzy
5424 #| msgid ""
5425 #| "The B<sigvec>()  function returns 0 on success; on error, it returns -1 "
5426 #| "and sets I<errno> to indicate the error."
5427 msgid ""
5428 "B<sigaction>()  returns 0 on success; on error, -1 is returned, and I<errno> "
5429 "is set to indicate the error."
5430 msgstr ""
5431 "B<sigvec>()  関数は成功すると 0 を返す。エラーの場合、-1 を返し、 I<errno> に"
5432 "エラーを示す値をセットする。"
5433
5434 #. type: Plain text
5435 #: build/C/man2/sigaction.2:670
5436 msgid ""
5437 "I<act> or I<oldact> points to memory which is not a valid part of the "
5438 "process address space."
5439 msgstr ""
5440 "I<act> か I<oldact> が指しているメモリが正しいプロセスのアドレス空間にない。"
5441
5442 #. type: Plain text
5443 #: build/C/man2/sigaction.2:677
5444 msgid ""
5445 "An invalid signal was specified.  This will also be generated if an attempt "
5446 "is made to change the action for B<SIGKILL> or B<SIGSTOP>, which cannot be "
5447 "caught or ignored."
5448 msgstr ""
5449 "無効なシグナルが指定された。補足 (catch) したり無視したりできない シグナルで"
5450 "ある B<SIGKILL> や B<SIGSTOP> に対する動作を変更しようとした場合にも発生す"
5451 "る。"
5452
5453 #.  SVr4 does not document the EINTR condition.
5454 #. type: Plain text
5455 #: build/C/man2/sigaction.2:680
5456 msgid "POSIX.1-2001, SVr4."
5457 msgstr "POSIX.1-2001, SVr4."
5458
5459 #. type: Plain text
5460 #: build/C/man2/sigaction.2:688 build/C/man7/signal.7:105
5461 msgid ""
5462 "A child created via B<fork>(2)  inherits a copy of its parent's signal "
5463 "dispositions.  During an B<execve>(2), the dispositions of handled signals "
5464 "are reset to the default; the dispositions of ignored signals are left "
5465 "unchanged."
5466 msgstr ""
5467 "B<fork>(2) 経由で作成された子プロセスは、親プロセスのシグナルの処理方法の コ"
5468 "ピーを継承する。\n"
5469 "B<execve>(2) の前後で、ハンドラが設定されているシグナルの処理方法はデフォルト"
5470 "にリセットされ、\n"
5471 "無視が設定されているシグナルの処理方法は変更されずそのままとなる。"
5472
5473 #. type: Plain text
5474 #: build/C/man2/sigaction.2:706 build/C/man2/signal.2:134
5475 msgid ""
5476 "According to POSIX, the behavior of a process is undefined after it ignores "
5477 "a B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> signal that was not generated by "
5478 "B<kill>(2)  or B<raise>(3).  Integer division by zero has undefined result.  "
5479 "On some architectures it will generate a B<SIGFPE> signal.  (Also dividing "
5480 "the most negative integer by -1 may generate B<SIGFPE>.)  Ignoring this "
5481 "signal might lead to an endless loop."
5482 msgstr ""
5483 "POSIX では、 B<kill>(2)  や B<raise>(3)  で生成できないシグナル B<SIGFPE>, "
5484 "B<SIGILL>, B<SIGSEGV> を無視 (ignore) した場合、その後の動作は未定義である。 "
5485 "ゼロによる整数割り算の結果は未定義となる。 アーキテクチャーによっては、このと"
5486 "き B<SIGFPE> シグナルが生成される。 (同様に負の最大整数を -1 で割ると "
5487 "B<SIGFPE> が生成されるかもしれない)  このシグナルを無視すると無限ループに陥る"
5488 "かもしれない。"
5489
5490 #. type: Plain text
5491 #: build/C/man2/sigaction.2:723
5492 msgid ""
5493 "POSIX.1-1990 disallowed setting the action for B<SIGCHLD> to B<SIG_IGN>.  "
5494 "POSIX.1-2001 allows this possibility, so that ignoring B<SIGCHLD> can be "
5495 "used to prevent the creation of zombies (see B<wait>(2)).  Nevertheless, the "
5496 "historical BSD and System V behaviors for ignoring B<SIGCHLD> differ, so "
5497 "that the only completely portable method of ensuring that terminated "
5498 "children do not become zombies is to catch the B<SIGCHLD> signal and perform "
5499 "a B<wait>(2)  or similar."
5500 msgstr ""
5501 "POSIX.1-1990 では B<SIGCHLD> に B<SIG_IGN> を設定することを認めていない。 "
5502 "POSIX.1-2001 では認められており、 B<SIGCHLD> を無視することでゾンビプロセスの"
5503 "生成を防止することができる (B<wait>(2)  を参照)。 さらに、BSD と SystemV で"
5504 "は B<SIGCHLD> を無視した際の動作が異なっている。 そのため、完全に移植性がある"
5505 "方法で、終了した子プロセスがゾンビにならないこと を保証するには、 B<SIGCHLD> "
5506 "シグナルを補足し、 B<wait>(2)  などを実行するしかない。"
5507
5508 #. type: Plain text
5509 #: build/C/man2/sigaction.2:736
5510 msgid ""
5511 "POSIX.1-1990 specified only B<SA_NOCLDSTOP>.  POSIX.1-2001 added "
5512 "B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, and B<SA_SIGINFO>.  Use of "
5513 "these latter values in I<sa_flags> may be less portable in applications "
5514 "intended for older UNIX implementations."
5515 msgstr ""
5516 "POSIX.1-1990 の仕様では B<SA_NOCLDSTOP> のみが定義されている。\n"
5517 "POSIX.1-2001 では B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>,\n"
5518 "B<SA_SIGINFO> が追加された。 UNIX の古い実装で動かすアプリケーションで、\n"
5519 "他の I<sa_flags> フラグを使用すると移植性が下がる。"
5520
5521 #. type: Plain text
5522 #: build/C/man2/sigaction.2:740
5523 msgid ""
5524 "The B<SA_RESETHAND> flag is compatible with the SVr4 flag of the same name."
5525 msgstr "B<SA_RESETHAND> フラグは SVr4 の同じ名前のフラグと互換性がある。"
5526
5527 #. type: Plain text
5528 #: build/C/man2/sigaction.2:750
5529 msgid ""
5530 "The B<SA_NODEFER> flag is compatible with the SVr4 flag of the same name "
5531 "under kernels 1.3.9 and newer.  On older kernels the Linux implementation "
5532 "allowed the receipt of any signal, not just the one we are installing "
5533 "(effectively overriding any I<sa_mask> settings)."
5534 msgstr ""
5535 "B<SA_NODEFER> フラグは 1.3.9 以降のカーネルでは同じ名前の SVr4 のフラグと互換"
5536 "性がある。 ぞれ以前の Linux カーネルの実装では、このフラグを設定しているシグ"
5537 "ナル だけでなく、どのシグナルでも受けることを許していた (実際には I<sa_mask> "
5538 "の設定により無効にできる)。"
5539
5540 #. type: Plain text
5541 #: build/C/man2/sigaction.2:756
5542 msgid ""
5543 "B<sigaction>()  can be called with a NULL second argument to query the "
5544 "current signal handler.  It can also be used to check whether a given signal "
5545 "is valid for the current machine by calling it with NULL second and third "
5546 "arguments."
5547 msgstr ""
5548 "B<sigaction>()  の二番目の引き数に NULL を指定して呼び出すと、現在のシグナル"
5549 "ハンドラを確認する ことができる。また、二番目と三番目の引き数を NULL にて呼び"
5550 "出すことで、 指定されたシグナルが現在のマシンで使えるかどうかチェックできる。"
5551
5552 #. type: Plain text
5553 #: build/C/man2/sigaction.2:762
5554 msgid ""
5555 "It is not possible to block B<SIGKILL> or B<SIGSTOP> (by specifying them in "
5556 "I<sa_mask>).  Attempts to do so are silently ignored."
5557 msgstr ""
5558 "B<SIGKILL> や B<SIGSTOP> を (I<sa_mask> に指定して) 禁止することはできない。 "
5559 "禁止しようとしても黙って無視される。"
5560
5561 #. type: Plain text
5562 #: build/C/man2/sigaction.2:766 build/C/man2/sigpending.2:70
5563 #: build/C/man2/sigprocmask.2:144 build/C/man2/sigsuspend.2:108
5564 msgid "See B<sigsetops>(3)  for details on manipulating signal sets."
5565 msgstr "シグナル集合の操作に関する詳細は B<sigsetops>(3)  を参照のこと。"
5566
5567 #. type: Plain text
5568 #: build/C/man2/sigaction.2:771
5569 msgid ""
5570 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
5571 "safely called inside from inside a signal handler."
5572 msgstr ""
5573 "シグナルハンドラ内から安全に呼び出すことができる、 async-signal-safe "
5574 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
5575 "照。"
5576
5577 #. type: SS
5578 #: build/C/man2/sigaction.2:771
5579 #, no-wrap
5580 msgid "Undocumented"
5581 msgstr "非公式"
5582
5583 #. type: Plain text
5584 #: build/C/man2/sigaction.2:781
5585 msgid ""
5586 "Before the introduction of B<SA_SIGINFO> it was also possible to get some "
5587 "additional information, namely by using a I<sa_handler> with second argument "
5588 "of type I<struct sigcontext>.  See the relevant Linux kernel sources for "
5589 "details.  This use is obsolete now."
5590 msgstr ""
5591 "B<SA_SIGINFO> が導入される前は、 I<struct sigcontext> 型の二番目の引き数と一"
5592 "緒に I<sa_handler> を使用することで、 いくつかの追加の情報を入手することがで"
5593 "きた。 詳細については Linux カーネルソースの関連部分を見てほしい。 現在はこの"
5594 "使用法は廃止されている。"
5595
5596 #. type: Plain text
5597 #: build/C/man2/sigaction.2:790
5598 msgid ""
5599 "In kernels up to and including 2.6.13, specifying B<SA_NODEFER> in "
5600 "I<sa_flags> prevents not only the delivered signal from being masked during "
5601 "execution of the handler, but also the signals specified in I<sa_mask>.  "
5602 "This bug was fixed in kernel 2.6.14."
5603 msgstr ""
5604 "2.6.13 以前のカーネルでは、 I<sa_flags> に B<SA_NODEFER> を指定した場合、 ハ"
5605 "ンドラが実行中に配送されたシグナル自身がマスクされなくなるだけでなく、 "
5606 "I<sa_mask> に指定されたシグナルもマスクされなくなる。 このバグは、カーネル "
5607 "2.6.14 で修正された。"
5608
5609 #. type: Plain text
5610 #: build/C/man2/sigaction.2:793
5611 msgid "See B<mprotect>(2)."
5612 msgstr "B<mprotect>(2)  参照。"
5613
5614 #. type: Plain text
5615 #: build/C/man2/sigaction.2:812
5616 msgid ""
5617 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaltstack>(2), "
5618 "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
5619 "B<sigsuspend>(2), B<wait>(2), B<raise>(3), B<siginterrupt>(3), B<sigqueue>"
5620 "(3), B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
5621 msgstr ""
5622 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaltstack>(2),\n"
5623 "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2),\n"
5624 "B<sigsuspend>(2), B<wait>(2), B<raise>(3), B<siginterrupt>(3),\n"
5625 "B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<core>(5),\n"
5626 "B<signal>(7)"
5627
5628 #. type: TH
5629 #: build/C/man2/sigaltstack.2:27
5630 #, no-wrap
5631 msgid "SIGALTSTACK"
5632 msgstr "SIGALTSTACK"
5633
5634 #. type: TH
5635 #: build/C/man2/sigaltstack.2:27
5636 #, no-wrap
5637 msgid "2010-09-26"
5638 msgstr "2010-09-26"
5639
5640 #. type: Plain text
5641 #: build/C/man2/sigaltstack.2:30
5642 msgid "sigaltstack - set and/or get signal stack context"
5643 msgstr "sigaltstack - シグナルスタックのコンテキストを設定・取得する"
5644
5645 #. type: Plain text
5646 #: build/C/man2/sigaltstack.2:34
5647 msgid "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
5648 msgstr "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
5649
5650 #. type: Plain text
5651 #: build/C/man2/sigaltstack.2:41
5652 msgid "B<sigaltstack>():"
5653 msgstr "B<sigaltstack>():"
5654
5655 #. type: Plain text
5656 #: build/C/man2/sigaltstack.2:48 build/C/man3/siginterrupt.3:53
5657 #: build/C/man2/wait.2:78
5658 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
5659 msgstr "|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
5660
5661 #. type: Plain text
5662 #: build/C/man2/sigaltstack.2:60
5663 msgid ""
5664 "B<sigaltstack>()  allows a process to define a new alternate signal stack "
5665 "and/or retrieve the state of an existing alternate signal stack.  An "
5666 "alternate signal stack is used during the execution of a signal handler if "
5667 "the establishment of that handler (see B<sigaction>(2))  requested it."
5668 msgstr ""
5669 "B<sigaltstack>()  を使うと、 プロセスは新しい代替シグナルスタックを定義した"
5670 "り、 既存の代替シグナルスタックの状態を取得できる。 シグナルハンドラが代替シ"
5671 "グナルスタックを要求するように設定されていると (B<sigaction>(2)  参照)、ハン"
5672 "ドラの実行中はそのシグナルスタックが使われる。"
5673
5674 #. type: Plain text
5675 #: build/C/man2/sigaltstack.2:63
5676 msgid ""
5677 "The normal sequence of events for using an alternate signal stack is the "
5678 "following:"
5679 msgstr "代替シグナルスタックを使う際の一般的な手順は、以下の通りである:"
5680
5681 #. type: IP
5682 #: build/C/man2/sigaltstack.2:63 build/C/man7/signal.7:387
5683 #, no-wrap
5684 msgid "1."
5685 msgstr "1."
5686
5687 #. type: Plain text
5688 #: build/C/man2/sigaltstack.2:67
5689 msgid "Allocate an area of memory to be used for the alternate signal stack."
5690 msgstr "代替シグナルスタックで使うメモリ領域を確保する。"
5691
5692 #. type: IP
5693 #: build/C/man2/sigaltstack.2:67 build/C/man7/signal.7:391
5694 #, no-wrap
5695 msgid "2."
5696 msgstr "2."
5697
5698 #. type: Plain text
5699 #: build/C/man2/sigaltstack.2:73
5700 msgid ""
5701 "Use B<sigaltstack>()  to inform the system of the existence and location of "
5702 "the alternate signal stack."
5703 msgstr ""
5704 "B<sigaltstack>()  を使って、 代替シグナルスタックの存在と場所をシステムに知ら"
5705 "せる。"
5706
5707 #. type: IP
5708 #: build/C/man2/sigaltstack.2:73 build/C/man7/signal.7:411
5709 #, no-wrap
5710 msgid "3."
5711 msgstr "3."
5712
5713 #. type: Plain text
5714 #: build/C/man2/sigaltstack.2:80
5715 msgid ""
5716 "When establishing a signal handler using B<sigaction>(2), inform the system "
5717 "that the signal handler should be executed on the alternate signal stack by "
5718 "specifying the B<SA_ONSTACK> flag."
5719 msgstr ""
5720 "B<sigaction>(2)  を使ってシグナルハンドラを確立する際、 B<SA_ONSTACK> フラグ"
5721 "を指定することにより、 そのシグナルハンドラを代替シグナルスタック上で実行する"
5722 "ことを システムに知らせる。"
5723
5724 #. type: Plain text
5725 #: build/C/man2/sigaltstack.2:88
5726 msgid ""
5727 "The I<ss> argument is used to specify a new alternate signal stack, while "
5728 "the I<oss> argument is used to retrieve information about the currently "
5729 "established signal stack.  If we are interested in performing just one of "
5730 "these tasks then the other argument can be specified as NULL.  Each of these "
5731 "arguments is a structure of the following type:"
5732 msgstr ""
5733 "I<ss> 引き数は、新しいシグナルスタックを指定するために使う。 また I<oss> 引き"
5734 "数は、現在確立されている シグナルスタックの情報を取得するために使う。 この操"
5735 "作のうち 1 つだけを実行させるには、 使用しない引き数を NULL に指定すればよ"
5736 "い。 引き数となる構造体は、以下のような型である:"
5737
5738 #. type: Plain text
5739 #: build/C/man2/sigaltstack.2:96
5740 #, no-wrap
5741 msgid ""
5742 "typedef struct {\n"
5743 "    void  *ss_sp;     /* Base address of stack */\n"
5744 "    int    ss_flags;  /* Flags */\n"
5745 "    size_t ss_size;   /* Number of bytes in stack */\n"
5746 "} stack_t;\n"
5747 msgstr ""
5748 "typedef struct {\n"
5749 "    void  *ss_sp;     /* スタックのベースアドレス */\n"
5750 "    int    ss_flags;  /* フラグ */\n"
5751 "    size_t ss_size;   /* スタックのバイト数 */\n"
5752 "} stack_t;\n"
5753
5754 #. type: Plain text
5755 #: build/C/man2/sigaltstack.2:107
5756 msgid ""
5757 "To establish a new alternate signal stack, I<ss.ss_flags> is set to zero, "
5758 "and I<ss.ss_sp> and I<ss.ss_size> specify the starting address and size of "
5759 "the stack.  The constant B<SIGSTKSZ> is defined to be large enough to cover "
5760 "the usual size requirements for an alternate signal stack, and the constant "
5761 "B<MINSIGSTKSZ> defines the minimum size required to execute a signal handler."
5762 msgstr ""
5763 "新規の代替シグナルスタックを確立するには、 I<ss.ss_flags> を 0 に設定し、 "
5764 "I<ss.ss_sp> と I<ss.ss_size> に スタックの開始アドレスとスタックサイズを指定"
5765 "する。 定数 B<SIGSTKSZ> は、代替シグナルスタックが通常必要する サイズよりも充"
5766 "分大きく定義されている。 また定数 B<MINSIGSTKSZ> は、 シグナルハンドラの実行"
5767 "に必要な最小サイズに定義されている。"
5768
5769 #. type: Plain text
5770 #: build/C/man2/sigaltstack.2:111
5771 msgid ""
5772 "When a signal handler is invoked on the alternate stack, the kernel "
5773 "automatically aligns the address given in I<ss.ss_sp> to a suitable address "
5774 "boundary for the underlying hardware architecture."
5775 msgstr ""
5776 "代替スタックでシグナルハンドラが起動された場合には、 カーネルにより自動的に、"
5777 "I<ss.ss_sp> で指定されたアドレスは 動作しているハードウェアアーキテクチャに適"
5778 "したアドレス境界に 調整される。"
5779
5780 #. type: Plain text
5781 #: build/C/man2/sigaltstack.2:116
5782 msgid ""
5783 "To disable an existing stack, specify I<ss.ss_flags> as B<SS_DISABLE>.  In "
5784 "this case, the remaining fields in I<ss> are ignored."
5785 msgstr ""
5786 "既存のスタックを無効にするには、 I<ss.ss_flags> を B<SS_DISABLE> に指定す"
5787 "る。 この場合、I<ss> の他のフィールドは無視される。"
5788
5789 #. type: Plain text
5790 #: build/C/man2/sigaltstack.2:124
5791 msgid ""
5792 "If I<oss> is not NULL, then it is used to return information about the "
5793 "alternate signal stack which was in effect prior to the call to "
5794 "B<sigaltstack>().  The I<oss.ss_sp> and I<oss.ss_size> fields return the "
5795 "starting address and size of that stack.  The I<oss.ss_flags> may return "
5796 "either of the following values:"
5797 msgstr ""
5798 "I<oss> が NULL 以外の場合、 I<oss> に代替シグナルスタックの情報が返される。 "
5799 "これは (実質的に)  B<sigaltstack>()  の呼び出しより先に行われる。 I<oss."
5800 "ss_sp> と I<oss.ss_size> フィールドに スタックの開始アドレスとスタックサイズ"
5801 "が返される。 I<oss.ss_flags> には以下のどちらかの値が返される:"
5802
5803 #. type: TP
5804 #: build/C/man2/sigaltstack.2:124
5805 #, no-wrap
5806 msgid "B<SS_ONSTACK>"
5807 msgstr "B<SS_ONSTACK>"
5808
5809 #. type: Plain text
5810 #: build/C/man2/sigaltstack.2:130
5811 msgid ""
5812 "The process is currently executing on the alternate signal stack.  (Note "
5813 "that it is not possible to change the alternate signal stack if the process "
5814 "is currently executing on it.)"
5815 msgstr ""
5816 "プロセスが代替シグナルスタック上で実行されている (プロセスが既にそのシグナル"
5817 "スタック上で実行されている場合は、 それと同じシグナルスタックには変更できない"
5818 "点に注意すること)。"
5819
5820 #. type: TP
5821 #: build/C/man2/sigaltstack.2:130
5822 #, no-wrap
5823 msgid "B<SS_DISABLE>"
5824 msgstr "B<SS_DISABLE>"
5825
5826 #. type: Plain text
5827 #: build/C/man2/sigaltstack.2:133
5828 msgid "The alternate signal stack is currently disabled."
5829 msgstr "代替シグナルスタックが現在無効になっている。"
5830
5831 #. type: Plain text
5832 #: build/C/man2/sigaltstack.2:137
5833 msgid ""
5834 "B<sigaltstack>()  returns 0 on success, or -1 on failure with I<errno> set "
5835 "to indicate the error."
5836 msgstr ""
5837 "B<sigaltstack>()  は成功した場合 0 を返す。 失敗した場合は -1 を返して、 エ"
5838 "ラーを示す値に I<errno> を設定する。"
5839
5840 #. type: Plain text
5841 #: build/C/man2/sigaltstack.2:142
5842 msgid ""
5843 "Either I<ss> or I<oss> is not NULL and points to an area outside of the "
5844 "process's address space."
5845 msgstr ""
5846 "I<ss> または I<oss> のどちらが、NULL 以外で、 かつプロセスのアドレス空間の外"
5847 "を指している。"
5848
5849 #. type: Plain text
5850 #: build/C/man2/sigaltstack.2:147
5851 msgid ""
5852 "I<ss> is not NULL and the I<ss_flags> field contains a nonzero value other "
5853 "than B<SS_DISABLE>."
5854 msgstr ""
5855 "I<ss> が NULL 以外で、I<ss_flags> フィールドが B<SS_DISABLE> 以外の 0 でない"
5856 "値になっている。"
5857
5858 #. type: Plain text
5859 #: build/C/man2/sigaltstack.2:151
5860 msgid ""
5861 "The specified size of the new alternate signal stack (I<ss.ss_size>) was "
5862 "less than B<MINSTKSZ>."
5863 msgstr ""
5864 "新しい代替シグナルスタック (I<ss.ss_size>) に指定したサイズが B<MINSTKSZ> よ"
5865 "り小さい。"
5866
5867 #. type: Plain text
5868 #: build/C/man2/sigaltstack.2:156
5869 msgid ""
5870 "An attempt was made to change the alternate signal stack while it was active "
5871 "(i.e., the process was already executing on the current alternate signal "
5872 "stack)."
5873 msgstr ""
5874 "代替シグナルスタックが有効であるときに変更を行おうとした (つまり、プロセスが"
5875 "既に現在の代替シグナルスタック上で実行されていた)。"
5876
5877 #. type: Plain text
5878 #: build/C/man2/sigaltstack.2:158
5879 msgid "SUSv2, SVr4, POSIX.1-2001."
5880 msgstr "SUSv2, SVr4, POSIX.1-2001."
5881
5882 #. type: Plain text
5883 #: build/C/man2/sigaltstack.2:166
5884 msgid ""
5885 "The most common usage of an alternate signal stack is to handle the "
5886 "B<SIGSEGV> signal that is generated if the space available for the normal "
5887 "process stack is exhausted: in this case, a signal handler for B<SIGSEGV> "
5888 "cannot be invoked on the process stack; if we wish to handle it, we must use "
5889 "an alternate signal stack."
5890 msgstr ""
5891 "代替シグナルスタックを使用する最もよくある場面は、 B<SIGSEGV> シグナルを扱う"
5892 "ときである。 B<SIGSEGV> はプロセスの通常のスタックが利用できる空間が使い果た"
5893 "された際に 生成されるシグナルである。この場合には、 B<SIGSEGV> 用のシグナルハ"
5894 "ンドラをプロセスのスタック上では起動することができない。 そのため、このシグナ"
5895 "ルを扱おうとする場合には、 代替シグナルスタックを使用しなければならない。"
5896
5897 #. type: Plain text
5898 #: build/C/man2/sigaltstack.2:176
5899 msgid ""
5900 "Establishing an alternate signal stack is useful if a process expects that "
5901 "it may exhaust its standard stack.  This may occur, for example, because the "
5902 "stack grows so large that it encounters the upwardly growing heap, or it "
5903 "reaches a limit established by a call to B<setrlimit(RLIMIT_STACK, &rlim)>.  "
5904 "If the standard stack is exhausted, the kernel sends the process a "
5905 "B<SIGSEGV> signal.  In these circumstances the only way to catch this signal "
5906 "is on an alternate signal stack."
5907 msgstr ""
5908 "プロセスが標準のシグナルスタックを使い果たすことが予想される場合は、 代替シグ"
5909 "ナルスタックを確立すると便利である。 例えば、スタックが最上位アドレスから 下"
5910 "位アドレス方向に非常にたくさん積まれてしまうことで、 最下位アドレスから上位ア"
5911 "ドレス方向に積まれるヒープとぶつかってしまう場合や、 B<setrlimit"
5912 "(RLIMIT_STACK, &rlim)> の呼び出しで確立された 制限に達してしまった場合に、こ"
5913 "の様な事が起こる。 標準のスタックを使い果たしてしまうと、 カーネルはプロセス"
5914 "に B<SIGSEGV> シグナルを送る。 このような状況では、代替シグナルスタック上でし"
5915 "かシグナルをキャッチできない。"
5916
5917 #. type: Plain text
5918 #: build/C/man2/sigaltstack.2:182
5919 msgid ""
5920 "On most hardware architectures supported by Linux, stacks grow downward.  "
5921 "B<sigaltstack>()  automatically takes account of the direction of stack "
5922 "growth."
5923 msgstr ""
5924 "Linux がサポートする多くのハードウェアアーキテクチャでは、 スタックは下位アド"
5925 "レス方向に積まれる。 B<sigaltstack>()  はスタックが積まれる方向を自動的に決定"
5926 "する。"
5927
5928 #. type: Plain text
5929 #: build/C/man2/sigaltstack.2:191
5930 msgid ""
5931 "Functions called from a signal handler executing on an alternate signal "
5932 "stack will also use the alternate signal stack.  (This also applies to any "
5933 "handlers invoked for other signals while the process is executing on the "
5934 "alternate signal stack.)  Unlike the standard stack, the system does not "
5935 "automatically extend the alternate signal stack.  Exceeding the allocated "
5936 "size of the alternate signal stack will lead to unpredictable results."
5937 msgstr ""
5938 "代替シグナルスタック上で実行されている シグナルハンドラから呼ばれる関数も、代"
5939 "替シグナルハンドラを使う (プロセスが代替シグナルスタック上で実行されている場"
5940 "合、 他のシグナルで呼び出されるハンドラもこの代替シグナルハンドラを使う)。 標"
5941 "準のスタックとは異なり、 システムは代替シグナルスタックを自動的に拡張しな"
5942 "い。 代替シグナルスタック用に確保したサイズを越えた場合、 結果は予想できな"
5943 "い。"
5944
5945 #. type: Plain text
5946 #: build/C/man2/sigaltstack.2:199
5947 msgid ""
5948 "A successful call to B<execve>(2)  removes any existing alternate signal "
5949 "stack.  A child process created via B<fork>(2)  inherits a copy of its "
5950 "parent's alternate signal stack settings."
5951 msgstr ""
5952 "B<execve>(2)  の呼び出しが成功すると、 既存の全ての代替シグナルスタックが削除"
5953 "される。 B<fork>(2)  経由で作成された子プロセスは、親プロセスの代替シグナルス"
5954 "タックの 設定のコピーを継承する。"
5955
5956 #. type: Plain text
5957 #: build/C/man2/sigaltstack.2:208
5958 msgid ""
5959 "B<sigaltstack>()  supersedes the older B<sigstack>()  call.  For backward "
5960 "compatibility, glibc also provides B<sigstack>().  All new applications "
5961 "should be written using B<sigaltstack>()."
5962 msgstr ""
5963 "B<sigaltstack>()  は以前の B<sigstack>()  を置き換えるものである。 過去プログ"
5964 "ラムとの互換性のため、glibc では B<sigstack>()  も提供している。 新しいのアプ"
5965 "リケーションは全て B<sigaltstack>()  を使って書くべきである。"
5966
5967 #. type: SS
5968 #: build/C/man2/sigaltstack.2:208 build/C/man3/sigpause.3:61
5969 #, no-wrap
5970 msgid "History"
5971 msgstr "歴史"
5972
5973 #. type: Plain text
5974 #: build/C/man2/sigaltstack.2:215
5975 msgid ""
5976 "4.2BSD had a B<sigstack>()  system call.  It used a slightly different "
5977 "struct, and had the major disadvantage that the caller had to know the "
5978 "direction of stack growth."
5979 msgstr ""
5980 "4.2BSD には B<sigstack>()  システムコールがあった。 この関数は少し異なった構"
5981 "造体を使っており、 呼び出した側がスタックの積まれる方向を知っていなければなら"
5982 "ないという 大きな欠点があった。"
5983
5984 #. type: Plain text
5985 #: build/C/man2/sigaltstack.2:218
5986 msgid "The following code segment demonstrates the use of B<sigaltstack>():"
5987 msgstr "以下のコードで B<sigaltstack>()  の使用法の一部を示す:"
5988
5989 #. type: Plain text
5990 #: build/C/man2/sigaltstack.2:222
5991 #, no-wrap
5992 msgid "stack_t ss;\n"
5993 msgstr "stack_t ss;\n"
5994
5995 #. type: Plain text
5996 #: build/C/man2/sigaltstack.2:230
5997 #, no-wrap
5998 msgid ""
5999 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6000 "if (ss.ss_sp == NULL)\n"
6001 "    /* Handle error */;\n"
6002 "ss.ss_size = SIGSTKSZ;\n"
6003 "ss.ss_flags = 0;\n"
6004 "if (sigaltstack(&ss, NULL) == -1)\n"
6005 "    /* Handle error */;\n"
6006 msgstr ""
6007 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6008 "if (ss.ss_sp == NULL)\n"
6009 "    /* ハンドルエラー */;\n"
6010 "ss.ss_size = SIGSTKSZ;\n"
6011 "ss.ss_flags = 0;\n"
6012 "if (sigaltstack(&ss, NULL) == -1)\n"
6013 "    /* ハンドルエラー */;\n"
6014
6015 #. type: Plain text
6016 #: build/C/man2/sigaltstack.2:239
6017 msgid ""
6018 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6019 "B<sigsetjmp>(3), B<signal>(7)"
6020 msgstr ""
6021 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6022 "B<sigsetjmp>(3), B<signal>(7)"
6023
6024 #. type: TH
6025 #: build/C/man7/sigevent.7:26
6026 #, no-wrap
6027 msgid "SIGEVENT"
6028 msgstr "SIGEVENT"
6029
6030 #. type: TH
6031 #: build/C/man7/sigevent.7:26
6032 #, no-wrap
6033 msgid "2011-09-09"
6034 msgstr "2011-09-09"
6035
6036 #. type: Plain text
6037 #: build/C/man7/sigevent.7:29
6038 msgid "sigevent - structure for notification from asynchronous routines"
6039 msgstr ""
6040
6041 #. type: Plain text
6042 #: build/C/man7/sigevent.7:36
6043 #, no-wrap
6044 msgid ""
6045 "union sigval {          /* Data passed with notification */\n"
6046 "    int     sival_int;         /* Integer value */\n"
6047 "    void   *sival_ptr;         /* Pointer value */\n"
6048 "};\n"
6049 msgstr ""
6050 "union sigval {          /* Data passed with notification */\n"
6051 "    int     sival_int;         /* Integer value */\n"
6052 "    void   *sival_ptr;         /* Pointer value */\n"
6053 "};\n"
6054
6055 #. type: Plain text
6056 #: build/C/man7/sigevent.7:51
6057 #, no-wrap
6058 msgid ""
6059 "struct sigevent {\n"
6060 "    int          sigev_notify; /* Notification method */\n"
6061 "    int          sigev_signo;  /* Notification signal */\n"
6062 "    union sigval sigev_value;  /* Data passed with\n"
6063 "                                  notification */\n"
6064 "    void       (*sigev_notify_function) (union sigval);\n"
6065 "                     /* Function used for thread\n"
6066 "                        notification (SIGEV_THREAD) */\n"
6067 "    void        *sigev_notify_attributes;\n"
6068 "                     /* Attributes for notification thread\n"
6069 "                        (SIGEV_THREAD) */\n"
6070 "    pid_t        sigev_notify_thread_id;\n"
6071 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6072 "};\n"
6073 msgstr ""
6074 "struct sigevent {\n"
6075 "    int          sigev_notify; /* Notification method */\n"
6076 "    int          sigev_signo;  /* Notification signal */\n"
6077 "    union sigval sigev_value;  /* Data passed with\n"
6078 "                                  notification */\n"
6079 "    void       (*sigev_notify_function) (union sigval);\n"
6080 "                     /* Function used for thread\n"
6081 "                        notification (SIGEV_THREAD) */\n"
6082 "    void        *sigev_notify_attributes;\n"
6083 "                     /* Attributes for notification thread\n"
6084 "                        (SIGEV_THREAD) */\n"
6085 "    pid_t        sigev_notify_thread_id;\n"
6086 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6087 "};\n"
6088
6089 #. type: Plain text
6090 #: build/C/man7/sigevent.7:60
6091 msgid ""
6092 "The I<sigevent> structure is used by various APIs to describe the way a "
6093 "process is to be notified about an event (e.g., completion of an "
6094 "asynchronous request, expiration of a timer, or the arrival of a message)."
6095 msgstr ""
6096
6097 #. type: Plain text
6098 #: build/C/man7/sigevent.7:68
6099 msgid ""
6100 "The definition shown in the SYNOPSIS is approximate: some of the fields in "
6101 "the I<sigevent> structure may be defined as part of a union.  Programs "
6102 "should employ only those fields relevant to the value specified in "
6103 "I<sigev_notify>."
6104 msgstr ""
6105
6106 #. type: Plain text
6107 #: build/C/man7/sigevent.7:73
6108 msgid ""
6109 "The I<sigev_notify> field specifies how notification is to be performed.  "
6110 "This field can have one of the following values:"
6111 msgstr ""
6112
6113 #. type: TP
6114 #: build/C/man7/sigevent.7:73 build/C/man2/timer_create.2:107
6115 #, no-wrap
6116 msgid "B<SIGEV_NONE>"
6117 msgstr "B<SIGEV_NONE>"
6118
6119 #. type: Plain text
6120 #: build/C/man7/sigevent.7:76
6121 msgid "A \"null\" notification: don't do anything when the event occurs."
6122 msgstr ""
6123
6124 #. type: TP
6125 #: build/C/man7/sigevent.7:76 build/C/man2/timer_create.2:112
6126 #, no-wrap
6127 msgid "B<SIGEV_SIGNAL>"
6128 msgstr "B<SIGEV_SIGNAL>"
6129
6130 #. type: Plain text
6131 #: build/C/man7/sigevent.7:80
6132 msgid "Notify the process by sending the signal specified in I<sigev_signo>."
6133 msgstr ""
6134
6135 #. type: Plain text
6136 #: build/C/man7/sigevent.7:87
6137 msgid ""
6138 "If the signal is caught with a signal handler that was registered using the "
6139 "B<sigaction>(2)  B<SA_SIGINFO> flag, then the following fields are set in "
6140 "the I<siginfo_t> structure that is passed as the second argument of the "
6141 "handler:"
6142 msgstr ""
6143
6144 #. type: Plain text
6145 #: build/C/man7/sigevent.7:92
6146 msgid ""
6147 "This field is set to a value that depends on the API delivering the "
6148 "notification."
6149 msgstr ""
6150
6151 #. type: TP
6152 #: build/C/man7/sigevent.7:92 build/C/man2/wait.2:300
6153 #, no-wrap
6154 msgid "I<si_signo>"
6155 msgstr "I<si_signo>"
6156
6157 #. type: Plain text
6158 #: build/C/man7/sigevent.7:96
6159 msgid ""
6160 "This field is set to the signal number (i.e., the same value as in "
6161 "I<sigev_signo>)."
6162 msgstr ""
6163
6164 #. type: Plain text
6165 #: build/C/man7/sigevent.7:100
6166 msgid "This field is set to the value specified in I<sigev_value>."
6167 msgstr ""
6168
6169 #. type: Plain text
6170 #: build/C/man7/sigevent.7:105
6171 msgid ""
6172 "Depending on the API, other fields may also be set in the I<siginfo_t> "
6173 "structure."
6174 msgstr ""
6175
6176 #. type: Plain text
6177 #: build/C/man7/sigevent.7:108
6178 msgid ""
6179 "The same information is also available if the signal is accepted using "
6180 "B<sigwaitinfo>(2)."
6181 msgstr ""
6182
6183 #. type: TP
6184 #: build/C/man7/sigevent.7:108 build/C/man2/timer_create.2:130
6185 #, no-wrap
6186 msgid "B<SIGEV_THREAD>"
6187 msgstr "B<SIGEV_THREAD>"
6188
6189 #. type: Plain text
6190 #: build/C/man7/sigevent.7:125
6191 msgid ""
6192 "Notify the process by invoking I<sigev_notify_function> \"as if\" it were "
6193 "the start function of a new thread.  (Among the implementation possibilities "
6194 "here are that each timer notification could result in the creation of a new "
6195 "thread, or that a single thread is created to receive all notifications.)  "
6196 "The function is invoked with I<sigev_value> as its sole argument.  If "
6197 "I<sigev_notify_attributes> is not NULL, it should point to a "
6198 "I<pthread_attr_t> structure that defines attributes for the new thread (see "
6199 "B<pthread_attr_init>(3))."
6200 msgstr ""
6201
6202 #. type: TP
6203 #: build/C/man7/sigevent.7:125 build/C/man2/timer_create.2:138
6204 #, no-wrap
6205 msgid "B<SIGEV_THREAD_ID> (Linux-specific)"
6206 msgstr "B<SIGEV_THREAD_ID> (Linux 固有)"
6207
6208 #.  | SIGEV_SIGNAL vs not?
6209 #. type: Plain text
6210 #: build/C/man7/sigevent.7:130
6211 msgid "Currently used only by POSIX timers; see B<timer_create>(2)."
6212 msgstr ""
6213
6214 #. type: Plain text
6215 #: build/C/man7/sigevent.7:132 build/C/man2/sigpending.2:66
6216 #: build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:116
6217 #: build/C/man3/sigsetops.3:133 build/C/man2/sigsuspend.2:86
6218 #: build/C/man3/sigwait.3:82 build/C/man2/sigwaitinfo.2:135
6219 #: build/C/man2/timer_create.2:195 build/C/man2/timer_delete.2:69
6220 #: build/C/man2/timer_getoverrun.2:99 build/C/man2/timer_settime.2:209
6221 msgid "POSIX.1-2001."
6222 msgstr "POSIX.1-2001."
6223
6224 #. type: Plain text
6225 #: build/C/man7/sigevent.7:142
6226 msgid ""
6227 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6228 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6229 "B<pthreads>(7)"
6230 msgstr ""
6231 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6232 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6233 "B<pthreads>(7)"
6234
6235 #. type: TH
6236 #: build/C/man3/siginterrupt.3:31
6237 #, no-wrap
6238 msgid "SIGINTERRUPT"
6239 msgstr "SIGINTERRUPT"
6240
6241 #. type: Plain text
6242 #: build/C/man3/siginterrupt.3:34
6243 msgid "siginterrupt - allow signals to interrupt system calls"
6244 msgstr "siginterrupt - シグナルでシステム・コールに割り込むことを許す"
6245
6246 #. type: Plain text
6247 #: build/C/man3/siginterrupt.3:39
6248 #, no-wrap
6249 msgid "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6250 msgstr "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6251
6252 #. type: Plain text
6253 #: build/C/man3/siginterrupt.3:47
6254 msgid "B<siginterrupt>():"
6255 msgstr "B<siginterrupt>():"
6256
6257 #. type: Plain text
6258 #: build/C/man3/siginterrupt.3:64
6259 msgid ""
6260 "The B<siginterrupt>()  function changes the restart behavior when a system "
6261 "call is interrupted by the signal I<sig>.  If the I<flag> argument is false "
6262 "(0), then system calls will be restarted if interrupted by the specified "
6263 "signal I<sig>.  This is the default behavior in Linux."
6264 msgstr ""
6265 "B<siginterrupt>()  関数は、システム・コールがシグナル I<sig> によって割り込ま"
6266 "れた後、再実行の際の振る舞いを変更する。 I<flag> 引き数が偽 (0) ならば、シス"
6267 "テム・コールが指定した シグナル I<sig> によって割り込まれた後に、そのシステ"
6268 "ム・コールは 再実行される。これは Linux においてデフォルトの動作である。"
6269
6270 #. type: Plain text
6271 #: build/C/man3/siginterrupt.3:69
6272 msgid ""
6273 "If the I<flag> argument is true (1) and no data has been transferred, then a "
6274 "system call interrupted by the signal I<sig> will return -1 and I<errno> "
6275 "will be set to B<EINTR>."
6276 msgstr ""
6277 "I<flag> 引き数が真 (1) でデータの転送が全く行なわれていないならば、 シグナル "
6278 "I<sig> でシステム・コールは中断されて、-1 が返され、 I<errno> に B<EINTR> が"
6279 "設定される。"
6280
6281 #. type: Plain text
6282 #: build/C/man3/siginterrupt.3:73
6283 msgid ""
6284 "If the I<flag> argument is true (1) and data transfer has started, then the "
6285 "system call will be interrupted and will return the actual amount of data "
6286 "transferred."
6287 msgstr ""
6288 "I<flag> 引き数が真 (1) でデータの転送が開始されていれば、 システム・コールは"
6289 "中断され、それまでに実際に転送されたデータ の量が返される。"
6290
6291 #. type: Plain text
6292 #: build/C/man3/siginterrupt.3:83
6293 #, fuzzy
6294 #| msgid ""
6295 #| "The B<siginterrupt>()  function returns 0 on success, or -1 if the signal "
6296 #| "number I<sig> is invalid."
6297 msgid ""
6298 "The B<siginterrupt>()  function returns 0 on success.  It returns -1 if the "
6299 "signal number I<sig> is invalid, with I<errno> set to indicate the cause of "
6300 "the error."
6301 msgstr ""
6302 "B<siginterrupt>()  関数は成功した場合 0 を返す。 シグナル番号 I<sig> が不正な"
6303 "場合は -1 を返す。"
6304
6305 #. type: Plain text
6306 #: build/C/man3/siginterrupt.3:87
6307 msgid "The specified signal number is invalid."
6308 msgstr "指定したシグナル番号が不正である。"
6309
6310 #. type: Plain text
6311 #: build/C/man3/siginterrupt.3:96
6312 msgid ""
6313 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 marks B<siginterrupt>()  as obsolete, "
6314 "recommending the use of B<sigaction>(2)  with the B<SA_RESTART> flag instead."
6315 msgstr ""
6316 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 は、 B<siginterrupt>()  を廃止予定として"
6317 "いる。 代わりに、 B<sigaction>(2)  に B<SA_RESTART> フラグを指定して使うこと"
6318 "を推奨している。"
6319
6320 #. type: Plain text
6321 #: build/C/man3/siginterrupt.3:98
6322 msgid "B<signal>(2)"
6323 msgstr "B<signal>(2)"
6324
6325 #. type: TH
6326 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
6327 #, no-wrap
6328 msgid "SIGNAL"
6329 msgstr "SIGNAL"
6330
6331 #. type: Plain text
6332 #: build/C/man2/signal.2:39
6333 msgid "signal - ANSI C signal handling"
6334 msgstr "signal - ANSI C シグナル操作"
6335
6336 #. type: Plain text
6337 #: build/C/man2/signal.2:45
6338 msgid "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
6339 msgstr ""
6340 "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<sighandler>B<);>"
6341
6342 #. type: Plain text
6343 #: build/C/man2/signal.2:54
6344 msgid ""
6345 "The behavior of B<signal>()  varies across UNIX versions, and has also "
6346 "varied historically across different versions of Linux.  B<Avoid its use>: "
6347 "use B<sigaction>(2)  instead.  See I<Portability> below."
6348 msgstr ""
6349 "B<signal>()  の動作は UNIX のバージョンにより異なる。 また、歴史的に見て "
6350 "Linux のバージョンによっても異なっている。 B<このシステムコールの使用は避け、"
6351 "> 代わりに B<sigaction>(2)  を使用すること。 下記の「移植性」を参照。"
6352
6353 #. type: Plain text
6354 #: build/C/man2/signal.2:64
6355 msgid ""
6356 "B<signal>()  sets the disposition of the signal I<signum> to I<handler>, "
6357 "which is either B<SIG_IGN>, B<SIG_DFL>, or the address of a programmer-"
6358 "defined function (a \"signal handler\")."
6359 msgstr ""
6360 "B<signal>()  はシグナル I<signum> の処理方法を I<handler> に設定する。 "
6361 "I<handler> には、 B<SIG_IGN>、 B<SIG_DFL>、 プログラマが定義した関数 (「シグ"
6362 "ナル・ハンドラ」) のアドレスの いずれかを指定する。"
6363
6364 #. type: Plain text
6365 #: build/C/man2/signal.2:68
6366 msgid ""
6367 "If the signal I<signum> is delivered to the process, then one of the "
6368 "following happens:"
6369 msgstr ""
6370 "シグナル I<signum> がプロセスに配送されると、以下のいずれかが発生する。"
6371
6372 #. type: Plain text
6373 #: build/C/man2/signal.2:73
6374 msgid "If the disposition is set to B<SIG_IGN>, then the signal is ignored."
6375 msgstr "処理方法が B<SIG_IGN> に設定されている場合、そのシグナルは無視される。"
6376
6377 #. type: Plain text
6378 #: build/C/man2/signal.2:80
6379 msgid ""
6380 "If the disposition is set to B<SIG_DFL>, then the default action associated "
6381 "with the signal (see B<signal>(7))  occurs."
6382 msgstr ""
6383 "処理方法が B<SIG_DFL> に設定されている場合、シグナルに関連づけられた デフォル"
6384 "トの動作が行われる (B<signal>(7)  参照)。"
6385
6386 #. type: Plain text
6387 #: build/C/man2/signal.2:91
6388 msgid ""
6389 "If the disposition is set to a function, then first either the disposition "
6390 "is reset to B<SIG_DFL>, or the signal is blocked (see I<Portability> below), "
6391 "and then I<handler> is called with argument I<signum>.  If invocation of the "
6392 "handler caused the signal to be blocked, then the signal is unblocked upon "
6393 "return from the handler."
6394 msgstr ""
6395 "処理方法として関数が設定されている場合、 まず最初に処理方法が B<SIG_DFL> にリ"
6396 "セットされるかそのシグナルのブロックが実行された後、 I<signum> を引き数とし"
6397 "て I<handler> が呼び出される。 ハンドラが起動される際にシグナルがブロックされ"
6398 "た場合、 ハンドラが返る際にそのシグナルのブロックが解除される。"
6399
6400 #. type: Plain text
6401 #: build/C/man2/signal.2:97
6402 msgid "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught or ignored."
6403 msgstr ""
6404 "シグナル B<SIGKILL> と B<SIGSTOP> は捕捉できず、無視することもできない。"
6405
6406 #. type: Plain text
6407 #: build/C/man2/signal.2:105
6408 #, fuzzy
6409 #| msgid ""
6410 #| "B<signal>()  returns the previous value of the signal handler, or "
6411 #| "B<SIG_ERR> on error."
6412 msgid ""
6413 "B<signal>()  returns the previous value of the signal handler, or B<SIG_ERR> "
6414 "on error.  In the event of an error, I<errno> is set to indicate the cause."
6415 msgstr ""
6416 "B<signal>()  は、今までのシグナル・ハンドラの値を返す。エラーの場合は "
6417 "B<SIG_ERR> を返す。"
6418
6419 #. type: Plain text
6420 #: build/C/man2/signal.2:110
6421 msgid "I<signum> is invalid."
6422 msgstr "I<signum> が不正である。"
6423
6424 #. type: Plain text
6425 #: build/C/man2/signal.2:116
6426 msgid "The effects of B<signal>()  in a multithreaded process are unspecified."
6427 msgstr ""
6428 "マルチスレッドプロセスにおける B<signal>()  の結果は、指定されていない。"
6429
6430 #. type: Plain text
6431 #: build/C/man2/signal.2:141
6432 msgid ""
6433 "See B<sigaction>(2)  for details on what happens when B<SIGCHLD> is set to "
6434 "B<SIG_IGN>."
6435 msgstr ""
6436 "B<SIGCHLD> の動作として B<SIG_IGN> を設定した場合の詳細な動作については、 "
6437 "B<sigaction>(2)  を参照すること。"
6438
6439 #. type: Plain text
6440 #: build/C/man2/signal.2:146
6441 msgid ""
6442 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
6443 "safely called from inside a signal handler."
6444 msgstr ""
6445 "シグナル・ハンドラ内から安全に呼び出すことができる、 async-signal-safe "
6446 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
6447 "照。"
6448
6449 #.  libc4 and libc5 define
6450 #.  .IR SignalHandler ;
6451 #. type: Plain text
6452 #: build/C/man2/signal.2:162
6453 msgid ""
6454 "The use of I<sighandler_t> is a GNU extension, exposed if B<_GNU_SOURCE> is "
6455 "defined; glibc also defines (the BSD-derived)  I<sig_t> if B<_BSD_SOURCE> is "
6456 "defined.  Without use of such a type, the declaration of B<signal>()  is the "
6457 "somewhat harder to read:"
6458 msgstr ""
6459 "I<sighandler_t> の使用は GNU 拡張であり、 B<_GNU_SOURCE> が定義された\n"
6460 "場合に公開される。glibc では B<_BSD_SOURCE> が定義された場合には (BSD\n"
6461 "由来の) I<sig_t> も定義される。このような型を使用しないと、\n"
6462 "B<signal>() の宣言は読みにくいものとなる。"
6463
6464 #. type: Plain text
6465 #: build/C/man2/signal.2:166
6466 #, no-wrap
6467 msgid "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6468 msgstr "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6469
6470 #. type: SS
6471 #: build/C/man2/signal.2:168
6472 #, no-wrap
6473 msgid "Portability"
6474 msgstr "移植性"
6475
6476 #. type: Plain text
6477 #: build/C/man2/signal.2:180
6478 msgid ""
6479 "The only portable use of B<signal>()  is to set a signal's disposition to "
6480 "B<SIG_DFL> or B<SIG_IGN>.  The semantics when using B<signal>()  to "
6481 "establish a signal handler vary across systems (and POSIX.1 explicitly "
6482 "permits this variation); B<do not use it for this purpose.>"
6483 msgstr ""
6484 "移植性のある B<signal>()  の使い方は、シグナルの処理方法を B<SIG_DFL> か "
6485 "B<SIG_IGN> に設定する方法だけである。 シグナル・ハンドラを設定するのに "
6486 "B<signal>()  を使ったときの動作はシステムにより異なる (POSIX.1 は明示的にこの"
6487 "違いを認めている)。 B<移植性が必要なときはこのシステムコールを使用しないこ"
6488 "と。>"
6489
6490 #. type: Plain text
6491 #: build/C/man2/signal.2:186
6492 msgid ""
6493 "POSIX.1 solved the portability mess by specifying B<sigaction>(2), which "
6494 "provides explicit control of the semantics when a signal handler is invoked; "
6495 "use that interface instead of B<signal>()."
6496 msgstr ""
6497 "POSIX.1 は、 B<sigaction>(2)  を規定することで移植性に関する混乱を解決した。 "
6498 "B<sigaction>(2)  はシグナル・ハンドラが起動される際の挙動を明示的に制御でき"
6499 "る。 B<signal>()  の代わりにこのインターフェイスを使うこと。"
6500
6501 #. type: Plain text
6502 #: build/C/man2/signal.2:196
6503 msgid ""
6504 "In the original UNIX systems, when a handler that was established using "
6505 "B<signal>()  was invoked by the delivery of a signal, the disposition of the "
6506 "signal would be reset to B<SIG_DFL>, and the system did not block delivery "
6507 "of further instances of the signal.  This is equivalent to calling "
6508 "B<sigaction>(2)  with the following flags:"
6509 msgstr ""
6510 "オリジナルの UNIX システムでは、 B<signal>()  を使って設定されたハンドラがシ"
6511 "グナルの配送により起動されると、 そのシグナルの処理方法は B<SIG_DFL> にリセッ"
6512 "トされ、システムは同じシグナルがさらに生成されても シグナルの配送をブロックし"
6513 "なかった。これは、以下のフラグで B<sigaction>(2) を呼び出すのと等価である。"
6514
6515 #. type: Plain text
6516 #: build/C/man2/signal.2:198
6517 #, no-wrap
6518 msgid "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6519 msgstr "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6520
6521 #. type: Plain text
6522 #: build/C/man2/signal.2:205
6523 msgid ""
6524 "System V also provides these semantics for B<signal>().  This was bad "
6525 "because the signal might be delivered again before the handler had a chance "
6526 "to reestablish itself.  Furthermore, rapid deliveries of the same signal "
6527 "could result in recursive invocations of the handler."
6528 msgstr ""
6529 "System V でも、 B<signal>()  に対してこれらの挙動を規定している。 こうした挙"
6530 "動はまずく、ハンドラがハンドラ自身を再設定する機会が 来るより前に、同じシグナ"
6531 "ルがまた配送される可能性がある。 さらに、同じシグナルが立て続けに配送される"
6532 "と、同じシグナルが ハンドラを繰り返し起動されることになる。"
6533
6534 #. type: Plain text
6535 #: build/C/man2/signal.2:220
6536 msgid ""
6537 "BSD improved on this situation, but unfortunately also changed the semantics "
6538 "of the existing B<signal>()  interface while doing so.  On BSD, when a "
6539 "signal handler is invoked, the signal disposition is not reset, and further "
6540 "instances of the signal are blocked from being delivered while the handler "
6541 "is executing.  Furthermore, certain blocking system calls are automatically "
6542 "restarted if interrupted by a signal handler (see B<signal>(7)).  The BSD "
6543 "semantics are equivalent to calling B<sigaction>(2)  with the following "
6544 "flags:"
6545 msgstr ""
6546 "BSD はこの状況が改善したが、残念なことに、その過程で既存の B<signal>() の挙動"
6547 "も変更された。 BSD では、シグナルハンドラが起動された際、 シグナルの処理方法"
6548 "はリセットされず、 ハンドラの実行中は、同じシグナルのさらなる生成は配送がブ"
6549 "ロックされる。 また、 シグナルハンドラが中断された場合、 停止中のシステムコー"
6550 "ルのいくつかは自動的に再スタートされる。 BSD の挙動は、 以下のフラグを指定し"
6551 "た B<sigaction>(2) の呼び出しと等価である。"
6552
6553 #. type: Plain text
6554 #: build/C/man2/signal.2:222
6555 #, no-wrap
6556 msgid "    sa.sa_flags = SA_RESTART;\n"
6557 msgstr "    sa.sa_flags = SA_RESTART;\n"
6558
6559 #. type: Plain text
6560 #: build/C/man2/signal.2:224
6561 msgid "The situation on Linux is as follows:"
6562 msgstr "Linux での状況は以下の通りである。"
6563
6564 #. type: Plain text
6565 #: build/C/man2/signal.2:228
6566 msgid "The kernel's B<signal>()  system call provides System V semantics."
6567 msgstr "カーネルの B<signal>()  システムコールは System V 方式を提供している。"
6568
6569 #. type: Plain text
6570 #: build/C/man2/signal.2:244
6571 msgid ""
6572 "By default, in glibc 2 and later, the B<signal>()  wrapper function does not "
6573 "invoke the kernel system call.  Instead, it calls B<sigaction>(2)  using "
6574 "flags that supply BSD semantics.  This default behavior is provided as long "
6575 "as the B<_BSD_SOURCE> feature test macro is defined.  By default, "
6576 "B<_BSD_SOURCE> is defined; it is also implicitly defined if one defines "
6577 "B<_GNU_SOURCE>, and can of course be explicitly defined."
6578 msgstr ""
6579 "デフォルトでは、glibc 2 以降では、 B<signal>()  ラッパー関数はカーネルのシス"
6580 "テムコールを起動しない。 代わりに、ラッパー関数は BSD 方式を示すフラグを使っ"
6581 "て B<sigaction>(2)  を呼び出す。 機能検査マクロ B<_BSD_SOURCE> を定義していれ"
6582 "ば、このデフォルトの動作となる。 デフォルトでは、 B<_BSD_SOURCE> が定義され"
6583 "る。 B<_BSD_SOURCE> は B<_GNU_SOURCE> が定義された場合には暗黙のうちに定義さ"
6584 "れ、 もちろん明示的に定義することもできる。"
6585
6586 #.  System V semantics are also provided if one uses the separate
6587 #.  .BR sysv_signal (3)
6588 #.  function.
6589 #. type: Plain text
6590 #: build/C/man2/signal.2:267
6591 msgid ""
6592 "On glibc 2 and later, if the B<_BSD_SOURCE> feature test macro is not "
6593 "defined, then B<signal>()  provides System V semantics.  (The default "
6594 "implicit definition of B<_BSD_SOURCE> is not provided if one invokes B<gcc>"
6595 "(1)  in one of its standard modes (I<-std=xxx> or I<-ansi>)  or defines "
6596 "various other feature test macros such as B<_POSIX_SOURCE>, "
6597 "B<_XOPEN_SOURCE>, or B<_SVID_SOURCE>; see B<feature_test_macros>(7).)"
6598 msgstr ""
6599 "glibc 2 以降では、機能検査マクロ B<_BSD_SOURCE> が定義されていなければ、 "
6600 "B<signal>()  は System V 方式となる。 (B<gcc>(1)  が標準指定モード (I<-"
6601 "std=xxx> or I<-ansi>)  で起動された場合、もしくは B<_POSIX_SOURCE>, "
6602 "B<_XOPEN_SOURCE>, B<_SVID_SOURCE> といった他の様々な機能検査マクロが定義され"
6603 "た場合、 デフォルトの B<_BSD_SOURCE> の暗黙の定義は行われない。 "
6604 "B<feature_test_macros>(7)  を参照のこと。)"
6605
6606 #. type: Plain text
6607 #: build/C/man2/signal.2:278
6608 msgid ""
6609 "The B<signal>()  function in Linux libc4 and libc5 provide System V "
6610 "semantics.  If one on a libc5 system includes I<E<lt>bsd/signal.hE<gt>> "
6611 "instead of I<E<lt>signal.hE<gt>>, then B<signal>()  provides BSD semantics."
6612 msgstr ""
6613 "Linux の libc4 と libc5 の B<signal>()  関数は System V 方式である。 libc5 シ"
6614 "ステムにおいて I<E<lt>signal.hE<gt>> のかわりに I<E<lt>bsd/signal.hE<gt>> を"
6615 "インクルードすると、 B<signal>()  は B<__bsd_signal>()  に再定義され、 "
6616 "B<signal>()  は BSD 方式となる。"
6617
6618 #. type: Plain text
6619 #: build/C/man2/signal.2:297
6620 msgid ""
6621 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaction>"
6622 "(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6623 "B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6624 "B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), B<signal>(7)"
6625 msgstr ""
6626 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaction>"
6627 "(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6628 "B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6629 "B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), B<signal>(7)"
6630
6631 #. type: TH
6632 #: build/C/man7/signal.7:46
6633 #, no-wrap
6634 msgid "2012-05-01"
6635 msgstr "2012-05-01"
6636
6637 #. type: Plain text
6638 #: build/C/man7/signal.7:49
6639 msgid "signal - overview of signals"
6640 msgstr "signal - シグナルの概要"
6641
6642 #. type: Plain text
6643 #: build/C/man7/signal.7:52
6644 msgid ""
6645 "Linux supports both POSIX reliable signals (hereinafter \"standard signals"
6646 "\") and POSIX real-time signals."
6647 msgstr ""
6648 "Linux は POSIX 信頼シグナル (reliable signal; 以後 \"標準シグナル\"と表記)  "
6649 "と POSIX リアルタイムシグナルの両方に対応している。"
6650
6651 #. type: SS
6652 #: build/C/man7/signal.7:52
6653 #, no-wrap
6654 msgid "Signal dispositions"
6655 msgstr "シグナル処理方法"
6656
6657 #. type: Plain text
6658 #: build/C/man7/signal.7:57
6659 msgid ""
6660 "Each signal has a current I<disposition>, which determines how the process "
6661 "behaves when it is delivered the signal."
6662 msgstr ""
6663 "シグナルはそれぞれ現在の「処理方法 (disposition)」を保持しており、 この処理方"
6664 "法によりシグナルが配送された際にプロセスが どのような振舞いをするかが決まる。"
6665
6666 #. type: Plain text
6667 #: build/C/man7/signal.7:60
6668 msgid ""
6669 "The entries in the \"Action\" column of the tables below specify the default "
6670 "disposition for each signal, as follows:"
6671 msgstr ""
6672 "後述の表の \"動作\" の欄のエントリは各シグナルのデフォルトの 処理方法を示して"
6673 "おり、以下のような意味を持つ。"
6674
6675 #. type: IP
6676 #: build/C/man7/signal.7:60
6677 #, no-wrap
6678 msgid "Term"
6679 msgstr "Term"
6680
6681 #. type: Plain text
6682 #: build/C/man7/signal.7:62
6683 msgid "Default action is to terminate the process."
6684 msgstr "デフォルトの動作はプロセス終了。"
6685
6686 #. type: IP
6687 #: build/C/man7/signal.7:62
6688 #, no-wrap
6689 msgid "Ign"
6690 msgstr "Ign"
6691
6692 #. type: Plain text
6693 #: build/C/man7/signal.7:64
6694 msgid "Default action is to ignore the signal."
6695 msgstr "デフォルトの動作はこのシグナルの無視。"
6696
6697 #. type: IP
6698 #: build/C/man7/signal.7:64
6699 #, no-wrap
6700 msgid "Core"
6701 msgstr "Core"
6702
6703 #. type: Plain text
6704 #: build/C/man7/signal.7:67
6705 msgid ""
6706 "Default action is to terminate the process and dump core (see B<core>(5))."
6707 msgstr "デフォルトの動作はプロセス終了とコアダンプ出力 (B<core>(5)  参照)。"
6708
6709 #. type: IP
6710 #: build/C/man7/signal.7:67
6711 #, no-wrap
6712 msgid "Stop"
6713 msgstr "Stop"
6714
6715 #. type: Plain text
6716 #: build/C/man7/signal.7:69
6717 msgid "Default action is to stop the process."
6718 msgstr "デフォルトの動作はプロセスの一時停止。"
6719
6720 #. type: IP
6721 #: build/C/man7/signal.7:69
6722 #, no-wrap
6723 msgid "Cont"
6724 msgstr "Cont"
6725
6726 #. type: Plain text
6727 #: build/C/man7/signal.7:71
6728 msgid "Default action is to continue the process if it is currently stopped."
6729 msgstr "デフォルトの動作は、プロセスが停止中の場合にその実行の再開。"
6730
6731 #. type: Plain text
6732 #: build/C/man7/signal.7:93
6733 msgid ""
6734 "A process can change the disposition of a signal using B<sigaction>(2)  or "
6735 "B<signal>(2).  (The latter is less portable when establishing a signal "
6736 "handler; see B<signal>(2)  for details.)  Using these system calls, a "
6737 "process can elect one of the following behaviors to occur on delivery of the "
6738 "signal: perform the default action; ignore the signal; or catch the signal "
6739 "with a I<signal handler>, a programmer-defined function that is "
6740 "automatically invoked when the signal is delivered.  (By default, the signal "
6741 "handler is invoked on the normal process stack.  It is possible to arrange "
6742 "that the signal handler uses an alternate stack; see B<sigaltstack>(2)  for "
6743 "a discussion of how to do this and when it might be useful.)"
6744 msgstr ""
6745 "プロセスは、 B<sigaction>(2)  や B<signal>(2)  を使って、シグナルの処理方法を"
6746 "変更することができる (B<signal>(2)  の方がシグナルハンドラを設定する際の移植"
6747 "性が低い; 詳細は B<signal>(2)  を参照)。 シグナルの配送時に起こる動作として "
6748 "プロセスが選択できるのは、次のいずれか一つである。 デフォルトの動作を実行す"
6749 "る、シグナルを無視する、 I<シグナルハンドラ (signal handler)> でシグナルを捕"
6750 "捉する。シグナルハンドラとは、シグナル配送時に 自動的に起動されるプログラマ定"
6751 "義の関数である。 (デフォルトでは、シグナルハンドラは通常のプロセスのスタック"
6752 "上で起動される。 シグナルハンドラが代替スタック (alternate stack) を使用する"
6753 "ように設定する こともできる。代替スタックを使用するように設定する方法と、どの"
6754 "ような際に 代替スタックが役に立つかについての議論については B<sigaltstack>"
6755 "(2)  を参照のこと。"
6756
6757 #. type: Plain text
6758 #: build/C/man7/signal.7:97
6759 msgid ""
6760 "The signal disposition is a per-process attribute: in a multithreaded "
6761 "application, the disposition of a particular signal is the same for all "
6762 "threads."
6763 msgstr ""
6764 "シグナルの処理方法はプロセス単位の属性である。 マルチスレッドのアプリケーショ"
6765 "ンでは、あるシグナルの処理方法は 全てのスレッドで同じである。"
6766
6767 #. type: SS
6768 #: build/C/man7/signal.7:105
6769 #, no-wrap
6770 msgid "Sending a signal"
6771 msgstr "シグナルの送信"
6772
6773 #. type: Plain text
6774 #: build/C/man7/signal.7:108
6775 msgid ""
6776 "The following system calls and library functions allow the caller to send a "
6777 "signal:"
6778 msgstr ""
6779 "以下のシステムコールとライブラリ関数を使って、 呼び出し者はシグナルを送信する"
6780 "ことができる。"
6781
6782 #. type: TP
6783 #: build/C/man7/signal.7:108
6784 #, no-wrap
6785 msgid "B<raise>(3)"
6786 msgstr "B<raise>(3)"
6787
6788 #. type: Plain text
6789 #: build/C/man7/signal.7:111
6790 msgid "Sends a signal to the calling thread."
6791 msgstr "呼び出したスレッドにシグナルを送る。"
6792
6793 #. type: Plain text
6794 #: build/C/man7/signal.7:116
6795 msgid ""
6796 "Sends a signal to a specified process, to all members of a specified process "
6797 "group, or to all processes on the system."
6798 msgstr ""
6799 "指定されたプロセスや、指定されたプロセスグループの全メンバー、 システムの全プ"
6800 "ロセスにシグナルを送る。"
6801
6802 #. type: TP
6803 #: build/C/man7/signal.7:116
6804 #, no-wrap
6805 msgid "B<killpg>(2)"
6806 msgstr "B<killpg>(2)"
6807
6808 #. type: Plain text
6809 #: build/C/man7/signal.7:119
6810 msgid "Sends a signal to all of the members of a specified process group."
6811 msgstr "指定されたプロセスグループの全メンバーにシグナルを送る。"
6812
6813 #. type: TP
6814 #: build/C/man7/signal.7:119
6815 #, no-wrap
6816 msgid "B<pthread_kill>(3)"
6817 msgstr "B<pthread_kill>(3)"
6818
6819 #. type: Plain text
6820 #: build/C/man7/signal.7:123
6821 msgid ""
6822 "Sends a signal to a specified POSIX thread in the same process as the caller."
6823 msgstr ""
6824 "呼び出し者と同じプロセス内の指定された POSIX スレッドにシグナルを送る。"
6825
6826 #. type: TP
6827 #: build/C/man7/signal.7:123
6828 #, no-wrap
6829 msgid "B<tgkill>(2)"
6830 msgstr "B<tgkill>(2)"
6831
6832 #. type: Plain text
6833 #: build/C/man7/signal.7:128
6834 msgid ""
6835 "Sends a signal to a specified thread within a specific process.  (This is "
6836 "the system call used to implement B<pthread_kill>(3).)"
6837 msgstr ""
6838 "指定されたプロセス内の指定されたスレッドにシグナルを送る (このシステムコール"
6839 "を使って B<pthread_kill>(3)  は実装されている)。"
6840
6841 #. type: Plain text
6842 #: build/C/man7/signal.7:131
6843 msgid "Sends a real-time signal with accompanying data to a specified process."
6844 msgstr "指定されたプロセスに付属データとともにリアルタイムシグナルを送る。"
6845
6846 #. type: SS
6847 #: build/C/man7/signal.7:131
6848 #, no-wrap
6849 msgid "Waiting for a signal to be caught"
6850 msgstr "シグナルが捕捉されるのを待つ"
6851
6852 #. type: Plain text
6853 #: build/C/man7/signal.7:135
6854 msgid ""
6855 "The following system calls suspend execution of the calling process or "
6856 "thread until a signal is caught (or an unhandled signal terminates the "
6857 "process):"
6858 msgstr ""
6859 "以下のシステムコールを使って、シグナルが捕捉されるまで 呼び出したプロセスやス"
6860 "レッドの実行を中断 (suspend) することができる (ハンドラが設定されていないシグ"
6861 "ナルによりそのプロセスが終了した 場合にも実行の停止は終了する)。"
6862
6863 #. type: TP
6864 #: build/C/man7/signal.7:135
6865 #, no-wrap
6866 msgid "B<pause>(2)"
6867 msgstr "B<pause>(2)"
6868
6869 #. type: Plain text
6870 #: build/C/man7/signal.7:138
6871 msgid "Suspends execution until any signal is caught."
6872 msgstr "何かシグナルが捕捉されるまで実行を停止する。"
6873
6874 #. type: TP
6875 #: build/C/man7/signal.7:138
6876 #, no-wrap
6877 msgid "B<sigsuspend>(2)"
6878 msgstr "B<sigsuspend>(2)"
6879
6880 #. type: Plain text
6881 #: build/C/man7/signal.7:142
6882 msgid ""
6883 "Temporarily changes the signal mask (see below) and suspends execution until "
6884 "one of the unmasked signals is caught."
6885 msgstr ""
6886 "一時的にシグナルマスク (下記参照) を変更し、 マスクされていないシグナルのいず"
6887 "れかが捕捉されるまで 実行を中断する。"
6888
6889 #. type: SS
6890 #: build/C/man7/signal.7:142
6891 #, no-wrap
6892 msgid "Synchronously accepting a signal"
6893 msgstr "シグナルの同期受信"
6894
6895 #. type: Plain text
6896 #: build/C/man7/signal.7:149
6897 msgid ""
6898 "Rather than asynchronously catching a signal via a signal handler, it is "
6899 "possible to synchronously accept the signal, that is, to block execution "
6900 "until the signal is delivered, at which point the kernel returns information "
6901 "about the signal to the caller.  There are two general ways to do this:"
6902 msgstr ""
6903 "シグナルハンドラ経由でシグナルを非同期 (asynchronously) で捕捉する以外にも、 "
6904 "シグナルを同期 (synchronously) して受け付けることもできる。 同期して受け付け"
6905 "るとは、シグナルが配送されるまで実行を停止 (block)  するということである。シ"
6906 "グナルを受け付けた際に、カーネルは そのシグナルに関する情報を呼び出し者に返"
6907 "す。 これを行う一般的な方法が二つある。"
6908
6909 #. type: Plain text
6910 #: build/C/man7/signal.7:157
6911 msgid ""
6912 "B<sigwaitinfo>(2), B<sigtimedwait>(2), and B<sigwait>(3)  suspend execution "
6913 "until one of the signals in a specified set is delivered.  Each of these "
6914 "calls returns information about the delivered signal."
6915 msgstr ""
6916 "B<sigwaitinfo>(2), B<sigtimedwait>(2), B<sigwait>(3)  は、指定されたシグナル"
6917 "集合のシグナルの一つが配送されるまで実行を中断する。 どのシステムコールや関数"
6918 "でも、配送されたシグナルに関する情報が返される。"
6919
6920 #. type: Plain text
6921 #: build/C/man7/signal.7:170
6922 msgid ""
6923 "B<signalfd>(2)  returns a file descriptor that can be used to read "
6924 "information about signals that are delivered to the caller.  Each B<read>"
6925 "(2)  from this file descriptor blocks until one of the signals in the set "
6926 "specified in the B<signalfd>(2)  call is delivered to the caller.  The "
6927 "buffer returned by B<read>(2)  contains a structure describing the signal."
6928 msgstr ""
6929 "B<signalfd>(2)  が返すファイルディスクリプタを使うと、呼び出し元に配送された "
6930 "シグナルに関する情報を読み出すことができる。 このファイルディスクリプタから"
6931 "の B<read>(2)  は、 B<signalfd>(2)  の呼び出し時に指定されたシグナル集合のシ"
6932 "グナルの一つが呼び出し元に 配送されるまで停止 (block) する。 B<read>(2)  が返"
6933 "すバッファにはシグナルに関する情報を格納した構造体が入っている。"
6934
6935 #. type: SS
6936 #: build/C/man7/signal.7:170
6937 #, no-wrap
6938 msgid "Signal mask and pending signals"
6939 msgstr "シグナルマスクと処理待ちシグナル"
6940
6941 #. type: Plain text
6942 #: build/C/man7/signal.7:177
6943 msgid ""
6944 "A signal may be I<blocked>, which means that it will not be delivered until "
6945 "it is later unblocked.  Between the time when it is generated and when it is "
6946 "delivered a signal is said to be I<pending>."
6947 msgstr ""
6948 "シグナルは I<ブロック (block)> されることがある。ブロックされると、そのシグナ"
6949 "ルは その後ブロックを解除されるまで配送されなくなる。 シグナルが生成されてか"
6950 "ら配送されるまでの間、そのシグナルは I<処理待ち (pending)> であると呼ばれる。"
6951
6952 #. type: Plain text
6953 #: build/C/man7/signal.7:186
6954 msgid ""
6955 "Each thread in a process has an independent I<signal mask>, which indicates "
6956 "the set of signals that the thread is currently blocking.  A thread can "
6957 "manipulate its signal mask using B<pthread_sigmask>(3).  In a traditional "
6958 "single-threaded application, B<sigprocmask>(2)  can be used to manipulate "
6959 "the signal mask."
6960 msgstr ""
6961 "プロセス内の各スレッドは、それぞれ独立な I<シグナルマスク (signal mask)> を持"
6962 "つ。シグナルマスクはそのスレッドが現在ブロックしている シグナル集合を示すもの"
6963 "である。 スレッドは、 B<pthread_sigmask>(3)  を使って自分のシグナルマスクを操"
6964 "作できる。 伝統的なシングルスレッドのアプリケーションでは、 B<sigprocmask>"
6965 "(2)  を使って、シグナルマスクを操作できる。"
6966
6967 #. type: Plain text
6968 #: build/C/man7/signal.7:192 build/C/man2/sigprocmask.2:126
6969 msgid ""
6970 "A child created via B<fork>(2)  inherits a copy of its parent's signal mask; "
6971 "the signal mask is preserved across B<execve>(2)."
6972 msgstr ""
6973 "B<fork>(2)  経由で作成された子プロセスは親プロセスのシグナルマスクのコピーを"
6974 "継承する。 B<execve>(2)  の前後でシグナルマスクは保持される。"
6975
6976 #. type: Plain text
6977 #: build/C/man7/signal.7:209
6978 msgid ""
6979 "A signal may be generated (and thus pending)  for a process as a whole (e."
6980 "g., when sent using B<kill>(2))  or for a specific thread (e.g., certain "
6981 "signals, such as B<SIGSEGV> and B<SIGFPE>, generated as a consequence of "
6982 "executing a specific machine-language instruction are thread directed, as "
6983 "are signals targeted at a specific thread using B<pthread_kill>(3)).  A "
6984 "process-directed signal may be delivered to any one of the threads that does "
6985 "not currently have the signal blocked.  If more than one of the threads has "
6986 "the signal unblocked, then the kernel chooses an arbitrary thread to which "
6987 "to deliver the signal."
6988 msgstr ""
6989 "生成されるシグナル (したがって処理待ちとなるシグナル) には、 プロセス全体宛て"
6990 "と特定のスレッド宛てがある。 例えば、プロセス全体宛てのシグナルは B<kill>"
6991 "(2)  を使って送信される。 特定のマシン語の命令の実行の結果として生成される、 "
6992 "B<SIGSEGV> や B<SIGFPE> などのシグナルは、スレッド宛てとなる。 また、 "
6993 "B<pthread_kill>(3)  を使って特定のスレッド宛てに生成されたシグナルも スレッド"
6994 "宛てとなる。 プロセス宛てのシグナルは、そのシグナルをブロックしていないスレッ"
6995 "ドのうち いずれかの一つに配送することができる。そのシグナルをブロックしていな"
6996 "い スレッドが複数ある場合、シグナルを配送するスレッドはカーネルが 無作為に選"
6997 "択する。"
6998
6999 #. type: Plain text
7000 #: build/C/man7/signal.7:216
7001 msgid ""
7002 "A thread can obtain the set of signals that it currently has pending using "
7003 "B<sigpending>(2).  This set will consist of the union of the set of pending "
7004 "process-directed signals and the set of signals pending for the calling "
7005 "thread."
7006 msgstr ""
7007 "スレッドは、 B<sigpending>(2)  を使って、現在処理待ちのシグナル集合を取得する"
7008 "ことができる。 この集合は、プロセス宛ての処理待ちシグナルと 呼び出したスレッ"
7009 "ド宛てのシグナルの両方から構成される。"
7010
7011 #. type: Plain text
7012 #: build/C/man7/signal.7:222 build/C/man2/sigpending.2:81
7013 msgid ""
7014 "A child created via B<fork>(2)  initially has an empty pending signal set; "
7015 "the pending signal set is preserved across an B<execve>(2)."
7016 msgstr ""
7017 "B<fork>(2)  経由で作成された子プロセスでは、処理待ちのシグナル集合は空の集合"
7018 "で初期化される。 B<execve>(2)  の前後で、処理待ちのシグナル集合は保持される。"
7019
7020 #. type: SS
7021 #: build/C/man7/signal.7:222
7022 #, no-wrap
7023 msgid "Standard signals"
7024 msgstr "標準シグナル"
7025
7026 #. type: Plain text
7027 #: build/C/man7/signal.7:234
7028 msgid ""
7029 "Linux supports the standard signals listed below.  Several signal numbers "
7030 "are architecture-dependent, as indicated in the \"Value\" column.  (Where "
7031 "three values are given, the first one is usually valid for alpha and sparc, "
7032 "the middle one for x86, arm, and most other architectures, and the last one "
7033 "for mips.  (Values for parisc are I<not> shown; see the Linux kernel source "
7034 "for signal numbering on that architecture.)  A - denotes that a signal is "
7035 "absent on the corresponding architecture.)"
7036 msgstr ""
7037 "Linux は以下に示す標準シグナルに対応している。シグナル番号の一部はアー\n"
7038 "キテクチャ依存であり、\"値\" 欄に示す通りである。 (3つの値が書かれている\n"
7039 "ものは、 1つ目が alpha と sparc で通常有効な値、 真ん中が x86, arm や\n"
7040 "他のほとんどのアーキテクチャでの有効な値、最後が mips での値である。\n"
7041 "(parisc での値は記載されてI<いない>。 parisc でのシグナル番号は\n"
7042 "Linux カーネルソースを参照してほしい)。 - はそのアーキテ\n"
7043 "クチャにおいて対応するシグナルがないことを示す。)"
7044
7045 #. type: Plain text
7046 #: build/C/man7/signal.7:236
7047 msgid "First the signals described in the original POSIX.1-1990 standard."
7048 msgstr "最初に、POSIX.1-1990 に定義されているシグナルを示す。"
7049
7050 #. type: tbl table
7051 #: build/C/man7/signal.7:240 build/C/man7/signal.7:276
7052 #: build/C/man7/signal.7:305
7053 #, no-wrap
7054 msgid "Signal\tValue\tAction\tComment\n"
7055 msgstr "シグナル\t値\t動作\tコメント\n"
7056
7057 #. type: tbl table
7058 #: build/C/man7/signal.7:241
7059 #, no-wrap
7060 msgid "SIGHUP\t\\01\tTerm\tHangup detected on controlling terminal\n"
7061 msgstr "SIGHUP\t\\01\tTerm\t制御端末(controlling terminal)のハングアップ検出、\n"
7062
7063 #. type: tbl table
7064 #: build/C/man7/signal.7:242
7065 #, no-wrap
7066 msgid "\t\t\tor death of controlling process\n"
7067 msgstr "\t\t\tまたは制御しているプロセスの死\n"
7068
7069 #. type: tbl table
7070 #: build/C/man7/signal.7:243
7071 #, no-wrap
7072 msgid "SIGINT\t\\02\tTerm\tInterrupt from keyboard\n"
7073 msgstr "SIGINT\t\\02\tTerm\tキーボードからの割り込み (Interrupt)\n"
7074
7075 #. type: tbl table
7076 #: build/C/man7/signal.7:244
7077 #, no-wrap
7078 msgid "SIGQUIT\t\\03\tCore\tQuit from keyboard\n"
7079 msgstr "SIGQUIT\t\\03\tCore\tキーボードによる中止 (Quit)\n"
7080
7081 #. type: tbl table
7082 #: build/C/man7/signal.7:245
7083 #, no-wrap
7084 msgid "SIGILL\t\\04\tCore\tIllegal Instruction\n"
7085 msgstr "SIGILL\t\\04\tCore\t不正な命令\n"
7086
7087 #. type: tbl table
7088 #: build/C/man7/signal.7:246
7089 #, no-wrap
7090 msgid "SIGABRT\t\\06\tCore\tAbort signal from B<abort>(3)\n"
7091 msgstr "SIGABRT\t\\06\tCore\tB<abort>(3) からの中断 (Abort) シグナル\n"
7092
7093 #. type: tbl table
7094 #: build/C/man7/signal.7:247
7095 #, no-wrap
7096 msgid "SIGFPE\t\\08\tCore\tFloating point exception\n"
7097 msgstr "SIGFPE\t\\08\tCore\t浮動小数点例外\n"
7098
7099 #. type: tbl table
7100 #: build/C/man7/signal.7:248
7101 #, no-wrap
7102 msgid "SIGKILL\t\\09\tTerm\tKill signal\n"
7103 msgstr "SIGKILL\t\\09\tTerm\tKill シグナル\n"
7104
7105 #. type: tbl table
7106 #: build/C/man7/signal.7:249
7107 #, no-wrap
7108 msgid "SIGSEGV\t11\tCore\tInvalid memory reference\n"
7109 msgstr "SIGSEGV\t11\tCore\t不正なメモリ参照\n"
7110
7111 #. type: tbl table
7112 #: build/C/man7/signal.7:250
7113 #, no-wrap
7114 msgid "SIGPIPE\t13\tTerm\tBroken pipe: write to pipe with no\n"
7115 msgstr "SIGPIPE\t13\tTerm\tパイプ破壊:\n"
7116
7117 #. type: tbl table
7118 #: build/C/man7/signal.7:251
7119 #, no-wrap
7120 msgid "\t\t\treaders\n"
7121 msgstr "\t\t\t読み手の無いパイプへの書き出し\n"
7122
7123 #. type: tbl table
7124 #: build/C/man7/signal.7:252
7125 #, no-wrap
7126 msgid "SIGALRM\t14\tTerm\tTimer signal from B<alarm>(2)\n"
7127 msgstr "SIGALRM\t14\tTerm\tB<alarm>(2) からのタイマーシグナル\n"
7128
7129 #. type: tbl table
7130 #: build/C/man7/signal.7:253
7131 #, no-wrap
7132 msgid "SIGTERM\t15\tTerm\tTermination signal\n"
7133 msgstr "SIGTERM\t15\tTerm\t終了 (termination) シグナル\n"
7134
7135 #. type: tbl table
7136 #: build/C/man7/signal.7:254
7137 #, no-wrap
7138 msgid "SIGUSR1\t30,10,16\tTerm\tUser-defined signal 1\n"
7139 msgstr "SIGUSR1\t30,10,16\tTerm\tユーザ定義シグナル 1\n"
7140
7141 #. type: tbl table
7142 #: build/C/man7/signal.7:255
7143 #, no-wrap
7144 msgid "SIGUSR2\t31,12,17\tTerm\tUser-defined signal 2\n"
7145 msgstr "SIGUSR2\t31,12,17\tTerm\tユーザ定義シグナル 2\n"
7146
7147 #. type: tbl table
7148 #: build/C/man7/signal.7:256
7149 #, no-wrap
7150 msgid "SIGCHLD\t20,17,18\tIgn\tChild stopped or terminated\n"
7151 msgstr "SIGCHLD\t20,17,18\tIgn\t子プロセスの一時停止 (stop) または終了\n"
7152
7153 #. type: tbl table
7154 #: build/C/man7/signal.7:257
7155 #, no-wrap
7156 msgid "SIGCONT\t19,18,25\tCont\tContinue if stopped\n"
7157 msgstr "SIGCONT\t19,18,25\tCont\t一時停止 (stop) からの再開\n"
7158
7159 #. type: tbl table
7160 #: build/C/man7/signal.7:258
7161 #, no-wrap
7162 msgid "SIGSTOP\t17,19,23\tStop\tStop process\n"
7163 msgstr "SIGSTOP\t17,19,23\tStop\tプロセスの一時停止 (stop)\n"
7164
7165 #. type: tbl table
7166 #: build/C/man7/signal.7:259
7167 #, no-wrap
7168 msgid "SIGTSTP\t18,20,24\tStop\tStop typed at terminal\n"
7169 msgstr "SIGTSTP\t18,20,24\tStop\t端末より入力された一時停止 (stop)\n"
7170
7171 #. type: tbl table
7172 #: build/C/man7/signal.7:260
7173 #, no-wrap
7174 msgid "SIGTTIN\t21,21,26\tStop\tTerminal input for background process\n"
7175 msgstr "SIGTTIN\t21,21,26\tStop\tバックグランドプロセスの端末入力\n"
7176
7177 #. type: tbl table
7178 #: build/C/man7/signal.7:261
7179 #, no-wrap
7180 msgid "SIGTTOU\t22,22,27\tStop\tTerminal output for background process\n"
7181 msgstr "SIGTTOU\t22,22,27\tStop\tバックグランドプロセスの端末出力\n"
7182
7183 #. type: Plain text
7184 #: build/C/man7/signal.7:269
7185 msgid ""
7186 "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught, blocked, or ignored."
7187 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> はキャッチ、ブロック、無視できない。"
7188
7189 #. type: Plain text
7190 #: build/C/man7/signal.7:272
7191 msgid ""
7192 "Next the signals not in the POSIX.1-1990 standard but described in SUSv2 and "
7193 "POSIX.1-2001."
7194 msgstr ""
7195 "次に、 POSIX.1-1990 標準にはないが、 SUSv2 と POSIX.1-2001 に記述されているシ"
7196 "グナルを示す。"
7197
7198 #. type: tbl table
7199 #: build/C/man7/signal.7:277
7200 #, no-wrap
7201 msgid "SIGBUS\t10,7,10\tCore\tBus error (bad memory access)\n"
7202 msgstr "SIGBUS\t10,7,10\tCore\tバスエラー (不正なメモリアクセス)\n"
7203
7204 #. type: tbl table
7205 #: build/C/man7/signal.7:278
7206 #, no-wrap
7207 msgid "SIGPOLL\t\tTerm\tPollable event (Sys V).\n"
7208 msgstr "SIGPOLL\t\tTerm\tポーリング可能なイベント (Sys V)。\n"
7209
7210 #. type: tbl table
7211 #: build/C/man7/signal.7:279
7212 #, no-wrap
7213 msgid "\t\t\tSynonym for B<SIGIO>\n"
7214 msgstr "\t\t\tB<SIGIO> と同義\n"
7215
7216 #. type: tbl table
7217 #: build/C/man7/signal.7:280
7218 #, no-wrap
7219 msgid "SIGPROF\t27,27,29\tTerm\tProfiling timer expired\n"
7220 msgstr "SIGPROF\t27,27,29\tTerm\tprofiling タイマの時間切れ\n"
7221
7222 #. type: tbl table
7223 #: build/C/man7/signal.7:281
7224 #, no-wrap
7225 msgid "SIGSYS\t12,31,12\tCore\tBad argument to routine (SVr4)\n"
7226 msgstr "SIGSYS\t12,31,12\tCore\tルーチンへの引き数が不正 (SVr4)\n"
7227
7228 #. type: tbl table
7229 #: build/C/man7/signal.7:282
7230 #, no-wrap
7231 msgid "SIGTRAP\t5\tCore\tTrace/breakpoint trap\n"
7232 msgstr "SIGTRAP\t5\tCore\tトレース/ブレークポイント トラップ\n"
7233
7234 #. type: tbl table
7235 #: build/C/man7/signal.7:283
7236 #, no-wrap
7237 msgid "SIGURG\t16,23,21\tIgn\tUrgent condition on socket (4.2BSD)\n"
7238 msgstr "SIGURG\t16,23,21\tIgn\tソケットの緊急事態 (urgent condition) (4.2BSD)\n"
7239
7240 #. type: tbl table
7241 #: build/C/man7/signal.7:284
7242 #, no-wrap
7243 msgid "SIGVTALRM\t26,26,28\tTerm\tVirtual alarm clock (4.2BSD)\n"
7244 msgstr "SIGVTALRM\t26,26,28\tTerm\t仮想アラームクロック (4.2BSD)\n"
7245
7246 #. type: tbl table
7247 #: build/C/man7/signal.7:285
7248 #, no-wrap
7249 msgid "SIGXCPU\t24,24,30\tCore\tCPU time limit exceeded (4.2BSD)\n"
7250 msgstr "SIGXCPU\t24,24,30\tCore\tCPU時間制限超過 (4.2BSD)\n"
7251
7252 #. type: tbl table
7253 #: build/C/man7/signal.7:286
7254 #, no-wrap
7255 msgid "SIGXFSZ\t25,25,31\tCore\tFile size limit exceeded (4.2BSD)\n"
7256 msgstr "SIGXFSZ\t25,25,31\tCore\tファイルサイズ制限の超過 (4.2BSD)\n"
7257
7258 #. type: Plain text
7259 #: build/C/man7/signal.7:299
7260 msgid ""
7261 "Up to and including Linux 2.2, the default behavior for B<SIGSYS>, "
7262 "B<SIGXCPU>, B<SIGXFSZ>, and (on architectures other than SPARC and MIPS)  "
7263 "B<SIGBUS> was to terminate the process (without a core dump).  (On some "
7264 "other UNIX systems the default action for B<SIGXCPU> and B<SIGXFSZ> is to "
7265 "terminate the process without a core dump.)  Linux 2.4 conforms to the "
7266 "POSIX.1-2001 requirements for these signals, terminating the process with a "
7267 "core dump."
7268 msgstr ""
7269 "Linux 2.2 以前では、 B<SIGSYS>, B<SIGXCPU>, B<SIGXFSZ> および SPARC と MIPS "
7270 "以外のアーキテクチャでの B<SIGBUS> のデフォルトの振る舞いは (コアダンプ出力な"
7271 "しの) プロセス終了であった。 (他の UNIX システムにも B<SIGXCPU> と "
7272 "B<SIGXFSZ> のデフォルトの動作がコアダンプなしのプロセス終了のものがある。)  "
7273 "Linux 2.4 では、POSIX.1-2001 での要求仕様に準拠して、 これらのシグナルで、プ"
7274 "ロセスを終了させ、コアダンプを出力する ようになっている。"
7275
7276 #. type: Plain text
7277 #: build/C/man7/signal.7:301
7278 msgid "Next various other signals."
7279 msgstr "次にその他の各種シグナルを示す。"
7280
7281 #. type: tbl table
7282 #: build/C/man7/signal.7:306
7283 #, no-wrap
7284 msgid "SIGIOT\t6\tCore\tIOT trap. A synonym for B<SIGABRT>\n"
7285 msgstr "SIGIOT\t6\tCore\tIOT トラップ。B<SIGABRT> と同義\n"
7286
7287 #. type: tbl table
7288 #: build/C/man7/signal.7:307
7289 #, no-wrap
7290 msgid "SIGEMT\t7,-,7\tTerm\n"
7291 msgstr "SIGEMT\t7,-,7\tTerm\n"
7292
7293 #. type: tbl table
7294 #: build/C/man7/signal.7:308
7295 #, no-wrap
7296 msgid "SIGSTKFLT\t-,16,-\tTerm\tStack fault on coprocessor (unused)\n"
7297 msgstr "SIGSTKFLT\t-,16,-\tA\t数値演算プロセッサにおけるスタックフォルト (未使用)\n"
7298
7299 #. type: tbl table
7300 #: build/C/man7/signal.7:309
7301 #, no-wrap
7302 msgid "SIGIO\t23,29,22\tTerm\tI/O now possible (4.2BSD)\n"
7303 msgstr "SIGIO\t23,29,22\tTerm\t入出力が可能になった (4.2BSD)\n"
7304
7305 #. type: tbl table
7306 #: build/C/man7/signal.7:310
7307 #, no-wrap
7308 msgid "SIGCLD\t-,-,18\tIgn\tA synonym for B<SIGCHLD>\n"
7309 msgstr "SIGCLD\t-,-,18\tIgn\tB<SIGCHLD> と同義\n"
7310
7311 #. type: tbl table
7312 #: build/C/man7/signal.7:311
7313 #, no-wrap
7314 msgid "SIGPWR\t29,30,19\tTerm\tPower failure (System V)\n"
7315 msgstr "SIGPWR\t29,30,19\tTerm\t電源喪失 (Power failure) (System V)\n"
7316
7317 #. type: tbl table
7318 #: build/C/man7/signal.7:312
7319 #, no-wrap
7320 msgid "SIGINFO\t29,-,-\t\tA synonym for B<SIGPWR>\n"
7321 msgstr "SIGINFO\t29,-,-\t \tB<SIGPWR> と同義\n"
7322
7323 #. type: tbl table
7324 #: build/C/man7/signal.7:313
7325 #, no-wrap
7326 msgid "SIGLOST\t-,-,-\tTerm\tFile lock lost (unused)\n"
7327 msgstr "SIGLOST\t-,-,-\tTerm\tファイルロックが失われた (未使用)\n"
7328
7329 #. type: tbl table
7330 #: build/C/man7/signal.7:314
7331 #, no-wrap
7332 msgid "SIGWINCH\t28,28,20\tIgn\tWindow resize signal (4.3BSD, Sun)\n"
7333 msgstr "SIGWINCH\t28,28,20\tIgn\tウィンドウ リサイズ シグナル (4.3BSD, Sun)\n"
7334
7335 #. type: tbl table
7336 #: build/C/man7/signal.7:315
7337 #, no-wrap
7338 msgid "SIGUNUSED\t-,31,-\tCore\tSynonymous with B<SIGSYS>\n"
7339 msgstr "SIGUNUSED\t-,31,-\tCore\tB<SIGSYS> と同義\n"
7340
7341 #. type: Plain text
7342 #: build/C/man7/signal.7:325
7343 msgid ""
7344 "(Signal 29 is B<SIGINFO> / B<SIGPWR> on an alpha but B<SIGLOST> on a sparc.)"
7345 msgstr ""
7346 "(シグナル 29 は alpha では B<SIGINFO> / B<SIGPWR> だが、sparc では "
7347 "B<SIGLOST> である。)"
7348
7349 #. type: Plain text
7350 #: build/C/man7/signal.7:331
7351 msgid ""
7352 "B<SIGEMT> is not specified in POSIX.1-2001, but nevertheless appears on most "
7353 "other UNIX systems, where its default action is typically to terminate the "
7354 "process with a core dump."
7355 msgstr ""
7356 "B<SIGEMT> は POSIX.1-2001 に規定されていないが、 その他の多くの UNIX システム"
7357 "に存在する。 デフォルトの動作は多くの場合、コアダンプ出力を伴うプロセスの終了"
7358 "である。"
7359
7360 #. type: Plain text
7361 #: build/C/man7/signal.7:335
7362 msgid ""
7363 "B<SIGPWR> (which is not specified in POSIX.1-2001) is typically ignored by "
7364 "default on those other UNIX systems where it appears."
7365 msgstr ""
7366 "B<SIGPWR> は (POSIX.1-2001 に規定されていないが) このシグナルが存在する 他の "
7367 "UNIX システムでは多くの場合、デフォルト動作は無視である。"
7368
7369 #. type: Plain text
7370 #: build/C/man7/signal.7:339
7371 msgid ""
7372 "B<SIGIO> (which is not specified in POSIX.1-2001) is ignored by default on "
7373 "several other UNIX systems."
7374 msgstr ""
7375 "B<SIGIO> は (POSIX.1-2001 に規定されていないが) いくつかの他の UNIX システム"
7376 "では デフォルト動作は無視である。"
7377
7378 #.  parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31
7379 #. type: Plain text
7380 #: build/C/man7/signal.7:346
7381 msgid ""
7382 "Where defined, B<SIGUNUSED> is synonymous with B<SIGSYS> on most "
7383 "architectures."
7384 msgstr ""
7385 "B<SIGUNUSED> が定義されている場合には、ほとんどのアーキテクチャで B<SIGSYS> "
7386 "の同義語となっている。"
7387
7388 #. type: SS
7389 #: build/C/man7/signal.7:346
7390 #, no-wrap
7391 msgid "Real-time signals"
7392 msgstr "リアルタイムシグナル"
7393
7394 #. type: Plain text
7395 #: build/C/man7/signal.7:356
7396 msgid ""
7397 "Linux supports real-time signals as originally defined in the POSIX.1b real-"
7398 "time extensions (and now included in POSIX.1-2001).  The range of supported "
7399 "real-time signals is defined by the macros B<SIGRTMIN> and B<SIGRTMAX>.  "
7400 "POSIX.1-2001 requires that an implementation support at least "
7401 "B<_POSIX_RTSIG_MAX> (8) real-time signals."
7402 msgstr ""
7403 "Linux はリアルタイムシグナルをサポートしている。 リアルタイムシグナルは元々 "
7404 "POSIX.1b のリアルタイム拡張で定義されて いるものであり、現在では "
7405 "POSIX.1-2001 に含まれている。 対応しているリアルタイムシグナルの範囲は、マク"
7406 "ロ B<SIGRTMIN> と B<SIGRTMAX> で定義される。 POSIX.1-2001 では、少なくとも "
7407 "B<_POSIX_RTSIG_MAX> (8) 個のリアルタイムシグナルに対応した実装が要求されてい"
7408 "る。"
7409
7410 #. type: Plain text
7411 #: build/C/man7/signal.7:378
7412 msgid ""
7413 "The Linux kernel supports a range of 32 different real-time signals, "
7414 "numbered 33 to 64.  However, the glibc POSIX threads implementation "
7415 "internally uses two (for NPTL) or three (for LinuxThreads) real-time signals "
7416 "(see B<pthreads>(7)), and adjusts the value of B<SIGRTMIN> suitably (to 34 "
7417 "or 35).  Because the range of available real-time signals varies according "
7418 "to the glibc threading implementation (and this variation can occur at run "
7419 "time according to the available kernel and glibc), and indeed the range of "
7420 "real-time signals varies across UNIX systems, programs should I<never refer "
7421 "to real-time signals using hard-coded numbers>, but instead should always "
7422 "refer to real-time signals using the notation B<SIGRTMIN>+n, and include "
7423 "suitable (run-time) checks that B<SIGRTMIN>+n does not exceed B<SIGRTMAX>."
7424 msgstr ""
7425 "Linux は、32 個の異なるリアルタイムシグナルに対応しており、 その番号は 33 か"
7426 "ら 64 である。 しかしながら、glibc の POSIX スレッド実装は、 内部で 2個 "
7427 "(NPTL の場合) か 3個 (LinuxThreads の場合) の リアルタイムシグナルを使用して"
7428 "おり (B<pthreads>(7)  参照)、 B<SIGRTMIN> の値を適切に (34 か 35 に) 調整す"
7429 "る。 利用可能なリアルタイムシグナルの範囲は glibc のスレッド実装により 異なる"
7430 "し (使用するカーネルと glibc により実行時にも変化する)、 UNIX システムの種類"
7431 "によっても異なる。したがって、 プログラムでは「ハードコーディングした数字を"
7432 "使ってのリアルタイムシグナルの 参照は決してすべきではなく」、代わりに "
7433 "B<SIGRTMIN>+n の形で参照すべきである。また、 B<SIGRTMIN>+n が B<SIGRTMAX> を"
7434 "超えていないかのチェックを (実行時に) 適切に行うべきである。"
7435
7436 #. type: Plain text
7437 #: build/C/man7/signal.7:382
7438 msgid ""
7439 "Unlike standard signals, real-time signals have no predefined meanings: the "
7440 "entire set of real-time signals can be used for application-defined purposes."
7441 msgstr ""
7442 "標準シグナルと異なり、リアルタイムシグナルには 事前に定義された意味はない。 "
7443 "リアルタイムシグナルの全部をアプリケーションで定義した用途に使える。"
7444
7445 #. type: Plain text
7446 #: build/C/man7/signal.7:385
7447 msgid ""
7448 "The default action for an unhandled real-time signal is to terminate the "
7449 "receiving process."
7450 msgstr ""
7451 "ハンドリングしないリアルタイムシグナルのデフォルトの動作は 受信したプロセスの"
7452 "終了である。"
7453
7454 #. type: Plain text
7455 #: build/C/man7/signal.7:387
7456 msgid "Real-time signals are distinguished by the following:"
7457 msgstr "リアルタイムシグナルは以下の特徴がある:"
7458
7459 #. type: Plain text
7460 #: build/C/man7/signal.7:391
7461 msgid ""
7462 "Multiple instances of real-time signals can be queued.  By contrast, if "
7463 "multiple instances of a standard signal are delivered while that signal is "
7464 "currently blocked, then only one instance is queued."
7465 msgstr ""
7466 "リアルタイムシグナルは複数の実体をキューに入れることができる。 一方、標準シグ"
7467 "ナルの場合、そのシグナルがブロックされている間に 同じシグナルの複数のインスタ"
7468 "ンスが配送されても、 1 つだけがキューに入れられる。"
7469
7470 #. type: Plain text
7471 #: build/C/man7/signal.7:411
7472 msgid ""
7473 "If the signal is sent using B<sigqueue>(3), an accompanying value (either an "
7474 "integer or a pointer) can be sent with the signal.  If the receiving process "
7475 "establishes a handler for this signal using the B<SA_SIGINFO> flag to "
7476 "B<sigaction>(2)  then it can obtain this data via the I<si_value> field of "
7477 "the I<siginfo_t> structure passed as the second argument to the handler.  "
7478 "Furthermore, the I<si_pid> and I<si_uid> fields of this structure can be "
7479 "used to obtain the PID and real user ID of the process sending the signal."
7480 msgstr ""
7481 "シグナルが B<sigqueue>(3)  を用いて送信された場合、 付属データ (整数かポイン"
7482 "タ) をシグナルと共に送信できる。 受信側プロセスが B<sigaction>(2)  に "
7483 "B<SA_SIGINFO> フラグを指定してシグナルハンドラを設定した場合、 このデータは "
7484 "I<siginfo_t> 構造体の I<si_value> フィールド経由でハンドラの第 2 引き数として"
7485 "渡され、 利用することができる。 さらに、この構造体の I<si_pid> と I<si_uid> "
7486 "フィールドでシグナルを送信したプロセスの PID と実ユーザ ID を 得ることができ"
7487 "る。"
7488
7489 #. type: Plain text
7490 #: build/C/man7/signal.7:420
7491 msgid ""
7492 "Real-time signals are delivered in a guaranteed order.  Multiple real-time "
7493 "signals of the same type are delivered in the order they were sent.  If "
7494 "different real-time signals are sent to a process, they are delivered "
7495 "starting with the lowest-numbered signal.  (I.e., low-numbered signals have "
7496 "highest priority.)  By contrast, if multiple standard signals are pending "
7497 "for a process, the order in which they are delivered is unspecified."
7498 msgstr ""
7499 "リアルタイムシグナルでは配送される順序が保証される。 同じタイプのリアルタイム"
7500 "シグナルは送信された順番に到着する。 異なるリアルタイムシグナルが一つのプロセ"
7501 "スに送信された場合、 番号の小さいシグナルから先に到着する。 (つまり小さい番号"
7502 "のシグナルが高い優先順位を持つ。)  対照的に、一つのプロセスに対して複数の標準"
7503 "シグナルが処理待ちとなった場合、 これらのシグナルが配送される順序は不定であ"
7504 "る。"
7505
7506 #. type: Plain text
7507 #: build/C/man7/signal.7:425
7508 msgid ""
7509 "If both standard and real-time signals are pending for a process, POSIX "
7510 "leaves it unspecified which is delivered first.  Linux, like many other "
7511 "implementations, gives priority to standard signals in this case."
7512 msgstr ""
7513 "一つのプロセスに対して標準シグナルとリアルタイムシグナルの両方が 処理待ちの場"
7514 "合、POSIX はどちらが先に配送されるかを規定していない。 Linux では、他の多くの"
7515 "実装と同様、このような場合には 標準シグナルが優先される。"
7516
7517 #. type: Plain text
7518 #: build/C/man7/signal.7:448
7519 msgid ""
7520 "According to POSIX, an implementation should permit at least "
7521 "B<_POSIX_SIGQUEUE_MAX> (32) real-time signals to be queued to a process.  "
7522 "However, Linux does things differently.  In kernels up to and including "
7523 "2.6.7, Linux imposes a system-wide limit on the number of queued real-time "
7524 "signals for all processes.  This limit can be viewed and (with privilege) "
7525 "changed via the I</proc/sys/kernel/rtsig-max> file.  A related file, I</proc/"
7526 "sys/kernel/rtsig-nr>, can be used to find out how many real-time signals are "
7527 "currently queued.  In Linux 2.6.8, these I</proc> interfaces were replaced "
7528 "by the B<RLIMIT_SIGPENDING> resource limit, which specifies a per-user limit "
7529 "for queued signals; see B<setrlimit>(2)  for further details."
7530 msgstr ""
7531 "POSIX によれば、1 プロセス毎に最低 B<_POSIX_SIGQUEUE_MAX> (32) 個のリアルタイ"
7532 "ムシグナルをキューに入れられるべきとしている。 しかし、 Linux では違った実装"
7533 "になっている。カーネル 2.6.7 までは (2.6.7 を含む)、全プロセスでキューに入っ"
7534 "ているリアルタイムシグナル の数の合計についてシステム全体での制限がある。 こ"
7535 "の制限は I</proc/sys/kernel/rtsig-max> ファイルで見ることができ、 (権限があれ"
7536 "ば) 変更もできる。 関係するファイルとして、 I</proc/sys/kernel/rtsig-nr> を見"
7537 "ることで、いくつのリアルタイムシグナルが現在キューに入っているかを 知ることが"
7538 "できる。 Linux 2.6.8 で、これらの I</proc> 経由のインターフェースは、 "
7539 "B<RLIMIT_SIGPENDING> リソース制限に置き換えられた。 これは、キューに入るシグ"
7540 "ナル数に関してユーザ単位に 上限を指定するものである。 詳しくは B<setrlimit>"
7541 "(2)  を参照。"
7542
7543 #. type: SS
7544 #: build/C/man7/signal.7:448
7545 #, no-wrap
7546 msgid "Async-signal-safe functions"
7547 msgstr "非同期シグナルで安全な関数 (async-signal-safe functions)"
7548
7549 #. type: Plain text
7550 #: build/C/man7/signal.7:457
7551 msgid ""
7552 "A signal handler function must be very careful, since processing elsewhere "
7553 "may be interrupted at some arbitrary point in the execution of the program.  "
7554 "POSIX has the concept of \"safe function\".  If a signal interrupts the "
7555 "execution of an unsafe function, and I<handler> calls an unsafe function, "
7556 "then the behavior of the program is undefined."
7557 msgstr ""
7558 "シグナルハンドラ関数には非常に注意しなければならない。 他の場所の処理はプログ"
7559 "ラム実行の任意の箇所で中断される可能性があるためである。 POSIX には「安全な関"
7560 "数 (safe function)」という概念がある。 シグナルが安全でない関数の実行を中断"
7561 "し、かつ I<handler> が安全でない関数を呼び出した場合、プログラムの挙動は未定"
7562 "義である。"
7563
7564 #. type: Plain text
7565 #: build/C/man7/signal.7:461
7566 msgid ""
7567 "POSIX.1-2004 (also known as POSIX.1-2001 Technical Corrigendum 2)  requires "
7568 "an implementation to guarantee that the following functions can be safely "
7569 "called inside a signal handler:"
7570 msgstr ""
7571 "POSIX.1-2004 (POSIX.1-2001 Technical Corrigendum (正誤表) 2 とも言う) では、 "
7572 "シグナルハンドラ内での安全な呼び出しを保証することが必須の関数として 以下が規"
7573 "定されている。"
7574
7575 #. type: Plain text
7576 #: build/C/man7/signal.7:582
7577 #, no-wrap
7578 msgid ""
7579 "_Exit()\n"
7580 "_exit()\n"
7581 "abort()\n"
7582 "accept()\n"
7583 "access()\n"
7584 "aio_error()\n"
7585 "aio_return()\n"
7586 "aio_suspend()\n"
7587 "alarm()\n"
7588 "bind()\n"
7589 "cfgetispeed()\n"
7590 "cfgetospeed()\n"
7591 "cfsetispeed()\n"
7592 "cfsetospeed()\n"
7593 "chdir()\n"
7594 "chmod()\n"
7595 "chown()\n"
7596 "clock_gettime()\n"
7597 "close()\n"
7598 "connect()\n"
7599 "creat()\n"
7600 "dup()\n"
7601 "dup2()\n"
7602 "execle()\n"
7603 "execve()\n"
7604 "fchmod()\n"
7605 "fchown()\n"
7606 "fcntl()\n"
7607 "fdatasync()\n"
7608 "fork()\n"
7609 "fpathconf()\n"
7610 "fstat()\n"
7611 "fsync()\n"
7612 "ftruncate()\n"
7613 "getegid()\n"
7614 "geteuid()\n"
7615 "getgid()\n"
7616 "getgroups()\n"
7617 "getpeername()\n"
7618 "getpgrp()\n"
7619 "getpid()\n"
7620 "getppid()\n"
7621 "getsockname()\n"
7622 "getsockopt()\n"
7623 "getuid()\n"
7624 "kill()\n"
7625 "link()\n"
7626 "listen()\n"
7627 "lseek()\n"
7628 "lstat()\n"
7629 "mkdir()\n"
7630 "mkfifo()\n"
7631 "open()\n"
7632 "pathconf()\n"
7633 "pause()\n"
7634 "pipe()\n"
7635 "poll()\n"
7636 "posix_trace_event()\n"
7637 "pselect()\n"
7638 "raise()\n"
7639 "read()\n"
7640 "readlink()\n"
7641 "recv()\n"
7642 "recvfrom()\n"
7643 "recvmsg()\n"
7644 "rename()\n"
7645 "rmdir()\n"
7646 "select()\n"
7647 "sem_post()\n"
7648 "send()\n"
7649 "sendmsg()\n"
7650 "sendto()\n"
7651 "setgid()\n"
7652 "setpgid()\n"
7653 "setsid()\n"
7654 "setsockopt()\n"
7655 "setuid()\n"
7656 "shutdown()\n"
7657 "sigaction()\n"
7658 "sigaddset()\n"
7659 "sigdelset()\n"
7660 "sigemptyset()\n"
7661 "sigfillset()\n"
7662 "sigismember()\n"
7663 "signal()\n"
7664 "sigpause()\n"
7665 "sigpending()\n"
7666 "sigprocmask()\n"
7667 "sigqueue()\n"
7668 "sigset()\n"
7669 "sigsuspend()\n"
7670 "sleep()\n"
7671 "sockatmark()\n"
7672 "socket()\n"
7673 "socketpair()\n"
7674 "stat()\n"
7675 "symlink()\n"
7676 "sysconf()\n"
7677 "tcdrain()\n"
7678 "tcflow()\n"
7679 "tcflush()\n"
7680 "tcgetattr()\n"
7681 "tcgetpgrp()\n"
7682 "tcsendbreak()\n"
7683 "tcsetattr()\n"
7684 "tcsetpgrp()\n"
7685 "time()\n"
7686 "timer_getoverrun()\n"
7687 "timer_gettime()\n"
7688 "timer_settime()\n"
7689 "times()\n"
7690 "umask()\n"
7691 "uname()\n"
7692 "unlink()\n"
7693 "utime()\n"
7694 "wait()\n"
7695 "waitpid()\n"
7696 "write()\n"
7697 msgstr ""
7698 "_Exit()\n"
7699 "_exit()\n"
7700 "abort()\n"
7701 "accept()\n"
7702 "access()\n"
7703 "aio_error()\n"
7704 "aio_return()\n"
7705 "aio_suspend()\n"
7706 "alarm()\n"
7707 "bind()\n"
7708 "cfgetispeed()\n"
7709 "cfgetospeed()\n"
7710 "cfsetispeed()\n"
7711 "cfsetospeed()\n"
7712 "chdir()\n"
7713 "chmod()\n"
7714 "chown()\n"
7715 "clock_gettime()\n"
7716 "close()\n"
7717 "connect()\n"
7718 "creat()\n"
7719 "dup()\n"
7720 "dup2()\n"
7721 "execle()\n"
7722 "execve()\n"
7723 "fchmod()\n"
7724 "fchown()\n"
7725 "fcntl()\n"
7726 "fdatasync()\n"
7727 "fork()\n"
7728 "fpathconf()\n"
7729 "fstat()\n"
7730 "fsync()\n"
7731 "ftruncate()\n"
7732 "getegid()\n"
7733 "geteuid()\n"
7734 "getgid()\n"
7735 "getgroups()\n"
7736 "getpeername()\n"
7737 "getpgrp()\n"
7738 "getpid()\n"
7739 "getppid()\n"
7740 "getsockname()\n"
7741 "getsockopt()\n"
7742 "getuid()\n"
7743 "kill()\n"
7744 "link()\n"
7745 "listen()\n"
7746 "lseek()\n"
7747 "lstat()\n"
7748 "mkdir()\n"
7749 "mkfifo()\n"
7750 "open()\n"
7751 "pathconf()\n"
7752 "pause()\n"
7753 "pipe()\n"
7754 "poll()\n"
7755 "posix_trace_event()\n"
7756 "pselect()\n"
7757 "raise()\n"
7758 "read()\n"
7759 "readlink()\n"
7760 "recv()\n"
7761 "recvfrom()\n"
7762 "recvmsg()\n"
7763 "rename()\n"
7764 "rmdir()\n"
7765 "select()\n"
7766 "sem_post()\n"
7767 "send()\n"
7768 "sendmsg()\n"
7769 "sendto()\n"
7770 "setgid()\n"
7771 "setpgid()\n"
7772 "setsid()\n"
7773 "setsockopt()\n"
7774 "setuid()\n"
7775 "shutdown()\n"
7776 "sigaction()\n"
7777 "sigaddset()\n"
7778 "sigdelset()\n"
7779 "sigemptyset()\n"
7780 "sigfillset()\n"
7781 "sigismember()\n"
7782 "signal()\n"
7783 "sigpause()\n"
7784 "sigpending()\n"
7785 "sigprocmask()\n"
7786 "sigqueue()\n"
7787 "sigset()\n"
7788 "sigsuspend()\n"
7789 "sleep()\n"
7790 "sockatmark()\n"
7791 "socket()\n"
7792 "socketpair()\n"
7793 "stat()\n"
7794 "symlink()\n"
7795 "sysconf()\n"
7796 "tcdrain()\n"
7797 "tcflow()\n"
7798 "tcflush()\n"
7799 "tcgetattr()\n"
7800 "tcgetpgrp()\n"
7801 "tcsendbreak()\n"
7802 "tcsetattr()\n"
7803 "tcsetpgrp()\n"
7804 "time()\n"
7805 "timer_getoverrun()\n"
7806 "timer_gettime()\n"
7807 "timer_settime()\n"
7808 "times()\n"
7809 "umask()\n"
7810 "uname()\n"
7811 "unlink()\n"
7812 "utime()\n"
7813 "wait()\n"
7814 "waitpid()\n"
7815 "write()\n"
7816
7817 #. type: Plain text
7818 #: build/C/man7/signal.7:587
7819 msgid ""
7820 "POSIX.1-2008 removes fpathconf(), pathconf(), and sysconf()  from the above "
7821 "list, and adds the following functions:"
7822 msgstr ""
7823 "POSIX.1-2008 では、上記のリストのうち fpathconf(), pathconf(), sysconf()  が"
7824 "削除され、以下の関数が追加された。"
7825
7826 #. type: Plain text
7827 #: build/C/man7/signal.7:610
7828 #, no-wrap
7829 msgid ""
7830 "execl()\n"
7831 "execv()\n"
7832 "faccessat()\n"
7833 "fchmodat()\n"
7834 "fchownat()\n"
7835 "fexecve()\n"
7836 "fstatat()\n"
7837 "futimens()\n"
7838 "linkat()\n"
7839 "mkdirat()\n"
7840 "mkfifoat()\n"
7841 "mknod()\n"
7842 "mknodat()\n"
7843 "openat()\n"
7844 "readlinkat()\n"
7845 "renameat()\n"
7846 "symlinkat()\n"
7847 "unlinkat()\n"
7848 "utimensat()\n"
7849 "utimes()\n"
7850 msgstr ""
7851 "execl()\n"
7852 "execv()\n"
7853 "faccessat()\n"
7854 "fchmodat()\n"
7855 "fchownat()\n"
7856 "fexecve()\n"
7857 "fstatat()\n"
7858 "futimens()\n"
7859 "linkat()\n"
7860 "mkdirat()\n"
7861 "mkfifoat()\n"
7862 "mknod()\n"
7863 "mknodat()\n"
7864 "openat()\n"
7865 "readlinkat()\n"
7866 "renameat()\n"
7867 "symlinkat()\n"
7868 "unlinkat()\n"
7869 "utimensat()\n"
7870 "utimes()\n"
7871
7872 #. type: SS
7873 #: build/C/man7/signal.7:612
7874 #, no-wrap
7875 msgid "Interruption of system calls and library functions by signal handlers"
7876 msgstr "シグナルハンドラによるシステムコールやライブラリ関数への割り込み"
7877
7878 #. type: Plain text
7879 #: build/C/man7/signal.7:615
7880 msgid ""
7881 "If a signal handler is invoked while a system call or library function call "
7882 "is blocked, then either:"
7883 msgstr ""
7884 "システムコールやライブラリが停止 (block) している間にシグナルハンドラが 起動"
7885 "されると、以下のどちらかとなる。"
7886
7887 #. type: Plain text
7888 #: build/C/man7/signal.7:617
7889 msgid ""
7890 "the call is automatically restarted after the signal handler returns; or"
7891 msgstr "シグナルが返った後、呼び出しは自動的に再スタートされる。"
7892
7893 #. type: Plain text
7894 #: build/C/man7/signal.7:620
7895 msgid "the call fails with the error B<EINTR>."
7896 msgstr "呼び出しはエラー B<EINTR> で失敗する。"
7897
7898 #. type: Plain text
7899 #: build/C/man7/signal.7:628
7900 msgid ""
7901 "Which of these two behaviors occurs depends on the interface and whether or "
7902 "not the signal handler was established using the B<SA_RESTART> flag (see "
7903 "B<sigaction>(2)).  The details vary across UNIX systems; below, the details "
7904 "for Linux."
7905 msgstr ""
7906 "これらの二つの挙動のうちどちらが起こるかは、インターフェイスにより依存し、 シ"
7907 "グナルハンドラが B<SA_RESTART> フラグ (B<sigaction>(2)  参照) を使って設定さ"
7908 "れていたかにも依存する。 詳細は UNIX システムによって異なる。 Linux における"
7909 "詳細を以下で説明する。"
7910
7911 #.  The following system calls use ERESTARTSYS,
7912 #.  so that they are restartable
7913 #. type: Plain text
7914 #: build/C/man7/signal.7:637
7915 msgid ""
7916 "If a blocked call to one of the following interfaces is interrupted by a "
7917 "signal handler, then the call will be automatically restarted after the "
7918 "signal handler returns if the B<SA_RESTART> flag was used; otherwise the "
7919 "call will fail with the error B<EINTR>:"
7920 msgstr ""
7921 "以下のインターフェイスのいずれかの呼び出しが停止している間に シグナルハンドラ"
7922 "により割り込まれた場合、 B<SA_RESTART> フラグが使用されていれば、シグナルハン"
7923 "ドラが返った後に その呼び出しは自動的に再スタートされることになる。 それ以外"
7924 "の場合は、その呼び出しはエラー B<EINTR> で失敗することになる。"
7925
7926 #. type: Plain text
7927 #: build/C/man7/signal.7:653
7928 msgid ""
7929 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), and B<ioctl>(2)  calls "
7930 "on \"slow\" devices.  A \"slow\" device is one where the I/O call may block "
7931 "for an indefinite time, for example, a terminal, pipe, or socket.  (A disk "
7932 "is not a slow device according to this definition.)  If an I/O call on a "
7933 "slow device has already transferred some data by the time it is interrupted "
7934 "by a signal handler, then the call will return a success status (normally, "
7935 "the number of bytes transferred)."
7936 msgstr ""
7937 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), B<ioctl>(2)  の「遅い "
7938 "(slow)」デバイスに対する呼び出し。 ここでいう「遅い」デバイスとは、I/O 呼び出"
7939 "しが無期限に停止 (block) する 可能性のあるデバイスのことで、例としては端末、"
7940 "パイプ、ソケットがある (この定義では、ディスクは遅いデバイスではない)。 遅い"
7941 "デバイスに対する I/O 呼び出しが、 シグナルハンドラにより割り込まれた時点まで"
7942 "に何らかのデータを すでに転送していれば、呼び出しは成功ステータス (通常は、転"
7943 "送されたバイト数) を返すことだろう。"
7944
7945 #. type: Plain text
7946 #: build/C/man7/signal.7:657
7947 msgid ""
7948 "B<open>(2), if it can block (e.g., when opening a FIFO; see B<fifo>(7))."
7949 msgstr ""
7950 "停止 (block) する可能性のある B<open>(2)  (例えば、FIFO のオープン時; B<fifo>"
7951 "(7)  参照)。"
7952
7953 #. type: Plain text
7954 #: build/C/man7/signal.7:664
7955 msgid "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), and B<waitpid>(2)."
7956 msgstr "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), B<waitpid>(2)."
7957
7958 #.  If a timeout (setsockopt()) is in effect on the socket, then these
7959 #.  system calls switch to using EINTR.  Consequently, they and are not
7960 #.  automatically restarted, and they show the stop/cont behavior
7961 #.  described below.  (Verified from 2.6.26 source, and by experiment; mtk)
7962 #. type: Plain text
7963 #: build/C/man7/signal.7:680
7964 msgid ""
7965 "Socket interfaces: B<accept>(2), B<connect>(2), B<recv>(2), B<recvfrom>(2), "
7966 "B<recvmsg>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), unless a timeout "
7967 "has been set on the socket (see below)."
7968 msgstr ""
7969 "ソケットインターフェイス: B<accept>(2), B<connect>(2), B<recv>(2), "
7970 "B<recvfrom>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), B<sendmsg>(2).  但"
7971 "し、ソケットにタイムアウトが設定されていない場合 (下記参照)。"
7972
7973 #. type: Plain text
7974 #: build/C/man7/signal.7:686
7975 msgid "File locking interfaces: B<flock>(2)  and B<fcntl>(2)  B<F_SETLKW>."
7976 msgstr ""
7977 "ファイルロック用インターフェイス: B<flock>(2), B<fcntl>(2)  B<F_SETLKW>."
7978
7979 #. type: Plain text
7980 #: build/C/man7/signal.7:693
7981 msgid ""
7982 "POSIX message queue interfaces: B<mq_receive>(3), B<mq_timedreceive>(3), "
7983 "B<mq_send>(3), and B<mq_timedsend>(3)."
7984 msgstr ""
7985 "POSIX メッセージキューインターフェイス: B<mq_receive>(3), B<mq_timedreceive>"
7986 "(3), B<mq_send>(3), B<mq_timedsend>(3)."
7987
7988 #. type: Plain text
7989 #: build/C/man7/signal.7:698
7990 msgid ""
7991 "B<futex>(2)  B<FUTEX_WAIT> (since Linux 2.6.22; beforehand, always failed "
7992 "with B<EINTR>)."
7993 msgstr ""
7994 "B<futex>(2)  B<FUTEX_WAIT> (Linux 2.6.22 以降; それ以前は常に B<EINTR> で失敗"
7995 "していた)。"
7996
7997 #. type: Plain text
7998 #: build/C/man7/signal.7:705
7999 msgid ""
8000 "POSIX semaphore interfaces: B<sem_wait>(3)  and B<sem_timedwait>(3)  (since "
8001 "Linux 2.6.22; beforehand, always failed with B<EINTR>)."
8002 msgstr ""
8003 "POSIX セマフォインターフェイス: B<sem_wait>(3), B<sem_timedwait>(3)  (Linux "
8004 "2.6.22 以降; それ以前は常に B<EINTR> で失敗していた)。"
8005
8006 #.  These are the system calls that give EINTR or ERESTARTNOHAND
8007 #.  on interruption by a signal handler.
8008 #. type: Plain text
8009 #: build/C/man7/signal.7:716
8010 msgid ""
8011 "The following interfaces are never restarted after being interrupted by a "
8012 "signal handler, regardless of the use of B<SA_RESTART>; they always fail "
8013 "with the error B<EINTR> when interrupted by a signal handler:"
8014 msgstr ""
8015 "以下のインターフェイスは、 B<SA_RESTART> を使っているどうかに関わらず、シグナ"
8016 "ルハンドラにより割り込まれた後、 再スタートすることは決してない。 これらは、"
8017 "シグナルハンドラにより割り込まれると、常にエラー B<EINTR> で失敗する。"
8018
8019 #. type: Plain text
8020 #: build/C/man7/signal.7:736 build/C/man7/signal.7:810
8021 msgid ""
8022 "Socket interfaces, when a timeout has been set on the socket using "
8023 "B<setsockopt>(2): B<accept>(2), B<recv>(2), B<recvfrom>(2), and B<recvmsg>"
8024 "(2), if a receive timeout (B<SO_RCVTIMEO>)  has been set; B<connect>(2), "
8025 "B<send>(2), B<sendto>(2), and B<sendmsg>(2), if a send timeout "
8026 "(B<SO_SNDTIMEO>)  has been set."
8027 msgstr ""
8028 "B<setsockopt>(2)  を使ってタイムアウトが設定されているソケットインターフェー"
8029 "ス: B<accept>(2), B<recv>(2), B<recvfrom>(2), B<recvmsg>(2)  で受信タイムアウ"
8030 "ト (B<SO_RCVTIMEO>)  が設定されている場合と、 B<connect>(2), B<send>(2), "
8031 "B<sendto>(2), B<sendmsg>(2)  で送信タイムアウト (B<SO_SNDTIMEO>)  が設定され"
8032 "ている場合。"
8033
8034 #. type: Plain text
8035 #: build/C/man7/signal.7:743
8036 msgid ""
8037 "Interfaces used to wait for signals: B<pause>(2), B<sigsuspend>(2), "
8038 "B<sigtimedwait>(2), and B<sigwaitinfo>(2)."
8039 msgstr ""
8040 "シグナル待ちに使われるインターフェイス: B<pause>(2), B<sigsuspend>(2), "
8041 "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8042
8043 #. type: Plain text
8044 #: build/C/man7/signal.7:752
8045 msgid ""
8046 "File descriptor multiplexing interfaces: B<epoll_wait>(2), B<epoll_pwait>"
8047 "(2), B<poll>(2), B<ppoll>(2), B<select>(2), and B<pselect>(2)."
8048 msgstr ""
8049 "ファイルディスクリプタ多重インターフェイス: B<epoll_wait>(2), B<epoll_pwait>"
8050 "(2), B<poll>(2), B<ppoll>(2), B<select>(2), B<pselect>(2)."
8051
8052 #.  On some other systems, SA_RESTART does restart these system calls
8053 #. type: Plain text
8054 #: build/C/man7/signal.7:760
8055 msgid ""
8056 "System V IPC interfaces: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), and "
8057 "B<semtimedop>(2)."
8058 msgstr ""
8059 "System V IPC インターフェイス: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), "
8060 "B<semtimedop>(2)."
8061
8062 #. type: Plain text
8063 #: build/C/man7/signal.7:766
8064 msgid ""
8065 "Sleep interfaces: B<clock_nanosleep>(2), B<nanosleep>(2), and B<usleep>(3)."
8066 msgstr ""
8067 "スリープ用のインターフェイス: B<clock_nanosleep>(2), B<nanosleep>(2), "
8068 "B<usleep>(3)."
8069
8070 #. type: Plain text
8071 #: build/C/man7/signal.7:771 build/C/man7/signal.7:824
8072 msgid "B<read>(2)  from an B<inotify>(7)  file descriptor."
8073 msgstr "B<inotify>(7)  ファイルディスクリプタからの B<read>(2)."
8074
8075 #. type: Plain text
8076 #: build/C/man7/signal.7:773
8077 msgid "B<io_getevents>(2)."
8078 msgstr "B<io_getevents>(2)."
8079
8080 #. type: Plain text
8081 #: build/C/man7/signal.7:779
8082 msgid ""
8083 "The B<sleep>(3)  function is also never restarted if interrupted by a "
8084 "handler, but gives a success return: the number of seconds remaining to "
8085 "sleep."
8086 msgstr ""
8087 "B<sleep>(3)  関数も、ハンドラにより割り込まれた場合、決して再スタートされるこ"
8088 "とはない。 しかし、成功となり、残っている停止時間を返す。"
8089
8090 #. type: SS
8091 #: build/C/man7/signal.7:779
8092 #, no-wrap
8093 msgid "Interruption of system calls and library functions by stop signals"
8094 msgstr "一時停止シグナルによるシステムコールやライブラリ関数への割り込み"
8095
8096 #. type: Plain text
8097 #: build/C/man7/signal.7:788
8098 msgid ""
8099 "On Linux, even in the absence of signal handlers, certain blocking "
8100 "interfaces can fail with the error B<EINTR> after the process is stopped by "
8101 "one of the stop signals and then resumed via B<SIGCONT>.  This behavior is "
8102 "not sanctioned by POSIX.1, and doesn't occur on other systems."
8103 msgstr ""
8104 "Linux では、シグナルハンドラが設定されていない場合でも、 いくつかのブロッキン"
8105 "グ型のインターフェイスは、 プロセスが一時停止 (stop) シグナルの一つにより停止"
8106 "され、 B<SIGCONT> により再開された後に、エラー B<EINTR> で失敗する可能性があ"
8107 "る。 この挙動は POSIX.1 で認められておらず、他のシステムでは起こらない。"
8108
8109 #. type: Plain text
8110 #: build/C/man7/signal.7:790
8111 msgid "The Linux interfaces that display this behavior are:"
8112 msgstr "この挙動を示す Linux のインターフェイスは以下の通りである。"
8113
8114 #. type: Plain text
8115 #: build/C/man7/signal.7:813
8116 msgid "B<epoll_wait>(2), B<epoll_pwait>(2)."
8117 msgstr "B<epoll_wait>(2), B<epoll_pwait>(2)."
8118
8119 #. type: Plain text
8120 #: build/C/man7/signal.7:816
8121 msgid "B<semop>(2), B<semtimedop>(2)."
8122 msgstr "B<semop>(2), B<semtimedop>(2)."
8123
8124 #. type: Plain text
8125 #: build/C/man7/signal.7:819
8126 msgid "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8127 msgstr "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8128
8129 #. type: Plain text
8130 #: build/C/man7/signal.7:830
8131 msgid ""
8132 "Linux 2.6.21 and earlier: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8133 "B<sem_wait>(3)."
8134 msgstr ""
8135 "Linux 2.6.21 以前: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8136 "B<sem_wait>(3)."
8137
8138 #. type: Plain text
8139 #: build/C/man7/signal.7:834
8140 msgid "Linux 2.6.8 and earlier: B<msgrcv>(2), B<msgsnd>(2)."
8141 msgstr "Linux 2.6.8 以前: B<msgrcv>(2), B<msgsnd>(2)."
8142
8143 #. type: Plain text
8144 #: build/C/man7/signal.7:837
8145 msgid "Linux 2.4 and earlier: B<nanosleep>(2)."
8146 msgstr "Linux 2.4 以前: B<nanosleep>(2)."
8147
8148 #.  It must be a *very* long time since this was true:
8149 #.  .SH BUGS
8150 #.  .B SIGIO
8151 #.  and
8152 #.  .B SIGLOST
8153 #.  have the same value.
8154 #.  The latter is commented out in the kernel source, but
8155 #.  the build process of some software still thinks that
8156 #.  signal 29 is
8157 #.  .BR SIGLOST .
8158 #. type: Plain text
8159 #: build/C/man7/signal.7:850
8160 msgid "POSIX.1, except as noted."
8161 msgstr "POSIX.1 (注記した内容以外)。"
8162
8163 #. type: Plain text
8164 #: build/C/man7/signal.7:883
8165 msgid ""
8166 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), B<rt_sigqueueinfo>"
8167 "(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), "
8168 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
8169 "B<sigprocmask>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), "
8170 "B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), "
8171 "B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), "
8172 "B<strsignal>(3), B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), "
8173 "B<sigevent>(7)"
8174 msgstr ""
8175 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), B<rt_sigqueueinfo>"
8176 "(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), "
8177 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
8178 "B<sigprocmask>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), "
8179 "B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), "
8180 "B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), "
8181 "B<strsignal>(3), B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), "
8182 "B<sigevent>(7)"
8183
8184 #. type: TH
8185 #: build/C/man2/signalfd.2:20
8186 #, no-wrap
8187 msgid "SIGNALFD"
8188 msgstr "SIGNALFD"
8189
8190 #. type: TH
8191 #: build/C/man2/signalfd.2:20
8192 #, no-wrap
8193 msgid "2009-01-13"
8194 msgstr "2009-01-13"
8195
8196 #. type: Plain text
8197 #: build/C/man2/signalfd.2:23
8198 msgid "signalfd - create a file descriptor for accepting signals"
8199 msgstr "signalfd - シグナル受け付け用のファイルディスクリプタを生成する"
8200
8201 #. type: Plain text
8202 #: build/C/man2/signalfd.2:25
8203 msgid "B<#include E<lt>sys/signalfd.hE<gt>>"
8204 msgstr "B<#include E<lt>sys/signalfd.hE<gt>>"
8205
8206 #. type: Plain text
8207 #: build/C/man2/signalfd.2:27
8208 msgid ""
8209 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8210 msgstr ""
8211 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8212
8213 #. type: Plain text
8214 #: build/C/man2/signalfd.2:38
8215 msgid ""
8216 "B<signalfd>()  creates a file descriptor that can be used to accept signals "
8217 "targeted at the caller.  This provides an alternative to the use of a signal "
8218 "handler or B<sigwaitinfo>(2), and has the advantage that the file descriptor "
8219 "may be monitored by B<select>(2), B<poll>(2), and B<epoll>(7)."
8220 msgstr ""
8221 "B<signalfd>()  は、呼び出し元宛てのシグナルを受け付けるために使用されるファイ"
8222 "ル ディスクリプタを生成する。 この方法はシグナルハンドラや B<sigwaitinfo>"
8223 "(2)  を用いる方法の代わりとなるものであり、このファイルディスクリプタを "
8224 "B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
8225
8226 #. type: Plain text
8227 #: build/C/man2/signalfd.2:58
8228 msgid ""
8229 "The I<mask> argument specifies the set of signals that the caller wishes to "
8230 "accept via the file descriptor.  This argument is a signal set whose "
8231 "contents can be initialized using the macros described in B<sigsetops>(3).  "
8232 "Normally, the set of signals to be received via the file descriptor should "
8233 "be blocked using B<sigprocmask>(2), to prevent the signals being handled "
8234 "according to their default dispositions.  It is not possible to receive "
8235 "B<SIGKILL> or B<SIGSTOP> signals via a signalfd file descriptor; these "
8236 "signals are silently ignored if specified in I<mask>."
8237 msgstr ""
8238 "I<mask> 引き数には、呼び出し元がこのファイルディスクリプタ経由で受け付けたい "
8239 "シグナル集合を指定する。この引き数で指定するシグナル集合の内容は、 "
8240 "B<sigsetops>(3)  で説明されているマクロを使って初期化することができる。 通"
8241 "常、ファイルディスクリプタ経由で受信するシグナル集合は、 そのシグナルがデフォ"
8242 "ルトの配送方法に基いて処理されるのを防ぐために、 B<sigprocmask>(2)  を使って"
8243 "ブロックしておくべきである。 シグナル B<SIGKILL> と B<SIGSTOP> を signalfd "
8244 "ファイルディスクリプタ経由で受信することはできない。 これらのシグナルが "
8245 "I<mask> で指定された場合には黙って無視される。"
8246
8247 #. type: Plain text
8248 #: build/C/man2/signalfd.2:72
8249 msgid ""
8250 "If the I<fd> argument is -1, then the call creates a new file descriptor and "
8251 "associates the signal set specified in I<mask> with that descriptor.  If "
8252 "I<fd> is not -1, then it must specify a valid existing signalfd file "
8253 "descriptor, and I<mask> is used to replace the signal set associated with "
8254 "that descriptor."
8255 msgstr ""
8256 "I<fd> 引き数が -1 の場合、 B<signalfd>()  は新しいファイルディスクリプタを生"
8257 "成し、 I<mask> で指定されたシグナル集合をそのファイルディスクリプタに関連付け"
8258 "る。 I<fd> 引き数が -1 以外の場合、 I<fd> には有効な既存の signalfd ファイル"
8259 "ディスクリプタを指定しなければならず、 そのディスクリプタに関連付けられている"
8260 "シグナル集合は I<mask> を使って置き換えられる。"
8261
8262 #. type: Plain text
8263 #: build/C/man2/signalfd.2:77
8264 msgid ""
8265 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
8266 "I<flags> to change the behaviour of B<signalfd>():"
8267 msgstr ""
8268 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
8269 "ることで、 B<signalfd>()  の振舞いを変更することができる。"
8270
8271 #. type: TP
8272 #: build/C/man2/signalfd.2:77
8273 #, no-wrap
8274 msgid "B<SFD_NONBLOCK>"
8275 msgstr "B<SFD_NONBLOCK>"
8276
8277 #. type: TP
8278 #: build/C/man2/signalfd.2:85
8279 #, no-wrap
8280 msgid "B<SFD_CLOEXEC>"
8281 msgstr "B<SFD_CLOEXEC>"
8282
8283 #. type: Plain text
8284 #: build/C/man2/signalfd.2:102
8285 msgid ""
8286 "B<signalfd>()  returns a file descriptor that supports the following "
8287 "operations:"
8288 msgstr ""
8289 "B<signalfd>()  が返すファイルディスクリプタは以下の操作をサポートしている。"
8290
8291 #. type: Plain text
8292 #: build/C/man2/signalfd.2:121
8293 msgid ""
8294 "If one or more of the signals specified in I<mask> is pending for the "
8295 "process, then the buffer supplied to B<read>(2)  is used to return one or "
8296 "more I<signalfd_siginfo> structures (see below) that describe the signals.  "
8297 "The B<read>(2)  returns information for as many signals as are pending and "
8298 "will fit in the supplied buffer.  The buffer must be at least I<sizeof"
8299 "(struct signalfd_siginfo)> bytes.  The return value of the B<read>(2)  is "
8300 "the total number of bytes read."
8301 msgstr ""
8302 "I<mask> に指定されているシグナルのうち一つ以上がそのプロセスに対して 処理待"
8303 "ち (pending) であれば、それらのシグナルの情報が B<read>(2)  に渡されたバッ"
8304 "ファを使って、 I<signalfd_siginfo> 構造体に格納されて返される。 B<read>(2)  "
8305 "は、バッファに格納可能な範囲でできるだけ多くの処理待ちのシグナルに ついての情"
8306 "報を返す。 バッファは最低でも I<sizeof(struct signalfd_siginfo)> バイトの大き"
8307 "さがなければならない。 B<read>(2)  の返り値は読み出されたトータルのバイト数で"
8308 "ある。"
8309
8310 #. type: Plain text
8311 #: build/C/man2/signalfd.2:129
8312 msgid ""
8313 "As a consequence of the B<read>(2), the signals are consumed, so that they "
8314 "are no longer pending for the process (i.e., will not be caught by signal "
8315 "handlers, and cannot be accepted using B<sigwaitinfo>(2))."
8316 msgstr ""
8317 "B<read>(2)  が行われた結果、シグナルは消費され、 これらのシグナルはそのプロセ"
8318 "スに対しては処理待ちではなくなる (つまり、シグナルハンドラで捕捉されることも"
8319 "なく、 B<sigwaitinfo>(2)  を使って受け取ることもできなくなる)。"
8320
8321 #. type: Plain text
8322 #: build/C/man2/signalfd.2:140
8323 msgid ""
8324 "If none of the signals in I<mask> is pending for the process, then the "
8325 "B<read>(2)  either blocks until one of the signals in I<mask> is generated "
8326 "for the process, or fails with the error B<EAGAIN> if the file descriptor "
8327 "has been made nonblocking."
8328 msgstr ""
8329 "I<mask> に指定されているシグナルがそのプロセスに対して一つも処理待ちでなけれ"
8330 "ば、 B<read>(2)  は、 I<mask> で指定されたシグナルのうちいずれか一つがそのプ"
8331 "ロセスに対して発生するまで 停止 (block) する、もしくはファイルディスクリプタ"
8332 "が非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗する。"
8333
8334 #. type: Plain text
8335 #: build/C/man2/signalfd.2:153
8336 msgid ""
8337 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
8338 "B<poll>(2)  B<POLLIN> flag)  if one or more of the signals in I<mask> is "
8339 "pending for the process."
8340 msgstr ""
8341 "I<mask> に指定されたシグナルのうち一つ以上がそのプロセスに対して処理待ちであ"
8342 "れば、 ファイルディスクリプタは読み出し可能となる (B<select>(2)  の "
8343 "I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
8344
8345 #. type: Plain text
8346 #: build/C/man2/signalfd.2:160
8347 msgid ""
8348 "The signalfd file descriptor also supports the other file-descriptor "
8349 "multiplexing APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
8350 msgstr ""
8351 "signalfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
8352 "である B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
8353
8354 #. type: Plain text
8355 #: build/C/man2/signalfd.2:165
8356 msgid ""
8357 "When the file descriptor is no longer required it should be closed.  When "
8358 "all file descriptors associated with the same signalfd object have been "
8359 "closed, the resources for object are freed by the kernel."
8360 msgstr ""
8361 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
8362 "る。 同じ signalfd オブジェクトに関連付けられたファイルディスクリプタが全て "
8363 "クローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
8364
8365 #. type: SS
8366 #: build/C/man2/signalfd.2:165
8367 #, no-wrap
8368 msgid "The signalfd_siginfo structure"
8369 msgstr "signalfd_siginfo 構造体"
8370
8371 #. type: Plain text
8372 #: build/C/man2/signalfd.2:171
8373 msgid ""
8374 "The format of the I<signalfd_siginfo> structure(s) returned by B<read>(2)s "
8375 "from a signalfd file descriptor is as follows:"
8376 msgstr ""
8377 "signalfd ファイルディスクリプタからの B<read>(2)  で返される "
8378 "I<signalfd_siginfo> 構造体のフォーマットは以下の通りである。"
8379
8380 #.  ssi_trapno is unused on most arches
8381 #.  FIXME Since Linux 2.6.37 there is 'uint16_t ssi_addr_lsb'
8382 #.  which is not yet documented
8383 #. type: Plain text
8384 #: build/C/man2/signalfd.2:198
8385 #, no-wrap
8386 msgid ""
8387 "struct signalfd_siginfo {\n"
8388 "    uint32_t ssi_signo;   /* Signal number */\n"
8389 "    int32_t  ssi_errno;   /* Error number (unused) */\n"
8390 "    int32_t  ssi_code;    /* Signal code */\n"
8391 "    uint32_t ssi_pid;     /* PID of sender */\n"
8392 "    uint32_t ssi_uid;     /* Real UID of sender */\n"
8393 "    int32_t  ssi_fd;      /* File descriptor (SIGIO) */\n"
8394 "    uint32_t ssi_tid;     /* Kernel timer ID (POSIX timers)\n"
8395 "    uint32_t ssi_band;    /* Band event (SIGIO) */\n"
8396 "    uint32_t ssi_overrun; /* POSIX timer overrun count */\n"
8397 "    uint32_t ssi_trapno;  /* Trap number that caused signal */\n"
8398 "    int32_t  ssi_status;  /* Exit status or signal (SIGCHLD) */\n"
8399 "    int32_t  ssi_int;     /* Integer sent by sigqueue(3) */\n"
8400 "    uint64_t ssi_ptr;     /* Pointer sent by sigqueue(3) */\n"
8401 "    uint64_t ssi_utime;   /* User CPU time consumed (SIGCHLD) */\n"
8402 "    uint64_t ssi_stime;   /* System CPU time consumed (SIGCHLD) */\n"
8403 "    uint64_t ssi_addr;    /* Address that generated signal\n"
8404 "                             (for hardware-generated signals) */\n"
8405 "    uint8_t  pad[I<X>];      /* Pad size to 128 bytes (allow for\n"
8406 "                              additional fields in the future) */\n"
8407 "};\n"
8408 msgstr ""
8409 "struct signalfd_siginfo {\n"
8410 "struct signalfd_siginfo {\n"
8411 "    uint32_t ssi_signo;   /* シグナル番号 */\n"
8412 "    int32_t  ssi_errno;   /* エラー番号 (未使用) */\n"
8413 "    int32_t  ssi_code;    /* シグナルコード */\n"
8414 "    uint32_t ssi_pid;     /* 送信元の PID */\n"
8415 "    uint32_t ssi_uid;     /* 送信元の実 UID */\n"
8416 "    int32_t  ssi_fd;      /* ファイルディスクリプタ (SIGIO) */\n"
8417 "    uint32_t ssi_tid;     /* カーネルタイマ ID (POSIX タイマ)\n"
8418 "    uint32_t ssi_band;    /* Band イベント (SIGIO) */\n"
8419 "    uint32_t ssi_overrun; /* POSIX タイマのオーバーラン回数 */\n"
8420 "    uint32_t ssi_trapno;  /* シグナルの原因となったトラップ番号 */\n"
8421 "    int32_t  ssi_status;  /* 終了ステータスかシグナル (SIGCHLD) */\n"
8422 "    int32_t  ssi_int;     /* sigqueue(3) から送られた整数 */\n"
8423 "    uint64_t ssi_ptr;     /* sigqueue(3) から送られたポインタ */\n"
8424 "    uint64_t ssi_utime;   /* 消費したユーザ CPU 時間 (SIGCHLD) */\n"
8425 "    uint64_t ssi_stime;   /* 消費したシステム CPU 時間 (SIGCHLD) */\n"
8426 "    uint64_t ssi_addr;    /* シグナルを生成したアドレス\n"
8427 "                             (ハードウェアが生成したシグナルの場合) */\n"
8428 "    uint8_t  pad[I<X>];      /* pad の大きさは 128 バイト\n"
8429 "                             (将来のフィールド追加用の場所の確保) */\n"
8430 "};\n"
8431
8432 #. type: Plain text
8433 #: build/C/man2/signalfd.2:221
8434 msgid ""
8435 "Each of the fields in this structure is analogous to the similarly named "
8436 "field in the I<siginfo_t> structure.  The I<siginfo_t> structure is "
8437 "described in B<sigaction>(2).  Not all fields in the returned "
8438 "I<signalfd_siginfo> structure will be valid for a specific signal; the set "
8439 "of valid fields can be determined from the value returned in the I<ssi_code> "
8440 "field.  This field is the analog of the I<siginfo_t> I<si_code> field; see "
8441 "B<sigaction>(2)  for details."
8442 msgstr ""
8443 "I<signalfd_siginfo> 構造体の各フィールドは、 I<siginfo_t> 構造体の同じような"
8444 "名前のフィールドと同様である。 I<siginfo_t> 構造体については B<sigaction>"
8445 "(2)  に説明がある。 返された I<signalfd_siginfo> 構造体の全てのフィールドがあ"
8446 "るシグナルに対して有効なわけではない。 どのフィールドが有効かは、 "
8447 "I<ssi_code> フィールドで返される値から判定することができる。 このフィールド"
8448 "は I<siginfo_t> の I<si_code> フィールドと同様である。詳細は B<sigaction>"
8449 "(2)  を参照。"
8450
8451 #. type: SS
8452 #: build/C/man2/signalfd.2:221 build/C/man2/timerfd_create.2:269
8453 #, no-wrap
8454 msgid "fork(2) semantics"
8455 msgstr "fork(2) での扱い"
8456
8457 #. type: Plain text
8458 #: build/C/man2/signalfd.2:229
8459 msgid ""
8460 "After a B<fork>(2), the child inherits a copy of the signalfd file "
8461 "descriptor.  A B<read>(2)  from the file descriptor in the child will return "
8462 "information about signals queued to the child."
8463 msgstr ""
8464 "B<fork>(2)  が行われると、子プロセスは signalfd ファイルディスクリプタのコ"
8465 "ピーを 継承する。 子プロセスでこのファイルディスクリプタから B<read>(2)  を行"
8466 "うと、子プロセスに対するキューに入っているシグナルに関する 情報が返される。"
8467
8468 #. type: SS
8469 #: build/C/man2/signalfd.2:229 build/C/man2/timerfd_create.2:281
8470 #, no-wrap
8471 msgid "execve(2) semantics"
8472 msgstr "execve(2) での扱い"
8473
8474 #. type: Plain text
8475 #: build/C/man2/signalfd.2:241
8476 msgid ""
8477 "Just like any other file descriptor, a signalfd file descriptor remains open "
8478 "across an B<execve>(2), unless it has been marked for close-on-exec (see "
8479 "B<fcntl>(2)).  Any signals that were available for reading before the "
8480 "B<execve>(2)  remain available to the newly loaded program.  (This is "
8481 "analogous to traditional signal semantics, where a blocked signal that is "
8482 "pending remains pending across an B<execve>(2).)"
8483 msgstr ""
8484 "他のファイルディスクリプタと全く同様に、 signalfd ファイルディスクリプタも "
8485 "B<execve>(2)  の前後でオープンされたままとなる。但し、そのファイルディスクリ"
8486 "プタに close-on-exec のマーク (B<fcntl>(2)  参照) が付いている場合はクローズ"
8487 "される。 B<execve>(2)  の前に読み出し可能となっていた全てのシグナルは新しく起"
8488 "動されたプログラム でも引き続き読み出し可能である (これは伝統的なシグナルの扱"
8489 "いと同じであり、 処理待ちのブロックされたシグナルは B<execve>(2)  の前後で処"
8490 "理待ちのままとなる)。"
8491
8492 #. type: SS
8493 #: build/C/man2/signalfd.2:241
8494 #, no-wrap
8495 msgid "Thread semantics"
8496 msgstr "スレッドでの扱い"
8497
8498 #. type: Plain text
8499 #: build/C/man2/signalfd.2:251
8500 msgid ""
8501 "The semantics of signalfd file descriptors in a multithreaded program mirror "
8502 "the standard semantics for signals.  In other words, when a thread reads "
8503 "from a signalfd file descriptor, it will read the signals that are directed "
8504 "to the thread itself and the signals that are directed to the process (i.e., "
8505 "the entire thread group).  (A thread will not be able to read signals that "
8506 "are directed to other threads in the process.)"
8507 msgstr ""
8508 "マルチスレッドプログラムにおける signalfd ファイルディスクリプタの扱いは シグ"
8509 "ナルの標準的な扱いと全く同じである。 言い換えると、あるスレッドが signalfd "
8510 "ファイルディスクリプタから 読み出しを行うと、そのスレッド自身宛てのシグナルと"
8511 "プロセス (すなわち スレッドグループ全体) 宛てのシグナルが読み出される。 (ス"
8512 "レッドは同じプロセスの他のスレッド宛てのシグナルを読み出すことはできない。)"
8513
8514 #. type: Plain text
8515 #: build/C/man2/signalfd.2:265
8516 msgid ""
8517 "On success, B<signalfd>()  returns a signalfd file descriptor; this is "
8518 "either a new file descriptor (if I<fd> was -1), or I<fd> if I<fd> was a "
8519 "valid signalfd file descriptor.  On error, -1 is returned and I<errno> is "
8520 "set to indicate the error."
8521 msgstr ""
8522 "成功すると、 B<signalfd>()  は signalfd ファイルディスクリプタを返す。 返され"
8523 "るファイルディスクリプタは、 I<fd> が -1 の場合は新規のファイルディスクリプタ"
8524 "であり、 I<fd> が有効な signalfd ファイルディスクリプタだった場合は I<fd> 自"
8525 "身である。 エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
8526
8527 #. type: TP
8528 #: build/C/man2/signalfd.2:266 build/C/man2/timerfd_create.2:338
8529 #, no-wrap
8530 msgid "B<EBADF>"
8531 msgstr "B<EBADF>"
8532
8533 #. type: Plain text
8534 #: build/C/man2/signalfd.2:271
8535 msgid "The I<fd> file descriptor is not a valid file descriptor."
8536 msgstr "ファイルディスクリプタ I<fd> が有効なファイルディスクリプタでない。"
8537
8538 #.  or, the
8539 #.  .I sizemask
8540 #.  argument is not equal to
8541 #.  .IR sizeof(sigset_t) ;
8542 #. type: Plain text
8543 #: build/C/man2/signalfd.2:279
8544 msgid "I<fd> is not a valid signalfd file descriptor."
8545 msgstr "I<fd> が有効な signalfd ファイルディスクリプタではない。"
8546
8547 #. type: Plain text
8548 #: build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:320
8549 msgid ""
8550 "I<flags> is invalid; or, in Linux 2.6.26 or earlier, I<flags> is nonzero."
8551 msgstr ""
8552 "I<flags> が無効である。もしくは、Linux 2.6.26 以前の場合には I<flags> が 0 以"
8553 "外である。"
8554
8555 #. type: Plain text
8556 #: build/C/man2/signalfd.2:289 build/C/man2/timerfd_create.2:323
8557 msgid "The per-process limit of open file descriptors has been reached."
8558 msgstr ""
8559 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
8560
8561 #. type: Plain text
8562 #: build/C/man2/signalfd.2:299
8563 msgid "There was insufficient memory to create a new signalfd file descriptor."
8564 msgstr ""
8565 "新しい signalfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
8566
8567 #.  signalfd() is in glibc 2.7, but reportedly does not build
8568 #. type: Plain text
8569 #: build/C/man2/signalfd.2:307
8570 msgid ""
8571 "B<signalfd>()  is available on Linux since kernel 2.6.22.  Working support "
8572 "is provided in glibc since version 2.8.  The B<signalfd4>()  system call "
8573 "(see NOTES) is available on Linux since kernel 2.6.27."
8574 msgstr ""
8575 "B<signalfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
8576 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<signalfd4>()  "
8577 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
8578 "る。"
8579
8580 #. type: Plain text
8581 #: build/C/man2/signalfd.2:312
8582 msgid "B<signalfd>()  and B<signalfd4>()  are Linux-specific."
8583 msgstr "B<signalfd>()  と B<signalfd4>()  は Linux 固有である。"
8584
8585 #. type: Plain text
8586 #: build/C/man2/signalfd.2:322
8587 msgid ""
8588 "The underlying Linux system call requires an additional argument, I<size_t "
8589 "sizemask>, which specifies the size of the I<mask> argument.  The glibc "
8590 "B<signalfd>()  wrapper function does not include this argument, since it "
8591 "provides the required value for the underlying system call."
8592 msgstr ""
8593 "実際の Linux のシステムコールでは I<size_t sizemask> という引き数が追加で必要"
8594 "である。この引き数で I<mask> のサイズを指定する。 glibc の B<signalfd>()  "
8595 "ラッパー関数にはこの引き数は含まれず、 ラッパー関数が必要な値を計算して内部で"
8596 "呼び出すシステムコールに提供する。"
8597
8598 #. type: Plain text
8599 #: build/C/man2/signalfd.2:336
8600 msgid ""
8601 "A process can create multiple signalfd file descriptors.  This makes it "
8602 "possible to accept different signals on different file descriptors.  (This "
8603 "may be useful if monitoring the file descriptors using B<select>(2), B<poll>"
8604 "(2), or B<epoll>(7): the arrival of different signals will make different "
8605 "descriptors ready.)  If a signal appears in the I<mask> of more than one of "
8606 "the file descriptors, then occurrences of that signal can be read (once) "
8607 "from any one of the descriptors."
8608 msgstr ""
8609 "一つのプロセスは複数の signalfd ファイルディスクリプタを生成することができ"
8610 "る。 これにより、異なるファイルディスクリプタで異なるシグナルを受け取ること"
8611 "が できる (この機能は B<select>(2), B<poll>(2), B<epoll>(7)  を使ってファイル"
8612 "ディスクリプタを監視する場合に有用かもしれない。 異なるシグナルが到着すると、"
8613 "異なるファイルディスクリプタが利用可能に なるからだ)。 一つのシグナルが二つ以"
8614 "上のファイルディスクリプタの I<mask> に含まれている場合、そのシグナルの発生は"
8615 "そのシグナルを I<mask> に含むファイルディスクリプタのうちいずれか一つから読み"
8616 "出すことができる。"
8617
8618 #. type: Plain text
8619 #: build/C/man2/signalfd.2:352
8620 msgid ""
8621 "There are two underlying Linux system calls: B<signalfd>()  and the more "
8622 "recent B<signalfd4>().  The former system call does not implement a I<flags> "
8623 "argument.  The latter system call implements the I<flags> values described "
8624 "above.  Starting with glibc 2.9, the B<signalfd>()  wrapper function will "
8625 "use B<signalfd4>()  where it is available."
8626 msgstr ""
8627 "下層にある Linux システムコールは二種類あり、 B<signalfd>()  と、もっと新し"
8628 "い B<signalfd4>()  である。 B<signalfd>()  は I<flags> 引き数を実装していな"
8629 "い。 B<signalfd4>()  では上記の値の I<flags> が実装されている。 glibc 2.9 以"
8630 "降では、 B<signalfd>()  のラッパー関数は、 B<signalfd4>()  が利用可能であれ"
8631 "ば、これを使用する。"
8632
8633 #.  The fix also was put into 2.6.24.5
8634 #. type: Plain text
8635 #: build/C/man2/signalfd.2:360
8636 msgid ""
8637 "In kernels before 2.6.25, the I<ssi_ptr> and I<ssi_int> fields are not "
8638 "filled in with the data accompanying a signal sent by B<sigqueue>(3)."
8639 msgstr ""
8640 "カーネル 2.6.25 より前では、 B<sigqueue>(3)  により送信されたシグナルと一緒に"
8641 "渡されるデータでは、フィールド I<ssi_ptr> と I<ssi_int> は設定されない。"
8642
8643 #. type: Plain text
8644 #: build/C/man2/signalfd.2:370
8645 msgid ""
8646 "The program below accepts the signals B<SIGINT> and B<SIGQUIT> via a "
8647 "signalfd file descriptor.  The program terminates after accepting a "
8648 "B<SIGQUIT> signal.  The following shell session demonstrates the use of the "
8649 "program:"
8650 msgstr ""
8651 "下記のプログラムは、シグナル B<SIGINT> と B<SIGQUIT> を signalfd ファイルディ"
8652 "スクリプタ経由で受信する。 シグナル B<SIGQUIT> 受信後にプログラムは終了す"
8653 "る。 以下に示すシェルセッションにこのプログラムの使い方を示す。"
8654
8655 #. type: Plain text
8656 #: build/C/man2/signalfd.2:381
8657 #, no-wrap
8658 msgid ""
8659 "$B< ./signalfd_demo>\n"
8660 "B<^C>                   # Control-C generates SIGINT\n"
8661 "Got SIGINT\n"
8662 "B<^C>\n"
8663 "Got SIGINT\n"
8664 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
8665 "Got SIGQUIT\n"
8666 "$\n"
8667 msgstr ""
8668 "$B< ./signalfd_demo>\n"
8669 "B<^C>                   # Control-C generates SIGINT\n"
8670 "Got SIGINT\n"
8671 "B<^C>\n"
8672 "Got SIGINT\n"
8673 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
8674 "Got SIGQUIT\n"
8675 "$\n"
8676
8677 #. type: Plain text
8678 #: build/C/man2/signalfd.2:391
8679 #, no-wrap
8680 msgid ""
8681 "#include E<lt>sys/signalfd.hE<gt>\n"
8682 "#include E<lt>signal.hE<gt>\n"
8683 "#include E<lt>unistd.hE<gt>\n"
8684 "#include E<lt>stdlib.hE<gt>\n"
8685 "#include E<lt>stdio.hE<gt>\n"
8686 msgstr ""
8687 "#include E<lt>sys/signalfd.hE<gt>\n"
8688 "#include E<lt>signal.hE<gt>\n"
8689 "#include E<lt>unistd.hE<gt>\n"
8690 "#include E<lt>stdlib.hE<gt>\n"
8691 "#include E<lt>stdio.hE<gt>\n"
8692
8693 #. type: Plain text
8694 #: build/C/man2/signalfd.2:402
8695 #, no-wrap
8696 msgid ""
8697 "int\n"
8698 "main(int argc, char *argv[])\n"
8699 "{\n"
8700 "    sigset_t mask;\n"
8701 "    int sfd;\n"
8702 "    struct signalfd_siginfo fdsi;\n"
8703 "    ssize_t s;\n"
8704 msgstr ""
8705 "int\n"
8706 "main(int argc, char *argv[])\n"
8707 "{\n"
8708 "    sigset_t mask;\n"
8709 "    int sfd;\n"
8710 "    struct signalfd_siginfo fdsi;\n"
8711 "    ssize_t s;\n"
8712
8713 #. type: Plain text
8714 #: build/C/man2/signalfd.2:406
8715 #, no-wrap
8716 msgid ""
8717 "    sigemptyset(&mask);\n"
8718 "    sigaddset(&mask, SIGINT);\n"
8719 "    sigaddset(&mask, SIGQUIT);\n"
8720 msgstr ""
8721 "    sigemptyset(&mask);\n"
8722 "    sigaddset(&mask, SIGINT);\n"
8723 "    sigaddset(&mask, SIGQUIT);\n"
8724
8725 #. type: Plain text
8726 #: build/C/man2/signalfd.2:409
8727 #, no-wrap
8728 msgid ""
8729 "    /* Block signals so that they aren\\(aqt handled\n"
8730 "       according to their default dispositions */\n"
8731 msgstr ""
8732 "    /* Block signals so that they aren\\(aqt handled\n"
8733 "       according to their default dispositions */\n"
8734
8735 #. type: Plain text
8736 #: build/C/man2/signalfd.2:412
8737 #, no-wrap
8738 msgid ""
8739 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
8740 "        handle_error(\"sigprocmask\");\n"
8741 msgstr ""
8742 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
8743 "        handle_error(\"sigprocmask\");\n"
8744
8745 #. type: Plain text
8746 #: build/C/man2/signalfd.2:416
8747 #, no-wrap
8748 msgid ""
8749 "    sfd = signalfd(-1, &mask, 0);\n"
8750 "    if (sfd == -1)\n"
8751 "        handle_error(\"signalfd\");\n"
8752 msgstr ""
8753 "    sfd = signalfd(-1, &mask, 0);\n"
8754 "    if (sfd == -1)\n"
8755 "        handle_error(\"signalfd\");\n"
8756
8757 #. type: Plain text
8758 #: build/C/man2/signalfd.2:421
8759 #, no-wrap
8760 msgid ""
8761 "    for (;;) {\n"
8762 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
8763 "        if (s != sizeof(struct signalfd_siginfo))\n"
8764 "            handle_error(\"read\");\n"
8765 msgstr ""
8766 "    for (;;) {\n"
8767 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
8768 "        if (s != sizeof(struct signalfd_siginfo))\n"
8769 "            handle_error(\"read\");\n"
8770
8771 #. type: Plain text
8772 #: build/C/man2/signalfd.2:432
8773 #, no-wrap
8774 msgid ""
8775 "        if (fdsi.ssi_signo == SIGINT) {\n"
8776 "            printf(\"Got SIGINT\\en\");\n"
8777 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
8778 "            printf(\"Got SIGQUIT\\en\");\n"
8779 "            exit(EXIT_SUCCESS);\n"
8780 "        } else {\n"
8781 "            printf(\"Read unexpected signal\\en\");\n"
8782 "        }\n"
8783 "    }\n"
8784 "}\n"
8785 msgstr ""
8786 "        if (fdsi.ssi_signo == SIGINT) {\n"
8787 "            printf(\"Got SIGINT\\en\");\n"
8788 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
8789 "            printf(\"Got SIGQUIT\\en\");\n"
8790 "            exit(EXIT_SUCCESS);\n"
8791 "        } else {\n"
8792 "            printf(\"Read unexpected signal\\en\");\n"
8793 "        }\n"
8794 "    }\n"
8795 "}\n"
8796
8797 #. type: Plain text
8798 #: build/C/man2/signalfd.2:446
8799 msgid ""
8800 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
8801 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
8802 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
8803 msgstr ""
8804 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
8805 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
8806 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
8807
8808 #. type: TH
8809 #: build/C/man3/sigpause.3:25
8810 #, no-wrap
8811 msgid "SIGPAUSE"
8812 msgstr "SIGPAUSE"
8813
8814 #. type: TH
8815 #: build/C/man3/sigpause.3:25
8816 #, no-wrap
8817 msgid "2010-09-12"
8818 msgstr "2010-09-12"
8819
8820 #. type: Plain text
8821 #: build/C/man3/sigpause.3:28
8822 msgid "sigpause - atomically release blocked signals and wait for interrupt"
8823 msgstr "sigpause - ブロックされたシグナルをアトミックに解放して割り込みを待つ"
8824
8825 #. type: Plain text
8826 #: build/C/man3/sigpause.3:33
8827 #, no-wrap
8828 msgid "B<int sigpause(int >I<sigmask>B<);  /* BSD */>\n"
8829 msgstr "B<int sigpause(int >I<sigmask>B<);  /* BSD */>\n"
8830
8831 #. type: Plain text
8832 #: build/C/man3/sigpause.3:35
8833 #, no-wrap
8834 msgid "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
8835 msgstr "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
8836
8837 #. type: Plain text
8838 #: build/C/man3/sigpause.3:41
8839 msgid "Don't use this function.  Use B<sigsuspend>(2)  instead."
8840 msgstr "この関数を使わないこと。 代わりに B<sigsuspend>(2)  を使うこと。"
8841
8842 #. type: Plain text
8843 #: build/C/man3/sigpause.3:48
8844 msgid ""
8845 "The function B<sigpause>()  is designed to wait for some signal.  It changes "
8846 "the process's signal mask (set of blocked signals), and then waits for a "
8847 "signal to arrive.  Upon arrival of a signal, the original signal mask is "
8848 "restored."
8849 msgstr ""
8850 "関数 B<sigpause>()  はシグナルを待つように設計されている。 この関数はプロセス"
8851 "のシグナルマスク (ブロックされたシグナルのセット) を変更し、 シグナルが到着す"
8852 "るのを待つ。 シグナルが到着すると、シグナルマスクは元に戻される。"
8853
8854 #. type: Plain text
8855 #: build/C/man3/sigpause.3:56
8856 msgid ""
8857 "If B<sigpause>()  returns, it was interrupted by a signal and the return "
8858 "value is -1 with I<errno> set to B<EINTR>."
8859 msgstr ""
8860 "B<sigpause>()  が返った場合、この関数はシグナルによって割り込まれている。 返"
8861 "り値は -1 で、 I<errno> は B<EINTR> に設定される。"
8862
8863 #. type: Plain text
8864 #: build/C/man3/sigpause.3:60
8865 msgid "The System V version of B<sigpause>()  is standardized in POSIX.1-2001."
8866 msgstr "System V 版の B<sigpause>()  は POSIX.1-2001 で標準化されている。"
8867
8868 #.  __xpg_sigpause: UNIX 95, spec 1170, SVID, SVr4, XPG
8869 #. type: Plain text
8870 #: build/C/man3/sigpause.3:77
8871 #, fuzzy
8872 #| msgid ""
8873 #| "The classical BSD version of this function appeared in 4.2BSD.  It sets "
8874 #| "the process's signal mask to I<sigmask>.  UNIX 95 standardized the "
8875 #| "incompatible System V version of this function, which removes only the "
8876 #| "specified signal I<sig> from the process's signal mask.  The unfortunate "
8877 #| "situation with two incompatible functions with the same name was solved "
8878 #| "by the B<\\%sigsuspend>(2)  function, that takes a I<sigset_t *> argument "
8879 #| "(instead of an I<int>)."
8880 msgid ""
8881 "The classical BSD version of this function appeared in 4.2BSD.  It sets the "
8882 "process's signal mask to I<sigmask>.  UNIX 95 standardized the incompatible "
8883 "System V version of this function, which removes only the specified signal "
8884 "I<sig> from the process's signal mask.  The unfortunate situation with two "
8885 "incompatible functions with the same name was solved by the B<\\%sigsuspend>"
8886 "(2)  function, that takes a I<sigset_t\\ *> argument (instead of an I<int>)."
8887 msgstr ""
8888 "この関数の古典的な BSD 版は 4.2BSD で登場した。 この関数はプロセスのシグナル"
8889 "マスクを I<sigmask> に設定する。 UNIX 95 では BSD 版と互換性のない System V "
8890 "版のこの関数が標準化された。 UNIX 95 版は、指定されたシグナル I<sig> をプロセ"
8891 "スのシグナルマスクから削除するだけである。 同じ名前で互換性のない 2 つの関数"
8892 "があるという不幸な事態は、 B<\\%sigsuspend>(2)  関数によって解消された。 この"
8893 "関数は (I<int> の代わりに)  B<sigset_t *> 引き数をとる。"
8894
8895 #. type: Plain text
8896 #: build/C/man3/sigpause.3:80
8897 msgid ""
8898 "On Linux, this routine is a system call only on the Sparc (sparc64)  "
8899 "architecture."
8900 msgstr ""
8901 "Linux では、このルーチンは Sparc (sparc64) アーキテクチャでのみ システムコー"
8902 "ルとなっている。"
8903
8904 #. type: Plain text
8905 #: build/C/man3/sigpause.3:82
8906 msgid "Libc4 and libc5 know only about the BSD version."
8907 msgstr "libc4 と libc5 には BSD 版しかない。"
8908
8909 #.  For the BSD version, one usually uses a zero
8910 #.  .I sigmask
8911 #.  to indicate that no signals are to be blocked.
8912 #. type: Plain text
8913 #: build/C/man3/sigpause.3:98
8914 msgid ""
8915 "Glibc uses the BSD version if the B<_BSD_SOURCE> feature test macro is "
8916 "defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
8917 "B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined.  Otherwise, the System V "
8918 "version is used."
8919 msgstr ""
8920 "機能検査マクロ B<_BSD_SOURCE> が定義され、 B<_POSIX_SOURCE>, "
8921 "B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, B<_GNU_SOURCE>, B<_SVID_SOURCE> のいず"
8922 "れも定義されていない場合、 glibc は BSD 版を使う。 それ以外の場合には、"
8923 "System V 版を使用する。"
8924
8925 #. type: Plain text
8926 #: build/C/man3/sigpause.3:106
8927 msgid ""
8928 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigblock>"
8929 "(3), B<sigvec>(3), B<feature_test_macros>(7)"
8930 msgstr ""
8931 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigblock>"
8932 "(3), B<sigvec>(3), B<feature_test_macros>(7)"
8933
8934 #. type: TH
8935 #: build/C/man2/sigpending.2:29
8936 #, no-wrap
8937 msgid "SIGPENDING"
8938 msgstr "SIGPENDING"
8939
8940 #. type: Plain text
8941 #: build/C/man2/sigpending.2:32
8942 msgid "sigpending - examine pending signals"
8943 msgstr "sigpending - 処理待ちのシグナルの検査"
8944
8945 #. type: Plain text
8946 #: build/C/man2/sigpending.2:36
8947 msgid "B<int sigpending(sigset_t *>I<set>B<);>"
8948 msgstr "B<int sigpending(sigset_t *>I<set>B<);>"
8949
8950 #. type: Plain text
8951 #: build/C/man2/sigpending.2:45
8952 msgid ""
8953 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
8954 "_POSIX_SOURCE"
8955 msgstr ""
8956 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
8957 "_POSIX_SOURCE"
8958
8959 #. type: Plain text
8960 #: build/C/man2/sigpending.2:53
8961 msgid ""
8962 "B<sigpending>()  returns the set of signals that are pending for delivery to "
8963 "the calling thread (i.e., the signals which have been raised while "
8964 "blocked).  The mask of pending signals is returned in I<set>."
8965 msgstr ""
8966 "B<sigpending>()  は、呼び出し元のスレッドへの配送を待っている (pending) シグ"
8967 "ナル集合 (すなわち、禁止中に発生したシグナル) を返す。 処理待ちのシグナルのマ"
8968 "スクが I<set> に格納される。"
8969
8970 #. type: Plain text
8971 #: build/C/man2/sigpending.2:59
8972 #, fuzzy
8973 #| msgid ""
8974 #| "B<sigaltstack>()  returns 0 on success, or -1 on failure with I<errno> "
8975 #| "set to indicate the error."
8976 msgid ""
8977 "B<sigpending>()  returns 0 on success and -1 on error.  In the event of an "
8978 "error, I<errno> is set to indicate the cause."
8979 msgstr ""
8980 "B<sigaltstack>()  は成功した場合 0 を返す。 失敗した場合は -1 を返して、 エ"
8981 "ラーを示す値に I<errno> を設定する。"
8982
8983 #. type: Plain text
8984 #: build/C/man2/sigpending.2:64
8985 msgid ""
8986 "I<set> points to memory which is not a valid part of the process address "
8987 "space."
8988 msgstr ""
8989 "I<set> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
8990
8991 #. type: Plain text
8992 #: build/C/man2/sigpending.2:75
8993 msgid ""
8994 "The set of signals that is pending for a thread is the union of the set of "
8995 "signals that is pending for that thread and the set of signals that is "
8996 "pending for the process as a whole; see B<signal>(7)."
8997 msgstr ""
8998 "あるスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体への処理待ち"
8999 "のシグナル集合と、プロセス全体への処理待ちの シグナル集合をあわせたものであ"
9000 "る。 B<signal>(7)  参照。"
9001
9002 #. type: Plain text
9003 #: build/C/man2/sigpending.2:87
9004 msgid ""
9005 "In versions of glibc up to and including 2.2.1, there is a bug in the "
9006 "wrapper function for B<sigpending>()  which means that information about "
9007 "pending real-time signals is not correctly returned."
9008 msgstr ""
9009 "バージョン 2.2.1 以前の glibc では、 B<sigpending>()  のラッパー関数に、処理"
9010 "待ちのリアルタイムシグナルに関する情報が 正しく返されないというバグがある。"
9011
9012 #. type: Plain text
9013 #: build/C/man2/sigpending.2:95
9014 msgid ""
9015 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), B<sigsuspend>"
9016 "(2), B<sigsetops>(3), B<signal>(7)"
9017 msgstr ""
9018 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), B<sigsuspend>"
9019 "(2), B<sigsetops>(3), B<signal>(7)"
9020
9021 #. type: TH
9022 #: build/C/man2/sigprocmask.2:29
9023 #, no-wrap
9024 msgid "SIGPROCMASK"
9025 msgstr "SIGPROCMASK"
9026
9027 #. type: Plain text
9028 #: build/C/man2/sigprocmask.2:32
9029 msgid "sigprocmask - examine and change blocked signals"
9030 msgstr "sigprocmask - 禁止するシグナルの確認と変更"
9031
9032 #. type: Plain text
9033 #: build/C/man2/sigprocmask.2:37
9034 msgid ""
9035 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9036 "*>I<oldset>B<);>"
9037 msgstr ""
9038 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9039 "*>I<oldset>B<);>"
9040
9041 #. type: Plain text
9042 #: build/C/man2/sigprocmask.2:46
9043 msgid ""
9044 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9045 "_POSIX_SOURCE"
9046 msgstr ""
9047 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9048 "_POSIX_SOURCE"
9049
9050 #. type: Plain text
9051 #: build/C/man2/sigprocmask.2:55
9052 msgid ""
9053 "B<sigprocmask>()  is used to fetch and/or change the signal mask of the "
9054 "calling thread.  The signal mask is the set of signals whose delivery is "
9055 "currently blocked for the caller (see also B<signal>(7)  for more details)."
9056 msgstr ""
9057 "B<sigprocmask>()  を使うと、呼び出したスレッドのシグナルマスクの取得/変更がで"
9058 "きる。 シグナルマスクは、呼び出し元に対して現在配送が禁止されているシグナル"
9059 "の 集合のことである (詳細については B<signal>(7)  も参照のこと)。"
9060
9061 #. type: Plain text
9062 #: build/C/man2/sigprocmask.2:59
9063 msgid ""
9064 "The behavior of the call is dependent on the value of I<how>, as follows."
9065 msgstr "このコールの動作は I<how> の値によって決まる:"
9066
9067 #. type: TP
9068 #: build/C/man2/sigprocmask.2:59
9069 #, no-wrap
9070 msgid "B<SIG_BLOCK>"
9071 msgstr "B<SIG_BLOCK>"
9072
9073 #. type: Plain text
9074 #: build/C/man2/sigprocmask.2:64
9075 msgid ""
9076 "The set of blocked signals is the union of the current set and the I<set> "
9077 "argument."
9078 msgstr ""
9079 "禁止されたシグナルの集合は現在の値と I<set> 引き数を結合したものとなる。"
9080
9081 #. type: TP
9082 #: build/C/man2/sigprocmask.2:64
9083 #, no-wrap
9084 msgid "B<SIG_UNBLOCK>"
9085 msgstr "B<SIG_UNBLOCK>"
9086
9087 #. type: Plain text
9088 #: build/C/man2/sigprocmask.2:70
9089 msgid ""
9090 "The signals in I<set> are removed from the current set of blocked signals.  "
9091 "It is permissible to attempt to unblock a signal which is not blocked."
9092 msgstr ""
9093 "現在禁止されているシグナルの集合から I<set> にあるシグナルを取り除く。禁止さ"
9094 "れていないシグナルを取り除こうと することも認められている。"
9095
9096 #. type: TP
9097 #: build/C/man2/sigprocmask.2:70
9098 #, no-wrap
9099 msgid "B<SIG_SETMASK>"
9100 msgstr "B<SIG_SETMASK>"
9101
9102 #. type: Plain text
9103 #: build/C/man2/sigprocmask.2:74
9104 msgid "The set of blocked signals is set to the argument I<set>."
9105 msgstr "禁止されているシグナルの集合に I<set> 引き数を設定する。"
9106
9107 #. type: Plain text
9108 #: build/C/man2/sigprocmask.2:79
9109 msgid ""
9110 "If I<oldset> is non-NULL, the previous value of the signal mask is stored in "
9111 "I<oldset>."
9112 msgstr ""
9113 "I<oldset> が NULL でなければ、シグナルマスクの今までの値を I<oldset> に格納す"
9114 "る。"
9115
9116 #. type: Plain text
9117 #: build/C/man2/sigprocmask.2:88
9118 msgid ""
9119 "If I<set> is NULL, then the signal mask is unchanged (i.e., I<how> is "
9120 "ignored), but the current value of the signal mask is nevertheless returned "
9121 "in I<oldset> (if it is not NULL)."
9122 msgstr ""
9123 "I<set> が NULL であれば、シグナルマスクは変更されない (すなわち、 I<how> は無"
9124 "視される)。 I<set> の値にかかわらず、現在のシグナルマスクの値は I<oldset> に"
9125 "入れて返される (但し、 I<oldset> が NULL でない場合)。"
9126
9127 #. type: Plain text
9128 #: build/C/man2/sigprocmask.2:93
9129 msgid ""
9130 "The use of B<sigprocmask>()  is unspecified in a multithreaded process; see "
9131 "B<pthread_sigmask>(3)."
9132 msgstr ""
9133 "マルチスレッドのプロセスで B<sigprocmask>()  を使用した場合の動作は規定されて"
9134 "いない。 B<pthread_sigmask>(3)  を参照のこと。"
9135
9136 #. type: Plain text
9137 #: build/C/man2/sigprocmask.2:99
9138 #, fuzzy
9139 #| msgid ""
9140 #| "B<sigaltstack>()  returns 0 on success, or -1 on failure with I<errno> "
9141 #| "set to indicate the error."
9142 msgid ""
9143 "B<sigprocmask>()  returns 0 on success and -1 on error.  In the event of an "
9144 "error, I<errno> is set to indicate the cause."
9145 msgstr ""
9146 "B<sigaltstack>()  は成功した場合 0 を返す。 失敗した場合は -1 を返して、 エ"
9147 "ラーを示す値に I<errno> を設定する。"
9148
9149 #. type: Plain text
9150 #: build/C/man2/sigprocmask.2:107
9151 msgid ""
9152 "the I<set> or I<oldset> argument points outside the process's allocated "
9153 "address space."
9154 msgstr ""
9155 "引き数 I<set> か I<oldset> がプロセスに割り当てられた\n"
9156 "アドレス空間の外を指している。"
9157
9158 #. type: Plain text
9159 #: build/C/man2/sigprocmask.2:112
9160 msgid "The value specified in I<how> was invalid."
9161 msgstr "I<how> に指定された値が有効ではない。"
9162
9163 #. type: Plain text
9164 #: build/C/man2/sigprocmask.2:118
9165 msgid ""
9166 "It is not possible to block B<SIGKILL> or B<SIGSTOP>.  Attempts to do so are "
9167 "silently ignored."
9168 msgstr ""
9169 "B<SIGKILL> や B<SIGSTOP> を禁止することはできない。 禁止しようとしても黙って"
9170 "無視される。"
9171
9172 #. type: Plain text
9173 #: build/C/man2/sigprocmask.2:120
9174 msgid "Each of the threads in a process has its own signal mask."
9175 msgstr "プロセス内の各スレッドはそれぞれ専用のシグナルマスクを持つ。"
9176
9177 #. type: Plain text
9178 #: build/C/man2/sigprocmask.2:140
9179 msgid ""
9180 "If B<SIGBUS>, B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> are generated while they "
9181 "are blocked, the result is undefined, unless the signal was generated by "
9182 "B<kill>(2), B<sigqueue>(3), or B<raise>(3)."
9183 msgstr ""
9184 "シグナル B<SIGBUS>, B<SIGFPE>, B<SIGILL>, B<SIGSEGV> が禁止されている間に生成"
9185 "された場合で、 そのシグナルが B<kill>(2), B<sigqueue>(3), B<raise>(3)  によっ"
9186 "て生成されたものでないときには、 その後の動作は未定義である。"
9187
9188 #. type: Plain text
9189 #: build/C/man2/sigprocmask.2:155
9190 msgid ""
9191 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9192 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9193 "B<signal>(7)"
9194 msgstr ""
9195 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9196 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9197 "B<signal>(7)"
9198
9199 #. type: TH
9200 #: build/C/man3/sigqueue.3:28
9201 #, no-wrap
9202 msgid "SIGQUEUE"
9203 msgstr "SIGQUEUE"
9204
9205 #. type: TH
9206 #: build/C/man3/sigqueue.3:28
9207 #, no-wrap
9208 msgid "2012-03-25"
9209 msgstr "2012-03-25"
9210
9211 #. type: Plain text
9212 #: build/C/man3/sigqueue.3:31
9213 msgid "sigqueue - queue a signal and data to a process"
9214 msgstr "sigqueue - シグナルとデータをプロセスに送る"
9215
9216 #. type: Plain text
9217 #: build/C/man3/sigqueue.3:35
9218 msgid ""
9219 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9220 ">I<value>B<);>"
9221 msgstr ""
9222 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9223 ">I<value>B<);>"
9224
9225 #. type: Plain text
9226 #: build/C/man3/sigqueue.3:43
9227 msgid "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9228 msgstr "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9229
9230 #. type: Plain text
9231 #: build/C/man3/sigqueue.3:55
9232 msgid ""
9233 "B<sigqueue>()  sends the signal specified in I<sig> to the process whose PID "
9234 "is given in I<pid>.  The permissions required to send a signal are the same "
9235 "as for B<kill>(2).  As with B<kill>(2), the null signal (0) can be used to "
9236 "check if a process with a given PID exists."
9237 msgstr ""
9238 "B<sigqueue>()  は I<sig> で指定されたシグナルを、PID が I<pid> であるプロセス"
9239 "に送る。 シグナルを送るのに必要な権限は B<kill>(2)  と同じである。 B<kill>"
9240 "(2)  と同様に、ヌル・シグナル (0) を使って 指定した PID のプロセスが存在する"
9241 "かをチェックすることができる。"
9242
9243 #. type: Plain text
9244 #: build/C/man3/sigqueue.3:60
9245 msgid ""
9246 "The I<value> argument is used to specify an accompanying item of data "
9247 "(either an integer or a pointer value) to be sent with the signal, and has "
9248 "the following type:"
9249 msgstr ""
9250 "I<value> 引き数はシグナルと一緒に送るデータの付属アイテムを指定する。 "
9251 "I<value> は (整数またはポインタの値であり) 以下のような型である。"
9252
9253 #. type: Plain text
9254 #: build/C/man3/sigqueue.3:67
9255 #, no-wrap
9256 msgid ""
9257 "union sigval {\n"
9258 "    int   sival_int;\n"
9259 "    void *sival_ptr;\n"
9260 "};\n"
9261 msgstr ""
9262 "union sigval {\n"
9263 "    int   sival_int;\n"
9264 "    void *sival_ptr;\n"
9265 "};\n"
9266
9267 #. type: Plain text
9268 #: build/C/man3/sigqueue.3:83
9269 msgid ""
9270 "If the receiving process has installed a handler for this signal using the "
9271 "B<SA_SIGINFO> flag to B<sigaction>(2), then it can obtain this data via the "
9272 "I<si_value> field of the I<siginfo_t> structure passed as the second "
9273 "argument to the handler.  Furthermore, the I<si_code> field of that "
9274 "structure will be set to B<SI_QUEUE>."
9275 msgstr ""
9276 "受取先のプロセスに、このシグナルに対するハンドラを (B<sigaction>(2)  に "
9277 "B<SA_SIGINFO> を指定して) インストールしておくと、 そのハンドラの第 2 引き数"
9278 "に渡される I<siginfo_t> 構造体の I<si_value> フィールドによって、このデータを"
9279 "取得できる。 さらに、この構造体の I<si_code> フィールドは B<SI_QUEUE> に設定"
9280 "される。"
9281
9282 #. type: Plain text
9283 #: build/C/man3/sigqueue.3:91
9284 msgid ""
9285 "On success, B<sigqueue>()  returns 0, indicating that the signal was "
9286 "successfully queued to the receiving process.  Otherwise -1 is returned and "
9287 "I<errno> is set to indicate the error."
9288 msgstr ""
9289 "成功した場合、 B<sigqueue>()  は 0 を返す。 これは受け取り側プロセスの待ち行"
9290 "列に シグナルが正しく入れられたことを示す。 失敗した場合は -1 が返され、 "
9291 "I<errno> がエラーを表す値に設定される。"
9292
9293 #. type: Plain text
9294 #: build/C/man3/sigqueue.3:102
9295 msgid "I<sig> was invalid."
9296 msgstr "I<sig> が不正である。"
9297
9298 #. type: Plain text
9299 #: build/C/man3/sigqueue.3:108
9300 msgid ""
9301 "The process does not have permission to send the signal to the receiving "
9302 "process.  For the required permissions, see B<kill>(2)."
9303 msgstr ""
9304 "このプロセスには、受け取り側プロセスにシグナルを送る権限がない。 必要な権限に"
9305 "ついては、 B<kill>(2)  を参照すること。"
9306
9307 #. type: Plain text
9308 #: build/C/man3/sigqueue.3:112
9309 msgid "No process has a PID matching I<pid>."
9310 msgstr "I<pid> にマッチする PID のプロセスがない。"
9311
9312 #. type: Plain text
9313 #: build/C/man3/sigqueue.3:114
9314 msgid "This system call first appeared in Linux 2.2."
9315 msgstr "このシステムコールは Linux 2.2 で初めて登場した。"
9316
9317 #. type: Plain text
9318 #: build/C/man3/sigqueue.3:124
9319 msgid ""
9320 "If this function results in the sending of a signal to the process that "
9321 "invoked it, and that signal was not blocked by the calling thread, and no "
9322 "other threads were willing to handle this signal (either by having it "
9323 "unblocked, or by waiting for it using B<sigwait>(3)), then at least some "
9324 "signal must be delivered to this thread before this function returns."
9325 msgstr ""
9326 "この関数を呼び出したプロセスにこの関数がシグナルを送ったときに、 シグナルが呼"
9327 "び出し側スレッドにブロックされず、 かつ (シグナルがブロックされなかった、また"
9328 "は B<sigwait>(3)  を使用するのを待っていることにより)  このシグナルを扱うス"
9329 "レッドが何もない場合は、 この関数がリターンする前に、少なくとも そのスレッド"
9330 "に対してシグナルが配送されていなければならない。"
9331
9332 #. type: Plain text
9333 #: build/C/man3/sigqueue.3:139
9334 msgid ""
9335 "On Linux, this function is implemented using the B<rt_sigqueueinfo>(2)  "
9336 "system call.  The system call differs in its third argument, which is the "
9337 "I<siginfo_t> structure that will be supplied to the receiving process's "
9338 "signal handler or returned by the receiving process's B<sigtimedwait>(2)  "
9339 "call.  Inside the glibc B<sigqueue>()  wrapper, this argument, I<uinfo>, is "
9340 "initialized as follows:"
9341 msgstr ""
9342 "Linux では、この関数は B<rt_sigqueueinfo>(2)  システムコールを使って実装され"
9343 "ている。 両者には 3 番目の引き数に違いがあり、 B<rt_sigqueueinfo>(2)  では 3 "
9344 "番目の引き数は I<siginfo_t> 構造体である。 I<siginfo_t> 構造体は、シグナルを"
9345 "受信するプロセスのシグナルハンドラに渡されたり、 シグナル受信プロセスの "
9346 "B<sigtimedwait>(2)  システムコールから返されたりする。 glibc の B<sigqueue>"
9347 "()  ラッパー関数内部では、 この引き数 I<uinfo> は以下のように初期化される。"
9348
9349 #. type: Plain text
9350 #: build/C/man3/sigqueue.3:147
9351 #, no-wrap
9352 msgid ""
9353 "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9354 "uinfo.si_code = SI_QUEUE;\n"
9355 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9356 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9357 "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9358 msgstr ""
9359 "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9360 "uinfo.si_code = SI_QUEUE;\n"
9361 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9362 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9363 "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9364
9365 #. type: Plain text
9366 #: build/C/man3/sigqueue.3:157
9367 msgid ""
9368 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9369 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9370 msgstr ""
9371 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9372 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9373
9374 #. type: TH
9375 #: build/C/man2/sigreturn.2:29
9376 #, no-wrap
9377 msgid "SIGRETURN"
9378 msgstr "SIGRETURN"
9379
9380 #. type: TH
9381 #: build/C/man2/sigreturn.2:29
9382 #, no-wrap
9383 msgid "2008-06-26"
9384 msgstr "2008-06-26"
9385
9386 #. type: Plain text
9387 #: build/C/man2/sigreturn.2:32
9388 msgid "sigreturn - return from signal handler and cleanup stack frame"
9389 msgstr "sigreturn - シグナル・ハンドラから返り、スタックを掃除する"
9390
9391 #. type: Plain text
9392 #: build/C/man2/sigreturn.2:34
9393 msgid "B<int sigreturn(unsigned long >I<__unused>B<);>"
9394 msgstr "B<int sigreturn(unsigned long >I<__unused>B<);>"
9395
9396 #. type: Plain text
9397 #: build/C/man2/sigreturn.2:42
9398 msgid ""
9399 "When the Linux kernel creates the stack frame for a signal handler, a call "
9400 "to B<sigreturn>()  is inserted into the stack frame so that upon return from "
9401 "the signal handler, B<sigreturn>()  will be called."
9402 msgstr ""
9403 "Linux カーネルは、 シグナル・ハンドラ用にスタック・フレームを作成する際、 "
9404 "B<sigreturn>()  をスタック・フレームに挿入し、シグナル・ハンドラが返るときに "
9405 "B<sigreturn>()  が呼ばれるようにする。"
9406
9407 #. type: Plain text
9408 #: build/C/man2/sigreturn.2:53
9409 msgid ""
9410 "This B<sigreturn>()  call undoes everything that was done\\(emchanging the "
9411 "process's signal mask, switching stacks (see B<sigaltstack>(2))\\(emin order "
9412 "to invoke the signal handler: it restores the process's signal mask, "
9413 "switches stacks, and restores the process's context (registers, processor "
9414 "flags), so that the process directly resumes execution at the point where it "
9415 "was interrupted by the signal."
9416 msgstr ""
9417 "B<sigreturn>()  は、シグナル・ハンドラを起動するために行ったことの全て \\(em "
9418 "プロセスのシグナルマスクの変更、スタックの切り替え (B<sigaltstack>(2)  参照) "
9419 "\\(em の取り消しを行う。 プロセスのシグナルマスクの復元、スタックの切り替"
9420 "え、 プロセスのコンテキスト (レジスタ、プロセッサ・フラグ) の復元を行い、 プ"
9421 "ロセスがシグナルにより割り込まれた場所からそのまま実行を 再開できるようにす"
9422 "る。"
9423
9424 #. type: Plain text
9425 #: build/C/man2/sigreturn.2:56
9426 msgid "B<sigreturn>()  never returns."
9427 msgstr "B<sigreturn>()  が返ることはない。"
9428
9429 #. type: SH
9430 #: build/C/man2/sigreturn.2:56
9431 #, no-wrap
9432 msgid "FILES"
9433 msgstr "ファイル"
9434
9435 #. type: Plain text
9436 #: build/C/man2/sigreturn.2:58
9437 msgid "/usr/src/linux/arch/i386/kernel/signal.c"
9438 msgstr "/usr/src/linux/arch/i386/kernel/signal.c"
9439
9440 #. type: Plain text
9441 #: build/C/man2/sigreturn.2:60
9442 msgid "/usr/src/linux/arch/alpha/kernel/entry.S"
9443 msgstr "/usr/src/linux/arch/alpha/kernel/entry.S"
9444
9445 #. type: Plain text
9446 #: build/C/man2/sigreturn.2:64
9447 msgid ""
9448 "B<sigreturn>()  is specific to Linux and should not be used in programs "
9449 "intended to be portable."
9450 msgstr ""
9451 "B<sigreturn>()  は Linux 特有であり、移植を意図したプログラムでは使用してはい"
9452 "けない。"
9453
9454 #. type: Plain text
9455 #: build/C/man2/sigreturn.2:74
9456 msgid ""
9457 "The B<sigreturn>()  call is used by the kernel to implement signal "
9458 "handlers.  It should B<never> be called directly.  Better yet, the specific "
9459 "use of the I<__unused> argument varies depending on the architecture."
9460 msgstr ""
9461 "B<sigreturn>()  コールは、シグナル・ハンドラを実装するためにカーネルにより使"
9462 "用される。 これを直接呼び出しては B<決して> いけない。さらに I<__unused> 引き"
9463 "数がどのように使われるかはそのアーキテクチャに依存して変化する。"
9464
9465 #. type: Plain text
9466 #: build/C/man2/sigreturn.2:79
9467 msgid "B<kill>(2), B<sigaltstack>(2), B<signal>(2), B<signal>(7)"
9468 msgstr "B<kill>(2), B<sigaltstack>(2), B<signal>(2), B<signal>(7)"
9469
9470 #. type: TH
9471 #: build/C/man3/sigset.3:26
9472 #, no-wrap
9473 msgid "SIGSET"
9474 msgstr "SIGSET"
9475
9476 #. type: Plain text
9477 #: build/C/man3/sigset.3:29
9478 msgid "sigset, sighold, sigrelse, sigignore - System V signal API"
9479 msgstr "sigset, sighold, sigrelse, sigignore - System V 版シグナル API"
9480
9481 #. type: Plain text
9482 #: build/C/man3/sigset.3:35
9483 msgid "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
9484 msgstr "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
9485
9486 #. type: Plain text
9487 #: build/C/man3/sigset.3:37
9488 msgid "B<int sighold(int >I<sig>B<);>"
9489 msgstr "B<int sighold(int >I<sig>B<);>"
9490
9491 #. type: Plain text
9492 #: build/C/man3/sigset.3:39
9493 msgid "B<int sigrelse(int >I<sig>B<);>"
9494 msgstr "B<int sigrelse(int >I<sig>B<);>"
9495
9496 #. type: Plain text
9497 #: build/C/man3/sigset.3:41
9498 msgid "B<int sigignore(int >I<sig>B<);>"
9499 msgstr "B<int sigignore(int >I<sig>B<);>"
9500
9501 #. type: Plain text
9502 #: build/C/man3/sigset.3:52
9503 msgid "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
9504 msgstr "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
9505
9506 #. type: Plain text
9507 #: build/C/man3/sigset.3:56
9508 msgid ""
9509 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
9510 msgstr ""
9511 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
9512
9513 #. type: Plain text
9514 #: build/C/man3/sigset.3:65
9515 msgid ""
9516 "These functions are provided in glibc as a compatibility interface for "
9517 "programs that make use of the historical System V signal API.  This API is "
9518 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
9519 "B<sigprocmask>(2), etc.)"
9520 msgstr ""
9521 "これらの関数は、昔ながらの System V 版シグナル API を使用しているプログラム "
9522 "に対して互換性のあるインタフェースを glibc で提供するものである。 この API は"
9523 "過去のものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>"
9524 "(2), B<sigprocmask>(2)  など) を使用すべきである。"
9525
9526 #. type: Plain text
9527 #: build/C/man3/sigset.3:74
9528 msgid ""
9529 "The B<sigset>()  function modifies the disposition of the signal I<sig>.  "
9530 "The I<disp> argument can be the address of a signal handler function, or one "
9531 "of the following constants:"
9532 msgstr ""
9533 "関数 B<sigset>()  はシグナル I<sig> のシグナルハンドラの動作を変更する。 "
9534 "I<disp> 引き数には、シグナルハンドラ関数のアドレスか、 以下の定数のいずれか一"
9535 "つを指定できる。"
9536
9537 #. type: TP
9538 #: build/C/man3/sigset.3:74
9539 #, no-wrap
9540 msgid "B<SIG_DFL>"
9541 msgstr "B<SIG_DFL>"
9542
9543 #. type: Plain text
9544 #: build/C/man3/sigset.3:79
9545 msgid "Reset the disposition of I<sig> to the default."
9546 msgstr "I<sig> の動作をデフォルトにリセットする。"
9547
9548 #. type: TP
9549 #: build/C/man3/sigset.3:79
9550 #, no-wrap
9551 msgid "B<SIG_IGN>"
9552 msgstr "B<SIG_IGN>"
9553
9554 #. type: Plain text
9555 #: build/C/man3/sigset.3:83
9556 msgid "Ignore I<sig>."
9557 msgstr "I<sig> を無視する。"
9558
9559 #. type: TP
9560 #: build/C/man3/sigset.3:83
9561 #, no-wrap
9562 msgid "B<SIG_HOLD>"
9563 msgstr "B<SIG_HOLD>"
9564
9565 #. type: Plain text
9566 #: build/C/man3/sigset.3:90
9567 msgid ""
9568 "Add I<sig> to the process's signal mask, but leave the disposition of I<sig> "
9569 "unchanged."
9570 msgstr ""
9571 "そのプロセスのシグナルマスクに I<sig> を追加するが、 I<sig> の動作は変更しな"
9572 "い。"
9573
9574 #. type: Plain text
9575 #: build/C/man3/sigset.3:96
9576 msgid ""
9577 "If I<disp> specifies the address of a signal handler, then I<sig> is added "
9578 "to the process's signal mask during execution of the handler."
9579 msgstr ""
9580 "I<disp> にシグナルハンドラのアドレスが指定された場合、 シグナルハンドラの実行"
9581 "中は、そのプロセスのシグナルマスクに I<sig> が追加される。"
9582
9583 #. type: Plain text
9584 #: build/C/man3/sigset.3:104
9585 msgid ""
9586 "If I<disp> was specified as a value other than B<SIG_HOLD>, then I<sig> is "
9587 "removed from the process's signal mask."
9588 msgstr ""
9589 "I<disp> に B<SIG_HOLD> 以外の値が指定された場合、 そのプロセスのシグナルマス"
9590 "クから I<sig> が削除される。"
9591
9592 #. type: Plain text
9593 #: build/C/man3/sigset.3:110 build/C/man3/sigvec.3:87
9594 msgid "The dispositions for B<SIGKILL> and B<SIGSTOP> cannot be changed."
9595 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> に対する動作は変更できない。"
9596
9597 #. type: Plain text
9598 #: build/C/man3/sigset.3:116
9599 msgid ""
9600 "The B<sighold>()  function adds I<sig> to the calling process's signal mask."
9601 msgstr ""
9602 "関数 B<sighold>()  は、呼び出し元プロセスのシグナルマスクに I<sig> を追加す"
9603 "る。"
9604
9605 #. type: Plain text
9606 #: build/C/man3/sigset.3:122
9607 msgid ""
9608 "The B<sigrelse>()  function removes I<sig> from the calling process's signal "
9609 "mask."
9610 msgstr ""
9611 "関数 B<sigrelse>()  は、呼び出し元プロセスのシグナルマスクから I<sig> を削除"
9612 "する。"
9613
9614 #. type: Plain text
9615 #: build/C/man3/sigset.3:129
9616 msgid ""
9617 "The B<sigignore>()  function sets the disposition of I<sig> to B<SIG_IGN>."
9618 msgstr "関数 B<sigignore>()  は、 I<sig> の動作を B<SIG_IGN> に設定する。"
9619
9620 #. type: Plain text
9621 #: build/C/man3/sigset.3:145
9622 msgid ""
9623 "On success, B<sigset>()  returns B<SIG_HOLD> if I<sig> was blocked before "
9624 "the call, or the signal's previous disposition if it was not blocked before "
9625 "the call.  On error, B<sigset>()  returns -1, with I<errno> set to indicate "
9626 "the error.  (But see BUGS below.)"
9627 msgstr ""
9628 "B<sigset>()  は成功すると、 呼び出し前に I<sig> がブロックされていた場合には "
9629 "B<SIG_HOLD> を返し、 ブロックされていなかった場合には 変更前のそのシグナルの"
9630 "動作を返す。 エラーの場合、 B<sigset>()  は -1 を返し、 I<errno> にエラーを示"
9631 "す値をセットする。 但し、以下の「バグ」の節も参照のこと。"
9632
9633 #. type: Plain text
9634 #: build/C/man3/sigset.3:154
9635 msgid ""
9636 "The B<sighold>(), B<sigrelse>(), and B<sigignore>()  functions return 0 on "
9637 "success; on error, these functions return -1 and set I<errno> to indicate "
9638 "the error."
9639 msgstr ""
9640 "関数 B<sighold>(), B<sigrelse>(), B<sigignore>()  は成功すると 0 を返す。エ"
9641 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値をセットする。"
9642
9643 #. type: Plain text
9644 #: build/C/man3/sigset.3:161
9645 msgid ""
9646 "For B<sigset>()  see the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
9647 msgstr ""
9648 "B<sigset>()  に関しては、 B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」"
9649 "の節を参照。"
9650
9651 #. type: Plain text
9652 #: build/C/man3/sigset.3:168
9653 msgid ""
9654 "For B<sighold>()  and B<sigrelse>()  see the ERRORS under B<sigprocmask>(2)."
9655 msgstr ""
9656 "B<sighold>()  と B<sigrelse>()  に関しては、 B<sigprocmask>(2)  の「エラー」"
9657 "の節を参照。"
9658
9659 #. type: Plain text
9660 #: build/C/man3/sigset.3:173
9661 msgid "For B<sigignore>(), see the errors under B<sigaction>(2)."
9662 msgstr "B<sigignore>()  に関しては、 B<sigaction>(2)  の「エラー」の節を参照。"
9663
9664 #. type: Plain text
9665 #: build/C/man3/sigset.3:190
9666 msgid ""
9667 "SVr4, POSIX.1-2001.  These functions are obsolete: do not use them in new "
9668 "programs.  POSIX.1-2008 marks B<sighold>(), B<sigignore>(), B<sigpause>(), "
9669 "B<sigrelse>(), and B<sigset>()  as obsolete, recommending the use of "
9670 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), and B<sigsuspend>"
9671 "(2)  instead."
9672 msgstr ""
9673 "SVr4, POSIX.1-2001.  これらの関数は廃止予定である。新しいプログラムでは使用し"
9674 "ないこと。 POSIX.1-2008 は、 B<sighold>(), B<sigignore>(), B<sigpause>(), "
9675 "B<sigrelse>(), B<sigset>()  を廃止予定としている。 代わりに、 B<sigaction>"
9676 "(2), B<sigprocmask>(2), B<pthread_sigmask>(3), B<sigsuspend>(2)  の使用が推奨"
9677 "されている。"
9678
9679 #. type: Plain text
9680 #: build/C/man3/sigset.3:192
9681 msgid "These functions appeared in glibc version 2.1."
9682 msgstr "これらの関数は glibc 2.1 で登場した。"
9683
9684 #. type: Plain text
9685 #: build/C/man3/sigset.3:198
9686 msgid ""
9687 "The I<sighandler_t> type is a GNU extension; it is used on this page only to "
9688 "make the B<sigset>()  prototype more easily readable."
9689 msgstr ""
9690 "I<sighandler_t> 型は GNU による拡張であり、この man page で B<sigset>()  のプ"
9691 "ロトタイプをより読みやすくするために使われているだけである。"
9692
9693 #. type: Plain text
9694 #: build/C/man3/sigset.3:206
9695 msgid ""
9696 "The B<sigset>()  function provides reliable signal handling semantics (as "
9697 "when calling B<sigaction>(2)  with I<sa_mask> equal to 0)."
9698 msgstr ""
9699 "関数 B<sigset>()  は信頼性のあるシグナル処理機構を提供する (I<sa_mask> を 0 "
9700 "で B<sigaction>(2)  を呼び出したときと同様)。"
9701
9702 #. type: Plain text
9703 #: build/C/man3/sigset.3:224
9704 msgid ""
9705 "On System V, the B<signal>()  function provides unreliable semantics (as "
9706 "when calling B<sigaction>(2)  with I<sa_mask> equal to I<SA_RESETHAND | "
9707 "SA_NODEFER>).  On BSD, B<signal>()  provides reliable semantics.  "
9708 "POSIX.1-2001 leaves these aspects of B<signal>()  unspecified.  See B<signal>"
9709 "(2)  for further details."
9710 msgstr ""
9711 "System V では、関数 B<signal>()  が提供する処理機構は信頼性のないものである "
9712 "(I<sa_mask> を I<SA_RESETHAND | SA_NODEFER> として B<sigaction>(2)  を呼び出"
9713 "したときと同様)。 BSD では、 B<signal>()  は信頼性のある処理機構を提供する。 "
9714 "POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままとなっている。 さら"
9715 "なる詳細については B<signal>(2)  を参照。"
9716
9717 #. type: Plain text
9718 #: build/C/man3/sigset.3:232 build/C/man3/sigvec.3:252
9719 msgid ""
9720 "In order to wait for a signal, BSD and System V both provided a function "
9721 "named B<sigpause>(3), but this function has a different argument on the two "
9722 "systems.  See B<sigpause>(3)  for details."
9723 msgstr ""
9724 "BSD と System V のどちらのシステムでも シグナルを待つために、 B<sigpause>"
9725 "(3)  という名前の関数が提供されているが、 この関数の引き数は両方のシステムで"
9726 "異なる。 詳細は B<sigpause>(3)  を参照。"
9727
9728 #. type: Plain text
9729 #: build/C/man3/sigset.3:241
9730 msgid ""
9731 "In versions of glibc before 2.2, B<sigset>()  did not unblock I<sig> if "
9732 "I<disp> was specified as a value other than B<SIG_HOLD>."
9733 msgstr ""
9734 "2.2 より前のバージョンの glibc では、 I<disp> に B<SIG_HOLD> 以外の値が指定さ"
9735 "れた場合、 I<sig> のブロック解除を行っていなかった。"
9736
9737 #.  See http://sourceware.org/bugzilla/show_bug.cgi?id=1951
9738 #. type: Plain text
9739 #: build/C/man3/sigset.3:266
9740 msgid ""
9741 "In versions of glibc before 2.5, B<sigset>()  does not correctly return the "
9742 "previous disposition of the signal in two cases.  First, if I<disp> is "
9743 "specified as B<SIG_HOLD>, then a successful B<sigset>()  always returns "
9744 "B<SIG_HOLD>.  Instead, it should return the previous disposition of the "
9745 "signal (unless the signal was blocked, in which case B<SIG_HOLD> should be "
9746 "returned).  Second, if the signal is currently blocked, then the return "
9747 "value of a successful B<sigset>()  should be B<SIG_HOLD>.  Instead, the "
9748 "previous disposition of the signal is returned.  These problems have been "
9749 "fixed since glibc 2.5."
9750 msgstr ""
9751 "2.3.5 以前の全てのバージョンの glibc では、 B<sigset>()  が変更前のシグナルの"
9752 "動作を正しく返さない場合が 2つある。 一つめは、 I<disp> に B<SIG_HOLD> が指定"
9753 "されると、成功した場合 B<sigset>()  は常に B<SIG_HOLD> を返すことである。 正"
9754 "しくは、(シグナルがブロックされていなかった場合には)  変更前のシグナルの動作"
9755 "を返すべきである (シグナルがブロックされていた場合には、 B<SIG_HOLD> が返され"
9756 "る)。 もう一つは、シグナルが現在ブロックされている場合には、 成功した場合の "
9757 "B<sigset>()  の返り値は B<SIG_HOLD> になるべきであるが、実際には 変更前のシグ"
9758 "ナルの動作が返されることである。 これらの問題は glibc 2.5 以降で修正されてい"
9759 "る。"
9760
9761 #. type: Plain text
9762 #: build/C/man3/sigset.3:276
9763 msgid ""
9764 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9765 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
9766 msgstr ""
9767 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9768 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
9769
9770 #. type: TH
9771 #: build/C/man3/sigsetops.3:31
9772 #, no-wrap
9773 msgid "SIGSETOPS"
9774 msgstr "SIGSETOPS"
9775
9776 #. type: Plain text
9777 #: build/C/man3/sigsetops.3:35
9778 msgid ""
9779 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX signal "
9780 "set operations."
9781 msgstr ""
9782 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX シグナル集"
9783 "合の操作"
9784
9785 #. type: Plain text
9786 #: build/C/man3/sigsetops.3:39
9787 msgid "B<int sigemptyset(sigset_t *>I<set>B<);>"
9788 msgstr "B<int sigemptyset(sigset_t *>I<set>B<);>"
9789
9790 #. type: Plain text
9791 #: build/C/man3/sigsetops.3:41
9792 msgid "B<int sigfillset(sigset_t *>I<set>B<);>"
9793 msgstr "B<int sigfillset(sigset_t *>I<set>B<);>"
9794
9795 #. type: Plain text
9796 #: build/C/man3/sigsetops.3:43
9797 msgid "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9798 msgstr "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9799
9800 #. type: Plain text
9801 #: build/C/man3/sigsetops.3:45
9802 msgid "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9803 msgstr "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9804
9805 #. type: Plain text
9806 #: build/C/man3/sigsetops.3:47
9807 msgid "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
9808 msgstr "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
9809
9810 #. type: Plain text
9811 #: build/C/man3/sigsetops.3:59
9812 msgid ""
9813 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
9814 "B<sigismember>():"
9815 msgstr ""
9816 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
9817 "B<sigismember>():"
9818
9819 #. type: Plain text
9820 #: build/C/man3/sigsetops.3:61
9821 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
9822 msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
9823
9824 #. type: Plain text
9825 #: build/C/man3/sigsetops.3:65
9826 msgid "These functions allow the manipulation of POSIX signal sets."
9827 msgstr "これらの関数は POSIX シグナル集合(signal set)を操作するため使用する。"
9828
9829 #. type: Plain text
9830 #: build/C/man3/sigsetops.3:70
9831 msgid ""
9832 "B<sigemptyset>()  initializes the signal set given by I<set> to empty, with "
9833 "all signals excluded from the set."
9834 msgstr ""
9835 "B<sigemptyset>()  は I<set> で与えられたシグナル集合を空に初期化し、シグナル"
9836 "が一つも 含まれていない状態にする。"
9837
9838 #. type: Plain text
9839 #: build/C/man3/sigsetops.3:75
9840 msgid "B<sigfillset>()  initializes I<set> to full, including all signals."
9841 msgstr ""
9842 "B<sigfillset>()  は I<set> で与えられたシグナル集合が全てのシグナルを含むよう"
9843 "にする。"
9844
9845 #. type: Plain text
9846 #: build/C/man3/sigsetops.3:83
9847 msgid ""
9848 "B<sigaddset>()  and B<sigdelset>()  add and delete respectively signal "
9849 "I<signum> from I<set>."
9850 msgstr ""
9851 "B<sigaddset>()  と B<sigdelset>()  は I<set> に I<signum> シグナルをそれぞれ"
9852 "加えたり、削除したりする。"
9853
9854 #. type: Plain text
9855 #: build/C/man3/sigsetops.3:89
9856 msgid "B<sigismember>()  tests whether I<signum> is a member of I<set>."
9857 msgstr ""
9858 "B<sigismember>()  は I<signum> が I<set> に含まれているかどうかをテストする。"
9859
9860 #. type: Plain text
9861 #: build/C/man3/sigsetops.3:107
9862 msgid ""
9863 "Objects of type I<sigset_t> must be initialized by a call to either "
9864 "B<sigemptyset>()  or B<sigfillset>()  before being passed to the functions "
9865 "B<sigaddset>(), B<sigdelset>()  and B<sigismember>()  or the additional "
9866 "glibc functions described below (B<sigisemptyset>(), B<sigandset>(), and "
9867 "B<sigorset>()).  The results are undefined if this is not done."
9868 msgstr ""
9869 "I<sigset_t> 型のオブジェクトは、関数 B<sigaddset>(), B<sigdelset>(), "
9870 "B<sigismember>()  や後述の glibc の追加関数 (B<sigisemptyset>(), B<sigandset>"
9871 "(), B<sigorset>())  に渡す前に、 B<sigemptyset>()  か B<sigfillset>()  を呼び"
9872 "出して初期化しなければならない。 初期化しなかった場合の結果は未定義である。"
9873
9874 #. type: Plain text
9875 #: build/C/man3/sigsetops.3:114
9876 msgid ""
9877 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), and B<sigdelset>()  "
9878 "return 0 on success and -1 on error."
9879 msgstr ""
9880 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>()  は成功すれ"
9881 "ば 0 を、エラーの場合は -1 を返す。"
9882
9883 #. type: Plain text
9884 #: build/C/man3/sigsetops.3:126
9885 #, fuzzy
9886 #| msgid ""
9887 #| "B<sigismember>()  returns 1 if I<signum> is a member of I<set>, 0 if "
9888 #| "I<signum> is not a member, and -1 on error."
9889 msgid ""
9890 "B<sigismember>()  returns 1 if I<signum> is a member of I<set>, 0 if "
9891 "I<signum> is not a member, and -1 on error.  On error, these functions set "
9892 "I<errno> to indicate the cause."
9893 msgstr ""
9894 "B<sigismember>()  は I<signum> が I<set> に含まれていれば 1 を返し、含まれて"
9895 "いなければ 0 を返す。 エラーの場合は -1 を返す。"
9896
9897 #. type: Plain text
9898 #: build/C/man3/sigsetops.3:131
9899 msgid "I<sig> is not a valid signal."
9900 msgstr "I<sig> が有効なシグナルではない。"
9901
9902 #. type: SS
9903 #: build/C/man3/sigsetops.3:134
9904 #, no-wrap
9905 msgid "Glibc notes"
9906 msgstr "glibc での注意"
9907
9908 #. type: Plain text
9909 #: build/C/man3/sigsetops.3:140
9910 msgid ""
9911 "If the B<_GNU_SOURCE> feature test macro is defined, then I<E<lt>signal."
9912 "hE<gt>> exposes three other functions for manipulating signal sets."
9913 msgstr ""
9914 "B<_GNU_SOURCE> 機能検査マクロが定義されていると、 I<E<lt>signal.hE<gt>> でシ"
9915 "グナル集合を操作する 3つの関数が追加で公開される。"
9916
9917 #. type: TP
9918 #: build/C/man3/sigsetops.3:140
9919 #, no-wrap
9920 msgid "B<int sigisemptyset(sigset_t *>I<set>B<);>"
9921 msgstr "B<int sigisemptyset(sigset_t *>I<set>B<);>"
9922
9923 #. type: Plain text
9924 #: build/C/man3/sigsetops.3:145
9925 msgid "returns 1 if I<set> contains no signals, and 0 otherwise."
9926 msgstr ""
9927 "I<set> にシグナルが一つも含まれていなければ 1 を返し、 それ以外は 0 を返す。"
9928
9929 #. type: TP
9930 #: build/C/man3/sigsetops.3:145
9931 #, no-wrap
9932 msgid "B<int sigorset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
9933 msgstr "B<int sigorset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
9934
9935 #. type: Plain text
9936 #: build/C/man3/sigsetops.3:154
9937 msgid "places the union of the sets I<left> and I<right> in I<dest>."
9938 msgstr "シグナル集合 I<left> と I<left> の和集合を I<dest> に書き込む。"
9939
9940 #. type: TP
9941 #: build/C/man3/sigsetops.3:154
9942 #, no-wrap
9943 msgid "B<int sigandset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
9944 msgstr "B<int sigandset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
9945
9946 #. type: Plain text
9947 #: build/C/man3/sigsetops.3:163
9948 msgid "places the intersection of the sets I<left> and I<right> in I<dest>."
9949 msgstr "シグナル集合 I<left> と I<left> の積集合を I<dest> に書き込む。"
9950
9951 #. type: Plain text
9952 #: build/C/man3/sigsetops.3:168
9953 msgid ""
9954 "B<sigorset>()  and B<sigandset>()  return 0 on success, and -1 on failure."
9955 msgstr ""
9956 "B<sigorset>()  と B<sigandset>()  は成功すると 0 を、失敗すると -1 を返す。"
9957
9958 #. type: Plain text
9959 #: build/C/man3/sigsetops.3:171
9960 msgid ""
9961 "These functions are nonstandard (a few other systems provide similar "
9962 "functions) and their use should be avoided in portable applications."
9963 msgstr ""
9964 "これらの関数は非標準であり、(他にも同様の関数を提供しているシステムも いくつ"
9965 "かはあるが) 移植性を考慮したアプリケーションでは使用を避けるべき である。"
9966
9967 #. type: Plain text
9968 #: build/C/man3/sigsetops.3:176
9969 msgid "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
9970 msgstr "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
9971
9972 #. type: TH
9973 #: build/C/man2/sigsuspend.2:29
9974 #, no-wrap
9975 msgid "SIGSUSPEND"
9976 msgstr "SIGSUSPEND"
9977
9978 #. type: Plain text
9979 #: build/C/man2/sigsuspend.2:32
9980 msgid "sigsuspend - wait for a signal"
9981 msgstr "sigsuspend - シグナルを待つ"
9982
9983 #. type: Plain text
9984 #: build/C/man2/sigsuspend.2:36
9985 msgid "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
9986 msgstr "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
9987
9988 #. type: Plain text
9989 #: build/C/man2/sigsuspend.2:45
9990 msgid ""
9991 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9992 "_POSIX_SOURCE"
9993 msgstr ""
9994 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9995 "_POSIX_SOURCE"
9996
9997 #. type: Plain text
9998 #: build/C/man2/sigsuspend.2:53
9999 msgid ""
10000 "B<sigsuspend>()  temporarily replaces the signal mask of the calling process "
10001 "with the mask given by I<mask> and then suspends the process until delivery "
10002 "of a signal whose action is to invoke a signal handler or to terminate a "
10003 "process."
10004 msgstr ""
10005 "B<sigsuspend>()  は、呼び出し元プロセスのシグナルマスクを I<mask> で指定され"
10006 "たマスクに一時的に置き換え、 シグナルハンドラの起動もしくはプロセスの終了がア"
10007 "クションとして 設定されたシグナルが配送されるまで、そのプロセスを停止する。"
10008
10009 #. type: Plain text
10010 #: build/C/man2/sigsuspend.2:62
10011 msgid ""
10012 "If the signal terminates the process, then B<sigsuspend>()  does not "
10013 "return.  If the signal is caught, then B<sigsuspend>()  returns after the "
10014 "signal handler returns, and the signal mask is restored to the state before "
10015 "the call to B<sigsuspend>()."
10016 msgstr ""
10017 "シグナルがプロセスを終了させるものの場合、 B<sigsuspend>()  は返らない。シグ"
10018 "ナルが捕捉された場合、 シグナルハンドラの処理が終わった後に B<sigsuspend>()  "
10019 "は返り、シグナルマスクは B<sigsuspend>()  が呼び出される前の状態に復元され"
10020 "る。"
10021
10022 #. type: Plain text
10023 #: build/C/man2/sigsuspend.2:70
10024 msgid ""
10025 "It is not possible to block B<SIGKILL> or B<SIGSTOP>; specifying these "
10026 "signals in I<mask>, has no effect on the process's signal mask."
10027 msgstr ""
10028 "B<SIGKILL> と B<SIGSTOP> を禁止 (block) することはできない; これらのシグナル"
10029 "を I<mask> に指定しても、プロセスのシグナルマスクは影響を受けない。"
10030
10031 #. type: Plain text
10032 #: build/C/man2/sigsuspend.2:76
10033 #, fuzzy
10034 #| msgid ""
10035 #| "B<sigsuspend>()  always returns -1, normally with the error B<EINTR>."
10036 msgid ""
10037 "B<sigsuspend>()  always returns -1, with I<errno> set to inndicate the error "
10038 "(normally, B<EINTR>)."
10039 msgstr "B<sigsuspend>()  は常に -1 を返し、通常は B<EINTR> エラーが発生する。"
10040
10041 #. type: Plain text
10042 #: build/C/man2/sigsuspend.2:81
10043 msgid ""
10044 "I<mask> points to memory which is not a valid part of the process address "
10045 "space."
10046 msgstr ""
10047 "I<mask> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
10048
10049 #. type: Plain text
10050 #: build/C/man2/sigsuspend.2:84
10051 msgid "The call was interrupted by a signal."
10052 msgstr "システムコールはシグナルにより割り込まれた。"
10053
10054 #. type: Plain text
10055 #: build/C/man2/sigsuspend.2:104
10056 msgid ""
10057 "Normally, B<sigsuspend>()  is used in conjunction with B<sigprocmask>(2)  in "
10058 "order to prevent delivery of a signal during the execution of a critical "
10059 "code section.  The caller first blocks the signals with B<sigprocmask>(2).  "
10060 "When the critical code has completed, the caller then waits for the signals "
10061 "by calling B<sigsuspend>()  with the signal mask that was returned by "
10062 "B<sigprocmask>(2)  (in the I<oldset> argument)."
10063 msgstr ""
10064 "B<sigsuspend>()  は、通常、クリティカル・コード・セクション (critical code "
10065 "section) の 実行中にシグナルが配送されるのを防止するために、 B<sigprocmask>"
10066 "(2)  と組み合わせて使用される。 まず最初に、呼び出し元は B<sigprocmask>(2)  "
10067 "を使ってシグナルを禁止する。 クリティカル・コードが完了すると、呼び出し元は "
10068 "B<sigprocmask>(2)  が (I<oldset> 引き数で) 返すシグナルマスクを指定して "
10069 "B<sigsuspend>()  を呼び出すことで、クリティカル・コード実行中に発生した シグ"
10070 "ナルを待つことができる。"
10071
10072 #. type: Plain text
10073 #: build/C/man2/sigsuspend.2:118
10074 msgid ""
10075 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10076 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10077 msgstr ""
10078 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10079 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10080
10081 #. type: TH
10082 #: build/C/man3/sigvec.3:26
10083 #, no-wrap
10084 msgid "SIGVEC"
10085 msgstr "SIGVEC"
10086
10087 #. type: TH
10088 #: build/C/man3/sigvec.3:26
10089 #, no-wrap
10090 msgid "2012-09-06"
10091 msgstr "2012-09-06"
10092
10093 #. type: Plain text
10094 #: build/C/man3/sigvec.3:29
10095 msgid "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD signal API"
10096 msgstr "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD 版シグナル API"
10097
10098 #. type: Plain text
10099 #: build/C/man3/sigvec.3:33
10100 msgid ""
10101 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
10102 "*>I<ovec>B<);>"
10103 msgstr ""
10104 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
10105 "*>I<ovec>B<);>"
10106
10107 #. type: Plain text
10108 #: build/C/man3/sigvec.3:35
10109 msgid "B<int sigmask(int >I<signum>B<);>"
10110 msgstr "B<int sigmask(int >I<signum>B<);>"
10111
10112 #. type: Plain text
10113 #: build/C/man3/sigvec.3:37
10114 msgid "B<int sigblock(int >I<mask>B<);>"
10115 msgstr "B<int sigblock(int >I<mask>B<);>"
10116
10117 #. type: Plain text
10118 #: build/C/man3/sigvec.3:39
10119 msgid "B<int sigsetmask(int >I<mask>B<);>"
10120 msgstr "B<int sigsetmask(int >I<mask>B<);>"
10121
10122 #. type: Plain text
10123 #: build/C/man3/sigvec.3:41
10124 msgid "B<int siggetmask(void);>"
10125 msgstr "B<int siggetmask(void);>"
10126
10127 #. type: Plain text
10128 #: build/C/man3/sigvec.3:49
10129 msgid "All functions shown above: _BSD_SOURCE"
10130 msgstr "上記の全ての関数: _BSD_SOURCE"
10131
10132 #. type: Plain text
10133 #: build/C/man3/sigvec.3:56
10134 msgid ""
10135 "These functions are provided in glibc as a compatibility interface for "
10136 "programs that make use of the historical BSD signal API.  This API is "
10137 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
10138 "B<sigprocmask>(2), etc.)."
10139 msgstr ""
10140 "これらの関数は、昔ながらの BSD 版シグナル API を使用しているプログラム に対し"
10141 "て互換性のあるインタフェースを glibc で提供するものである。 この API は過去の"
10142 "ものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>(2), "
10143 "B<sigprocmask>(2)  など) を使用すべきである。"
10144
10145 #. type: Plain text
10146 #: build/C/man3/sigvec.3:81
10147 msgid ""
10148 "The B<sigvec>()  function sets and/or gets the disposition of the signal "
10149 "I<sig> (like the POSIX B<sigaction>(2)).  If I<vec> is not NULL, it points "
10150 "to a I<sigvec> structure that defines the new disposition for I<sig>.  If "
10151 "I<ovec> is not NULL, it points to a I<sigvec> structure that is used to "
10152 "return the previous disposition of I<sig>.  To obtain the current "
10153 "disposition of I<sig> without changing it, specify NULL for I<vec>, and a "
10154 "non-NULL pointer for I<ovec>."
10155 msgstr ""
10156 "関数 B<sigvec>()  は、(POSIX の B<sigaction>(2)  と同様に) シグナル I<sig> の"
10157 "動作の設定・取得を行う。 I<vec> は、NULL 以外の場合、 I<sig> の新しい動作を定"
10158 "義した I<sigvec> 構造体へのポインタである。 I<ovec> は、NULL 以外の場合、 "
10159 "I<sig> の変更前の動作を返すために使用される I<sigvec> 構造体へのポインタであ"
10160 "る。 I<sig> の動作を変更せずに現在の動作を取得するためには、 I<vec> に NULL "
10161 "を指定し、 I<ovec> に NULL でないポインタを指定すればよい。"
10162
10163 #. type: Plain text
10164 #: build/C/man3/sigvec.3:91
10165 msgid "The I<sigvec> structure has the following form:"
10166 msgstr "I<sigvec> 構造体は以下の通りである:"
10167
10168 #. type: Plain text
10169 #: build/C/man3/sigvec.3:99
10170 #, no-wrap
10171 msgid ""
10172 "struct sigvec {\n"
10173 "    void (*sv_handler)(int); /* Signal disposition */\n"
10174 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10175 "    int    sv_flags;         /* Flags */\n"
10176 "};\n"
10177 msgstr ""
10178 "struct sigvec {\n"
10179 "    void (*sv_handler)(int); /* Signal disposition */\n"
10180 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10181 "    int    sv_flags;         /* Flags */\n"
10182 "};\n"
10183
10184 #. type: Plain text
10185 #: build/C/man3/sigvec.3:110
10186 msgid ""
10187 "The I<sv_handler> field specifies the disposition of the signal, and is "
10188 "either: the address of a signal handler function; B<SIG_DFL>, meaning the "
10189 "default disposition applies for the signal; or B<SIG_IGN>, meaning that the "
10190 "signal is ignored."
10191 msgstr ""
10192 "I<sv_handler> フィールドはシグナルの動作を指定するもので、 シグナルハンドラ関"
10193 "数のアドレスか、 B<SIG_DFL> と B<SIG_IGN> のいずれかを指定できる。 "
10194 "B<SIG_DFL> はシグナルに適用されるデフォルトの動作を意味し、 B<SIG_IGN> はシグ"
10195 "ナルを無視することを意味する。"
10196
10197 #. type: Plain text
10198 #: build/C/man3/sigvec.3:124
10199 msgid ""
10200 "If I<sv_handler> specifies the address of a signal handler, then I<sv_mask> "
10201 "specifies a mask of signals that are to be blocked while the handler is "
10202 "executing.  In addition, the signal for which the handler is invoked is also "
10203 "blocked.  Attempts to block B<SIGKILL> or B<SIGSTOP> are silently ignored."
10204 msgstr ""
10205 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_mask> はハン"
10206 "ドラが実行中にブロックされるべきシグナルのマスクを指定する。 また、ハンドラを"
10207 "起動したシグナル自身はブロックされる。 B<SIGKILL> か B<SIGSTOP> をブロックし"
10208 "ようとした場合には、黙って無視される。"
10209
10210 #. type: Plain text
10211 #: build/C/man3/sigvec.3:131
10212 msgid ""
10213 "If I<sv_handler> specifies the address of a signal handler, then the "
10214 "I<sv_flags> field specifies flags controlling what happens when the handler "
10215 "is called.  This field may contain zero or more of the following flags:"
10216 msgstr ""
10217 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_flags> フィー"
10218 "ルドはハンドラが呼ばれた際の挙動を制御するフラグを指定する。 このフィールドに"
10219 "は、0 か、以下のフラグを 1個以上指定できる:"
10220
10221 #. type: TP
10222 #: build/C/man3/sigvec.3:131
10223 #, no-wrap
10224 msgid "B<SV_INTERRUPT>"
10225 msgstr "B<SV_INTERRUPT>"
10226
10227 #. type: Plain text
10228 #: build/C/man3/sigvec.3:139
10229 msgid ""
10230 "If the signal handler interrupts a blocking system call, then upon return "
10231 "from the handler the system call will not be restarted: instead it will fail "
10232 "with the error B<EINTR>.  If this flag is not specified, then system calls "
10233 "are restarted by default."
10234 msgstr ""
10235 "シグナルハンドラが停止中のシステムコールを中断した場合、 ハンドラから復帰して"
10236 "も、システムコールは再開されず、 エラー B<EINTR> で失敗する。 このフラグを指"
10237 "定しなかった場合、システムコールは デフォルトで再開される。"
10238
10239 #. type: TP
10240 #: build/C/man3/sigvec.3:139
10241 #, no-wrap
10242 msgid "B<SV_RESETHAND>"
10243 msgstr "B<SV_RESETHAND>"
10244
10245 #. type: Plain text
10246 #: build/C/man3/sigvec.3:148
10247 msgid ""
10248 "Reset the disposition of the signal to the default before calling the signal "
10249 "handler.  If this flag is not specified, then the handler remains "
10250 "established until explicitly removed by a later call to B<sigvec>()  or "
10251 "until the process performs an B<execve>(2)."
10252 msgstr ""
10253 "シグナルハンドラを呼び出す前にシグナルの動作を デフォルトにリセットする。 こ"
10254 "のフラグを指定しなかった場合、もう一度 B<sigvec>()  を呼び出して明示的に削除"
10255 "されるか、プロセスが B<execve>(2)  を実行するまで、ハンドラは設定されたままと"
10256 "なる。"
10257
10258 #. type: TP
10259 #: build/C/man3/sigvec.3:148
10260 #, no-wrap
10261 msgid "B<SV_ONSTACK>"
10262 msgstr "B<SV_ONSTACK>"
10263
10264 #. type: Plain text
10265 #: build/C/man3/sigvec.3:155
10266 msgid ""
10267 "Handle the signal on the alternate signal stack (historically established "
10268 "under BSD using the obsolete B<sigstack>()  function; the POSIX replacement "
10269 "is B<sigaltstack>(2))."
10270 msgstr ""
10271 "代替シグナルスタック上でシグナルハンドラを実行する (歴史的に、BSD では代替シ"
10272 "グナルスタックは廃止された関数 B<sigstack>()  を使って設定する。POSIX では、"
10273 "代わりに B<sigaltstack>(2)  を使用する)。"
10274
10275 #. type: Plain text
10276 #: build/C/man3/sigvec.3:165
10277 msgid ""
10278 "The B<sigmask>()  function constructs and returns a \"signal mask\" for "
10279 "I<signum>.  For example, we can initialize the I<vec.sv_mask> field given to "
10280 "B<sigvec>()  using code such as the following:"
10281 msgstr ""
10282 "関数 B<sigmask>()  は I<signum> に対する「シグナルマスク」を構成して返す。 例"
10283 "えば、以下のようなコードを使うと、 B<sigvec>()  に渡す I<vec.sv_mask> を初期"
10284 "化できる。"
10285
10286 #. type: Plain text
10287 #: build/C/man3/sigvec.3:170
10288 #, no-wrap
10289 msgid ""
10290 "    vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT);\n"
10291 "                /* Block SIGQUIT and SIGABRT during\n"
10292 "                   handler execution */\n"
10293 msgstr ""
10294 "    vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT);\n"
10295 "                /* Block SIGQUIT and SIGABRT during\n"
10296 "                   handler execution */\n"
10297
10298 #. type: Plain text
10299 #: build/C/man3/sigvec.3:185
10300 msgid ""
10301 "The B<sigblock>()  function adds the signals in I<mask> to the process's "
10302 "signal mask (like POSIX I<sigprocmask(SIG_BLOCK)>), and returns the "
10303 "process's previous signal mask.  Attempts to block B<SIGKILL> or B<SIGSTOP> "
10304 "are silently ignored."
10305 msgstr ""
10306 "B<sigblock>()  関数は、 I<mask> にあるシグナルをプロセスのシグナルマスクに追"
10307 "加し (POSIX の I<sigprocmask(SIG_BLOCK)> と同様)、変更前のプロセスのシグナル"
10308 "マスクを返す。 B<SIGKILL> や B<SIGSTOP> をブロックしようとした場合には、黙っ"
10309 "て無視される。"
10310
10311 #. type: Plain text
10312 #: build/C/man3/sigvec.3:193
10313 msgid ""
10314 "The B<sigsetmask>()  function sets the process's signal mask to the value "
10315 "given in I<mask> (like POSIX I<sigprocmask(SIG_SETMASK)>), and returns the "
10316 "process's previous signal mask."
10317 msgstr ""
10318 "B<sigsetmask>()  関数はプロセスのシグナルマスクを I<mask> で指定された値に設"
10319 "定し (POSIX の I<sigprocmask(SIG_SETMASK)> と同様)、変更前のプロセスのシグナ"
10320 "ルマスクを返す。"
10321
10322 #. type: Plain text
10323 #: build/C/man3/sigvec.3:199
10324 msgid ""
10325 "The B<siggetmask>()  function returns the process's current signal mask.  "
10326 "This call is equivalent to I<sigblock(0)>."
10327 msgstr ""
10328 "B<siggetmask>()  関数はプロセスの現在のシグナルマスクを返す。この関数は "
10329 "I<sigblock(0)> と等価である。"
10330
10331 #. type: Plain text
10332 #: build/C/man3/sigvec.3:205
10333 msgid ""
10334 "The B<sigvec>()  function returns 0 on success; on error, it returns -1 and "
10335 "sets I<errno> to indicate the error."
10336 msgstr ""
10337 "B<sigvec>()  関数は成功すると 0 を返す。エラーの場合、-1 を返し、 I<errno> に"
10338 "エラーを示す値をセットする。"
10339
10340 #. type: Plain text
10341 #: build/C/man3/sigvec.3:211
10342 msgid ""
10343 "The B<sigblock>()  and B<sigsetmask>()  functions return the previous signal "
10344 "mask."
10345 msgstr "B<sigblock>()  と B<sigsetmask>()  は変更前のシグナルマスクを返す。"
10346
10347 #. type: Plain text
10348 #: build/C/man3/sigvec.3:216
10349 msgid "The B<sigmask>()  function returns the signal mask for I<signum>."
10350 msgstr "B<sigmask>()  関数は I<signum> のシグナルマスクを返す。"
10351
10352 #. type: Plain text
10353 #: build/C/man3/sigvec.3:221
10354 msgid "See the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
10355 msgstr "B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」の節を参照。"
10356
10357 #. type: Plain text
10358 #: build/C/man3/sigvec.3:227
10359 msgid ""
10360 "All of these functions were in 4.3BSD, except B<siggetmask>(), whose origin "
10361 "is unclear.  These functions are obsolete: do not use them in new programs."
10362 msgstr ""
10363 "これらの関数のうち B<siggetmask>()  以外の全ては 4.3BSD にあった。 "
10364 "B<siggetmask>()  の出自ははっきりしない。 これらの関数は廃止予定であり、新し"
10365 "いプログラムでは使用しないこと。"
10366
10367 #. type: Plain text
10368 #: build/C/man3/sigvec.3:244
10369 msgid ""
10370 "On 4.3BSD, the B<signal>()  function provided reliable semantics (as when "
10371 "calling B<sigvec>()  with I<vec.sv_mask> equal to 0).  On System V, B<signal>"
10372 "()  provides unreliable semantics.  POSIX.1-2001 leaves these aspects of "
10373 "B<signal>()  unspecified.  See B<signal>(2)  for further details."
10374 msgstr ""
10375 "4.3BSD では、信頼性のあるシグナル処理機構を提供する (I<vec.sv_mask> を 0 で "
10376 "B<sigvec>()  を呼び出したときと同様)。 System V が提供する処理機構は信頼性の"
10377 "ないものである。 POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままと"
10378 "なっている。 さらなる詳細については B<signal>(2)  を参照。"
10379
10380 #. type: Plain text
10381 #: build/C/man3/sigvec.3:262
10382 msgid ""
10383 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10384 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10385 msgstr ""
10386 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10387 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10388
10389 #. type: TH
10390 #: build/C/man3/sigwait.3:26
10391 #, no-wrap
10392 msgid "SIGWAIT"
10393 msgstr "SIGWAIT"
10394
10395 #. type: TH
10396 #: build/C/man3/sigwait.3:26 build/C/man2/sigwaitinfo.2:25
10397 #, no-wrap
10398 msgid "2012-07-21"
10399 msgstr "2012-07-21"
10400
10401 #. type: Plain text
10402 #: build/C/man3/sigwait.3:29
10403 msgid "sigwait - wait for a signal"
10404 msgstr "sigwait - シグナルを待つ"
10405
10406 #. type: Plain text
10407 #: build/C/man3/sigwait.3:34
10408 #, no-wrap
10409 msgid "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10410 msgstr "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10411
10412 #. type: Plain text
10413 #: build/C/man3/sigwait.3:44
10414 msgid ""
10415 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10416 msgstr ""
10417 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10418
10419 #. type: Plain text
10420 #: build/C/man3/sigwait.3:56
10421 msgid ""
10422 "The B<sigwait>()  function suspends execution of the calling thread until "
10423 "one of the signals specified in the signal set I<set> becomes pending.  The "
10424 "function accepts the signal (removes it from the pending list of signals), "
10425 "and returns the signal number in I<sig>."
10426 msgstr ""
10427 "B<sigwait>()  関数は、シグナル集合 I<set> で指定されたシグナルの一つが処理待"
10428 "ち (pending) になるまで、 呼び出したスレッドの実行を中断する。 この関数はその"
10429 "シグナルを受け取り (つまり、処理待ちのシグナルのリスト からそのシグナルを削除"
10430 "し)、そのシグナル番号を I<sig> に格納して返す。"
10431
10432 #. type: Plain text
10433 #: build/C/man3/sigwait.3:62
10434 msgid ""
10435 "The operation of B<sigwait>()  is the same as B<sigwaitinfo>(2), except that:"
10436 msgstr ""
10437 "B<sigwait>()  の動作は B<sigwaitinfo>(2)  と同じだが、以下の点が異なる。"
10438
10439 #. type: Plain text
10440 #: build/C/man3/sigwait.3:67
10441 msgid ""
10442 "B<sigwait>()  returns only the signal number, rather than a I<siginfo_t> "
10443 "structure describing the signal."
10444 msgstr ""
10445 "B<sigwait>()  は、シグナルの内容を表す I<siginfo_t> 構造体を返すのではなく、"
10446 "単にシグナル番号を返す。"
10447
10448 #. type: Plain text
10449 #: build/C/man3/sigwait.3:69
10450 msgid "The return values of the two functions are different."
10451 msgstr "返り値が B<sigwaitinfo>(2)  とは異なる。"
10452
10453 #. type: Plain text
10454 #: build/C/man3/sigwait.3:74
10455 msgid ""
10456 "On success, B<sigwait>()  returns 0.  On error, it returns a positive error "
10457 "number (listed in ERRORS)."
10458 msgstr ""
10459 "成功すると、 B<sigwait>()  は 0 を返す。 エラーの場合、(「エラー」の節のリス"
10460 "トにある) 正のエラー番号を返す。"
10461
10462 #.  Does not occur for glibc.
10463 #. type: Plain text
10464 #: build/C/man3/sigwait.3:80
10465 msgid "I<set> contains an invalid signal number."
10466 msgstr "I<set> に無効なシグナル番号が入っている。"
10467
10468 #. type: Plain text
10469 #: build/C/man3/sigwait.3:86
10470 msgid "B<sigwait>()  is implemented using B<sigtimedwait>(2)."
10471 msgstr "B<sigwait>()  は B<sigtimedwait>(2)  を使って実装されている。"
10472
10473 #. type: Plain text
10474 #: build/C/man3/sigwait.3:89
10475 msgid "See B<pthread_sigmask>(3)."
10476 msgstr "B<pthread_sigmask>(3)  を参照。"
10477
10478 #. type: Plain text
10479 #: build/C/man3/sigwait.3:97
10480 msgid ""
10481 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
10482 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
10483 msgstr ""
10484 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
10485 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
10486
10487 #. type: TH
10488 #: build/C/man2/sigwaitinfo.2:25
10489 #, no-wrap
10490 msgid "SIGWAITINFO"
10491 msgstr "SIGWAITINFO"
10492
10493 #. type: Plain text
10494 #: build/C/man2/sigwaitinfo.2:28
10495 msgid "sigwaitinfo, sigtimedwait - synchronously wait for queued signals"
10496 msgstr "sigwaitinfo, sigtimedwait - キューに入れられたシグナルを同期して待つ"
10497
10498 #. type: Plain text
10499 #: build/C/man2/sigwaitinfo.2:33
10500 #, no-wrap
10501 msgid "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
10502 msgstr "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
10503
10504 #. type: Plain text
10505 #: build/C/man2/sigwaitinfo.2:36
10506 #, no-wrap
10507 msgid ""
10508 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
10509 "B<                 const struct timespec *>I<timeout>B<);>\n"
10510 msgstr ""
10511 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
10512 "B<                 const struct timespec *>I<timeout>B<);>\n"
10513
10514 #. type: Plain text
10515 #: build/C/man2/sigwaitinfo.2:46
10516 msgid "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10517 msgstr ""
10518 "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10519
10520 #. type: Plain text
10521 #: build/C/man2/sigwaitinfo.2:56
10522 msgid ""
10523 "B<sigwaitinfo>()  suspends execution of the calling thread until one of the "
10524 "signals in I<set> is pending (If one of the signals in I<set> is already "
10525 "pending for the calling thread, B<sigwaitinfo>()  will return immediately.)"
10526 msgstr ""
10527 "B<sigwaitinfo>()  は I<set> のうちのどれかのシグナルが処理待ちになるまで、 呼"
10528 "び出しスレッドの実行を一時停止する (呼び出しスレッドに対して I<set> のうちの"
10529 "どれかのシグナルが既に待機中 (pending) である場合、 B<sigwaitinfo>()  はすぐ"
10530 "に戻る)。"
10531
10532 #. type: Plain text
10533 #: build/C/man2/sigwaitinfo.2:68
10534 msgid ""
10535 "B<sigwaitinfo>()  removes the signal from the set of pending signals and "
10536 "returns the signal number as its function result.  If the I<info> argument "
10537 "is not NULL, then the buffer that it points to is used to return a structure "
10538 "of type I<siginfo_t> (see B<sigaction>(2))  containing information about the "
10539 "signal."
10540 msgstr ""
10541 "B<sigwaitinfo>()  はそのシグナルを待機中のシグナルの集合から削除し、関数の結"
10542 "果としてシグナル番号を返す。 I<info> 引き数が NULL でない場合、配送されたシグ"
10543 "ナルの情報が入った I<siginfo_t> 型 (B<sigaction>(2)  を参照) の構造体を "
10544 "I<info> が指すバッファに入れて返す。"
10545
10546 #. type: Plain text
10547 #: build/C/man2/sigwaitinfo.2:76
10548 msgid ""
10549 "If multiple signals in I<set> are pending for the caller, the signal that is "
10550 "retrieved by B<sigwaitinfo>()  is determined according to the usual ordering "
10551 "rules; see B<signal>(7)  for further details."
10552 msgstr ""
10553 "呼び出し元に対して I<set> の複数のシグナルが処理待ちの場合、 B<sigwaitinfo>"
10554 "() で取得するシグナルは通常の順序決定ルールに基づいて決定される。 詳細は "
10555 "B<signal>(7) を参照のこと。"
10556
10557 #. type: Plain text
10558 #: build/C/man2/sigwaitinfo.2:88
10559 msgid ""
10560 "B<sigtimedwait>()  operates in exactly the same way as B<sigwaitinfo>()  "
10561 "except that it has an additional argument, I<timeout>, which specifies a "
10562 "minimum interval for which the thread is suspended waiting for a signal.  "
10563 "(This interval will be rounded up to the system clock granularity, and "
10564 "kernel scheduling delays mean that the interval may overrun by a small "
10565 "amount.)  This argument is of the following type:"
10566 msgstr ""
10567 "B<sigtimedwait>() は、 B<sigwaitinfo>() と次の点を除いて全く同じように\n"
10568 "動作する。この関数にはもう 1 つの引き数 I<timeout> があり、シグナル待ち\n"
10569 "でスレッドが一時停止する最小時間を指定することができる(この時間はシステ\n"
10570 "ムクロックの粒度に切り上げられ、カーネルのスケジューリング遅延により\n"
10571 "少しだけ長くなる可能性がある)。この引き数の型は以下のとおりである:"
10572
10573 #. type: Plain text
10574 #: build/C/man2/sigwaitinfo.2:95
10575 #, no-wrap
10576 msgid ""
10577 "struct timespec {\n"
10578 "    long    tv_sec;         /* seconds */\n"
10579 "    long    tv_nsec;        /* nanoseconds */\n"
10580 "}\n"
10581 msgstr ""
10582 "struct timespec {\n"
10583 "    long    tv_sec;         /* 秒 */\n"
10584 "    long    tv_nsec;        /* ナノ秒 */\n"
10585 "}\n"
10586
10587 #. type: Plain text
10588 #: build/C/man2/sigwaitinfo.2:105
10589 msgid ""
10590 "If both fields of this structure are specified as 0, a poll is performed: "
10591 "B<sigtimedwait>()  returns immediately, either with information about a "
10592 "signal that was pending for the caller, or with an error if none of the "
10593 "signals in I<set> was pending."
10594 msgstr ""
10595 "この構造体の 2 つのフィールドがともに 0 の場合、ポーリングが行われる: "
10596 "B<sigtimedwait>()  は、呼び出し側プロセスに対して 待機しているシグナルの情報"
10597 "を返して戻るか、 I<set> のうちのどのシグナルも待機していない場合はエラーを返"
10598 "して戻る。"
10599
10600 #. type: Plain text
10601 #: build/C/man2/sigwaitinfo.2:114
10602 msgid ""
10603 "On success, both B<sigwaitinfo>()  and B<sigtimedwait>()  return a signal "
10604 "number (i.e., a value greater than zero).  On failure both calls return -1, "
10605 "with I<errno> set to indicate the error."
10606 msgstr ""
10607 "成功した場合、 B<sigwaitinfo>()  と B<sigtimedwait>()  はシグナル番号 (すなわ"
10608 "ち 0 より大きい数) を返す。 失敗した場合、2 つの関数は -1 を返し、 I<errno> "
10609 "はエラーを表す値に設定される。"
10610
10611 #. type: Plain text
10612 #: build/C/man2/sigwaitinfo.2:123
10613 msgid ""
10614 "No signal in I<set> was became pending within the I<timeout> period "
10615 "specified to B<sigtimedwait>()."
10616 msgstr ""
10617 "I<set> のうちのどのシグナルも B<sigtimedwait>()  に指定された I<timeout> の期"
10618 "間内に処理待ちにならなかった。"
10619
10620 #. type: Plain text
10621 #: build/C/man2/sigwaitinfo.2:129
10622 msgid ""
10623 "The wait was interrupted by a signal handler; see B<signal>(7).  (This "
10624 "handler was for a signal other than one of those in I<set>.)"
10625 msgstr ""
10626 "シグナル待ちがシグナルハンドラによって中断 (interrupt) された (このハンドラ"
10627 "は I<set> にあるシグナル以外のものである)。 B<signal>(7)  参照。"
10628
10629 #. type: Plain text
10630 #: build/C/man2/sigwaitinfo.2:133
10631 msgid "I<timeout> was invalid."
10632 msgstr "I<timeout> が不正である。"
10633
10634 #. type: Plain text
10635 #: build/C/man2/sigwaitinfo.2:153
10636 msgid ""
10637 "In normal usage, the calling program blocks the signals in I<set> via a "
10638 "prior call to B<sigprocmask>(2)  (so that the default disposition for these "
10639 "signals does not occur if they become pending between successive calls to "
10640 "B<sigwaitinfo>()  or B<sigtimedwait>())  and does not establish handlers for "
10641 "these signals.  In a multithreaded program, the signal should be blocked in "
10642 "all threads, in order to prevent the signal being treated according to its "
10643 "default disposition in a thread other than the one calling B<sigwaitinfo>()  "
10644 "or B<sigtimedwait>())."
10645 msgstr ""
10646 "通常の使用法では、呼び出し側プロセスはこれらの関数より先に B<sigprocmask>"
10647 "(2)  の呼び出すことにより I<set> に含まれるシグナルをブロックし (そのためにこ"
10648 "れらのシグナルがこの後に続く B<sigwaitinfo>()  や B<sigtimedwait>()  の呼び出"
10649 "しの間に処理待ちになった場合には、デフォルトの動作は行われず)、 これらのシグ"
10650 "ナルに対するハンドラは設定しない。 マルチスレッドプログラムでは、 "
10651 "B<sigwaitinfo>()  や B<sigtimedwait>() を呼び出したスレッド以外のスレッドで、"
10652 "そのシグナルがデフォルトの動作に基いて処理されないように、全てのスレッドで該"
10653 "当シグナルをブロックすべきである。"
10654
10655 #. type: Plain text
10656 #: build/C/man2/sigwaitinfo.2:158
10657 msgid ""
10658 "The set of signals that is pending for a given thread is the union of the "
10659 "set of signals that is pending specifically for that thread and the set of "
10660 "signals that is pending for the process as a whole (see B<signal>(7))."
10661 msgstr ""
10662 "指定されたスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体宛ての"
10663 "処理待ちのシグナル集合と、プロセス全体宛ての 処理待ちのシグナル集合をあわせた"
10664 "ものである (B<signal>(7)  参照)。"
10665
10666 #. type: Plain text
10667 #: build/C/man2/sigwaitinfo.2:164
10668 msgid "Attempts to wait for B<SIGKILL> and B<SIGSTOP> are silently ignored."
10669 msgstr "B<SIGKILL> と B<SIGSTOP> を待とうとした場合、黙って無視される。"
10670
10671 #. type: Plain text
10672 #: build/C/man2/sigwaitinfo.2:173
10673 msgid ""
10674 "If multiple threads of a process are blocked waiting for the same signal(s) "
10675 "in B<sigwaitinfo>()  or B<sigtimedwait>(), then exactly one of the threads "
10676 "will actually receive the signal if it becomes pending for the process as a "
10677 "whole; which of the threads receives the signal is indeterminate."
10678 msgstr ""
10679 "一つのプロセス内の複数のスレッドが B<sigwaitinfo>()  や B<sigtimedwait>()  で"
10680 "同じシグナルを待って停止した場合、 プロセス全体宛てのシグナルが処理待ちになる"
10681 "と、複数のスレッドのうち一つだけが 実際にそのシグナルを受信することになる。 "
10682 "どのスレッドがシグナルを受信するかは決まっていない。"
10683
10684 #. type: Plain text
10685 #: build/C/man2/sigwaitinfo.2:182
10686 msgid ""
10687 "POSIX leaves the meaning of a NULL value for the I<timeout> argument of "
10688 "B<sigtimedwait>()  unspecified, permitting the possibility that this has the "
10689 "same meaning as a call to B<sigwaitinfo>(), and indeed this is what is done "
10690 "on Linux."
10691 msgstr ""
10692 "POSIX では B<sigtimedwait>()  の引き数 I<timeout> の値を NULL にした場合の意"
10693 "味を未定義としている。 B<sigwaitinfo>()  を呼び出したのと同じ意味としてもよい"
10694 "ことになっており、 実際 Linux ではこのように動作する。"
10695
10696 #. type: Plain text
10697 #: build/C/man2/sigwaitinfo.2:187
10698 msgid ""
10699 "On Linux, B<sigwaitinfo>()  is a library function implemented on top of "
10700 "B<sigtimedwait>()."
10701 msgstr ""
10702 "Linux では、 B<sigwaitinfo>()  は B<sigtimedwait>()  を用いて実装されたライブ"
10703 "ラリ関数である。"
10704
10705 #. type: Plain text
10706 #: build/C/man2/sigwaitinfo.2:199
10707 msgid ""
10708 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
10709 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), B<signal>"
10710 "(7), B<time>(7)"
10711 msgstr ""
10712 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
10713 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), B<signal>"
10714 "(7), B<time>(7)"
10715
10716 #. type: TH
10717 #: build/C/man3/sysv_signal.3:25
10718 #, no-wrap
10719 msgid "SYSV_SIGNAL"
10720 msgstr "SYSV_SIGNAL"
10721
10722 #. type: TH
10723 #: build/C/man3/sysv_signal.3:25
10724 #, no-wrap
10725 msgid "2007-05-04"
10726 msgstr "2007-05-04"
10727
10728 #. type: Plain text
10729 #: build/C/man3/sysv_signal.3:28
10730 msgid "sysv_signal - signal handling with System V semantics"
10731 msgstr "sysv_signal - System V 方式のシグナル処理"
10732
10733 #. type: Plain text
10734 #: build/C/man3/sysv_signal.3:30
10735 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
10736 msgstr "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */"
10737
10738 #. type: Plain text
10739 #: build/C/man3/sysv_signal.3:36
10740 msgid ""
10741 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
10742 msgstr ""
10743 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
10744
10745 #. type: Plain text
10746 #: build/C/man3/sysv_signal.3:41
10747 msgid ""
10748 "The B<sysv_signal>()  function takes the same arguments, and performs the "
10749 "same task, as B<signal>(2)."
10750 msgstr ""
10751 "B<sysv_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
10752 "る。"
10753
10754 #. type: Plain text
10755 #: build/C/man3/sysv_signal.3:51
10756 msgid ""
10757 "However B<sysv_signal>()  provides the System V unreliable signal semantics, "
10758 "that is: a) the disposition of the signal is reset to the default when the "
10759 "handler is invoked; b) delivery of further instances of the signal is not "
10760 "blocked while the signal handler is executing; and c) if the handler "
10761 "interrupts (certain) blocking system calls, then the system call is not "
10762 "automatically restarted."
10763 msgstr ""
10764 "しかしながら、 B<sysv_signal>()  は System V の信頼性に欠けるシグナル処理方式"
10765 "を提供している。 信頼性に欠けるシグナル処理方式は以下の特徴を持つ。 a) ハンド"
10766 "ラが起動されると、シグナルの処理方法 (disposition) が デフォルトにリセットさ"
10767 "れる、 b) シグナルハンドラの実行中は、それ以降に発生した同じシグナルの配送が "
10768 "ブロックされない、 c) ハンドラが停止中の (blocking している) システムコールを"
10769 "中断した場合、 自動的に再開されないシステムコールがある。"
10770
10771 #. type: Plain text
10772 #: build/C/man3/sysv_signal.3:57
10773 msgid ""
10774 "The B<sysv_signal>()  function returns the previous value of the signal "
10775 "handler, or B<SIG_ERR> on error."
10776 msgstr ""
10777 "B<sysv_signal>()  関数はシグナルハンドラの直前の値を返す。 エラーの場合、 "
10778 "B<SIG_ERR> を返す。"
10779
10780 #. type: Plain text
10781 #: build/C/man3/sysv_signal.3:62
10782 msgid "This function is nonstandard."
10783 msgstr "この関数は非標準である。"
10784
10785 #. type: Plain text
10786 #: build/C/man3/sysv_signal.3:68
10787 msgid ""
10788 "Use of B<sysv_signal>()  should be avoided; use B<sigaction>(2)  instead."
10789 msgstr ""
10790 "B<sysv_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使う"
10791 "こと。"
10792
10793 #. type: Plain text
10794 #: build/C/man3/sysv_signal.3:79
10795 msgid ""
10796 "On older Linux systems, B<sysv_signal>()  and B<signal>(2)  were "
10797 "equivalent.  But on newer systems, B<signal>(2)  provides reliable signal "
10798 "semantics; see B<signal>(2)  for details."
10799 msgstr ""
10800 "以前の Linux システムでは、 B<sysv_signal>()  と B<signal>(2)  は等価であっ"
10801 "た。しかし、新しめのシステムでは、 B<signal>(2)  は信頼性のあるシグナル処理方"
10802 "式を提供している。 詳細は B<signal>(2)  を参照。"
10803
10804 #. type: Plain text
10805 #: build/C/man3/sysv_signal.3:92
10806 msgid "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
10807 msgstr "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
10808
10809 #. type: TH
10810 #: build/C/man2/timer_create.2:31
10811 #, no-wrap
10812 msgid "TIMER_CREATE"
10813 msgstr "TIMER_CREATE"
10814
10815 #. type: TH
10816 #: build/C/man2/timer_create.2:31
10817 #, no-wrap
10818 msgid "2010-09-27"
10819 msgstr "2010-09-27"
10820
10821 #. type: Plain text
10822 #: build/C/man2/timer_create.2:34
10823 msgid "timer_create - create a POSIX per-process timer"
10824 msgstr ""
10825
10826 #. type: Plain text
10827 #: build/C/man2/timer_create.2:38
10828 #, no-wrap
10829 msgid ""
10830 "B<#include E<lt>signal.hE<gt>>\n"
10831 "B<#include E<lt>time.hE<gt>>\n"
10832 msgstr ""
10833 "B<#include E<lt>signal.hE<gt>>\n"
10834 "B<#include E<lt>time.hE<gt>>\n"
10835
10836 #. type: Plain text
10837 #: build/C/man2/timer_create.2:41
10838 #, no-wrap
10839 msgid ""
10840 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
10841 "B<                 timer_t *>I<timerid>B<);>\n"
10842 msgstr ""
10843 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
10844 "B<                 timer_t *>I<timerid>B<);>\n"
10845
10846 #. type: Plain text
10847 #: build/C/man2/timer_create.2:44 build/C/man2/timer_delete.2:37
10848 #: build/C/man2/timer_getoverrun.2:37 build/C/man2/timer_settime.2:41
10849 msgid "Link with I<-lrt>."
10850 msgstr ""
10851
10852 #. type: Plain text
10853 #: build/C/man2/timer_create.2:52
10854 msgid "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10855 msgstr "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10856
10857 #. type: Plain text
10858 #: build/C/man2/timer_create.2:60
10859 msgid ""
10860 "B<timer_create>()  creates a new per-process interval timer.  The ID of the "
10861 "new timer is returned in the buffer pointed to by I<timerid>, which must be "
10862 "a non-NULL pointer.  This ID is unique within the process, until the timer "
10863 "is deleted.  The new timer is initially disarmed."
10864 msgstr ""
10865
10866 #. type: Plain text
10867 #: build/C/man2/timer_create.2:65
10868 msgid ""
10869 "The I<clockid> argument specifies the clock that the new timer uses to "
10870 "measure time.  It can be specified as one of the following values:"
10871 msgstr ""
10872
10873 #. type: TP
10874 #: build/C/man2/timer_create.2:65
10875 #, no-wrap
10876 msgid "B<CLOCK_REALTIME>"
10877 msgstr "B<CLOCK_REALTIME>"
10878
10879 #. type: Plain text
10880 #: build/C/man2/timer_create.2:68
10881 msgid "A settable system-wide real-time clock."
10882 msgstr ""
10883
10884 #. type: TP
10885 #: build/C/man2/timer_create.2:68
10886 #, no-wrap
10887 msgid "B<CLOCK_MONOTONIC>"
10888 msgstr "B<CLOCK_MONOTONIC>"
10889
10890 #.  Note: the CLOCK_MONOTONIC_RAW clock added for clock_gettime()
10891 #.  in 2.6.28 is not supported for POSIX timers -- mtk, Feb 2009
10892 #. type: Plain text
10893 #: build/C/man2/timer_create.2:75
10894 msgid ""
10895 "A nonsettable monotonically increasing clock that measures time from some "
10896 "unspecified point in the past that does not change after system startup."
10897 msgstr ""
10898
10899 #. type: TP
10900 #: build/C/man2/timer_create.2:75
10901 #, no-wrap
10902 msgid "B<CLOCK_PROCESS_CPUTIME_ID> (since Linux 2.6.12)"
10903 msgstr ""
10904
10905 #. type: Plain text
10906 #: build/C/man2/timer_create.2:79
10907 msgid ""
10908 "A clock that measures (user and system) CPU time consumed by (all of the "
10909 "threads in) the calling process."
10910 msgstr ""
10911
10912 #. type: TP
10913 #: build/C/man2/timer_create.2:79
10914 #, no-wrap
10915 msgid "B<CLOCK_THREAD_CPUTIME_ID> (since Linux 2.6.12)"
10916 msgstr ""
10917
10918 #.  The CLOCK_MONOTONIC_RAW that was added in 2.6.28 can't be used
10919 #.  to create a timer -- mtk, Feb 2009
10920 #. type: Plain text
10921 #: build/C/man2/timer_create.2:85
10922 msgid ""
10923 "A clock that measures (user and system) CPU time consumed by the calling "
10924 "thread."
10925 msgstr ""
10926
10927 #. type: Plain text
10928 #: build/C/man2/timer_create.2:94
10929 msgid ""
10930 "As well as the above values, I<clockid> can be specified as the I<clockid> "
10931 "returned by a call to B<clock_getcpuclockid>(3)  or B<pthread_getcpuclockid>"
10932 "(3)."
10933 msgstr ""
10934
10935 #. type: Plain text
10936 #: build/C/man2/timer_create.2:103
10937 msgid ""
10938 "The I<sevp> argument points to a I<sigevent> structure that specifies how "
10939 "the caller should be notified when the timer expires.  For the definition "
10940 "and general details of this structure, see B<sigevent>(7)."
10941 msgstr ""
10942
10943 #. type: Plain text
10944 #: build/C/man2/timer_create.2:107
10945 msgid "The I<sevp.sigev_notify> field can have the following values:"
10946 msgstr ""
10947
10948 #. type: Plain text
10949 #: build/C/man2/timer_create.2:112
10950 msgid ""
10951 "Don't asynchronously notify when the timer expires.  Progress of the timer "
10952 "can be monitored using B<timer_gettime>(2)."
10953 msgstr ""
10954
10955 #. type: Plain text
10956 #: build/C/man2/timer_create.2:130
10957 msgid ""
10958 "Upon timer expiration, generate the signal I<sigev_signo> for the process.  "
10959 "See B<sigevent>(7)  for general details.  The I<si_code> field of the "
10960 "I<siginfo_t> structure will be set to B<SI_TIMER>.  At any point in time, at "
10961 "most one signal is queued to the process for a given timer; see "
10962 "B<timer_getoverrun>(2)  for more details."
10963 msgstr ""
10964
10965 #. type: Plain text
10966 #: build/C/man2/timer_create.2:138
10967 msgid ""
10968 "Upon timer expiration, invoke I<sigev_notify_function> as if it were the "
10969 "start function of a new thread.  See B<sigevent>(7)  for details."
10970 msgstr ""
10971
10972 #. type: Plain text
10973 #: build/C/man2/timer_create.2:152
10974 msgid ""
10975 "As for B<SIGEV_SIGNAL>, but the signal is targeted at the thread whose ID is "
10976 "given in I<sigev_notify_thread_id>, which must be a thread in the same "
10977 "process as the caller.  The I<sigev_notify_thread_id> field specifies a "
10978 "kernel thread ID, that is, the value returned by B<clone>(2)  or B<gettid>"
10979 "(2).  This flag is intended only for use by threading libraries."
10980 msgstr ""
10981
10982 #. type: Plain text
10983 #: build/C/man2/timer_create.2:167
10984 msgid ""
10985 "Specifying I<sevp> as NULL is equivalent to specifying a pointer to a "
10986 "I<sigevent> structure in which I<sigev_notify> is B<SIGEV_SIGNAL>, "
10987 "I<sigev_signo> is B<SIGALRM>, and I<sigev_value.sival_int> is the timer ID."
10988 msgstr ""
10989
10990 #. type: Plain text
10991 #: build/C/man2/timer_create.2:175
10992 msgid ""
10993 "On success, B<timer_create>()  returns 0, and the ID of the new timer is "
10994 "placed in I<*timerid>.  On failure, -1 is returned, and I<errno> is set to "
10995 "indicate the error."
10996 msgstr ""
10997
10998 #. type: Plain text
10999 #: build/C/man2/timer_create.2:179
11000 msgid "Temporary error during kernel allocation of timer structures."
11001 msgstr ""
11002
11003 #. type: Plain text
11004 #: build/C/man2/timer_create.2:187
11005 msgid ""
11006 "Clock ID, I<sigev_notify>, I<sigev_signo>, or I<sigev_notify_thread_id> is "
11007 "invalid."
11008 msgstr ""
11009
11010 #.  glibc layer: malloc()
11011 #. type: Plain text
11012 #: build/C/man2/timer_create.2:191
11013 msgid "Could not allocate memory."
11014 msgstr ""
11015
11016 #. type: Plain text
11017 #: build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:67
11018 #: build/C/man2/timer_getoverrun.2:97
11019 msgid "This system call is available since Linux 2.6."
11020 msgstr ""
11021
11022 #. type: Plain text
11023 #: build/C/man2/timer_create.2:198
11024 msgid "A program may create multiple interval timers using B<timer_create>()."
11025 msgstr ""
11026
11027 #. type: Plain text
11028 #: build/C/man2/timer_create.2:203
11029 msgid ""
11030 "Timers are not inherited by the child of a B<fork>(2), and are disarmed and "
11031 "deleted during an B<execve>(2)."
11032 msgstr ""
11033
11034 #. type: Plain text
11035 #: build/C/man2/timer_create.2:211
11036 msgid ""
11037 "The kernel preallocates a \"queued real-time signal\" for each timer created "
11038 "using B<timer_create>().  Consequently, the number of timers is limited by "
11039 "the B<RLIMIT_SIGPENDING> resource limit (see B<setrlimit>(2))."
11040 msgstr ""
11041
11042 #. type: Plain text
11043 #: build/C/man2/timer_create.2:216
11044 msgid ""
11045 "The timers created by B<timer_create>()  are commonly known as \"POSIX "
11046 "(interval) timers\".  The POSIX timers API consists of the following "
11047 "interfaces:"
11048 msgstr ""
11049
11050 #. type: Plain text
11051 #: build/C/man2/timer_create.2:219
11052 msgid "B<timer_create>(): Create a timer."
11053 msgstr ""
11054
11055 #. type: Plain text
11056 #: build/C/man2/timer_create.2:222
11057 msgid "B<timer_settime>(2): Arm (start) or disarm (stop) a timer."
11058 msgstr ""
11059
11060 #. type: Plain text
11061 #: build/C/man2/timer_create.2:226
11062 msgid ""
11063 "B<timer_gettime>(2): Fetch the time remaining until the next expiration of a "
11064 "timer, along with the interval setting of the timer."
11065 msgstr ""
11066
11067 #. type: Plain text
11068 #: build/C/man2/timer_create.2:229
11069 msgid ""
11070 "B<timer_getoverrun>(2): Return the overrun count for the last timer "
11071 "expiration."
11072 msgstr ""
11073
11074 #. type: Plain text
11075 #: build/C/man2/timer_create.2:232
11076 msgid "B<timer_delete>(2): Disarm and delete a timer."
11077 msgstr ""
11078
11079 #. type: Plain text
11080 #: build/C/man2/timer_create.2:235
11081 msgid ""
11082 "Part of the implementation of the POSIX timers API is provided by glibc.  In "
11083 "particular:"
11084 msgstr ""
11085
11086 #. type: Plain text
11087 #: build/C/man2/timer_create.2:239
11088 msgid ""
11089 "The functionality for B<SIGEV_THREAD> is implemented within glibc, rather "
11090 "than the kernel."
11091 msgstr ""
11092
11093 #.  See the glibc source file kernel-posix-timers.h for the structure
11094 #.  that glibc uses to map user-space timer IDs to kernel timer IDs
11095 #.  The kernel-level timer ID is exposed via siginfo.si_tid.
11096 #. type: Plain text
11097 #: build/C/man2/timer_create.2:245
11098 msgid ""
11099 "The timer IDs presented at user level are maintained by glibc, which maps "
11100 "these IDs to the timer IDs employed by the kernel."
11101 msgstr ""
11102
11103 #. type: Plain text
11104 #: build/C/man2/timer_create.2:253
11105 msgid ""
11106 "The POSIX timers system calls first appeared in Linux 2.6.  Prior to this, "
11107 "glibc provided an incomplete user-space implementation (B<CLOCK_REALTIME> "
11108 "timers only) using POSIX threads, and current glibc falls back to this "
11109 "implementation on systems running pre-2.6 Linux kernels."
11110 msgstr ""
11111
11112 #. type: Plain text
11113 #: build/C/man2/timer_create.2:265
11114 msgid ""
11115 "The program below takes two arguments: a sleep period in seconds, and a "
11116 "timer frequency in nanoseconds.  The program establishes a handler for the "
11117 "signal it uses for the timer, blocks that signal, creates and arms a timer "
11118 "that expires with the given frequency, sleeps for the specified number of "
11119 "seconds, and then unblocks the timer signal.  Assuming that the timer "
11120 "expired at least once while the program slept, the signal handler will be "
11121 "invoked, and the handler displays some information about the timer "
11122 "notification.  The program terminates after one invocation of the signal "
11123 "handler."
11124 msgstr ""
11125
11126 #. type: Plain text
11127 #: build/C/man2/timer_create.2:270
11128 msgid ""
11129 "In the following example run, the program sleeps for 1 second, after "
11130 "creating a timer that has a frequency of 100 nanoseconds.  By the time the "
11131 "signal is unblocked and delivered, there have been around ten million "
11132 "overruns."
11133 msgstr ""
11134
11135 #. type: Plain text
11136 #: build/C/man2/timer_create.2:282
11137 #, no-wrap
11138 msgid ""
11139 "$ B<./a.out 1 100>\n"
11140 "Establishing handler for signal 34\n"
11141 "Blocking signal 34\n"
11142 "timer ID is 0x804c008\n"
11143 "Sleeping for 1 seconds\n"
11144 "Unblocking signal 34\n"
11145 "Caught signal 34\n"
11146 "    sival_ptr = 0xbfb174f4;     *sival_ptr = 0x804c008\n"
11147 "    overrun count = 10004886\n"
11148 msgstr ""
11149
11150 #. type: Plain text
11151 #: build/C/man2/timer_create.2:292
11152 #, no-wrap
11153 msgid ""
11154 "#include E<lt>stdlib.hE<gt>\n"
11155 "#include E<lt>unistd.hE<gt>\n"
11156 "#include E<lt>stdio.hE<gt>\n"
11157 "#include E<lt>signal.hE<gt>\n"
11158 "#include E<lt>time.hE<gt>\n"
11159 msgstr ""
11160 "#include E<lt>stdlib.hE<gt>\n"
11161 "#include E<lt>unistd.hE<gt>\n"
11162 "#include E<lt>stdio.hE<gt>\n"
11163 "#include E<lt>signal.hE<gt>\n"
11164 "#include E<lt>time.hE<gt>\n"
11165
11166 #. type: Plain text
11167 #: build/C/man2/timer_create.2:295
11168 #, no-wrap
11169 msgid ""
11170 "#define CLOCKID CLOCK_REALTIME\n"
11171 "#define SIG SIGRTMIN\n"
11172 msgstr ""
11173 "#define CLOCKID CLOCK_REALTIME\n"
11174 "#define SIG SIGRTMIN\n"
11175
11176 #. type: Plain text
11177 #: build/C/man2/timer_create.2:298
11178 #, no-wrap
11179 msgid ""
11180 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11181 "                        } while (0)\n"
11182 msgstr ""
11183 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11184 "                        } while (0)\n"
11185
11186 #. type: Plain text
11187 #: build/C/man2/timer_create.2:304
11188 #, no-wrap
11189 msgid ""
11190 "static void\n"
11191 "print_siginfo(siginfo_t *si)\n"
11192 "{\n"
11193 "    timer_t *tidp;\n"
11194 "    int or;\n"
11195 msgstr ""
11196 "static void\n"
11197 "print_siginfo(siginfo_t *si)\n"
11198 "{\n"
11199 "    timer_t *tidp;\n"
11200 "    int or;\n"
11201
11202 #. type: Plain text
11203 #: build/C/man2/timer_create.2:306
11204 #, no-wrap
11205 msgid "    tidp = si-E<gt>si_value.sival_ptr;\n"
11206 msgstr "    tidp = si-E<gt>si_value.sival_ptr;\n"
11207
11208 #. type: Plain text
11209 #: build/C/man2/timer_create.2:309
11210 #, no-wrap
11211 msgid ""
11212 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11213 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11214 msgstr ""
11215 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11216 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11217
11218 #. type: Plain text
11219 #: build/C/man2/timer_create.2:316
11220 #, no-wrap
11221 msgid ""
11222 "    or = timer_getoverrun(*tidp);\n"
11223 "    if (or == -1)\n"
11224 "        errExit(\"timer_getoverrun\");\n"
11225 "    else\n"
11226 "        printf(\"    overrun count = %d\\en\", or);\n"
11227 "}\n"
11228 msgstr ""
11229 "    or = timer_getoverrun(*tidp);\n"
11230 "    if (or == -1)\n"
11231 "        errExit(\"timer_getoverrun\");\n"
11232 "    else\n"
11233 "        printf(\"    overrun count = %d\\en\", or);\n"
11234 "}\n"
11235
11236 #. type: Plain text
11237 #: build/C/man2/timer_create.2:323
11238 #, no-wrap
11239 msgid ""
11240 "static void\n"
11241 "handler(int sig, siginfo_t *si, void *uc)\n"
11242 "{\n"
11243 "    /* Note: calling printf() from a signal handler is not\n"
11244 "       strictly correct, since printf() is not async-signal-safe;\n"
11245 "       see signal(7) */\n"
11246 msgstr ""
11247 "static void\n"
11248 "handler(int sig, siginfo_t *si, void *uc)\n"
11249 "{\n"
11250 "    /* Note: calling printf() from a signal handler is not\n"
11251 "       strictly correct, since printf() is not async-signal-safe;\n"
11252 "       see signal(7) */\n"
11253
11254 #. type: Plain text
11255 #: build/C/man2/timer_create.2:328
11256 #, no-wrap
11257 msgid ""
11258 "    printf(\"Caught signal %d\\en\", sig);\n"
11259 "    print_siginfo(si);\n"
11260 "    signal(sig, SIG_IGN);\n"
11261 "}\n"
11262 msgstr ""
11263 "    printf(\"Caught signal %d\\en\", sig);\n"
11264 "    print_siginfo(si);\n"
11265 "    signal(sig, SIG_IGN);\n"
11266 "}\n"
11267
11268 #. type: Plain text
11269 #: build/C/man2/timer_create.2:338
11270 #, no-wrap
11271 msgid ""
11272 "int\n"
11273 "main(int argc, char *argv[])\n"
11274 "{\n"
11275 "    timer_t timerid;\n"
11276 "    struct sigevent sev;\n"
11277 "    struct itimerspec its;\n"
11278 "    long long freq_nanosecs;\n"
11279 "    sigset_t mask;\n"
11280 "    struct sigaction sa;\n"
11281 msgstr ""
11282 "int\n"
11283 "main(int argc, char *argv[])\n"
11284 "{\n"
11285 "    timer_t timerid;\n"
11286 "    struct sigevent sev;\n"
11287 "    struct itimerspec its;\n"
11288 "    long long freq_nanosecs;\n"
11289 "    sigset_t mask;\n"
11290 "    struct sigaction sa;\n"
11291
11292 #. type: Plain text
11293 #: build/C/man2/timer_create.2:344
11294 #, no-wrap
11295 msgid ""
11296 "    if (argc != 3) {\n"
11297 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11298 "                argv[0]);\n"
11299 "        exit(EXIT_FAILURE);\n"
11300 "    }\n"
11301 msgstr ""
11302 "    if (argc != 3) {\n"
11303 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11304 "                argv[0]);\n"
11305 "        exit(EXIT_FAILURE);\n"
11306 "    }\n"
11307
11308 #. type: Plain text
11309 #: build/C/man2/timer_create.2:346
11310 #, no-wrap
11311 msgid "    /* Establish handler for timer signal */\n"
11312 msgstr "    /* Establish handler for timer signal */\n"
11313
11314 #. type: Plain text
11315 #: build/C/man2/timer_create.2:353
11316 #, no-wrap
11317 msgid ""
11318 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11319 "    sa.sa_flags = SA_SIGINFO;\n"
11320 "    sa.sa_sigaction = handler;\n"
11321 "    sigemptyset(&sa.sa_mask);\n"
11322 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11323 "        errExit(\"sigaction\");\n"
11324 msgstr ""
11325 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11326 "    sa.sa_flags = SA_SIGINFO;\n"
11327 "    sa.sa_sigaction = handler;\n"
11328 "    sigemptyset(&sa.sa_mask);\n"
11329 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11330 "        errExit(\"sigaction\");\n"
11331
11332 #. type: Plain text
11333 #: build/C/man2/timer_create.2:355
11334 #, no-wrap
11335 msgid "    /* Block timer signal temporarily */\n"
11336 msgstr "    /* Block timer signal temporarily */\n"
11337
11338 #. type: Plain text
11339 #: build/C/man2/timer_create.2:361
11340 #, no-wrap
11341 msgid ""
11342 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11343 "    sigemptyset(&mask);\n"
11344 "    sigaddset(&mask, SIG);\n"
11345 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11346 "        errExit(\"sigprocmask\");\n"
11347 msgstr ""
11348 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11349 "    sigemptyset(&mask);\n"
11350 "    sigaddset(&mask, SIG);\n"
11351 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11352 "        errExit(\"sigprocmask\");\n"
11353
11354 #. type: Plain text
11355 #: build/C/man2/timer_create.2:363
11356 #, no-wrap
11357 msgid "    /* Create the timer */\n"
11358 msgstr "    /* Create the timer */\n"
11359
11360 #. type: Plain text
11361 #: build/C/man2/timer_create.2:369
11362 #, no-wrap
11363 msgid ""
11364 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11365 "    sev.sigev_signo = SIG;\n"
11366 "    sev.sigev_value.sival_ptr = &timerid;\n"
11367 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11368 "        errExit(\"timer_create\");\n"
11369 msgstr ""
11370 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11371 "    sev.sigev_signo = SIG;\n"
11372 "    sev.sigev_value.sival_ptr = &timerid;\n"
11373 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11374 "        errExit(\"timer_create\");\n"
11375
11376 #. type: Plain text
11377 #: build/C/man2/timer_create.2:371
11378 #, no-wrap
11379 msgid "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11380 msgstr "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11381
11382 #. type: Plain text
11383 #: build/C/man2/timer_create.2:373
11384 #, no-wrap
11385 msgid "    /* Start the timer */\n"
11386 msgstr "    /* Start the timer */\n"
11387
11388 #. type: Plain text
11389 #: build/C/man2/timer_create.2:379
11390 #, no-wrap
11391 msgid ""
11392 "    freq_nanosecs = atoll(argv[2]);\n"
11393 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11394 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11395 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11396 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11397 msgstr ""
11398 "    freq_nanosecs = atoll(argv[2]);\n"
11399 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11400 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11401 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11402 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11403
11404 #. type: Plain text
11405 #: build/C/man2/timer_create.2:382
11406 #, no-wrap
11407 msgid ""
11408 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11409 "         errExit(\"timer_settime\");\n"
11410 msgstr ""
11411 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11412 "         errExit(\"timer_settime\");\n"
11413
11414 #. type: Plain text
11415 #: build/C/man2/timer_create.2:385
11416 #, no-wrap
11417 msgid ""
11418 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11419 "       multiple times */\n"
11420 msgstr ""
11421 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11422 "       multiple times */\n"
11423
11424 #. type: Plain text
11425 #: build/C/man2/timer_create.2:388
11426 #, no-wrap
11427 msgid ""
11428 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11429 "    sleep(atoi(argv[1]));\n"
11430 msgstr ""
11431 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11432 "    sleep(atoi(argv[1]));\n"
11433
11434 #. type: Plain text
11435 #: build/C/man2/timer_create.2:391
11436 #, no-wrap
11437 msgid ""
11438 "    /* Unlock the timer signal, so that timer notification\n"
11439 "       can be delivered */\n"
11440 msgstr ""
11441 "    /* Unlock the timer signal, so that timer notification\n"
11442 "       can be delivered */\n"
11443
11444 #. type: Plain text
11445 #: build/C/man2/timer_create.2:395
11446 #, no-wrap
11447 msgid ""
11448 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
11449 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
11450 "        errExit(\"sigprocmask\");\n"
11451 msgstr ""
11452 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
11453 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
11454 "        errExit(\"sigprocmask\");\n"
11455
11456 #. type: Plain text
11457 #: build/C/man2/timer_create.2:398 build/C/man2/timerfd_create.2:540
11458 #, no-wrap
11459 msgid ""
11460 "    exit(EXIT_SUCCESS);\n"
11461 "}\n"
11462 msgstr ""
11463 "    exit(EXIT_SUCCESS);\n"
11464 "}\n"
11465
11466 #. type: Plain text
11467 #: build/C/man2/timer_create.2:414
11468 msgid ""
11469 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), B<timer_getoverrun>"
11470 "(2), B<timer_settime>(2), B<timerfd_create>(2), B<clock_getcpuclockid>(3), "
11471 "B<pthread_getcpuclockid>(3), B<pthreads>(7), B<sigevent>(7), B<signal>(7), "
11472 "B<time>(7)"
11473 msgstr ""
11474 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), B<timer_getoverrun>"
11475 "(2), B<timer_settime>(2), B<timerfd_create>(2), B<clock_getcpuclockid>(3), "
11476 "B<pthread_getcpuclockid>(3), B<pthreads>(7), B<sigevent>(7), B<signal>(7), "
11477 "B<time>(7)"
11478
11479 #. type: TH
11480 #: build/C/man2/timer_delete.2:26
11481 #, no-wrap
11482 msgid "TIMER_DELETE"
11483 msgstr "TIMER_DELETE"
11484
11485 #. type: TH
11486 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
11487 #, no-wrap
11488 msgid "2009-02-20"
11489 msgstr "2009-02-20"
11490
11491 #. type: Plain text
11492 #: build/C/man2/timer_delete.2:29
11493 msgid "timer_delete - delete a POSIX per-process timer"
11494 msgstr ""
11495
11496 #. type: Plain text
11497 #: build/C/man2/timer_delete.2:32 build/C/man2/timer_getoverrun.2:32
11498 #: build/C/man2/timer_settime.2:33
11499 #, no-wrap
11500 msgid "B<#include E<lt>time.hE<gt>>\n"
11501 msgstr "B<#include E<lt>time.hE<gt>>\n"
11502
11503 #. type: Plain text
11504 #: build/C/man2/timer_delete.2:34
11505 #, no-wrap
11506 msgid "B<int timer_delete(timer_t >I<timerid>B<);>\n"
11507 msgstr "B<int timer_delete(timer_t >I<timerid>B<);>\n"
11508
11509 #. type: Plain text
11510 #: build/C/man2/timer_delete.2:45
11511 msgid "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11512 msgstr "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11513
11514 #. type: Plain text
11515 #: build/C/man2/timer_delete.2:53
11516 msgid ""
11517 "B<timer_delete>()  deletes the timer whose ID is given in I<timerid>.  If "
11518 "the timer was armed at the time of this call, it is disarmed before being "
11519 "deleted.  The treatment of any pending signal generated by the deleted timer "
11520 "is unspecified."
11521 msgstr ""
11522
11523 #. type: Plain text
11524 #: build/C/man2/timer_delete.2:60
11525 msgid ""
11526 "On success, B<timer_delete>()  returns 0.  On failure, -1 is returned, and "
11527 "I<errno> is set to indicate the error."
11528 msgstr ""
11529
11530 #. type: Plain text
11531 #: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
11532 msgid "I<timerid> is not a valid timer ID."
11533 msgstr ""
11534
11535 #. type: Plain text
11536 #: build/C/man2/timer_delete.2:75
11537 msgid ""
11538 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
11539 "B<timer_settime>(2), B<time>(7)"
11540 msgstr ""
11541 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
11542 "B<timer_settime>(2), B<time>(7)"
11543
11544 #. type: TH
11545 #: build/C/man2/timer_getoverrun.2:26
11546 #, no-wrap
11547 msgid "TIMER_GETOVERRUN"
11548 msgstr "TIMER_GETOVERRUN"
11549
11550 #. type: Plain text
11551 #: build/C/man2/timer_getoverrun.2:29
11552 msgid "timer_getoverrun - get overrun count for a POSIX per-process timer"
11553 msgstr ""
11554
11555 #. type: Plain text
11556 #: build/C/man2/timer_getoverrun.2:34
11557 #, no-wrap
11558 msgid "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
11559 msgstr "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
11560
11561 #. type: Plain text
11562 #: build/C/man2/timer_getoverrun.2:45
11563 msgid "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11564 msgstr "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11565
11566 #. type: Plain text
11567 #: build/C/man2/timer_getoverrun.2:56
11568 msgid ""
11569 "B<timer_getoverrun>()  returns the \"overrun count\" for the timer referred "
11570 "to by I<timerid>.  An application can use the overrun count to accurately "
11571 "calculate the number of timer expirations that would have occurred over a "
11572 "given time interval.  Timer overruns can occur both when receiving "
11573 "expiration notifications via signals (B<SIGEV_SIGNAL>), and via threads "
11574 "(B<SIGEV_THREAD>)."
11575 msgstr ""
11576
11577 #. type: Plain text
11578 #: build/C/man2/timer_getoverrun.2:76
11579 msgid ""
11580 "When expiration notifications are delivered via a signal, overruns can occur "
11581 "as follows.  Regardless of whether or not a real-time signal is used for "
11582 "timer notifications, the system queues at most one signal per timer.  (This "
11583 "is the behavior specified by POSIX.1-2001.  The alternative, queuing one "
11584 "signal for each timer expiration, could easily result in overflowing the "
11585 "allowed limits for queued signals on the system.)  Because of system "
11586 "scheduling delays, or because the signal may be temporarily blocked, there "
11587 "can be a delay between the time when the notification signal is generated "
11588 "and the time when it is delivered (e.g., caught by a signal handler) or "
11589 "accepted (e.g., using B<sigwaitinfo>(2)).  In this interval, further timer "
11590 "expirations may occur.  The timer overrun count is the number of additional "
11591 "timer expirations that occurred between the time when the signal was "
11592 "generated and when it was delivered or accepted."
11593 msgstr ""
11594
11595 #. type: Plain text
11596 #: build/C/man2/timer_getoverrun.2:82
11597 msgid ""
11598 "Timer overruns can also occur when expiration notifications are delivered "
11599 "via invocation of a thread, since there may be an arbitrary delay between an "
11600 "expiration of the timer and the invocation of the notification thread, and "
11601 "in that delay interval, additional timer expirations may occur"
11602 msgstr ""
11603
11604 #. type: Plain text
11605 #: build/C/man2/timer_getoverrun.2:90
11606 msgid ""
11607 "On success, B<timer_getoverrun>()  returns the overrun count of the "
11608 "specified timer; this count may be 0 if no overruns have occurred.  On "
11609 "failure, -1 is returned, and I<errno> is set to indicate the error."
11610 msgstr ""
11611
11612 #. type: Plain text
11613 #: build/C/man2/timer_getoverrun.2:111
11614 msgid ""
11615 "When timer notifications are delivered via signals (B<SIGEV_SIGNAL>), on "
11616 "Linux it is also possible to obtain the overrun count via the I<si_overrun> "
11617 "field of the I<siginfo_t> structure (see B<sigaction>(2)).  This allows an "
11618 "application to avoid the overhead of making a system call to obtain the "
11619 "overrun count, but is a nonportable extension to POSIX.1-2001."
11620 msgstr ""
11621
11622 #.  FIXME . Austin bug filed, 11 Feb 09
11623 #. type: Plain text
11624 #: build/C/man2/timer_getoverrun.2:115
11625 msgid ""
11626 "POSIX.1-2001 discusses timer overruns only in the context of timer "
11627 "notifications using signals."
11628 msgstr ""
11629
11630 #.  Bug filed: http://bugzilla.kernel.org/show_bug.cgi?id=12665
11631 #.  http://thread.gmane.org/gmane.linux.kernel/113276/
11632 #. type: Plain text
11633 #: build/C/man2/timer_getoverrun.2:128
11634 msgid ""
11635 "POSIX.1-2001 specifies that if the timer overrun count is equal to or "
11636 "greater than an implementation-defined maximum, B<DELAYTIMER_MAX>, then "
11637 "B<timer_getoverrun>()  should return B<DELAYTIMER_MAX>.  However, Linux does "
11638 "not implement this feature: instead, if the timer overrun value exceeds the "
11639 "maximum representable integer, the counter cycles, starting once more from "
11640 "low values."
11641 msgstr ""
11642
11643 #. type: Plain text
11644 #: build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212
11645 msgid "See B<timer_create>(2)."
11646 msgstr ""
11647
11648 #. type: Plain text
11649 #: build/C/man2/timer_getoverrun.2:141
11650 msgid ""
11651 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
11652 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
11653 "B<time>(7)"
11654 msgstr ""
11655 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
11656 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
11657 "B<time>(7)"
11658
11659 #. type: TH
11660 #: build/C/man2/timer_settime.2:26
11661 #, no-wrap
11662 msgid "TIMER_SETTIME"
11663 msgstr "TIMER_SETTIME"
11664
11665 #. type: TH
11666 #: build/C/man2/timer_settime.2:26
11667 #, no-wrap
11668 msgid "2012-10-15"
11669 msgstr "2012-10-15"
11670
11671 #. type: Plain text
11672 #: build/C/man2/timer_settime.2:30
11673 msgid ""
11674 "timer_settime, timer_gettime - arm/disarm and fetch state of POSIX per-"
11675 "process timer"
11676 msgstr ""
11677
11678 #. type: Plain text
11679 #: build/C/man2/timer_settime.2:38
11680 #, no-wrap
11681 msgid ""
11682 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
11683 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
11684 "B<                  struct itimerspec * >I<old_value>B<);>\n"
11685 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
11686 msgstr ""
11687 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
11688 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
11689 "B<                  struct itimerspec * >I<old_value>B<);>\n"
11690 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
11691
11692 #. type: Plain text
11693 #: build/C/man2/timer_settime.2:50
11694 msgid ""
11695 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11696 msgstr ""
11697 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11698
11699 #. type: Plain text
11700 #: build/C/man2/timer_settime.2:63
11701 msgid ""
11702 "B<timer_settime>()  arms or disarms the timer identified by I<timerid>.  The "
11703 "I<new_value> argument is pointer to an I<itimerspec> structure that "
11704 "specifies the new initial value and the new interval for the timer.  The "
11705 "I<itimerspec> structure is defined as follows:"
11706 msgstr ""
11707
11708 #. type: Plain text
11709 #: build/C/man2/timer_settime.2:70 build/C/man2/timerfd_create.2:128
11710 #, no-wrap
11711 msgid ""
11712 "struct timespec {\n"
11713 "    time_t tv_sec;                /* Seconds */\n"
11714 "    long   tv_nsec;               /* Nanoseconds */\n"
11715 "};\n"
11716 msgstr ""
11717 "struct timespec {\n"
11718 "    time_t tv_sec;                /* Seconds */\n"
11719 "    long   tv_nsec;               /* Nanoseconds */\n"
11720 "};\n"
11721
11722 #. type: Plain text
11723 #: build/C/man2/timer_settime.2:75
11724 #, no-wrap
11725 msgid ""
11726 "struct itimerspec {\n"
11727 "    struct timespec it_interval;  /* Timer interval */\n"
11728 "    struct timespec it_value;     /* Initial expiration */\n"
11729 "};\n"
11730 msgstr ""
11731 "struct itimerspec {\n"
11732 "    struct timespec it_interval;  /* Timer interval */\n"
11733 "    struct timespec it_value;     /* Initial expiration */\n"
11734 "};\n"
11735
11736 #. type: Plain text
11737 #: build/C/man2/timer_settime.2:87
11738 msgid ""
11739 "Each of the substructures of the I<itimerspec> structure is a I<timespec> "
11740 "structure that allows a time value to be specified in seconds and "
11741 "nanoseconds.  These time values are measured according to the clock that was "
11742 "specified when the timer was created by B<timer_create>(2)"
11743 msgstr ""
11744
11745 #. type: Plain text
11746 #: build/C/man2/timer_settime.2:101
11747 msgid ""
11748 "If I<new_value-E<gt>it_value> specifies a nonzero value (i.e., either "
11749 "subfield is nonzero), then B<timer_settime>()  arms (starts) the timer, "
11750 "setting it to initially expire at the given time.  (If the timer was already "
11751 "armed, then the previous settings are overwritten.)  If I<new_value-"
11752 "E<gt>it_value> specifies a zero value (i.e., both subfields are zero), then "
11753 "the timer is disarmed."
11754 msgstr ""
11755
11756 #. type: Plain text
11757 #: build/C/man2/timer_settime.2:113
11758 msgid ""
11759 "The I<new_value-E<gt>it_interval> field specifies the period of the timer, "
11760 "in seconds and nanoseconds.  If this field is nonzero, then each time that "
11761 "an armed timer expires, the timer is reloaded from the value specified in "
11762 "I<new_value-E<gt>it_interval>.  If I<new_value-E<gt>it_interval> specifies a "
11763 "zero value then the timer expires just once, at the time specified by "
11764 "I<it_value>."
11765 msgstr ""
11766
11767 #.  By experiment: the overrun count is set correctly, for CLOCK_REALTIME.
11768 #. type: Plain text
11769 #: build/C/man2/timer_settime.2:134
11770 msgid ""
11771 "By default, the initial expiration time specified in I<new_value-"
11772 "E<gt>it_value> is interpreted relative to the current time on the timer's "
11773 "clock at the time of the call.  This can be modified by specifying "
11774 "B<TIMER_ABSTIME> in I<flags>, in which case I<new_value-E<gt>it_value> is "
11775 "interpreted as an absolute value as measured on the timer's clock; that is, "
11776 "the timer will expire when the clock value reaches the value specified by "
11777 "I<new_value-E<gt>it_value>.  If the specified absolute time has already "
11778 "passed, then the timer expires immediately, and the overrun count (see "
11779 "B<timer_getoverrun>(2))  will be set correctly."
11780 msgstr ""
11781
11782 #.  Similar remarks might apply with respect to process and thread CPU time
11783 #.  clocks, but these clocks are not currently (2.6.28) settable on Linux.
11784 #. type: Plain text
11785 #: build/C/man2/timer_settime.2:144
11786 msgid ""
11787 "If the value of the B<CLOCK_REALTIME> clock is adjusted while an absolute "
11788 "timer based on that clock is armed, then the expiration of the timer will be "
11789 "appropriately adjusted.  Adjustments to the B<CLOCK_REALTIME> clock have no "
11790 "effect on relative timers based on that clock."
11791 msgstr ""
11792
11793 #. type: Plain text
11794 #: build/C/man2/timer_settime.2:153
11795 msgid ""
11796 "If I<old_value> is not NULL, then it points to a buffer that is used to "
11797 "return the previous interval of the timer (in I<old_value-"
11798 "E<gt>it_interval>)  and the amount of time until the timer would previously "
11799 "have next expired (in I<old_value-E<gt>it_value>)."
11800 msgstr ""
11801
11802 #. type: Plain text
11803 #: build/C/man2/timer_settime.2:173
11804 msgid ""
11805 "B<timer_gettime>()  returns the time until next expiration, and the "
11806 "interval, for the timer specified by I<timerid>, in the buffer pointed to by "
11807 "I<curr_value>.  The time remaining until the next timer expiration is "
11808 "returned in I<curr_value-E<gt>it_value>; this is always a relative value, "
11809 "regardless of whether the B<TIMER_ABSTIME> flag was used when arming the "
11810 "timer.  If the value returned in I<curr_value-E<gt>it_value> is zero, then "
11811 "the timer is currently disarmed.  The timer interval is returned in "
11812 "I<curr_value-E<gt>it_interval>.  If the value returned in I<curr_value-"
11813 "E<gt>it_interval> is zero, then this is a \"one-shot\" timer."
11814 msgstr ""
11815
11816 #. type: Plain text
11817 #: build/C/man2/timer_settime.2:182
11818 msgid ""
11819 "On success, B<timer_settime>()  and B<timer_gettime>()  return 0.  On error, "
11820 "-1 is returned, and I<errno> is set to indicate the error."
11821 msgstr ""
11822
11823 #. type: Plain text
11824 #: build/C/man2/timer_settime.2:184
11825 msgid "These functions may fail with the following errors:"
11826 msgstr ""
11827
11828 #. type: Plain text
11829 #: build/C/man2/timer_settime.2:191
11830 msgid "I<new_value>, I<old_value>, or I<curr_value> is not a valid pointer."
11831 msgstr ""
11832
11833 #.  FIXME . eventually: invalid value in flags
11834 #. type: Plain text
11835 #: build/C/man2/timer_settime.2:196
11836 msgid "I<timerid> is invalid."
11837 msgstr ""
11838
11839 #. type: Plain text
11840 #: build/C/man2/timer_settime.2:199
11841 msgid "B<timer_settime>()  may fail with the following errors:"
11842 msgstr ""
11843
11844 #. type: Plain text
11845 #: build/C/man2/timer_settime.2:205
11846 msgid ""
11847 "I<new_value.it_value> is negative; or I<new_value.it_value.tv_nsec> is "
11848 "negative or greater than 999,999,999."
11849 msgstr ""
11850
11851 #. type: Plain text
11852 #: build/C/man2/timer_settime.2:207
11853 msgid "These system calls are available since Linux 2.6."
11854 msgstr ""
11855
11856 #. type: Plain text
11857 #: build/C/man2/timer_settime.2:216
11858 msgid "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
11859 msgstr "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
11860
11861 #. type: TH
11862 #: build/C/man2/timerfd_create.2:21
11863 #, no-wrap
11864 msgid "TIMERFD_CREATE"
11865 msgstr "TIMERFD_CREATE"
11866
11867 #. type: TH
11868 #: build/C/man2/timerfd_create.2:21
11869 #, no-wrap
11870 msgid "2011-09-14"
11871 msgstr "2011-09-14"
11872
11873 #. type: Plain text
11874 #: build/C/man2/timerfd_create.2:25
11875 msgid ""
11876 "timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via "
11877 "file descriptors"
11878 msgstr ""
11879 "timerfd_create, timerfd_settime, timerfd_gettime - ファイルディスクリプタ経由"
11880 "で通知するタイマー"
11881
11882 #. type: Plain text
11883 #: build/C/man2/timerfd_create.2:28
11884 #, no-wrap
11885 msgid "B<#include E<lt>sys/timerfd.hE<gt>>\n"
11886 msgstr "B<#include E<lt>sys/timerfd.hE<gt>>\n"
11887
11888 #. type: Plain text
11889 #: build/C/man2/timerfd_create.2:30
11890 #, no-wrap
11891 msgid "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
11892 msgstr "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
11893
11894 #. type: Plain text
11895 #: build/C/man2/timerfd_create.2:34
11896 #, no-wrap
11897 msgid ""
11898 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
11899 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
11900 "B<                    struct itimerspec *>I<old_value>B<);>\n"
11901 msgstr ""
11902 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
11903 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
11904 "B<                    struct itimerspec *>I<old_value>B<);>\n"
11905
11906 #. type: Plain text
11907 #: build/C/man2/timerfd_create.2:36
11908 #, no-wrap
11909 msgid "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
11910 msgstr "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
11911
11912 #. type: Plain text
11913 #: build/C/man2/timerfd_create.2:49
11914 msgid ""
11915 "These system calls create and operate on a timer that delivers timer "
11916 "expiration notifications via a file descriptor.  They provide an alternative "
11917 "to the use of B<setitimer>(2)  or B<timer_create>(2), with the advantage "
11918 "that the file descriptor may be monitored by B<select>(2), B<poll>(2), and "
11919 "B<epoll>(7)."
11920 msgstr ""
11921 "これらのシステムコールは、満了通知をファイルディスクリプタ経由で配送する タイ"
11922 "マーの生成と操作を行う。 これらは、 B<setitimer>(2)  や B<timer_create>(2)  "
11923 "を用いる方法の代わりとなるものであり、このファイルディスクリプタを B<select>"
11924 "(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
11925
11926 #. type: Plain text
11927 #: build/C/man2/timerfd_create.2:61
11928 msgid ""
11929 "The use of these three system calls is analogous to the use of "
11930 "B<timer_create>(2), B<timer_settime>(2), and B<timer_gettime>(2).  (There is "
11931 "no analog of B<timer_getoverrun>(2), since that functionality is provided by "
11932 "B<read>(2), as described below.)"
11933 msgstr ""
11934 "これらのシステムコールを使うのは、それぞれ B<timer_create>(2), "
11935 "B<timer_settime>(2), B<timer_gettime>(2)  を使うのと同様である "
11936 "(B<timer_getoverrun>(2)  に対応するものはなく、以下で説明するように この機能"
11937 "は B<read>(2)  により提供される)。"
11938
11939 #. type: SS
11940 #: build/C/man2/timerfd_create.2:61
11941 #, no-wrap
11942 msgid "timerfd_create()"
11943 msgstr "timerfd_create()"
11944
11945 #. type: Plain text
11946 #: build/C/man2/timerfd_create.2:80
11947 msgid ""
11948 "B<timerfd_create>()  creates a new timer object, and returns a file "
11949 "descriptor that refers to that timer.  The I<clockid> argument specifies the "
11950 "clock that is used to mark the progress of the timer, and must be either "
11951 "B<CLOCK_REALTIME> or B<CLOCK_MONOTONIC>.  B<CLOCK_REALTIME> is a settable "
11952 "system-wide clock.  B<CLOCK_MONOTONIC> is a nonsettable clock that is not "
11953 "affected by discontinuous changes in the system clock (e.g., manual changes "
11954 "to system time).  The current value of each of these clocks can be retrieved "
11955 "using B<clock_gettime>(2)."
11956 msgstr ""
11957 "B<timerfd_create>()  は新規のタイマーオブジェクトを生成し、そのタイマーを参照"
11958 "するファイル ディスクリプタを返す。 I<clockid> 引き数は、タイマーの進捗を管理"
11959 "するためのクロックを指定するもので、 B<CLOCK_REALTIME> か B<CLOCK_MONOTONIC> "
11960 "のいずれかでなければならない。 B<CLOCK_REALTIME> はシステム全体で使用されるク"
11961 "ロックで、このクロックは変更可能である。 B<CLOCK_MONOTONIC> は変更されること"
11962 "のないクロックで、(システム時刻の手動での変更などの)  システムクロックの不連"
11963 "続な変化の影響を受けない。 これらのクロックの現在の値は B<clock_gettime>(2)  "
11964 "を使って取得できる。"
11965
11966 #. type: Plain text
11967 #: build/C/man2/timerfd_create.2:85
11968 msgid ""
11969 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
11970 "I<flags> to change the behavior of B<timerfd_create>():"
11971 msgstr ""
11972 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
11973 "ることで、 B<timerfd_create>()  の振舞いを変更することができる。"
11974
11975 #. type: TP
11976 #: build/C/man2/timerfd_create.2:85
11977 #, no-wrap
11978 msgid "B<TFD_NONBLOCK>"
11979 msgstr "B<TFD_NONBLOCK>"
11980
11981 #. type: TP
11982 #: build/C/man2/timerfd_create.2:93
11983 #, no-wrap
11984 msgid "B<TFD_CLOEXEC>"
11985 msgstr "B<TFD_CLOEXEC>"
11986
11987 #. type: Plain text
11988 #: build/C/man2/timerfd_create.2:107
11989 msgid ""
11990 "In Linux versions up to and including 2.6.26, I<flags> must be specified as "
11991 "zero."
11992 msgstr ""
11993 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
11994 "しなければならない。"
11995
11996 #. type: SS
11997 #: build/C/man2/timerfd_create.2:107
11998 #, no-wrap
11999 msgid "timerfd_settime()"
12000 msgstr "timerfd_settime()"
12001
12002 #. type: Plain text
12003 #: build/C/man2/timerfd_create.2:112
12004 msgid ""
12005 "B<timerfd_settime>()  arms (starts) or disarms (stops)  the timer referred "
12006 "to by the file descriptor I<fd>."
12007 msgstr ""
12008 "B<timerfd_settime>()  は、ファイルディスクリプタ I<fd> により参照されるタイ"
12009 "マーを開始したり停止したりする。"
12010
12011 #. type: Plain text
12012 #: build/C/man2/timerfd_create.2:121
12013 msgid ""
12014 "The I<new_value> argument specifies the initial expiration and interval for "
12015 "the timer.  The I<itimer> structure used for this argument contains two "
12016 "fields, each of which is in turn a structure of type I<timespec>:"
12017 msgstr ""
12018 "I<new_value> 引き数は、タイマーの満了時間 (expiration) の初期値と間隔 "
12019 "(interval) を 指定する。この引き数で使用されている I<itimerspec> 構造体には "
12020 "2 つのフィールドがあり、各フィールドは I<timespec> 型の構造体である。"
12021
12022 #. type: Plain text
12023 #: build/C/man2/timerfd_create.2:133
12024 #, no-wrap
12025 msgid ""
12026 "struct itimerspec {\n"
12027 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12028 "    struct timespec it_value;     /* Initial expiration */\n"
12029 "};\n"
12030 msgstr ""
12031 "struct itimerspec {\n"
12032 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12033 "    struct timespec it_value;     /* Initial expiration */\n"
12034 "};\n"
12035
12036 #. type: Plain text
12037 #: build/C/man2/timerfd_create.2:145
12038 msgid ""
12039 "I<new_value.it_value> specifies the initial expiration of the timer, in "
12040 "seconds and nanoseconds.  Setting either field of I<new_value.it_value> to a "
12041 "nonzero value arms the timer.  Setting both fields of I<new_value.it_value> "
12042 "to zero disarms the timer."
12043 msgstr ""
12044 "I<new_value.it_value> はタイマーの満了時間の初期値を、秒とナノ秒で指定する。 "
12045 "I<new_value.it_value> のフィールドのうち少なくとも一方に 0 以外の値を設定する"
12046 "と、 タイマーが開始される。 両方のフィールドに 0 を設定すると、タイマーが停止"
12047 "する。"
12048
12049 #. type: Plain text
12050 #: build/C/man2/timerfd_create.2:154
12051 msgid ""
12052 "Setting one or both fields of I<new_value.it_interval> to nonzero values "
12053 "specifies the period, in seconds and nanoseconds, for repeated timer "
12054 "expirations after the initial expiration.  If both fields of I<new_value."
12055 "it_interval> are zero, the timer expires just once, at the time specified by "
12056 "I<new_value.it_value>."
12057 msgstr ""
12058 "I<new_value.it_interval> はタイマーの一回目の満了後に繰り返しタイマーの満了間"
12059 "隔を、秒とナノ秒で指定する。 I<new_value.it_interval> のフィールドのうち少な"
12060 "くとも一方に 0 以外の値を設定すると、 繰り返しタイマーが有効になる。 両方の"
12061 "フィールドに 0 を設定した場合、タイマーは I<new_value.it_value> で指定された"
12062 "時間後に、一回だけ満了して停止する。"
12063
12064 #. type: Plain text
12065 #: build/C/man2/timerfd_create.2:170
12066 msgid ""
12067 "The I<flags> argument is either 0, to start a relative timer (I<new_value."
12068 "it_value> specifies a time relative to the current value of the clock "
12069 "specified by I<clockid>), or B<TFD_TIMER_ABSTIME>, to start an absolute "
12070 "timer (I<new_value.it_value> specifies an absolute time for the clock "
12071 "specified by I<clockid>; that is, the timer will expire when the value of "
12072 "that clock reaches the value specified in I<new_value.it_value>)."
12073 msgstr ""
12074 "I<flags> 引き数には 0 か B<TFD_TIMER_ABSTIME> を指定する。 0 は相対時刻\n"
12075 "タイマーを意味し、 I<new_value.it_value> では I<clockid> で指定された\n"
12076 "クロックの現在の値からの相対的な時刻を指定する。 B<TFD_TIMER_ABSTIME>\n"
12077 "は絶対時刻タイマーを意味し、 I<new_value.it_interval> では I<clockid>\n"
12078 "で指定されたクロックの絶対時刻を指定する。\n"
12079 "つまり、クロックの値が I<new_value.it_interval> で指定された時刻に\n"
12080 "達したら、タイマーが満了する。"
12081
12082 #. type: Plain text
12083 #: build/C/man2/timerfd_create.2:181
12084 msgid ""
12085 "If the I<old_value> argument is not NULL, then the I<itimerspec> structure "
12086 "that it points to is used to return the setting of the timer that was "
12087 "current at the time of the call; see the description of B<timerfd_gettime>"
12088 "()  following."
12089 msgstr ""
12090 "I<old_value> 引き数が NULL でない場合、 I<old_value> 引き数が指す\n"
12091 "I<itimerspec> 構造体は、 B<timerfd_settime>() を呼び出した時点での\n"
12092 "タイマーの設定を返すのに使用される。\n"
12093 "下記の B<timerfd_gettime>() の説明を参照。"
12094
12095 #. type: SS
12096 #: build/C/man2/timerfd_create.2:181
12097 #, no-wrap
12098 msgid "timerfd_gettime()"
12099 msgstr "timerfd_gettime()"
12100
12101 #. type: Plain text
12102 #: build/C/man2/timerfd_create.2:190
12103 msgid ""
12104 "B<timerfd_gettime>()  returns, in I<curr_value>, an I<itimerspec> structure "
12105 "that contains the current setting of the timer referred to by the file "
12106 "descriptor I<fd>."
12107 msgstr ""
12108 "B<timerfd_gettime>()  は、ファイルディスクリプタ I<fd> で参照されるタイマーの"
12109 "現在の設定が入った I<itimerspec> 構造体を、 I<curr_value> に格納して返す。"
12110
12111 #. type: Plain text
12112 #: build/C/man2/timerfd_create.2:200
12113 msgid ""
12114 "The I<it_value> field returns the amount of time until the timer will next "
12115 "expire.  If both fields of this structure are zero, then the timer is "
12116 "currently disarmed.  This field always contains a relative value, regardless "
12117 "of whether the B<TFD_TIMER_ABSTIME> flag was specified when setting the "
12118 "timer."
12119 msgstr ""
12120 "I<it_value> フィールドは、タイマーが次に満了するまでの残り時間を返す。 この構"
12121 "造体の両方のフィールドが 0 であれば、タイマーは現在停止している。 タイマー設"
12122 "定時に B<TFD_TIMER_ABSTIME> フラグが指定されたかに関わらず、このフィールドは"
12123 "常に相対値が格納される。"
12124
12125 #. type: Plain text
12126 #: build/C/man2/timerfd_create.2:207
12127 msgid ""
12128 "The I<it_interval> field returns the interval of the timer.  If both fields "
12129 "of this structure are zero, then the timer is set to expire just once, at "
12130 "the time specified by I<curr_value.it_value>."
12131 msgstr ""
12132 "I<it_interval> フィールドは、タイマーの間隔を返す。 この構造体の両方のフィー"
12133 "ルドが 0 であれば、タイマーは I<new_value.it_value> で指定された時間後に一回"
12134 "だけ満了して停止するように設定されている。"
12135
12136 #. type: SS
12137 #: build/C/man2/timerfd_create.2:207
12138 #, no-wrap
12139 msgid "Operating on a timer file descriptor"
12140 msgstr "タイマー・ファイルディスクリプタに対する操作"
12141
12142 #. type: Plain text
12143 #: build/C/man2/timerfd_create.2:211
12144 msgid ""
12145 "The file descriptor returned by B<timerfd_create>()  supports the following "
12146 "operations:"
12147 msgstr ""
12148 "B<timerfd_create>()  が返すファイルディスクリプタは以下の操作をサポートしてい"
12149 "る。"
12150
12151 #. type: Plain text
12152 #: build/C/man2/timerfd_create.2:225
12153 msgid ""
12154 "If the timer has already expired one or more times since its settings were "
12155 "last modified using B<timerfd_settime>(), or since the last successful "
12156 "B<read>(2), then the buffer given to B<read>(2)  returns an unsigned 8-byte "
12157 "integer (I<uint64_t>)  containing the number of expirations that have "
12158 "occurred.  (The returned value is in host byte order, i.e., the native byte "
12159 "order for integers on the host machine.)"
12160 msgstr ""
12161 "B<timerfd_settime>()  を使ってタイマーの設定が最後変更されて以降、または "
12162 "B<read>(2)  の呼び出しに最後に成功して以降に、タイマーの満了が一回以上発生し"
12163 "ていれば、 B<read>(2)  に渡されたバッファに、タイマー満了回数を示す 8 バイト"
12164 "の unsigned 型の整数 (I<uint64_t>)  が返される (返される値はホストバイトオー"
12165 "ダ、つまりそのホストマシンにおける 整数の通常のバイトオーダである)。"
12166
12167 #. type: Plain text
12168 #: build/C/man2/timerfd_create.2:238
12169 msgid ""
12170 "If no timer expirations have occurred at the time of the B<read>(2), then "
12171 "the call either blocks until the next timer expiration, or fails with the "
12172 "error B<EAGAIN> if the file descriptor has been made nonblocking (via the "
12173 "use of the B<fcntl>(2)  B<F_SETFL> operation to set the B<O_NONBLOCK> flag)."
12174 msgstr ""
12175 "B<read>(2)  を行った時点でタイマーの満了が発生していなければ、 B<read>(2)  は"
12176 "停止 (block) する、もしくはファイルディスクリプタが 非停止 (nonblocking) に設"
12177 "定されている場合はエラー B<EAGAIN> で失敗する (非停止モードにするには、 "
12178 "B<fcntl>(2)  の B<F_SETFL> 命令で B<O_NONBLOCK> フラグをセットする)。"
12179
12180 #. type: Plain text
12181 #: build/C/man2/timerfd_create.2:244
12182 msgid ""
12183 "A B<read>(2)  will fail with the error B<EINVAL> if the size of the supplied "
12184 "buffer is less than 8 bytes."
12185 msgstr ""
12186 "渡されたバッファの大きさが 8 バイト未満の場合、 B<read>(2)  はエラー "
12187 "B<EINVAL> で失敗する。"
12188
12189 #. type: Plain text
12190 #: build/C/man2/timerfd_create.2:255
12191 msgid ""
12192 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
12193 "B<poll>(2)  B<POLLIN> flag)  if one or more timer expirations have occurred."
12194 msgstr ""
12195 "一つ以上のタイマー満了が発生していれば、 ファイルディスクリプタは読み出し可能"
12196 "となる (B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラ"
12197 "グ)。"
12198
12199 #. type: Plain text
12200 #: build/C/man2/timerfd_create.2:262
12201 msgid ""
12202 "The file descriptor also supports the other file-descriptor multiplexing "
12203 "APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
12204 msgstr ""
12205 "このファイルディスクリプタは、他のファイルディスクリプタ多重 API である "
12206 "B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
12207
12208 #. type: Plain text
12209 #: build/C/man2/timerfd_create.2:269
12210 msgid ""
12211 "When the file descriptor is no longer required it should be closed.  When "
12212 "all file descriptors associated with the same timer object have been closed, "
12213 "the timer is disarmed and its resources are freed by the kernel."
12214 msgstr ""
12215 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
12216 "る。 同じ timer オブジェクトに関連付けられたファイルディスクリプタが全て ク"
12217 "ローズされると、そのタイマーは解除され、 そのオブジェクト用の資源がカーネルに"
12218 "より解放される。"
12219
12220 #. type: Plain text
12221 #: build/C/man2/timerfd_create.2:281
12222 msgid ""
12223 "After a B<fork>(2), the child inherits a copy of the file descriptor created "
12224 "by B<timerfd_create>().  The file descriptor refers to the same underlying "
12225 "timer object as the corresponding file descriptor in the parent, and B<read>"
12226 "(2)s in the child will return information about expirations of the timer."
12227 msgstr ""
12228 "B<fork>(2)  が行われると、子プロセスは B<timerfd_create>()  により生成された"
12229 "ファイルディスクリプタのコピーを 継承する。そのファイルディスクリプタは、親プ"
12230 "ロセスの対応する ファイルディスクリプタと同じタイマーオブジェクトを参照してお"
12231 "り、 子プロセスの B<read>(2)  でも同じタイマーの満了に関する情報が返される。"
12232
12233 #. type: Plain text
12234 #: build/C/man2/timerfd_create.2:287
12235 msgid ""
12236 "A file descriptor created by B<timerfd_create>()  is preserved across "
12237 "B<execve>(2), and continues to generate timer expirations if the timer was "
12238 "armed."
12239 msgstr ""
12240 "B<execve>(2)  の前後で B<timerfd_create>()  により生成されたファイルディスク"
12241 "リプタは保持され、 タイマーが開始されていた場合にはタイマーの満了が発生し続け"
12242 "る。"
12243
12244 #. type: Plain text
12245 #: build/C/man2/timerfd_create.2:294
12246 msgid ""
12247 "On success, B<timerfd_create>()  returns a new file descriptor.  On error, "
12248 "-1 is returned and I<errno> is set to indicate the error."
12249 msgstr ""
12250 "成功すると、 B<timerfd_create>()  は新しいファイルディスクリプタを返す。 エ"
12251 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12252
12253 #. type: Plain text
12254 #: build/C/man2/timerfd_create.2:302
12255 msgid ""
12256 "B<timerfd_settime>()  and B<timerfd_gettime>()  return 0 on success; on "
12257 "error they return -1, and set I<errno> to indicate the error."
12258 msgstr ""
12259 "B<timerfd_settime>()  と B<timerfd_gettime>()  は成功すると 0 を返す。 エラー"
12260 "の場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12261
12262 #. type: Plain text
12263 #: build/C/man2/timerfd_create.2:305
12264 msgid "B<timerfd_create>()  can fail with the following errors:"
12265 msgstr "B<timerfd_create>()  は以下のエラーで失敗する可能性がある。"
12266
12267 #. type: Plain text
12268 #: build/C/man2/timerfd_create.2:313
12269 msgid ""
12270 "The I<clockid> argument is neither B<CLOCK_MONOTONIC> nor B<CLOCK_REALTIME>;"
12271 msgstr ""
12272 "I<clockid> 引き数が B<CLOCK_MONOTONIC> でも B<CLOCK_REALTIME> でもない。"
12273
12274 #. type: Plain text
12275 #: build/C/man2/timerfd_create.2:333
12276 msgid "There was insufficient kernel memory to create the timer."
12277 msgstr "タイマーを作成するのに十分なカーネルメモリがなかった。"
12278
12279 #. type: Plain text
12280 #: build/C/man2/timerfd_create.2:338
12281 msgid ""
12282 "B<timerfd_settime>()  and B<timerfd_gettime>()  can fail with the following "
12283 "errors:"
12284 msgstr ""
12285 "B<timerfd_settime>()  と B<timerfd_gettime>()  は以下のエラーで失敗する可能性"
12286 "がある。"
12287
12288 #. type: Plain text
12289 #: build/C/man2/timerfd_create.2:342
12290 msgid "I<fd> is not a valid file descriptor."
12291 msgstr "I<fd> が有効なファイルディスクリプタでない。"
12292
12293 #. type: Plain text
12294 #: build/C/man2/timerfd_create.2:353
12295 msgid "I<fd> is not a valid timerfd file descriptor."
12296 msgstr "I<fd> が有効な timerfd ファイルディスクリプタでない。"
12297
12298 #. type: Plain text
12299 #: build/C/man2/timerfd_create.2:356
12300 msgid "B<timerfd_settime>()  can also fail with the following errors:"
12301 msgstr "B<timerfd_settime>()  は以下のエラーで失敗することもある。"
12302
12303 #. type: Plain text
12304 #: build/C/man2/timerfd_create.2:362
12305 msgid ""
12306 "I<new_value> is not properly initialized (one of the I<tv_nsec> falls "
12307 "outside the range zero to 999,999,999)."
12308 msgstr ""
12309 "I<new_value> が適切に初期化されていない (I<tv_nsec> の一つが 0 から "
12310 "999,999,999 までの範囲に入っていない)。"
12311
12312 #.  This case only checked since 2.6.29, and 2.2.2[78].some-stable-version.
12313 #.  In older kernel versions, no check was made for invalid flags.
12314 #. type: Plain text
12315 #: build/C/man2/timerfd_create.2:368
12316 msgid "I<flags> is invalid."
12317 msgstr "I<flags> が無効である。"
12318
12319 #. type: Plain text
12320 #: build/C/man2/timerfd_create.2:371
12321 msgid ""
12322 "These system calls are available on Linux since kernel 2.6.25.  Library "
12323 "support is provided by glibc since version 2.8."
12324 msgstr ""
12325 "これらのシステムコールはカーネル 2.6.25 以降の Linux で利用可能である。 ライ"
12326 "ブラリ側のサポートはバージョン 2.8 以降の glibc で提供されている。"
12327
12328 #.  2.6.29
12329 #. type: Plain text
12330 #: build/C/man2/timerfd_create.2:379
12331 msgid ""
12332 "Currently, B<timerfd_create>()  supports fewer types of clock IDs than "
12333 "B<timer_create>(2)."
12334 msgstr ""
12335 "現在のところ、 B<timerfd_create>()  が対応している clockid の種類は "
12336 "B<timer_create>(2)  よりも少ない。"
12337
12338 #. type: Plain text
12339 #: build/C/man2/timerfd_create.2:388
12340 msgid ""
12341 "The following program creates a timer and then monitors its progress.  The "
12342 "program accepts up to three command-line arguments.  The first argument "
12343 "specifies the number of seconds for the initial expiration of the timer.  "
12344 "The second argument specifies the interval for the timer, in seconds.  The "
12345 "third argument specifies the number of times the program should allow the "
12346 "timer to expire before terminating.  The second and third command-line "
12347 "arguments are optional."
12348 msgstr ""
12349 "以下のプログラムは、タイマーを作成し、その進捗をモニターするものである。 この"
12350 "プログラムは最大で 3 個のコマンドライン引き数を取り、 第一引き数ではタイマー"
12351 "の満了時間の初期値 (秒数単位) を、 第二引き数ではタイマーの間隔 (秒数単位) "
12352 "を、 第三引き数ではタイマーが何回満了したらプログラムが終了するかを指定す"
12353 "る。 第二引き数と第三引き数は省略可能である。"
12354
12355 #. type: Plain text
12356 #: build/C/man2/timerfd_create.2:390 build/C/man2/wait.2:555
12357 msgid "The following shell session demonstrates the use of the program:"
12358 msgstr "以下のシェルのセッションはこのプログラムの使用例を示したものである。"
12359
12360 #. type: Plain text
12361 #: build/C/man2/timerfd_create.2:405
12362 #, no-wrap
12363 msgid ""
12364 "$B< a.out 3 1 100>\n"
12365 "0.000: timer started\n"
12366 "3.000: read: 1; total=1\n"
12367 "4.000: read: 1; total=2\n"
12368 "B<^Z >                 # type control-Z to suspend the program\n"
12369 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12370 "$ B<fg>                # Resume execution after a few seconds\n"
12371 "a.out 3 1 100\n"
12372 "9.660: read: 5; total=7\n"
12373 "10.000: read: 1; total=8\n"
12374 "11.000: read: 1; total=9\n"
12375 "B<^C >                 # type control-C to suspend the program\n"
12376 msgstr ""
12377 "$B< a.out 3 1 100>\n"
12378 "0.000: timer started\n"
12379 "3.000: read: 1; total=1\n"
12380 "4.000: read: 1; total=2\n"
12381 "B<^Z >                 # type control-Z to suspend the program\n"
12382 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12383 "$ B<fg>                # Resume execution after a few seconds\n"
12384 "a.out 3 1 100\n"
12385 "9.660: read: 5; total=7\n"
12386 "10.000: read: 1; total=8\n"
12387 "11.000: read: 1; total=9\n"
12388 "B<^C >                 # type control-C to suspend the program\n"
12389
12390 #.  The commented out code here is what we currently need until
12391 #.  the required stuff is in glibc
12392 #. /* Link with -lrt */
12393 #. #define _GNU_SOURCE
12394 #. #include <sys/syscall.h>
12395 #. #include <unistd.h>
12396 #. #include <time.h>
12397 #. #if defined(__i386__)
12398 #. #define __NR_timerfd_create 322
12399 #. #define __NR_timerfd_settime 325
12400 #. #define __NR_timerfd_gettime 326
12401 #. #endif
12402 #. static int
12403 #. timerfd_create(int clockid, int flags)
12404 #. {
12405 #.     return syscall(__NR_timerfd_create, clockid, flags);
12406 #. }
12407 #. static int
12408 #. timerfd_settime(int fd, int flags, struct itimerspec *new_value,
12409 #.         struct itimerspec *curr_value)
12410 #. {
12411 #.     return syscall(__NR_timerfd_settime, fd, flags, new_value,
12412 #.                    curr_value);
12413 #. }
12414 #. static int
12415 #. timerfd_gettime(int fd, struct itimerspec *curr_value)
12416 #. {
12417 #.     return syscall(__NR_timerfd_gettime, fd, curr_value);
12418 #. }
12419 #. #define TFD_TIMER_ABSTIME (1 << 0)
12420 #. ////////////////////////////////////////////////////////////
12421 #. type: Plain text
12422 #: build/C/man2/timerfd_create.2:454
12423 #, no-wrap
12424 msgid ""
12425 "#include E<lt>sys/timerfd.hE<gt>\n"
12426 "#include E<lt>time.hE<gt>\n"
12427 "#include E<lt>unistd.hE<gt>\n"
12428 "#include E<lt>stdlib.hE<gt>\n"
12429 "#include E<lt>stdio.hE<gt>\n"
12430 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12431 msgstr ""
12432 "#include E<lt>sys/timerfd.hE<gt>\n"
12433 "#include E<lt>time.hE<gt>\n"
12434 "#include E<lt>unistd.hE<gt>\n"
12435 "#include E<lt>stdlib.hE<gt>\n"
12436 "#include E<lt>stdio.hE<gt>\n"
12437 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12438
12439 #. type: Plain text
12440 #: build/C/man2/timerfd_create.2:457
12441 #, no-wrap
12442 msgid ""
12443 "#define handle_error(msg) \\e\n"
12444 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
12445 msgstr ""
12446 "#define handle_error(msg) \\e\n"
12447 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
12448
12449 #. type: Plain text
12450 #: build/C/man2/timerfd_create.2:465
12451 #, no-wrap
12452 msgid ""
12453 "static void\n"
12454 "print_elapsed_time(void)\n"
12455 "{\n"
12456 "    static struct timespec start;\n"
12457 "    struct timespec curr;\n"
12458 "    static int first_call = 1;\n"
12459 "    int secs, nsecs;\n"
12460 msgstr ""
12461 "static void\n"
12462 "print_elapsed_time(void)\n"
12463 "{\n"
12464 "    static struct timespec start;\n"
12465 "    struct timespec curr;\n"
12466 "    static int first_call = 1;\n"
12467 "    int secs, nsecs;\n"
12468
12469 #. type: Plain text
12470 #: build/C/man2/timerfd_create.2:471
12471 #, no-wrap
12472 msgid ""
12473 "    if (first_call) {\n"
12474 "        first_call = 0;\n"
12475 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
12476 "            handle_error(\"clock_gettime\");\n"
12477 "    }\n"
12478 msgstr ""
12479 "    if (first_call) {\n"
12480 "        first_call = 0;\n"
12481 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
12482 "            handle_error(\"clock_gettime\");\n"
12483 "    }\n"
12484
12485 #. type: Plain text
12486 #: build/C/man2/timerfd_create.2:474
12487 #, no-wrap
12488 msgid ""
12489 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
12490 "        handle_error(\"clock_gettime\");\n"
12491 msgstr ""
12492 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
12493 "        handle_error(\"clock_gettime\");\n"
12494
12495 #. type: Plain text
12496 #: build/C/man2/timerfd_create.2:483
12497 #, no-wrap
12498 msgid ""
12499 "    secs = curr.tv_sec - start.tv_sec;\n"
12500 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
12501 "    if (nsecs E<lt> 0) {\n"
12502 "        secs--;\n"
12503 "        nsecs += 1000000000;\n"
12504 "    }\n"
12505 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
12506 "}\n"
12507 msgstr ""
12508 "    secs = curr.tv_sec - start.tv_sec;\n"
12509 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
12510 "    if (nsecs E<lt> 0) {\n"
12511 "        secs--;\n"
12512 "        nsecs += 1000000000;\n"
12513 "    }\n"
12514 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
12515 "}\n"
12516
12517 #. type: Plain text
12518 #: build/C/man2/timerfd_create.2:492
12519 #, no-wrap
12520 msgid ""
12521 "int\n"
12522 "main(int argc, char *argv[])\n"
12523 "{\n"
12524 "    struct itimerspec new_value;\n"
12525 "    int max_exp, fd;\n"
12526 "    struct timespec now;\n"
12527 "    uint64_t exp, tot_exp;\n"
12528 "    ssize_t s;\n"
12529 msgstr ""
12530 "int\n"
12531 "main(int argc, char *argv[])\n"
12532 "{\n"
12533 "    struct itimerspec new_value;\n"
12534 "    int max_exp, fd;\n"
12535 "    struct timespec now;\n"
12536 "    uint64_t exp, tot_exp;\n"
12537 "    ssize_t s;\n"
12538
12539 #. type: Plain text
12540 #: build/C/man2/timerfd_create.2:498
12541 #, no-wrap
12542 msgid ""
12543 "    if ((argc != 2) && (argc != 4)) {\n"
12544 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
12545 "                argv[0]);\n"
12546 "        exit(EXIT_FAILURE);\n"
12547 "    }\n"
12548 msgstr ""
12549 "    if ((argc != 2) && (argc != 4)) {\n"
12550 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
12551 "                argv[0]);\n"
12552 "        exit(EXIT_FAILURE);\n"
12553 "    }\n"
12554
12555 #. type: Plain text
12556 #: build/C/man2/timerfd_create.2:501
12557 #, no-wrap
12558 msgid ""
12559 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
12560 "        handle_error(\"clock_gettime\");\n"
12561 msgstr ""
12562 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
12563 "        handle_error(\"clock_gettime\");\n"
12564
12565 #. type: Plain text
12566 #: build/C/man2/timerfd_create.2:504
12567 #, no-wrap
12568 msgid ""
12569 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
12570 "       expiration and interval as specified in command line */\n"
12571 msgstr ""
12572 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
12573 "       expiration and interval as specified in command line */\n"
12574
12575 #. type: Plain text
12576 #: build/C/man2/timerfd_create.2:515
12577 #, no-wrap
12578 msgid ""
12579 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
12580 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
12581 "    if (argc == 2) {\n"
12582 "        new_value.it_interval.tv_sec = 0;\n"
12583 "        max_exp = 1;\n"
12584 "    } else {\n"
12585 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
12586 "        max_exp = atoi(argv[3]);\n"
12587 "    }\n"
12588 "    new_value.it_interval.tv_nsec = 0;\n"
12589 msgstr ""
12590 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
12591 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
12592 "    if (argc == 2) {\n"
12593 "        new_value.it_interval.tv_sec = 0;\n"
12594 "        max_exp = 1;\n"
12595 "    } else {\n"
12596 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
12597 "        max_exp = atoi(argv[3]);\n"
12598 "    }\n"
12599 "    new_value.it_interval.tv_nsec = 0;\n"
12600
12601 #. type: Plain text
12602 #: build/C/man2/timerfd_create.2:519
12603 #, no-wrap
12604 msgid ""
12605 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
12606 "    if (fd == -1)\n"
12607 "        handle_error(\"timerfd_create\");\n"
12608 msgstr ""
12609 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
12610 "    if (fd == -1)\n"
12611 "        handle_error(\"timerfd_create\");\n"
12612
12613 #. type: Plain text
12614 #: build/C/man2/timerfd_create.2:522
12615 #, no-wrap
12616 msgid ""
12617 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
12618 "        handle_error(\"timerfd_settime\");\n"
12619 msgstr ""
12620 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
12621 "        handle_error(\"timerfd_settime\");\n"
12622
12623 #. type: Plain text
12624 #: build/C/man2/timerfd_create.2:525
12625 #, no-wrap
12626 msgid ""
12627 "    print_elapsed_time();\n"
12628 "    printf(\"timer started\\en\");\n"
12629 msgstr ""
12630 "    print_elapsed_time();\n"
12631 "    printf(\"timer started\\en\");\n"
12632
12633 #. type: Plain text
12634 #: build/C/man2/timerfd_create.2:530
12635 #, no-wrap
12636 msgid ""
12637 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
12638 "        s = read(fd, &exp, sizeof(uint64_t));\n"
12639 "        if (s != sizeof(uint64_t))\n"
12640 "            handle_error(\"read\");\n"
12641 msgstr ""
12642 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
12643 "        s = read(fd, &exp, sizeof(uint64_t));\n"
12644 "        if (s != sizeof(uint64_t))\n"
12645 "            handle_error(\"read\");\n"
12646
12647 #. type: Plain text
12648 #: build/C/man2/timerfd_create.2:537
12649 #, no-wrap
12650 msgid ""
12651 "        tot_exp += exp;\n"
12652 "        print_elapsed_time();\n"
12653 "        printf(\"read: %llu; total=%llu\\en\",\n"
12654 "                (unsigned long long) exp,\n"
12655 "                (unsigned long long) tot_exp);\n"
12656 "    }\n"
12657 msgstr ""
12658 "        tot_exp += exp;\n"
12659 "        print_elapsed_time();\n"
12660 "        printf(\"read: %llu; total=%llu\\en\",\n"
12661 "                (unsigned long long) exp,\n"
12662 "                (unsigned long long) tot_exp);\n"
12663 "    }\n"
12664
12665 #. type: Plain text
12666 #: build/C/man2/timerfd_create.2:553
12667 msgid ""
12668 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
12669 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), B<timer_settime>"
12670 "(2), B<epoll>(7), B<time>(7)"
12671 msgstr ""
12672 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
12673 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), B<timer_settime>"
12674 "(2), B<epoll>(7), B<time>(7)"
12675
12676 #. type: TH
12677 #: build/C/man2/tkill.2:29
12678 #, no-wrap
12679 msgid "TKILL"
12680 msgstr "TKILL"
12681
12682 #. type: Plain text
12683 #: build/C/man2/tkill.2:32
12684 msgid "tkill, tgkill - send a signal to a thread"
12685 msgstr "tkill, tgkill - スレッドにシグナルを送る"
12686
12687 #. type: Plain text
12688 #: build/C/man2/tkill.2:35
12689 #, no-wrap
12690 msgid "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
12691 msgstr "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
12692
12693 #. type: Plain text
12694 #: build/C/man2/tkill.2:37
12695 #, no-wrap
12696 msgid "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
12697 msgstr "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
12698
12699 #. type: Plain text
12700 #: build/C/man2/tkill.2:54
12701 msgid ""
12702 "B<tgkill>()  sends the signal I<sig> to the thread with the thread ID I<tid> "
12703 "in the thread group I<tgid>.  (By contrast, B<kill>(2)  can be used to send "
12704 "a signal only to a process (i.e., thread group)  as a whole, and the signal "
12705 "will be delivered to an arbitrary thread within that process.)"
12706 msgstr ""
12707 "B<tgkill>()  はスレッド・グループ I<tgid> に属するスレッド ID が I<tid> のス"
12708 "レッドにシグナル I<sig> を送る。 (これに対し、 B<kill>(2)  は一つのプロセス "
12709 "(すなわち、スレッド・グループ) にまとめてシグナルを 送るのにだけ利用できる。 "
12710 "B<kill>(2)  で送信されたシグナルはプロセス内の任意のスレッドに配送される。)"
12711
12712 #.  FIXME: Maybe say something about the following:
12713 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=12889
12714 #.      Rich Felker <bugdal@aerifal.cx>
12715 #.      There is a race condition in pthread_kill: it is possible that,
12716 #.      between the time pthread_kill reads the pid/tid from the target
12717 #.      thread descriptor and the time it makes the tgkill syscall,
12718 #.      the target thread terminates and the same tid gets assigned
12719 #.      to a new thread in the same process.
12720 #.      (The tgkill syscall was designed to eliminate a similar race
12721 #.      condition in tkill, but it only succeeded in eliminating races
12722 #.      where the tid gets reused in a different process, and does not
12723 #.      help if the same tid gets assigned to a new thread in the
12724 #.      same process.)
12725 #.      The only solution I can see is to introduce a mutex that ensures
12726 #.      that a thread cannot exit while pthread_kill is being called on it.
12727 #.      Note that in most real-world situations, like almost all race
12728 #.      conditions, this one will be extremely rare. To make it
12729 #.      measurable, one could exhaust all but 1-2 available pid values,
12730 #.      possibly by lowering the max pid parameter in /proc, forcing
12731 #.      the same tid to be reused rapidly.
12732 #. type: Plain text
12733 #: build/C/man2/tkill.2:85
12734 msgid ""
12735 "B<tkill>()  is an obsolete predecessor to B<tgkill>().  It allows only the "
12736 "target thread ID to be specified, which may result in the wrong thread being "
12737 "signaled if a thread terminates and its thread ID is recycled.  Avoid using "
12738 "this system call."
12739 msgstr ""
12740 "B<tkill>()  はもう使われなくなった B<tgkill>()  の先祖である。 B<tkill>()  で"
12741 "はシグナルの送り先のスレッド ID しか指定できない。 そのため、スレッドが終了し"
12742 "て、そのスレッド ID が再利用される場合に、 意図しないスレッドにシグナルが送ら"
12743 "れる可能性がある。 このシステムコールの使用は避けること。"
12744
12745 #. type: Plain text
12746 #: build/C/man2/tkill.2:92
12747 msgid ""
12748 "If I<tgid> is specified as -1, B<tgkill>()  is equivalent to B<tkill>()."
12749 msgstr ""
12750 "I<tgid> に -1 が指定された場合、 B<tgkill>()  は B<tkill>()  と等価である。"
12751
12752 #. type: Plain text
12753 #: build/C/man2/tkill.2:95
12754 msgid ""
12755 "These are the raw system call interfaces, meant for internal thread library "
12756 "use."
12757 msgstr ""
12758 "これらはシステムコールへの直接のインターフェースであり、 スレッド・ライブラリ"
12759 "内部での使用を意図したものである。"
12760
12761 #. type: Plain text
12762 #: build/C/man2/tkill.2:103
12763 msgid "An invalid thread ID, thread group ID, or signal was specified."
12764 msgstr "指定されたスレッド ID、スレッドグループ ID、シグナルが不正であった。"
12765
12766 #. type: Plain text
12767 #: build/C/man2/tkill.2:108
12768 msgid "Permission denied.  For the required permissions, see B<kill>(2)."
12769 msgstr ""
12770 "許可がなかった。どのような許可が必要かについては、 B<kill>(2)  を参照のこと。"
12771
12772 #. type: Plain text
12773 #: build/C/man2/tkill.2:111
12774 msgid "No process with the specified thread ID (and thread group ID) exists."
12775 msgstr ""
12776 "指定されたスレッドID (とスレッド・グループID) を持つプロセスが存在しない。"
12777
12778 #. type: Plain text
12779 #: build/C/man2/tkill.2:116
12780 msgid ""
12781 "B<tkill>()  is supported since Linux 2.4.19 / 2.5.4.  B<tgkill>()  was added "
12782 "in Linux 2.5.75."
12783 msgstr ""
12784 "B<tkill>()  は Linux 2.4.19 / 2.5.4 以降でサポートされ、 B<tgkill>()  は "
12785 "Linux 2.5.75 で追加された。"
12786
12787 #. type: Plain text
12788 #: build/C/man2/tkill.2:122
12789 msgid ""
12790 "B<tkill>()  and B<tgkill>()  are Linux-specific and should not be used in "
12791 "programs that are intended to be portable."
12792 msgstr ""
12793 "B<tkill>()  と B<tgkill>()  は Linux 固有であり、 移植を想定したプログラムで"
12794 "は使用すべきではない。"
12795
12796 #. type: Plain text
12797 #: build/C/man2/tkill.2:128
12798 msgid ""
12799 "See the description of B<CLONE_THREAD> in B<clone>(2)  for an explanation of "
12800 "thread groups."
12801 msgstr ""
12802 "スレッド・グループの説明については B<clone>(2)  の B<CLONE_THREAD> の説明を参"
12803 "照のこと。"
12804
12805 #. type: Plain text
12806 #: build/C/man2/tkill.2:131
12807 msgid ""
12808 "Glibc does not provide wrappers for these system calls; call them using "
12809 "B<syscall>(2)."
12810 msgstr ""
12811 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
12812 "B<syscall>(2)  を使って呼び出すこと。"
12813
12814 #. type: Plain text
12815 #: build/C/man2/tkill.2:136
12816 msgid "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
12817 msgstr "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
12818
12819 #. type: TH
12820 #: build/C/man2/wait.2:49
12821 #, no-wrap
12822 msgid "WAIT"
12823 msgstr "WAIT"
12824
12825 #. type: TH
12826 #: build/C/man2/wait.2:49
12827 #, no-wrap
12828 msgid "2012-12-21"
12829 msgstr "2012-12-21"
12830
12831 #. type: Plain text
12832 #: build/C/man2/wait.2:52
12833 msgid "wait, waitpid, waitid - wait for process to change state"
12834 msgstr "wait, waitpid, waitid - プロセスの状態変化を待つ"
12835
12836 #. type: Plain text
12837 #: build/C/man2/wait.2:54
12838 msgid "B<#include E<lt>sys/types.hE<gt>>"
12839 msgstr "B<#include E<lt>sys/types.hE<gt>>"
12840
12841 #. type: Plain text
12842 #: build/C/man2/wait.2:56
12843 msgid "B<#include E<lt>sys/wait.hE<gt>>"
12844 msgstr "B<#include E<lt>sys/wait.hE<gt>>"
12845
12846 #. type: Plain text
12847 #: build/C/man2/wait.2:58
12848 msgid "B<pid_t wait(int *>I<status>B<);>"
12849 msgstr "B<pid_t wait(int *>I<status>B<);>"
12850
12851 #. type: Plain text
12852 #: build/C/man2/wait.2:60
12853 msgid ""
12854 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
12855 msgstr ""
12856 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
12857
12858 #. type: Plain text
12859 #: build/C/man2/wait.2:63
12860 msgid ""
12861 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, "
12862 "int >I<options>B<);>"
12863 msgstr ""
12864 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, "
12865 "int >I<options>B<);>"
12866
12867 #. type: Plain text
12868 #: build/C/man2/wait.2:72
12869 msgid "B<waitid>():"
12870 msgstr "B<waitid>():"
12871
12872 #. type: Plain text
12873 #: build/C/man2/wait.2:76
12874 msgid ""
12875 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
12876 "_XOPEN_SOURCE_EXTENDED"
12877 msgstr ""
12878 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
12879 "_XOPEN_SOURCE_EXTENDED"
12880
12881 #. type: Plain text
12882 #: build/C/man2/wait.2:91
12883 msgid ""
12884 "All of these system calls are used to wait for state changes in a child of "
12885 "the calling process, and obtain information about the child whose state has "
12886 "changed.  A state change is considered to be: the child terminated; the "
12887 "child was stopped by a signal; or the child was resumed by a signal.  In the "
12888 "case of a terminated child, performing a wait allows the system to release "
12889 "the resources associated with the child; if a wait is not performed, then "
12890 "the terminated child remains in a \"zombie\" state (see NOTES below)."
12891 msgstr ""
12892 "これらのシステムコールはいずれも、呼び出し元プロセスの子プロセスの 状態変化を"
12893 "待ち、状態が変化したその子プロセスの情報を取得するのに 使用される。 状態変化"
12894 "とは以下のいずれかである: 子プロセスの終了、シグナルによる子プロセスの停止、 "
12895 "シグナルによる子プロセスの再開。 子プロセスが終了した場合は、wait を実行する"
12896 "ことで、 システムがその子プロセスに関連するリソースを解放できるようになる。 "
12897 "wait が実行されなかった場合には、終了した子プロセスは 「ゾンビ」状態で残り続"
12898 "ける (下記の注意の章を参照のこと)。"
12899
12900 #. type: Plain text
12901 #: build/C/man2/wait.2:103
12902 msgid ""
12903 "If a child has already changed state, then these calls return immediately.  "
12904 "Otherwise they block until either a child changes state or a signal handler "
12905 "interrupts the call (assuming that system calls are not automatically "
12906 "restarted using the B<SA_RESTART> flag of B<sigaction>(2)).  In the "
12907 "remainder of this page, a child whose state has changed and which has not "
12908 "yet been waited upon by one of these system calls is termed I<waitable>."
12909 msgstr ""
12910 "子プロセスの状態変化がすでに発生していた場合、これらのコールは すぐに復帰す"
12911 "る。それ以外の場合は、子プロセスの状態変化が起こるか、 シグナルハンドラにより"
12912 "システムコールが中断されるまで、 停止 (block) する (後者は、 B<sigaction>"
12913 "(2)  の B<SA_RESTART> フラグによりシステムコールが自動的に再スタートするよう"
12914 "になっていない 場合の動作である)。 以下の説明では、状態変化が起こったがこれら"
12915 "のシステムコールのいずれかに よって待たれていない子プロセスを I<waitable> (待"
12916 "ち可能) と呼ぶ。"
12917
12918 #. type: SS
12919 #: build/C/man2/wait.2:103
12920 #, no-wrap
12921 msgid "wait() and waitpid()"
12922 msgstr "wait() と waitpid()"
12923
12924 #. type: Plain text
12925 #: build/C/man2/wait.2:111
12926 msgid ""
12927 "The B<wait>()  system call suspends execution of the calling process until "
12928 "one of its children terminates.  The call I<wait(&status)> is equivalent to:"
12929 msgstr ""
12930 "B<wait>()  システムコールは、子プロセスのいずれかが終了するまで 呼び出し元の"
12931 "プロセスの実行を一時停止する。 呼び出し I<wait(&status)> は以下と等価である:"
12932
12933 #. type: Plain text
12934 #: build/C/man2/wait.2:114
12935 #, no-wrap
12936 msgid "    waitpid(-1, &status, 0);\n"
12937 msgstr "    waitpid(-1, &status, 0);\n"
12938
12939 #. type: Plain text
12940 #: build/C/man2/wait.2:128
12941 msgid ""
12942 "The B<waitpid>()  system call suspends execution of the calling process "
12943 "until a child specified by I<pid> argument has changed state.  By default, "
12944 "B<waitpid>()  waits only for terminated children, but this behavior is "
12945 "modifiable via the I<options> argument, as described below."
12946 msgstr ""
12947 "B<waitpid>()  システムコールは、 I<pid> 引き数で指定した子プロセスの状態変化"
12948 "が起こるまで、 呼び出し元のプロセスの実行を一時停止する。デフォルトでは、 "
12949 "B<waitpid>()  は子プロセスの終了だけを待つが、この動作は I<options> 引き数に"
12950 "より変更可能である。"
12951
12952 #. type: Plain text
12953 #: build/C/man2/wait.2:132
12954 msgid "The value of I<pid> can be:"
12955 msgstr "I<pid> に指定できる値は以下の通り:"
12956
12957 #. type: IP
12958 #: build/C/man2/wait.2:132
12959 #, no-wrap
12960 msgid "E<lt> -1"
12961 msgstr "E<lt> -1"
12962
12963 #. type: Plain text
12964 #: build/C/man2/wait.2:136
12965 msgid ""
12966 "meaning wait for any child process whose process group ID is equal to the "
12967 "absolute value of I<pid>."
12968 msgstr ""
12969 "プロセスグループID が I<pid> の絶対値に等しい子プロセスのいずれかが終了するま"
12970 "でを待つ。"
12971
12972 #. type: IP
12973 #: build/C/man2/wait.2:136
12974 #, no-wrap
12975 msgid "-1"
12976 msgstr "-1"
12977
12978 #. type: Plain text
12979 #: build/C/man2/wait.2:138
12980 msgid "meaning wait for any child process."
12981 msgstr "子プロセスのどれかが終了するまで待つ。"
12982
12983 #. type: IP
12984 #: build/C/man2/wait.2:138
12985 #, no-wrap
12986 msgid "0"
12987 msgstr "0"
12988
12989 #. type: Plain text
12990 #: build/C/man2/wait.2:141
12991 msgid ""
12992 "meaning wait for any child process whose process group ID is equal to that "
12993 "of the calling process."
12994 msgstr ""
12995 "プロセスグループID が呼び出したプロセスのものと等しい 子プロセスを待つ。"
12996
12997 #. type: IP
12998 #: build/C/man2/wait.2:141
12999 #, no-wrap
13000 msgid "E<gt> 0"
13001 msgstr "E<gt> 0"
13002
13003 #. type: Plain text
13004 #: build/C/man2/wait.2:145
13005 msgid ""
13006 "meaning wait for the child whose process ID is equal to the value of I<pid>."
13007 msgstr "プロセスID が I<pid> に等しい子プロセスを待つ。"
13008
13009 #. type: Plain text
13010 #: build/C/man2/wait.2:149
13011 msgid ""
13012 "The value of I<options> is an OR of zero or more of the following constants:"
13013 msgstr "I<options> の値は次の定数の 0 個以上の論理和である:"
13014
13015 #. type: TP
13016 #: build/C/man2/wait.2:149 build/C/man2/wait.2:278
13017 #, no-wrap
13018 msgid "B<WNOHANG>"
13019 msgstr "B<WNOHANG>"
13020
13021 #. type: Plain text
13022 #: build/C/man2/wait.2:152
13023 msgid "return immediately if no child has exited."
13024 msgstr "状態変化が起こった子プロセスがない場合にすぐに復帰する。"
13025
13026 #. type: TP
13027 #: build/C/man2/wait.2:152
13028 #, no-wrap
13029 msgid "B<WUNTRACED>"
13030 msgstr "B<WUNTRACED>"
13031
13032 #. type: Plain text
13033 #: build/C/man2/wait.2:161
13034 msgid ""
13035 "also return if a child has stopped (but not traced via B<ptrace>(2)).  "
13036 "Status for I<traced> children which have stopped is provided even if this "
13037 "option is not specified."
13038 msgstr ""
13039 "子プロセスが停止した場合にも復帰する (子プロセスが B<ptrace>(2)  でトレースさ"
13040 "れている場合は除く)。 このオプションが指定されていない場合でも、停止したプロ"
13041 "セスが 「トレース (traced)」されていれば、子プロセスの状態が報告される。"
13042
13043 #. type: TP
13044 #: build/C/man2/wait.2:161
13045 #, no-wrap
13046 msgid "B<WCONTINUED> (since Linux 2.6.10)"
13047 msgstr "B<WCONTINUED> (Linux 2.6.10 以降)"
13048
13049 #. type: Plain text
13050 #: build/C/man2/wait.2:165
13051 msgid ""
13052 "also return if a stopped child has been resumed by delivery of B<SIGCONT>."
13053 msgstr "停止した子プロセスが B<SIGCONT> の配送により再開した場合にも復帰する。"
13054
13055 #. type: Plain text
13056 #: build/C/man2/wait.2:167
13057 msgid "(For Linux-only options, see below.)"
13058 msgstr "(Linux 専用オプションについては後述する)"
13059
13060 #. type: Plain text
13061 #: build/C/man2/wait.2:181
13062 msgid ""
13063 "If I<status> is not NULL, B<wait>()  and B<waitpid>()  store status "
13064 "information in the I<int> to which it points.  This integer can be inspected "
13065 "with the following macros (which take the integer itself as an argument, not "
13066 "a pointer to it, as is done in B<wait>()  and B<waitpid>()!):"
13067 msgstr ""
13068 "I<status> が NULL でなければ、 B<wait>()  や B<waitpid>()  は I<status> で指"
13069 "す I<int> に状態情報を格納する。 この整数は以下のマクロを使って検査できる。 "
13070 "(これらのマクロの引き数には、 B<wait>()  や B<waitpid>()  が書き込んだ整数そ"
13071 "のものを指定する。ポインタではない!)"
13072
13073 #. type: TP
13074 #: build/C/man2/wait.2:181
13075 #, no-wrap
13076 msgid "B<WIFEXITED(>I<status>B<)>"
13077 msgstr "B<WIFEXITED(>I<status>B<)>"
13078
13079 #. type: Plain text
13080 #: build/C/man2/wait.2:189
13081 msgid ""
13082 "returns true if the child terminated normally, that is, by calling B<exit>"
13083 "(3)  or B<_exit>(2), or by returning from main()."
13084 msgstr ""
13085 "子プロセスが正常に終了した場合に真を返す。 「正常に」とは、 B<exit>(3)  か "
13086 "B<_exit>(2)  が呼び出された場合、もしくは main() から復帰した場合である。"
13087
13088 #. type: TP
13089 #: build/C/man2/wait.2:189
13090 #, no-wrap
13091 msgid "B<WEXITSTATUS(>I<status>B<)>"
13092 msgstr "B<WEXITSTATUS(>I<status>B<)>"
13093
13094 #. type: Plain text
13095 #: build/C/man2/wait.2:202
13096 msgid ""
13097 "returns the exit status of the child.  This consists of the least "
13098 "significant 8 bits of the I<status> argument that the child specified in a "
13099 "call to B<exit>(3)  or B<_exit>(2)  or as the argument for a return "
13100 "statement in main().  This macro should be employed only if B<WIFEXITED> "
13101 "returned true."
13102 msgstr ""
13103 "子プロセスの終了ステータスを返す。 終了ステータスは I<status> 引き数の下位 8"
13104 "ビットで構成されており、 B<exit>(3)  や B<_exit>(2)  の呼び出し時に渡された"
13105 "値、もしくは main() の return 文の 引き数として指定された値である。 このマク"
13106 "ロを使用するのは B<WIFEXITED> が真を返した場合だけにすべきである。"
13107
13108 #. type: TP
13109 #: build/C/man2/wait.2:202
13110 #, no-wrap
13111 msgid "B<WIFSIGNALED(>I<status>B<)>"
13112 msgstr "B<WIFSIGNALED(>I<status>B<)>"
13113
13114 #. type: Plain text
13115 #: build/C/man2/wait.2:205
13116 msgid "returns true if the child process was terminated by a signal."
13117 msgstr "子プロセスがシグナルにより終了した場合に真を返す。"
13118
13119 #. type: TP
13120 #: build/C/man2/wait.2:205
13121 #, no-wrap
13122 msgid "B<WTERMSIG(>I<status>B<)>"
13123 msgstr "B<WTERMSIG(>I<status>B<)>"
13124
13125 #. type: Plain text
13126 #: build/C/man2/wait.2:212
13127 msgid ""
13128 "returns the number of the signal that caused the child process to "
13129 "terminate.  This macro should be employed only if B<WIFSIGNALED> returned "
13130 "true."
13131 msgstr ""
13132 "子プロセス終了の原因となったシグナルの番号を返す。 このマクロを使用するのは "
13133 "B<WIFSIGNALED> が真を返した場合だけにすべきである。"
13134
13135 #. type: TP
13136 #: build/C/man2/wait.2:212
13137 #, no-wrap
13138 msgid "B<WCOREDUMP(>I<status>B<)>"
13139 msgstr "B<WCOREDUMP(>I<status>B<)>"
13140
13141 #. type: Plain text
13142 #: build/C/man2/wait.2:221
13143 msgid ""
13144 "returns true if the child produced a core dump.  This macro should be "
13145 "employed only if B<WIFSIGNALED> returned true.  This macro is not specified "
13146 "in POSIX.1-2001 and is not available on some UNIX implementations (e.g., "
13147 "AIX, SunOS).  Only use this enclosed in #ifdef WCOREDUMP ... #endif."
13148 msgstr ""
13149 "子プロセスがコアダンプを生成した場合に真を返す。 このマクロを使用するのは "
13150 "B<WIFSIGNALED> が真を返した場合だけにすべきである。 このマクロは "
13151 "POSIX.1-2001 では規定されておらず、 (AIX, SunOS などの) いくつかの UNIX の実"
13152 "装では利用できない。 必ず #ifdef WCOREDUMP ... #endif で括って使用すること。"
13153
13154 #. type: TP
13155 #: build/C/man2/wait.2:221
13156 #, no-wrap
13157 msgid "B<WIFSTOPPED(>I<status>B<)>"
13158 msgstr "B<WIFSTOPPED(>I<status>B<)>"
13159
13160 #. type: Plain text
13161 #: build/C/man2/wait.2:228
13162 msgid ""
13163 "returns true if the child process was stopped by delivery of a signal; this "
13164 "is possible only if the call was done using B<WUNTRACED> or when the child "
13165 "is being traced (see B<ptrace>(2))."
13166 msgstr ""
13167 "子プロセスがシグナルの配送により停止した場合に真を返す。 これが真になるのは、"
13168 "システムコールが B<WUNTRACED> を指定して呼び出された場合か、子プロセスがト"
13169 "レースされている場合 (B<ptrace>(2)  参照) だけである。"
13170
13171 #. type: TP
13172 #: build/C/man2/wait.2:228
13173 #, no-wrap
13174 msgid "B<WSTOPSIG(>I<status>B<)>"
13175 msgstr "B<WSTOPSIG(>I<status>B<)>"
13176
13177 #. type: Plain text
13178 #: build/C/man2/wait.2:234
13179 msgid ""
13180 "returns the number of the signal which caused the child to stop.  This macro "
13181 "should be employed only if B<WIFSTOPPED> returned true."
13182 msgstr ""
13183 "子プロセスを停止させたシグナルの番号を返す。 このマクロを使用するのは "
13184 "B<WIFSTOPPED> が 0 以外を返した場合だけにすべきである。"
13185
13186 #. type: TP
13187 #: build/C/man2/wait.2:234
13188 #, no-wrap
13189 msgid "B<WIFCONTINUED(>I<status>B<)>"
13190 msgstr "B<WIFCONTINUED(>I<status>B<)>"
13191
13192 #. type: Plain text
13193 #: build/C/man2/wait.2:239
13194 msgid ""
13195 "(since Linux 2.6.10)  returns true if the child process was resumed by "
13196 "delivery of B<SIGCONT>."
13197 msgstr ""
13198 "(Linux 2.6.10 以降)  子プロセスが B<SIGCONT> の配送により再開した場合に真を返"
13199 "す。"
13200
13201 #. type: SS
13202 #: build/C/man2/wait.2:239
13203 #, no-wrap
13204 msgid "waitid()"
13205 msgstr "waitid()"
13206
13207 #. type: Plain text
13208 #: build/C/man2/wait.2:244
13209 msgid ""
13210 "The B<waitid>()  system call (available since Linux 2.6.9) provides more "
13211 "precise control over which child state changes to wait for."
13212 msgstr ""
13213 "B<waitid>()  システムコール (Linux 2.6.9 以降で利用可能) を使うと、 子プロセ"
13214 "スのどの状態変化を待つかについてより細かな制御ができる。"
13215
13216 #. type: Plain text
13217 #: build/C/man2/wait.2:250
13218 msgid ""
13219 "The I<idtype> and I<id> arguments select the child(ren) to wait for, as "
13220 "follows:"
13221 msgstr "引き数 I<idtype> と I<id> でどの子プロセスを待つかを選択する:"
13222
13223 #. type: IP
13224 #: build/C/man2/wait.2:250
13225 #, no-wrap
13226 msgid "I<idtype> == B<P_PID>"
13227 msgstr "I<idtype> == B<P_PID>"
13228
13229 #. type: Plain text
13230 #: build/C/man2/wait.2:253
13231 msgid "Wait for the child whose process ID matches I<id>."
13232 msgstr "プロセスID が I<id> と一致する子プロセスを待つ。"
13233
13234 #. type: IP
13235 #: build/C/man2/wait.2:253
13236 #, no-wrap
13237 msgid "I<idtype> == B<P_PGID>"
13238 msgstr "I<idtype> == B<P_PGID>"
13239
13240 #. type: Plain text
13241 #: build/C/man2/wait.2:256
13242 msgid "Wait for any child whose process group ID matches I<id>."
13243 msgstr "プロセスグループID が I<id> と一致する子プロセスを待つ。"
13244
13245 #. type: IP
13246 #: build/C/man2/wait.2:256
13247 #, no-wrap
13248 msgid "I<idtype> == B<P_ALL>"
13249 msgstr "I<idtype> == B<P_ALL>"
13250
13251 #. type: Plain text
13252 #: build/C/man2/wait.2:260
13253 msgid "Wait for any child; I<id> is ignored."
13254 msgstr "子プロセス全部を対象に待つ。 I<id> は無視される。"
13255
13256 #. type: Plain text
13257 #: build/C/man2/wait.2:264
13258 msgid ""
13259 "The child state changes to wait for are specified by ORing one or more of "
13260 "the following flags in I<options>:"
13261 msgstr ""
13262 "子プロセスのどの状態変化を待つかは以下のフラグで指定する (I<options> には 1個"
13263 "以上のフラグの論理和をとって指定する):"
13264
13265 #. type: TP
13266 #: build/C/man2/wait.2:264
13267 #, no-wrap
13268 msgid "B<WEXITED>"
13269 msgstr "B<WEXITED>"
13270
13271 #. type: Plain text
13272 #: build/C/man2/wait.2:267
13273 msgid "Wait for children that have terminated."
13274 msgstr "子プロセスの終了を待つ。"
13275
13276 #. type: TP
13277 #: build/C/man2/wait.2:267
13278 #, no-wrap
13279 msgid "B<WSTOPPED>"
13280 msgstr "B<WSTOPPED>"
13281
13282 #. type: Plain text
13283 #: build/C/man2/wait.2:270
13284 msgid "Wait for children that have been stopped by delivery of a signal."
13285 msgstr "子プロセスがシグナルの配送により停止するのを待つ。"
13286
13287 #. type: TP
13288 #: build/C/man2/wait.2:270
13289 #, no-wrap
13290 msgid "B<WCONTINUED>"
13291 msgstr "B<WCONTINUED>"
13292
13293 #. type: Plain text
13294 #: build/C/man2/wait.2:275
13295 msgid ""
13296 "Wait for (previously stopped) children that have been resumed by delivery of "
13297 "B<SIGCONT>."
13298 msgstr "(停止していた) 子プロセスが B<SIGCONT> が配送されて再開するのを待つ。"
13299
13300 #. type: Plain text
13301 #: build/C/man2/wait.2:278
13302 msgid "The following flags may additionally be ORed in I<options>:"
13303 msgstr "さらに以下のフラグを論理和の形で I<options> に指定できる:"
13304
13305 #. type: Plain text
13306 #: build/C/man2/wait.2:282
13307 msgid "As for B<waitpid>()."
13308 msgstr "B<waitpid>()  と同様。"
13309
13310 #. type: TP
13311 #: build/C/man2/wait.2:282
13312 #, no-wrap
13313 msgid "B<WNOWAIT>"
13314 msgstr "B<WNOWAIT>"
13315
13316 #. type: Plain text
13317 #: build/C/man2/wait.2:286
13318 msgid ""
13319 "Leave the child in a waitable state; a later wait call can be used to again "
13320 "retrieve the child status information."
13321 msgstr ""
13322 "waitable 状態のプロセスをそのままにする。この後で wait コールを 使って、同じ"
13323 "子プロセスの状態情報をもう一度取得することができる。"
13324
13325 #. type: Plain text
13326 #: build/C/man2/wait.2:293
13327 msgid ""
13328 "Upon successful return, B<waitid>()  fills in the following fields of the "
13329 "I<siginfo_t> structure pointed to by I<infop>:"
13330 msgstr ""
13331 "成功した場合には、 B<waitid>()  は I<infop> が指す I<siginfo_t> 構造体の以下"
13332 "のフィールドを設定する:"
13333
13334 #. type: Plain text
13335 #: build/C/man2/wait.2:296
13336 msgid "The process ID of the child."
13337 msgstr "子プロセスのプロセスID。"
13338
13339 #. type: Plain text
13340 #: build/C/man2/wait.2:300
13341 msgid ""
13342 "The real user ID of the child.  (This field is not set on most other "
13343 "implementations.)"
13344 msgstr ""
13345 "子プロセスの実ユーザID (このフィールドは他のほとんどの実装では設定されない)。"
13346
13347 #. type: Plain text
13348 #: build/C/man2/wait.2:304
13349 msgid "Always set to B<SIGCHLD>."
13350 msgstr "常に B<SIGCHLD> が設定される。"
13351
13352 #. type: TP
13353 #: build/C/man2/wait.2:304
13354 #, no-wrap
13355 msgid "I<si_status>"
13356 msgstr "I<si_status>"
13357
13358 #. type: Plain text
13359 #: build/C/man2/wait.2:314
13360 msgid ""
13361 "Either the exit status of the child, as given to B<_exit>(2)  (or B<exit>"
13362 "(3)), or the signal that caused the child to terminate, stop, or continue.  "
13363 "The I<si_code> field can be used to determine how to interpret this field."
13364 msgstr ""
13365 "B<_exit>(2)  (か B<exit>(3))  に指定された子プロセスの終了ステータス、もしく"
13366 "は 子プロセスの終了、停止、再開の原因となったシグナルが設定される。 この"
13367 "フィールドをどう解釈するかは、 I<si_code> フィールドを参照して決めることがで"
13368 "きる。"
13369
13370 #. type: Plain text
13371 #: build/C/man2/wait.2:331
13372 msgid ""
13373 "Set to one of: B<CLD_EXITED> (child called B<_exit>(2)); B<CLD_KILLED> "
13374 "(child killed by signal); B<CLD_DUMPED> (child killed by signal, and dumped "
13375 "core); B<CLD_STOPPED> (child stopped by signal); B<CLD_TRAPPED> (traced "
13376 "child has trapped); or B<CLD_CONTINUED> (child continued by B<SIGCONT>)."
13377 msgstr ""
13378 "以下のいずれかが設定される: B<CLD_EXITED> (子プロセスが B<_exit>(2)  を呼び出"
13379 "した); B<CLD_KILLED> (シグナルにより子プロセスが kill された); B<CLD_DUMPED> "
13380 "(シグナルにより子プロセスが kill され、コア・ダンプが行われた); "
13381 "B<CLD_STOPPED> (シグナルにより子プロセスが停止した); B<CLD_TRAPPED> (トレース"
13382 "されていた子プロセスがトラップを受信した); B<CLD_CONTINUED> (B<SIGCONT> によ"
13383 "り子プロセスが再開された)。"
13384
13385 #.  POSIX.1-2001 leaves this possibility unspecified; most
13386 #.  implementations (including Linux) zero out the structure
13387 #.  in this case, but at least one implementation (AIX 5.1)
13388 #.  does not -- MTK Nov 04
13389 #. type: Plain text
13390 #: build/C/man2/wait.2:353
13391 msgid ""
13392 "If B<WNOHANG> was specified in I<options> and there were no children in a "
13393 "waitable state, then B<waitid>()  returns 0 immediately and the state of the "
13394 "I<siginfo_t> structure pointed to by I<infop> is unspecified.  To "
13395 "distinguish this case from that where a child was in a waitable state, zero "
13396 "out the I<si_pid> field before the call and check for a nonzero value in "
13397 "this field after the call returns."
13398 msgstr ""
13399 "B<WNOHANG> が I<options> に指定されていて、 waitable 状態の子プロセスがなかっ"
13400 "た場合には、 B<waitid>()  はすぐに 0 を返す。このとき、 I<infop> が指す "
13401 "I<siginfo_t> 構造体の内容は不定である。 この場合を waitable 状態の子プロセス"
13402 "があった場合と区別するには、 B<waitid>()  を呼び出す前に I<si_pid> を 0 にし"
13403 "ておき、コールが復帰した後でこのフィールドが 0 以外の値かどうか をチェックす"
13404 "ればよい。"
13405
13406 #. type: Plain text
13407 #: build/C/man2/wait.2:357
13408 msgid ""
13409 "B<wait>(): on success, returns the process ID of the terminated child; on "
13410 "error, -1 is returned."
13411 msgstr ""
13412 "B<wait>(): 成功すると、終了した子プロセスのプロセスID を返す。 エラーの場合 "
13413 "-1 を返す。"
13414
13415 #. type: Plain text
13416 #: build/C/man2/wait.2:366
13417 msgid ""
13418 "B<waitpid>(): on success, returns the process ID of the child whose state "
13419 "has changed; if B<WNOHANG> was specified and one or more child(ren) "
13420 "specified by I<pid> exist, but have not yet changed state, then 0 is "
13421 "returned.  On error, -1 is returned."
13422 msgstr ""
13423 "B<waitpid>(): 成功すると、状態が変化した子プロセスのプロセスID を返す。 "
13424 "B<WNOHANG> が指定されていて、 I<pid> で指示された子プロセスが一つ以上存在する"
13425 "が、どの子プロセスでも 状態変化が起こっていなかった場合は、 0 を返す。 エラー"
13426 "の場合 -1 を返す。"
13427
13428 #.  FIXME: As reported by Vegard Nossum, if infop is NULL, then waitid()
13429 #.  returns the PID of the child.  Either this is a bug, or it is intended
13430 #.  behavior that needs to be documented.  See my Jan 2009 LKML mail
13431 #.  "waitid() return value strangeness when infop is NULL".
13432 #. type: Plain text
13433 #: build/C/man2/wait.2:382
13434 msgid ""
13435 "B<waitid>(): returns 0 on success or if B<WNOHANG> was specified and no child"
13436 "(ren) specified by I<id> has yet changed state; on error, -1 is returned.  "
13437 "Each of these calls sets I<errno> to an appropriate value in the case of an "
13438 "error."
13439 msgstr ""
13440 "B<waitid>(): 成功すると 0 を返す。 B<WNOHANG> が指定されていて、 I<pid> で指"
13441 "示された子プロセスで状態変化が起こっていなかった場合にも 0 を返す。 エラーの"
13442 "場合 -1 を返す。 エラーの場合、これらのシステムコールはいずれも I<errno> に適"
13443 "切な値を設定する。"
13444
13445 #. type: TP
13446 #: build/C/man2/wait.2:383 build/C/man2/wait.2:388
13447 #, no-wrap
13448 msgid "B<ECHILD>"
13449 msgstr "B<ECHILD>"
13450
13451 #. type: Plain text
13452 #: build/C/man2/wait.2:388
13453 msgid ""
13454 "(for B<wait>())  The calling process does not have any unwaited-for children."
13455 msgstr ""
13456 "(B<wait>()  の場合)  呼び出し元プロセスには、wait を行っていない子プロセスは"
13457 "ない。"
13458
13459 #. type: Plain text
13460 #: build/C/man2/wait.2:408
13461 msgid ""
13462 "(for B<waitpid>()  or B<waitid>())  The process specified by I<pid> "
13463 "(B<waitpid>())  or I<idtype> and I<id> (B<waitid>())  does not exist or is "
13464 "not a child of the calling process.  (This can happen for one's own child if "
13465 "the action for B<SIGCHLD> is set to B<SIG_IGN>.  See also the I<Linux Notes> "
13466 "section about threads.)"
13467 msgstr ""
13468 "(B<waitpid>()  か B<waitid>()  の場合)  I<pid> (B<waitpid>())  か I<idtype> "
13469 "と I<id> (B<waitid>())  で指定したプロセスが存在しないか、呼び出し元プロセス"
13470 "の子プロセスでない (B<SIGCHLD> の動作に B<SIG_IGN> を設定した場合には、自分自"
13471 "身の子プロセスでも起こりうる。 スレッドに関しては「Linux での注意」の節も参照"
13472 "すること)。"
13473
13474 #. type: Plain text
13475 #: build/C/man2/wait.2:415
13476 msgid ""
13477 "B<WNOHANG> was not set and an unblocked signal or a B<SIGCHLD> was caught; "
13478 "see B<signal>(7)."
13479 msgstr ""
13480 "B<WNOHANG> が設定されておらず、禁止 (block) されていないシグナルや "
13481 "B<SIGCHLD> を受信した。 B<signal>(7)  参照。"
13482
13483 #. type: Plain text
13484 #: build/C/man2/wait.2:420
13485 msgid "The I<options> argument was invalid."
13486 msgstr "I<options> 引き数が不正である。"
13487
13488 #. type: Plain text
13489 #: build/C/man2/wait.2:435
13490 msgid ""
13491 "A child that terminates, but has not been waited for becomes a \"zombie\".  "
13492 "The kernel maintains a minimal set of information about the zombie process "
13493 "(PID, termination status, resource usage information)  in order to allow the "
13494 "parent to later perform a wait to obtain information about the child.  As "
13495 "long as a zombie is not removed from the system via a wait, it will consume "
13496 "a slot in the kernel process table, and if this table fills, it will not be "
13497 "possible to create further processes.  If a parent process terminates, then "
13498 "its \"zombie\" children (if any)  are adopted by B<init>(8), which "
13499 "automatically performs a wait to remove the zombies."
13500 msgstr ""
13501 "終了したが、wait されていない子プロセスは「ゾンビ」になる。 後で親プロセスが "
13502 "wait を実行して子プロセスについての情報を取得できるように、 カーネルはゾンビ"
13503 "プロセスについて最小限の情報 (PID、終了ステータス、 リソース使用状況) を保持"
13504 "する。 ゾンビプロセスは、 wait によってシステムから削除されない限り、 カーネ"
13505 "ルのプロセステーブルの 1 エントリを消費する。このプロセステーブルが 一杯にな"
13506 "ると、新たにプロセスを作ることができなくなる。 親プロセスが終了すると、その親"
13507 "プロセスの「ゾンビ」の 子プロセスは (もしあれば)  B<init>(8)  の養子となる。 "
13508 "B<init>(8)  は wait を自動的に実行し、ゾンビを削除する。"
13509
13510 #. type: Plain text
13511 #: build/C/man2/wait.2:476
13512 msgid ""
13513 "POSIX.1-2001 specifies that if the disposition of B<SIGCHLD> is set to "
13514 "B<SIG_IGN> or the B<SA_NOCLDWAIT> flag is set for B<SIGCHLD> (see "
13515 "B<sigaction>(2)), then children that terminate do not become zombies and a "
13516 "call to B<wait>()  or B<waitpid>()  will block until all children have "
13517 "terminated, and then fail with I<errno> set to B<ECHILD>.  (The original "
13518 "POSIX standard left the behavior of setting B<SIGCHLD> to B<SIG_IGN> "
13519 "unspecified.  Note that even though the default disposition of B<SIGCHLD> is "
13520 "\"ignore\", explicitly setting the disposition to B<SIG_IGN> results in "
13521 "different treatment of zombie process children.)  Linux 2.6 conforms to this "
13522 "specification.  However, Linux 2.4 (and earlier) does not: if a B<wait>()  "
13523 "or B<waitpid>()  call is made while B<SIGCHLD> is being ignored, the call "
13524 "behaves just as though B<SIGCHLD> were not being ignored, that is, the call "
13525 "blocks until the next child terminates and then returns the process ID and "
13526 "status of that child."
13527 msgstr ""
13528 "POSIX.1-2001 では以下のように規定されている。 B<SIGCHLD> の動作が B<SIG_IGN> "
13529 "に設定されたか、 B<SIGCHLD> に対して B<SA_NOCLDWAIT> フラグが設定された場合 "
13530 "(B<sigaction>(2)  参照)、終了した子プロセスはゾンビにはならず、 B<wait>()  "
13531 "や B<waitpid>()  の呼び出しは全ての子プロセスが終了するまで停止し、 子プロセ"
13532 "スが全部終了した後 I<errno> に B<ECHILD> を設定して失敗する。 (もともとの "
13533 "POSIX 標準は B<SIGCHLD> に B<SIG_IGN> を設定した場合の振る舞いを未規定のまま"
13534 "にしている。 B<SIGCHLD> のデフォルトの動作が「無視」であるにもかかわらず、 "
13535 "B<SIGCHLD> の動作として B<SIG_IGN> を明示的に設定した場合にはゾンビプロセスの"
13536 "子プロセスの扱いが 異なる点に注意すること。)  Linux 2.6 はこの仕様に準拠して"
13537 "いる。 しかし、Linux 2.4 (とそれ以前のバージョン) はそうではない: B<SIGCHLD> "
13538 "が無視される状態で B<wait>()  または B<waitpid>()  が呼び出された場合、 "
13539 "B<SIGCHLD> が無視されていないかのように振る舞う。 つまり、呼び出しによって次"
13540 "の子プロセスの終了までブロックされ、 終了した子プロセスの PID と状態が返され"
13541 "る。"
13542
13543 #. type: Plain text
13544 #: build/C/man2/wait.2:492
13545 msgid ""
13546 "In the Linux kernel, a kernel-scheduled thread is not a distinct construct "
13547 "from a process.  Instead, a thread is simply a process that is created using "
13548 "the Linux-unique B<clone>(2)  system call; other routines such as the "
13549 "portable B<pthread_create>(3)  call are implemented using B<clone>(2).  "
13550 "Before Linux 2.4, a thread was just a special case of a process, and as a "
13551 "consequence one thread could not wait on the children of another thread, "
13552 "even when the latter belongs to the same thread group.  However, POSIX "
13553 "prescribes such functionality, and since Linux 2.4 a thread can, and by "
13554 "default will, wait on children of other threads in the same thread group."
13555 msgstr ""
13556 "Linux カーネルでは、カーネルによってスケジュールされるスレッドは プロセスと明"
13557 "確に区別できる構成要素ではない。スレッドは Linux 固有の B<clone>(2)  システム"
13558 "コールを使用して生成されるプロセスに過ぎない。 移植性のある B<pthread_create>"
13559 "(3)  コールのような他のルーチンは B<clone>(2)  を使用して実装されている; これ"
13560 "らでは B<waitid>()  を使うことはできない。 Linux 2.4 より前では、スレッドは単"
13561 "に特殊なプロセスであったので、 例え同じスレッドグループであっても、 あるス"
13562 "レッドが別のスレッドの子プロセスが終了するのを待つことは出来なかった。 しか"
13563 "し、POSIX ではこのような機能を規定しており、 Linux 2.4 以降では、あるスレッド"
13564 "が同じスレッドグループの他のスレッドの 子プロセスが終了するのを待つことができ"
13565 "るようになった。 そして将来はこれがデフォルトの動作になるであろう。"
13566
13567 #. type: Plain text
13568 #: build/C/man2/wait.2:499
13569 msgid ""
13570 "The following Linux-specific I<options> are for use with children created "
13571 "using B<clone>(2); they cannot be used with B<waitid>():"
13572 msgstr ""
13573 "B<clone>(2)  を用いて作られた子プロセスには、以下の Linux 固有の I<options> "
13574 "が使用できる。"
13575
13576 #. type: TP
13577 #: build/C/man2/wait.2:499
13578 #, no-wrap
13579 msgid "B<__WCLONE>"
13580 msgstr "B<__WCLONE>"
13581
13582 #.  since 0.99pl10
13583 #. type: Plain text
13584 #: build/C/man2/wait.2:510
13585 msgid ""
13586 "Wait for \"clone\" children only.  If omitted then wait for \"non-clone\" "
13587 "children only.  (A \"clone\" child is one which delivers no signal, or a "
13588 "signal other than B<SIGCHLD> to its parent upon termination.)  This option "
13589 "is ignored if B<__WALL> is also specified."
13590 msgstr ""
13591 "\"clone\" な子プロセスだけを待つ。 指定されなかった場合は非 \"clone\" な子プ"
13592 "ロセスだけを待つ (\"clone\" な子プロセスは、終了時に親プロセスへ全くシグナル"
13593 "を送らないか、 B<SIGCHLD> 以外のシグナルを送る)。 このオプションは B<__WALL> "
13594 "も指定された場合は無視される。"
13595
13596 #. type: TP
13597 #: build/C/man2/wait.2:510
13598 #, no-wrap
13599 msgid "B<__WALL> (since Linux 2.4)"
13600 msgstr "B<__WALL> (Linux 2.4 以降)"
13601
13602 #.  since patch-2.3.48
13603 #. type: Plain text
13604 #: build/C/man2/wait.2:515
13605 msgid "Wait for all children, regardless of type (\"clone\" or \"non-clone\")."
13606 msgstr "\"clone\" であるかないかに関わらず、 全ての子プロセスを待つ。"
13607
13608 #. type: TP
13609 #: build/C/man2/wait.2:515
13610 #, no-wrap
13611 msgid "B<__WNOTHREAD> (since Linux 2.4)"
13612 msgstr "B<__WNOTHREAD> (Linux 2.4 以降)"
13613
13614 #.  since patch-2.4.0-test8
13615 #. type: Plain text
13616 #: build/C/man2/wait.2:521
13617 msgid ""
13618 "Do not wait for children of other threads in the same thread group.  This "
13619 "was the default before Linux 2.4."
13620 msgstr ""
13621 "同じスレッドグループの他のスレッドの子プロセスは待たない。 Linux 2.4 より前で"
13622 "はデフォルトであった。"
13623
13624 #. type: Plain text
13625 #: build/C/man2/wait.2:536
13626 msgid ""
13627 "According to POSIX.1-2008, an application calling B<waitid>()  must ensure "
13628 "that I<infop> points to a I<siginfo_t> structure (i.e., that it is a non-"
13629 "NULL pointer).  On Linux, if I<infop> is NULL, B<waitid>()  succeeds, and "
13630 "returns the process ID of the waited-for child.  Applications should avoid "
13631 "relying on this inconsistent, nonstandard, and unnecessary feature."
13632 msgstr ""
13633 "POSIX.1-2008 によると、 B<waitid>() を呼び出すアプリケーションは、 I<infop> "
13634 "が I<siginfo_t> 構造体を指していること (つまり I<infop> が NULL でないポイン"
13635 "タであること) を保証しなければならない。 Linux では、 I<infop> が NULL の場"
13636 "合、 B<waitid>() は成功し、wait している子プロセスのプロセス ID を返す。 アプ"
13637 "リケーションは、この食い違った、非標準で、不必要な機能に依存しないようにすべ"
13638 "きである。"
13639
13640 #.  fork.2 refers to this example program.
13641 #. type: Plain text
13642 #: build/C/man2/wait.2:553
13643 msgid ""
13644 "The following program demonstrates the use of B<fork>(2)  and B<waitpid>().  "
13645 "The program creates a child process.  If no command-line argument is "
13646 "supplied to the program, then the child suspends its execution using B<pause>"
13647 "(2), to allow the user to send signals to the child.  Otherwise, if a "
13648 "command-line argument is supplied, then the child exits immediately, using "
13649 "the integer supplied on the command line as the exit status.  The parent "
13650 "process executes a loop that monitors the child using B<waitpid>(), and uses "
13651 "the W*() macros described above to analyze the wait status value."
13652 msgstr ""
13653 "以下のプログラムは、 B<fork>(2)  と B<waitpid>()  の使用方法の例を示してい"
13654 "る。 このプログラムでは子プロセスを生成する。 コマンドライン引き数が指定され"
13655 "なかったときは、 子プロセスは B<pause>(2)  を使ってその実行を一時停止し、ユー"
13656 "ザがその子プロセスに シグナルを送信できるようにする。 コマンドライン引き数が"
13657 "指定された場合は、 子プロセスは直ちに終了し、 コマンドラインで指定された整数"
13658 "を終了ステータスとして使用する。 親プロセスは、 B<waitpid>()  を使って子プロ"
13659 "セスを監視し、 wait のステータス値を上記の W*() マクロを使って解析するという "
13660 "ループを実行する。"
13661
13662 #. type: Plain text
13663 #: build/C/man2/wait.2:569
13664 #, no-wrap
13665 msgid ""
13666 "$B< ./a.out &>\n"
13667 "Child PID is 32360\n"
13668 "[1] 32359\n"
13669 "$B< kill -STOP 32360>\n"
13670 "stopped by signal 19\n"
13671 "$B< kill -CONT 32360>\n"
13672 "continued\n"
13673 "$B< kill -TERM 32360>\n"
13674 "killed by signal 15\n"
13675 "[1]+  Done                    ./a.out\n"
13676 "$\n"
13677 msgstr ""
13678 "$B< ./a.out &>\n"
13679 "Child PID is 32360\n"
13680 "[1] 32359\n"
13681 "$B< kill -STOP 32360>\n"
13682 "stopped by signal 19\n"
13683 "$B< kill -CONT 32360>\n"
13684 "continued\n"
13685 "$B< kill -TERM 32360>\n"
13686 "killed by signal 15\n"
13687 "[1]+  Done                    ./a.out\n"
13688 "$\n"
13689
13690 #. type: Plain text
13691 #: build/C/man2/wait.2:578
13692 #, no-wrap
13693 msgid ""
13694 "#include E<lt>sys/wait.hE<gt>\n"
13695 "#include E<lt>stdlib.hE<gt>\n"
13696 "#include E<lt>unistd.hE<gt>\n"
13697 "#include E<lt>stdio.hE<gt>\n"
13698 msgstr ""
13699 "#include E<lt>sys/wait.hE<gt>\n"
13700 "#include E<lt>stdlib.hE<gt>\n"
13701 "#include E<lt>unistd.hE<gt>\n"
13702 "#include E<lt>stdio.hE<gt>\n"
13703
13704 #. type: Plain text
13705 #: build/C/man2/wait.2:584
13706 #, no-wrap
13707 msgid ""
13708 "int\n"
13709 "main(int argc, char *argv[])\n"
13710 "{\n"
13711 "    pid_t cpid, w;\n"
13712 "    int status;\n"
13713 msgstr ""
13714 "int\n"
13715 "main(int argc, char *argv[])\n"
13716 "{\n"
13717 "    pid_t cpid, w;\n"
13718 "    int status;\n"
13719
13720 #. type: Plain text
13721 #: build/C/man2/wait.2:590
13722 #, no-wrap
13723 msgid ""
13724 "    cpid = fork();\n"
13725 "    if (cpid == -1) {\n"
13726 "        perror(\"fork\");\n"
13727 "        exit(EXIT_FAILURE);\n"
13728 "    }\n"
13729 msgstr ""
13730 "    cpid = fork();\n"
13731 "    if (cpid == -1) {\n"
13732 "        perror(\"fork\");\n"
13733 "        exit(EXIT_FAILURE);\n"
13734 "    }\n"
13735
13736 #. type: Plain text
13737 #: build/C/man2/wait.2:596
13738 #, no-wrap
13739 msgid ""
13740 "    if (cpid == 0) {            /* Code executed by child */\n"
13741 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
13742 "        if (argc == 1)\n"
13743 "            pause();                    /* Wait for signals */\n"
13744 "        _exit(atoi(argv[1]));\n"
13745 msgstr ""
13746 "    if (cpid == 0) {            /* Code executed by child */\n"
13747 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
13748 "        if (argc == 1)\n"
13749 "            pause();                    /* Wait for signals */\n"
13750 "        _exit(atoi(argv[1]));\n"
13751
13752 #. type: Plain text
13753 #: build/C/man2/wait.2:604
13754 #, no-wrap
13755 msgid ""
13756 "    } else {                    /* Code executed by parent */\n"
13757 "        do {\n"
13758 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
13759 "            if (w == -1) {\n"
13760 "                perror(\"waitpid\");\n"
13761 "                exit(EXIT_FAILURE);\n"
13762 "            }\n"
13763 msgstr ""
13764 "    } else {                    /* Code executed by parent */\n"
13765 "        do {\n"
13766 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
13767 "            if (w == -1) {\n"
13768 "                perror(\"waitpid\");\n"
13769 "                exit(EXIT_FAILURE);\n"
13770 "            }\n"
13771
13772 #. type: Plain text
13773 #: build/C/man2/wait.2:618
13774 #, no-wrap
13775 msgid ""
13776 "            if (WIFEXITED(status)) {\n"
13777 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
13778 "            } else if (WIFSIGNALED(status)) {\n"
13779 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
13780 "            } else if (WIFSTOPPED(status)) {\n"
13781 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
13782 "            } else if (WIFCONTINUED(status)) {\n"
13783 "                printf(\"continued\\en\");\n"
13784 "            }\n"
13785 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
13786 "        exit(EXIT_SUCCESS);\n"
13787 "    }\n"
13788 "}\n"
13789 msgstr ""
13790 "            if (WIFEXITED(status)) {\n"
13791 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
13792 "            } else if (WIFSIGNALED(status)) {\n"
13793 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
13794 "            } else if (WIFSTOPPED(status)) {\n"
13795 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
13796 "            } else if (WIFCONTINUED(status)) {\n"
13797 "                printf(\"continued\\en\");\n"
13798 "            }\n"
13799 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
13800 "        exit(EXIT_SUCCESS);\n"
13801 "    }\n"
13802 "}\n"
13803
13804 #. type: Plain text
13805 #: build/C/man2/wait.2:631
13806 msgid ""
13807 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), B<sigaction>"
13808 "(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), B<credentials>(7), "
13809 "B<signal>(7)"
13810 msgstr ""
13811 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), B<sigaction>"
13812 "(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), B<credentials>(7), "
13813 "B<signal>(7)"
13814
13815 #. type: TH
13816 #: build/C/man2/wait4.2:33
13817 #, no-wrap
13818 msgid "WAIT4"
13819 msgstr "WAIT4"
13820
13821 #. type: TH
13822 #: build/C/man2/wait4.2:33
13823 #, no-wrap
13824 msgid "2012-09-23"
13825 msgstr "2012-09-23"
13826
13827 #. type: Plain text
13828 #: build/C/man2/wait4.2:36
13829 msgid "wait3, wait4 - wait for process to change state, BSD style"
13830 msgstr "wait3, wait4 - BSD スタイルでプロセスの状態変化を待つ"
13831
13832 #. type: Plain text
13833 #: build/C/man2/wait4.2:42
13834 #, no-wrap
13835 msgid ""
13836 "B<#include E<lt>sys/types.hE<gt>>\n"
13837 "B<#include E<lt>sys/time.hE<gt>>\n"
13838 "B<#include E<lt>sys/resource.hE<gt>>\n"
13839 "B<#include E<lt>sys/wait.hE<gt>>\n"
13840 msgstr ""
13841 "B<#include E<lt>sys/types.hE<gt>>\n"
13842 "B<#include E<lt>sys/time.hE<gt>>\n"
13843 "B<#include E<lt>sys/resource.hE<gt>>\n"
13844 "B<#include E<lt>sys/wait.hE<gt>>\n"
13845
13846 #. type: Plain text
13847 #: build/C/man2/wait4.2:45
13848 #, no-wrap
13849 msgid ""
13850 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
13851 "B<            struct rusage *>I<rusage>B<);>\n"
13852 msgstr ""
13853 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
13854 "B<            struct rusage *>I<rusage>B<);>\n"
13855
13856 #. type: Plain text
13857 #: build/C/man2/wait4.2:48
13858 #, no-wrap
13859 msgid ""
13860 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
13861 "B<            struct rusage *>I<rusage>B<);>\n"
13862 msgstr ""
13863 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
13864 "B<            struct rusage *>I<rusage>B<);>\n"
13865
13866 #. type: Plain text
13867 #: build/C/man2/wait4.2:57
13868 msgid "B<wait3>():"
13869 msgstr "B<wait3>():"
13870
13871 #. type: Plain text
13872 #: build/C/man2/wait4.2:63
13873 msgid "B<wait4>():"
13874 msgstr "B<wait4>():"
13875
13876 #. type: Plain text
13877 #: build/C/man2/wait4.2:65
13878 msgid "_BSD_SOURCE"
13879 msgstr "_BSD_SOURCE"
13880
13881 #. type: Plain text
13882 #: build/C/man2/wait4.2:73
13883 msgid ""
13884 "These functions are obsolete; use B<waitpid>(2)  or B<waitid>(2)  in new "
13885 "programs."
13886 msgstr ""
13887 "これらの関数は廃止予定である。 新しいプログラムでは B<waitpid>(2) や "
13888 "B<waitid>(2) を使用すること。"
13889
13890 #. type: Plain text
13891 #: build/C/man2/wait4.2:83
13892 msgid ""
13893 "The B<wait3>()  and B<wait4>()  system calls are similar to B<waitpid>(2), "
13894 "but additionally return resource usage information about the child in the "
13895 "structure pointed to by I<rusage>."
13896 msgstr ""
13897 "システムコール B<wait3>()  と B<wait4>()  は B<waitpid>(2)  と同様の動作をす"
13898 "る。それに加え、子プロセスのリソース使用状況の情報を I<rusage> が指す構造体に"
13899 "入れて返す。"
13900
13901 #. type: Plain text
13902 #: build/C/man2/wait4.2:89
13903 msgid ""
13904 "Other than the use of the I<rusage> argument, the following B<wait3>()  call:"
13905 msgstr "I<rusage> を使用する点を除けば、次の B<wait3>()  の呼び出し"
13906
13907 #. type: Plain text
13908 #: build/C/man2/wait4.2:92
13909 #, no-wrap
13910 msgid "    wait3(status, options, rusage);\n"
13911 msgstr "    wait3(status, options, rusage);\n"
13912
13913 #. type: Plain text
13914 #: build/C/man2/wait4.2:95 build/C/man2/wait4.2:109
13915 msgid "is equivalent to:"
13916 msgstr "は以下と等価である。"
13917
13918 #. type: Plain text
13919 #: build/C/man2/wait4.2:98
13920 #, no-wrap
13921 msgid "    waitpid(-1, status, options);\n"
13922 msgstr "    waitpid(-1, status, options);\n"
13923
13924 #. type: Plain text
13925 #: build/C/man2/wait4.2:103
13926 msgid "Similarly, the following B<wait4>()  call:"
13927 msgstr "同様に、次の B<wait4>()  の呼び出し"
13928
13929 #. type: Plain text
13930 #: build/C/man2/wait4.2:106
13931 #, no-wrap
13932 msgid "    wait4(pid, status, options, rusage);\n"
13933 msgstr "    wait4(pid, status, options, rusage);\n"
13934
13935 #. type: Plain text
13936 #: build/C/man2/wait4.2:112
13937 #, no-wrap
13938 msgid "    waitpid(pid, status, options);\n"
13939 msgstr "    waitpid(pid, status, options);\n"
13940
13941 #. type: Plain text
13942 #: build/C/man2/wait4.2:122
13943 msgid ""
13944 "In other words, B<wait3>()  waits of any child, while B<wait4>()  can be "
13945 "used to select a specific child, or children, on which to wait.  See B<wait>"
13946 "(2)  for further details."
13947 msgstr ""
13948 "言い換えると、 B<wait3>()  は全ての子プロセスを対象に待つが、 B<wait4>()  で"
13949 "は特定の子プロセス (複数可) を選んで待つことができる。"
13950
13951 #. type: Plain text
13952 #: build/C/man2/wait4.2:132
13953 msgid ""
13954 "If I<rusage> is not NULL, the I<struct rusage> to which it points will be "
13955 "filled with accounting information about the child.  See B<getrusage>(2)  "
13956 "for details."
13957 msgstr ""
13958 "I<rusage> が NULL でない場合、 I<rusage> が指す I<rusage 構造体> には子プロセ"
13959 "スのアカウント情報が格納される。 詳しくは B<getrusage>(2)  を参照のこと。"
13960
13961 #. type: Plain text
13962 #: build/C/man2/wait4.2:135 build/C/man2/wait4.2:138
13963 msgid "As for B<waitpid>(2)."
13964 msgstr "B<waitpid>(2)  と同様。"
13965
13966 #. type: Plain text
13967 #: build/C/man2/wait4.2:140
13968 msgid "4.3BSD."
13969 msgstr "4.3BSD."
13970
13971 #. type: Plain text
13972 #: build/C/man2/wait4.2:147
13973 msgid ""
13974 "SUSv1 included a specification of B<wait3>(); SUSv2 included B<wait3>(), but "
13975 "marked it LEGACY; SUSv3 removed it."
13976 msgstr ""
13977 "SUSv1 には B<wait3>() の規定があった。 SUSv2 には B<wait3>() が含まれていた"
13978 "が、「過去の名残 (LEGACY)」となっていた。 SUSv3 では B<wait3>() は削除され"
13979 "た。"
13980
13981 #. type: Plain text
13982 #: build/C/man2/wait4.2:159
13983 msgid ""
13984 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
13985 "portability.  (Indeed, I<E<lt>sys/resource.hE<gt>> defines the I<rusage> "
13986 "structure with fields of type I<struct timeval> defined in I<E<lt>sys/time."
13987 "hE<gt>>.)"
13988 msgstr ""
13989 "現在では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、インクルード"
13990 "しておくと 移植性を高めることができる (実際には I<E<lt>sys/resource.hE<gt>> "
13991 "で I<rusage> 構造体が定義されているが、そのフィールドで使用されている "
13992 "I<struct timeval> 型は I<E<lt>sys/time.hE<gt>> で定義されている)。"
13993
13994 #. type: Plain text
13995 #: build/C/man2/wait4.2:165
13996 msgid ""
13997 "On Linux, B<wait3>()  is a library function implemented on top of the "
13998 "B<wait4>()  system call."
13999 msgstr ""
14000 "Linux では、 B<wait3>()  はライブラリ関数であり、 B<wait4>()  システムコール"
14001 "を使って実装されている。"
14002
14003 #. type: Plain text
14004 #: build/C/man2/wait4.2:172
14005 msgid ""
14006 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14007 "B<signal>(7)"
14008 msgstr ""
14009 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14010 "B<signal>(7)"
14011
14012 #~ msgid "B<sigaction>()  returns 0 on success and -1 on error."
14013 #~ msgstr "B<sigaction>()  は成功すれば 0 を返し、エラーならば -1 を返す。"
14014
14015 #~ msgid "2013-02-09"
14016 #~ msgstr "2013-02-09"
14017
14018 #~ msgid "2008-10-04"
14019 #~ msgstr "2008-10-04"
14020
14021 #~ msgid "B<sigpending>()  returns 0 on success and -1 on error."
14022 #~ msgstr "B<sigpending>()  は成功すれば 0 を返し、エラーならば -1 を返す。"
14023
14024 #~ msgid "2012-04-15"
14025 #~ msgstr "2012-04-15"
14026
14027 #~ msgid "B<sigprocmask>()  returns 0 on success and -1 on error."
14028 #~ msgstr "B<sigprocmask>()  は成功すれば 0 を返し、エラーならば -1 を返す。"
14029
14030 #~ msgid "2008-09-01"
14031 #~ msgstr "2008-09-01"
14032
14033 #~ msgid "2008-08-29"
14034 #~ msgstr "2008-08-29"