OSDN Git Service

(split) LDP: Update POT and ja.po to LDP v3.54
[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-09-28 04:05+0900\n"
10 "PO-Revision-Date: 2013-08-17 10:19+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/restart_syscall.2:33
36 #: build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/s390_runtime_instr.2:25
37 #: build/C/man2/sgetmask.2:26 build/C/man2/sigaction.2:47
38 #: build/C/man2/sigaltstack.2:27 build/C/man7/sigevent.7:26
39 #: build/C/man3/siginterrupt.3:31 build/C/man2/signal.2:36
40 #: build/C/man7/signal.7:46 build/C/man2/signalfd.2:20
41 #: build/C/man3/sigpause.3:25 build/C/man2/sigpending.2:29
42 #: build/C/man2/sigprocmask.2:29 build/C/man3/sigqueue.3:28
43 #: build/C/man2/sigreturn.2:29 build/C/man3/sigset.3:26
44 #: build/C/man3/sigsetops.3:31 build/C/man2/sigsuspend.2:29
45 #: build/C/man3/sigvec.3:26 build/C/man3/sigwait.3:26
46 #: build/C/man2/sigwaitinfo.2:25 build/C/man3/sysv_signal.3:25
47 #: build/C/man2/timer_create.2:31 build/C/man2/timer_delete.2:26
48 #: build/C/man2/timer_getoverrun.2:26 build/C/man2/timer_settime.2:26
49 #: build/C/man2/timerfd_create.2:21 build/C/man2/tkill.2:29
50 #: build/C/man2/wait.2:49 build/C/man2/wait4.2:33
51 #, no-wrap
52 msgid "Linux Programmer's Manual"
53 msgstr "Linux Programmer's Manual"
54
55 #. type: SH
56 #: build/C/man3/bsd_signal.3:26 build/C/man2/eventfd.2:23
57 #: build/C/man2/getitimer.2:13 build/C/man3/gsignal.3:28
58 #: build/C/man2/kill.2:45 build/C/man2/killpg.2:43 build/C/man2/pause.2:31
59 #: build/C/man2/prctl.2:53 build/C/man3/profil.3:29 build/C/man3/psignal.3:31
60 #: build/C/man3/raise.3:30 build/C/man2/restart_syscall.2:34
61 #: build/C/man2/rt_sigqueueinfo.2:26 build/C/man2/s390_runtime_instr.2:26
62 #: build/C/man2/sgetmask.2:27 build/C/man2/sigaction.2:48
63 #: build/C/man2/sigaltstack.2:28 build/C/man7/sigevent.7:27
64 #: build/C/man3/siginterrupt.3:32 build/C/man2/signal.2:37
65 #: build/C/man7/signal.7:47 build/C/man2/signalfd.2:21
66 #: build/C/man3/sigpause.3:26 build/C/man2/sigpending.2:30
67 #: build/C/man2/sigprocmask.2:30 build/C/man3/sigqueue.3:29
68 #: build/C/man2/sigreturn.2:30 build/C/man3/sigset.3:27
69 #: build/C/man3/sigsetops.3:32 build/C/man2/sigsuspend.2:30
70 #: build/C/man3/sigvec.3:27 build/C/man3/sigwait.3:27
71 #: build/C/man2/sigwaitinfo.2:26 build/C/man3/sysv_signal.3:26
72 #: build/C/man2/timer_create.2:32 build/C/man2/timer_delete.2:27
73 #: build/C/man2/timer_getoverrun.2:27 build/C/man2/timer_settime.2:27
74 #: build/C/man2/timerfd_create.2:22 build/C/man2/tkill.2:30
75 #: build/C/man2/wait.2:50 build/C/man2/wait4.2:34
76 #, no-wrap
77 msgid "NAME"
78 msgstr "名前"
79
80 #. type: Plain text
81 #: build/C/man3/bsd_signal.3:28
82 msgid "bsd_signal - signal handling with BSD semantics"
83 msgstr "bsd_signal - BSD 方式のシグナル処理"
84
85 #. type: SH
86 #: build/C/man3/bsd_signal.3:28 build/C/man2/eventfd.2:25
87 #: build/C/man2/getitimer.2:15 build/C/man3/gsignal.3:30
88 #: build/C/man2/kill.2:47 build/C/man2/killpg.2:45 build/C/man2/pause.2:33
89 #: build/C/man2/prctl.2:55 build/C/man3/profil.3:31 build/C/man3/psignal.3:33
90 #: build/C/man3/raise.3:32 build/C/man2/restart_syscall.2:36
91 #: build/C/man2/rt_sigqueueinfo.2:28 build/C/man2/s390_runtime_instr.2:28
92 #: build/C/man2/sgetmask.2:29 build/C/man2/sigaction.2:50
93 #: build/C/man2/sigaltstack.2:30 build/C/man7/sigevent.7:29
94 #: build/C/man3/siginterrupt.3:34 build/C/man2/signal.2:39
95 #: build/C/man2/signalfd.2:23 build/C/man3/sigpause.3:28
96 #: build/C/man2/sigpending.2:32 build/C/man2/sigprocmask.2:32
97 #: build/C/man3/sigqueue.3:31 build/C/man2/sigreturn.2:32
98 #: build/C/man3/sigset.3:29 build/C/man3/sigsetops.3:35
99 #: build/C/man2/sigsuspend.2:32 build/C/man3/sigvec.3:29
100 #: build/C/man3/sigwait.3:29 build/C/man2/sigwaitinfo.2:28
101 #: build/C/man3/sysv_signal.3:28 build/C/man2/timer_create.2:34
102 #: build/C/man2/timer_delete.2:29 build/C/man2/timer_getoverrun.2:29
103 #: build/C/man2/timer_settime.2:30 build/C/man2/timerfd_create.2:25
104 #: build/C/man2/tkill.2:32 build/C/man2/wait.2:52 build/C/man2/wait4.2:36
105 #, no-wrap
106 msgid "SYNOPSIS"
107 msgstr "書式"
108
109 #. type: Plain text
110 #: build/C/man3/bsd_signal.3:30
111 msgid "B<#define _XOPEN_SOURCE> /* See feature_test_macros(7) */"
112 msgstr "B<#define _XOPEN_SOURCE> /* feature_test_macros(7) 参照 */"
113
114 #. type: Plain text
115 #: build/C/man3/bsd_signal.3:32 build/C/man2/killpg.2:47
116 #: build/C/man2/sigaltstack.2:32 build/C/man2/signal.2:41
117 #: build/C/man2/sigpending.2:34 build/C/man2/sigprocmask.2:34
118 #: build/C/man3/sigqueue.3:33 build/C/man3/sigset.3:31
119 #: build/C/man3/sigsetops.3:37 build/C/man2/sigsuspend.2:34
120 #: build/C/man3/sigvec.3:31 build/C/man3/sysv_signal.3:32
121 msgid "B<#include E<lt>signal.hE<gt>>"
122 msgstr "B<#include E<lt>signal.hE<gt>>"
123
124 #. type: Plain text
125 #: build/C/man3/bsd_signal.3:34 build/C/man2/signal.2:43
126 #: build/C/man3/sigset.3:33 build/C/man3/sysv_signal.3:34
127 msgid "B<typedef void (*sighandler_t)(int);>"
128 msgstr "B<typedef void (*sighandler_t)(int);>"
129
130 #. type: Plain text
131 #: build/C/man3/bsd_signal.3:36
132 msgid ""
133 "B<sighandler_t bsd_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
134 msgstr ""
135 "B<sighandler_t bsd_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
136
137 #. type: SH
138 #: build/C/man3/bsd_signal.3:36 build/C/man2/eventfd.2:29
139 #: build/C/man2/getitimer.2:24 build/C/man3/gsignal.3:49
140 #: build/C/man2/kill.2:65 build/C/man2/killpg.2:60 build/C/man2/pause.2:37
141 #: build/C/man2/prctl.2:62 build/C/man3/profil.3:46 build/C/man3/psignal.3:56
142 #: build/C/man3/raise.3:38 build/C/man2/restart_syscall.2:41
143 #: build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/s390_runtime_instr.2:34
144 #: build/C/man2/sgetmask.2:36 build/C/man2/sigaction.2:70
145 #: build/C/man2/sigaltstack.2:51 build/C/man7/sigevent.7:52
146 #: build/C/man3/siginterrupt.3:55 build/C/man2/signal.2:45
147 #: build/C/man7/signal.7:49 build/C/man2/signalfd.2:27
148 #: build/C/man3/sigpause.3:36 build/C/man2/sigpending.2:46
149 #: build/C/man2/sigprocmask.2:47 build/C/man3/sigqueue.3:43
150 #: build/C/man2/sigreturn.2:34 build/C/man3/sigset.3:58
151 #: build/C/man3/sigsetops.3:63 build/C/man2/sigsuspend.2:46
152 #: build/C/man3/sigvec.3:49 build/C/man3/sigwait.3:45
153 #: build/C/man2/sigwaitinfo.2:46 build/C/man3/sysv_signal.3:36
154 #: build/C/man2/timer_create.2:52 build/C/man2/timer_delete.2:45
155 #: build/C/man2/timer_getoverrun.2:45 build/C/man2/timer_settime.2:50
156 #: build/C/man2/timerfd_create.2:37 build/C/man2/tkill.2:41
157 #: build/C/man2/wait.2:83 build/C/man2/wait4.2:67
158 #, no-wrap
159 msgid "DESCRIPTION"
160 msgstr "説明"
161
162 #. type: Plain text
163 #: build/C/man3/bsd_signal.3:41
164 msgid ""
165 "The B<bsd_signal>()  function takes the same arguments, and performs the "
166 "same task, as B<signal>(2)."
167 msgstr ""
168 "B<bsd_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
169 "る。"
170
171 #. type: Plain text
172 #: build/C/man3/bsd_signal.3:54
173 msgid ""
174 "The difference between the two is that B<bsd_signal>()  is guaranteed to "
175 "provide reliable signal semantics, that is: a) the disposition of the signal "
176 "is not reset to the default when the handler is invoked; b) delivery of "
177 "further instances of the signal is blocked while the signal handler is "
178 "executing; and c) if the handler interrupts a blocking system call, then the "
179 "system call is automatically restarted.  A portable application cannot rely "
180 "on B<signal>(2)  to provide these guarantees."
181 msgstr ""
182 "両者の違いは、 B<bsd_signal>()  では信頼性のあるシグナル処理方式の提供が保証"
183 "されていることである。 信頼性のあるシグナル処理方式は以下の特徴を持つ。 a) ハ"
184 "ンドラが起動された場合に、シグナルの処理方法 (disposition) が デフォルトにリ"
185 "セットされない、 b) シグナルハンドラの実行中は、それ以降に発生した同じシグナ"
186 "ルの配送が ブロックされない、 c) ハンドラが停止中の (blocking している) シス"
187 "テムコールを 中断した場合、そのシステムコールが自動的に再開される。 移植性が"
188 "必要なアプリケーションでは、 B<signal>(2)  でこれらが保証されることを前提にす"
189 "べきではない。"
190
191 #. type: SH
192 #: build/C/man3/bsd_signal.3:54 build/C/man2/eventfd.2:222
193 #: build/C/man2/getitimer.2:122 build/C/man2/kill.2:100
194 #: build/C/man2/killpg.2:89 build/C/man2/pause.2:42 build/C/man2/prctl.2:775
195 #: build/C/man3/profil.3:68 build/C/man3/psignal.3:89 build/C/man3/raise.3:61
196 #: build/C/man2/restart_syscall.2:84 build/C/man2/rt_sigqueueinfo.2:129
197 #: build/C/man2/s390_runtime_instr.2:54 build/C/man2/sgetmask.2:59
198 #: build/C/man2/sigaction.2:660 build/C/man2/sigaltstack.2:133
199 #: build/C/man3/siginterrupt.3:73 build/C/man2/signal.2:97
200 #: build/C/man2/signalfd.2:251 build/C/man3/sigpause.3:48
201 #: build/C/man2/sigpending.2:53 build/C/man2/sigprocmask.2:93
202 #: build/C/man3/sigqueue.3:83 build/C/man2/sigreturn.2:53
203 #: build/C/man3/sigset.3:129 build/C/man3/sigsetops.3:107
204 #: build/C/man2/sigsuspend.2:70 build/C/man3/sigvec.3:199
205 #: build/C/man3/sigwait.3:69 build/C/man2/sigwaitinfo.2:105
206 #: build/C/man3/sysv_signal.3:51 build/C/man2/timer_create.2:167
207 #: build/C/man2/timer_delete.2:53 build/C/man2/timer_getoverrun.2:82
208 #: build/C/man2/timer_settime.2:173 build/C/man2/timerfd_create.2:287
209 #: build/C/man2/tkill.2:95 build/C/man2/wait.2:355 build/C/man2/wait4.2:132
210 #, no-wrap
211 msgid "RETURN VALUE"
212 msgstr "返り値"
213
214 #. type: Plain text
215 #: build/C/man3/bsd_signal.3:60
216 msgid ""
217 "The B<bsd_signal>()  function returns the previous value of the signal "
218 "handler, or B<SIG_ERR> on error."
219 msgstr ""
220 "B<bsd_signal>()  関数はシグナルハンドラの直前の値を返す。 エラーの場合、 "
221 "B<SIG_ERR> を返す。"
222
223 #. type: SH
224 #: build/C/man3/bsd_signal.3:60 build/C/man2/eventfd.2:229
225 #: build/C/man2/getitimer.2:127 build/C/man2/kill.2:105
226 #: build/C/man2/killpg.2:94 build/C/man2/pause.2:53 build/C/man2/prctl.2:793
227 #: build/C/man2/restart_syscall.2:88 build/C/man2/rt_sigqueueinfo.2:134
228 #: build/C/man2/s390_runtime_instr.2:65 build/C/man2/sgetmask.2:64
229 #: build/C/man2/sigaction.2:665 build/C/man2/sigaltstack.2:137
230 #: build/C/man3/siginterrupt.3:83 build/C/man2/signal.2:105
231 #: build/C/man2/signalfd.2:265 build/C/man2/sigpending.2:59
232 #: build/C/man2/sigprocmask.2:99 build/C/man3/sigqueue.3:91
233 #: build/C/man3/sigset.3:154 build/C/man3/sigsetops.3:126
234 #: build/C/man2/sigsuspend.2:76 build/C/man3/sigvec.3:216
235 #: build/C/man3/sigwait.3:74 build/C/man2/sigwaitinfo.2:114
236 #: build/C/man3/sysv_signal.3:57 build/C/man2/timer_create.2:175
237 #: build/C/man2/timer_delete.2:60 build/C/man2/timer_getoverrun.2:90
238 #: build/C/man2/timer_settime.2:182 build/C/man2/timerfd_create.2:302
239 #: build/C/man2/tkill.2:99 build/C/man2/wait.2:384 build/C/man2/wait4.2:135
240 #, no-wrap
241 msgid "ERRORS"
242 msgstr "エラー"
243
244 #. type: Plain text
245 #: build/C/man3/bsd_signal.3:63 build/C/man3/sysv_signal.3:60
246 msgid "As for B<signal>(2)."
247 msgstr "B<signal>(2)  と同じ。"
248
249 #. type: SH
250 #: build/C/man3/bsd_signal.3:63 build/C/man2/eventfd.2:266
251 #: build/C/man2/getitimer.2:148 build/C/man3/gsignal.3:95
252 #: build/C/man2/kill.2:121 build/C/man2/killpg.2:111 build/C/man2/pause.2:57
253 #: build/C/man2/prctl.2:965 build/C/man3/profil.3:70 build/C/man3/psignal.3:99
254 #: build/C/man3/raise.3:64 build/C/man2/restart_syscall.2:96
255 #: build/C/man2/rt_sigqueueinfo.2:176 build/C/man2/s390_runtime_instr.2:81
256 #: build/C/man2/sgetmask.2:66 build/C/man2/sigaction.2:677
257 #: build/C/man2/sigaltstack.2:156 build/C/man7/sigevent.7:130
258 #: build/C/man3/siginterrupt.3:87 build/C/man2/signal.2:110
259 #: build/C/man7/signal.7:838 build/C/man2/signalfd.2:307
260 #: build/C/man3/sigpause.3:56 build/C/man2/sigpending.2:64
261 #: build/C/man2/sigprocmask.2:112 build/C/man3/sigqueue.3:114
262 #: build/C/man2/sigreturn.2:60 build/C/man3/sigset.3:173
263 #: build/C/man3/sigsetops.3:131 build/C/man2/sigsuspend.2:84
264 #: build/C/man3/sigvec.3:221 build/C/man3/sigwait.3:80
265 #: build/C/man2/sigwaitinfo.2:133 build/C/man3/sysv_signal.3:60
266 #: build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:67
267 #: build/C/man2/timer_getoverrun.2:97 build/C/man2/timer_settime.2:207
268 #: build/C/man2/timerfd_create.2:371 build/C/man2/tkill.2:116
269 #: build/C/man2/wait.2:422 build/C/man2/wait4.2:138
270 #, no-wrap
271 msgid "CONFORMING TO"
272 msgstr "準拠"
273
274 #. type: Plain text
275 #: build/C/man3/bsd_signal.3:70
276 msgid ""
277 "4.2BSD, POSIX.1-2001.  POSIX.1-2008 removes the specification of "
278 "B<bsd_signal>(), recommending the use of B<sigaction>(2)  instead."
279 msgstr ""
280 "4.2BSD, POSIX.1-2001.  POSIX.1-2008 では B<bsd_signal>()  の仕様が削除されて"
281 "いる。 代わりに、 B<sigaction>(2)  の使用が推奨されている。"
282
283 #. type: SH
284 #: build/C/man3/bsd_signal.3:70 build/C/man2/eventfd.2:271
285 #: build/C/man2/getitimer.2:158 build/C/man2/kill.2:123
286 #: build/C/man2/killpg.2:115 build/C/man3/raise.3:66
287 #: build/C/man2/restart_syscall.2:98 build/C/man2/rt_sigqueueinfo.2:178
288 #: build/C/man2/s390_runtime_instr.2:84 build/C/man2/sgetmask.2:68
289 #: build/C/man2/sigaction.2:680 build/C/man2/sigaltstack.2:158
290 #: build/C/man2/signal.2:112 build/C/man2/signalfd.2:312
291 #: build/C/man3/sigpause.3:60 build/C/man2/sigpending.2:66
292 #: build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:116
293 #: build/C/man2/sigreturn.2:64 build/C/man3/sigset.3:190
294 #: build/C/man3/sigsetops.3:133 build/C/man2/sigsuspend.2:86
295 #: build/C/man3/sigvec.3:227 build/C/man3/sigwait.3:82
296 #: build/C/man2/sigwaitinfo.2:135 build/C/man3/sysv_signal.3:62
297 #: build/C/man2/timer_create.2:195 build/C/man2/timer_getoverrun.2:99
298 #: build/C/man2/tkill.2:122 build/C/man2/wait.2:424 build/C/man2/wait4.2:147
299 #, no-wrap
300 msgid "NOTES"
301 msgstr "注意"
302
303 #. type: Plain text
304 #: build/C/man3/bsd_signal.3:76
305 msgid ""
306 "Use of B<bsd_signal>()  should be avoided; use B<sigaction>(2)  instead."
307 msgstr ""
308 "B<bsd_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使うこ"
309 "と。"
310
311 #. type: Plain text
312 #: build/C/man3/bsd_signal.3:87
313 msgid ""
314 "On modern Linux systems, B<bsd_signal>()  and B<signal>(2)  are equivalent.  "
315 "But on older systems, B<signal>(2)  provided unreliable signal semantics; "
316 "see B<signal>(2)  for details."
317 msgstr ""
318 "最近の Linux システムでは、 B<bsd_signal>()  と B<signal>(2)  は等価である。"
319 "しかし、以前のシステムでは、 B<signal>(2)  は信頼性に欠けるシグナル処理方式を"
320 "提供していた。 詳細は B<signal>(2)  を参照。"
321
322 #. type: Plain text
323 #: build/C/man3/bsd_signal.3:94 build/C/man3/sysv_signal.3:87
324 msgid ""
325 "The use of I<sighandler_t> is a GNU extension; this type is defined only if "
326 "the B<_GNU_SOURCE> feature test macro is defined."
327 msgstr ""
328 "I<sighandler_t> を使っているのは GNU による拡張である。 この型は機能検査マク"
329 "ロ B<_GNU_SOURCE> を定義した場合にのみ定義される。"
330
331 #. type: SH
332 #: build/C/man3/bsd_signal.3:94 build/C/man2/eventfd.2:417
333 #: build/C/man2/getitimer.2:239 build/C/man3/gsignal.3:103
334 #: build/C/man2/kill.2:171 build/C/man2/killpg.2:134 build/C/man2/pause.2:59
335 #: build/C/man2/prctl.2:979 build/C/man3/profil.3:81
336 #: build/C/man3/psignal.3:113 build/C/man3/raise.3:77
337 #: build/C/man2/restart_syscall.2:123 build/C/man2/rt_sigqueueinfo.2:188
338 #: build/C/man2/s390_runtime_instr.2:88 build/C/man2/sgetmask.2:80
339 #: build/C/man2/sigaction.2:793 build/C/man2/sigaltstack.2:232
340 #: build/C/man7/sigevent.7:132 build/C/man3/siginterrupt.3:96
341 #: build/C/man2/signal.2:278 build/C/man7/signal.7:850
342 #: build/C/man2/signalfd.2:433 build/C/man3/sigpause.3:98
343 #: build/C/man2/sigpending.2:87 build/C/man2/sigprocmask.2:144
344 #: build/C/man3/sigqueue.3:149 build/C/man2/sigreturn.2:74
345 #: build/C/man3/sigset.3:266 build/C/man3/sigsetops.3:171
346 #: build/C/man2/sigsuspend.2:108 build/C/man3/sigvec.3:252
347 #: build/C/man3/sigwait.3:89 build/C/man2/sigwaitinfo.2:187
348 #: build/C/man3/sysv_signal.3:87 build/C/man2/timer_create.2:399
349 #: build/C/man2/timer_delete.2:69 build/C/man2/timer_getoverrun.2:131
350 #: build/C/man2/timer_settime.2:212 build/C/man2/timerfd_create.2:541
351 #: build/C/man2/tkill.2:131 build/C/man2/wait.2:633 build/C/man2/wait4.2:165
352 #, no-wrap
353 msgid "SEE ALSO"
354 msgstr "関連項目"
355
356 #. type: Plain text
357 #: build/C/man3/bsd_signal.3:99
358 msgid "B<sigaction>(2), B<signal>(2), B<sysv_signal>(3), B<signal>(7)"
359 msgstr "B<sigaction>(2), B<signal>(2), B<sysv_signal>(3), B<signal>(7)"
360
361 #. type: SH
362 #: build/C/man3/bsd_signal.3:99 build/C/man2/eventfd.2:428
363 #: build/C/man2/getitimer.2:246 build/C/man3/gsignal.3:107
364 #: build/C/man2/kill.2:181 build/C/man2/killpg.2:140 build/C/man2/pause.2:64
365 #: build/C/man2/prctl.2:982 build/C/man3/profil.3:86
366 #: build/C/man3/psignal.3:118 build/C/man3/raise.3:84
367 #: build/C/man2/restart_syscall.2:131 build/C/man2/rt_sigqueueinfo.2:196
368 #: build/C/man2/s390_runtime_instr.2:91 build/C/man2/sgetmask.2:83
369 #: build/C/man2/sigaction.2:813 build/C/man2/sigaltstack.2:239
370 #: build/C/man7/sigevent.7:142 build/C/man3/siginterrupt.3:98
371 #: build/C/man2/signal.2:297 build/C/man7/signal.7:884
372 #: build/C/man2/signalfd.2:446 build/C/man3/sigpause.3:106
373 #: build/C/man2/sigpending.2:95 build/C/man2/sigprocmask.2:155
374 #: build/C/man3/sigqueue.3:157 build/C/man2/sigreturn.2:80
375 #: build/C/man3/sigset.3:276 build/C/man3/sigsetops.3:176
376 #: build/C/man2/sigsuspend.2:118 build/C/man3/sigvec.3:262
377 #: build/C/man3/sigwait.3:97 build/C/man2/sigwaitinfo.2:199
378 #: build/C/man3/sysv_signal.3:92 build/C/man2/timer_create.2:414
379 #: build/C/man2/timer_delete.2:75 build/C/man2/timer_getoverrun.2:141
380 #: build/C/man2/timer_settime.2:216 build/C/man2/timerfd_create.2:553
381 #: build/C/man2/tkill.2:136 build/C/man2/wait.2:645 build/C/man2/wait4.2:172
382 #, no-wrap
383 msgid "COLOPHON"
384 msgstr "この文書について"
385
386 #. type: Plain text
387 #: build/C/man3/bsd_signal.3:106 build/C/man2/eventfd.2:435
388 #: build/C/man2/getitimer.2:253 build/C/man3/gsignal.3:114
389 #: build/C/man2/kill.2:188 build/C/man2/killpg.2:147 build/C/man2/pause.2:71
390 #: build/C/man2/prctl.2:989 build/C/man3/profil.3:93
391 #: build/C/man3/psignal.3:125 build/C/man3/raise.3:91
392 #: build/C/man2/restart_syscall.2:138 build/C/man2/rt_sigqueueinfo.2:203
393 #: build/C/man2/s390_runtime_instr.2:98 build/C/man2/sgetmask.2:90
394 #: build/C/man2/sigaction.2:820 build/C/man2/sigaltstack.2:246
395 #: build/C/man7/sigevent.7:149 build/C/man3/siginterrupt.3:105
396 #: build/C/man2/signal.2:304 build/C/man7/signal.7:891
397 #: build/C/man2/signalfd.2:453 build/C/man3/sigpause.3:113
398 #: build/C/man2/sigpending.2:102 build/C/man2/sigprocmask.2:162
399 #: build/C/man3/sigqueue.3:164 build/C/man2/sigreturn.2:87
400 #: build/C/man3/sigset.3:283 build/C/man3/sigsetops.3:183
401 #: build/C/man2/sigsuspend.2:125 build/C/man3/sigvec.3:269
402 #: build/C/man3/sigwait.3:104 build/C/man2/sigwaitinfo.2:206
403 #: build/C/man3/sysv_signal.3:99 build/C/man2/timer_create.2:421
404 #: build/C/man2/timer_delete.2:82 build/C/man2/timer_getoverrun.2:148
405 #: build/C/man2/timer_settime.2:223 build/C/man2/timerfd_create.2:560
406 #: build/C/man2/tkill.2:143 build/C/man2/wait.2:652 build/C/man2/wait4.2:179
407 #, fuzzy
408 #| msgid ""
409 #| "This page is part of release 3.53 of the Linux I<man-pages> project.  A "
410 #| "description of the project, and information about reporting bugs, can be "
411 #| "found at \\%http://www.kernel.org/doc/man-pages/."
412 msgid ""
413 "This page is part of release 3.54 of the Linux I<man-pages> project.  A "
414 "description of the project, and information about reporting bugs, can be "
415 "found at \\%http://www.kernel.org/doc/man-pages/."
416 msgstr ""
417 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.53 の一部\n"
418 "である。プロジェクトの説明とバグ報告に関する情報は\n"
419 "http://www.kernel.org/doc/man-pages/ に書かれている。"
420
421 #. type: TH
422 #: build/C/man2/eventfd.2:22
423 #, no-wrap
424 msgid "EVENTFD"
425 msgstr "EVENTFD"
426
427 #. type: TH
428 #: build/C/man2/eventfd.2:22
429 #, no-wrap
430 msgid "2010-08-30"
431 msgstr "2010-08-30"
432
433 #. type: TH
434 #: build/C/man2/eventfd.2:22 build/C/man2/getitimer.2:12
435 #: build/C/man2/kill.2:44 build/C/man2/killpg.2:42 build/C/man2/pause.2:30
436 #: build/C/man2/prctl.2:52 build/C/man3/profil.3:28
437 #: build/C/man2/restart_syscall.2:33 build/C/man2/rt_sigqueueinfo.2:25
438 #: build/C/man2/sgetmask.2:26 build/C/man2/sigaction.2:47
439 #: build/C/man2/sigaltstack.2:27 build/C/man2/signal.2:36
440 #: build/C/man7/signal.7:46 build/C/man2/signalfd.2:20
441 #: build/C/man3/sigpause.3:25 build/C/man2/sigpending.2:29
442 #: build/C/man2/sigprocmask.2:29 build/C/man3/sigqueue.3:28
443 #: build/C/man2/sigreturn.2:29 build/C/man3/sigset.3:26
444 #: build/C/man3/sigsetops.3:31 build/C/man2/sigsuspend.2:29
445 #: build/C/man3/sigvec.3:26 build/C/man3/sigwait.3:26
446 #: build/C/man2/sigwaitinfo.2:25 build/C/man2/timer_create.2:31
447 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
448 #: build/C/man2/timer_settime.2:26 build/C/man2/timerfd_create.2:21
449 #: build/C/man2/tkill.2:29 build/C/man2/wait.2:49 build/C/man2/wait4.2:33
450 #, no-wrap
451 msgid "Linux"
452 msgstr "Linux"
453
454 #. type: Plain text
455 #: build/C/man2/eventfd.2:25
456 msgid "eventfd - create a file descriptor for event notification"
457 msgstr "eventfd - イベント通知用のファイルディスクリプタを生成する"
458
459 #. type: Plain text
460 #: build/C/man2/eventfd.2:27
461 msgid "B<#include E<lt>sys/eventfd.hE<gt>>"
462 msgstr "B<#include E<lt>sys/eventfd.hE<gt>>"
463
464 #. type: Plain text
465 #: build/C/man2/eventfd.2:29
466 msgid "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
467 msgstr "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
468
469 #. type: Plain text
470 #: build/C/man2/eventfd.2:39
471 msgid ""
472 "B<eventfd>()  creates an \"eventfd object\" that can be used as an event "
473 "wait/notify mechanism by user-space applications, and by the kernel to "
474 "notify user-space applications of events.  The object contains an unsigned "
475 "64-bit integer (I<uint64_t>)  counter that is maintained by the kernel.  "
476 "This counter is initialized with the value specified in the argument "
477 "I<initval>."
478 msgstr ""
479 "B<eventfd>()  は \"eventfd オブジェクト\" を生成する。 eventfd オブジェクトは"
480 "ユーザ空間アプリケーションがイベント待ち受け/通知用の 仕組みとして使うことが"
481 "できる。また、カーネルがユーザ空間アプリケーションに イベントを通知するために"
482 "も使うことができる。 このオブジェクトには、unsigned の 64 ビット整数 "
483 "(I<uint64_t>)  型のカウンタが含まれており、このカウンタはカーネルにより管理さ"
484 "れる。 このカウンタは I<initval> 引き数で指定された値で初期化される。"
485
486 #. type: Plain text
487 #: build/C/man2/eventfd.2:44
488 msgid ""
489 "The following values may be bitwise ORed in I<flags> to change the behaviour "
490 "of B<eventfd>():"
491 msgstr ""
492 "以下の値のいくつかをビット単位の論理和 (OR) で指定することで、\n"
493 "B<eventfd>() の振舞いを変更することができる。"
494
495 #. type: TP
496 #: build/C/man2/eventfd.2:44
497 #, no-wrap
498 msgid "B<EFD_CLOEXEC> (since Linux 2.6.27)"
499 msgstr "B<EFD_CLOEXEC> (Linux 2.6.27 以降)"
500
501 #. type: Plain text
502 #: build/C/man2/eventfd.2:54 build/C/man2/signalfd.2:95
503 #: build/C/man2/timerfd_create.2:103
504 msgid ""
505 "Set the close-on-exec (B<FD_CLOEXEC>)  flag on the new file descriptor.  See "
506 "the description of the B<O_CLOEXEC> flag in B<open>(2)  for reasons why this "
507 "may be useful."
508 msgstr ""
509 "新しいファイルディスクリプタに対して close-on-exec (B<FD_CLOEXEC>)  フラグを"
510 "セットする。 このフラグが役に立つ理由については、 B<open>(2)  の "
511 "B<O_CLOEXEC> フラグの説明を参照のこと。"
512
513 #. type: TP
514 #: build/C/man2/eventfd.2:54
515 #, no-wrap
516 msgid "B<EFD_NONBLOCK> (since Linux 2.6.27)"
517 msgstr "B<EFD_NONBLOCK> (Linux 2.6.27 以降)"
518
519 #. type: Plain text
520 #: build/C/man2/eventfd.2:62 build/C/man2/signalfd.2:85
521 #: build/C/man2/timerfd_create.2:93
522 msgid ""
523 "Set the B<O_NONBLOCK> file status flag on the new open file description.  "
524 "Using this flag saves extra calls to B<fcntl>(2)  to achieve the same result."
525 msgstr ""
526 "新しく生成されるオープンファイル記述 (open file description) の "
527 "B<O_NONBLOCK> ファイルステータスフラグをセットする。 このフラグを使うこと"
528 "で、 B<O_NONBLOCK> をセットするために B<fcntl>(2)  を追加で呼び出す必要がなく"
529 "なる。"
530
531 #. type: TP
532 #: build/C/man2/eventfd.2:62
533 #, no-wrap
534 msgid "B<EFD_SEMAPHORE> (since Linux 2.6.30)"
535 msgstr "B<EFD_SEMAPHORE> (Linux 2.6.30 以降)"
536
537 #. type: Plain text
538 #: build/C/man2/eventfd.2:66
539 msgid ""
540 "Provide semaphore-like semantics for reads from the new file descriptor.  "
541 "See below."
542 msgstr ""
543 "新しいファイルディスクリプタからの読み出しにおいて、セマフォ風の動作を行"
544 "う。\n"
545 "下記参照。"
546
547 #. type: Plain text
548 #: build/C/man2/eventfd.2:70 build/C/man2/signalfd.2:99
549 msgid ""
550 "In Linux up to version 2.6.26, the I<flags> argument is unused, and must be "
551 "specified as zero."
552 msgstr ""
553 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
554 "しなければならない。"
555
556 #. type: Plain text
557 #: build/C/man2/eventfd.2:76
558 msgid ""
559 "As its return value, B<eventfd>()  returns a new file descriptor that can be "
560 "used to refer to the eventfd object.  The following operations can be "
561 "performed on the file descriptor:"
562 msgstr ""
563 "B<eventfd>()  は eventfd オブジェクトを参照するのに使用できる新しいファイル"
564 "ディスクリプタ を返す。返されたファイルディスクリプタに対しては以下の操作を実"
565 "行できる。"
566
567 #. type: TP
568 #: build/C/man2/eventfd.2:76 build/C/man2/signalfd.2:102
569 #: build/C/man2/timerfd_create.2:211
570 #, no-wrap
571 msgid "B<read>(2)"
572 msgstr "B<read>(2)"
573
574 #. type: Plain text
575 #: build/C/man2/eventfd.2:86
576 msgid ""
577 "Each successful B<read>(2)  returns an 8-byte integer.  A B<read>(2)  will "
578 "fail with the error B<EINVAL> if the size of the supplied buffer is less "
579 "than 8 bytes."
580 msgstr ""
581 "B<read>(2) は成功すると、8 バイトの整数を返す。\n"
582 "渡されたバッファの大きさが 8 バイト未満の場合、\n"
583 "B<read>(2)  はエラー B<EINVAL> で失敗する。"
584
585 #. type: Plain text
586 #: build/C/man2/eventfd.2:91
587 msgid ""
588 "The value returned by B<read>(2)  is in host byte order, i.e., the native "
589 "byte order for integers on the host machine."
590 msgstr ""
591 "B<read>(2) が返す値は、ホストバイトオーダ、つまり\n"
592 "そのホストマシンにおける整数の通常のバイトオーダである。"
593
594 #. type: Plain text
595 #: build/C/man2/eventfd.2:98
596 msgid ""
597 "The semantics of B<read>(2)  depend on whether the eventfd counter currently "
598 "has a nonzero value and whether the B<EFD_SEMAPHORE> flag was specified when "
599 "creating the eventfd file descriptor:"
600 msgstr ""
601 "B<read>(2) の動作は、 eventfd カウンタの現在の値が 0 以外であるかと、\n"
602 "eventfd ファイルディスクリプタを作成する際に B<EFD_SEMAPHORE> フラグが\n"
603 "指定されたか、により変化する。"
604
605 #. type: IP
606 #: build/C/man2/eventfd.2:99 build/C/man2/eventfd.2:106
607 #: build/C/man2/eventfd.2:113 build/C/man2/eventfd.2:158
608 #: build/C/man2/eventfd.2:168 build/C/man2/eventfd.2:178
609 #: build/C/man2/prctl.2:836 build/C/man2/prctl.2:841 build/C/man2/prctl.2:846
610 #: build/C/man2/prctl.2:856 build/C/man3/psignal.3:105
611 #: build/C/man3/psignal.3:109 build/C/man2/sigaction.2:298
612 #: build/C/man2/sigaction.2:313 build/C/man2/sigaction.2:329
613 #: build/C/man2/sigaction.2:344 build/C/man2/sigaction.2:391
614 #: build/C/man2/sigaction.2:427 build/C/man2/signal.2:68
615 #: build/C/man2/signal.2:73 build/C/man2/signal.2:80 build/C/man2/signal.2:224
616 #: build/C/man2/signal.2:228 build/C/man2/signal.2:267
617 #: build/C/man7/signal.7:149 build/C/man7/signal.7:157
618 #: build/C/man7/signal.7:615 build/C/man7/signal.7:617
619 #: build/C/man7/signal.7:638 build/C/man7/signal.7:653
620 #: build/C/man7/signal.7:657 build/C/man7/signal.7:664
621 #: build/C/man7/signal.7:680 build/C/man7/signal.7:686
622 #: build/C/man7/signal.7:693 build/C/man7/signal.7:698
623 #: build/C/man7/signal.7:717 build/C/man7/signal.7:736
624 #: build/C/man7/signal.7:743 build/C/man7/signal.7:752
625 #: build/C/man7/signal.7:760 build/C/man7/signal.7:766
626 #: build/C/man7/signal.7:771 build/C/man7/signal.7:791
627 #: build/C/man7/signal.7:810 build/C/man7/signal.7:813
628 #: build/C/man7/signal.7:816 build/C/man7/signal.7:819
629 #: build/C/man7/signal.7:824 build/C/man7/signal.7:830
630 #: build/C/man7/signal.7:834 build/C/man3/sigwait.3:62
631 #: build/C/man3/sigwait.3:67 build/C/man2/timer_create.2:216
632 #: build/C/man2/timer_create.2:219 build/C/man2/timer_create.2:222
633 #: build/C/man2/timer_create.2:226 build/C/man2/timer_create.2:229
634 #: build/C/man2/timer_create.2:235 build/C/man2/timer_create.2:239
635 #, no-wrap
636 msgid "*"
637 msgstr "*"
638
639 #. type: Plain text
640 #: build/C/man2/eventfd.2:106
641 msgid ""
642 "If B<EFD_SEMAPHORE> was not specified and the eventfd counter has a nonzero "
643 "value, then a B<read>(2)  returns 8 bytes containing that value, and the "
644 "counter's value is reset to zero."
645 msgstr ""
646 "B<EFD_SEMAPHORE> が指定されておらず、eventfd カウンタが 0 以外の値\n"
647 "の場合、 B<read>(2) はカウンタ値を格納した 8 バイトの値を返し、\n"
648 "カウンタ値は 0 にリセットされる。"
649
650 #. type: Plain text
651 #: build/C/man2/eventfd.2:113
652 msgid ""
653 "If B<EFD_SEMAPHORE> was specified and the eventfd counter has a nonzero "
654 "value, then a B<read>(2)  returns 8 bytes containing the value 1, and the "
655 "counter's value is decremented by 1."
656 msgstr ""
657 "B<EFD_SEMAPHORE> が指定されていて eventfd カウンタが 0 以外の値の場合、\n"
658 "B<read>(2) は値 1 の 8 バイト値を返し、カウンタ値は 1 減算される。"
659
660 #. type: Plain text
661 #: build/C/man2/eventfd.2:123
662 msgid ""
663 "If the eventfd counter is zero at the time of the call to B<read>(2), then "
664 "the call either blocks until the counter becomes nonzero (at which time, the "
665 "B<read>(2)  proceeds as described above)  or fails with the error B<EAGAIN> "
666 "if the file descriptor has been made nonblocking."
667 msgstr ""
668 "B<read>(2) を呼び出した時点で eventfd カウンタが 0 の場合、 B<read>(2)\n"
669 "はカウンタが 0 以外になるまで停止 (block) する (0 以外になった時点で\n"
670 "B<read>(2) は上記で述べた通り実行を再開する)、 もしくはファイルディスク\n"
671 "リプタが非停止 (nonblocking) に設定されている場合はエラー B<EAGAIN>で\n"
672 "失敗する。"
673
674 #. type: TP
675 #: build/C/man2/eventfd.2:124
676 #, no-wrap
677 msgid "B<write>(2)"
678 msgstr "B<write>(2)"
679
680 #. type: Plain text
681 #: build/C/man2/eventfd.2:141
682 msgid ""
683 "A B<write>(2)  call adds the 8-byte integer value supplied in its buffer to "
684 "the counter.  The maximum value that may be stored in the counter is the "
685 "largest unsigned 64-bit value minus 1 (i.e., 0xfffffffffffffffe).  If the "
686 "addition would cause the counter's value to exceed the maximum, then the "
687 "B<write>(2)  either blocks until a B<read>(2)  is performed on the file "
688 "descriptor, or fails with the error B<EAGAIN> if the file descriptor has "
689 "been made nonblocking."
690 msgstr ""
691 "B<write>(2)  は、引き数のバッファで渡された 8 バイトの整数値をカウンタに加算"
692 "する。 カウンタに格納可能な最大値は unsigned の 64 ビット整数の最大値から 1 "
693 "を引いた値 (すなわち 0xfffffffffffffffe) である。 加算を行うとカウンタ値が最"
694 "大値を超過する場合には、 そのファイルディスクリプタに対して B<read>(2)  が実"
695 "行されるまで、 B<write>(2)  は停止 (block) する、 もしくはファイルディスクリ"
696 "プタが非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗す"
697 "る。"
698
699 #. type: Plain text
700 #: build/C/man2/eventfd.2:148
701 msgid ""
702 "A B<write>(2)  will fail with the error B<EINVAL> if the size of the "
703 "supplied buffer is less than 8 bytes, or if an attempt is made to write the "
704 "value 0xffffffffffffffff."
705 msgstr ""
706 "渡されたバッファの大きさが 8 バイト未満の場合、もしくは 値 "
707 "0xffffffffffffffff を書き込もうとした場合、 B<write>(2)  はエラー B<EINVAL> "
708 "で失敗する。"
709
710 #. type: TP
711 #: build/C/man2/eventfd.2:148 build/C/man2/signalfd.2:140
712 #: build/C/man2/timerfd_create.2:244
713 #, no-wrap
714 msgid "B<poll>(2), B<select>(2) (and similar)"
715 msgstr "B<poll>(2), B<select>(2) (と同様の操作)"
716
717 #. type: Plain text
718 #: build/C/man2/eventfd.2:157
719 msgid ""
720 "The returned file descriptor supports B<poll>(2)  (and analogously B<epoll>"
721 "(7))  and B<select>(2), as follows:"
722 msgstr ""
723 "返されたファイルディスクリプタは、 B<poll>(2)  (B<epoll>(7)  も同じ) や "
724 "B<select>(2)  をサポートしており、以下のような動作をする。"
725
726 #. type: Plain text
727 #: build/C/man2/eventfd.2:168
728 msgid ""
729 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
730 "B<poll>(2)  B<POLLIN> flag)  if the counter has a value greater than 0."
731 msgstr ""
732 "カウンタが 0 より大きい値の場合、 ファイルディスクリプタは読み出し可能となる "
733 "(B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
734
735 #. type: Plain text
736 #: build/C/man2/eventfd.2:178
737 msgid ""
738 "The file descriptor is writable (the B<select>(2)  I<writefds> argument; the "
739 "B<poll>(2)  B<POLLOUT> flag)  if it is possible to write a value of at least "
740 "\"1\" without blocking."
741 msgstr ""
742 "少なくとも値 \"1\" を、停止 (block) を伴わずに書き込める場合、 ファイルディス"
743 "クリプタは書き込み可能となる (B<select>(2)  の I<writefds> 引き数や B<poll>"
744 "(2)  の B<POLLOUT> フラグ)。"
745
746 #. type: Plain text
747 #: build/C/man2/eventfd.2:198
748 msgid ""
749 "If an overflow of the counter value was detected, then B<select>(2)  "
750 "indicates the file descriptor as being both readable and writable, and "
751 "B<poll>(2)  returns a B<POLLERR> event.  As noted above, B<write>(2)  can "
752 "never overflow the counter.  However an overflow can occur if 2^64 eventfd "
753 "\"signal posts\" were performed by the KAIO subsystem (theoretically "
754 "possible, but practically unlikely).  If an overflow has occurred, then "
755 "B<read>(2)  will return that maximum I<uint64_t> value (i.e., "
756 "0xffffffffffffffff)."
757 msgstr ""
758 "カウンタ値のオーバーフローが検出された場合、 B<select>(2)  はファイルディスク"
759 "リプタは読み出し可能と書き込み可能の両方を通知し、 B<poll>(2)  は B<POLLERR> "
760 "イベントを返す。 上述の通り、 B<write>(2)  でカウンタがオーバーフローすること"
761 "は決してない。 しかしながら、 KAIO サブシステムによって 2^64 回の eventfd "
762 "\"signal posts\" が 実行された場合にはオーバーフローが起こり得る (理論的には"
763 "あり得るが、実用的にはあり得ない)。 オーバーフローが発生した場合、 B<read>"
764 "(2)  は I<uint64_t> の最大値 (すなわち 0xffffffffffffffff) を返す。"
765
766 #. type: Plain text
767 #: build/C/man2/eventfd.2:205
768 msgid ""
769 "The eventfd file descriptor also supports the other file-descriptor "
770 "multiplexing APIs: B<pselect>(2)  and B<ppoll>(2)."
771 msgstr ""
772 "eventfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
773 "である B<pselect>(2) と B<ppoll>(2) もサポートしている。"
774
775 #. type: TP
776 #: build/C/man2/eventfd.2:205 build/C/man2/signalfd.2:160
777 #: build/C/man2/timerfd_create.2:262
778 #, no-wrap
779 msgid "B<close>(2)"
780 msgstr "B<close>(2)"
781
782 #. type: Plain text
783 #: build/C/man2/eventfd.2:210
784 msgid ""
785 "When the file descriptor is no longer required it should be closed.  When "
786 "all file descriptors associated with the same eventfd object have been "
787 "closed, the resources for object are freed by the kernel."
788 msgstr ""
789 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
790 "る。 同じ eventfd オブジェクトに関連付けられたファイルディスクリプタが全て ク"
791 "ローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
792
793 #. type: Plain text
794 #: build/C/man2/eventfd.2:222
795 msgid ""
796 "A copy of the file descriptor created by B<eventfd>()  is inherited by the "
797 "child produced by B<fork>(2).  The duplicate file descriptor is associated "
798 "with the same eventfd object.  File descriptors created by B<eventfd>()  are "
799 "preserved across B<execve>(2), unless the close-on-exec flag has been set."
800 msgstr ""
801 "B<fork>(2) で生成された子プロセスは、 B<eventfd>() で生成されたファイル\n"
802 "ディスクリプタのコピーを継承する。 複製されたファイルディスクリプタは同\n"
803 "じ eventfd オブジェクトに関連付けられる。\n"
804 "close-on-exec フラグが設定されていない場合、 B<execve>(2) の前後で\n"
805 "B<eventfd>() で生成されたファイルディスクリプタは保持される。"
806
807 #. type: Plain text
808 #: build/C/man2/eventfd.2:229
809 msgid ""
810 "On success, B<eventfd>()  returns a new eventfd file descriptor.  On error, "
811 "-1 is returned and I<errno> is set to indicate the error."
812 msgstr ""
813 "成功すると、 B<eventfd>()  は新規の eventfd ファイルディスクリプタを返す。 エ"
814 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
815
816 #. type: TP
817 #: build/C/man2/eventfd.2:230 build/C/man2/getitimer.2:135
818 #: build/C/man2/kill.2:106 build/C/man2/killpg.2:95 build/C/man2/prctl.2:798
819 #: build/C/man2/prctl.2:803 build/C/man2/prctl.2:815 build/C/man2/prctl.2:820
820 #: build/C/man2/prctl.2:829 build/C/man2/prctl.2:869
821 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man2/s390_runtime_instr.2:66
822 #: build/C/man2/sigaction.2:670 build/C/man2/sigaltstack.2:142
823 #: build/C/man3/siginterrupt.3:84 build/C/man2/signal.2:106
824 #: build/C/man2/signalfd.2:271 build/C/man2/signalfd.2:279
825 #: build/C/man2/sigprocmask.2:107 build/C/man3/sigqueue.3:98
826 #: build/C/man3/sigsetops.3:127 build/C/man3/sigwait.3:75
827 #: build/C/man2/sigwaitinfo.2:129 build/C/man2/timer_create.2:179
828 #: build/C/man2/timer_delete.2:61 build/C/man2/timer_getoverrun.2:91
829 #: build/C/man2/timer_settime.2:191 build/C/man2/timer_settime.2:199
830 #: build/C/man2/timerfd_create.2:305 build/C/man2/timerfd_create.2:313
831 #: build/C/man2/timerfd_create.2:349 build/C/man2/timerfd_create.2:356
832 #: build/C/man2/timerfd_create.2:362 build/C/man2/tkill.2:100
833 #: build/C/man2/wait.2:417
834 #, no-wrap
835 msgid "B<EINVAL>"
836 msgstr "B<EINVAL>"
837
838 #. type: Plain text
839 #: build/C/man2/eventfd.2:234
840 msgid "An unsupported value was specified in I<flags>."
841 msgstr "I<flags> にサポートされていない値が指定された。"
842
843 #. type: TP
844 #: build/C/man2/eventfd.2:234 build/C/man2/signalfd.2:286
845 #: build/C/man2/timerfd_create.2:320
846 #, no-wrap
847 msgid "B<EMFILE>"
848 msgstr "B<EMFILE>"
849
850 #. type: Plain text
851 #: build/C/man2/eventfd.2:237
852 msgid "The per-process limit on open file descriptors has been reached."
853 msgstr ""
854 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
855
856 #. type: TP
857 #: build/C/man2/eventfd.2:237 build/C/man2/signalfd.2:289
858 #: build/C/man2/timerfd_create.2:323
859 #, no-wrap
860 msgid "B<ENFILE>"
861 msgstr "B<ENFILE>"
862
863 #. type: Plain text
864 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
865 #: build/C/man2/timerfd_create.2:327
866 msgid ""
867 "The system-wide limit on the total number of open files has been reached."
868 msgstr "オープン済みのファイル総数がシステム全体の上限に達していた。"
869
870 #. type: TP
871 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
872 #: build/C/man2/timerfd_create.2:327
873 #, no-wrap
874 msgid "B<ENODEV>"
875 msgstr "B<ENODEV>"
876
877 #. type: Plain text
878 #: build/C/man2/eventfd.2:249 build/C/man2/signalfd.2:296
879 #: build/C/man2/timerfd_create.2:330
880 msgid "Could not mount (internal) anonymous inode device."
881 msgstr "(カーネル内の) 無名 inode デバイスをマウントできなかった。"
882
883 #. type: TP
884 #: build/C/man2/eventfd.2:249 build/C/man2/s390_runtime_instr.2:73
885 #: build/C/man2/sigaltstack.2:147 build/C/man2/signalfd.2:296
886 #: build/C/man2/timer_create.2:187 build/C/man2/timerfd_create.2:330
887 #, no-wrap
888 msgid "B<ENOMEM>"
889 msgstr "B<ENOMEM>"
890
891 #. type: Plain text
892 #: build/C/man2/eventfd.2:253
893 msgid "There was insufficient memory to create a new eventfd file descriptor."
894 msgstr ""
895 "新しい eventfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
896
897 #. type: SH
898 #: build/C/man2/eventfd.2:253 build/C/man2/prctl.2:960
899 #: build/C/man3/psignal.3:95 build/C/man2/restart_syscall.2:92
900 #: build/C/man2/rt_sigqueueinfo.2:169 build/C/man2/s390_runtime_instr.2:79
901 #: build/C/man2/signalfd.2:299 build/C/man3/sigqueue.3:112
902 #: build/C/man2/timer_create.2:191 build/C/man2/timer_delete.2:65
903 #: build/C/man2/timer_getoverrun.2:95 build/C/man2/timer_settime.2:205
904 #: build/C/man2/timerfd_create.2:368 build/C/man2/tkill.2:111
905 #, no-wrap
906 msgid "VERSIONS"
907 msgstr "バージョン"
908
909 #.  eventfd() is in glibc 2.7, but reportedly does not build
910 #. type: Plain text
911 #: build/C/man2/eventfd.2:266
912 msgid ""
913 "B<eventfd>()  is available on Linux since kernel 2.6.22.  Working support is "
914 "provided in glibc since version 2.8.  The B<eventfd2>()  system call (see "
915 "NOTES) is available on Linux since kernel 2.6.27.  Since version 2.9, the "
916 "glibc B<eventfd>()  wrapper will employ the B<eventfd2>()  system call, if "
917 "it is supported by the kernel."
918 msgstr ""
919 "B<eventfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
920 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<eventfd2>()  "
921 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
922 "る。 バージョン 2.9 以降では、glibc の B<eventfd>()  のラッパー関数は、カーネ"
923 "ルが対応していれば B<eventfd2>()  システムコールを利用する。"
924
925 #. type: Plain text
926 #: build/C/man2/eventfd.2:271
927 msgid "B<eventfd>()  and B<eventfd2>()  are Linux-specific."
928 msgstr "B<eventfd>()  と B<eventfd2>()  は Linux 固有である。"
929
930 #. type: Plain text
931 #: build/C/man2/eventfd.2:279
932 msgid ""
933 "Applications can use an eventfd file descriptor instead of a pipe (see "
934 "B<pipe>(2))  in all cases where a pipe is used simply to signal events.  The "
935 "kernel overhead of an eventfd file descriptor is much lower than that of a "
936 "pipe, and only one file descriptor is required (versus the two required for "
937 "a pipe)."
938 msgstr ""
939 "アプリケーションは、パイプをイベントを通知するためだけに使用している 全ての場"
940 "面において、パイプの代わりに eventfd ファイルディスクリプタを 使用することが"
941 "できる。 eventfd ファイルディスクリプタを使う方が、パイプを使う場合に比べて "
942 "カーネルでのオーバヘッドは比べるとずっと小さく、ファイルディスクリプタも 一つ"
943 "しか必要としない (パイプの場合は二つ必要である)。"
944
945 #.  or eventually syslets/threadlets
946 #. type: Plain text
947 #: build/C/man2/eventfd.2:285
948 msgid ""
949 "When used in the kernel, an eventfd file descriptor can provide a bridge "
950 "from kernel to user space, allowing, for example, functionalities like KAIO "
951 "(kernel AIO)  to signal to a file descriptor that some operation is complete."
952 msgstr ""
953 "カーネル内で使用すると、eventfd ファイルディスクリプタはカーネル空間からユー"
954 "ザ空間へのブリッジ機能を提供することができ、 例えば KAIO (kernel AIO)  のよう"
955 "な機能が、あるファイルディスクリプタに何らかの操作が完了したことを 通知するこ"
956 "とができる。"
957
958 #. type: Plain text
959 #: build/C/man2/eventfd.2:302
960 msgid ""
961 "A key point about an eventfd file descriptor is that it can be monitored "
962 "just like any other file descriptor using B<select>(2), B<poll>(2), or "
963 "B<epoll>(7).  This means that an application can simultaneously monitor the "
964 "readiness of \"traditional\" files and the readiness of other kernel "
965 "mechanisms that support the eventfd interface.  (Without the B<eventfd>()  "
966 "interface, these mechanisms could not be multiplexed via B<select>(2), "
967 "B<poll>(2), or B<epoll>(7).)"
968 msgstr ""
969 "eventfd ファイルディスクリプタの重要な点は、 eventfd ファイルディスクリプタ"
970 "が B<select>(2), B<poll>(2), B<epoll>(7)  を使って他のファイルディスクリプタ"
971 "と全く同様に監視できる点である。 このことは、アプリケーションは「従来の "
972 "(traditional)」 ファイルの状態変化と eventfd インタフェースをサポートする他の"
973 "カーネル機構の状態変化を同時に監視 できることを意味する (B<eventfd>()  インタ"
974 "フェースがない時には、これらのカーネル機構は B<select>(2), B<poll>(2), "
975 "B<epoll>(7)  経由で多重することはできなかった)。"
976
977 #. type: SS
978 #: build/C/man2/eventfd.2:302 build/C/man2/signalfd.2:336
979 #, no-wrap
980 msgid "Underlying Linux system calls"
981 msgstr "下層にある Linux のシステムコール"
982
983 #. type: Plain text
984 #: build/C/man2/eventfd.2:316
985 msgid ""
986 "There are two underlying Linux system calls: B<eventfd>()  and the more "
987 "recent B<eventfd2>().  The former system call does not implement a I<flags> "
988 "argument.  The latter system call implements the I<flags> values described "
989 "above.  The glibc wrapper function will use B<eventfd2>()  where it is "
990 "available."
991 msgstr ""
992 "下層にある Linux システムコールは二種類あり、 B<eventfd>()  と、もっと新しい "
993 "B<eventfd2>()  である。 B<eventfd>()  は I<flags> 引き数を実装していない。 "
994 "B<eventfd2>()  では上記の値の I<flags> が実装されている。 glibc のラッパー関"
995 "数は、 B<eventfd2>()  が利用可能であれば、これを使用する。"
996
997 #. type: SS
998 #: build/C/man2/eventfd.2:316
999 #, no-wrap
1000 msgid "Additional glibc features"
1001 msgstr "glibc の追加機能"
1002
1003 #. type: Plain text
1004 #: build/C/man2/eventfd.2:320
1005 msgid ""
1006 "The GNU C library defines an additional type, and two functions that attempt "
1007 "to abstract some of the details of reading and writing on an eventfd file "
1008 "descriptor:"
1009 msgstr ""
1010 "GNU C ライブラリは、eventfd ファイルディスクリプタの読み出しと書き込みに を関"
1011 "する詳細のいくつか抽象化するために、一つの型と、二つの関数を追加で 定義してい"
1012 "る。"
1013
1014 #. type: Plain text
1015 #: build/C/man2/eventfd.2:324
1016 #, no-wrap
1017 msgid "typedef uint64_t eventfd_t;\n"
1018 msgstr "typedef uint64_t eventfd_t;\n"
1019
1020 #. type: Plain text
1021 #: build/C/man2/eventfd.2:327
1022 #, no-wrap
1023 msgid ""
1024 "int eventfd_read(int fd, eventfd_t *value);\n"
1025 "int eventfd_write(int fd, eventfd_t value);\n"
1026 msgstr ""
1027 "int eventfd_read(int fd, eventfd_t *value);\n"
1028 "int eventfd_write(int fd, eventfd_t value);\n"
1029
1030 #. type: Plain text
1031 #: build/C/man2/eventfd.2:334
1032 msgid ""
1033 "The functions perform the read and write operations on an eventfd file "
1034 "descriptor, returning 0 if the correct number of bytes was transferred, or "
1035 "-1 otherwise."
1036 msgstr ""
1037 "これらの関数は、eventfd ファイルディスクリプタに対する読み出しと 書き込みの操"
1038 "作を実行し、正しいバイト数が転送された場合には 0 を返し、そうでない場合は -1 "
1039 "を返す。"
1040
1041 #. type: SH
1042 #: build/C/man2/eventfd.2:334 build/C/man2/sigaction.2:790
1043 #: build/C/man2/sigaltstack.2:215 build/C/man2/signalfd.2:360
1044 #: build/C/man3/sigwait.3:86 build/C/man2/timer_create.2:253
1045 #: build/C/man2/timer_getoverrun.2:128 build/C/man2/timer_settime.2:209
1046 #: build/C/man2/timerfd_create.2:379 build/C/man2/wait.2:550
1047 #, no-wrap
1048 msgid "EXAMPLE"
1049 msgstr "例"
1050
1051 #. type: Plain text
1052 #: build/C/man2/eventfd.2:343
1053 msgid ""
1054 "The following program creates an eventfd file descriptor and then forks to "
1055 "create a child process.  While the parent briefly sleeps, the child writes "
1056 "each of the integers supplied in the program's command-line arguments to the "
1057 "eventfd file descriptor.  When the parent has finished sleeping, it reads "
1058 "from the eventfd file descriptor."
1059 msgstr ""
1060 "以下のプログラムは eventfd ファイルディスクリプタを生成し、 その後 fork を実"
1061 "行して子プロセスを生成する。 親プロセスが少しの間 sleep する間に、子プロセス"
1062 "は プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ eventfd "
1063 "ファイルディスクリプタに書き込む。 親プロセスは sleep を完了すると eventfd "
1064 "ファイルディスクリプタから 読み出しを行う。"
1065
1066 #. type: Plain text
1067 #: build/C/man2/eventfd.2:345
1068 msgid "The following shell session shows a sample run of the program:"
1069 msgstr "以下に示すシェルセッションにこのプログラムの使い方を示す。"
1070
1071 #. type: Plain text
1072 #: build/C/man2/eventfd.2:357
1073 #, no-wrap
1074 msgid ""
1075 "$B< ./a.out 1 2 4 7 14>\n"
1076 "Child writing 1 to efd\n"
1077 "Child writing 2 to efd\n"
1078 "Child writing 4 to efd\n"
1079 "Child writing 7 to efd\n"
1080 "Child writing 14 to efd\n"
1081 "Child completed write loop\n"
1082 "Parent about to read\n"
1083 "Parent read 28 (0x1c) from efd\n"
1084 msgstr ""
1085 "$B< ./a.out 1 2 4 7 14>\n"
1086 "Child writing 1 to efd\n"
1087 "Child writing 2 to efd\n"
1088 "Child writing 4 to efd\n"
1089 "Child writing 7 to efd\n"
1090 "Child writing 14 to efd\n"
1091 "Child completed write loop\n"
1092 "Parent about to read\n"
1093 "Parent read 28 (0x1c) from efd\n"
1094
1095 #. type: SS
1096 #: build/C/man2/eventfd.2:359 build/C/man2/signalfd.2:383
1097 #: build/C/man2/timer_create.2:284 build/C/man2/timerfd_create.2:407
1098 #: build/C/man2/wait.2:585
1099 #, no-wrap
1100 msgid "Program source"
1101 msgstr "プログラムのソース"
1102
1103 #. type: Plain text
1104 #: build/C/man2/eventfd.2:367
1105 #, no-wrap
1106 msgid ""
1107 "#include E<lt>sys/eventfd.hE<gt>\n"
1108 "#include E<lt>unistd.hE<gt>\n"
1109 "#include E<lt>stdlib.hE<gt>\n"
1110 "#include E<lt>stdio.hE<gt>\n"
1111 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1112 msgstr ""
1113 "#include E<lt>sys/eventfd.hE<gt>\n"
1114 "#include E<lt>unistd.hE<gt>\n"
1115 "#include E<lt>stdlib.hE<gt>\n"
1116 "#include E<lt>stdio.hE<gt>\n"
1117 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1118
1119 #. type: Plain text
1120 #: build/C/man2/eventfd.2:370 build/C/man2/signalfd.2:394
1121 #, no-wrap
1122 msgid ""
1123 "#define handle_error(msg) \\e\n"
1124 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1125 msgstr ""
1126 "#define handle_error(msg) \\e\n"
1127 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1128
1129 #. type: Plain text
1130 #: build/C/man2/eventfd.2:377
1131 #, no-wrap
1132 msgid ""
1133 "int\n"
1134 "main(int argc, char *argv[])\n"
1135 "{\n"
1136 "    int efd, j;\n"
1137 "    uint64_t u;\n"
1138 "    ssize_t s;\n"
1139 msgstr ""
1140 "int\n"
1141 "main(int argc, char *argv[])\n"
1142 "{\n"
1143 "    int efd, j;\n"
1144 "    uint64_t u;\n"
1145 "    ssize_t s;\n"
1146
1147 #. type: Plain text
1148 #: build/C/man2/eventfd.2:382
1149 #, no-wrap
1150 msgid ""
1151 "    if (argc E<lt> 2) {\n"
1152 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1153 "        exit(EXIT_FAILURE);\n"
1154 "    }\n"
1155 msgstr ""
1156 "    if (argc E<lt> 2) {\n"
1157 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1158 "        exit(EXIT_FAILURE);\n"
1159 "    }\n"
1160
1161 #. type: Plain text
1162 #: build/C/man2/eventfd.2:386
1163 #, no-wrap
1164 msgid ""
1165 "    efd = eventfd(0, 0);\n"
1166 "    if (efd == -1)\n"
1167 "        handle_error(\"eventfd\");\n"
1168 msgstr ""
1169 "    efd = eventfd(0, 0);\n"
1170 "    if (efd == -1)\n"
1171 "        handle_error(\"eventfd\");\n"
1172
1173 #. type: Plain text
1174 #: build/C/man2/eventfd.2:398
1175 #, no-wrap
1176 msgid ""
1177 "    switch (fork()) {\n"
1178 "    case 0:\n"
1179 "        for (j = 1; j E<lt> argc; j++) {\n"
1180 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1181 "            u = strtoull(argv[j], NULL, 0);\n"
1182 "                    /* strtoull() allows various bases */\n"
1183 "            s = write(efd, &u, sizeof(uint64_t));\n"
1184 "            if (s != sizeof(uint64_t))\n"
1185 "                handle_error(\"write\");\n"
1186 "        }\n"
1187 "        printf(\"Child completed write loop\\en\");\n"
1188 msgstr ""
1189 "    switch (fork()) {\n"
1190 "    case 0:\n"
1191 "        for (j = 1; j E<lt> argc; j++) {\n"
1192 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1193 "            u = strtoull(argv[j], NULL, 0);\n"
1194 "                    /* strtoull() allows various bases */\n"
1195 "            s = write(efd, &u, sizeof(uint64_t));\n"
1196 "            if (s != sizeof(uint64_t))\n"
1197 "                handle_error(\"write\");\n"
1198 "        }\n"
1199 "        printf(\"Child completed write loop\\en\");\n"
1200
1201 #. type: Plain text
1202 #: build/C/man2/eventfd.2:400
1203 #, no-wrap
1204 msgid "        exit(EXIT_SUCCESS);\n"
1205 msgstr "        exit(EXIT_SUCCESS);\n"
1206
1207 #. type: Plain text
1208 #: build/C/man2/eventfd.2:403
1209 #, no-wrap
1210 msgid ""
1211 "    default:\n"
1212 "        sleep(2);\n"
1213 msgstr ""
1214 "    default:\n"
1215 "        sleep(2);\n"
1216
1217 #. type: Plain text
1218 #: build/C/man2/eventfd.2:411
1219 #, no-wrap
1220 msgid ""
1221 "        printf(\"Parent about to read\\en\");\n"
1222 "        s = read(efd, &u, sizeof(uint64_t));\n"
1223 "        if (s != sizeof(uint64_t))\n"
1224 "            handle_error(\"read\");\n"
1225 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1226 "                (unsigned long long) u, (unsigned long long) u);\n"
1227 "        exit(EXIT_SUCCESS);\n"
1228 msgstr ""
1229 "        printf(\"Parent about to read\\en\");\n"
1230 "        s = read(efd, &u, sizeof(uint64_t));\n"
1231 "        if (s != sizeof(uint64_t))\n"
1232 "            handle_error(\"read\");\n"
1233 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1234 "                (unsigned long long) u, (unsigned long long) u);\n"
1235 "        exit(EXIT_SUCCESS);\n"
1236
1237 #. type: Plain text
1238 #: build/C/man2/eventfd.2:416
1239 #, no-wrap
1240 msgid ""
1241 "    case -1:\n"
1242 "        handle_error(\"fork\");\n"
1243 "    }\n"
1244 "}\n"
1245 msgstr ""
1246 "    case -1:\n"
1247 "        handle_error(\"fork\");\n"
1248 "    }\n"
1249 "}\n"
1250
1251 #. type: Plain text
1252 #: build/C/man2/eventfd.2:428
1253 msgid ""
1254 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), B<signalfd>"
1255 "(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), B<sem_overview>(7)"
1256 msgstr ""
1257 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), B<signalfd>"
1258 "(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), B<sem_overview>(7)"
1259
1260 #. type: TH
1261 #: build/C/man2/getitimer.2:12
1262 #, no-wrap
1263 msgid "GETITIMER"
1264 msgstr "GETITIMER"
1265
1266 #. type: TH
1267 #: build/C/man2/getitimer.2:12
1268 #, no-wrap
1269 msgid "2012-10-01"
1270 msgstr "2012-10-01"
1271
1272 #. type: Plain text
1273 #: build/C/man2/getitimer.2:15
1274 msgid "getitimer, setitimer - get or set value of an interval timer"
1275 msgstr "getitimer, setitimer - インターバル・タイマーの値を取得または設定する"
1276
1277 #. type: Plain text
1278 #: build/C/man2/getitimer.2:18
1279 #, no-wrap
1280 msgid "B<#include E<lt>sys/time.hE<gt>>\n"
1281 msgstr "B<#include E<lt>sys/time.hE<gt>>\n"
1282
1283 #. type: Plain text
1284 #: build/C/man2/getitimer.2:20
1285 #, no-wrap
1286 msgid "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1287 msgstr "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1288
1289 #. type: Plain text
1290 #: build/C/man2/getitimer.2:23
1291 #, no-wrap
1292 msgid ""
1293 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1294 "B<              struct itimerval *>I<old_value>B<);>\n"
1295 msgstr ""
1296 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1297 "B<              struct itimerval *>I<old_value>B<);>\n"
1298
1299 #. type: Plain text
1300 #: build/C/man2/getitimer.2:29
1301 msgid ""
1302 "The system provides each process with three interval timers, each "
1303 "decrementing in a distinct time domain.  When any timer expires, a signal is "
1304 "sent to the process, and the timer (potentially) restarts."
1305 msgstr ""
1306 "システムは 1 個のプロセスにつき 3 個のインターバル・タイマーを提供する。 それ"
1307 "ぞれのタイマーは別々の時間領域で減少する。 どのタイマーも満了するとプロセスに"
1308 "シグナルが送られ、 タイマーは (設定によっては) 再び開始される。"
1309
1310 #. type: TP
1311 #: build/C/man2/getitimer.2:29
1312 #, no-wrap
1313 msgid "B<ITIMER_REAL>"
1314 msgstr "B<ITIMER_REAL>"
1315
1316 #. type: Plain text
1317 #: build/C/man2/getitimer.2:34
1318 msgid "decrements in real time, and delivers B<SIGALRM> upon expiration."
1319 msgstr "実時間 (real time) で減少し、満了すると B<SIGALRM> が送られる。"
1320
1321 #. type: TP
1322 #: build/C/man2/getitimer.2:34
1323 #, no-wrap
1324 msgid "B<ITIMER_VIRTUAL>"
1325 msgstr "B<ITIMER_VIRTUAL>"
1326
1327 #. type: Plain text
1328 #: build/C/man2/getitimer.2:39
1329 msgid ""
1330 "decrements only when the process is executing, and delivers B<SIGVTALRM> "
1331 "upon expiration."
1332 msgstr ""
1333 "プロセスが実行されている間のみ減少し、満了すると B<SIGVTALRM> が送られる。"
1334
1335 #. type: TP
1336 #: build/C/man2/getitimer.2:39
1337 #, no-wrap
1338 msgid "B<ITIMER_PROF>"
1339 msgstr "B<ITIMER_PROF>"
1340
1341 #. type: Plain text
1342 #: build/C/man2/getitimer.2:49
1343 msgid ""
1344 "decrements both when the process executes and when the system is executing "
1345 "on behalf of the process.  Coupled with B<ITIMER_VIRTUAL>, this timer is "
1346 "usually used to profile the time spent by the application in user and kernel "
1347 "space.  B<SIGPROF> is delivered upon expiration."
1348 msgstr ""
1349 "プロセスが実行されていて、 かつシステムがそのプロセスのために処理を行なってい"
1350 "る間に減少する。 多くの場合、このタイマーは B<ITIMER_VIRTUAL> と組み合わされ"
1351 "て、アプリケーションがカーネル空間とユーザー空間で どれだけの時間を過ごしたか"
1352 "をプロファイルするのに使用される。 満了すると B<SIGPROF> が送られる。"
1353
1354 #. type: Plain text
1355 #: build/C/man2/getitimer.2:51
1356 msgid "Timer values are defined by the following structures:"
1357 msgstr "タイマーの値は以下の構造体によって定義される:"
1358
1359 #. type: Plain text
1360 #: build/C/man2/getitimer.2:59
1361 #, no-wrap
1362 msgid ""
1363 "struct itimerval {\n"
1364 "    struct timeval it_interval; /* next value */\n"
1365 "    struct timeval it_value;    /* current value */\n"
1366 "};\n"
1367 msgstr ""
1368 "struct itimerval {\n"
1369 "    struct timeval it_interval; /* next value */\n"
1370 "    struct timeval it_value;    /* current value */\n"
1371 "};\n"
1372
1373 #. type: Plain text
1374 #: build/C/man2/getitimer.2:64
1375 #, no-wrap
1376 msgid ""
1377 "struct timeval {\n"
1378 "    time_t      tv_sec;         /* seconds */\n"
1379 "    suseconds_t tv_usec;        /* microseconds */\n"
1380 "};\n"
1381 msgstr ""
1382 "struct timeval {\n"
1383 "    time_t      tv_sec;         /* seconds */\n"
1384 "    suseconds_t tv_usec;        /* microseconds */\n"
1385 "};\n"
1386
1387 #. type: Plain text
1388 #: build/C/man2/getitimer.2:86
1389 msgid ""
1390 "The function B<getitimer>()  fills the structure pointed to by I<curr_value> "
1391 "with the current setting for the timer specified by I<which> (one of "
1392 "B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>).  The element "
1393 "I<it_value> is set to the amount of time remaining on the timer, or zero if "
1394 "the timer is disabled.  Similarly, I<it_interval> is set to the reset value."
1395 msgstr ""
1396 "B<getitimer>()  関数は、 I<which> で指定されたタイマー (B<ITIMER_REAL>, "
1397 "B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれか) の現在の設定を、 I<curr_value> で"
1398 "指定された構造体に格納する。 I<it_value> 要素にはタイマーの残り時間が設定され"
1399 "る。タイマーがオフの場合は ゼロが設定される。同様に I<it_interval> には初期値"
1400 "が設定される。"
1401
1402 #. type: Plain text
1403 #: build/C/man2/getitimer.2:94
1404 msgid ""
1405 "The function B<setitimer>()  sets the specified timer to the value in "
1406 "I<new_value>.  If I<old_value> is non-NULL, the old value of the timer is "
1407 "stored there."
1408 msgstr ""
1409 "B<setitimer>()  関数は指定されたタイマーに I<new_value> の値を設定する。 "
1410 "I<old_value> が NULL 以外の場合、タイマーの古い値が I<old_value> に格納され"
1411 "る。"
1412
1413 #. type: Plain text
1414 #: build/C/man2/getitimer.2:104
1415 msgid ""
1416 "Timers decrement from I<it_value> to zero, generate a signal, and reset to "
1417 "I<it_interval>.  A timer which is set to zero (I<it_value> is zero or the "
1418 "timer expires and I<it_interval> is zero) stops."
1419 msgstr ""
1420 "タイマーは I<it_value> からゼロへ向けて減っていき、シグナルを生成し、 "
1421 "I<it_interval> に初期化される。 タイマーがゼロに設定された場合 (I<it_value> "
1422 "がゼロか、タイマーが満了した時に I<it_interval> がゼロの場合) は停止する。"
1423
1424 #. type: Plain text
1425 #: build/C/man2/getitimer.2:110
1426 msgid ""
1427 "Both I<tv_sec> and I<tv_usec> are significant in determining the duration of "
1428 "a timer."
1429 msgstr "タイマーの期間は I<tv_sec> と I<tv_usec> の両方により決定される。"
1430
1431 #. type: Plain text
1432 #: build/C/man2/getitimer.2:122
1433 msgid ""
1434 "Timers will never expire before the requested time, but may expire some "
1435 "(short) time afterward, which depends on the system timer resolution and on "
1436 "the system load; see B<time>(7).  (But see BUGS below.)  Upon expiration, a "
1437 "signal will be generated and the timer reset.  If the timer expires while "
1438 "the process is active (always true for B<ITIMER_VIRTUAL>)  the signal will "
1439 "be delivered immediately when generated.  Otherwise the delivery will be "
1440 "offset by a small time dependent on the system loading."
1441 msgstr ""
1442 "要求した時間がくる前にタイマーが満了することはないが、 逆にある (短い) 時間だ"
1443 "け満了が遅れることはある。 どれだけ遅れるかはシステムの時間分解能とシステムの"
1444 "負荷に依存する (B<time>(7)  参照; 但し、バグの項も参照のこと)。 タイマーが満"
1445 "了するとシグナルが生成され、タイマーは初期化される。 プロセスがアクティブな"
1446 "時 (B<ITIMER_VIRTUAL> の場合には常にそうである) にタイマーが満了した場合、生"
1447 "成されたシグナルは すぐに配送される。それ以外の場合は、システムの負荷により少"
1448 "しの時間だけ 遅れて配送される。"
1449
1450 #. type: Plain text
1451 #: build/C/man2/getitimer.2:127 build/C/man2/killpg.2:94
1452 #: build/C/man2/tkill.2:99
1453 msgid ""
1454 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1455 "appropriately."
1456 msgstr ""
1457 "成功した場合、0 が返される。エラーが発生した場合、-1 が返され、 I<errno> が適"
1458 "切に設定される。"
1459
1460 #. type: TP
1461 #: build/C/man2/getitimer.2:128 build/C/man2/prctl.2:794
1462 #: build/C/man2/sigaction.2:666 build/C/man2/sigaltstack.2:138
1463 #: build/C/man2/sigpending.2:60 build/C/man2/sigprocmask.2:100
1464 #: build/C/man2/sigsuspend.2:77 build/C/man2/timer_settime.2:184
1465 #: build/C/man2/timerfd_create.2:342
1466 #, no-wrap
1467 msgid "B<EFAULT>"
1468 msgstr "B<EFAULT>"
1469
1470 #. type: Plain text
1471 #: build/C/man2/getitimer.2:135 build/C/man2/timerfd_create.2:349
1472 msgid "I<new_value>, I<old_value>, or I<curr_value> is not valid a pointer."
1473 msgstr "I<new_value>, I<old_value>, I<curr_value> が有効なポインタではない。"
1474
1475 #. type: Plain text
1476 #: build/C/man2/getitimer.2:148
1477 msgid ""
1478 "I<which> is not one of B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>; "
1479 "or (since Linux 2.6.22) one of the I<tv_usec> fields in the structure "
1480 "pointed to by I<new_value> contains a value outside the range 0 to 999999."
1481 msgstr ""
1482 "I<which> が B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれでもな"
1483 "い。 または (Linux 2.6.22 以降で)  I<new_value> で指定された構造体の "
1484 "I<tv_usec> フィールドの一つが 0 以上 999999 以下の範囲に入らない値である。"
1485
1486 #. type: Plain text
1487 #: build/C/man2/getitimer.2:158
1488 msgid ""
1489 "POSIX.1-2001, SVr4, 4.4BSD (this call first appeared in 4.2BSD).  "
1490 "POSIX.1-2008 marks B<getitimer>()  and B<setitimer>()  obsolete, "
1491 "recommending the use of the POSIX timers API (B<timer_gettime>(2), "
1492 "B<timer_settime>(2), etc.) instead."
1493 msgstr ""
1494 "POSIX.1-2001, SVr4, 4.4BSD (このコールは 4.2BSD で始めて現われた).  "
1495 "POSIX.1-2008 では、 B<getitimer>()  と B<setitimer>()  は廃止予定とされてお"
1496 "り、 代わりに POSIX タイマー API (B<timer_gettime>(2), B<timer_settime>(2)  "
1497 "など) を使うことが推奨されている。"
1498
1499 #. type: Plain text
1500 #: build/C/man2/getitimer.2:164
1501 msgid ""
1502 "A child created via B<fork>(2)  does not inherit its parent's interval "
1503 "timers.  Interval timers are preserved across an B<execve>(2)."
1504 msgstr ""
1505 "B<fork>(2)  で作成された子プロセスは、 親プロセスのインターバル・タイマーを継"
1506 "承しない。 B<execve>(2)  の前後ではインターバル・タイマーは保存される。"
1507
1508 #. type: Plain text
1509 #: build/C/man2/getitimer.2:174
1510 msgid ""
1511 "POSIX.1 leaves the interaction between B<setitimer>()  and the three "
1512 "interfaces B<alarm>(2), B<sleep>(3), and B<usleep>(3)  unspecified."
1513 msgstr ""
1514 "POSIX.1 では、 B<setitimer>()  と、 B<alarm>(2), B<sleep>(3), B<usleep>(3)  "
1515 "という 3 つのインタフェースとの相互の影響については規定していない。"
1516
1517 #. type: Plain text
1518 #: build/C/man2/getitimer.2:176
1519 msgid "The standards are silent on the meaning of the call:"
1520 msgstr "標準では、次の呼び出しの意味については規定されていない。"
1521
1522 #. type: Plain text
1523 #: build/C/man2/getitimer.2:178
1524 #, no-wrap
1525 msgid "    setitimer(which, NULL, &old_value);\n"
1526 msgstr "    setitimer(which, NULL, &old_value);\n"
1527
1528 #. type: Plain text
1529 #: build/C/man2/getitimer.2:181
1530 msgid ""
1531 "Many systems (Solaris, the BSDs, and perhaps others)  treat this as "
1532 "equivalent to:"
1533 msgstr ""
1534 "(Solaris, BSD 系やおそらく他のシステムもそうだが) 多くのシステムでは、\n"
1535 "この呼び出しは以下と等価である。"
1536
1537 #. type: Plain text
1538 #: build/C/man2/getitimer.2:183
1539 #, no-wrap
1540 msgid "    getitimer(which, &old_value);\n"
1541 msgstr "    getitimer(which, &old_value);\n"
1542
1543 #. type: Plain text
1544 #: build/C/man2/getitimer.2:189
1545 msgid ""
1546 "In Linux, this is treated as being equivalent to a call in which the "
1547 "I<new_value> fields are zero; that is, the timer is disabled.  I<Don't use "
1548 "this Linux misfeature>: it is nonportable and unnecessary."
1549 msgstr ""
1550 "Linux では、この呼び出しは I<new_value> フィールドが 0 の呼び出しと等価なもの"
1551 "と扱われる。 つまり、タイマーが無効になる。 I<Linux のこの間違った機能を使用"
1552 "しないこと>。移植性もなく、不必要な機能である。"
1553
1554 #. type: SH
1555 #: build/C/man2/getitimer.2:189 build/C/man2/kill.2:161
1556 #: build/C/man3/profil.3:72 build/C/man3/psignal.3:101
1557 #: build/C/man2/sigaction.2:781 build/C/man2/signalfd.2:352
1558 #: build/C/man2/sigpending.2:81 build/C/man3/sigset.3:232
1559 #: build/C/man2/timer_getoverrun.2:115 build/C/man2/timerfd_create.2:373
1560 #: build/C/man2/wait.2:535
1561 #, no-wrap
1562 msgid "BUGS"
1563 msgstr "バグ"
1564
1565 #. type: Plain text
1566 #: build/C/man2/getitimer.2:198
1567 msgid ""
1568 "The generation and delivery of a signal are distinct, and only one instance "
1569 "of each of the signals listed above may be pending for a process.  Under "
1570 "very heavy loading, an B<ITIMER_REAL> timer may expire before the signal "
1571 "from a previous expiration has been delivered.  The second signal in such an "
1572 "event will be lost."
1573 msgstr ""
1574 "シグナルの生成と配送は別個のものであり、 前述のシグナルのそれぞれについて一つ"
1575 "だけがプロセスのために 待機する。 非常に重い負荷の下では、 B<ITIMER_REAL> タ"
1576 "イマーでは、時間切れにより生成された一つ前のシグナルが配送される前に、 次の時"
1577 "間切れが起こる場合がある。 そのような場合、 2 個めのイベントに対するシグナル"
1578 "は失われてしまう。"
1579
1580 #. type: Plain text
1581 #: build/C/man2/getitimer.2:213
1582 msgid ""
1583 "On Linux kernels before 2.6.16, timer values are represented in jiffies.  If "
1584 "a request is made set a timer with a value whose jiffies representation "
1585 "exceeds B<MAX_SEC_IN_JIFFIES> (defined in I<include/linux/jiffies.h>), then "
1586 "the timer is silently truncated to this ceiling value.  On Linux/i386 "
1587 "(where, since Linux 2.6.13, the default jiffy is 0.004 seconds), this means "
1588 "that the ceiling value for a timer is approximately 99.42 days.  Since Linux "
1589 "2.6.16, the kernel uses a different internal representation for times, and "
1590 "this ceiling is removed."
1591 msgstr ""
1592 "バージョン 2.6.16 より前の Linux カーネルでは、 タイマーの値は jiffy で表現さ"
1593 "れる。 要求が jiffy 表現で (I<include/linux/jiffies.h> で定義されている)  "
1594 "B<MAX_SEC_IN_JIFFIES> を越える値をタイマーに設定しようとするものの場合、 タイ"
1595 "マーは暗黙にこの上限値に切り詰められる。 Linux/i386 の場合 (Linux 2.6.13 以降"
1596 "では jiffy は 0.004 秒) の場合、 これはタイマーの上限値がおよそ 99.42 日にな"
1597 "ることを意味する。 Linux 2.6.16 以降では、カーネルは時間に関する内部表現とし"
1598 "て 異なる表現を使うようになっており、この上限はなくなった。"
1599
1600 #.  4 Jul 2005: It looks like this bug may remain in 2.4.x.
1601 #.      http://lkml.org/lkml/2005/7/1/165
1602 #. type: Plain text
1603 #: build/C/man2/getitimer.2:220
1604 msgid ""
1605 "On certain systems (including i386), Linux kernels before version 2.6.12 "
1606 "have a bug which will produce premature timer expirations of up to one jiffy "
1607 "under some circumstances.  This bug is fixed in kernel 2.6.12."
1608 msgstr ""
1609 "(i386 を含む) いくつかのシステムでは、 バージョン 2.6.12 以前の Linux カーネ"
1610 "ルは ある種の状況では 1 jiffy 早くタイマーが終了してしまうというバグがあっ"
1611 "た。 このバグはカーネル 2.6.12 で修正された。"
1612
1613 #.  Bugzilla report 25 Apr 2006:
1614 #.  http://bugzilla.kernel.org/show_bug.cgi?id=6443
1615 #.  "setitimer() should reject noncanonical arguments"
1616 #. type: Plain text
1617 #: build/C/man2/getitimer.2:239
1618 msgid ""
1619 "POSIX.1-2001 says that B<setitimer>()  should fail if a I<tv_usec> value is "
1620 "specified that is outside of the range 0 to 999999.  However, in kernels up "
1621 "to and including 2.6.21, Linux does not give an error, but instead silently "
1622 "adjusts the corresponding seconds value for the timer.  From kernel 2.6.22 "
1623 "onward, this nonconformance has been repaired: an improper I<tv_usec> value "
1624 "results in an B<EINVAL> error."
1625 msgstr ""
1626 "POSIX.1-2001 では B<setitimer>()  は I<tv_usec> の値が 0 から 999999 の範囲外"
1627 "である場合には失敗するべきだとしている。 しかし、2.6.21 以前のカーネルの "
1628 "Linux ではエラーにならず、 対応する秒数の分だけそのタイマーの秒の値が暗黙に調"
1629 "整される。 カーネル 2.6.22 以降では、この標準非準拠の動作は修正され、 "
1630 "I<tv_usec> の値が不適切な場合には B<EINVAL> エラーとなる。"
1631
1632 #. type: Plain text
1633 #: build/C/man2/getitimer.2:246
1634 msgid ""
1635 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1636 "B<timerfd_create>(2), B<time>(7)"
1637 msgstr ""
1638 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1639 "B<timerfd_create>(2), B<time>(7)"
1640
1641 #. type: TH
1642 #: build/C/man3/gsignal.3:27
1643 #, no-wrap
1644 msgid "GSIGNAL"
1645 msgstr "GSIGNAL"
1646
1647 #. type: TH
1648 #: build/C/man3/gsignal.3:27 build/C/man3/profil.3:28
1649 #, no-wrap
1650 msgid "2007-07-26"
1651 msgstr "2007-07-26"
1652
1653 #. type: Plain text
1654 #: build/C/man3/gsignal.3:30
1655 msgid "gsignal, ssignal - software signal facility"
1656 msgstr "gsignal, ssignal - ソフトウェア・シグナル機能"
1657
1658 #. type: Plain text
1659 #: build/C/man3/gsignal.3:33 build/C/man2/kill.2:52 build/C/man3/psignal.3:36
1660 #: build/C/man3/raise.3:35 build/C/man2/sigaction.2:53
1661 #: build/C/man3/siginterrupt.3:37 build/C/man3/sigpause.3:31
1662 #: build/C/man3/sigwait.3:32 build/C/man2/sigwaitinfo.2:31
1663 #, no-wrap
1664 msgid "B<#include E<lt>signal.hE<gt>>\n"
1665 msgstr "B<#include E<lt>signal.hE<gt>>\n"
1666
1667 #. type: Plain text
1668 #: build/C/man3/gsignal.3:35
1669 #, no-wrap
1670 msgid "B<typedef void (*sighandler_t)(int);>\n"
1671 msgstr "B<typedef void (*sighandler_t)(int);>\n"
1672
1673 #. type: Plain text
1674 #: build/C/man3/gsignal.3:37
1675 #, no-wrap
1676 msgid "B<int gsignal(int >I<signum>B<);>\n"
1677 msgstr "B<int gsignal(int >I<signum>B<);>\n"
1678
1679 #. type: Plain text
1680 #: build/C/man3/gsignal.3:39
1681 #, no-wrap
1682 msgid "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1683 msgstr "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1684
1685 #. type: Plain text
1686 #: build/C/man3/gsignal.3:44 build/C/man2/kill.2:59 build/C/man2/killpg.2:53
1687 #: build/C/man3/profil.3:42 build/C/man3/psignal.3:46
1688 #: build/C/man2/sigaction.2:61 build/C/man2/sigaltstack.2:38
1689 #: build/C/man3/siginterrupt.3:44 build/C/man2/sigpending.2:40
1690 #: build/C/man2/sigprocmask.2:41 build/C/man3/sigqueue.3:39
1691 #: build/C/man3/sigset.3:45 build/C/man3/sigsetops.3:51
1692 #: build/C/man2/sigsuspend.2:40 build/C/man3/sigvec.3:45
1693 #: build/C/man3/sigwait.3:39 build/C/man2/sigwaitinfo.2:41
1694 #: build/C/man2/timer_create.2:48 build/C/man2/timer_delete.2:41
1695 #: build/C/man2/timer_getoverrun.2:41 build/C/man2/timer_settime.2:45
1696 #: build/C/man2/wait.2:69 build/C/man2/wait4.2:53
1697 msgid ""
1698 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
1699 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7)  参照):"
1700
1701 #. type: Plain text
1702 #: build/C/man3/gsignal.3:49
1703 msgid "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1704 msgstr "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1705
1706 #. type: Plain text
1707 #: build/C/man3/gsignal.3:57
1708 msgid ""
1709 "Don't use these functions under Linux.  Due to a historical mistake, under "
1710 "Linux these functions are aliases for B<raise>(3)  and B<signal>(2), "
1711 "respectively."
1712 msgstr ""
1713 "Linux ではこれらの関数を使用しないこと。 過去に間違いがあり、Linux では "
1714 "B<gsignal>()  と B<ssignal>()  はそれぞれ B<raise>(3)  と B<signal>(2)  の別"
1715 "名になっている。"
1716
1717 #. type: Plain text
1718 #: build/C/man3/gsignal.3:95
1719 msgid ""
1720 "Elsewhere, on System V-like systems, these functions implement software "
1721 "signaling, entirely independent of the classical B<signal>(2)  and B<kill>"
1722 "(2)  functions.  The function B<ssignal>()  defines the action to take when "
1723 "the software signal with number I<signum> is raised using the function "
1724 "B<gsignal>(), and returns the previous such action or B<SIG_DFL>.  The "
1725 "function B<gsignal>()  does the following: if no action (or the action "
1726 "B<SIG_DFL>)  was specified for I<signum>, then it does nothing and returns "
1727 "0.  If the action B<SIG_IGN> was specified for I<signum>, then it does "
1728 "nothing and returns 1.  Otherwise, it resets the action to B<SIG_DFL> and "
1729 "calls the action function with argument I<signum>, and returns the value "
1730 "returned by that function.  The range of possible values I<signum> varies "
1731 "(often 1-15 or 1-17)."
1732 msgstr ""
1733 "一方、System V 風のシステムでは、これらの関数で、 従来の B<signal>(2)  や "
1734 "B<kill>(2)  の関数群とは完全に独立な、 ソフトウェア・シグナリングを実現してい"
1735 "る。 B<ssignal>()  関数は、番号 I<signum> のソフトウェア・シグナルが "
1736 "B<gsignal>()  関数を使って発生された時にとるべきアクションを定義する。 "
1737 "B<gsignal>()  の返り値は、一つ前に指定されていたアクション、もしくは "
1738 "B<SIG_DFL> である。 B<gsignal>()  は以下のような動作を行う: I<signum> に対し"
1739 "てアクションが指定されていないか、アクション B<SIG_DFL> が指定されていた場"
1740 "合、何もせずに 0 を返す。 I<signum> に対して アクション B<SIG_IGN> が指定され"
1741 "ていた場合、何もせずに 1 を返す。 それ以外の場合、アクションを B<SIG_DFL> に"
1742 "リセットし、引き数に I<signum> を指定してアクション関数を呼び出して、アクショ"
1743 "ン関数の返り値を返す。 I<signum> がとり得る値の範囲は実装により異なる (多くの"
1744 "場合 1〜15 か 1〜17 である)。"
1745
1746 #. type: Plain text
1747 #: build/C/man3/gsignal.3:103
1748 msgid ""
1749 "These functions are available under AIX, DG/UX, HP-UX, SCO, Solaris, Tru64.  "
1750 "They are called obsolete under most of these systems, and are broken under "
1751 "Linux libc and glibc.  Some systems also have B<gsignal_r>()  and "
1752 "B<ssignal_r>()."
1753 msgstr ""
1754 "これらの関数は、AIX, DG/UX, HP-UX, SCO, Solaris, Tru64 で使用可能である。 こ"
1755 "れらのシステムのほとんどで廃止されたことになっており、 Linux の libc および "
1756 "glibc では正しく実装されていない。 B<gsignal_r>()  と B<ssignal_r>()  が実装"
1757 "されているシステムもある。"
1758
1759 #. type: Plain text
1760 #: build/C/man3/gsignal.3:107
1761 msgid "B<kill>(2), B<signal>(2), B<raise>(3)"
1762 msgstr "B<kill>(2), B<signal>(2), B<raise>(3)"
1763
1764 #. type: TH
1765 #: build/C/man2/kill.2:44
1766 #, no-wrap
1767 msgid "KILL"
1768 msgstr "KILL"
1769
1770 #. type: TH
1771 #: build/C/man2/kill.2:44
1772 #, fuzzy, no-wrap
1773 #| msgid "2013-05-21"
1774 msgid "2013-09-17"
1775 msgstr "2013-05-21"
1776
1777 #. type: Plain text
1778 #: build/C/man2/kill.2:47
1779 msgid "kill - send signal to a process"
1780 msgstr "kill - プロセスにシグナルを送る"
1781
1782 #. type: Plain text
1783 #: build/C/man2/kill.2:50
1784 #, no-wrap
1785 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
1786 msgstr "B<#include E<lt>sys/types.hE<gt>>\n"
1787
1788 #. type: Plain text
1789 #: build/C/man2/kill.2:54
1790 #, no-wrap
1791 msgid "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1792 msgstr "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1793
1794 #. type: Plain text
1795 #: build/C/man2/kill.2:64
1796 msgid ""
1797 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1798 msgstr ""
1799 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1800
1801 #. type: Plain text
1802 #: build/C/man2/kill.2:70
1803 msgid ""
1804 "The B<kill>()  system call can be used to send any signal to any process "
1805 "group or process."
1806 msgstr ""
1807 "システムコールの B<kill>()  は、任意のプロセス・グループもしくはプロセスにシ"
1808 "グナルを 送るのに使われる。"
1809
1810 #. type: Plain text
1811 #: build/C/man2/kill.2:73
1812 msgid ""
1813 "If I<pid> is positive, then signal I<sig> is sent to the process with the ID "
1814 "specified by I<pid>."
1815 msgstr ""
1816 "I<pid> に正の値を指定した場合、シグナル I<sig> が I<pid> で指定された ID を持"
1817 "つプロセスに送られる。"
1818
1819 #. type: Plain text
1820 #: build/C/man2/kill.2:76
1821 msgid ""
1822 "If I<pid> equals 0, then I<sig> is sent to every process in the process "
1823 "group of the calling process."
1824 msgstr ""
1825 "I<pid> に 0 を指定した場合、 呼び出し元のプロセスのプロセス・グループに属する"
1826 "すべてのプロセスに I<sig> で指定したシグナルが送られる。"
1827
1828 #. type: Plain text
1829 #: build/C/man2/kill.2:80
1830 msgid ""
1831 "If I<pid> equals -1, then I<sig> is sent to every process for which the "
1832 "calling process has permission to send signals, except for process 1 "
1833 "(I<init>), but see below."
1834 msgstr ""
1835 "I<pid> に -1 を指定した場合、 I<sig> で指定したシグナルが、 呼び出し元のプロ"
1836 "セスがシグナルを送る許可を持つ全てのプロセスに 送られる。但し、プロセス番号 "
1837 "1 (I<init>) へはシグナルは送られない。 以下の関連部分も参照のこと。"
1838
1839 #. type: Plain text
1840 #: build/C/man2/kill.2:83
1841 msgid ""
1842 "If I<pid> is less than -1, then I<sig> is sent to every process in the "
1843 "process group whose ID is I<-pid>."
1844 msgstr ""
1845 "I<pid> に -1 より小さな値を指定した場合、 ID が I<-pid> のプロセス・グループ"
1846 "に属するすべてのプロセスに I<sig> で指定したシグナルが送られる。"
1847
1848 #. type: Plain text
1849 #: build/C/man2/kill.2:88
1850 msgid ""
1851 "If I<sig> is 0, then no signal is sent, but error checking is still "
1852 "performed; this can be used to check for the existence of a process ID or "
1853 "process group ID."
1854 msgstr ""
1855 "I<sig> に 0 を指定した場合、シグナルは送られないが、 エラーのチェックは行われ"
1856 "る。これを使って、プロセス ID や プロセスグループ ID の存在確認を行うことがで"
1857 "きる。"
1858
1859 #. type: Plain text
1860 #: build/C/man2/kill.2:100
1861 #, fuzzy
1862 #| msgid ""
1863 #| "For a process to have permission to send a signal it must either be "
1864 #| "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
1865 #| "effective user ID of the sending process must equal the real or saved set-"
1866 #| "user-ID of the target process.  In the case of B<SIGCONT> it suffices "
1867 #| "when the sending and receiving processes belong to the same session."
1868 msgid ""
1869 "For a process to have permission to send a signal it must either be "
1870 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
1871 "effective user ID of the sending process must equal the real or saved set-"
1872 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
1873 "the sending and receiving processes belong to the same session.  "
1874 "(Historically, the rules were different; see NOTES.)"
1875 msgstr ""
1876 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
1877 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
1878 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
1879 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
1880 "プロセスが 同じセッションに属していれば十分である。"
1881
1882 #. type: Plain text
1883 #: build/C/man2/kill.2:105
1884 msgid ""
1885 "On success (at least one signal was sent), zero is returned.  On error, -1 "
1886 "is returned, and I<errno> is set appropriately."
1887 msgstr ""
1888 "成功した場合 (少なくとも一つのシグナルが送信された場合)、 0 が返される。エ"
1889 "ラーの場合 -1 が返され、 I<errno> が適切に設定される。"
1890
1891 #. type: Plain text
1892 #: build/C/man2/kill.2:109
1893 msgid "An invalid signal was specified."
1894 msgstr "無効なシグナルを指定した。"
1895
1896 #. type: TP
1897 #: build/C/man2/kill.2:109 build/C/man2/killpg.2:99 build/C/man2/prctl.2:879
1898 #: build/C/man2/prctl.2:891 build/C/man2/prctl.2:901 build/C/man2/prctl.2:909
1899 #: build/C/man2/rt_sigqueueinfo.2:148 build/C/man2/sigaltstack.2:151
1900 #: build/C/man3/sigqueue.3:102 build/C/man2/tkill.2:103
1901 #, no-wrap
1902 msgid "B<EPERM>"
1903 msgstr "B<EPERM>"
1904
1905 #. type: Plain text
1906 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103
1907 msgid ""
1908 "The process does not have permission to send the signal to any of the target "
1909 "processes."
1910 msgstr ""
1911 "プロセスが、受信するプロセスのいずれに対しても シグナルを送る許可を持っていな"
1912 "い。"
1913
1914 #. type: TP
1915 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103 build/C/man2/killpg.2:107
1916 #: build/C/man2/rt_sigqueueinfo.2:156 build/C/man3/sigqueue.3:108
1917 #: build/C/man2/tkill.2:108
1918 #, no-wrap
1919 msgid "B<ESRCH>"
1920 msgstr "B<ESRCH>"
1921
1922 #. type: Plain text
1923 #: build/C/man2/kill.2:121
1924 msgid ""
1925 "The pid or process group does not exist.  Note that an existing process "
1926 "might be a zombie, a process which already committed termination, but has "
1927 "not yet been B<wait>(2)ed for."
1928 msgstr ""
1929 "指定したプロセスまたはプロセス・グループが存在しなかった。 ゾンビプロセスは存"
1930 "在するプロセスとしてみなされる。 ゾンビプロセスとはすでに処理は終了している"
1931 "が、親プロセスによる B<wait>()  処理が行われていないプロセスのことである。"
1932
1933 #. type: Plain text
1934 #: build/C/man2/kill.2:123 build/C/man2/pause.2:59 build/C/man2/wait.2:424
1935 msgid "SVr4, 4.3BSD, POSIX.1-2001."
1936 msgstr "SVr4, 4.3BSD, POSIX.1-2001."
1937
1938 #. type: Plain text
1939 #: build/C/man2/kill.2:131
1940 msgid ""
1941 "The only signals that can be sent to process ID 1, the I<init> process, are "
1942 "those for which I<init> has explicitly installed signal handlers.  This is "
1943 "done to assure the system is not brought down accidentally."
1944 msgstr ""
1945 "プロセス番号 1 の I<init> プロセスに送ることができるシグナルは、 I<init> が明"
1946 "示的にシグナルハンドラを設定したシグナルだけである。 こうなっているのは、誤っ"
1947 "てシステムをダウンさせないようにするためである。"
1948
1949 #. type: Plain text
1950 #: build/C/man2/kill.2:137
1951 msgid ""
1952 "POSIX.1-2001 requires that I<kill(-1,sig)> send I<sig> to all processes that "
1953 "the calling process may send signals to, except possibly for some "
1954 "implementation-defined system processes.  Linux allows a process to signal "
1955 "itself, but on Linux the call I<kill(-1,sig)> does not signal the calling "
1956 "process."
1957 msgstr ""
1958 "POSIX.1-2001 では、 I<kill(-1,sig)> が 呼び出し元のプロセスがシグナルを送るこ"
1959 "とが出来るプロセス全てに I<sig> を送ることを要求している。 但し、システム実装"
1960 "時に定められたシステムプロセスは シグナルの送信対象から除外される。 Linux で"
1961 "は、プロセスが自分自身にシグナルを送れるようになっているが、 Linux の I<kill"
1962 "(-1,sig)> は呼び出し元のプロセスにはシグナルを送らない。"
1963
1964 #. type: Plain text
1965 #: build/C/man2/kill.2:147
1966 msgid ""
1967 "POSIX.1-2001 requires that if a process sends a signal to itself, and the "
1968 "sending thread does not have the signal blocked, and no other thread has it "
1969 "unblocked or is waiting for it in B<sigwait>(3), at least one unblocked "
1970 "signal must be delivered to the sending thread before the B<kill>()  returns."
1971 msgstr ""
1972 "POSIX.1-2001 では以下の動作になることを要求している。 自分自身にシグナルを送"
1973 "ると、シグナルを送ったスレッドがそのシグナルをブロック しておらず、他のどのス"
1974 "レッドもそのシグナルを受ける状態にもなく B<sigwait>(3)  でそのシグナルを待っ"
1975 "てもいない場合、 B<kill>()  が返る前に少なくとも一つのブロックされていない シ"
1976 "グナルがシグナルを送ったスレッドに配送されなければならない。"
1977
1978 #. type: SS
1979 #: build/C/man2/kill.2:147 build/C/man3/sigpause.3:77 build/C/man2/wait.2:478
1980 #, no-wrap
1981 msgid "Linux notes"
1982 msgstr "Linux での注意"
1983
1984 #.  In the 0.* kernels things chopped and changed quite
1985 #.  a bit - MTK, 24 Jul 02
1986 #. type: Plain text
1987 #: build/C/man2/kill.2:161
1988 #, fuzzy
1989 #| msgid ""
1990 #| "Across different kernel versions, Linux has enforced different rules for "
1991 #| "the permissions required for an unprivileged process to send a signal to "
1992 #| "another process.  In kernels 1.0 to 1.2.2, a signal could be sent if the "
1993 #| "effective user ID of the sender matched that of the receiver, or the real "
1994 #| "user ID of the sender matched that of the receiver.  From kernel 1.2.3 "
1995 #| "until 1.3.77, a signal could be sent if the effective user ID of the "
1996 #| "sender matched either the real or effective user ID of the receiver.  The "
1997 #| "current rules, which conform to POSIX.1-2001, were adopted in kernel "
1998 #| "1.3.78."
1999 msgid ""
2000 "Across different kernel versions, Linux has enforced different rules for the "
2001 "permissions required for an unprivileged process to send a signal to another "
2002 "process.  In kernels 1.0 to 1.2.2, a signal could be sent if the effective "
2003 "user ID of the sender matched effective user ID of the target, or the real "
2004 "user ID of the sender matched the real user ID of the target.  From kernel "
2005 "1.2.3 until 1.3.77, a signal could be sent if the effective user ID of the "
2006 "sender matched either the real or effective user ID of the target.  The "
2007 "current rules, which conform to POSIX.1-2001, were adopted in kernel 1.3.78."
2008 msgstr ""
2009 "Linux では、特権のないプロセスが他のプロセスにシグナルを送信するために 必要な"
2010 "権限についてのルールが、カーネルバージョンにより違っている。 カーネル 1.0 か"
2011 "ら 1.2.2 では、送信側の実効ユーザーID が受信側の 実効ユーザー IDと一致すれば"
2012 "シグナルを送信できた。 カーネル 1.2.3 から 1.3.77では、送信側の実効ユーザー"
2013 "ID が受信側の 実ユーザーID か実効ユーザーID のいずれかと一致すればシグナルを"
2014 "送信できた。 現在のルールは、POSIX.1-2001 に準拠しており、カーネル 1.3.78 以"
2015 "降で 適用されている。"
2016
2017 #. type: Plain text
2018 #: build/C/man2/kill.2:171
2019 msgid ""
2020 "In 2.6 kernels up to and including 2.6.7, there was a bug that meant that "
2021 "when sending signals to a process group, B<kill>()  failed with the error "
2022 "B<EPERM> if the caller did not have permission to send the signal to I<any> "
2023 "(rather than I<all>) of the members of the process group.  Notwithstanding "
2024 "this error return, the signal was still delivered to all of the processes "
2025 "for which the caller had permission to signal."
2026 msgstr ""
2027 "バージョン 2.6.7 以前の 2.6 系のカーネルには、 プロセスグループにシグナルを"
2028 "送ったときに、 呼び出し元のプロセスがプロセスグループの (全メンバーではなく) "
2029 "一部のメンバーに対してのみシグナルを送る許可を持っていない場合に、 B<kill>"
2030 "()  がエラー B<EPERM> で失敗するというバグがある。 このエラーが返るにもかかわ"
2031 "らず、そのシグナルは呼び出し元が シグナルを送る許可を持つ全てのプロセスへ送ら"
2032 "れる。"
2033
2034 #. type: Plain text
2035 #: build/C/man2/kill.2:181
2036 msgid ""
2037 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), B<sigqueue>"
2038 "(3), B<capabilities>(7), B<credentials>(7), B<signal>(7)"
2039 msgstr ""
2040 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), B<sigqueue>"
2041 "(3), B<credentials>(7), B<capabilities>(7), B<signal>(7)"
2042
2043 #. type: TH
2044 #: build/C/man2/killpg.2:42
2045 #, no-wrap
2046 msgid "KILLPG"
2047 msgstr "KILLPG"
2048
2049 #. type: TH
2050 #: build/C/man2/killpg.2:42 build/C/man3/sigset.3:26
2051 #, no-wrap
2052 msgid "2010-09-20"
2053 msgstr "2010-09-20"
2054
2055 #. type: Plain text
2056 #: build/C/man2/killpg.2:45
2057 msgid "killpg - send signal to a process group"
2058 msgstr "killpg - シグナルをプロセス・グループに送る"
2059
2060 #. type: Plain text
2061 #: build/C/man2/killpg.2:49
2062 msgid "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2063 msgstr "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2064
2065 #. type: TP
2066 #: build/C/man2/killpg.2:55
2067 #, no-wrap
2068 msgid "B<killpg>():"
2069 msgstr "B<killpg>():"
2070
2071 #. type: Plain text
2072 #: build/C/man2/killpg.2:59 build/C/man2/sigaltstack.2:46
2073 #: build/C/man3/siginterrupt.3:51 build/C/man2/wait4.2:60
2074 msgid ""
2075 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2076 "_XOPEN_SOURCE_EXTENDED"
2077 msgstr ""
2078 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2079 "_XOPEN_SOURCE_EXTENDED"
2080
2081 #. type: Plain text
2082 #: build/C/man2/killpg.2:69
2083 msgid ""
2084 "B<killpg>()  sends the signal I<sig> to the process group I<pgrp>.  See "
2085 "B<signal>(7)  for a list of signals."
2086 msgstr ""
2087 "B<killpg>()  は I<sig> で指定したシグナルを I<pgrp> で指定したプロセス・グ"
2088 "ループに送る。 シグナルの定義の一覧は B<signal>(7)  を参照のこと。"
2089
2090 #. type: Plain text
2091 #: build/C/man2/killpg.2:78
2092 msgid ""
2093 "If I<pgrp> is 0, B<killpg>()  sends the signal to the calling process's "
2094 "process group.  (POSIX says: If I<pgrp> is less than or equal to 1, the "
2095 "behavior is undefined.)"
2096 msgstr ""
2097 "引き数 I<pgrp> に 0 を指定した場合には B<killpg>()  は呼び出し元のプロセスが"
2098 "属しているプロセス・グループに対してシグナルを送る。 (POSIX では以下のように"
2099 "記述されている: I<pgrp> が 1 以下である場合、動作は未定義である。)"
2100
2101 #. type: Plain text
2102 #: build/C/man2/killpg.2:89
2103 msgid ""
2104 "For a process to have permission to send a signal it must either be "
2105 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
2106 "effective user ID of the sending process must equal the real or saved set-"
2107 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
2108 "the sending and receiving processes belong to the same session."
2109 msgstr ""
2110 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
2111 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
2112 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
2113 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
2114 "プロセスが 同じセッションに属していれば十分である。"
2115
2116 #. type: Plain text
2117 #: build/C/man2/killpg.2:99
2118 msgid "I<sig> is not a valid signal number."
2119 msgstr "I<sig> で指定された値は無効なシグナル番号である。"
2120
2121 #. type: Plain text
2122 #: build/C/man2/killpg.2:107
2123 msgid "No process can be found in the process group specified by I<pgrp>."
2124 msgstr ""
2125 "I<pgrp> で指定されたプロセス・グループに属するプロセスが存在しなかった。"
2126
2127 #. type: Plain text
2128 #: build/C/man2/killpg.2:111
2129 msgid ""
2130 "The process group was given as 0 but the sending process does not have a "
2131 "process group."
2132 msgstr ""
2133 "プロセス・グループとして 0 が指定されたが、送信プロセスは プロセス・グループ"
2134 "を持っていない。"
2135
2136 #. type: Plain text
2137 #: build/C/man2/killpg.2:115
2138 msgid ""
2139 "SVr4, 4.4BSD (the B<killpg>()  function call first appeared in 4BSD), "
2140 "POSIX.1-2001."
2141 msgstr "SVr4, 4.4BSD (B<killpg>()  は 4BSD で初めて追加された), POSIX.1-2001。"
2142
2143 #. type: Plain text
2144 #: build/C/man2/killpg.2:129
2145 msgid ""
2146 "There are various differences between the permission checking in BSD-type "
2147 "systems and System V-type systems.  See the POSIX rationale for B<kill>().  "
2148 "A difference not mentioned by POSIX concerns the return value B<EPERM>: BSD "
2149 "documents that no signal is sent and B<EPERM> returned when the permission "
2150 "check failed for at least one target process, while POSIX documents B<EPERM> "
2151 "only when the permission check failed for all target processes."
2152 msgstr ""
2153 "BSD 系システムと System V 系システムでは、 許可のチェックに様々な違いがあ"
2154 "る。 B<kill>(2)  についての POSIX の原理 (rationale) を参照すること。 POSIX "
2155 "で記述されていない違いとしては、返り値 B<EPERM> がある。 BSD では「送信先プロ"
2156 "セスの許可のチェックが 1 つでも失敗した場合は、 シグナルが送信されず、 "
2157 "B<EPERM> が返される」と記述されている。 POSIX では「送信先プロセスの許可の"
2158 "チェックが全て失敗した場合にのみ、 B<EPERM> が返される」と記述されている。"
2159
2160 #. type: Plain text
2161 #: build/C/man2/killpg.2:134
2162 msgid ""
2163 "On Linux, B<killpg>()  is implemented as a library function that makes the "
2164 "call I<kill(-pgrp,\\ sig)>."
2165 msgstr ""
2166 "Linux では、 B<killpg>()  はライブラリ関数として実装されており、 I<kill(-"
2167 "pgrp,\\ sig)> の呼び出しが行われる。"
2168
2169 #. type: Plain text
2170 #: build/C/man2/killpg.2:140
2171 msgid ""
2172 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<capabilities>(7), B<credentials>"
2173 "(7)"
2174 msgstr ""
2175 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<credentials>(7), B<capabilities>"
2176 "(7)"
2177
2178 #. type: TH
2179 #: build/C/man2/pause.2:30
2180 #, no-wrap
2181 msgid "PAUSE"
2182 msgstr "PAUSE"
2183
2184 #. type: TH
2185 #: build/C/man2/pause.2:30
2186 #, no-wrap
2187 msgid "2008-10-06"
2188 msgstr "2008-10-06"
2189
2190 #. type: Plain text
2191 #: build/C/man2/pause.2:33
2192 msgid "pause - wait for signal"
2193 msgstr "pause - シグナルを待つ"
2194
2195 #. type: Plain text
2196 #: build/C/man2/pause.2:35
2197 msgid "B<#include E<lt>unistd.hE<gt>>"
2198 msgstr "B<#include E<lt>unistd.hE<gt>>"
2199
2200 #. type: Plain text
2201 #: build/C/man2/pause.2:37
2202 msgid "B<int pause(void);>"
2203 msgstr "B<int pause(void);>"
2204
2205 #. type: Plain text
2206 #: build/C/man2/pause.2:42
2207 msgid ""
2208 "B<pause>()  causes the calling process (or thread) to sleep until a signal "
2209 "is delivered that either terminates the process or causes the invocation of "
2210 "a signal-catching function."
2211 msgstr ""
2212 "B<pause>()  は、呼び出したプロセス (またはスレッド) を、 そのプロセスを終了さ"
2213 "せたり、シグナル捕捉関数が起動されるような シグナルが配送されるまで、スリープ"
2214 "させる。"
2215
2216 #.  .BR ERESTARTNOHAND .
2217 #. type: Plain text
2218 #: build/C/man2/pause.2:53
2219 msgid ""
2220 "B<pause>()  returns only when a signal was caught and the signal-catching "
2221 "function returned.  In this case B<pause>()  returns -1, and I<errno> is set "
2222 "to B<EINTR>."
2223 msgstr ""
2224 "B<pause>()  が返るのは、シグナルを受け取りシグナル捕獲関数から返った場合だけ"
2225 "である。 この場合は B<pause>()  は -1 を返し、 I<errno> に B<EINTR> が設定さ"
2226 "れる。"
2227
2228 #. type: TP
2229 #: build/C/man2/pause.2:54 build/C/man2/sigsuspend.2:81
2230 #: build/C/man2/sigwaitinfo.2:123 build/C/man2/wait.2:410
2231 #, no-wrap
2232 msgid "B<EINTR>"
2233 msgstr "B<EINTR>"
2234
2235 #. type: Plain text
2236 #: build/C/man2/pause.2:57
2237 msgid "a signal was caught and the signal-catching function returned."
2238 msgstr "シグナルを受け取り、シグナル捕獲関数から帰ってきた。"
2239
2240 #. type: Plain text
2241 #: build/C/man2/pause.2:64
2242 msgid "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2243 msgstr "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2244
2245 #. type: TH
2246 #: build/C/man2/prctl.2:52
2247 #, no-wrap
2248 msgid "PRCTL"
2249 msgstr "PRCTL"
2250
2251 #. type: TH
2252 #: build/C/man2/prctl.2:52
2253 #, no-wrap
2254 msgid "2013-05-21"
2255 msgstr "2013-05-21"
2256
2257 #. type: Plain text
2258 #: build/C/man2/prctl.2:55
2259 msgid "prctl - operations on a process"
2260 msgstr "prctl - プロセスの操作を行なう"
2261
2262 #. type: Plain text
2263 #: build/C/man2/prctl.2:58
2264 #, no-wrap
2265 msgid "B<#include E<lt>sys/prctl.hE<gt>>\n"
2266 msgstr "B<#include E<lt>sys/prctl.hE<gt>>\n"
2267
2268 #. type: Plain text
2269 #: build/C/man2/prctl.2:61
2270 #, no-wrap
2271 msgid ""
2272 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2273 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2274 msgstr ""
2275 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2276 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2277
2278 #. type: Plain text
2279 #: build/C/man2/prctl.2:68
2280 msgid ""
2281 "B<prctl>()  is called with a first argument describing what to do (with "
2282 "values defined in I<E<lt>linux/prctl.hE<gt>>), and further arguments with a "
2283 "significance depending on the first one.  The first argument can be:"
2284 msgstr ""
2285 "B<prctl>()  の動作は最初の引き数によって決定される (この値は I<E<lt>linux/"
2286 "prctl.hE<gt>> に定義されている)。 残りの引き数は最初の引き数によって変化す"
2287 "る。 一番目の引き数として以下のものを指定できる:"
2288
2289 #. type: TP
2290 #: build/C/man2/prctl.2:68
2291 #, no-wrap
2292 msgid "B<PR_CAPBSET_READ> (since Linux 2.6.25)"
2293 msgstr "B<PR_CAPBSET_READ> (Linux 2.6.25 以降)"
2294
2295 #. type: Plain text
2296 #: build/C/man2/prctl.2:80
2297 msgid ""
2298 "Return (as the function result) 1 if the capability specified in I<arg2> is "
2299 "in the calling thread's capability bounding set, or 0 if it is not.  (The "
2300 "capability constants are defined in I<E<lt>linux/capability.hE<gt>>.)  The "
2301 "capability bounding set dictates whether the process can receive the "
2302 "capability through a file's permitted capability set on a subsequent call to "
2303 "B<execve>(2)."
2304 msgstr ""
2305 "で指定されたケーパビリティが呼び出したスレッドのケーパビリティ バインディング"
2306 "セット (capability bounding set) に含まれている場合、 (関数の返り値として) 1 "
2307 "を返し、そうでない場合 0 を返す (ケーパビリティ定数は I<E<lt>linux/"
2308 "capability.hE<gt>> で定義されている)。 ケーパビリティバウンディングセット"
2309 "は、 B<execve>(2)  を呼び出した際に、ファイルの許可 (permitted) ケーパビリ"
2310 "ティの中で そのプロセスが獲得できるケーパビリティを指示するものである。"
2311
2312 #. type: Plain text
2313 #: build/C/man2/prctl.2:85
2314 msgid ""
2315 "If the capability specified in I<arg2> is not valid, then the call fails "
2316 "with the error B<EINVAL>."
2317 msgstr ""
2318 "I<arg2> に指定されたケーパビリティが有効でない場合、 呼び出しはエラー "
2319 "B<EINVAL> で失敗する。"
2320
2321 #. type: TP
2322 #: build/C/man2/prctl.2:85
2323 #, no-wrap
2324 msgid "B<PR_CAPBSET_DROP> (since Linux 2.6.25)"
2325 msgstr "B<PR_CAPBSET_DROP> (Linux 2.6.25 以降)"
2326
2327 #. type: Plain text
2328 #: build/C/man2/prctl.2:94
2329 msgid ""
2330 "If the calling thread has the B<CAP_SETPCAP> capability, then drop the "
2331 "capability specified by I<arg2> from the calling thread's capability "
2332 "bounding set.  Any children of the calling thread will inherit the newly "
2333 "reduced bounding set."
2334 msgstr ""
2335 "呼び出したスレッドがケーパビリティ B<CAP_SETPCAP> を持っている場合、 呼び出し"
2336 "たスレッドのケーパビリティバウンディングセットから I<arg2> で指定されたケーパ"
2337 "ビリティを外す。 呼び出したスレッドの子プロセスは変更後のバウンディングセット"
2338 "を 継承する。"
2339
2340 #. type: Plain text
2341 #: build/C/man2/prctl.2:106
2342 msgid ""
2343 "The call fails with the error: B<EPERM> if the calling thread does not have "
2344 "the B<CAP_SETPCAP>; B<EINVAL> if I<arg2> does not represent a valid "
2345 "capability; or B<EINVAL> if file capabilities are not enabled in the kernel, "
2346 "in which case bounding sets are not supported."
2347 msgstr ""
2348 "呼び出したスレッドが B<CAP_SETPCAP> を持っていない場合、呼び出しはエラー "
2349 "B<EPERM> で失敗する。 I<arg2> に指定されたケーパビリティが有効でない場合、 "
2350 "B<EINVAL> で失敗する。 ファイルケーパビリティがカーネルで有効になっていない場"
2351 "合 (この場合にはバウンディングセットがサポートされない)、 B<EINVAL> で失敗す"
2352 "る。"
2353
2354 #. type: TP
2355 #: build/C/man2/prctl.2:106
2356 #, no-wrap
2357 msgid "B<PR_SET_CHILD_SUBREAPER> (since Linux 3.4)"
2358 msgstr "B<PR_SET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2359
2360 #.  commit ebec18a6d3aa1e7d84aab16225e87fd25170ec2b
2361 #. type: Plain text
2362 #: build/C/man2/prctl.2:131
2363 msgid ""
2364 "If I<arg2> is nonzero, set the \"child subreaper\" attribute of the calling "
2365 "process; if I<arg2> is zero, unset the attribute.  When a process is marked "
2366 "as a child subreaper, all of the children that it creates, and their "
2367 "descendants, will be marked as having a subreaper.  In effect, a subreaper "
2368 "fulfills the role of B<init>(1)  for its descendant processes.  Upon "
2369 "termination of a process that is orphaned (i.e., its immediate parent has "
2370 "already terminated)  and marked as having a subreaper, the nearest still "
2371 "living ancestor subreaper will receive a B<SIGCHLD> signal and be able to "
2372 "B<wait>(2)  on the process to discover its termination status."
2373 msgstr ""
2374
2375 #. type: TP
2376 #: build/C/man2/prctl.2:131
2377 #, no-wrap
2378 msgid "B<PR_GET_CHILD_SUBREAPER> (since Linux 3.4)"
2379 msgstr "B<PR_GET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2380
2381 #. type: Plain text
2382 #: build/C/man2/prctl.2:136
2383 msgid ""
2384 "Return the \"child subreaper\" setting of the caller, in the location "
2385 "pointed to by I<(int\\ *) arg2>."
2386 msgstr ""
2387
2388 #. type: TP
2389 #: build/C/man2/prctl.2:136
2390 #, no-wrap
2391 msgid "B<PR_SET_DUMPABLE> (since Linux 2.3.20)"
2392 msgstr "B<PR_SET_DUMPABLE> (Linux 2.3.20 以降)"
2393
2394 #.  See http://marc.theaimsgroup.com/?l=linux-kernel&m=115270289030630&w=2
2395 #.  Subject:    Fix prctl privilege escalation (CVE-2006-2451)
2396 #.  From:       Marcel Holtmann <marcel () holtmann ! org>
2397 #.  Date:       2006-07-12 11:12:00
2398 #. type: Plain text
2399 #: build/C/man2/prctl.2:162
2400 msgid ""
2401 "Set the state of the flag determining whether core dumps are produced for "
2402 "the calling process upon delivery of a signal whose default behavior is to "
2403 "produce a core dump.  (Normally, this flag is set for a process by default, "
2404 "but it is cleared when a set-user-ID or set-group-ID program is executed and "
2405 "also by various system calls that manipulate process UIDs and GIDs).  In "
2406 "kernels up to and including 2.6.12, I<arg2> must be either 0 (process is not "
2407 "dumpable) or 1 (process is dumpable).  Between kernels 2.6.13 and 2.6.17, "
2408 "the value 2 was also permitted, which caused any binary which normally would "
2409 "not be dumped to be dumped readable by root only; for security reasons, this "
2410 "feature has been removed.  (See also the description of I</proc/sys/fs/"
2411 "suid_dumpable> in B<proc>(5).)  Processes that are not dumpable can not be "
2412 "attached via B<ptrace>(2)  B<PTRACE_ATTACH>."
2413 msgstr ""
2414 "(Linux 2.3.20 以降) デフォルトの振る舞いではコアダンプを引き起こすよう\n"
2415 "なシグナルを受信したときに、呼び出し元のプロセスでコアダンプを\n"
2416 "生成するかどうかを決定するフラグを\n"
2417 "設定する (通常このフラグは、デフォルトではセットされているが、\n"
2418 "set-user-ID あるいは set-group-ID プログラムが実行されたり、 さまざまな\n"
2419 "システムコールによってプロセスの UID や GID が操作されたときに クリアさ\n"
2420 "れる)。 2.6.12 以前のカーネルでは、 I<arg2> は 0 (プロセスはダンプ不可)\n"
2421 "あるいは 1 (プロセスはダンプ可能) の どちらかでなければならない。\n"
2422 "2.6.13 から 2.6.17 までのカーネルでは、値 2 も認められていた。 この値を\n"
2423 "指定すると、通常はダンプされないバイナリが root だけが 読み込み可能な形\n"
2424 "でダンプされた。 セキュリティ上の理由から、この機能は削除された\n"
2425 "(B<proc>(5) の I</proc/sys/fs/suid_dumpable> の説明も参照)。\n"
2426 "ダンプ不可のプロセスを B<ptrace>(2) B<PTRACE_ATTACH> 経由で接続すること\n"
2427 "はできない。"
2428
2429 #. type: TP
2430 #: build/C/man2/prctl.2:162
2431 #, no-wrap
2432 msgid "B<PR_GET_DUMPABLE> (since Linux 2.3.20)"
2433 msgstr "B<PR_GET_DUMPABLE> (Linux 2.3.20 以降)"
2434
2435 #.  Since Linux 2.6.13, the dumpable flag can have the value 2,
2436 #.  but in 2.6.13 PR_GET_DUMPABLE simply returns 1 if the dumpable
2437 #.  flags has a nonzero value.  This was fixed in 2.6.14.
2438 #. type: Plain text
2439 #: build/C/man2/prctl.2:169
2440 msgid ""
2441 "Return (as the function result) the current state of the calling process's "
2442 "dumpable flag."
2443 msgstr ""
2444 "(Linux 2.3.20 以降)  呼び出し元プロセスにおけるダンプ可能フラグの 現在の状態"
2445 "を (関数の返り値として) 返す。"
2446
2447 #. type: TP
2448 #: build/C/man2/prctl.2:169
2449 #, no-wrap
2450 msgid "B<PR_SET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2451 msgstr "B<PR_SET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2452
2453 #.  Respectively 0, 1, 2
2454 #. type: Plain text
2455 #: build/C/man2/prctl.2:179
2456 msgid ""
2457 "Set the endian-ness of the calling process to the value given in I<arg2>, "
2458 "which should be one of the following: B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2459 "or B<PR_ENDIAN_PPC_LITTLE> (PowerPC pseudo little endian)."
2460 msgstr ""
2461 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<arg2> で指定された値"
2462 "に設定する。 指定できる値は B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2463 "B<PR_ENDIAN_PPC_LITTLE> (PowerPC 擬似リトルエンディアン)  のいずれか一つであ"
2464 "る。"
2465
2466 #. type: TP
2467 #: build/C/man2/prctl.2:179
2468 #, no-wrap
2469 msgid "B<PR_GET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2470 msgstr "B<PR_GET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2471
2472 #. type: Plain text
2473 #: build/C/man2/prctl.2:184
2474 msgid ""
2475 "Return the endian-ness of the calling process, in the location pointed to by "
2476 "I<(int\\ *) arg2>."
2477 msgstr ""
2478 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<(int\\ *) arg2> が指"
2479 "す場所に格納して返す。"
2480
2481 #. type: TP
2482 #: build/C/man2/prctl.2:184
2483 #, no-wrap
2484 msgid "B<PR_SET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2485 msgstr "B<PR_SET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2486
2487 #. type: Plain text
2488 #: build/C/man2/prctl.2:191
2489 msgid ""
2490 "Set floating-point emulation control bits to I<arg2>.  Pass "
2491 "B<PR_FPEMU_NOPRINT> to silently emulate fp operations accesses, or "
2492 "B<PR_FPEMU_SIGFPE> to not emulate fp operations and send B<SIGFPE> instead."
2493 msgstr ""
2494 "浮動小数点エミュレーション (floating-point emulation) 制御ビットを I<arg2> で"
2495 "指定された値に設定する。 指定できる値は B<PR_FPEMU_NOPRINT> (浮動小数点命令ア"
2496 "クセスを黙って エミュレートする) か B<PR_FPEMU_SIGFPE> (浮動小数点命令をエ"
2497 "ミュレートせず、 代わりに B<SIGFPE> を送る) である。"
2498
2499 #. type: TP
2500 #: build/C/man2/prctl.2:191
2501 #, no-wrap
2502 msgid "B<PR_GET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2503 msgstr "B<PR_GET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2504
2505 #. type: Plain text
2506 #: build/C/man2/prctl.2:196
2507 msgid ""
2508 "Return floating-point emulation control bits, in the location pointed to by "
2509 "I<(int\\ *) arg2>."
2510 msgstr ""
2511 "浮動小数点エミュレーション制御ビットの値を I<(int\\ *) arg2> が指す場所に格納"
2512 "して返す。"
2513
2514 #. type: TP
2515 #: build/C/man2/prctl.2:196
2516 #, no-wrap
2517 msgid "B<PR_SET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2518 msgstr "B<PR_SET_FPEXC> (Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2519
2520 #. type: Plain text
2521 #: build/C/man2/prctl.2:209
2522 msgid ""
2523 "Set floating-point exception mode to I<arg2>.  Pass B<PR_FP_EXC_SW_ENABLE> "
2524 "to use FPEXC for FP exception enables, B<PR_FP_EXC_DIV> for floating-point "
2525 "divide by zero, B<PR_FP_EXC_OVF> for floating-point overflow, "
2526 "B<PR_FP_EXC_UND> for floating-point underflow, B<PR_FP_EXC_RES> for floating-"
2527 "point inexact result, B<PR_FP_EXC_INV> for floating-point invalid operation, "
2528 "B<PR_FP_EXC_DISABLED> for FP exceptions disabled, B<PR_FP_EXC_NONRECOV> for "
2529 "async nonrecoverable exception mode, B<PR_FP_EXC_ASYNC> for async "
2530 "recoverable exception mode, B<PR_FP_EXC_PRECISE> for precise exception mode."
2531 msgstr ""
2532 "浮動小数点例外モード (floating-point exception mode) を I<arg2> で指定された"
2533 "値に設定する。 指定できるのは以下の値である: B<PR_FP_EXC_SW_ENABLE> (FPEXC で"
2534 "浮動小数点例外を有効にする)、 B<PR_FP_EXC_DIV> (0 除算)、 B<PR_FP_EXC_OVF> "
2535 "(オーバーフロー)、 B<PR_FP_EXC_UND> (アンダーフロー)、 B<PR_FP_EXC_RES> (不正"
2536 "確な結果 (inexact result))、 B<PR_FP_EXC_INV> (不正な命令 (invalid "
2537 "operation))、 B<PR_FP_EXC_DISABLED> (浮動小数点例外を無効にする)、 "
2538 "B<PR_FP_EXC_NONRECOV> (async nonrecoverable exception mode)、 "
2539 "B<PR_FP_EXC_ASYNC> (async recoverable exception mode)、 B<PR_FP_EXC_PRECISE> "
2540 "(precise exception mode)。"
2541
2542 #. type: TP
2543 #: build/C/man2/prctl.2:209
2544 #, no-wrap
2545 msgid "B<PR_GET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2546 msgstr "B<PR_GET_FPEXC>(Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2547
2548 #. type: Plain text
2549 #: build/C/man2/prctl.2:214
2550 msgid ""
2551 "Return floating-point exception mode, in the location pointed to by I<(int\\ "
2552 "*) arg2>."
2553 msgstr ""
2554 "浮動小数点例外モードの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
2555
2556 #. type: TP
2557 #: build/C/man2/prctl.2:214
2558 #, no-wrap
2559 msgid "B<PR_SET_KEEPCAPS> (since Linux 2.2.18)"
2560 msgstr "B<PR_SET_KEEPCAPS> (Linux 2.2.18 以降)"
2561
2562 #. type: Plain text
2563 #: build/C/man2/prctl.2:232
2564 msgid ""
2565 "Set the state of the thread's \"keep capabilities\" flag, which determines "
2566 "whether the threads's permitted capability set is cleared when a change is "
2567 "made to the threads's user IDs such that the threads's real UID, effective "
2568 "UID, and saved set-user-ID all become nonzero when at least one of them "
2569 "previously had the value 0.  By default, the permitted capability set is "
2570 "cleared when such a change is made; setting the \"keep capabilities\" flag "
2571 "prevents it from being cleared.  I<arg2> must be either 0 (permitted "
2572 "capabilities are cleared)  or 1 (permitted capabilities are kept).  (A "
2573 "thread's I<effective> capability set is always cleared when such a "
2574 "credential change is made, regardless of the setting of the \"keep "
2575 "capabilities\" flag.)  The \"keep capabilities\" value will be reset to 0 on "
2576 "subsequent calls to B<execve>(2)."
2577 msgstr ""
2578 "スレッドの「ケーパビリティ保持」フラグを設定する。\n"
2579 "このフラグは、スレッドの実 UID、実効 UID、保存 set-user-ID のうち少なく\n"
2580 "とも一つが 0 であった状態から、これら全てが 0 以外に変更されたとき、\n"
2581 "スレッドの許可ケーパビリティ集合がクリアされるかどうかを決定する。\n"
2582 "デフォルトでは、このような変更が行われた場合、許可ケーパビリティセット\n"
2583 "はクリアされる。「ケーパビリティ保持」フラグを設定すると、\n"
2584 "許可ケーパビリティセットはクリアされなくなる。\n"
2585 "I<arg2> は 0 (許可ケーパビリティをクリアする) か 1 (許可ケーパビリティ\n"
2586 "を保持する) の どちらかでなければならない。\n"
2587 "(このような ID の変更が行われた場合、「ケーパビリティ保持」フラグの設定\n"
2588 "に関わらず、スレッドのI<実効>ケーパビリティセットは常にクリアされる。)\n"
2589 "B<execve>(2) が呼び出されると、「ケーパビリティ保持」フラグは 0\n"
2590 "にリセットされる。"
2591
2592 #. type: TP
2593 #: build/C/man2/prctl.2:232
2594 #, no-wrap
2595 msgid "B<PR_GET_KEEPCAPS> (since Linux 2.2.18)"
2596 msgstr "B<PR_GET_KEEPCAPS> (Linux 2.2.18 以降)"
2597
2598 #. type: Plain text
2599 #: build/C/man2/prctl.2:236
2600 msgid ""
2601 "Return (as the function result) the current state of the calling threads's "
2602 "\"keep capabilities\" flag."
2603 msgstr ""
2604 "呼び出し元スレッドにおける「ケーパビリティ保持」フラグの 現在の状態を (関数の"
2605 "返り値として) 返す。"
2606
2607 #. type: TP
2608 #: build/C/man2/prctl.2:236
2609 #, no-wrap
2610 msgid "B<PR_SET_NAME> (since Linux 2.6.9)"
2611 msgstr "B<PR_SET_NAME> (Linux 2.6.9 以降)"
2612
2613 #.  TASK_COMM_LEN in include/linux/sched.h
2614 #. type: Plain text
2615 #: build/C/man2/prctl.2:253
2616 #, fuzzy
2617 #| msgid ""
2618 #| "Set the process name for the calling thread, using the value in the "
2619 #| "location pointed to by I<(char\\ *) arg2>.  The name can be up to 16 "
2620 #| "bytes long, and should be null-terminated if it contains fewer bytes."
2621 msgid ""
2622 "Set the name of the calling thread, using the value in the location pointed "
2623 "to by I<(char\\ *) arg2>.  The name can be up to 16 bytes long, and should "
2624 "be null-terminated if it contains fewer bytes.  This is the same attribute "
2625 "that can be set via B<pthread_setname_np>(3)  and retrieved using "
2626 "B<pthread_getname_np>(3).  The attribute is likewise accessible via I</proc/"
2627 "self/task/[tid]/comm>, where I<tid> is the name of the calling thread."
2628 msgstr ""
2629 "呼び出し元スレッドのプロセス名を I<(char\\ *) arg2> が指す場所に格納された値"
2630 "を使って設定する。 名前は最大で 16 バイトであり、 それより少ないバイト数の場"
2631 "合は NULL で終端すべきである。"
2632
2633 #. type: TP
2634 #: build/C/man2/prctl.2:253
2635 #, no-wrap
2636 msgid "B<PR_GET_NAME> (since Linux 2.6.11)"
2637 msgstr "B<PR_GET_NAME> (Linux 2.6.11 以降)"
2638
2639 #. type: Plain text
2640 #: build/C/man2/prctl.2:260
2641 msgid ""
2642 "Return the name of the calling thread, in the buffer pointed to by I<(char\\ "
2643 "*) arg2>.  The buffer should allow space for up to 16 bytes; the returned "
2644 "string will be null-terminated if it is shorter than that."
2645 msgstr ""
2646 "呼び出し元スレッドの名前を I<(char\\ *) arg2> が指す場所に格納して返す。 バッ"
2647 "ファは最大で 16 バイトを格納できるようにすべきである。 返される文字列は、長さ"
2648 "が 16 バイトより短い場合は NULL 終端される。"
2649
2650 #. type: TP
2651 #: build/C/man2/prctl.2:260
2652 #, no-wrap
2653 msgid "B<PR_SET_NO_NEW_PRIVS> (since Linux 3.5)"
2654 msgstr "B<PR_SET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2655
2656 #. type: Plain text
2657 #: build/C/man2/prctl.2:283
2658 msgid ""
2659 "Set the calling process's I<no_new_privs> bit to the value in I<arg2>.  With "
2660 "I<no_new_privs> set to 1, B<execve>(2)  promises not to grant privileges to "
2661 "do anything that could not have been done without the B<execve>(2)  call "
2662 "(for example, rendering the set-user-ID and set-group-ID permission bits, "
2663 "and file capabilities non-functional).  Once set, this bit cannot be unset.  "
2664 "The setting of this bit is inherited by children created by B<fork>(2)  and "
2665 "B<clone>(2), and preserved across B<execve>(2)."
2666 msgstr ""
2667
2668 #. type: Plain text
2669 #: build/C/man2/prctl.2:286
2670 msgid ""
2671 "For more information, see the kernel source file I<Documentation/prctl/"
2672 "no_new_privs.txt>."
2673 msgstr ""
2674
2675 #. type: TP
2676 #: build/C/man2/prctl.2:286
2677 #, no-wrap
2678 msgid "B<PR_GET_NO_NEW_PRIVS> (since Linux 3.5)"
2679 msgstr "B<PR_GET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2680
2681 #. type: Plain text
2682 #: build/C/man2/prctl.2:297
2683 msgid ""
2684 "Return the value of the I<no_new_privs> bit for the current process.  A "
2685 "value of 0 indicates the regular B<execve>(2)  behavior.  A value of 1 "
2686 "indicates B<execve>(2)  will operate in the privilege-restricting mode "
2687 "described above."
2688 msgstr ""
2689
2690 #. type: TP
2691 #: build/C/man2/prctl.2:297
2692 #, no-wrap
2693 msgid "B<PR_SET_PDEATHSIG> (since Linux 2.1.57)"
2694 msgstr "B<PR_SET_PDEATHSIG> (Linux 2.1.57 以降)"
2695
2696 #. type: Plain text
2697 #: build/C/man2/prctl.2:308
2698 msgid ""
2699 "Set the parent process death signal of the calling process to I<arg2> "
2700 "(either a signal value in the range 1..maxsig, or 0 to clear).  This is the "
2701 "signal that the calling process will get when its parent dies.  This value "
2702 "is cleared for the child of a B<fork>(2)  and (since Linux 2.4.36 / 2.6.23)  "
2703 "when executing a set-user-ID or set-group-ID binary."
2704 msgstr ""
2705 "親プロセス死亡シグナル (parent process death signal) を I<arg2> に設定\n"
2706 "する (設定できるシグナル値の範囲は 1..maxsig であり、0 は通知の解除であ\n"
2707 "る)。 呼び出し元プロセスの親プロセスが死んだ際に、ここで設定した値が シ\n"
2708 "グナルとして通知される。この値は B<fork>(2) の子プロセスでは解除される。\n"
2709 "(Linux 2.4.36 以降および 2.6.23 以降では) set-user-ID もしくは\n"
2710 "set-group-ID されたバイナリを実行した場合にも、このフラグは解除される。"
2711
2712 #. type: TP
2713 #: build/C/man2/prctl.2:308
2714 #, no-wrap
2715 msgid "B<PR_GET_PDEATHSIG> (since Linux 2.3.15)"
2716 msgstr "B<PR_GET_PDEATHSIG> (Linux 2.3.15 以降)"
2717
2718 #. type: Plain text
2719 #: build/C/man2/prctl.2:313
2720 msgid ""
2721 "Return the current value of the parent process death signal, in the location "
2722 "pointed to by I<(int\\ *) arg2>."
2723 msgstr ""
2724 "親プロセス死亡シグナルの現在の値を I<(int\\ *) arg2> が指す場所に格納して返"
2725 "す。"
2726
2727 #. type: TP
2728 #: build/C/man2/prctl.2:313
2729 #, no-wrap
2730 msgid "B<PR_SET_PTRACER> (since Linux 3.4)"
2731 msgstr "B<PR_SET_PTRACER> (Linux 3.4 以降)"
2732
2733 #.  commit 2d514487faf188938a4ee4fb3464eeecfbdcf8eb
2734 #.  commit bf06189e4d14641c0148bea16e9dd24943862215
2735 #. type: Plain text
2736 #: build/C/man2/prctl.2:338
2737 msgid ""
2738 "This is meaningful only when the Yama LSM is enabled and in mode 1 "
2739 "(\"restricted ptrace\", visible via I</proc/sys/kernel/yama/ptrace_scope>).  "
2740 "When a \"ptracer process ID\" is passed in I<arg2>, the caller is declaring "
2741 "that the ptracer process can B<ptrace>(2)  the calling process as if it were "
2742 "a direct process ancestor.  Each B<PR_SET_PTRACER> operation replaces the "
2743 "previous \"ptracer process ID\".  Employing B<PR_SET_PTRACER> with I<arg2> "
2744 "set to 0 clears the caller's \"ptracer process ID\".  If I<arg2> is "
2745 "B<PR_SET_PTRACER_ANY,> the ptrace restrictions introduced by Yama are "
2746 "effectively disabled for the calling process."
2747 msgstr ""
2748
2749 #. type: Plain text
2750 #: build/C/man2/prctl.2:341
2751 msgid ""
2752 "For further information, see the kernel source file I<Documentation/security/"
2753 "Yama.txt>."
2754 msgstr ""
2755
2756 #. type: TP
2757 #: build/C/man2/prctl.2:341
2758 #, no-wrap
2759 msgid "B<PR_SET_SECCOMP> (since Linux 2.6.23)"
2760 msgstr "B<PR_SET_SECCOMP> (Linux 2.6.23 以降)"
2761
2762 #.  See http://thread.gmane.org/gmane.linux.kernel/542632
2763 #.  [PATCH 0 of 2] seccomp updates
2764 #.  andrea@cpushare.com
2765 #. type: Plain text
2766 #: build/C/man2/prctl.2:352
2767 msgid ""
2768 "Set the secure computing (seccomp) mode for the calling thread, to limit the "
2769 "available system calls.  The seccomp mode is selected via I<arg2>.  (The "
2770 "seccomp constants are defined in I<E<lt>linux/seccomp.hE<gt>>.)"
2771 msgstr ""
2772
2773 #. type: Plain text
2774 #: build/C/man2/prctl.2:373
2775 #, fuzzy
2776 #| msgid ""
2777 #| "Set the secure computing mode for the calling thread.  In the current "
2778 #| "implementation, I<arg2> must be 1.  After the secure computing mode has "
2779 #| "been set to 1, the only system calls that the thread is permitted to make "
2780 #| "are B<read>(2), B<write>(2), B<_exit>(2), and B<sigreturn>(2).  Other "
2781 #| "system calls result in the delivery of a B<SIGKILL> signal.  Secure "
2782 #| "computing mode is useful for number-crunching applications that may need "
2783 #| "to execute untrusted byte code, perhaps obtained by reading from a pipe "
2784 #| "or socket.  This operation is only available if the kernel is configured "
2785 #| "with CONFIG_SECCOMP enabled."
2786 msgid ""
2787 "With I<arg2> set to B<SECCOMP_MODE_STRICT> the only system calls that the "
2788 "thread is permitted to make are B<read>(2), B<write>(2), B<_exit>(2), and "
2789 "B<sigreturn>(2).  Other system calls result in the delivery of a B<SIGKILL> "
2790 "signal.  Strict secure computing mode is useful for number-crunching "
2791 "applications that may need to execute untrusted byte code, perhaps obtained "
2792 "by reading from a pipe or socket.  This operation is available only if the "
2793 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2794 msgstr ""
2795 "呼び出したスレッドの secure computing モードを設定する。 現在の実装では、 "
2796 "I<arg2> は 1 にしなければならない。 secure computing モードを 1 に設定する"
2797 "と、 そのスレッドが呼び出しを許可されるシステムコールは B<read>(2), B<write>"
2798 "(2), B<_exit>(2), B<sigreturn>(2)  だけになる。 それ以外のシステムコールを呼"
2799 "び出すと、シグナル B<SIGKILL> が配送される。 パイプやソケットから読み込んだ、"
2800 "信頼できないバイトコードを実行する 必要がある大量の演算を行うアプリケーション"
2801 "において、 secure computing モードは役立つ。 この操作は利用できるのは、カーネ"
2802 "ルが CONFIG_SECCOMP を有効にして 作成されている場合だけである。"
2803
2804 #. type: Plain text
2805 #: build/C/man2/prctl.2:388
2806 msgid ""
2807 "With I<arg2> set to B<SECCOMP_MODE_FILTER> (since Linux 3.5)  the system "
2808 "calls allowed are defined by a pointer to a Berkeley Packet Filter passed in "
2809 "I<arg3>.  This argument is a pointer to I<struct sock_fprog>; it can be "
2810 "designed to filter arbitrary system calls and system call arguments.  This "
2811 "mode is available only if the kernel is configured with "
2812 "B<CONFIG_SECCOMP_FILTER> enabled."
2813 msgstr ""
2814
2815 #. type: Plain text
2816 #: build/C/man2/prctl.2:403
2817 msgid ""
2818 "If B<SECCOMP_MODE_FILTER> filters permit B<fork>(2), then the seccomp mode "
2819 "is inherited by children created by B<fork>(2); if B<execve>(2)  is "
2820 "permitted, then the seccomp mode is preserved across B<execve>(2).  If the "
2821 "filters permit B<prctl>()  calls, then additional filters can be added; they "
2822 "are run in order until the first non-allow result is seen."
2823 msgstr ""
2824
2825 #. type: Plain text
2826 #: build/C/man2/prctl.2:406
2827 msgid ""
2828 "For further information, see the kernel source file I<Documentation/prctl/"
2829 "seccomp_filter.txt>."
2830 msgstr ""
2831
2832 #. type: TP
2833 #: build/C/man2/prctl.2:406
2834 #, no-wrap
2835 msgid "B<PR_GET_SECCOMP> (since Linux 2.6.23)"
2836 msgstr "B<PR_GET_SECCOMP> (Linux 2.6.23 以降)"
2837
2838 #. type: Plain text
2839 #: build/C/man2/prctl.2:421
2840 msgid ""
2841 "Return the secure computing mode of the calling thread.  If the caller is "
2842 "not in secure computing mode, this operation returns 0; if the caller is in "
2843 "strict secure computing mode, then the B<prctl>()  call will cause a "
2844 "B<SIGKILL> signal to be sent to the process.  If the caller is in filter "
2845 "mode, and this system call is allowed by the seccomp filters, it returns 2.  "
2846 "This operation is available only if the kernel is configured with "
2847 "B<CONFIG_SECCOMP> enabled."
2848 msgstr ""
2849 "呼び出したスレッドの secure computing モードを返す。 呼び出したスレッドが "
2850 "secure computing モードでなかった場合、 この操作は 0 を返す。 呼び出したス"
2851 "レッドが secure computing モードの場合、 B<prctl>()  を呼び出すとシグナル "
2852 "B<SIGKILL> がそのプロセスに送信される。 呼び出したスレッドがフィルタモード"
2853 "で、 このシステムコールが seccomp フィルタにより許可されている場合、 2 を返"
2854 "す。 この操作が利用できるのは、カーネルが B<CONFIG_SECCOMP> を有効にして作成"
2855 "されている場合だけである。"
2856
2857 #. type: TP
2858 #: build/C/man2/prctl.2:421
2859 #, no-wrap
2860 msgid "B<PR_SET_SECUREBITS> (since Linux 2.6.26)"
2861 msgstr "B<PR_SET_SECUREBITS> (Linux 2.6.26 以降)"
2862
2863 #. type: Plain text
2864 #: build/C/man2/prctl.2:427
2865 msgid ""
2866 "Set the \"securebits\" flags of the calling thread to the value supplied in "
2867 "I<arg2>.  See B<capabilities>(7)."
2868 msgstr ""
2869 "呼び出したスレッドの \"securebits\" フラグを I<arg2> で渡された値に設定す"
2870 "る。 B<capabilities>(7)  参照。"
2871
2872 #. type: TP
2873 #: build/C/man2/prctl.2:427
2874 #, no-wrap
2875 msgid "B<PR_GET_SECUREBITS> (since Linux 2.6.26)"
2876 msgstr "B<PR_GET_SECUREBITS> (Linux 2.6.26 以降)"
2877
2878 #. type: Plain text
2879 #: build/C/man2/prctl.2:433
2880 msgid ""
2881 "Return (as the function result)  the \"securebits\" flags of the calling "
2882 "thread.  See B<capabilities>(7)."
2883 msgstr ""
2884 "呼び出したスレッドの \"securebits\" フラグを (関数の返り値として) 返す。 "
2885 "B<capabilities>(7)  参照。"
2886
2887 #. type: TP
2888 #: build/C/man2/prctl.2:433
2889 #, no-wrap
2890 msgid "B<PR_GET_TID_ADDRESS> (since Linux 3.5)"
2891 msgstr "B<PR_GET_TID_ADDRESS> (Linux 3.5 以降)"
2892
2893 #.  commit 300f786b2683f8bb1ec0afb6e1851183a479c86d
2894 #. type: Plain text
2895 #: build/C/man2/prctl.2:448
2896 msgid ""
2897 "Retrieve the I<clear_child_tid> address set by B<set_tid_address>(2)  and "
2898 "the B<clone>(2)  B<CLONE_CHILD_CLEARTID> flag, in the location pointed to by "
2899 "I<(int\\ **)\\ arg2>.  This feature is available only if the kernel is built "
2900 "with the B<CONFIG_CHECKPOINT_RESTORE> option enabled."
2901 msgstr ""
2902
2903 #. type: TP
2904 #: build/C/man2/prctl.2:448
2905 #, no-wrap
2906 msgid "B<PR_SET_TIMERSLACK> (since Linux 2.6.28)"
2907 msgstr "B<PR_SET_TIMERSLACK> (Linux 2.6.28 以降)"
2908
2909 #.  See https://lwn.net/Articles/369549/
2910 #.  commit 6976675d94042fbd446231d1bd8b7de71a980ada
2911 #.  It seems that it's not possible to set the timer slack to zero;
2912 #.  The minimum value is 1? Seems a little strange.
2913 #. type: Plain text
2914 #: build/C/man2/prctl.2:467
2915 msgid ""
2916 "Set the current timer slack for the calling thread to the nanosecond value "
2917 "supplied in I<arg2>.  If I<arg2> is less than or equal to zero, reset the "
2918 "current timer slack to the thread's default timer slack value.  The timer "
2919 "slack is used by the kernel to group timer expirations for the calling "
2920 "thread that are close to one another; as a consequence, timer expirations "
2921 "for the thread may be up to the specified number of nanoseconds late (but "
2922 "will never expire early).  Grouping timer expirations can help reduce system "
2923 "power consumption by minimizing CPU wake-ups."
2924 msgstr ""
2925
2926 #.  List obtained by grepping for futex usage in glibc source
2927 #. type: Plain text
2928 #: build/C/man2/prctl.2:487
2929 msgid ""
2930 "The timer expirations affected by timer slack are those set by B<select>(2), "
2931 "B<pselect>(2), B<poll>(2), B<ppoll>(2), B<epoll_wait>(2), B<epoll_pwait>(2), "
2932 "B<clock_nanosleep>(2), B<nanosleep>(2), and B<futex>(2)  (and thus the "
2933 "library functions implemented via futexes, including "
2934 "B<pthread_cond_timedwait>(3), B<pthread_mutex_timedlock>(3), "
2935 "B<pthread_rwlock_timedrdlock>(3), B<pthread_rwlock_timedwrlock>(3), and "
2936 "B<sem_timedwait>(3))."
2937 msgstr ""
2938
2939 #. type: Plain text
2940 #: build/C/man2/prctl.2:491
2941 msgid ""
2942 "Timer slack is not applied to threads that are scheduled under a realtime "
2943 "scheduling policy (see B<sched_setscheduler>(2))."
2944 msgstr ""
2945
2946 #. type: Plain text
2947 #: build/C/man2/prctl.2:508
2948 msgid ""
2949 "Each thread has two associated timer slack values: a \"default\" value, and "
2950 "a \"current\" value.  The current value is the one that governs grouping of "
2951 "timer expirations.  When a new thread is created, the two timer slack values "
2952 "are made the same as the current value of the creating thread.  Thereafter, "
2953 "a thread can adjust its current timer slack value via B<PR_SET_TIMERSLACK> "
2954 "(the default value can't be changed).  The timer slack values of I<init> "
2955 "(PID 1), the ancestor of all processes, are 50,000 nanoseconds (50 "
2956 "microseconds).  The timer slack values are preserved across B<execve>(2)."
2957 msgstr ""
2958
2959 #. type: TP
2960 #: build/C/man2/prctl.2:508
2961 #, no-wrap
2962 msgid "B<PR_GET_TIMERSLACK> (since Linux 2.6.28)"
2963 msgstr "B<PR_GET_TIMERSLACK> (Linux 2.6.28 以降)"
2964
2965 #. type: Plain text
2966 #: build/C/man2/prctl.2:511
2967 msgid "Return the current timer slack value of the calling thread."
2968 msgstr ""
2969
2970 #. type: TP
2971 #: build/C/man2/prctl.2:511
2972 #, no-wrap
2973 msgid "B<PR_SET_TIMING> (since Linux 2.6.0-test4)"
2974 msgstr "B<PR_SET_TIMING> (Linux 2.6.0-test4 以降)"
2975
2976 #.  0
2977 #.  1
2978 #.  PR_TIMING_TIMESTAMP doesn't do anything in 2.6.26-rc8,
2979 #.  and looking at the patch history, it appears
2980 #.  that it never did anything.
2981 #. type: Plain text
2982 #: build/C/man2/prctl.2:528
2983 msgid ""
2984 "Set whether to use (normal, traditional) statistical process timing or "
2985 "accurate timestamp-based process timing, by passing B<PR_TIMING_STATISTICAL> "
2986 "or B<PR_TIMING_TIMESTAMP> to I<arg2>.  B<PR_TIMING_TIMESTAMP> is not "
2987 "currently implemented (attempting to set this mode will yield the error "
2988 "B<EINVAL>)."
2989 msgstr ""
2990 "(通常の、伝統的に使われてきた) 統計的なプロセスタイミングを使用するか、\n"
2991 "正確なタイムスタンプに基づくプロセスタイミングを使用するかを設定する。\n"
2992 "I<arg2> に指定できる値は B<PR_TIMING_STATISTICAL> か\n"
2993 "B<PR_TIMING_TIMESTAMP> である。 B<PR_TIMING_TIMESTAMP> は現在のところ実\n"
2994 "装されていない (このモードに設定しようとするとエラー B<EINVAL> が起こる\n"
2995 "ことだろう)。"
2996
2997 #. type: TP
2998 #: build/C/man2/prctl.2:528
2999 #, no-wrap
3000 msgid "B<PR_GET_TIMING> (since Linux 2.6.0-test4)"
3001 msgstr "B<PR_GET_TIMING> (Linux 2.6.0-test4 以降)"
3002
3003 #. type: Plain text
3004 #: build/C/man2/prctl.2:532
3005 msgid ""
3006 "Return (as the function result) which process timing method is currently in "
3007 "use."
3008 msgstr "現在使用中のプロセスタイミングを決める方法を返す。"
3009
3010 #. type: TP
3011 #: build/C/man2/prctl.2:532
3012 #, no-wrap
3013 msgid "B<PR_TASK_PERF_EVENTS_DISABLE> (since Linux 2.6.31)"
3014 msgstr "B<PR_TASK_PERF_EVENTS_DISABLE> (Linux 2.6.31 以降)"
3015
3016 #. type: Plain text
3017 #: build/C/man2/prctl.2:541
3018 msgid ""
3019 "Disable all performance counters attached to the calling process, regardless "
3020 "of whether the counters were created by this process or another process.  "
3021 "Performance counters created by the calling process for other processes are "
3022 "unaffected.  For more information on performance counters, see the Linux "
3023 "kernel source file I<tools/perf/design.txt>."
3024 msgstr ""
3025
3026 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3027 #. type: Plain text
3028 #: build/C/man2/prctl.2:547
3029 msgid ""
3030 "Originally called B<PR_TASK_PERF_COUNTERS_DISABLE>; renamed (with same "
3031 "numerical value)  in Linux 2.6.32."
3032 msgstr ""
3033 "以前は B<PR_TASK_PERF_COUNTERS_DISABLE> と呼ばれていた。\n"
3034 "Linux 2.6.32 で名前が変更された (数値は同じままである)。"
3035
3036 #. type: TP
3037 #: build/C/man2/prctl.2:547
3038 #, no-wrap
3039 msgid "B<PR_TASK_PERF_EVENTS_ENABLE> (since Linux 2.6.31)"
3040 msgstr "B<PR_TASK_PERF_EVENTS_ENABLE> (Linux 2.6.31 以降)"
3041
3042 #. type: Plain text
3043 #: build/C/man2/prctl.2:552
3044 msgid ""
3045 "The converse of B<PR_TASK_PERF_EVENTS_DISABLE>; enable performance counters "
3046 "attached to the calling process."
3047 msgstr ""
3048
3049 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3050 #.  commit cdd6c482c9ff9c55475ee7392ec8f672eddb7be6
3051 #. type: Plain text
3052 #: build/C/man2/prctl.2:559
3053 msgid ""
3054 "Originally called B<PR_TASK_PERF_COUNTERS_ENABLE>; renamed in Linux 2.6.32."
3055 msgstr ""
3056 "以前は B<PR_TASK_PERF_COUNTERS_ENABLE> と呼ばれていた。\n"
3057 "Linux 2.6.32 で名前が変更された。"
3058
3059 #. type: TP
3060 #: build/C/man2/prctl.2:559
3061 #, no-wrap
3062 msgid "B<PR_SET_TSC> (since Linux 2.6.26, x86 only)"
3063 msgstr "B<PR_SET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3064
3065 #. type: Plain text
3066 #: build/C/man2/prctl.2:572
3067 msgid ""
3068 "Set the state of the flag determining whether the timestamp counter can be "
3069 "read by the process.  Pass B<PR_TSC_ENABLE> to I<arg2> to allow it to be "
3070 "read, or B<PR_TSC_SIGSEGV> to generate a B<SIGSEGV> when the process tries "
3071 "to read the timestamp counter."
3072 msgstr ""
3073 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態を"
3074 "設定する。 読み出しを許可する場合は I<arg2> に B<PR_TSC_ENABLE> を、そのプロ"
3075 "セスがタイムスタンプ・カウンタを読み出そうとした際に B<SIGSEGV> を発生させる"
3076 "場合には B<PR_TSC_SIGSEGV> を渡す。"
3077
3078 #. type: TP
3079 #: build/C/man2/prctl.2:572
3080 #, no-wrap
3081 msgid "B<PR_GET_TSC> (since Linux 2.6.26, x86 only)"
3082 msgstr "B<PR_GET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3083
3084 #. type: Plain text
3085 #: build/C/man2/prctl.2:578
3086 msgid ""
3087 "Return the state of the flag determining whether the timestamp counter can "
3088 "be read, in the location pointed to by I<(int\\ *) arg2>."
3089 msgstr ""
3090 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態"
3091 "を I<(int\\ *) arg2> が指す場所に格納して返す。"
3092
3093 #. type: TP
3094 #: build/C/man2/prctl.2:578
3095 #, no-wrap
3096 msgid "B<PR_SET_UNALIGN>"
3097 msgstr "B<PR_SET_UNALIGN>"
3098
3099 #. type: Plain text
3100 #: build/C/man2/prctl.2:588
3101 msgid ""
3102 "(Only on: ia64, since Linux 2.3.48; parisc, since Linux 2.6.15; PowerPC, "
3103 "since Linux 2.6.18; Alpha, since Linux 2.6.22)  Set unaligned access control "
3104 "bits to I<arg2>.  Pass B<PR_UNALIGN_NOPRINT> to silently fix up unaligned "
3105 "user accesses, or B<PR_UNALIGN_SIGBUS> to generate B<SIGBUS> on unaligned "
3106 "user access."
3107 msgstr ""
3108 "(ia64 では Linux 2.3.48 以降; parisc では Linux 2.6.15 以降; PowerPC では "
3109 "Linux 2.6.18 以降; Alpha では Linux 2.6.22 以降; これらのアーキテクチャの"
3110 "み)  unaligned アクセス制御ビットを I<arg2> で指定された値に設定する。 指定で"
3111 "きる値は B<PR_UNALIGN_NOPRINT> (unaligned なユーザアクセスを黙って 修正する) "
3112 "か B<PR_UNALIGN_SIGBUS> (unaligned なユーザアクセスがあった場合 B<SIGBUS> を"
3113 "生成する) である。"
3114
3115 #. type: TP
3116 #: build/C/man2/prctl.2:588
3117 #, no-wrap
3118 msgid "B<PR_GET_UNALIGN>"
3119 msgstr "B<PR_GET_UNALIGN>"
3120
3121 #. type: Plain text
3122 #: build/C/man2/prctl.2:595
3123 msgid ""
3124 "(see B<PR_SET_UNALIGN> for information on versions and architectures)  "
3125 "Return unaligned access control bits, in the location pointed to by I<(int\\ "
3126 "*) arg2>."
3127 msgstr ""
3128 "(バージョンとアーキテクチャの情報は B<PR_SET_UNALIGN> 参照)  unaligned アクセ"
3129 "ス制御ビットの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
3130
3131 #. type: TP
3132 #: build/C/man2/prctl.2:595
3133 #, no-wrap
3134 msgid "B<PR_MCE_KILL> (since Linux 2.6.32)"
3135 msgstr "B<PR_MCE_KILL> (Linux 2.6.32 以降)"
3136
3137 #. type: Plain text
3138 #: build/C/man2/prctl.2:635
3139 msgid ""
3140 "Set the machine check memory corruption kill policy for the current thread.  "
3141 "If I<arg2> is B<PR_MCE_KILL_CLEAR>, clear the thread memory corruption kill "
3142 "policy and use the system-wide default.  (The system-wide default is defined "
3143 "by I</proc/sys/vm/memory_failure_early_kill>; see B<proc>(5).)  If I<arg2> "
3144 "is B<PR_MCE_KILL_SET>, use a thread-specific memory corruption kill policy.  "
3145 "In this case, I<arg3> defines whether the policy is I<early kill> "
3146 "(B<PR_MCE_KILL_EARLY>), I<late kill> (B<PR_MCE_KILL_LATE>), or the system-"
3147 "wide default (B<PR_MCE_KILL_DEFAULT>).  Early kill means that the thread "
3148 "receives a B<SIGBUS> signal as soon as hardware memory corruption is "
3149 "detected inside its address space.  In late kill mode, the process is killed "
3150 "only when it accesses a corrupted page.  See B<sigaction>(2)  for more "
3151 "information on the B<SIGBUS> signal.  The policy is inherited by children.  "
3152 "The remaining unused B<prctl>()  arguments must be zero for future "
3153 "compatibility."
3154 msgstr ""
3155
3156 #. type: TP
3157 #: build/C/man2/prctl.2:635
3158 #, no-wrap
3159 msgid "B<PR_MCE_KILL_GET> (since Linux 2.6.32)"
3160 msgstr "B<PR_MCE_KILL_GET> (Linux 2.6.32 以降)"
3161
3162 #. type: Plain text
3163 #: build/C/man2/prctl.2:641
3164 msgid ""
3165 "Return the current per-process machine check kill policy.  All unused "
3166 "B<prctl>()  arguments must be zero."
3167 msgstr ""
3168
3169 #. type: TP
3170 #: build/C/man2/prctl.2:641
3171 #, no-wrap
3172 msgid "B<PR_SET_MM> (since Linux 3.3)"
3173 msgstr "B<PR_SET_MM> (Linux 3.3 以降)"
3174
3175 #. type: Plain text
3176 #: build/C/man2/prctl.2:661
3177 msgid ""
3178 "Modify certain kernel memory map descriptor fields of the calling process.  "
3179 "Usually these fields are set by the kernel and dynamic loader (see B<ld.so>"
3180 "(8)  for more information) and a regular application should not use this "
3181 "feature.  However, there are cases, such as self-modifying programs, where a "
3182 "program might find it useful to change its own memory map.  This feature is "
3183 "available only if the kernel is built with the B<CONFIG_CHECKPOINT_RESTORE> "
3184 "option enabled.  The calling process must have the B<CAP_SYS_RESOURCE> "
3185 "capability.  The value in I<arg2> is one of the options below, while I<arg3> "
3186 "provides a new value for the option."
3187 msgstr ""
3188
3189 #. type: TP
3190 #: build/C/man2/prctl.2:662
3191 #, no-wrap
3192 msgid "B<PR_SET_MM_START_CODE>"
3193 msgstr "B<PR_SET_MM_START_CODE>"
3194
3195 #. type: Plain text
3196 #: build/C/man2/prctl.2:671
3197 msgid ""
3198 "Set the address above which the program text can run.  The corresponding "
3199 "memory area must be readable and executable, but not writable or sharable "
3200 "(see B<mprotect>(2)  and B<mmap>(2)  for more information)."
3201 msgstr ""
3202
3203 #. type: TP
3204 #: build/C/man2/prctl.2:671
3205 #, no-wrap
3206 msgid "B<PR_SET_MM_END_CODE>"
3207 msgstr "B<PR_SET_MM_END_CODE>"
3208
3209 #. type: Plain text
3210 #: build/C/man2/prctl.2:676
3211 msgid ""
3212 "Set the address below which the program text can run.  The corresponding "
3213 "memory area must be readable and executable, but not writable or sharable."
3214 msgstr ""
3215
3216 #. type: TP
3217 #: build/C/man2/prctl.2:676
3218 #, no-wrap
3219 msgid "B<PR_SET_MM_START_DATA>"
3220 msgstr "B<PR_SET_MM_START_DATA>"
3221
3222 #. type: Plain text
3223 #: build/C/man2/prctl.2:682
3224 msgid ""
3225 "Set the address above which initialized and uninitialized (bss) data are "
3226 "placed.  The corresponding memory area must be readable and writable, but "
3227 "not executable or sharable."
3228 msgstr ""
3229
3230 #. type: TP
3231 #: build/C/man2/prctl.2:682
3232 #, no-wrap
3233 msgid "B<PR_SET_MM_END_DATA>"
3234 msgstr "B<PR_SET_MM_END_DATA>"
3235
3236 #. type: Plain text
3237 #: build/C/man2/prctl.2:688
3238 msgid ""
3239 "Set the address below which initialized and uninitialized (bss) data are "
3240 "placed.  The corresponding memory area must be readable and writable, but "
3241 "not executable or sharable."
3242 msgstr ""
3243
3244 #. type: TP
3245 #: build/C/man2/prctl.2:688
3246 #, no-wrap
3247 msgid "B<PR_SET_MM_START_STACK>"
3248 msgstr "B<PR_SET_MM_START_STACK>"
3249
3250 #. type: Plain text
3251 #: build/C/man2/prctl.2:692
3252 msgid ""
3253 "Set the start address of the stack.  The corresponding memory area must be "
3254 "readable and writable."
3255 msgstr ""
3256
3257 #. type: TP
3258 #: build/C/man2/prctl.2:692
3259 #, no-wrap
3260 msgid "B<PR_SET_MM_START_BRK>"
3261 msgstr "B<PR_SET_MM_START_BRK>"
3262
3263 #. type: Plain text
3264 #: build/C/man2/prctl.2:704
3265 msgid ""
3266 "Set the address above which the program heap can be expanded with B<brk>(2)  "
3267 "call.  The address must be greater than the ending address of the current "
3268 "program data segment.  In addition, the combined size of the resulting heap "
3269 "and the size of the data segment can't exceed the B<RLIMIT_DATA> resource "
3270 "limit (see B<setrlimit>(2))."
3271 msgstr ""
3272
3273 #. type: TP
3274 #: build/C/man2/prctl.2:704
3275 #, no-wrap
3276 msgid "B<PR_SET_MM_BRK>"
3277 msgstr "B<PR_SET_MM_BRK>"
3278
3279 #.  FIXME The following (until ========) is not yet in mainline kernel,
3280 #.  so commented out for the moment.
3281 #.  .TP
3282 #.  .BR PR_SET_MM_ARG_START
3283 #.  Set the address above which the program command line is placed.
3284 #.  .TP
3285 #.  .BR PR_SET_MM_ARG_END
3286 #.  Set the address below which the program command line is placed.
3287 #.  .TP
3288 #.  .BR PR_SET_MM_ENV_START
3289 #.  Set the address above which the program environment is placed.
3290 #.  .TP
3291 #.  .BR PR_SET_MM_ENV_END
3292 #.  Set the address below which the program environment is placed.
3293 #.  .IP
3294 #.  The address passed with
3295 #.  .BR PR_SET_MM_ARG_START ,
3296 #.  .BR PR_SET_MM_ARG_END ,
3297 #.  .BR PR_SET_MM_ENV_START ,
3298 #.  and
3299 #.  .BR PR_SET_MM_ENV_END
3300 #.  should belong to a process stack area.
3301 #.  Thus, the corresponding memory area must be readable, writable, and
3302 #.  (depending on the kernel configuration) have the
3303 #.  .BR MAP_GROWSDOWN
3304 #.  attribute set (see
3305 #.  .BR mmap (2)).
3306 #.  .TP
3307 #.  .BR PR_SET_MM_AUXV
3308 #.  Set a new auxiliary vector.
3309 #.  The
3310 #.  .I arg3
3311 #.  argument should provide the address of the vector.
3312 #.  The
3313 #.  .I arg4
3314 #.  is the size of the vector.
3315 #.  .TP
3316 #.  .BR PR_SET_MM_EXE_FILE
3317 #.  Supersede the
3318 #.  .IR /proc/pid/exe
3319 #.  symbolic link with a new one pointing to a new executable file
3320 #.  identified by the file descriptor provided in
3321 #.  .I arg3
3322 #.  argument.
3323 #.  The file descriptor should be obtained with a regular
3324 #.  .BR open (2)
3325 #.  call.
3326 #.  .IP
3327 #.  To change the symbolic link, one needs to unmap all existing
3328 #.  executable memory areas, including those created by the kernel itself
3329 #.  (for example the kernel usually creates at least one executable
3330 #.  memory area for the ELF
3331 #.  .IR .text
3332 #.  section).
3333 #.  .IP
3334 #.  The second limitation is that such transitions can be done only once
3335 #.  in a process life time.
3336 #.  Any further attempts will be rejected.
3337 #.  This should help system administrators to monitor unusual
3338 #.  symbolic-link transitions over all process running in a system.
3339 #.  ========== END FIXME
3340 #. type: Plain text
3341 #: build/C/man2/prctl.2:773
3342 msgid ""
3343 "Set the current B<brk>(2)  value.  The requirements for the address are the "
3344 "same as for the B<PR_SET_MM_START_BRK> option."
3345 msgstr ""
3346
3347 #. type: Plain text
3348 #: build/C/man2/prctl.2:793
3349 msgid ""
3350 "On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3351 "B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, B<PR_GET_SECUREBITS>, "
3352 "B<PR_MCE_KILL_GET>, and (if it returns)  B<PR_GET_SECCOMP> return the "
3353 "nonnegative values described above.  All other I<option> values return 0 on "
3354 "success.  On error, -1 is returned, and I<errno> is set appropriately."
3355 msgstr ""
3356 "成功すると、 B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, "
3357 "B<PR_GET_NO_NEW_PRIVS>,\n"
3358 "B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, B<PR_GET_SECUREBITS>,\n"
3359 "B<PR_MCE_KILL_GET>, B<PR_GET_SECCOMP> は上述の負でない値を返す (なお、\n"
3360 "B<PR_GET_SECCOMP> は返らない場合もある)。 I<option> が他の値の場合は\n"
3361 "成功時に 0 を返す。\n"
3362 "エラーの場合、-1 を返し、 I<errno> に適切な値を設定する。"
3363
3364 #. type: Plain text
3365 #: build/C/man2/prctl.2:798
3366 msgid "I<arg2> is an invalid address."
3367 msgstr "I<arg2> が不正なアドレスである。"
3368
3369 #. type: Plain text
3370 #: build/C/man2/prctl.2:803
3371 msgid "The value of I<option> is not recognized."
3372 msgstr "I<option> の値が理解できない。"
3373
3374 #. type: Plain text
3375 #: build/C/man2/prctl.2:815
3376 msgid ""
3377 "I<option> is B<PR_MCE_KILL> or B<PR_MCE_KILL_GET> or B<PR_SET_MM>, and "
3378 "unused B<prctl>()  arguments were not specified as zero."
3379 msgstr ""
3380
3381 #. type: Plain text
3382 #: build/C/man2/prctl.2:820
3383 msgid "I<arg2> is not valid value for this I<option>."
3384 msgstr "I<arg2> が指定された I<option> で有効な値ではない。"
3385
3386 #. type: Plain text
3387 #: build/C/man2/prctl.2:829
3388 msgid ""
3389 "I<option> is B<PR_SET_SECCOMP> or B<PR_GET_SECCOMP>, and the kernel was not "
3390 "configured with B<CONFIG_SECCOMP>."
3391 msgstr ""
3392 "I<option> が B<PR_SET_SECCOMP> か B<PR_GET_SECCOMP> だが、カーネルが "
3393 "B<CONFIG_SECCOMP> を有効にして作成されていなかった。"
3394
3395 #. type: Plain text
3396 #: build/C/man2/prctl.2:835
3397 msgid "I<option> is B<PR_SET_MM>, and one of the following is true"
3398 msgstr ""
3399
3400 #. type: Plain text
3401 #: build/C/man2/prctl.2:841
3402 msgid "I<arg4> or I<arg5> is nonzero;"
3403 msgstr ""
3404
3405 #. type: Plain text
3406 #: build/C/man2/prctl.2:846
3407 msgid ""
3408 "I<arg3> is greater than B<TASK_SIZE> (the limit on the size of the user "
3409 "address space for this architecture);"
3410 msgstr ""
3411
3412 #. type: Plain text
3413 #: build/C/man2/prctl.2:856
3414 msgid ""
3415 "I<arg2> is B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3416 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, or B<PR_SET_MM_START_STACK,> "
3417 "and the permissions of the corresponding memory area are not as required;"
3418 msgstr ""
3419
3420 #. type: Plain text
3421 #: build/C/man2/prctl.2:868
3422 msgid ""
3423 "I<arg2> is B<PR_SET_MM_START_BRK> or B<PR_SET_MM_BRK>, and I<arg3> is less "
3424 "than or equal to the end of the data segment or specifies a value that would "
3425 "cause the B<RLIMIT_DATA> resource limit to be exceeded."
3426 msgstr ""
3427
3428 #. type: Plain text
3429 #: build/C/man2/prctl.2:879
3430 msgid ""
3431 "I<option> is B<PR_SET_PTRACER> and I<arg2> is not 0, B<PR_SET_PTRACER_ANY>, "
3432 "or the PID of an existing process."
3433 msgstr ""
3434
3435 #. type: Plain text
3436 #: build/C/man2/prctl.2:891
3437 msgid ""
3438 "I<option> is B<PR_SET_SECUREBITS>, and the caller does not have the "
3439 "B<CAP_SETPCAP> capability, or tried to unset a \"locked\" flag, or tried to "
3440 "set a flag whose corresponding locked flag was set (see B<capabilities>(7))."
3441 msgstr ""
3442 "I<option> が B<PR_SET_SECUREBITS> で、呼び出し元がケーパビリティ "
3443 "B<CAP_SETPCAP> を持っていない。 または、\"locked\" フラグを解除しようとし"
3444 "た。 または、locked フラグがセットされているフラグをセットしようとした "
3445 "(B<capabilities>(7)  参照)。"
3446
3447 #. type: Plain text
3448 #: build/C/man2/prctl.2:901
3449 msgid ""
3450 "I<option> is B<PR_SET_KEEPCAPS>, and the callers's "
3451 "B<SECURE_KEEP_CAPS_LOCKED> flag is set (see B<capabilities>(7))."
3452 msgstr ""
3453 "I<option> が B<PR_SET_KEEPCAPS> で、呼び出し元のフラグ "
3454 "B<SECURE_KEEP_CAPS_LOCKED> がセットされている (B<capabilities>(7)  参照)。"
3455
3456 #. type: Plain text
3457 #: build/C/man2/prctl.2:909
3458 msgid ""
3459 "I<option> is B<PR_CAPBSET_DROP>, and the caller does not have the "
3460 "B<CAP_SETPCAP> capability."
3461 msgstr ""
3462 "I<option> が B<PR_CAPBSET_DROP> で、呼び出し元がケーパビリティ "
3463 "B<CAP_SETPCAP> を持っていない。"
3464
3465 #.  FIXME The following (until ========) is not yet in mainline kernel,
3466 #.  so commented out for the moment.
3467 #.  .TP
3468 #.  .B EACCES
3469 #.  .I option
3470 #.  is
3471 #.  .BR PR_SET_MM ,
3472 #.  and
3473 #.  .I arg3
3474 #.  is
3475 #.  .BR PR_SET_MM_EXE_FILE ,
3476 #.  the file is not executable.
3477 #.  .TP
3478 #.  .B EBUSY
3479 #.  .I option
3480 #.  is
3481 #.  .BR PR_SET_MM ,
3482 #.  .I arg3
3483 #.  is
3484 #.  .BR PR_SET_MM_EXE_FILE ,
3485 #.  and this the second attempt to change the
3486 #.  .I /proc/pid/exe
3487 #.  symbolic link, which is prohibited.
3488 #.  .TP
3489 #.  .B EBADF
3490 #.  .I option
3491 #.  is
3492 #.  .BR PR_SET_MM ,
3493 #.  .I arg3
3494 #.  is
3495 #.  .BR PR_SET_MM_EXE_FILE ,
3496 #.  and the file descriptor passed in
3497 #.  .I arg4
3498 #.  is not valid.
3499 #.  ========== END FIXME
3500 #.  The following can't actually happen, because prctl() in
3501 #.  seccomp mode will cause SIGKILL.
3502 #.  .TP
3503 #.  .B EPERM
3504 #.  .I option
3505 #.  is
3506 #.  .BR PR_SET_SECCOMP ,
3507 #.  and secure computing mode is already 1.
3508 #. type: Plain text
3509 #: build/C/man2/prctl.2:960
3510 msgid ""
3511 "I<option> is B<PR_SET_MM>, and the caller does not have the "
3512 "B<CAP_SYS_RESOURCE> capability."
3513 msgstr ""
3514 "I<option> が B<PR_SET_MM> で、呼び出し元がケーパビリティ\n"
3515 "B<CAP_SYS_RESOURCE> を持っていない。"
3516
3517 #.  The library interface was added in glibc 2.0.6
3518 #. type: Plain text
3519 #: build/C/man2/prctl.2:965
3520 msgid "The B<prctl>()  system call was introduced in Linux 2.1.57."
3521 msgstr "B<prctl>()  システムコールは Linux 2.1.57 で導入された。"
3522
3523 #. type: Plain text
3524 #: build/C/man2/prctl.2:972
3525 msgid ""
3526 "This call is Linux-specific.  IRIX has a B<prctl>()  system call (also "
3527 "introduced in Linux 2.1.44 as irix_prctl on the MIPS architecture), with "
3528 "prototype"
3529 msgstr ""
3530 "このコールは Linux 特有である。 IRIX には B<prctl>()  システム・コールがある"
3531 "が (MIPS アーキテクチャにおいて irix_prctl として Linux 2.1.44 で同様に導入さ"
3532 "れた)、 そのプロトタイプは"
3533
3534 #. type: Plain text
3535 #: build/C/man2/prctl.2:974
3536 msgid "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3537 msgstr "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3538
3539 #. type: Plain text
3540 #: build/C/man2/prctl.2:979
3541 msgid ""
3542 "and options to get the maximum number of processes per user, get the maximum "
3543 "number of processors the calling process can use, find out whether a "
3544 "specified process is currently blocked, get or set the maximum stack size, "
3545 "and so on."
3546 msgstr ""
3547 "である。ユーザー当りのプロセス最大数を取得するオプション、 プロセスの使用でき"
3548 "る最大プロッサー数を取得するオプション、 現在特定のプロセスが停止(block)させ"
3549 "られているかどうか調べるオプション、 スタックサイズの最大値の取得や設定を行な"
3550 "うオプションなどがある。"
3551
3552 #. type: Plain text
3553 #: build/C/man2/prctl.2:982
3554 msgid "B<signal>(2), B<core>(5)"
3555 msgstr "B<signal>(2), B<core>(5)"
3556
3557 #. type: TH
3558 #: build/C/man3/profil.3:28
3559 #, no-wrap
3560 msgid "PROFIL"
3561 msgstr "PROFIL"
3562
3563 #. type: Plain text
3564 #: build/C/man3/profil.3:31
3565 msgid "profil - execution time profile"
3566 msgstr "profil - 実行時間プロファイル (profile)"
3567
3568 #. type: Plain text
3569 #: build/C/man3/profil.3:34
3570 #, no-wrap
3571 msgid "B<#include E<lt>unistd.hE<gt>>\n"
3572 msgstr "B<#include E<lt>unistd.hE<gt>>\n"
3573
3574 #. type: Plain text
3575 #: build/C/man3/profil.3:37
3576 #, no-wrap
3577 msgid ""
3578 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3579 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3580 msgstr ""
3581 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3582 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3583
3584 #. type: Plain text
3585 #: build/C/man3/profil.3:46
3586 msgid ""
3587 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3588 msgstr ""
3589 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3590
3591 #. type: Plain text
3592 #: build/C/man3/profil.3:68
3593 msgid ""
3594 "This routine provides a means to find out in what areas your program spends "
3595 "most of its time.  The argument I<buf> points to I<bufsiz> bytes of core.  "
3596 "Every virtual 10 milliseconds, the user's program counter (PC)  is examined: "
3597 "I<offset> is subtracted and the result is multiplied by I<scale> and divided "
3598 "by 65536.  If the resulting value is less than I<bufsiz>, then the "
3599 "corresponding entry in I<buf> is incremented.  If I<buf> is NULL, profiling "
3600 "is disabled."
3601 msgstr ""
3602 "このルーティンはプログラムのどこの部分で時間を費やしているかを調べる 手段を提"
3603 "供する。引き数 I<buf> は I<bufsiz> バイトのメモリを指している。仮想の 10 ミリ"
3604 "秒ごとに、ユーザーの プログラム・カウンター (PC) が検査される: I<offset> が引"
3605 "かれ、その結果が I<scale> 倍され 65536 で割られる。 結果が I<bufsiz> より小さ"
3606 "い場合は I<buf> の対応するエントリがインクリメントされる。 I<buf> が NULL な"
3607 "らば、プロファイル (profile) は無効にされる。"
3608
3609 #. type: Plain text
3610 #: build/C/man3/profil.3:70
3611 msgid "Zero is always returned."
3612 msgstr "常に 0 が返される。"
3613
3614 #. type: Plain text
3615 #: build/C/man3/profil.3:72
3616 msgid "Similar to a call in SVr4 (but not POSIX.1-2001)."
3617 msgstr "SVr4 のコールに似ている (しかし POSIX.1-2001 ではない)。"
3618
3619 #. type: Plain text
3620 #: build/C/man3/profil.3:78
3621 msgid ""
3622 "B<profil>()  cannot be used on a program that also uses B<ITIMER_PROF> "
3623 "interval timers (see B<setitimer>(2))."
3624 msgstr ""
3625 "B<profil>()  は B<ITIMER_PROF> インターバル・タイマーも使用しているプログラム"
3626 "では使用できない (B<setitimer>(2)  参照)。"
3627
3628 #. type: Plain text
3629 #: build/C/man3/profil.3:81
3630 msgid ""
3631 "True kernel profiling provides more accurate results.  Libc 4.4 contained a "
3632 "kernel patch providing a system call profil."
3633 msgstr ""
3634 "本当のカーネル・プロファイルはより正確な結果を与える。 libc 4.4 にはシステム"
3635 "コール profil を提供するための カーネルパッチが含まれていた。"
3636
3637 #. type: Plain text
3638 #: build/C/man3/profil.3:86
3639 msgid "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3640 msgstr "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3641
3642 #. type: TH
3643 #: build/C/man3/psignal.3:30
3644 #, no-wrap
3645 msgid "PSIGNAL"
3646 msgstr "PSIGNAL"
3647
3648 #. type: TH
3649 #: build/C/man3/psignal.3:30
3650 #, no-wrap
3651 msgid "2010-10-06"
3652 msgstr "2010-10-06"
3653
3654 #. type: TH
3655 #: build/C/man3/psignal.3:30 build/C/man3/raise.3:29
3656 #: build/C/man7/sigevent.7:26
3657 #, no-wrap
3658 msgid "GNU"
3659 msgstr "GNU"
3660
3661 #. type: Plain text
3662 #: build/C/man3/psignal.3:33
3663 msgid "psignal, psiginfo - print signal message"
3664 msgstr "psignal, psiginfo - シグナルメッセージを表示"
3665
3666 #. type: Plain text
3667 #: build/C/man3/psignal.3:39
3668 #, no-wrap
3669 msgid ""
3670 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3671 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3672 msgstr ""
3673 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3674 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3675
3676 #. type: Plain text
3677 #: build/C/man3/psignal.3:41
3678 #, no-wrap
3679 msgid "B<extern const char *const >I<sys_siglist>B<[];>\n"
3680 msgstr "B<extern const char *const >I<sys_siglist>B<[];>\n"
3681
3682 #. type: Plain text
3683 #: build/C/man3/psignal.3:50
3684 msgid "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3685 msgstr "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3686
3687 #. type: Plain text
3688 #: build/C/man3/psignal.3:53
3689 msgid ""
3690 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3691 "200809L"
3692 msgstr ""
3693 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3694 "200809L"
3695
3696 #. type: Plain text
3697 #: build/C/man3/psignal.3:56
3698 msgid "I<sys_siglist>: _BSD_SOURCE"
3699 msgstr "I<sys_siglist>: _BSD_SOURCE"
3700
3701 #. type: Plain text
3702 #: build/C/man3/psignal.3:65
3703 msgid ""
3704 "The B<psignal>()  function displays a message on I<stderr> consisting of the "
3705 "string I<s>, a colon, a space, a string describing the signal number I<sig>, "
3706 "and a trailing newline.  If the string I<s> is NULL or empty, the colon and "
3707 "space are omitted.  If I<sig> is invalid, the message displayed will "
3708 "indicate an unknown signal."
3709 msgstr ""
3710 "B<psignal>() 関数は、文字列 I<s>、コロン、スペース、\n"
3711 "シグナル番号 I<sig> を説明する文字列、終端の改行から\n"
3712 "構成されるメッセージを I<stderr> に表示する。\n"
3713 "文字列 I<s> が NULL か空の場合、コロンとスペースは省略される。\n"
3714 "I<sig> が不正ならば、表示される メッセージは未知のシグナルを示す。"
3715
3716 #. type: Plain text
3717 #: build/C/man3/psignal.3:86
3718 msgid ""
3719 "The B<psiginfo>()  function is like B<psignal>(), except that it displays "
3720 "information about the signal described by I<pinfo>, which should point to a "
3721 "valid I<siginfo_t> structure.  As well as the signal description, B<psiginfo>"
3722 "()  displays information about the origin of the signal, and other "
3723 "information relevant to the signal (e.g., the relevant memory address for "
3724 "hardware-generated signals, the child process ID for B<SIGCHLD>, and the "
3725 "user ID and process ID of the sender, for signals set using B<kill>(2)  or "
3726 "B<sigqueue>(3))."
3727 msgstr ""
3728 "B<psiginfo>() 関数は B<psignal>() と同じだが、 I<pinfo> に書かれたシグナルの"
3729 "情報を表示する点が異なる。 I<pinfo> は有効な I<siginfo_t> 構造体を指している"
3730 "必要がある。 B<psiginfo>() は、 シグナルの説明だけでなく、 シグナルの送信元や"
3731 "そのシグナルに関連するその他の情報も表示する (例えば、ハードウェアが発生した"
3732 "シグナルの関連メモリアドレス、 B<SIGCHLD> の子プロセス ID、 I<kill>(2) や "
3733 "B<sigqueue>(3) を使って送信されたシグナルの送信元プロセスのユーザ ID とプロセ"
3734 "ス ID など)。"
3735
3736 #. type: Plain text
3737 #: build/C/man3/psignal.3:89
3738 msgid ""
3739 "The array I<sys_siglist> holds the signal description strings indexed by "
3740 "signal number."
3741 msgstr ""
3742 "配列 I<sys_siglist> はシグナルを説明する文字列を保持しており、 配列へのアクセ"
3743 "スにはシグナル番号を添え字として用いる事ができる。"
3744
3745 #. type: Plain text
3746 #: build/C/man3/psignal.3:95
3747 msgid "The B<psignal>()  and B<psiginfo>()  functions return no value."
3748 msgstr "関数 B<psignal>() と B<psiginfo>() は、値を返さない。"
3749
3750 #. type: Plain text
3751 #: build/C/man3/psignal.3:99
3752 msgid "The B<psiginfo>()  function was added to glibc in version 2.10."
3753 msgstr "B<psiginfo>() 関数は glibc バージョン 2.10 で追加された。"
3754
3755 #. type: Plain text
3756 #: build/C/man3/psignal.3:101
3757 msgid "POSIX.1-2008, 4.3BSD."
3758 msgstr "POSIX.1-2008, 4.3BSD."
3759
3760 #. type: Plain text
3761 #: build/C/man3/psignal.3:105
3762 msgid "In glibc versions up to 2.12, B<psiginfo>()  had the following bugs:"
3763 msgstr ""
3764 "バージョン 2.12 までの glibc では B<psiginfo>() には以下のバグがあった。"
3765
3766 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12107
3767 #.  Reportedly now fixed; check glibc 2.13
3768 #. type: Plain text
3769 #: build/C/man3/psignal.3:109
3770 msgid "In some circumstances, a trailing newline is not printed."
3771 msgstr "特定の状況で、末尾の改行が出力されない。"
3772
3773 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12108
3774 #.  Reportedly now fixed; check glibc 2.13
3775 #. type: Plain text
3776 #: build/C/man3/psignal.3:113
3777 msgid "Additional details are not displayed for real-time signals."
3778 msgstr "リアルタイムシグナルの場合に、追加の詳細情報が表示されない。"
3779
3780 #. type: Plain text
3781 #: build/C/man3/psignal.3:118
3782 msgid "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
3783 msgstr "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
3784
3785 #. type: TH
3786 #: build/C/man3/raise.3:29
3787 #, no-wrap
3788 msgid "RAISE"
3789 msgstr "RAISE"
3790
3791 #. type: TH
3792 #: build/C/man3/raise.3:29
3793 #, no-wrap
3794 msgid "2012-04-20"
3795 msgstr "2012-04-20"
3796
3797 #. type: Plain text
3798 #: build/C/man3/raise.3:32
3799 msgid "raise - send a signal to the caller"
3800 msgstr "raise - 呼び出し元にシグナルを送る"
3801
3802 #. type: Plain text
3803 #: build/C/man3/raise.3:37
3804 #, no-wrap
3805 msgid "B<int raise(int >I<sig>B<);>\n"
3806 msgstr "B<int raise(int >I<sig>B<);>\n"
3807
3808 #. type: Plain text
3809 #: build/C/man3/raise.3:43
3810 msgid ""
3811 "The B<raise>()  function sends a signal to the calling process or thread.  "
3812 "In a single-threaded program it is equivalent to"
3813 msgstr ""
3814 "B<raise>()  関数は、呼び出し元のプロセスもしくはスレッドにシグナルを送る。 シ"
3815 "ングルスレッドのプログラムでは、以下と等価である。"
3816
3817 #. type: Plain text
3818 #: build/C/man3/raise.3:47
3819 #, no-wrap
3820 msgid "kill(getpid(), sig);\n"
3821 msgstr "kill(getpid(), sig);\n"
3822
3823 #. type: Plain text
3824 #: build/C/man3/raise.3:51
3825 msgid "In a multithreaded program it is equivalent to"
3826 msgstr "マルチスレッドのプログラムでは、以下と等価である。"
3827
3828 #. type: Plain text
3829 #: build/C/man3/raise.3:55
3830 #, no-wrap
3831 msgid "pthread_kill(pthread_self(), sig);\n"
3832 msgstr "pthread_kill(pthread_self(), sig);\n"
3833
3834 #. type: Plain text
3835 #: build/C/man3/raise.3:61
3836 msgid ""
3837 "If the signal causes a handler to be called, B<raise>()  will return only "
3838 "after the signal handler has returned."
3839 msgstr ""
3840 "シグナルに起因してシグナル・ハンドラが呼び出される場合には、 B<raise>()  が返"
3841 "るのは必ずシグナル・ハンドラが返った後になる。"
3842
3843 #. type: Plain text
3844 #: build/C/man3/raise.3:64
3845 msgid "B<raise>()  returns 0 on success, and nonzero for failure."
3846 msgstr "成功した場合は 0 を、失敗した場合は 0 以外の値を返す。"
3847
3848 #. type: Plain text
3849 #: build/C/man3/raise.3:66 build/C/man2/signal.2:112
3850 msgid "C89, C99, POSIX.1-2001."
3851 msgstr "C89, C99, POSIX.1-2001."
3852
3853 #.  2.3.2 used the obsolete tkill(), if available.
3854 #. type: Plain text
3855 #: build/C/man3/raise.3:77
3856 msgid ""
3857 "Since version 2.3.3, glibc implements B<raise>()  by calling B<tgkill>(2), "
3858 "if the kernel supports that system call.  Older glibc versions implemented "
3859 "B<raise>()  using B<kill>(2)."
3860 msgstr ""
3861 "glibc バージョン 2.3.3 以降では、カーネルが B<tgkill>(2) システムコール\n"
3862 "をサポートしている場合はB<raise>() は B<tgkill>(2) を使って実装されて\n"
3863 "いる。古いバージョンの glibc では、B<raise>() は B<kill>(2) を使って\n"
3864 "実装されている。"
3865
3866 #. type: Plain text
3867 #: build/C/man3/raise.3:84
3868 msgid ""
3869 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
3870 "B<signal>(7)"
3871 msgstr ""
3872 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
3873 "B<signal>(7)"
3874
3875 #. type: TH
3876 #: build/C/man2/restart_syscall.2:33
3877 #, no-wrap
3878 msgid "RESTART_SYSCALL"
3879 msgstr ""
3880
3881 #. type: TH
3882 #: build/C/man2/restart_syscall.2:33 build/C/man2/sigaction.2:47
3883 #: build/C/man7/signal.7:46 build/C/man2/sigreturn.2:29
3884 #, no-wrap
3885 msgid "2013-07-30"
3886 msgstr "2013-07-30"
3887
3888 #. type: Plain text
3889 #: build/C/man2/restart_syscall.2:36
3890 msgid ""
3891 "restart_syscall - restart a system call after interruption by a stop signal"
3892 msgstr ""
3893 "restart_syscall - 一時停止シグナルによる割り込み後にシステムコールを再開する"
3894
3895 #. type: Plain text
3896 #: build/C/man2/restart_syscall.2:38
3897 msgid "B<int restart_syscall(void);>"
3898 msgstr "B<int restart_syscall(void);>"
3899
3900 #. type: Plain text
3901 #: build/C/man2/restart_syscall.2:41
3902 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
3903 msgstr ""
3904 "I<注>: このシステムコールには、glibc のラッパー関数はない。「注意」の節を参"
3905 "照。"
3906
3907 #. type: Plain text
3908 #: build/C/man2/restart_syscall.2:53
3909 msgid ""
3910 "The B<restart_syscall>()  system call is used to restart certain system "
3911 "calls after a process that was stopped by a signal (e.g., B<SIGSTOP> or "
3912 "B<SIGTSTP>)  is later resumed after receiving a B<SIGCONT> signal.  This "
3913 "system call is designed only for internal use by the kernel."
3914 msgstr ""
3915
3916 #.  These system calls correspond to the special internal errno value
3917 #.  ERESTART_RESTARTBLOCK. Each of the system calls has a "restart"
3918 #.  helper function that is invoked by restart_syscall().
3919 #. type: Plain text
3920 #: build/C/man2/restart_syscall.2:84
3921 msgid ""
3922 "B<restart_syscall>()  is used for restarting only those system calls that, "
3923 "when restarted, should adjust their time-related parameters\\(emnamely "
3924 "B<poll>(2)  (since Linux 2.6.24), B<nanosleep>(2)  (since Linux 2.6), "
3925 "B<clock_nanosleep>(2)  (since Linux 2.6), and B<futex>(2), when employed "
3926 "with the B<FUTEX_WAIT> (since Linux 2.6.22)  and B<FUTEX_WAIT_BITSET> (since "
3927 "Linux 2.6.31)  operations.  B<restart_syscall>()  restarts the interrupted "
3928 "system call with a time argument that is suitably adjusted to account for "
3929 "the time that has already elapsed (including the time where the process was "
3930 "stopped by a signal).  Without the B<restart_syscall>()  mechanism, "
3931 "restarting these system calls would not correctly deduce the already elapsed "
3932 "time when the process continued execution."
3933 msgstr ""
3934
3935 #. type: Plain text
3936 #: build/C/man2/restart_syscall.2:88
3937 msgid ""
3938 "The return value of B<restart_syscall>()  is the return value of whatever "
3939 "system call is being restarted."
3940 msgstr ""
3941
3942 #. type: Plain text
3943 #: build/C/man2/restart_syscall.2:92
3944 msgid ""
3945 "I<errno> is set as per the errors for whatever system call is being "
3946 "restarted by B<restart_syscall>()."
3947 msgstr ""
3948
3949 #. type: Plain text
3950 #: build/C/man2/restart_syscall.2:96
3951 msgid "The B<restart_syscall>()  system call is present since Linux 2.6."
3952 msgstr "B<restart_syscall>() システムコールは Linux 2.6 以降に存在する。"
3953
3954 #. type: Plain text
3955 #: build/C/man2/restart_syscall.2:98
3956 msgid "This system call is Linux specific."
3957 msgstr "このシステムコールは Linux 固有である。"
3958
3959 #. type: Plain text
3960 #: build/C/man2/restart_syscall.2:102
3961 msgid ""
3962 "There is no glibc wrapper for this system call, because it is intended for "
3963 "use only by the kernel and should never be called by applications."
3964 msgstr ""
3965
3966 #
3967 #.  FIXME
3968 #.  There is one oddness in the implementation though, with respect to
3969 #.  nanosleep() (and probably also clock_nanosleep()). The scenario
3970 #.  is as follows:
3971 #.     1. Start a nanosleep() for (say) 30 seconds,
3972 #.     2. Stop the process with (say) SIGTSTP (^Z).
3973 #.     3. Resume the process with SIGCONT,
3974 #.     4. Upon return, the 'rem' argument of nanosleep() will contain the
3975 #.        remaining unslept time **at the time when SIGTSTP was delivered**.
3976 #.  The behavior at point 4 is odd, but doesn't violate the standards, which
3977 #.  specify the treatment of 'rem' only when the system call returns with
3978 #.  the error EINTR (i.e., the call was interrupted by a signal handler).
3979 #. type: Plain text
3980 #: build/C/man2/restart_syscall.2:123
3981 msgid ""
3982 "From user space, the operation of B<restart_syscall>(2)  is largely "
3983 "invisible: to the process that made the system call that is restarted, it "
3984 "appears as though that system call executed and returned in the usual "
3985 "fashion."
3986 msgstr ""
3987
3988 #.  FIXME select(2) should probably get the restart_syscall() treatment:
3989 #.      If a select() call is suspended by stop-sig+SIGCONT, the time
3990 #.      spent suspended is *not* deducted when the select() is restarted.
3991 #.  FIXME: check whether recvmmsg() handles stop-sig+SIGCONT properly.
3992 #. type: Plain text
3993 #: build/C/man2/restart_syscall.2:131
3994 msgid "B<sigreturn>(2), B<sigaction>(2), B<signal>(7)"
3995 msgstr "B<sigreturn>(2), B<sigaction>(2), B<signal>(7)"
3996
3997 #. type: TH
3998 #: build/C/man2/rt_sigqueueinfo.2:25
3999 #, no-wrap
4000 msgid "RT_SIGQUEUEINFO"
4001 msgstr "RT_SIGQUEUEINFO"
4002
4003 #. type: TH
4004 #: build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/sgetmask.2:26
4005 #: build/C/man2/tkill.2:29
4006 #, no-wrap
4007 msgid "2012-07-13"
4008 msgstr "2012-07-13"
4009
4010 #. type: Plain text
4011 #: build/C/man2/rt_sigqueueinfo.2:28
4012 msgid "rt_sigqueueinfo, rt_tgsigqueueinfo - queue a signal and data"
4013 msgstr ""
4014
4015 #. type: Plain text
4016 #: build/C/man2/rt_sigqueueinfo.2:31
4017 #, no-wrap
4018 msgid "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
4019 msgstr "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
4020
4021 #. type: Plain text
4022 #: build/C/man2/rt_sigqueueinfo.2:34
4023 #, no-wrap
4024 msgid ""
4025 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
4026 "B<                      siginfo_t *>I<uinfo>B<);>\n"
4027 msgstr ""
4028 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
4029 "B<                      siginfo_t *>I<uinfo>B<);>\n"
4030
4031 #. type: Plain text
4032 #: build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/sgetmask.2:36
4033 #: build/C/man2/tkill.2:41
4034 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
4035 msgstr ""
4036 "I<注>: これらのシステムコールには、glibc のラッパー関数はない。「注意」の節を"
4037 "参照。"
4038
4039 #. type: Plain text
4040 #: build/C/man2/rt_sigqueueinfo.2:50
4041 msgid ""
4042 "The B<rt_sigqueueinfo>()  and B<rt_tgsigqueueinfo>()  system calls are the "
4043 "low-level interfaces used to send a signal plus data to a process or "
4044 "thread.  The receiver of the signal can obtain the accompanying data by "
4045 "establishing a signal handler with the B<sigaction>(2)  B<SA_SIGINFO> flag."
4046 msgstr ""
4047
4048 #. type: Plain text
4049 #: build/C/man2/rt_sigqueueinfo.2:56
4050 msgid ""
4051 "These system calls are not intended for direct application use; they are "
4052 "provided to allow the implementation of B<sigqueue>(3)  and "
4053 "B<pthread_sigqueue>(3)."
4054 msgstr ""
4055
4056 #. type: Plain text
4057 #: build/C/man2/rt_sigqueueinfo.2:68
4058 msgid ""
4059 "The B<rt_sigqueueinfo>()  system call sends the signal I<sig> to the thread "
4060 "group with the ID I<tgid>.  (The term \"thread group\" is synonymous with "
4061 "\"process\", and I<tid> corresponds to the traditional UNIX process ID.)  "
4062 "The signal will be delivered to an arbitrary member of the thread group (i."
4063 "e., one of the threads that is not currently blocking the signal)."
4064 msgstr ""
4065
4066 #. type: Plain text
4067 #: build/C/man2/rt_sigqueueinfo.2:79
4068 msgid ""
4069 "The I<uinfo> argument specifies the data to accompany the signal.  This "
4070 "argument is a pointer to a structure of type I<siginfo_t>, described in "
4071 "B<sigaction>(2)  (and defined by including I<E<lt>sigaction.hE<gt>>).  The "
4072 "caller should set the following fields in this structure:"
4073 msgstr ""
4074
4075 #. type: TP
4076 #: build/C/man2/rt_sigqueueinfo.2:79 build/C/man7/sigevent.7:88
4077 #: build/C/man2/wait.2:316
4078 #, no-wrap
4079 msgid "I<si_code>"
4080 msgstr "I<si_code>"
4081
4082 #.  tkill(2) or
4083 #. type: Plain text
4084 #: build/C/man2/rt_sigqueueinfo.2:95
4085 msgid ""
4086 "This must be one of the B<SI_*> codes in the Linux kernel source file "
4087 "I<include/asm-generic/siginfo.h>, with the restriction that the code must be "
4088 "negative (i.e., cannot be B<SI_USER>, which is used by the kernel to "
4089 "indicate a signal sent by B<kill>(2))  and cannot (since Linux 2.6.39) be "
4090 "B<SI_TKILL> (which is used by the kernel to indicate a signal sent using "
4091 "B<tgkill>(2))."
4092 msgstr ""
4093
4094 #. type: TP
4095 #: build/C/man2/rt_sigqueueinfo.2:95 build/C/man2/wait.2:295
4096 #, no-wrap
4097 msgid "I<si_pid>"
4098 msgstr "I<si_pid>"
4099
4100 #. type: Plain text
4101 #: build/C/man2/rt_sigqueueinfo.2:99
4102 msgid ""
4103 "This should be set to a process ID, typically the process ID of the sender."
4104 msgstr ""
4105
4106 #. type: TP
4107 #: build/C/man2/rt_sigqueueinfo.2:99 build/C/man2/wait.2:298
4108 #, no-wrap
4109 msgid "I<si_uid>"
4110 msgstr "I<si_uid>"
4111
4112 #. type: Plain text
4113 #: build/C/man2/rt_sigqueueinfo.2:103
4114 msgid ""
4115 "This should be set to a user ID, typically the real user ID of the sender."
4116 msgstr ""
4117
4118 #. type: TP
4119 #: build/C/man2/rt_sigqueueinfo.2:103 build/C/man7/sigevent.7:96
4120 #, no-wrap
4121 msgid "I<si_value>"
4122 msgstr "I<si_value>"
4123
4124 #. type: Plain text
4125 #: build/C/man2/rt_sigqueueinfo.2:110
4126 msgid ""
4127 "This field contains the user data to accompany the signal.  For more "
4128 "information, see the description of the last (I<union sigval>)  argument of "
4129 "B<sigqueue>(3)."
4130 msgstr ""
4131
4132 #. type: Plain text
4133 #: build/C/man2/rt_sigqueueinfo.2:117
4134 msgid ""
4135 "Internally, the kernel sets the I<si_signo> field to the value specified in "
4136 "I<sig>, so that the receiver of the signal can also obtain the signal number "
4137 "via that field."
4138 msgstr ""
4139
4140 #. type: Plain text
4141 #: build/C/man2/rt_sigqueueinfo.2:129
4142 msgid ""
4143 "The B<rt_tgsigqueueinfo>()  system call is like B<rt_sigqueueinfo>(), but "
4144 "sends the signal and data to the single thread specified by the combination "
4145 "of I<tgid>, a thread group ID, and I<tid>, a thread in that thread group."
4146 msgstr ""
4147
4148 #. type: Plain text
4149 #: build/C/man2/rt_sigqueueinfo.2:134
4150 msgid ""
4151 "On success, these system calls return 0.  On error, they return -1 and "
4152 "I<errno> is set to indicate the error."
4153 msgstr ""
4154
4155 #. type: TP
4156 #: build/C/man2/rt_sigqueueinfo.2:135 build/C/man3/sigqueue.3:92
4157 #: build/C/man2/sigwaitinfo.2:115 build/C/man2/timer_create.2:176
4158 #, no-wrap
4159 msgid "B<EAGAIN>"
4160 msgstr "B<EAGAIN>"
4161
4162 #. type: Plain text
4163 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man3/sigqueue.3:98
4164 msgid ""
4165 "The limit of signals which may be queued has been reached.  (See B<signal>"
4166 "(7)  for further information.)"
4167 msgstr ""
4168 "待ち行列に入れられるシグナルの最大数に達した (より詳しい情報は B<signal>(7)  "
4169 "を参照すること)。"
4170
4171 #. type: Plain text
4172 #: build/C/man2/rt_sigqueueinfo.2:148
4173 msgid "I<sig>, I<tgid>, or I<tid> was invalid."
4174 msgstr ""
4175
4176 #. type: Plain text
4177 #: build/C/man2/rt_sigqueueinfo.2:156
4178 msgid ""
4179 "The caller does not have permission to send the signal to the target.  For "
4180 "the required permissions, see B<kill>(2).  Or: I<uinfo-E<gt>si_code> is "
4181 "invalid."
4182 msgstr ""
4183
4184 #. type: Plain text
4185 #: build/C/man2/rt_sigqueueinfo.2:162
4186 msgid "B<rt_sigqueueinfo>(): No thread group matching I<tgid> was found."
4187 msgstr ""
4188
4189 #. type: Plain text
4190 #: build/C/man2/rt_sigqueueinfo.2:169
4191 msgid "B<rt_tgsigqueinfo>(): No thread matching I<tgid> and I<tid> was found."
4192 msgstr ""
4193
4194 #. type: Plain text
4195 #: build/C/man2/rt_sigqueueinfo.2:176
4196 msgid ""
4197 "The B<rt_sigqueueinfo>()  system call was added to Linux in version 2.2.  "
4198 "The B<rt_tgsigqueueinfo>()  system call was added to Linux in version 2.6.31."
4199 msgstr ""
4200
4201 #. type: Plain text
4202 #: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/sgetmask.2:68
4203 #: build/C/man2/timerfd_create.2:373
4204 msgid "These system calls are Linux-specific."
4205 msgstr "これらのシステムコールは Linux 固有である。"
4206
4207 #. type: Plain text
4208 #: build/C/man2/rt_sigqueueinfo.2:183
4209 msgid ""
4210 "Since these system calls are not intended for application use, there are no "
4211 "glibc wrapper functions; use B<syscall>(2)  in the unlikely case that you "
4212 "want to call them directly."
4213 msgstr ""
4214 "これらのシステムコールはアプリケーションでの使用を目的として用意されたわけで"
4215 "はないので、 glibc のラッパー関数は存在しない。おそらくないと思うが、このシス"
4216 "テムコールを直接呼び出したい場合は B<syscall>(2) を使うこと。"
4217
4218 #. type: Plain text
4219 #: build/C/man2/rt_sigqueueinfo.2:188
4220 msgid ""
4221 "As with B<kill>(2), the null signal (0) can be used to check if the "
4222 "specified process or thread exists."
4223 msgstr ""
4224
4225 #. type: Plain text
4226 #: build/C/man2/rt_sigqueueinfo.2:196
4227 msgid ""
4228 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4229 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4230 msgstr ""
4231 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4232 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4233
4234 #. type: TH
4235 #: build/C/man2/s390_runtime_instr.2:25
4236 #, no-wrap
4237 msgid "S390_RUNTIME_INSTR"
4238 msgstr ""
4239
4240 #. type: TH
4241 #: build/C/man2/s390_runtime_instr.2:25
4242 #, no-wrap
4243 msgid "2012-12-17"
4244 msgstr "2012-12-17"
4245
4246 #. type: Plain text
4247 #: build/C/man2/s390_runtime_instr.2:28
4248 msgid "s390_runtime_instr - enable/disable s390 CPU run-time instrumentation"
4249 msgstr ""
4250
4251 #. type: Plain text
4252 #: build/C/man2/s390_runtime_instr.2:31
4253 #, no-wrap
4254 msgid "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4255 msgstr "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4256
4257 #. type: Plain text
4258 #: build/C/man2/s390_runtime_instr.2:33
4259 #, no-wrap
4260 msgid "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4261 msgstr "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4262
4263 #. type: Plain text
4264 #: build/C/man2/s390_runtime_instr.2:39
4265 msgid ""
4266 "The B<s390_runtime_instr>()  system call starts or stops CPU run-time "
4267 "instrumentation for the calling thread."
4268 msgstr ""
4269
4270 #. type: Plain text
4271 #: build/C/man2/s390_runtime_instr.2:47
4272 msgid ""
4273 "The I<command> argument controls whether run-time instrumentation is started "
4274 "(B<S390_RUNTIME_INSTR_START>, 1) or stopped (B<S390_RUNTIME_INSTR_STOP>, 2) "
4275 "for the calling thread."
4276 msgstr ""
4277
4278 #. type: Plain text
4279 #: build/C/man2/s390_runtime_instr.2:54
4280 msgid ""
4281 "The I<signum> argument specifies the number of a real-time signal.  The real-"
4282 "time signal is sent to the thread if the run-time instrumentation buffer is "
4283 "full or if the run-time-instrumentation-halted interrupt occurred."
4284 msgstr ""
4285
4286 #. type: Plain text
4287 #: build/C/man2/s390_runtime_instr.2:65
4288 msgid ""
4289 "On success, B<s390_runtime_instr>()  returns 0 and enables the thread for "
4290 "run-time instrumentation by assigning the thread a default run-time "
4291 "instrumentation control block.  The caller can then read and modify the "
4292 "control block and start the run-time instrumentation.  On error, -1 is "
4293 "returned and I<errno> is set to one of the error codes listed below."
4294 msgstr ""
4295
4296 #. type: Plain text
4297 #: build/C/man2/s390_runtime_instr.2:73
4298 msgid ""
4299 "The value specified in I<command> is not a valid command or the value "
4300 "specified in I<signum> is not a real-time signal number."
4301 msgstr ""
4302
4303 #. type: Plain text
4304 #: build/C/man2/s390_runtime_instr.2:76
4305 msgid ""
4306 "Allocating memory for the run-time instrumentation control block failed."
4307 msgstr ""
4308
4309 #. type: TP
4310 #: build/C/man2/s390_runtime_instr.2:76
4311 #, no-wrap
4312 msgid "B<EOPNOTSUPP>"
4313 msgstr ""
4314
4315 #. type: Plain text
4316 #: build/C/man2/s390_runtime_instr.2:79
4317 msgid "The run-time instrumentation facility is not available."
4318 msgstr ""
4319
4320 #. type: Plain text
4321 #: build/C/man2/s390_runtime_instr.2:81
4322 msgid "This system call is available since Linux 3.7."
4323 msgstr "このシステムコールは Linux 3.7 で初めて登場した。"
4324
4325 #. type: Plain text
4326 #: build/C/man2/s390_runtime_instr.2:84
4327 msgid ""
4328 "This Linux-specific system call is available only on the s390 architecture.  "
4329 "The run-time instrumentation facility is available beginning with System z "
4330 "EC12."
4331 msgstr ""
4332
4333 #. type: Plain text
4334 #: build/C/man2/s390_runtime_instr.2:88
4335 msgid ""
4336 "Glibc does not provide a wrapper for this system call, use B<syscall>(2)  to "
4337 "call it."
4338 msgstr ""
4339 "glibc はこのシステムコールに対するラッパー関数を提供していない。 B<syscall>"
4340 "(2) を使用すること。"
4341
4342 #. type: Plain text
4343 #: build/C/man2/s390_runtime_instr.2:91
4344 msgid "B<syscall>(2), B<signal>(7)"
4345 msgstr "B<syscall>(2), B<signal>(7)"
4346
4347 #. type: TH
4348 #: build/C/man2/sgetmask.2:26
4349 #, no-wrap
4350 msgid "SGETMASK"
4351 msgstr "SGETMASK"
4352
4353 #. type: Plain text
4354 #: build/C/man2/sgetmask.2:29
4355 msgid "sgetmask, ssetmask - manipulation of signal mask (obsolete)"
4356 msgstr "sgetmask, ssetmask - シグナルマスクの操作 (廃止予定)"
4357
4358 #. type: Plain text
4359 #: build/C/man2/sgetmask.2:31
4360 msgid "B<long sgetmask(void);>"
4361 msgstr "B<long sgetmask(void);>"
4362
4363 #. type: Plain text
4364 #: build/C/man2/sgetmask.2:33
4365 msgid "B<long ssetmask(long >I<newmask>B<);>"
4366 msgstr "B<long ssetmask(long >I<newmask>B<);>"
4367
4368 #. type: Plain text
4369 #: build/C/man2/sgetmask.2:42
4370 msgid ""
4371 "These system calls are obsolete.  I<Do not use them>; use B<sigprocmask>(2)  "
4372 "instead."
4373 msgstr ""
4374 "これらのシステムコールは廃止予定であり、 「使用しないこと」。 代わりに "
4375 "B<sigprocmask>(2)  を使用すること。"
4376
4377 #. type: Plain text
4378 #: build/C/man2/sgetmask.2:45
4379 msgid "B<sgetmask>()  returns the signal mask of the calling process."
4380 msgstr "B<sgetmask>()  は、呼び出し元プロセスのシグナルマスクを返す。"
4381
4382 #. type: Plain text
4383 #: build/C/man2/sgetmask.2:50
4384 msgid ""
4385 "B<ssetmask>()  sets the signal mask of the calling process to the value "
4386 "given in I<newmask>.  The previous signal mask is returned."
4387 msgstr ""
4388 "B<ssetmask>()  は、呼び出し元プロセスのシグナルマスクを I<newmask> で指定され"
4389 "た値に設定し、変更前のシグナルマスクを返す。"
4390
4391 #. type: Plain text
4392 #: build/C/man2/sgetmask.2:59
4393 msgid ""
4394 "The signal masks dealt with by these two system calls are plain bit masks "
4395 "(unlike the I<sigset_t> used by B<sigprocmask>(2)); use B<sigmask>(3)  to "
4396 "create and inspect these masks."
4397 msgstr ""
4398 "これら二つのシステムコールが扱うシグナルマスクは、 単純なビットマスクである "
4399 "(この点が B<sigprocmask>(2)  で使用される I<sigset_t> と異なる)。 これらのマ"
4400 "スクを作成したり検査するには B<sigmask>(3)  を使用すること。"
4401
4402 #. type: Plain text
4403 #: build/C/man2/sgetmask.2:64
4404 msgid ""
4405 "B<sgetmask>()  always successfully returns the signal mask.  B<ssetmask>()  "
4406 "always succeeds, and returns the previous signal mask."
4407 msgstr ""
4408 "B<sgetmask>()  は常に成功し、シグナルマスクを返す。 B<ssetmask>()  は常に成功"
4409 "し、直前のシグナルマスクを返す。"
4410
4411 #. type: Plain text
4412 #: build/C/man2/sgetmask.2:66
4413 msgid "These system calls always succeed."
4414 msgstr "これらのシステムコールは常に成功する。"
4415
4416 #. type: Plain text
4417 #: build/C/man2/sgetmask.2:72
4418 msgid ""
4419 "Glibc does not provide wrappers for these obsolete system calls; in the "
4420 "unlikely event that you want to call them, use B<syscall>(2)."
4421 msgstr ""
4422 "glibc はこれらの古いシステムコールに対するラッパー関数を提供していない。\n"
4423 "あまりないと思うが、これらを呼び出したい場合には B<syscall>(2) を使うこと。"
4424
4425 #. type: Plain text
4426 #: build/C/man2/sgetmask.2:75
4427 msgid ""
4428 "These system calls are unaware of signal numbers greater than 31 (i.e., real-"
4429 "time signals)."
4430 msgstr ""
4431 "これらのシステムコールは、 31 より大きいシグナル番号 (つまり、リアルタイムシ"
4432 "グナル) を扱えない。"
4433
4434 #. type: Plain text
4435 #: build/C/man2/sgetmask.2:80
4436 msgid "It is not possible to block B<SIGSTOP> or B<SIGKILL>."
4437 msgstr "B<SIGSTOP> や B<SIGKILL> をブロックすることはできない。"
4438
4439 #. type: Plain text
4440 #: build/C/man2/sgetmask.2:83
4441 msgid "B<sigprocmask>(2), B<signal>(7)"
4442 msgstr "B<sigprocmask>(2), B<signal>(7)"
4443
4444 #. type: TH
4445 #: build/C/man2/sigaction.2:47
4446 #, no-wrap
4447 msgid "SIGACTION"
4448 msgstr "SIGACTION"
4449
4450 #. type: Plain text
4451 #: build/C/man2/sigaction.2:50
4452 msgid "sigaction - examine and change a signal action"
4453 msgstr "sigaction - シグナルの動作の確認と変更"
4454
4455 #. type: Plain text
4456 #: build/C/man2/sigaction.2:56
4457 #, no-wrap
4458 msgid ""
4459 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4460 "B<              struct sigaction *>I<oldact>B<);>\n"
4461 msgstr ""
4462 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4463 "B<              struct sigaction *>I<oldact>B<);>\n"
4464
4465 #. type: Plain text
4466 #: build/C/man2/sigaction.2:66
4467 msgid ""
4468 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4469 "_POSIX_SOURCE"
4470 msgstr ""
4471 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4472 "_POSIX_SOURCE"
4473
4474 #. type: Plain text
4475 #: build/C/man2/sigaction.2:69
4476 msgid "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4477 msgstr "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4478
4479 #. type: Plain text
4480 #: build/C/man2/sigaction.2:78
4481 msgid ""
4482 "The B<sigaction>()  system call is used to change the action taken by a "
4483 "process on receipt of a specific signal.  (See B<signal>(7)  for an overview "
4484 "of signals.)"
4485 msgstr ""
4486 "B<sigaction>()  システムコールは、特定のシグナルを受信した際の プロセスの動作"
4487 "を変更するのに使用される (シグナルの概要については B<signal>(7)  を参照)。"
4488
4489 #. type: Plain text
4490 #: build/C/man2/sigaction.2:84
4491 msgid ""
4492 "I<signum> specifies the signal and can be any valid signal except B<SIGKILL> "
4493 "and B<SIGSTOP>."
4494 msgstr ""
4495 "I<signum> には、 B<SIGKILL> と B<SIGSTOP> 以外の有効なシグナルをどれでも指定"
4496 "できる。"
4497
4498 #. type: Plain text
4499 #: build/C/man2/sigaction.2:95
4500 msgid ""
4501 "If I<act> is non-NULL, the new action for signal I<signum> is installed from "
4502 "I<act>.  If I<oldact> is non-NULL, the previous action is saved in I<oldact>."
4503 msgstr ""
4504 "I<act> が NULL 以外であれば、シグナル I<signum> の新しい動作 (action) として "
4505 "I<act> が設定される。 I<oldact> が NULL でなければ、今までの動作が I<oldact> "
4506 "に格納される。"
4507
4508 #. type: Plain text
4509 #: build/C/man2/sigaction.2:99
4510 msgid "The I<sigaction> structure is defined as something like:"
4511 msgstr "I<sigaction> 構造体は以下のような感じに定義される。"
4512
4513 #. type: Plain text
4514 #: build/C/man2/sigaction.2:109
4515 #, no-wrap
4516 msgid ""
4517 "struct sigaction {\n"
4518 "    void     (*sa_handler)(int);\n"
4519 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4520 "    sigset_t   sa_mask;\n"
4521 "    int        sa_flags;\n"
4522 "    void     (*sa_restorer)(void);\n"
4523 "};\n"
4524 msgstr ""
4525 "struct sigaction {\n"
4526 "    void     (*sa_handler)(int);\n"
4527 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4528 "    sigset_t   sa_mask;\n"
4529 "    int        sa_flags;\n"
4530 "    void     (*sa_restorer)(void);\n"
4531 "};\n"
4532
4533 #. type: Plain text
4534 #: build/C/man2/sigaction.2:116
4535 msgid ""
4536 "On some architectures a union is involved: do not assign to both "
4537 "I<sa_handler> and I<sa_sigaction>."
4538 msgstr ""
4539 "アーキテクチャによっては共用体 (union) が用いられており、その場合には "
4540 "I<sa_handler> と I<sa_sigaction> の両方を同時に割り当てることはできない。"
4541
4542 #. type: Plain text
4543 #: build/C/man2/sigaction.2:123
4544 msgid ""
4545 "The I<sa_restorer> element is obsolete and should not be used.  POSIX does "
4546 "not specify a I<sa_restorer> element."
4547 msgstr ""
4548 "I<sa_restorer> 要素は廃止予定であり使用すべきではない。 POSIX には "
4549 "I<sa_restorer> 要素に関する規定はない。"
4550
4551 #. type: Plain text
4552 #: build/C/man2/sigaction.2:133
4553 msgid ""
4554 "I<sa_handler> specifies the action to be associated with I<signum> and may "
4555 "be B<SIG_DFL> for the default action, B<SIG_IGN> to ignore this signal, or a "
4556 "pointer to a signal handling function.  This function receives the signal "
4557 "number as its only argument."
4558 msgstr ""
4559 "I<sa_handler> は I<signum> に対応する動作を指定するもので、 デフォルトの動作"
4560 "を行う B<SIG_DFL>、 そのシグナルを無視する B<SIG_IGN>、 シグナルハンドラ関数"
4561 "へのポインタが設定できる。 シグナルハンドラ関数の引き数は一つであり、シグナル"
4562 "番号が引き数として 渡される。"
4563
4564 #. type: Plain text
4565 #: build/C/man2/sigaction.2:155
4566 msgid ""
4567 "If B<SA_SIGINFO> is specified in I<sa_flags>, then I<sa_sigaction> (instead "
4568 "of I<sa_handler>)  specifies the signal-handling function for I<signum>.  "
4569 "This function receives the signal number as its first argument, a pointer to "
4570 "a I<siginfo_t> as its second argument and a pointer to a I<ucontext_t> (cast "
4571 "to I<void\\ *>) as its third argument.  (Commonly, the handler function "
4572 "doesn't make any use of the third argument.  See B<getcontext>(3)  for "
4573 "further information about I<ucontext_t>.)"
4574 msgstr ""
4575 "I<sa_flags> に B<SA_SIGINFO> が指定された場合、 (I<sa_handler> ではなく)\n"
4576 "I<sa_sigaction> により I<signum> に対応するシグナルハンドラ関数が指定さ\n"
4577 "れる。指定される関数は、最初の引き数としてシグナル番号を、二番目の引き\n"
4578 "数として I<siginfo_t> へのポインタを、三番目の引き数として (I<void\\ *>\n"
4579 "にキャストした) I<ucontext_t> へのポインタを受けとる。 (一般的には、\n"
4580 "ハンドラ関数の三番目の引き数が使用されない。I<ucontext_t> についての\n"
4581 "詳しい情報は B<getcontext>(3) を参照。)"
4582
4583 #. type: Plain text
4584 #: build/C/man2/sigaction.2:165
4585 msgid ""
4586 "I<sa_mask> specifies a mask of signals which should be blocked (i.e., added "
4587 "to the signal mask of the thread in which the signal handler is invoked)  "
4588 "during execution of the signal handler.  In addition, the signal which "
4589 "triggered the handler will be blocked, unless the B<SA_NODEFER> flag is used."
4590 msgstr ""
4591 "I<sa_mask> は、シグナル・ハンドラ実行中に禁止 (block) すべきシグナルのマスク"
4592 "を指定する (ハンドラ実行中のシグナルの禁止は、シグナル・ハンドラが起動された"
4593 "スレッド のシグナルのマスクに追加することで行われる)。 さらに、 "
4594 "B<SA_NODEFER> フラグが指定されていない場合は、ハンドラを起動するきっかけとな"
4595 "る シグナルにも I<sa_mask> が適用される。"
4596
4597 #. type: Plain text
4598 #: build/C/man2/sigaction.2:169
4599 msgid ""
4600 "I<sa_flags> specifies a set of flags which modify the behavior of the "
4601 "signal.  It is formed by the bitwise OR of zero or more of the following:"
4602 msgstr ""
4603 "I<sa_flags> はシグナル・ハンドラの動作を変更するためのフラグの集合を指定す"
4604 "る。 I<sa_flags> には、以下に示すフラグの (0 個以上の) 論理和をとったものを指"
4605 "定する。"
4606
4607 #. type: TP
4608 #: build/C/man2/sigaction.2:170
4609 #, no-wrap
4610 msgid "B<SA_NOCLDSTOP>"
4611 msgstr "B<SA_NOCLDSTOP>"
4612
4613 #. type: Plain text
4614 #: build/C/man2/sigaction.2:187
4615 msgid ""
4616 "If I<signum> is B<SIGCHLD>, do not receive notification when child processes "
4617 "stop (i.e., when they receive one of B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN> or "
4618 "B<SIGTTOU>)  or resume (i.e., they receive B<SIGCONT>)  (see B<wait>(2)).  "
4619 "This flag is meaningful only when establishing a handler for B<SIGCHLD>."
4620 msgstr ""
4621 "I<signum> が B<SIGCHLD> の場合、 子プロセスが停止したり (子プロセスが "
4622 "B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, B<SIGTTOU> を受けたとき) 再開したり (子プ"
4623 "ロセスが B<SIGCONT> を受けたとき) したときに B<SIGCHLD> の通知を受けない。 こ"
4624 "のフラグは、 B<SIGCHLD> に対してハンドラを設定する際にのみ意味を持つ。"
4625
4626 #. type: TP
4627 #: build/C/man2/sigaction.2:187
4628 #, no-wrap
4629 msgid "B<SA_NOCLDWAIT> (since Linux 2.6)"
4630 msgstr "B<SA_NOCLDWAIT> (Linux 2.6 以降)"
4631
4632 #.  To be precise: Linux 2.5.60 -- MTK
4633 #. type: Plain text
4634 #: build/C/man2/sigaction.2:201
4635 msgid ""
4636 "If I<signum> is B<SIGCHLD>, do not transform children into zombies when they "
4637 "terminate.  See also B<waitpid>(2).  This flag is meaningful only when "
4638 "establishing a handler for B<SIGCHLD>, or when setting that signal's "
4639 "disposition to B<SIG_DFL>."
4640 msgstr ""
4641 "(Linux 2.6 以降)  I<signum> が B<SIGCHLD> の場合、子プロセスが終了したときに "
4642 "子プロセスをゾンビプロセスに変化させない (B<waitpid>(2)  も参照)。 このフラグ"
4643 "は、 B<SIGCHLD> に対してハンドラを設定する際、もしくはそのシグナルの処理方法"
4644 "を B<SIG_DFL> に設定する際にのみ意味を持つ。"
4645
4646 #. type: Plain text
4647 #: build/C/man2/sigaction.2:213
4648 msgid ""
4649 "If the B<SA_NOCLDWAIT> flag is set when establishing a handler for "
4650 "B<SIGCHLD>, POSIX.1 leaves it unspecified whether a B<SIGCHLD> signal is "
4651 "generated when a child process terminates.  On Linux, a B<SIGCHLD> signal is "
4652 "generated in this case; on some other implementations, it is not."
4653 msgstr ""
4654 "B<SIGCHLD> に対してハンドラを設定する際に B<SA_NOCLDWAIT> フラグをセットした"
4655 "場合、 子プロセスが終了した際に B<SIGCHLD> シグナルが生成されるかどうかは、 "
4656 "POSIX.1 では規定されていない。 Linux では、この状況で B<SIGCHLD> シグナルは生"
4657 "成される。 いくつかの他の実装では生成されない。"
4658
4659 #. type: TP
4660 #: build/C/man2/sigaction.2:213
4661 #, no-wrap
4662 msgid "B<SA_NODEFER>"
4663 msgstr "B<SA_NODEFER>"
4664
4665 #. type: Plain text
4666 #: build/C/man2/sigaction.2:220
4667 msgid ""
4668 "Do not prevent the signal from being received from within its own signal "
4669 "handler.  This flag is meaningful only when establishing a signal handler.  "
4670 "B<SA_NOMASK> is an obsolete, nonstandard synonym for this flag."
4671 msgstr ""
4672 "それ自身のシグナル・ハンドラーの内部にいる時でも そのシグナルをマスクしないよ"
4673 "うにする。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 "
4674 "B<SA_NOMASK> はこのフラグと同じ意味だが、廃止されており、非標準である。"
4675
4676 #. type: TP
4677 #: build/C/man2/sigaction.2:220
4678 #, no-wrap
4679 msgid "B<SA_ONSTACK>"
4680 msgstr "B<SA_ONSTACK>"
4681
4682 #. type: Plain text
4683 #: build/C/man2/sigaction.2:226
4684 msgid ""
4685 "Call the signal handler on an alternate signal stack provided by "
4686 "B<sigaltstack>(2).  If an alternate stack is not available, the default "
4687 "stack will be used.  This flag is meaningful only when establishing a signal "
4688 "handler."
4689 msgstr ""
4690 "B<sigaltstack>(2)  で提供される別のシグナル・スタックでシグナルハンドラを呼び"
4691 "出す。 別のシグナル・スタックが利用可能でなければ、デフォルトのスタックが 使"
4692 "用される。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。"
4693
4694 #. type: TP
4695 #: build/C/man2/sigaction.2:226
4696 #, no-wrap
4697 msgid "B<SA_RESETHAND>"
4698 msgstr "B<SA_RESETHAND>"
4699
4700 #. type: Plain text
4701 #: build/C/man2/sigaction.2:232
4702 msgid ""
4703 "Restore the signal action to the default upon entry to the signal handler.  "
4704 "This flag is meaningful only when establishing a signal handler.  "
4705 "B<SA_ONESHOT> is an obsolete, nonstandard synonym for this flag."
4706 msgstr ""
4707 "シグナルハンドラを設定する際に、シグナルの動作をデフォルトに戻す。 このフラグ"
4708 "はシグナルハンドラを設定する際にのみ意味を持つ。 B<SA_ONESHOT> はこのフラグと"
4709 "同じ意味だが、廃止されており、非標準である。"
4710
4711 #. type: TP
4712 #: build/C/man2/sigaction.2:232
4713 #, no-wrap
4714 msgid "B<SA_RESTART>"
4715 msgstr "B<SA_RESTART>"
4716
4717 #. type: Plain text
4718 #: build/C/man2/sigaction.2:240
4719 msgid ""
4720 "Provide behavior compatible with BSD signal semantics by making certain "
4721 "system calls restartable across signals.  This flag is meaningful only when "
4722 "establishing a signal handler.  See B<signal>(7)  for a discussion of system "
4723 "call restarting."
4724 msgstr ""
4725 "いくつかのシステムコールをシグナルの通知の前後で再開できるようにして、 BSD シ"
4726 "グナル方式 (semantics) と互換性のある動作を提供する。 このフラグはシグナルハ"
4727 "ンドラを設定する際にのみ意味を持つ。 B<signal>(7)  に書かれているシステムコー"
4728 "ルの再開に関する議論を参照のこと。"
4729
4730 #. type: TP
4731 #: build/C/man2/sigaction.2:240
4732 #, no-wrap
4733 msgid "B<SA_SIGINFO> (since Linux 2.2)"
4734 msgstr "B<SA_SIGINFO> (Linux 2.2 以降)"
4735
4736 #.  (The
4737 #.  .I sa_sigaction
4738 #.  field was added in Linux 2.1.86.)
4739 #. type: Plain text
4740 #: build/C/man2/sigaction.2:251
4741 msgid ""
4742 "The signal handler takes three arguments, not one.  In this case, "
4743 "I<sa_sigaction> should be set instead of I<sa_handler>.  This flag is "
4744 "meaningful only when establishing a signal handler."
4745 msgstr ""
4746 "シグナルハンドラは一つではなく、三つの引き数を持つ。この場合は I<sa_handler> "
4747 "のかわりに I<sa_sigaction> を設定しなければならない このフラグはシグナルハン"
4748 "ドラを設定する際にのみ意味を持つ。"
4749
4750 #. type: Plain text
4751 #: build/C/man2/sigaction.2:258
4752 msgid ""
4753 "The I<siginfo_t> argument to I<sa_sigaction> is a struct with the following "
4754 "elements:"
4755 msgstr ""
4756 "I<sa_sigaction> のパラメータ I<siginfo_t> は以下の要素を持つ構造体である:"
4757
4758 #.  FIXME
4759 #.  si_trapno seems to be only used on SPARC and Alpha;
4760 #.  this page could use a little more detail on its purpose there.
4761 #.  In the kernel: si_tid
4762 #. type: Plain text
4763 #: build/C/man2/sigaction.2:289
4764 #, no-wrap
4765 msgid ""
4766 "siginfo_t {\n"
4767 "    int      si_signo;    /* Signal number */\n"
4768 "    int      si_errno;    /* An errno value */\n"
4769 "    int      si_code;     /* Signal code */\n"
4770 "    int      si_trapno;   /* Trap number that caused\n"
4771 "                             hardware-generated signal\n"
4772 "                             (unused on most architectures) */\n"
4773 "    pid_t    si_pid;      /* Sending process ID */\n"
4774 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
4775 "    int      si_status;   /* Exit value or signal */\n"
4776 "    clock_t  si_utime;    /* User time consumed */\n"
4777 "    clock_t  si_stime;    /* System time consumed */\n"
4778 "    sigval_t si_value;    /* Signal value */\n"
4779 "    int      si_int;      /* POSIX.1b signal */\n"
4780 "    void    *si_ptr;      /* POSIX.1b signal */\n"
4781 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
4782 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
4783 "    void    *si_addr;     /* Memory location which caused fault */\n"
4784 "    long     si_band;     /* Band event (was I<int> in\n"
4785 "                             glibc 2.3.2 and earlier) */\n"
4786 "    int      si_fd;       /* File descriptor */\n"
4787 "    short    si_addr_lsb; /* Least significant bit of address\n"
4788 "                             (since Linux 2.6.32) */\n"
4789 "}\n"
4790 msgstr ""
4791 "siginfo_t {\n"
4792 "    int      si_signo;    /* Signal number */\n"
4793 "    int      si_errno;    /* An errno value */\n"
4794 "    int      si_code;     /* Signal code */\n"
4795 "    int      si_trapno;   /* Trap number that caused\n"
4796 "                             hardware-generated signal\n"
4797 "                             (unused on most architectures) */\n"
4798 "    pid_t    si_pid;      /* Sending process ID */\n"
4799 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
4800 "    int      si_status;   /* Exit value or signal */\n"
4801 "    clock_t  si_utime;    /* User time consumed */\n"
4802 "    clock_t  si_stime;    /* System time consumed */\n"
4803 "    sigval_t si_value;    /* Signal value */\n"
4804 "    int      si_int;      /* POSIX.1b signal */\n"
4805 "    void    *si_ptr;      /* POSIX.1b signal */\n"
4806 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
4807 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
4808 "    void    *si_addr;     /* Memory location which caused fault */\n"
4809 "    long     si_band;     /* Band event (was I<int> in\n"
4810 "                             glibc 2.3.2 and earlier) */\n"
4811 "    int      si_fd;       /* File descriptor */\n"
4812 "    short    si_addr_lsb; /* Least significant bit of address\n"
4813 "                             (since Linux 2.6.32) */\n"
4814 "}\n"
4815
4816 #. type: Plain text
4817 #: build/C/man2/sigaction.2:298
4818 msgid ""
4819 "I<si_signo>, I<si_errno> and I<si_code> are defined for all signals.  "
4820 "(I<si_errno> is generally unused on Linux.)  The rest of the struct may be a "
4821 "union, so that one should read only the fields that are meaningful for the "
4822 "given signal:"
4823 msgstr ""
4824 "I<si_signo>, I<si_errno>, I<si_code> は全てのシグナルに対して定義されている "
4825 "(I<si_errno> は Linux では一般的には使用されない)。 構造体の残りの部分は、共"
4826 "用体 (union) になっているかもしれない。 その場合は該当するシグナルにおいて意"
4827 "味のあるフィールドのみを読み込む ことができる。"
4828
4829 #. type: Plain text
4830 #: build/C/man2/sigaction.2:313
4831 msgid ""
4832 "Signals sent with B<kill>(2)  and B<sigqueue>(3)  fill in I<si_pid> and "
4833 "I<si_uid>.  In addition, signals sent with B<sigqueue>(3)  fill in I<si_int> "
4834 "and I<si_ptr> with the values specified by the sender of the signal; see "
4835 "B<sigqueue>(3)  for more details."
4836 msgstr ""
4837 "B<kill>(2) や B<sigqueue>(3) で送信されたシグナルでは I<si_pid> と I<si_uid> "
4838 "が設定される。\n"
4839 "さらに、 B<sigqueue>(3) で送信されたシグナルでは I<si_int> と I<si_pid> にシ"
4840 "グナルの送信者により指定された値が設定される。詳細は B<sigqueue>(3) を参照。"
4841
4842 #. type: Plain text
4843 #: build/C/man2/sigaction.2:329
4844 msgid ""
4845 "Signals sent by POSIX.1b timers (since Linux 2.6) fill in I<si_overrun> and "
4846 "I<si_timerid>.  The I<si_timerid> field is an internal ID used by the kernel "
4847 "to identify the timer; it is not the same as the timer ID returned by "
4848 "B<timer_create>(2).  The I<si_overrun> field is the timer overrun count; "
4849 "this is the same information as is obtained by a call to B<timer_getoverrun>"
4850 "(2).  These fields are nonstandard Linux extensions."
4851 msgstr ""
4852 "POSIX.1b タイマ (Linux 2.6 以降) は I<si_overrun> と I<si_timerid> を\n"
4853 "設定する。 I<si_timerid> フィールドはカーネルがタイマを特定するのに\n"
4854 "使用する内部 ID であり、 B<timer_create>(2) が返すタイマ ID と同じではな"
4855 "い。\n"
4856 "I<si_overrun> フィールドはタイマが回り切った回数である。\n"
4857 "これは B<timer_getoverrun>(2) の呼び出しで取得できる情報と同じである。\n"
4858 "これらのフィールドは非標準で Linux による拡張である。"
4859
4860 #. type: Plain text
4861 #: build/C/man2/sigaction.2:344
4862 msgid ""
4863 "Signals sent for message queue notification (see the description of "
4864 "B<SIGEV_SIGNAL> in B<mq_notify>(3))  fill in I<si_int>/I<si_ptr>, with the "
4865 "I<sigev_value> supplied to B<mq_notify>(3); I<si_pid>, with the process ID "
4866 "of the message sender; and I<si_uid>, with the real user ID of the message "
4867 "sender."
4868 msgstr ""
4869 "メッセージキューの通知用に送信されたシグナル (B<mq_notify>(3) の "
4870 "B<SIGEV_SIGNAL> の説明を参照) では、 I<si_int>/I<si_ptr> に B<mq_notify>(3) "
4871 "に渡された I<sigev_value> が設定される。 I<si_pid> にはメッセージ送信者のプロ"
4872 "セス ID が設定され、 I<si_uid> にはメッセージ送信者の実ユーザ ID が設定され"
4873 "る。"
4874
4875 #.  FIXME .
4876 #.  When si_utime and si_stime where originally implemented, the
4877 #.  measurement unit was HZ, which was the same as clock ticks
4878 #.  (sysconf(_SC_CLK_TCK)).  In 2.6, HZ became configurable, and
4879 #.  was *still* used as the unit to return the info these fields,
4880 #.  with the result that the field values depended on the the
4881 #.  configured HZ.  Of course, the should have been measured in
4882 #.  USER_HZ instead, so that sysconf(_SC_CLK_TCK) could be used to
4883 #.  convert to seconds.  I have a queued patch to fix this:
4884 #.  http://thread.gmane.org/gmane.linux.kernel/698061/ .
4885 #.  This patch made it into 2.6.27.
4886 #.  But note that these fields still don't return the times of
4887 #.  waited-for children (as is done by getrusage() and times()
4888 #.  and wait4()).  Solaris 8 does include child times.
4889 #. type: Plain text
4890 #: build/C/man2/sigaction.2:391
4891 msgid ""
4892 "B<SIGCHLD> fills in I<si_pid>, I<si_uid>, I<si_status>, I<si_utime> and "
4893 "I<si_stime>, providing information about the child.  The I<si_pid> field is "
4894 "the process ID of the child; I<si_uid> is the child's real user ID.  The "
4895 "I<si_status> field contains the exit status of the child (if I<si_code> is "
4896 "B<CLD_EXITED>), or the signal number that caused the process to change "
4897 "state.  The I<si_utime> and I<si_stime> contain the user and system CPU time "
4898 "used by the child process; these fields do not include the times used by "
4899 "waited-for children (unlike B<getrusage>(2)  and B<time>(2)).  In kernels up "
4900 "to 2.6, and since 2.6.27, these fields report CPU time in units of I<sysconf"
4901 "(_SC_CLK_TCK)>.  In 2.6 kernels before 2.6.27, a bug meant that these fields "
4902 "reported time in units of the (configurable) system jiffy (see B<time>(7))."
4903 msgstr ""
4904 "B<SIGCHLD> は I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>,\n"
4905 "I<si_stime> を設定し、子プロセスに関する情報を提供する。\n"
4906 "I<si_pid> フィールドは子プロセスのプロセス ID で、\n"
4907 "I<si_uid> フィールドは子プロセスの実ユーザ ID である。\n"
4908 "I<si_stime> フィールドには、 (I<si_code> が B<CLD_EXITED> の場合は) \n"
4909 "子プロセスの終了ステータスが、それ以外の場合は状態が変化する原因と\n"
4910 "なったシグナル番号が格納される。\n"
4911 "I<si_utime> と I<si_stime> には子プロセスが使用したユーザ CPU 時間とシ\n"
4912 "ステム CPU 時間がそれぞれ格納される。(B<getrusage>(2) や B<time>(2) と\n"
4913 "異なり) これらのフィールドには wait 待ちの子プロセスにより使用された時\n"
4914 "間は含まれない。 2.6 より前と 2.6.27 以降のカーネルでは、 これらのフィー\n"
4915 "ルドに格納される CPU 時間の単位は I<sysconf(_SC_CLK_TCK)> である。\n"
4916 "2.6.27 より前の 2.6 系のカーネルでは、バグがあり、 これらのフィールドの\n"
4917 "CPU 時間の単位が (カーネルのコンフィグで指定される) システムの jiffy で\n"
4918 "あった (B<time>(7) 参照)。"
4919
4920 #.  FIXME SIGTRAP also sets the following for ptrace_notify() ?
4921 #.      info.si_code = exit_code;
4922 #.      info.si_pid = task_pid_vnr(current);
4923 #.      info.si_uid = current_uid();  /* Real UID */
4924 #. type: Plain text
4925 #: build/C/man2/sigaction.2:427
4926 #, fuzzy
4927 #| msgid ""
4928 #| "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, and B<SIGTRAP> fill in "
4929 #| "I<si_addr> with the address of the fault.  On some architectures, these "
4930 #| "signals also fill in the I<si_trapno> filed.  Some suberrors of "
4931 #| "B<SIGBUS>, in particular B<BUS_MCEERR_AO> and B<BUS_MCEERR_AR>, also fill "
4932 #| "in I<si_addr_lsb>.  This field indicates the least significant bit of the "
4933 #| "reported address and therefore the extent of the corruption.  For "
4934 #| "example, if a full page was corrupted, I<si_addr_lsb> contains I<log2"
4935 #| "(sysconf(_SC_PAGESIZE))>.  B<BUS_MCERR_*> and I<si_addr_lsb> are Linux-"
4936 #| "specific extensions."
4937 msgid ""
4938 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, and B<SIGTRAP> fill in "
4939 "I<si_addr> with the address of the fault.  On some architectures, these "
4940 "signals also fill in the I<si_trapno> field.  Some suberrors of B<SIGBUS>, "
4941 "in particular B<BUS_MCEERR_AO> and B<BUS_MCEERR_AR>, also fill in "
4942 "I<si_addr_lsb>.  This field indicates the least significant bit of the "
4943 "reported address and therefore the extent of the corruption.  For example, "
4944 "if a full page was corrupted, I<si_addr_lsb> contains I<log2(sysconf"
4945 "(_SC_PAGESIZE))>.  B<BUS_MCERR_*> and I<si_addr_lsb> are Linux-specific "
4946 "extensions."
4947 msgstr ""
4948 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, B<SIGTRAP> では、 I<si_addr> に "
4949 "fault が発生したアドレスが設定される。 いくつかのアーキテクチャでは "
4950 "I<si_trapno> も設定される。 B<SIGBUS> が発生するエラーのいくつか、特に "
4951 "B<BUS_MCEERR_AO> と B<BUS_MCEERR_AR> では、 I<si_addr_lsb> も設定される。 こ"
4952 "のフィールドは報告されるアドレスの最下位ビットを示し、 これによりメモリ破壊の"
4953 "程度を知ることができる。 例えば、ページ全体が壊れている場合には "
4954 "I<si_addr_lsb> には I<log2(sysconf(_SC_PAGESIZE))> が入る。 B<BUS_MCERR_*> "
4955 "と I<si_addr_lsb> は Linux 固有の拡張である。"
4956
4957 #. type: Plain text
4958 #: build/C/man2/sigaction.2:441
4959 msgid ""
4960 "B<SIGIO>/B<SIGPOLL> (the two names are synonyms on Linux)  fills in "
4961 "I<si_band> and I<si_fd>.  The I<si_band> event is a bit mask containing the "
4962 "same values as are filled in the I<revents> field by B<poll>(2).  The "
4963 "I<si_fd> field indicates the file descriptor for which the I/O event "
4964 "occurred."
4965 msgstr ""
4966 "B<SIGIO>/B<SIGPOLL> (2 つの名前は Linux では同義語) では I<si_band> と "
4967 "I<si_fd> が設定される。 I<si_band> イベントは、 B<poll>(2) が I<revents> "
4968 "フィールドに設定するのと同じ値が入ったビットマスクである。 I<si_fd> フィール"
4969 "ドは I/O イベントが発生したファイルディスクリプタを示す。"
4970
4971 #. type: Plain text
4972 #: build/C/man2/sigaction.2:448
4973 msgid ""
4974 "I<si_code> is a value (not a bit mask)  indicating why this signal was "
4975 "sent.  The following list shows the values which can be placed in I<si_code> "
4976 "for any signal, along with reason that the signal was generated."
4977 msgstr ""
4978 "I<si_code> は、そのシグナルが送信された理由を示す値である (ビットマスクではな"
4979 "い)。 以下は、どのシグナルの場合でも I<si_code> に入りうる値のリストである。"
4980 "シグナルが生成された理由も記載している。"
4981
4982 #. type: TP
4983 #: build/C/man2/sigaction.2:449
4984 #, no-wrap
4985 msgid "B<SI_USER>"
4986 msgstr "B<SI_USER>"
4987
4988 #. type: TP
4989 #: build/C/man2/sigaction.2:452 build/C/man7/signal.7:111
4990 #, no-wrap
4991 msgid "B<kill>(2)"
4992 msgstr "B<kill>(2)"
4993
4994 #. type: TP
4995 #: build/C/man2/sigaction.2:452
4996 #, no-wrap
4997 msgid "B<SI_KERNEL>"
4998 msgstr "B<SI_KERNEL>"
4999
5000 #. type: Plain text
5001 #: build/C/man2/sigaction.2:455
5002 msgid "Sent by the kernel."
5003 msgstr "カーネルにより送信された"
5004
5005 #. type: TP
5006 #: build/C/man2/sigaction.2:455
5007 #, no-wrap
5008 msgid "B<SI_QUEUE>"
5009 msgstr "B<SI_QUEUE>"
5010
5011 #. type: TP
5012 #: build/C/man2/sigaction.2:458 build/C/man7/signal.7:128
5013 #, no-wrap
5014 msgid "B<sigqueue>(3)"
5015 msgstr "B<sigqueue>(3)"
5016
5017 #. type: TP
5018 #: build/C/man2/sigaction.2:458
5019 #, no-wrap
5020 msgid "B<SI_TIMER>"
5021 msgstr "B<SI_TIMER>"
5022
5023 #. type: Plain text
5024 #: build/C/man2/sigaction.2:461
5025 msgid "POSIX timer expired"
5026 msgstr "POSIX タイマが満了した"
5027
5028 #. type: TP
5029 #: build/C/man2/sigaction.2:461
5030 #, no-wrap
5031 msgid "B<SI_MESGQ>"
5032 msgstr "B<SI_MESGQ>"
5033
5034 #. type: Plain text
5035 #: build/C/man2/sigaction.2:465
5036 msgid ""
5037 "POSIX message queue state changed (since Linux 2.6.6); see B<mq_notify>(3)"
5038 msgstr ""
5039 "POSIX メッセージキューの状態が変化した (Linux 2.6.6 以降)。 B<mq_notify>(3)B<"
5040 "参照。>"
5041
5042 #. type: TP
5043 #: build/C/man2/sigaction.2:465
5044 #, no-wrap
5045 msgid "B<SI_ASYNCIO>"
5046 msgstr "B<SI_ASYNCIO>"
5047
5048 #. type: Plain text
5049 #: build/C/man2/sigaction.2:468
5050 msgid "AIO completed"
5051 msgstr "非同期 IO (AIO) が完了した"
5052
5053 #. type: TP
5054 #: build/C/man2/sigaction.2:468
5055 #, no-wrap
5056 msgid "B<SI_SIGIO>"
5057 msgstr "B<SI_SIGIO>"
5058
5059 #. type: Plain text
5060 #: build/C/man2/sigaction.2:477
5061 msgid ""
5062 "Queued B<SIGIO> (only in kernels up to Linux 2.2; from Linux 2.4 onward "
5063 "B<SIGIO>/B<SIGPOLL> fills in I<si_code> as described below)."
5064 msgstr ""
5065 "B<SIGIO> がキューイングされた (Linux 2.2 以下のカーネルのみ; Linux 2.4 以降で"
5066 "は以下で説明する B<SIGIO>/B<SIGPOLL> の I<si_code> が入る)。"
5067
5068 #. type: TP
5069 #: build/C/man2/sigaction.2:477
5070 #, no-wrap
5071 msgid "B<SI_TKILL>"
5072 msgstr "B<SI_TKILL>"
5073
5074 #.  SI_DETHREAD is defined in 2.6.9 sources, but isn't implemented
5075 #.  It appears to have been an idea that was tried during 2.5.6
5076 #.  through to 2.5.24 and then was backed out.
5077 #. type: Plain text
5078 #: build/C/man2/sigaction.2:486
5079 msgid "B<tkill>(2)  or B<tgkill>(2)  (since Linux 2.4.19)"
5080 msgstr "B<tkill>(2)  または B<tgkill>(2)  (Linux 2.4.19 以降)"
5081
5082 #. type: Plain text
5083 #: build/C/man2/sigaction.2:493
5084 msgid ""
5085 "The following values can be placed in I<si_code> for a B<SIGILL> signal:"
5086 msgstr "B<SIGILL> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5087
5088 #. type: TP
5089 #: build/C/man2/sigaction.2:494
5090 #, no-wrap
5091 msgid "B<ILL_ILLOPC>"
5092 msgstr "B<ILL_ILLOPC>"
5093
5094 #. type: Plain text
5095 #: build/C/man2/sigaction.2:497
5096 msgid "illegal opcode"
5097 msgstr "不正な命令コード (opcode)"
5098
5099 #. type: TP
5100 #: build/C/man2/sigaction.2:497
5101 #, no-wrap
5102 msgid "B<ILL_ILLOPN>"
5103 msgstr "B<ILL_ILLOPN>"
5104
5105 #. type: Plain text
5106 #: build/C/man2/sigaction.2:500
5107 msgid "illegal operand"
5108 msgstr "不正なオペランド"
5109
5110 #. type: TP
5111 #: build/C/man2/sigaction.2:500
5112 #, no-wrap
5113 msgid "B<ILL_ILLADR>"
5114 msgstr "B<ILL_ILLADR>"
5115
5116 #. type: Plain text
5117 #: build/C/man2/sigaction.2:503
5118 msgid "illegal addressing mode"
5119 msgstr "不正なアドレッシングモード"
5120
5121 #. type: TP
5122 #: build/C/man2/sigaction.2:503
5123 #, no-wrap
5124 msgid "B<ILL_ILLTRP>"
5125 msgstr "B<ILL_ILLTRP>"
5126
5127 #. type: Plain text
5128 #: build/C/man2/sigaction.2:506
5129 msgid "illegal trap"
5130 msgstr "不正なトラップ"
5131
5132 #. type: TP
5133 #: build/C/man2/sigaction.2:506
5134 #, no-wrap
5135 msgid "B<ILL_PRVOPC>"
5136 msgstr "B<ILL_PRVOPC>"
5137
5138 #. type: Plain text
5139 #: build/C/man2/sigaction.2:509
5140 msgid "privileged opcode"
5141 msgstr "特権が必要な命令コード (opcode)"
5142
5143 #. type: TP
5144 #: build/C/man2/sigaction.2:509
5145 #, no-wrap
5146 msgid "B<ILL_PRVREG>"
5147 msgstr "B<ILL_PRVREG>"
5148
5149 #. type: Plain text
5150 #: build/C/man2/sigaction.2:512
5151 msgid "privileged register"
5152 msgstr "特権が必要なレジスタ"
5153
5154 #. type: TP
5155 #: build/C/man2/sigaction.2:512
5156 #, no-wrap
5157 msgid "B<ILL_COPROC>"
5158 msgstr "B<ILL_COPROC>"
5159
5160 #. type: Plain text
5161 #: build/C/man2/sigaction.2:515
5162 msgid "coprocessor error"
5163 msgstr "コプロセッサのエラー"
5164
5165 #. type: TP
5166 #: build/C/man2/sigaction.2:515
5167 #, no-wrap
5168 msgid "B<ILL_BADSTK>"
5169 msgstr "B<ILL_BADSTK>"
5170
5171 #. type: Plain text
5172 #: build/C/man2/sigaction.2:518
5173 msgid "internal stack error"
5174 msgstr "内部スタックエラー"
5175
5176 #. type: Plain text
5177 #: build/C/man2/sigaction.2:525
5178 msgid ""
5179 "The following values can be placed in I<si_code> for a B<SIGFPE> signal:"
5180 msgstr "B<SIGFPE> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5181
5182 #. type: TP
5183 #: build/C/man2/sigaction.2:526
5184 #, no-wrap
5185 msgid "B<FPE_INTDIV>"
5186 msgstr "B<FPE_INTDIV>"
5187
5188 #. type: Plain text
5189 #: build/C/man2/sigaction.2:529
5190 msgid "integer divide by zero"
5191 msgstr "整数の 0 による除算"
5192
5193 #. type: TP
5194 #: build/C/man2/sigaction.2:529
5195 #, no-wrap
5196 msgid "B<FPE_INTOVF>"
5197 msgstr "B<FPE_INTOVF>"
5198
5199 #. type: Plain text
5200 #: build/C/man2/sigaction.2:532
5201 msgid "integer overflow"
5202 msgstr "整数のオーバーフロー"
5203
5204 #. type: TP
5205 #: build/C/man2/sigaction.2:532
5206 #, no-wrap
5207 msgid "B<FPE_FLTDIV>"
5208 msgstr "B<FPE_FLTDIV>"
5209
5210 #. type: Plain text
5211 #: build/C/man2/sigaction.2:535
5212 msgid "floating-point divide by zero"
5213 msgstr "浮動小数点の 0 による除算"
5214
5215 #. type: TP
5216 #: build/C/man2/sigaction.2:535
5217 #, no-wrap
5218 msgid "B<FPE_FLTOVF>"
5219 msgstr "B<FPE_FLTOVF>"
5220
5221 #. type: Plain text
5222 #: build/C/man2/sigaction.2:538
5223 msgid "floating-point overflow"
5224 msgstr "浮動小数点のオーバーフロー"
5225
5226 #. type: TP
5227 #: build/C/man2/sigaction.2:538
5228 #, no-wrap
5229 msgid "B<FPE_FLTUND>"
5230 msgstr "B<FPE_FLTUND>"
5231
5232 #. type: Plain text
5233 #: build/C/man2/sigaction.2:541
5234 msgid "floating-point underflow"
5235 msgstr "浮動小数点のアンダーフロー"
5236
5237 #. type: TP
5238 #: build/C/man2/sigaction.2:541
5239 #, no-wrap
5240 msgid "B<FPE_FLTRES>"
5241 msgstr "B<FPE_FLTRES>"
5242
5243 #. type: Plain text
5244 #: build/C/man2/sigaction.2:544
5245 msgid "floating-point inexact result"
5246 msgstr "浮動小数点の不正確な演算結果 (inexact result)"
5247
5248 #. type: TP
5249 #: build/C/man2/sigaction.2:544
5250 #, no-wrap
5251 msgid "B<FPE_FLTINV>"
5252 msgstr "B<FPE_FLTINV>"
5253
5254 #. type: Plain text
5255 #: build/C/man2/sigaction.2:547
5256 msgid "floating-point invalid operation"
5257 msgstr "浮動小数点の不正な操作"
5258
5259 #. type: TP
5260 #: build/C/man2/sigaction.2:547
5261 #, no-wrap
5262 msgid "B<FPE_FLTSUB>"
5263 msgstr "B<FPE_FLTSUB>"
5264
5265 #. type: Plain text
5266 #: build/C/man2/sigaction.2:550
5267 msgid "subscript out of range"
5268 msgstr "範囲外の添字 (subscript)"
5269
5270 #. type: Plain text
5271 #: build/C/man2/sigaction.2:557
5272 msgid ""
5273 "The following values can be placed in I<si_code> for a B<SIGSEGV> signal:"
5274 msgstr "B<SIGSEGV> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5275
5276 #. type: TP
5277 #: build/C/man2/sigaction.2:558
5278 #, no-wrap
5279 msgid "B<SEGV_MAPERR>"
5280 msgstr "B<SEGV_MAPERR>"
5281
5282 #. type: Plain text
5283 #: build/C/man2/sigaction.2:561
5284 msgid "address not mapped to object"
5285 msgstr "オブジェクトにマッピングされていないアドレス"
5286
5287 #. type: TP
5288 #: build/C/man2/sigaction.2:561
5289 #, no-wrap
5290 msgid "B<SEGV_ACCERR>"
5291 msgstr "B<SEGV_ACCERR>"
5292
5293 #. type: Plain text
5294 #: build/C/man2/sigaction.2:564
5295 msgid "invalid permissions for mapped object"
5296 msgstr "マッピングされたオブジェクトに対するアクセス許可がない"
5297
5298 #. type: Plain text
5299 #: build/C/man2/sigaction.2:571
5300 msgid ""
5301 "The following values can be placed in I<si_code> for a B<SIGBUS> signal:"
5302 msgstr "B<SIGBUS> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5303
5304 #. type: TP
5305 #: build/C/man2/sigaction.2:572
5306 #, no-wrap
5307 msgid "B<BUS_ADRALN>"
5308 msgstr "B<BUS_ADRALN>"
5309
5310 #. type: Plain text
5311 #: build/C/man2/sigaction.2:575
5312 msgid "invalid address alignment"
5313 msgstr "不正なアドレス・アライメント (alignment)"
5314
5315 #. type: TP
5316 #: build/C/man2/sigaction.2:575
5317 #, no-wrap
5318 msgid "B<BUS_ADRERR>"
5319 msgstr "B<BUS_ADRERR>"
5320
5321 #. type: Plain text
5322 #: build/C/man2/sigaction.2:578
5323 msgid "nonexistent physical address"
5324 msgstr "存在しない物理アドレス"
5325
5326 #. type: TP
5327 #: build/C/man2/sigaction.2:578
5328 #, no-wrap
5329 msgid "B<BUS_OBJERR>"
5330 msgstr "B<BUS_OBJERR>"
5331
5332 #. type: Plain text
5333 #: build/C/man2/sigaction.2:581
5334 msgid "object-specific hardware error"
5335 msgstr "オブジェクト固有のハードウェアエラー"
5336
5337 #. type: TP
5338 #: build/C/man2/sigaction.2:581
5339 #, no-wrap
5340 msgid "B<BUS_MCEERR_AR> (since Linux 2.6.32)"
5341 msgstr "B<BUS_MCEERR_AR> (Linux 2.6.32 以降)"
5342
5343 #. type: Plain text
5344 #: build/C/man2/sigaction.2:584
5345 msgid "Hardware memory error consumed on a machine check; action required."
5346 msgstr ""
5347 "マシンチェックで使用中のハードウェアメモリのエラーが検出された。対応が必須。"
5348
5349 #. type: TP
5350 #: build/C/man2/sigaction.2:584
5351 #, no-wrap
5352 msgid "B<BUS_MCEERR_AO> (since Linux 2.6.32)"
5353 msgstr "B<BUS_MCEERR_AO> (Linux 2.6.32  以降)"
5354
5355 #. type: Plain text
5356 #: build/C/man2/sigaction.2:587
5357 msgid ""
5358 "Hardware memory error detected in process but not consumed; action optional."
5359 msgstr ""
5360 "実行中にハードウェアメモリエラーが検出されたが、使用中のメモリではない。対応"
5361 "は必須ではない。"
5362
5363 #. type: Plain text
5364 #: build/C/man2/sigaction.2:594
5365 msgid ""
5366 "The following values can be placed in I<si_code> for a B<SIGTRAP> signal:"
5367 msgstr "B<SIGTRAP> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5368
5369 #. type: TP
5370 #: build/C/man2/sigaction.2:595
5371 #, no-wrap
5372 msgid "B<TRAP_BRKPT>"
5373 msgstr "B<TRAP_BRKPT>"
5374
5375 #. type: Plain text
5376 #: build/C/man2/sigaction.2:598
5377 msgid "process breakpoint"
5378 msgstr "プロセスのブレークポイント"
5379
5380 #. type: TP
5381 #: build/C/man2/sigaction.2:598
5382 #, no-wrap
5383 msgid "B<TRAP_TRACE>"
5384 msgstr "B<TRAP_TRACE>"
5385
5386 #. type: Plain text
5387 #: build/C/man2/sigaction.2:601
5388 msgid "process trace trap"
5389 msgstr "プロセスのトレース・トラップ"
5390
5391 #. type: TP
5392 #: build/C/man2/sigaction.2:601
5393 #, no-wrap
5394 msgid "B<TRAP_BRANCH> (since Linux 2.4)"
5395 msgstr "B<TRAP_BRANCH> (Linux 2.4 以降)"
5396
5397 #. type: Plain text
5398 #: build/C/man2/sigaction.2:604
5399 msgid "process taken branch trap"
5400 msgstr "プロセスのブランチ・トラップ"
5401
5402 #. type: TP
5403 #: build/C/man2/sigaction.2:604
5404 #, no-wrap
5405 msgid "B<TRAP_HWBKPT> (since Linux 2.4)"
5406 msgstr "B<TRAP_HWBKPT> (Linux 2.4 以降)"
5407
5408 #. type: Plain text
5409 #: build/C/man2/sigaction.2:607
5410 msgid "hardware breakpoint/watchpoint"
5411 msgstr "ハードウェア・ブレークポイント/ウォッチポイント"
5412
5413 #. type: Plain text
5414 #: build/C/man2/sigaction.2:614
5415 msgid ""
5416 "The following values can be placed in I<si_code> for a B<SIGCHLD> signal:"
5417 msgstr "B<SIGCHLD> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5418
5419 #. type: TP
5420 #: build/C/man2/sigaction.2:615
5421 #, no-wrap
5422 msgid "B<CLD_EXITED>"
5423 msgstr "B<CLD_EXITED>"
5424
5425 #. type: Plain text
5426 #: build/C/man2/sigaction.2:618
5427 msgid "child has exited"
5428 msgstr "子プロセスが終了した (exited)"
5429
5430 #. type: TP
5431 #: build/C/man2/sigaction.2:618
5432 #, no-wrap
5433 msgid "B<CLD_KILLED>"
5434 msgstr "B<CLD_KILLED>"
5435
5436 #. type: Plain text
5437 #: build/C/man2/sigaction.2:621
5438 msgid "child was killed"
5439 msgstr "子プロセスが kill された"
5440
5441 #. type: TP
5442 #: build/C/man2/sigaction.2:621
5443 #, no-wrap
5444 msgid "B<CLD_DUMPED>"
5445 msgstr "B<CLD_DUMPED>"
5446
5447 #. type: Plain text
5448 #: build/C/man2/sigaction.2:624
5449 msgid "child terminated abnormally"
5450 msgstr "子プロセスが異常終了した"
5451
5452 #. type: TP
5453 #: build/C/man2/sigaction.2:624
5454 #, no-wrap
5455 msgid "B<CLD_TRAPPED>"
5456 msgstr "B<CLD_TRAPPED>"
5457
5458 #. type: Plain text
5459 #: build/C/man2/sigaction.2:627
5460 msgid "traced child has trapped"
5461 msgstr "トレース対象の子プロセスがトラップを上げた"
5462
5463 #. type: TP
5464 #: build/C/man2/sigaction.2:627
5465 #, no-wrap
5466 msgid "B<CLD_STOPPED>"
5467 msgstr "B<CLD_STOPPED>"
5468
5469 #. type: Plain text
5470 #: build/C/man2/sigaction.2:630
5471 msgid "child has stopped"
5472 msgstr "子プロセスが停止 (stop) した"
5473
5474 #. type: TP
5475 #: build/C/man2/sigaction.2:630
5476 #, no-wrap
5477 msgid "B<CLD_CONTINUED>"
5478 msgstr "B<CLD_CONTINUED>"
5479
5480 #. type: Plain text
5481 #: build/C/man2/sigaction.2:633
5482 msgid "stopped child has continued (since Linux 2.6.9)"
5483 msgstr "停止していた子プロセスが再開した (Linux 2.6.9 以降)"
5484
5485 #. type: Plain text
5486 #: build/C/man2/sigaction.2:640
5487 msgid ""
5488 "The following values can be placed in I<si_code> for a B<SIGIO>/B<SIGPOLL> "
5489 "signal:"
5490 msgstr ""
5491 "B<SIGIO>/B<SIGPOLL> シグナルの場合、 I<si_code> には以下の値が入る可能性があ"
5492 "る:"
5493
5494 #. type: TP
5495 #: build/C/man2/sigaction.2:641
5496 #, no-wrap
5497 msgid "B<POLL_IN>"
5498 msgstr "B<POLL_IN>"
5499
5500 #. type: Plain text
5501 #: build/C/man2/sigaction.2:644
5502 msgid "data input available"
5503 msgstr "入力データが利用可能"
5504
5505 #. type: TP
5506 #: build/C/man2/sigaction.2:644
5507 #, no-wrap
5508 msgid "B<POLL_OUT>"
5509 msgstr "B<POLL_OUT>"
5510
5511 #. type: Plain text
5512 #: build/C/man2/sigaction.2:647
5513 msgid "output buffers available"
5514 msgstr "出力バッファが利用可能"
5515
5516 #. type: TP
5517 #: build/C/man2/sigaction.2:647
5518 #, no-wrap
5519 msgid "B<POLL_MSG>"
5520 msgstr "B<POLL_MSG>"
5521
5522 #. type: Plain text
5523 #: build/C/man2/sigaction.2:650
5524 msgid "input message available"
5525 msgstr "入力メッセージが利用可能"
5526
5527 #. type: TP
5528 #: build/C/man2/sigaction.2:650
5529 #, no-wrap
5530 msgid "B<POLL_ERR>"
5531 msgstr "B<POLL_ERR>"
5532
5533 #. type: Plain text
5534 #: build/C/man2/sigaction.2:653
5535 msgid "I/O error"
5536 msgstr "I/O エラー"
5537
5538 #. type: TP
5539 #: build/C/man2/sigaction.2:653
5540 #, no-wrap
5541 msgid "B<POLL_PRI>"
5542 msgstr "B<POLL_PRI>"
5543
5544 #. type: Plain text
5545 #: build/C/man2/sigaction.2:656
5546 msgid "high priority input available"
5547 msgstr "高優先の入力が利用可能"
5548
5549 #. type: TP
5550 #: build/C/man2/sigaction.2:656
5551 #, no-wrap
5552 msgid "B<POLL_HUP>"
5553 msgstr "B<POLL_HUP>"
5554
5555 #. type: Plain text
5556 #: build/C/man2/sigaction.2:659
5557 msgid "device disconnected"
5558 msgstr "デバイスが接続されていない"
5559
5560 #. type: Plain text
5561 #: build/C/man2/sigaction.2:665
5562 msgid ""
5563 "B<sigaction>()  returns 0 on success; on error, -1 is returned, and I<errno> "
5564 "is set to indicate the error."
5565 msgstr ""
5566 "B<sigaction>() 関数は成功すると 0 を返す。 エラーの場合、-1 を返し、 "
5567 "I<errno> にエラーを示す値をセットする。"
5568
5569 #. type: Plain text
5570 #: build/C/man2/sigaction.2:670
5571 msgid ""
5572 "I<act> or I<oldact> points to memory which is not a valid part of the "
5573 "process address space."
5574 msgstr ""
5575 "I<act> か I<oldact> が指しているメモリが正しいプロセスのアドレス空間にない。"
5576
5577 #. type: Plain text
5578 #: build/C/man2/sigaction.2:677
5579 msgid ""
5580 "An invalid signal was specified.  This will also be generated if an attempt "
5581 "is made to change the action for B<SIGKILL> or B<SIGSTOP>, which cannot be "
5582 "caught or ignored."
5583 msgstr ""
5584 "無効なシグナルが指定された。補足 (catch) したり無視したりできない シグナルで"
5585 "ある B<SIGKILL> や B<SIGSTOP> に対する動作を変更しようとした場合にも発生す"
5586 "る。"
5587
5588 #.  SVr4 does not document the EINTR condition.
5589 #. type: Plain text
5590 #: build/C/man2/sigaction.2:680
5591 msgid "POSIX.1-2001, SVr4."
5592 msgstr "POSIX.1-2001, SVr4."
5593
5594 #. type: Plain text
5595 #: build/C/man2/sigaction.2:688 build/C/man7/signal.7:105
5596 msgid ""
5597 "A child created via B<fork>(2)  inherits a copy of its parent's signal "
5598 "dispositions.  During an B<execve>(2), the dispositions of handled signals "
5599 "are reset to the default; the dispositions of ignored signals are left "
5600 "unchanged."
5601 msgstr ""
5602 "B<fork>(2) 経由で作成された子プロセスは、親プロセスのシグナルの処理方法の コ"
5603 "ピーを継承する。\n"
5604 "B<execve>(2) の前後で、ハンドラが設定されているシグナルの処理方法はデフォルト"
5605 "にリセットされ、\n"
5606 "無視が設定されているシグナルの処理方法は変更されずそのままとなる。"
5607
5608 #. type: Plain text
5609 #: build/C/man2/sigaction.2:706 build/C/man2/signal.2:134
5610 msgid ""
5611 "According to POSIX, the behavior of a process is undefined after it ignores "
5612 "a B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> signal that was not generated by "
5613 "B<kill>(2)  or B<raise>(3).  Integer division by zero has undefined result.  "
5614 "On some architectures it will generate a B<SIGFPE> signal.  (Also dividing "
5615 "the most negative integer by -1 may generate B<SIGFPE>.)  Ignoring this "
5616 "signal might lead to an endless loop."
5617 msgstr ""
5618 "POSIX では、 B<kill>(2)  や B<raise>(3)  で生成できないシグナル B<SIGFPE>, "
5619 "B<SIGILL>, B<SIGSEGV> を無視 (ignore) した場合、その後の動作は未定義である。 "
5620 "ゼロによる整数割り算の結果は未定義となる。 アーキテクチャーによっては、このと"
5621 "き B<SIGFPE> シグナルが生成される。 (同様に負の最大整数を -1 で割ると "
5622 "B<SIGFPE> が生成されるかもしれない)  このシグナルを無視すると無限ループに陥る"
5623 "かもしれない。"
5624
5625 #. type: Plain text
5626 #: build/C/man2/sigaction.2:723
5627 msgid ""
5628 "POSIX.1-1990 disallowed setting the action for B<SIGCHLD> to B<SIG_IGN>.  "
5629 "POSIX.1-2001 allows this possibility, so that ignoring B<SIGCHLD> can be "
5630 "used to prevent the creation of zombies (see B<wait>(2)).  Nevertheless, the "
5631 "historical BSD and System V behaviors for ignoring B<SIGCHLD> differ, so "
5632 "that the only completely portable method of ensuring that terminated "
5633 "children do not become zombies is to catch the B<SIGCHLD> signal and perform "
5634 "a B<wait>(2)  or similar."
5635 msgstr ""
5636 "POSIX.1-1990 では B<SIGCHLD> に B<SIG_IGN> を設定することを認めていない。 "
5637 "POSIX.1-2001 では認められており、 B<SIGCHLD> を無視することでゾンビプロセスの"
5638 "生成を防止することができる (B<wait>(2)  を参照)。 さらに、BSD と SystemV で"
5639 "は B<SIGCHLD> を無視した際の動作が異なっている。 そのため、完全に移植性がある"
5640 "方法で、終了した子プロセスがゾンビにならないこと を保証するには、 B<SIGCHLD> "
5641 "シグナルを補足し、 B<wait>(2)  などを実行するしかない。"
5642
5643 #. type: Plain text
5644 #: build/C/man2/sigaction.2:736
5645 msgid ""
5646 "POSIX.1-1990 specified only B<SA_NOCLDSTOP>.  POSIX.1-2001 added "
5647 "B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, and B<SA_SIGINFO>.  Use of "
5648 "these latter values in I<sa_flags> may be less portable in applications "
5649 "intended for older UNIX implementations."
5650 msgstr ""
5651 "POSIX.1-1990 の仕様では B<SA_NOCLDSTOP> のみが定義されている。\n"
5652 "POSIX.1-2001 では B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>,\n"
5653 "B<SA_SIGINFO> が追加された。 UNIX の古い実装で動かすアプリケーションで、\n"
5654 "他の I<sa_flags> フラグを使用すると移植性が下がる。"
5655
5656 #. type: Plain text
5657 #: build/C/man2/sigaction.2:740
5658 msgid ""
5659 "The B<SA_RESETHAND> flag is compatible with the SVr4 flag of the same name."
5660 msgstr "B<SA_RESETHAND> フラグは SVr4 の同じ名前のフラグと互換性がある。"
5661
5662 #. type: Plain text
5663 #: build/C/man2/sigaction.2:750
5664 msgid ""
5665 "The B<SA_NODEFER> flag is compatible with the SVr4 flag of the same name "
5666 "under kernels 1.3.9 and newer.  On older kernels the Linux implementation "
5667 "allowed the receipt of any signal, not just the one we are installing "
5668 "(effectively overriding any I<sa_mask> settings)."
5669 msgstr ""
5670 "B<SA_NODEFER> フラグは 1.3.9 以降のカーネルでは同じ名前の SVr4 のフラグと互換"
5671 "性がある。 ぞれ以前の Linux カーネルの実装では、このフラグを設定しているシグ"
5672 "ナル だけでなく、どのシグナルでも受けることを許していた (実際には I<sa_mask> "
5673 "の設定により無効にできる)。"
5674
5675 #. type: Plain text
5676 #: build/C/man2/sigaction.2:756
5677 msgid ""
5678 "B<sigaction>()  can be called with a NULL second argument to query the "
5679 "current signal handler.  It can also be used to check whether a given signal "
5680 "is valid for the current machine by calling it with NULL second and third "
5681 "arguments."
5682 msgstr ""
5683 "B<sigaction>()  の二番目の引き数に NULL を指定して呼び出すと、現在のシグナル"
5684 "ハンドラを確認する ことができる。また、二番目と三番目の引き数を NULL にて呼び"
5685 "出すことで、 指定されたシグナルが現在のマシンで使えるかどうかチェックできる。"
5686
5687 #. type: Plain text
5688 #: build/C/man2/sigaction.2:762
5689 msgid ""
5690 "It is not possible to block B<SIGKILL> or B<SIGSTOP> (by specifying them in "
5691 "I<sa_mask>).  Attempts to do so are silently ignored."
5692 msgstr ""
5693 "B<SIGKILL> や B<SIGSTOP> を (I<sa_mask> に指定して) 禁止することはできない。 "
5694 "禁止しようとしても黙って無視される。"
5695
5696 #. type: Plain text
5697 #: build/C/man2/sigaction.2:766 build/C/man2/sigpending.2:70
5698 #: build/C/man2/sigprocmask.2:144 build/C/man2/sigsuspend.2:108
5699 msgid "See B<sigsetops>(3)  for details on manipulating signal sets."
5700 msgstr "シグナル集合の操作に関する詳細は B<sigsetops>(3)  を参照のこと。"
5701
5702 #. type: Plain text
5703 #: build/C/man2/sigaction.2:771
5704 msgid ""
5705 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
5706 "safely called inside from inside a signal handler."
5707 msgstr ""
5708 "シグナルハンドラ内から安全に呼び出すことができる、 async-signal-safe "
5709 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
5710 "照。"
5711
5712 #. type: SS
5713 #: build/C/man2/sigaction.2:771
5714 #, no-wrap
5715 msgid "Undocumented"
5716 msgstr "非公式"
5717
5718 #. type: Plain text
5719 #: build/C/man2/sigaction.2:781
5720 msgid ""
5721 "Before the introduction of B<SA_SIGINFO> it was also possible to get some "
5722 "additional information, namely by using a I<sa_handler> with second argument "
5723 "of type I<struct sigcontext>.  See the relevant Linux kernel sources for "
5724 "details.  This use is obsolete now."
5725 msgstr ""
5726 "B<SA_SIGINFO> が導入される前は、 I<struct sigcontext> 型の二番目の引き数と一"
5727 "緒に I<sa_handler> を使用することで、 いくつかの追加の情報を入手することがで"
5728 "きた。 詳細については Linux カーネルソースの関連部分を見てほしい。 現在はこの"
5729 "使用法は廃止されている。"
5730
5731 #. type: Plain text
5732 #: build/C/man2/sigaction.2:790
5733 msgid ""
5734 "In kernels up to and including 2.6.13, specifying B<SA_NODEFER> in "
5735 "I<sa_flags> prevents not only the delivered signal from being masked during "
5736 "execution of the handler, but also the signals specified in I<sa_mask>.  "
5737 "This bug was fixed in kernel 2.6.14."
5738 msgstr ""
5739 "2.6.13 以前のカーネルでは、 I<sa_flags> に B<SA_NODEFER> を指定した場合、 ハ"
5740 "ンドラが実行中に配送されたシグナル自身がマスクされなくなるだけでなく、 "
5741 "I<sa_mask> に指定されたシグナルもマスクされなくなる。 このバグは、カーネル "
5742 "2.6.14 で修正された。"
5743
5744 #. type: Plain text
5745 #: build/C/man2/sigaction.2:793
5746 msgid "See B<mprotect>(2)."
5747 msgstr "B<mprotect>(2)  参照。"
5748
5749 #. type: Plain text
5750 #: build/C/man2/sigaction.2:813
5751 msgid ""
5752 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
5753 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
5754 "B<sigprocmask>(2), B<sigsuspend>(2), B<wait>(2), B<raise>(3), B<siginterrupt>"
5755 "(3), B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
5756 msgstr ""
5757 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
5758 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
5759 "B<sigprocmask>(2), B<sigsuspend>(2), B<wait>(2), B<raise>(3), B<siginterrupt>"
5760 "(3), B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
5761
5762 #. type: TH
5763 #: build/C/man2/sigaltstack.2:27
5764 #, no-wrap
5765 msgid "SIGALTSTACK"
5766 msgstr "SIGALTSTACK"
5767
5768 #. type: TH
5769 #: build/C/man2/sigaltstack.2:27
5770 #, no-wrap
5771 msgid "2010-09-26"
5772 msgstr "2010-09-26"
5773
5774 #. type: Plain text
5775 #: build/C/man2/sigaltstack.2:30
5776 msgid "sigaltstack - set and/or get signal stack context"
5777 msgstr "sigaltstack - シグナルスタックのコンテキストを設定・取得する"
5778
5779 #. type: Plain text
5780 #: build/C/man2/sigaltstack.2:34
5781 msgid "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
5782 msgstr "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
5783
5784 #. type: Plain text
5785 #: build/C/man2/sigaltstack.2:41
5786 msgid "B<sigaltstack>():"
5787 msgstr "B<sigaltstack>():"
5788
5789 #. type: Plain text
5790 #: build/C/man2/sigaltstack.2:48 build/C/man3/siginterrupt.3:53
5791 #: build/C/man2/wait.2:80
5792 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
5793 msgstr "|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
5794
5795 #. type: Plain text
5796 #: build/C/man2/sigaltstack.2:60
5797 msgid ""
5798 "B<sigaltstack>()  allows a process to define a new alternate signal stack "
5799 "and/or retrieve the state of an existing alternate signal stack.  An "
5800 "alternate signal stack is used during the execution of a signal handler if "
5801 "the establishment of that handler (see B<sigaction>(2))  requested it."
5802 msgstr ""
5803 "B<sigaltstack>()  を使うと、 プロセスは新しい代替シグナルスタックを定義した"
5804 "り、 既存の代替シグナルスタックの状態を取得できる。 シグナルハンドラが代替シ"
5805 "グナルスタックを要求するように設定されていると (B<sigaction>(2)  参照)、ハン"
5806 "ドラの実行中はそのシグナルスタックが使われる。"
5807
5808 #. type: Plain text
5809 #: build/C/man2/sigaltstack.2:63
5810 msgid ""
5811 "The normal sequence of events for using an alternate signal stack is the "
5812 "following:"
5813 msgstr "代替シグナルスタックを使う際の一般的な手順は、以下の通りである:"
5814
5815 #. type: IP
5816 #: build/C/man2/sigaltstack.2:63 build/C/man7/signal.7:387
5817 #, no-wrap
5818 msgid "1."
5819 msgstr "1."
5820
5821 #. type: Plain text
5822 #: build/C/man2/sigaltstack.2:67
5823 msgid "Allocate an area of memory to be used for the alternate signal stack."
5824 msgstr "代替シグナルスタックで使うメモリ領域を確保する。"
5825
5826 #. type: IP
5827 #: build/C/man2/sigaltstack.2:67 build/C/man7/signal.7:391
5828 #, no-wrap
5829 msgid "2."
5830 msgstr "2."
5831
5832 #. type: Plain text
5833 #: build/C/man2/sigaltstack.2:73
5834 msgid ""
5835 "Use B<sigaltstack>()  to inform the system of the existence and location of "
5836 "the alternate signal stack."
5837 msgstr ""
5838 "B<sigaltstack>()  を使って、 代替シグナルスタックの存在と場所をシステムに知ら"
5839 "せる。"
5840
5841 #. type: IP
5842 #: build/C/man2/sigaltstack.2:73 build/C/man7/signal.7:411
5843 #, no-wrap
5844 msgid "3."
5845 msgstr "3."
5846
5847 #. type: Plain text
5848 #: build/C/man2/sigaltstack.2:80
5849 msgid ""
5850 "When establishing a signal handler using B<sigaction>(2), inform the system "
5851 "that the signal handler should be executed on the alternate signal stack by "
5852 "specifying the B<SA_ONSTACK> flag."
5853 msgstr ""
5854 "B<sigaction>(2)  を使ってシグナルハンドラを確立する際、 B<SA_ONSTACK> フラグ"
5855 "を指定することにより、 そのシグナルハンドラを代替シグナルスタック上で実行する"
5856 "ことを システムに知らせる。"
5857
5858 #. type: Plain text
5859 #: build/C/man2/sigaltstack.2:88
5860 msgid ""
5861 "The I<ss> argument is used to specify a new alternate signal stack, while "
5862 "the I<oss> argument is used to retrieve information about the currently "
5863 "established signal stack.  If we are interested in performing just one of "
5864 "these tasks then the other argument can be specified as NULL.  Each of these "
5865 "arguments is a structure of the following type:"
5866 msgstr ""
5867 "I<ss> 引き数は、新しいシグナルスタックを指定するために使う。 また I<oss> 引き"
5868 "数は、現在確立されている シグナルスタックの情報を取得するために使う。 この操"
5869 "作のうち 1 つだけを実行させるには、 使用しない引き数を NULL に指定すればよ"
5870 "い。 引き数となる構造体は、以下のような型である:"
5871
5872 #. type: Plain text
5873 #: build/C/man2/sigaltstack.2:96
5874 #, no-wrap
5875 msgid ""
5876 "typedef struct {\n"
5877 "    void  *ss_sp;     /* Base address of stack */\n"
5878 "    int    ss_flags;  /* Flags */\n"
5879 "    size_t ss_size;   /* Number of bytes in stack */\n"
5880 "} stack_t;\n"
5881 msgstr ""
5882 "typedef struct {\n"
5883 "    void  *ss_sp;     /* スタックのベースアドレス */\n"
5884 "    int    ss_flags;  /* フラグ */\n"
5885 "    size_t ss_size;   /* スタックのバイト数 */\n"
5886 "} stack_t;\n"
5887
5888 #. type: Plain text
5889 #: build/C/man2/sigaltstack.2:107
5890 msgid ""
5891 "To establish a new alternate signal stack, I<ss.ss_flags> is set to zero, "
5892 "and I<ss.ss_sp> and I<ss.ss_size> specify the starting address and size of "
5893 "the stack.  The constant B<SIGSTKSZ> is defined to be large enough to cover "
5894 "the usual size requirements for an alternate signal stack, and the constant "
5895 "B<MINSIGSTKSZ> defines the minimum size required to execute a signal handler."
5896 msgstr ""
5897 "新規の代替シグナルスタックを確立するには、 I<ss.ss_flags> を 0 に設定し、 "
5898 "I<ss.ss_sp> と I<ss.ss_size> に スタックの開始アドレスとスタックサイズを指定"
5899 "する。 定数 B<SIGSTKSZ> は、代替シグナルスタックが通常必要する サイズよりも充"
5900 "分大きく定義されている。 また定数 B<MINSIGSTKSZ> は、 シグナルハンドラの実行"
5901 "に必要な最小サイズに定義されている。"
5902
5903 #. type: Plain text
5904 #: build/C/man2/sigaltstack.2:111
5905 msgid ""
5906 "When a signal handler is invoked on the alternate stack, the kernel "
5907 "automatically aligns the address given in I<ss.ss_sp> to a suitable address "
5908 "boundary for the underlying hardware architecture."
5909 msgstr ""
5910 "代替スタックでシグナルハンドラが起動された場合には、 カーネルにより自動的に、"
5911 "I<ss.ss_sp> で指定されたアドレスは 動作しているハードウェアアーキテクチャに適"
5912 "したアドレス境界に 調整される。"
5913
5914 #. type: Plain text
5915 #: build/C/man2/sigaltstack.2:116
5916 msgid ""
5917 "To disable an existing stack, specify I<ss.ss_flags> as B<SS_DISABLE>.  In "
5918 "this case, the remaining fields in I<ss> are ignored."
5919 msgstr ""
5920 "既存のスタックを無効にするには、 I<ss.ss_flags> を B<SS_DISABLE> に指定す"
5921 "る。 この場合、I<ss> の他のフィールドは無視される。"
5922
5923 #. type: Plain text
5924 #: build/C/man2/sigaltstack.2:124
5925 msgid ""
5926 "If I<oss> is not NULL, then it is used to return information about the "
5927 "alternate signal stack which was in effect prior to the call to "
5928 "B<sigaltstack>().  The I<oss.ss_sp> and I<oss.ss_size> fields return the "
5929 "starting address and size of that stack.  The I<oss.ss_flags> may return "
5930 "either of the following values:"
5931 msgstr ""
5932 "I<oss> が NULL 以外の場合、 I<oss> に代替シグナルスタックの情報が返される。 "
5933 "これは (実質的に)  B<sigaltstack>()  の呼び出しより先に行われる。 I<oss."
5934 "ss_sp> と I<oss.ss_size> フィールドに スタックの開始アドレスとスタックサイズ"
5935 "が返される。 I<oss.ss_flags> には以下のどちらかの値が返される:"
5936
5937 #. type: TP
5938 #: build/C/man2/sigaltstack.2:124
5939 #, no-wrap
5940 msgid "B<SS_ONSTACK>"
5941 msgstr "B<SS_ONSTACK>"
5942
5943 #. type: Plain text
5944 #: build/C/man2/sigaltstack.2:130
5945 msgid ""
5946 "The process is currently executing on the alternate signal stack.  (Note "
5947 "that it is not possible to change the alternate signal stack if the process "
5948 "is currently executing on it.)"
5949 msgstr ""
5950 "プロセスが代替シグナルスタック上で実行されている (プロセスが既にそのシグナル"
5951 "スタック上で実行されている場合は、 それと同じシグナルスタックには変更できない"
5952 "点に注意すること)。"
5953
5954 #. type: TP
5955 #: build/C/man2/sigaltstack.2:130
5956 #, no-wrap
5957 msgid "B<SS_DISABLE>"
5958 msgstr "B<SS_DISABLE>"
5959
5960 #. type: Plain text
5961 #: build/C/man2/sigaltstack.2:133
5962 msgid "The alternate signal stack is currently disabled."
5963 msgstr "代替シグナルスタックが現在無効になっている。"
5964
5965 #. type: Plain text
5966 #: build/C/man2/sigaltstack.2:137
5967 msgid ""
5968 "B<sigaltstack>()  returns 0 on success, or -1 on failure with I<errno> set "
5969 "to indicate the error."
5970 msgstr ""
5971 "B<sigaltstack>()  は成功した場合 0 を返す。 失敗した場合は -1 を返して、 エ"
5972 "ラーを示す値に I<errno> を設定する。"
5973
5974 #. type: Plain text
5975 #: build/C/man2/sigaltstack.2:142
5976 msgid ""
5977 "Either I<ss> or I<oss> is not NULL and points to an area outside of the "
5978 "process's address space."
5979 msgstr ""
5980 "I<ss> または I<oss> のどちらが、NULL 以外で、 かつプロセスのアドレス空間の外"
5981 "を指している。"
5982
5983 #. type: Plain text
5984 #: build/C/man2/sigaltstack.2:147
5985 msgid ""
5986 "I<ss> is not NULL and the I<ss_flags> field contains a nonzero value other "
5987 "than B<SS_DISABLE>."
5988 msgstr ""
5989 "I<ss> が NULL 以外で、I<ss_flags> フィールドが B<SS_DISABLE> 以外の 0 でない"
5990 "値になっている。"
5991
5992 #. type: Plain text
5993 #: build/C/man2/sigaltstack.2:151
5994 msgid ""
5995 "The specified size of the new alternate signal stack (I<ss.ss_size>) was "
5996 "less than B<MINSTKSZ>."
5997 msgstr ""
5998 "新しい代替シグナルスタック (I<ss.ss_size>) に指定したサイズが B<MINSTKSZ> よ"
5999 "り小さい。"
6000
6001 #. type: Plain text
6002 #: build/C/man2/sigaltstack.2:156
6003 msgid ""
6004 "An attempt was made to change the alternate signal stack while it was active "
6005 "(i.e., the process was already executing on the current alternate signal "
6006 "stack)."
6007 msgstr ""
6008 "代替シグナルスタックが有効であるときに変更を行おうとした (つまり、プロセスが"
6009 "既に現在の代替シグナルスタック上で実行されていた)。"
6010
6011 #. type: Plain text
6012 #: build/C/man2/sigaltstack.2:158
6013 msgid "SUSv2, SVr4, POSIX.1-2001."
6014 msgstr "SUSv2, SVr4, POSIX.1-2001."
6015
6016 #. type: Plain text
6017 #: build/C/man2/sigaltstack.2:166
6018 msgid ""
6019 "The most common usage of an alternate signal stack is to handle the "
6020 "B<SIGSEGV> signal that is generated if the space available for the normal "
6021 "process stack is exhausted: in this case, a signal handler for B<SIGSEGV> "
6022 "cannot be invoked on the process stack; if we wish to handle it, we must use "
6023 "an alternate signal stack."
6024 msgstr ""
6025 "代替シグナルスタックを使用する最もよくある場面は、 B<SIGSEGV> シグナルを扱う"
6026 "ときである。 B<SIGSEGV> はプロセスの通常のスタックが利用できる空間が使い果た"
6027 "された際に 生成されるシグナルである。この場合には、 B<SIGSEGV> 用のシグナルハ"
6028 "ンドラをプロセスのスタック上では起動することができない。 そのため、このシグナ"
6029 "ルを扱おうとする場合には、 代替シグナルスタックを使用しなければならない。"
6030
6031 #. type: Plain text
6032 #: build/C/man2/sigaltstack.2:176
6033 msgid ""
6034 "Establishing an alternate signal stack is useful if a process expects that "
6035 "it may exhaust its standard stack.  This may occur, for example, because the "
6036 "stack grows so large that it encounters the upwardly growing heap, or it "
6037 "reaches a limit established by a call to B<setrlimit(RLIMIT_STACK, &rlim)>.  "
6038 "If the standard stack is exhausted, the kernel sends the process a "
6039 "B<SIGSEGV> signal.  In these circumstances the only way to catch this signal "
6040 "is on an alternate signal stack."
6041 msgstr ""
6042 "プロセスが標準のシグナルスタックを使い果たすことが予想される場合は、 代替シグ"
6043 "ナルスタックを確立すると便利である。 例えば、スタックが最上位アドレスから 下"
6044 "位アドレス方向に非常にたくさん積まれてしまうことで、 最下位アドレスから上位ア"
6045 "ドレス方向に積まれるヒープとぶつかってしまう場合や、 B<setrlimit"
6046 "(RLIMIT_STACK, &rlim)> の呼び出しで確立された 制限に達してしまった場合に、こ"
6047 "の様な事が起こる。 標準のスタックを使い果たしてしまうと、 カーネルはプロセス"
6048 "に B<SIGSEGV> シグナルを送る。 このような状況では、代替シグナルスタック上でし"
6049 "かシグナルをキャッチできない。"
6050
6051 #. type: Plain text
6052 #: build/C/man2/sigaltstack.2:182
6053 msgid ""
6054 "On most hardware architectures supported by Linux, stacks grow downward.  "
6055 "B<sigaltstack>()  automatically takes account of the direction of stack "
6056 "growth."
6057 msgstr ""
6058 "Linux がサポートする多くのハードウェアアーキテクチャでは、 スタックは下位アド"
6059 "レス方向に積まれる。 B<sigaltstack>()  はスタックが積まれる方向を自動的に決定"
6060 "する。"
6061
6062 #. type: Plain text
6063 #: build/C/man2/sigaltstack.2:191
6064 msgid ""
6065 "Functions called from a signal handler executing on an alternate signal "
6066 "stack will also use the alternate signal stack.  (This also applies to any "
6067 "handlers invoked for other signals while the process is executing on the "
6068 "alternate signal stack.)  Unlike the standard stack, the system does not "
6069 "automatically extend the alternate signal stack.  Exceeding the allocated "
6070 "size of the alternate signal stack will lead to unpredictable results."
6071 msgstr ""
6072 "代替シグナルスタック上で実行されている シグナルハンドラから呼ばれる関数も、代"
6073 "替シグナルハンドラを使う (プロセスが代替シグナルスタック上で実行されている場"
6074 "合、 他のシグナルで呼び出されるハンドラもこの代替シグナルハンドラを使う)。 標"
6075 "準のスタックとは異なり、 システムは代替シグナルスタックを自動的に拡張しな"
6076 "い。 代替シグナルスタック用に確保したサイズを越えた場合、 結果は予想できな"
6077 "い。"
6078
6079 #. type: Plain text
6080 #: build/C/man2/sigaltstack.2:199
6081 msgid ""
6082 "A successful call to B<execve>(2)  removes any existing alternate signal "
6083 "stack.  A child process created via B<fork>(2)  inherits a copy of its "
6084 "parent's alternate signal stack settings."
6085 msgstr ""
6086 "B<execve>(2)  の呼び出しが成功すると、 既存の全ての代替シグナルスタックが削除"
6087 "される。 B<fork>(2)  経由で作成された子プロセスは、親プロセスの代替シグナルス"
6088 "タックの 設定のコピーを継承する。"
6089
6090 #. type: Plain text
6091 #: build/C/man2/sigaltstack.2:208
6092 msgid ""
6093 "B<sigaltstack>()  supersedes the older B<sigstack>()  call.  For backward "
6094 "compatibility, glibc also provides B<sigstack>().  All new applications "
6095 "should be written using B<sigaltstack>()."
6096 msgstr ""
6097 "B<sigaltstack>()  は以前の B<sigstack>()  を置き換えるものである。 過去プログ"
6098 "ラムとの互換性のため、glibc では B<sigstack>()  も提供している。 新しいのアプ"
6099 "リケーションは全て B<sigaltstack>()  を使って書くべきである。"
6100
6101 #. type: SS
6102 #: build/C/man2/sigaltstack.2:208 build/C/man3/sigpause.3:61
6103 #, no-wrap
6104 msgid "History"
6105 msgstr "歴史"
6106
6107 #. type: Plain text
6108 #: build/C/man2/sigaltstack.2:215
6109 msgid ""
6110 "4.2BSD had a B<sigstack>()  system call.  It used a slightly different "
6111 "struct, and had the major disadvantage that the caller had to know the "
6112 "direction of stack growth."
6113 msgstr ""
6114 "4.2BSD には B<sigstack>()  システムコールがあった。 この関数は少し異なった構"
6115 "造体を使っており、 呼び出した側がスタックの積まれる方向を知っていなければなら"
6116 "ないという 大きな欠点があった。"
6117
6118 #. type: Plain text
6119 #: build/C/man2/sigaltstack.2:218
6120 msgid "The following code segment demonstrates the use of B<sigaltstack>():"
6121 msgstr "以下のコードで B<sigaltstack>()  の使用法の一部を示す:"
6122
6123 #. type: Plain text
6124 #: build/C/man2/sigaltstack.2:222
6125 #, no-wrap
6126 msgid "stack_t ss;\n"
6127 msgstr "stack_t ss;\n"
6128
6129 #. type: Plain text
6130 #: build/C/man2/sigaltstack.2:230
6131 #, no-wrap
6132 msgid ""
6133 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6134 "if (ss.ss_sp == NULL)\n"
6135 "    /* Handle error */;\n"
6136 "ss.ss_size = SIGSTKSZ;\n"
6137 "ss.ss_flags = 0;\n"
6138 "if (sigaltstack(&ss, NULL) == -1)\n"
6139 "    /* Handle error */;\n"
6140 msgstr ""
6141 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6142 "if (ss.ss_sp == NULL)\n"
6143 "    /* ハンドルエラー */;\n"
6144 "ss.ss_size = SIGSTKSZ;\n"
6145 "ss.ss_flags = 0;\n"
6146 "if (sigaltstack(&ss, NULL) == -1)\n"
6147 "    /* ハンドルエラー */;\n"
6148
6149 #. type: Plain text
6150 #: build/C/man2/sigaltstack.2:239
6151 msgid ""
6152 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6153 "B<sigsetjmp>(3), B<signal>(7)"
6154 msgstr ""
6155 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6156 "B<sigsetjmp>(3), B<signal>(7)"
6157
6158 #. type: TH
6159 #: build/C/man7/sigevent.7:26
6160 #, no-wrap
6161 msgid "SIGEVENT"
6162 msgstr "SIGEVENT"
6163
6164 #. type: TH
6165 #: build/C/man7/sigevent.7:26
6166 #, no-wrap
6167 msgid "2011-09-09"
6168 msgstr "2011-09-09"
6169
6170 #. type: Plain text
6171 #: build/C/man7/sigevent.7:29
6172 msgid "sigevent - structure for notification from asynchronous routines"
6173 msgstr "sigevent - 非同期ルーチンからの通知用の構造体"
6174
6175 #. type: Plain text
6176 #: build/C/man7/sigevent.7:36
6177 #, no-wrap
6178 msgid ""
6179 "union sigval {          /* Data passed with notification */\n"
6180 "    int     sival_int;         /* Integer value */\n"
6181 "    void   *sival_ptr;         /* Pointer value */\n"
6182 "};\n"
6183 msgstr ""
6184 "union sigval {          /* Data passed with notification */\n"
6185 "    int     sival_int;         /* Integer value */\n"
6186 "    void   *sival_ptr;         /* Pointer value */\n"
6187 "};\n"
6188
6189 #. type: Plain text
6190 #: build/C/man7/sigevent.7:51
6191 #, no-wrap
6192 msgid ""
6193 "struct sigevent {\n"
6194 "    int          sigev_notify; /* Notification method */\n"
6195 "    int          sigev_signo;  /* Notification signal */\n"
6196 "    union sigval sigev_value;  /* Data passed with\n"
6197 "                                  notification */\n"
6198 "    void       (*sigev_notify_function) (union sigval);\n"
6199 "                     /* Function used for thread\n"
6200 "                        notification (SIGEV_THREAD) */\n"
6201 "    void        *sigev_notify_attributes;\n"
6202 "                     /* Attributes for notification thread\n"
6203 "                        (SIGEV_THREAD) */\n"
6204 "    pid_t        sigev_notify_thread_id;\n"
6205 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6206 "};\n"
6207 msgstr ""
6208 "struct sigevent {\n"
6209 "    int          sigev_notify; /* Notification method */\n"
6210 "    int          sigev_signo;  /* Notification signal */\n"
6211 "    union sigval sigev_value;  /* Data passed with\n"
6212 "                                  notification */\n"
6213 "    void       (*sigev_notify_function) (union sigval);\n"
6214 "                     /* Function used for thread\n"
6215 "                        notification (SIGEV_THREAD) */\n"
6216 "    void        *sigev_notify_attributes;\n"
6217 "                     /* Attributes for notification thread\n"
6218 "                        (SIGEV_THREAD) */\n"
6219 "    pid_t        sigev_notify_thread_id;\n"
6220 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6221 "};\n"
6222
6223 #. type: Plain text
6224 #: build/C/man7/sigevent.7:60
6225 msgid ""
6226 "The I<sigevent> structure is used by various APIs to describe the way a "
6227 "process is to be notified about an event (e.g., completion of an "
6228 "asynchronous request, expiration of a timer, or the arrival of a message)."
6229 msgstr ""
6230 "I<sigevent> 構造体は、イベントに関する情報をプロセスに通知するために様々な "
6231 "API で使用される (イベントの例としては、 非同期処理要求の完了、 タイマーの満"
6232 "了、 メッセージの到着など)。"
6233
6234 #. type: Plain text
6235 #: build/C/man7/sigevent.7:68
6236 msgid ""
6237 "The definition shown in the SYNOPSIS is approximate: some of the fields in "
6238 "the I<sigevent> structure may be defined as part of a union.  Programs "
6239 "should employ only those fields relevant to the value specified in "
6240 "I<sigev_notify>."
6241 msgstr ""
6242 "「書式」に記載されている定義はおおよそのものである。 I<sigevent> 構造体のいく"
6243 "つかのフィールドは、 共用体の一部として定義されているものもある。 プログラム"
6244 "は、 I<sigev_notify> で指定された値に応じたフィールドだけを利用すべきである。"
6245
6246 #. type: Plain text
6247 #: build/C/man7/sigevent.7:73
6248 msgid ""
6249 "The I<sigev_notify> field specifies how notification is to be performed.  "
6250 "This field can have one of the following values:"
6251 msgstr ""
6252 "I<sigev_notify> フィールドは、通知をどのように処理すべきかを指定する。 この"
6253 "フィールドは、以下のいずれかの値である。"
6254
6255 #. type: TP
6256 #: build/C/man7/sigevent.7:73 build/C/man2/timer_create.2:107
6257 #, no-wrap
6258 msgid "B<SIGEV_NONE>"
6259 msgstr "B<SIGEV_NONE>"
6260
6261 #. type: Plain text
6262 #: build/C/man7/sigevent.7:76
6263 msgid "A \"null\" notification: don't do anything when the event occurs."
6264 msgstr "「空 (null)」の通知。 イベントが発生時には何もしないこと。"
6265
6266 #. type: TP
6267 #: build/C/man7/sigevent.7:76 build/C/man2/timer_create.2:112
6268 #, no-wrap
6269 msgid "B<SIGEV_SIGNAL>"
6270 msgstr "B<SIGEV_SIGNAL>"
6271
6272 #. type: Plain text
6273 #: build/C/man7/sigevent.7:80
6274 msgid "Notify the process by sending the signal specified in I<sigev_signo>."
6275 msgstr ""
6276 "I<sigev_signo> で指定されたシグナルを送信することで、プロセスへの通知を行う。"
6277
6278 #. type: Plain text
6279 #: build/C/man7/sigevent.7:87
6280 msgid ""
6281 "If the signal is caught with a signal handler that was registered using the "
6282 "B<sigaction>(2)  B<SA_SIGINFO> flag, then the following fields are set in "
6283 "the I<siginfo_t> structure that is passed as the second argument of the "
6284 "handler:"
6285 msgstr ""
6286 "B<sigaction>(2) の B<SA_SIGINFO> フラグを使った登録されたシグナルハンドラによ"
6287 "りシグナルが捕捉されると、 シグナルハンドラの 2 番目の引き数として渡された "
6288 "I<siginfo_t> 構造体の以下のフィールドが設定される。"
6289
6290 #. type: Plain text
6291 #: build/C/man7/sigevent.7:92
6292 msgid ""
6293 "This field is set to a value that depends on the API delivering the "
6294 "notification."
6295 msgstr "このフィールドには通知を配送した API に応じた決まる値が設定される。"
6296
6297 #. type: TP
6298 #: build/C/man7/sigevent.7:92 build/C/man2/wait.2:302
6299 #, no-wrap
6300 msgid "I<si_signo>"
6301 msgstr "I<si_signo>"
6302
6303 #. type: Plain text
6304 #: build/C/man7/sigevent.7:96
6305 msgid ""
6306 "This field is set to the signal number (i.e., the same value as in "
6307 "I<sigev_signo>)."
6308 msgstr ""
6309 "このフィールドにはシグナル番号 (すなわち I<sigev_signo> と同じ値) が設定され"
6310 "る。"
6311
6312 #. type: Plain text
6313 #: build/C/man7/sigevent.7:100
6314 msgid "This field is set to the value specified in I<sigev_value>."
6315 msgstr "このフィールドには I<sigev_value> で指定された値が設定される。"
6316
6317 #. type: Plain text
6318 #: build/C/man7/sigevent.7:105
6319 msgid ""
6320 "Depending on the API, other fields may also be set in the I<siginfo_t> "
6321 "structure."
6322 msgstr ""
6323 "API によっては I<siginfo_t> 構造体の他のフィールドが設定される場合もある。"
6324
6325 #. type: Plain text
6326 #: build/C/man7/sigevent.7:108
6327 msgid ""
6328 "The same information is also available if the signal is accepted using "
6329 "B<sigwaitinfo>(2)."
6330 msgstr ""
6331 "シグナルを受け取ったときには B<sigwaitinfo>(2) でも同じ情報が得られる。"
6332
6333 #. type: TP
6334 #: build/C/man7/sigevent.7:108 build/C/man2/timer_create.2:130
6335 #, no-wrap
6336 msgid "B<SIGEV_THREAD>"
6337 msgstr "B<SIGEV_THREAD>"
6338
6339 #. type: Plain text
6340 #: build/C/man7/sigevent.7:125
6341 msgid ""
6342 "Notify the process by invoking I<sigev_notify_function> \"as if\" it were "
6343 "the start function of a new thread.  (Among the implementation possibilities "
6344 "here are that each timer notification could result in the creation of a new "
6345 "thread, or that a single thread is created to receive all notifications.)  "
6346 "The function is invoked with I<sigev_value> as its sole argument.  If "
6347 "I<sigev_notify_attributes> is not NULL, it should point to a "
6348 "I<pthread_attr_t> structure that defines attributes for the new thread (see "
6349 "B<pthread_attr_init>(3))."
6350 msgstr ""
6351 "「あたかも」新しいスレッドセーフの開始関数であるかのように "
6352 "I<sigev_notify_function> を起動することで、 プロセスへの通知を行う (実装の可"
6353 "能性としては、 タイマー通知の度に新しいスレッドセーフが作成される場合も、 一"
6354 "つのスレッドを作成してすべての通知を受信する場合もある)。 この関数は "
6355 "I<sigev_value> を唯一の引き数として起動される。 I<sigev_notify_attributes> "
6356 "は、 NULL 以外の場合は、 新しいスレッドセーフの属性を定義する "
6357 "I<pthread_attr_t> 構造体を指していなければならない (B<pthread_attr_init>(3) "
6358 "参照)。"
6359
6360 #. type: TP
6361 #: build/C/man7/sigevent.7:125 build/C/man2/timer_create.2:138
6362 #, no-wrap
6363 msgid "B<SIGEV_THREAD_ID> (Linux-specific)"
6364 msgstr "B<SIGEV_THREAD_ID> (Linux 固有)"
6365
6366 #.  | SIGEV_SIGNAL vs not?
6367 #. type: Plain text
6368 #: build/C/man7/sigevent.7:130
6369 msgid "Currently used only by POSIX timers; see B<timer_create>(2)."
6370 msgstr "現在のところ POSIX でのみ使用されている。 B<timer_create>(2) 参照。"
6371
6372 #. type: Plain text
6373 #: build/C/man7/sigevent.7:132 build/C/man2/sigpending.2:66
6374 #: build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:116
6375 #: build/C/man3/sigsetops.3:133 build/C/man2/sigsuspend.2:86
6376 #: build/C/man3/sigwait.3:82 build/C/man2/sigwaitinfo.2:135
6377 #: build/C/man2/timer_create.2:195 build/C/man2/timer_delete.2:69
6378 #: build/C/man2/timer_getoverrun.2:99 build/C/man2/timer_settime.2:209
6379 msgid "POSIX.1-2001."
6380 msgstr "POSIX.1-2001."
6381
6382 #. type: Plain text
6383 #: build/C/man7/sigevent.7:142
6384 msgid ""
6385 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6386 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6387 "B<pthreads>(7)"
6388 msgstr ""
6389 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6390 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6391 "B<pthreads>(7)"
6392
6393 #. type: TH
6394 #: build/C/man3/siginterrupt.3:31
6395 #, no-wrap
6396 msgid "SIGINTERRUPT"
6397 msgstr "SIGINTERRUPT"
6398
6399 #. type: TH
6400 #: build/C/man3/siginterrupt.3:31 build/C/man2/signal.2:36
6401 #: build/C/man2/sigpending.2:29 build/C/man2/sigprocmask.2:29
6402 #: build/C/man3/sigsetops.3:31 build/C/man2/sigsuspend.2:29
6403 #, no-wrap
6404 msgid "2013-04-19"
6405 msgstr "2013-04-19"
6406
6407 #. type: Plain text
6408 #: build/C/man3/siginterrupt.3:34
6409 msgid "siginterrupt - allow signals to interrupt system calls"
6410 msgstr "siginterrupt - シグナルでシステム・コールに割り込むことを許す"
6411
6412 #. type: Plain text
6413 #: build/C/man3/siginterrupt.3:39
6414 #, no-wrap
6415 msgid "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6416 msgstr "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6417
6418 #. type: Plain text
6419 #: build/C/man3/siginterrupt.3:47
6420 msgid "B<siginterrupt>():"
6421 msgstr "B<siginterrupt>():"
6422
6423 #. type: Plain text
6424 #: build/C/man3/siginterrupt.3:64
6425 msgid ""
6426 "The B<siginterrupt>()  function changes the restart behavior when a system "
6427 "call is interrupted by the signal I<sig>.  If the I<flag> argument is false "
6428 "(0), then system calls will be restarted if interrupted by the specified "
6429 "signal I<sig>.  This is the default behavior in Linux."
6430 msgstr ""
6431 "B<siginterrupt>()  関数は、システム・コールがシグナル I<sig> によって割り込ま"
6432 "れた後、再実行の際の振る舞いを変更する。 I<flag> 引き数が偽 (0) ならば、シス"
6433 "テム・コールが指定した シグナル I<sig> によって割り込まれた後に、そのシステ"
6434 "ム・コールは 再実行される。これは Linux においてデフォルトの動作である。"
6435
6436 #. type: Plain text
6437 #: build/C/man3/siginterrupt.3:69
6438 msgid ""
6439 "If the I<flag> argument is true (1) and no data has been transferred, then a "
6440 "system call interrupted by the signal I<sig> will return -1 and I<errno> "
6441 "will be set to B<EINTR>."
6442 msgstr ""
6443 "I<flag> 引き数が真 (1) でデータの転送が全く行なわれていないならば、 シグナル "
6444 "I<sig> でシステム・コールは中断されて、-1 が返され、 I<errno> に B<EINTR> が"
6445 "設定される。"
6446
6447 #. type: Plain text
6448 #: build/C/man3/siginterrupt.3:73
6449 msgid ""
6450 "If the I<flag> argument is true (1) and data transfer has started, then the "
6451 "system call will be interrupted and will return the actual amount of data "
6452 "transferred."
6453 msgstr ""
6454 "I<flag> 引き数が真 (1) でデータの転送が開始されていれば、 システム・コールは"
6455 "中断され、それまでに実際に転送されたデータ の量が返される。"
6456
6457 #. type: Plain text
6458 #: build/C/man3/siginterrupt.3:83
6459 msgid ""
6460 "The B<siginterrupt>()  function returns 0 on success.  It returns -1 if the "
6461 "signal number I<sig> is invalid, with I<errno> set to indicate the cause of "
6462 "the error."
6463 msgstr ""
6464 "B<siginterrupt>()  関数は成功した場合 0 を返す。 シグナル番号 I<sig> が不正な"
6465 "場合、 -1 を返し、 I<errno> にエラーの原因を示す値を設定する。"
6466
6467 #. type: Plain text
6468 #: build/C/man3/siginterrupt.3:87
6469 msgid "The specified signal number is invalid."
6470 msgstr "指定したシグナル番号が不正である。"
6471
6472 #. type: Plain text
6473 #: build/C/man3/siginterrupt.3:96
6474 msgid ""
6475 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 marks B<siginterrupt>()  as obsolete, "
6476 "recommending the use of B<sigaction>(2)  with the B<SA_RESTART> flag instead."
6477 msgstr ""
6478 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 は、 B<siginterrupt>()  を廃止予定として"
6479 "いる。 代わりに、 B<sigaction>(2)  に B<SA_RESTART> フラグを指定して使うこと"
6480 "を推奨している。"
6481
6482 #. type: Plain text
6483 #: build/C/man3/siginterrupt.3:98
6484 msgid "B<signal>(2)"
6485 msgstr "B<signal>(2)"
6486
6487 #. type: TH
6488 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
6489 #, no-wrap
6490 msgid "SIGNAL"
6491 msgstr "SIGNAL"
6492
6493 #. type: Plain text
6494 #: build/C/man2/signal.2:39
6495 msgid "signal - ANSI C signal handling"
6496 msgstr "signal - ANSI C シグナル操作"
6497
6498 #. type: Plain text
6499 #: build/C/man2/signal.2:45
6500 msgid "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
6501 msgstr ""
6502 "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<sighandler>B<);>"
6503
6504 #. type: Plain text
6505 #: build/C/man2/signal.2:54
6506 msgid ""
6507 "The behavior of B<signal>()  varies across UNIX versions, and has also "
6508 "varied historically across different versions of Linux.  B<Avoid its use>: "
6509 "use B<sigaction>(2)  instead.  See I<Portability> below."
6510 msgstr ""
6511 "B<signal>()  の動作は UNIX のバージョンにより異なる。 また、歴史的に見て "
6512 "Linux のバージョンによっても異なっている。 B<このシステムコールの使用は避け、"
6513 "> 代わりに B<sigaction>(2)  を使用すること。 下記の「移植性」を参照。"
6514
6515 #. type: Plain text
6516 #: build/C/man2/signal.2:64
6517 msgid ""
6518 "B<signal>()  sets the disposition of the signal I<signum> to I<handler>, "
6519 "which is either B<SIG_IGN>, B<SIG_DFL>, or the address of a programmer-"
6520 "defined function (a \"signal handler\")."
6521 msgstr ""
6522 "B<signal>()  はシグナル I<signum> の処理方法を I<handler> に設定する。 "
6523 "I<handler> には、 B<SIG_IGN>、 B<SIG_DFL>、 プログラマが定義した関数 (「シグ"
6524 "ナル・ハンドラ」) のアドレスの いずれかを指定する。"
6525
6526 #. type: Plain text
6527 #: build/C/man2/signal.2:68
6528 msgid ""
6529 "If the signal I<signum> is delivered to the process, then one of the "
6530 "following happens:"
6531 msgstr ""
6532 "シグナル I<signum> がプロセスに配送されると、以下のいずれかが発生する。"
6533
6534 #. type: Plain text
6535 #: build/C/man2/signal.2:73
6536 msgid "If the disposition is set to B<SIG_IGN>, then the signal is ignored."
6537 msgstr "処理方法が B<SIG_IGN> に設定されている場合、そのシグナルは無視される。"
6538
6539 #. type: Plain text
6540 #: build/C/man2/signal.2:80
6541 msgid ""
6542 "If the disposition is set to B<SIG_DFL>, then the default action associated "
6543 "with the signal (see B<signal>(7))  occurs."
6544 msgstr ""
6545 "処理方法が B<SIG_DFL> に設定されている場合、シグナルに関連づけられた デフォル"
6546 "トの動作が行われる (B<signal>(7)  参照)。"
6547
6548 #. type: Plain text
6549 #: build/C/man2/signal.2:91
6550 msgid ""
6551 "If the disposition is set to a function, then first either the disposition "
6552 "is reset to B<SIG_DFL>, or the signal is blocked (see I<Portability> below), "
6553 "and then I<handler> is called with argument I<signum>.  If invocation of the "
6554 "handler caused the signal to be blocked, then the signal is unblocked upon "
6555 "return from the handler."
6556 msgstr ""
6557 "処理方法として関数が設定されている場合、 まず最初に処理方法が B<SIG_DFL> にリ"
6558 "セットされるかそのシグナルのブロックが実行された後、 I<signum> を引き数とし"
6559 "て I<handler> が呼び出される。 ハンドラが起動される際にシグナルがブロックされ"
6560 "た場合、 ハンドラが返る際にそのシグナルのブロックが解除される。"
6561
6562 #. type: Plain text
6563 #: build/C/man2/signal.2:97
6564 msgid "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught or ignored."
6565 msgstr ""
6566 "シグナル B<SIGKILL> と B<SIGSTOP> は捕捉できず、無視することもできない。"
6567
6568 #. type: Plain text
6569 #: build/C/man2/signal.2:105
6570 msgid ""
6571 "B<signal>()  returns the previous value of the signal handler, or B<SIG_ERR> "
6572 "on error.  In the event of an error, I<errno> is set to indicate the cause."
6573 msgstr ""
6574 "B<signal>()  は、今までのシグナル・ハンドラの値を返す。 エラーの場合は "
6575 "B<SIG_ERR> を返し、 I<errno> にエラーの原因を示す値を設定する。"
6576
6577 #. type: Plain text
6578 #: build/C/man2/signal.2:110
6579 msgid "I<signum> is invalid."
6580 msgstr "I<signum> が不正である。"
6581
6582 #. type: Plain text
6583 #: build/C/man2/signal.2:116
6584 msgid "The effects of B<signal>()  in a multithreaded process are unspecified."
6585 msgstr ""
6586 "マルチスレッドプロセスにおける B<signal>()  の結果は、指定されていない。"
6587
6588 #. type: Plain text
6589 #: build/C/man2/signal.2:141
6590 msgid ""
6591 "See B<sigaction>(2)  for details on what happens when B<SIGCHLD> is set to "
6592 "B<SIG_IGN>."
6593 msgstr ""
6594 "B<SIGCHLD> の動作として B<SIG_IGN> を設定した場合の詳細な動作については、 "
6595 "B<sigaction>(2)  を参照すること。"
6596
6597 #. type: Plain text
6598 #: build/C/man2/signal.2:146
6599 msgid ""
6600 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
6601 "safely called from inside a signal handler."
6602 msgstr ""
6603 "シグナル・ハンドラ内から安全に呼び出すことができる、 async-signal-safe "
6604 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
6605 "照。"
6606
6607 #.  libc4 and libc5 define
6608 #.  .IR SignalHandler ;
6609 #. type: Plain text
6610 #: build/C/man2/signal.2:162
6611 msgid ""
6612 "The use of I<sighandler_t> is a GNU extension, exposed if B<_GNU_SOURCE> is "
6613 "defined; glibc also defines (the BSD-derived)  I<sig_t> if B<_BSD_SOURCE> is "
6614 "defined.  Without use of such a type, the declaration of B<signal>()  is the "
6615 "somewhat harder to read:"
6616 msgstr ""
6617 "I<sighandler_t> の使用は GNU 拡張であり、 B<_GNU_SOURCE> が定義された\n"
6618 "場合に公開される。glibc では B<_BSD_SOURCE> が定義された場合には (BSD\n"
6619 "由来の) I<sig_t> も定義される。このような型を使用しないと、\n"
6620 "B<signal>() の宣言は読みにくいものとなる。"
6621
6622 #. type: Plain text
6623 #: build/C/man2/signal.2:166
6624 #, no-wrap
6625 msgid "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6626 msgstr "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6627
6628 #. type: SS
6629 #: build/C/man2/signal.2:168
6630 #, no-wrap
6631 msgid "Portability"
6632 msgstr "移植性"
6633
6634 #. type: Plain text
6635 #: build/C/man2/signal.2:180
6636 msgid ""
6637 "The only portable use of B<signal>()  is to set a signal's disposition to "
6638 "B<SIG_DFL> or B<SIG_IGN>.  The semantics when using B<signal>()  to "
6639 "establish a signal handler vary across systems (and POSIX.1 explicitly "
6640 "permits this variation); B<do not use it for this purpose.>"
6641 msgstr ""
6642 "移植性のある B<signal>()  の使い方は、シグナルの処理方法を B<SIG_DFL> か "
6643 "B<SIG_IGN> に設定する方法だけである。 シグナル・ハンドラを設定するのに "
6644 "B<signal>()  を使ったときの動作はシステムにより異なる (POSIX.1 は明示的にこの"
6645 "違いを認めている)。 B<移植性が必要なときはこのシステムコールを使用しないこ"
6646 "と。>"
6647
6648 #. type: Plain text
6649 #: build/C/man2/signal.2:186
6650 msgid ""
6651 "POSIX.1 solved the portability mess by specifying B<sigaction>(2), which "
6652 "provides explicit control of the semantics when a signal handler is invoked; "
6653 "use that interface instead of B<signal>()."
6654 msgstr ""
6655 "POSIX.1 は、 B<sigaction>(2)  を規定することで移植性に関する混乱を解決した。 "
6656 "B<sigaction>(2)  はシグナル・ハンドラが起動される際の挙動を明示的に制御でき"
6657 "る。 B<signal>()  の代わりにこのインターフェイスを使うこと。"
6658
6659 #. type: Plain text
6660 #: build/C/man2/signal.2:196
6661 msgid ""
6662 "In the original UNIX systems, when a handler that was established using "
6663 "B<signal>()  was invoked by the delivery of a signal, the disposition of the "
6664 "signal would be reset to B<SIG_DFL>, and the system did not block delivery "
6665 "of further instances of the signal.  This is equivalent to calling "
6666 "B<sigaction>(2)  with the following flags:"
6667 msgstr ""
6668 "オリジナルの UNIX システムでは、 B<signal>()  を使って設定されたハンドラがシ"
6669 "グナルの配送により起動されると、 そのシグナルの処理方法は B<SIG_DFL> にリセッ"
6670 "トされ、システムは同じシグナルがさらに生成されても シグナルの配送をブロックし"
6671 "なかった。これは、以下のフラグで B<sigaction>(2) を呼び出すのと等価である。"
6672
6673 #. type: Plain text
6674 #: build/C/man2/signal.2:198
6675 #, no-wrap
6676 msgid "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6677 msgstr "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6678
6679 #. type: Plain text
6680 #: build/C/man2/signal.2:205
6681 msgid ""
6682 "System V also provides these semantics for B<signal>().  This was bad "
6683 "because the signal might be delivered again before the handler had a chance "
6684 "to reestablish itself.  Furthermore, rapid deliveries of the same signal "
6685 "could result in recursive invocations of the handler."
6686 msgstr ""
6687 "System V でも、 B<signal>()  に対してこれらの挙動を規定している。 こうした挙"
6688 "動はまずく、ハンドラがハンドラ自身を再設定する機会が 来るより前に、同じシグナ"
6689 "ルがまた配送される可能性がある。 さらに、同じシグナルが立て続けに配送される"
6690 "と、同じシグナルが ハンドラを繰り返し起動されることになる。"
6691
6692 #. type: Plain text
6693 #: build/C/man2/signal.2:220
6694 msgid ""
6695 "BSD improved on this situation, but unfortunately also changed the semantics "
6696 "of the existing B<signal>()  interface while doing so.  On BSD, when a "
6697 "signal handler is invoked, the signal disposition is not reset, and further "
6698 "instances of the signal are blocked from being delivered while the handler "
6699 "is executing.  Furthermore, certain blocking system calls are automatically "
6700 "restarted if interrupted by a signal handler (see B<signal>(7)).  The BSD "
6701 "semantics are equivalent to calling B<sigaction>(2)  with the following "
6702 "flags:"
6703 msgstr ""
6704 "BSD はこの状況が改善したが、残念なことに、その過程で既存の B<signal>() の挙動"
6705 "も変更された。 BSD では、シグナルハンドラが起動された際、 シグナルの処理方法"
6706 "はリセットされず、 ハンドラの実行中は、同じシグナルのさらなる生成は配送がブ"
6707 "ロックされる。 また、 シグナルハンドラが中断された場合、 停止中のシステムコー"
6708 "ルのいくつかは自動的に再スタートされる。 BSD の挙動は、 以下のフラグを指定し"
6709 "た B<sigaction>(2) の呼び出しと等価である。"
6710
6711 #. type: Plain text
6712 #: build/C/man2/signal.2:222
6713 #, no-wrap
6714 msgid "    sa.sa_flags = SA_RESTART;\n"
6715 msgstr "    sa.sa_flags = SA_RESTART;\n"
6716
6717 #. type: Plain text
6718 #: build/C/man2/signal.2:224
6719 msgid "The situation on Linux is as follows:"
6720 msgstr "Linux での状況は以下の通りである。"
6721
6722 #. type: Plain text
6723 #: build/C/man2/signal.2:228
6724 msgid "The kernel's B<signal>()  system call provides System V semantics."
6725 msgstr "カーネルの B<signal>()  システムコールは System V 方式を提供している。"
6726
6727 #. type: Plain text
6728 #: build/C/man2/signal.2:244
6729 msgid ""
6730 "By default, in glibc 2 and later, the B<signal>()  wrapper function does not "
6731 "invoke the kernel system call.  Instead, it calls B<sigaction>(2)  using "
6732 "flags that supply BSD semantics.  This default behavior is provided as long "
6733 "as the B<_BSD_SOURCE> feature test macro is defined.  By default, "
6734 "B<_BSD_SOURCE> is defined; it is also implicitly defined if one defines "
6735 "B<_GNU_SOURCE>, and can of course be explicitly defined."
6736 msgstr ""
6737 "デフォルトでは、glibc 2 以降では、 B<signal>()  ラッパー関数はカーネルのシス"
6738 "テムコールを起動しない。 代わりに、ラッパー関数は BSD 方式を示すフラグを使っ"
6739 "て B<sigaction>(2)  を呼び出す。 機能検査マクロ B<_BSD_SOURCE> を定義していれ"
6740 "ば、このデフォルトの動作となる。 デフォルトでは、 B<_BSD_SOURCE> が定義され"
6741 "る。 B<_BSD_SOURCE> は B<_GNU_SOURCE> が定義された場合には暗黙のうちに定義さ"
6742 "れ、 もちろん明示的に定義することもできる。"
6743
6744 #.  System V semantics are also provided if one uses the separate
6745 #.  .BR sysv_signal (3)
6746 #.  function.
6747 #. type: Plain text
6748 #: build/C/man2/signal.2:267
6749 msgid ""
6750 "On glibc 2 and later, if the B<_BSD_SOURCE> feature test macro is not "
6751 "defined, then B<signal>()  provides System V semantics.  (The default "
6752 "implicit definition of B<_BSD_SOURCE> is not provided if one invokes B<gcc>"
6753 "(1)  in one of its standard modes (I<-std=xxx> or I<-ansi>)  or defines "
6754 "various other feature test macros such as B<_POSIX_SOURCE>, "
6755 "B<_XOPEN_SOURCE>, or B<_SVID_SOURCE>; see B<feature_test_macros>(7).)"
6756 msgstr ""
6757 "glibc 2 以降では、機能検査マクロ B<_BSD_SOURCE> が定義されていなければ、 "
6758 "B<signal>()  は System V 方式となる。 (B<gcc>(1)  が標準指定モード (I<-"
6759 "std=xxx> or I<-ansi>)  で起動された場合、もしくは B<_POSIX_SOURCE>, "
6760 "B<_XOPEN_SOURCE>, B<_SVID_SOURCE> といった他の様々な機能検査マクロが定義され"
6761 "た場合、 デフォルトの B<_BSD_SOURCE> の暗黙の定義は行われない。 "
6762 "B<feature_test_macros>(7)  を参照のこと。)"
6763
6764 #. type: Plain text
6765 #: build/C/man2/signal.2:278
6766 msgid ""
6767 "The B<signal>()  function in Linux libc4 and libc5 provide System V "
6768 "semantics.  If one on a libc5 system includes I<E<lt>bsd/signal.hE<gt>> "
6769 "instead of I<E<lt>signal.hE<gt>>, then B<signal>()  provides BSD semantics."
6770 msgstr ""
6771 "Linux の libc4 と libc5 の B<signal>()  関数は System V 方式である。 libc5 シ"
6772 "ステムにおいて I<E<lt>signal.hE<gt>> のかわりに I<E<lt>bsd/signal.hE<gt>> を"
6773 "インクルードすると、 B<signal>()  は B<__bsd_signal>()  に再定義され、 "
6774 "B<signal>()  は BSD 方式となる。"
6775
6776 #. type: Plain text
6777 #: build/C/man2/signal.2:297
6778 msgid ""
6779 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaction>"
6780 "(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6781 "B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6782 "B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), B<signal>(7)"
6783 msgstr ""
6784 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaction>"
6785 "(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6786 "B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6787 "B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), B<signal>(7)"
6788
6789 #. type: Plain text
6790 #: build/C/man7/signal.7:49
6791 msgid "signal - overview of signals"
6792 msgstr "signal - シグナルの概要"
6793
6794 #. type: Plain text
6795 #: build/C/man7/signal.7:52
6796 msgid ""
6797 "Linux supports both POSIX reliable signals (hereinafter \"standard signals"
6798 "\") and POSIX real-time signals."
6799 msgstr ""
6800 "Linux は POSIX 信頼シグナル (reliable signal; 以後 \"標準シグナル\"と表記)  "
6801 "と POSIX リアルタイムシグナルの両方に対応している。"
6802
6803 #. type: SS
6804 #: build/C/man7/signal.7:52
6805 #, no-wrap
6806 msgid "Signal dispositions"
6807 msgstr "シグナル処理方法"
6808
6809 #. type: Plain text
6810 #: build/C/man7/signal.7:57
6811 msgid ""
6812 "Each signal has a current I<disposition>, which determines how the process "
6813 "behaves when it is delivered the signal."
6814 msgstr ""
6815 "シグナルはそれぞれ現在の「処理方法 (disposition)」を保持しており、 この処理方"
6816 "法によりシグナルが配送された際にプロセスが どのような振舞いをするかが決まる。"
6817
6818 #. type: Plain text
6819 #: build/C/man7/signal.7:60
6820 msgid ""
6821 "The entries in the \"Action\" column of the tables below specify the default "
6822 "disposition for each signal, as follows:"
6823 msgstr ""
6824 "後述の表の \"動作\" の欄のエントリは各シグナルのデフォルトの 処理方法を示して"
6825 "おり、以下のような意味を持つ。"
6826
6827 #. type: IP
6828 #: build/C/man7/signal.7:60
6829 #, no-wrap
6830 msgid "Term"
6831 msgstr "Term"
6832
6833 #. type: Plain text
6834 #: build/C/man7/signal.7:62
6835 msgid "Default action is to terminate the process."
6836 msgstr "デフォルトの動作はプロセス終了。"
6837
6838 #. type: IP
6839 #: build/C/man7/signal.7:62
6840 #, no-wrap
6841 msgid "Ign"
6842 msgstr "Ign"
6843
6844 #. type: Plain text
6845 #: build/C/man7/signal.7:64
6846 msgid "Default action is to ignore the signal."
6847 msgstr "デフォルトの動作はこのシグナルの無視。"
6848
6849 #. type: IP
6850 #: build/C/man7/signal.7:64
6851 #, no-wrap
6852 msgid "Core"
6853 msgstr "Core"
6854
6855 #. type: Plain text
6856 #: build/C/man7/signal.7:67
6857 msgid ""
6858 "Default action is to terminate the process and dump core (see B<core>(5))."
6859 msgstr "デフォルトの動作はプロセス終了とコアダンプ出力 (B<core>(5)  参照)。"
6860
6861 #. type: IP
6862 #: build/C/man7/signal.7:67
6863 #, no-wrap
6864 msgid "Stop"
6865 msgstr "Stop"
6866
6867 #. type: Plain text
6868 #: build/C/man7/signal.7:69
6869 msgid "Default action is to stop the process."
6870 msgstr "デフォルトの動作はプロセスの一時停止。"
6871
6872 #. type: IP
6873 #: build/C/man7/signal.7:69
6874 #, no-wrap
6875 msgid "Cont"
6876 msgstr "Cont"
6877
6878 #. type: Plain text
6879 #: build/C/man7/signal.7:71
6880 msgid "Default action is to continue the process if it is currently stopped."
6881 msgstr "デフォルトの動作は、プロセスが停止中の場合にその実行の再開。"
6882
6883 #. type: Plain text
6884 #: build/C/man7/signal.7:93
6885 msgid ""
6886 "A process can change the disposition of a signal using B<sigaction>(2)  or "
6887 "B<signal>(2).  (The latter is less portable when establishing a signal "
6888 "handler; see B<signal>(2)  for details.)  Using these system calls, a "
6889 "process can elect one of the following behaviors to occur on delivery of the "
6890 "signal: perform the default action; ignore the signal; or catch the signal "
6891 "with a I<signal handler>, a programmer-defined function that is "
6892 "automatically invoked when the signal is delivered.  (By default, the signal "
6893 "handler is invoked on the normal process stack.  It is possible to arrange "
6894 "that the signal handler uses an alternate stack; see B<sigaltstack>(2)  for "
6895 "a discussion of how to do this and when it might be useful.)"
6896 msgstr ""
6897 "プロセスは、 B<sigaction>(2)  や B<signal>(2)  を使って、シグナルの処理方法を"
6898 "変更することができる (B<signal>(2)  の方がシグナルハンドラを設定する際の移植"
6899 "性が低い; 詳細は B<signal>(2)  を参照)。 シグナルの配送時に起こる動作として "
6900 "プロセスが選択できるのは、次のいずれか一つである。 デフォルトの動作を実行す"
6901 "る、シグナルを無視する、 I<シグナルハンドラ (signal handler)> でシグナルを捕"
6902 "捉する。シグナルハンドラとは、シグナル配送時に 自動的に起動されるプログラマ定"
6903 "義の関数である。 (デフォルトでは、シグナルハンドラは通常のプロセスのスタック"
6904 "上で起動される。 シグナルハンドラが代替スタック (alternate stack) を使用する"
6905 "ように設定する こともできる。代替スタックを使用するように設定する方法と、どの"
6906 "ような際に 代替スタックが役に立つかについての議論については B<sigaltstack>"
6907 "(2)  を参照のこと。"
6908
6909 #. type: Plain text
6910 #: build/C/man7/signal.7:97
6911 msgid ""
6912 "The signal disposition is a per-process attribute: in a multithreaded "
6913 "application, the disposition of a particular signal is the same for all "
6914 "threads."
6915 msgstr ""
6916 "シグナルの処理方法はプロセス単位の属性である。 マルチスレッドのアプリケーショ"
6917 "ンでは、あるシグナルの処理方法は 全てのスレッドで同じである。"
6918
6919 #. type: SS
6920 #: build/C/man7/signal.7:105
6921 #, no-wrap
6922 msgid "Sending a signal"
6923 msgstr "シグナルの送信"
6924
6925 #. type: Plain text
6926 #: build/C/man7/signal.7:108
6927 msgid ""
6928 "The following system calls and library functions allow the caller to send a "
6929 "signal:"
6930 msgstr ""
6931 "以下のシステムコールとライブラリ関数を使って、 呼び出し者はシグナルを送信する"
6932 "ことができる。"
6933
6934 #. type: TP
6935 #: build/C/man7/signal.7:108
6936 #, no-wrap
6937 msgid "B<raise>(3)"
6938 msgstr "B<raise>(3)"
6939
6940 #. type: Plain text
6941 #: build/C/man7/signal.7:111
6942 msgid "Sends a signal to the calling thread."
6943 msgstr "呼び出したスレッドにシグナルを送る。"
6944
6945 #. type: Plain text
6946 #: build/C/man7/signal.7:116
6947 msgid ""
6948 "Sends a signal to a specified process, to all members of a specified process "
6949 "group, or to all processes on the system."
6950 msgstr ""
6951 "指定されたプロセスや、指定されたプロセスグループの全メンバー、 システムの全プ"
6952 "ロセスにシグナルを送る。"
6953
6954 #. type: TP
6955 #: build/C/man7/signal.7:116
6956 #, no-wrap
6957 msgid "B<killpg>(2)"
6958 msgstr "B<killpg>(2)"
6959
6960 #. type: Plain text
6961 #: build/C/man7/signal.7:119
6962 msgid "Sends a signal to all of the members of a specified process group."
6963 msgstr "指定されたプロセスグループの全メンバーにシグナルを送る。"
6964
6965 #. type: TP
6966 #: build/C/man7/signal.7:119
6967 #, no-wrap
6968 msgid "B<pthread_kill>(3)"
6969 msgstr "B<pthread_kill>(3)"
6970
6971 #. type: Plain text
6972 #: build/C/man7/signal.7:123
6973 msgid ""
6974 "Sends a signal to a specified POSIX thread in the same process as the caller."
6975 msgstr ""
6976 "呼び出し者と同じプロセス内の指定された POSIX スレッドにシグナルを送る。"
6977
6978 #. type: TP
6979 #: build/C/man7/signal.7:123
6980 #, no-wrap
6981 msgid "B<tgkill>(2)"
6982 msgstr "B<tgkill>(2)"
6983
6984 #. type: Plain text
6985 #: build/C/man7/signal.7:128
6986 msgid ""
6987 "Sends a signal to a specified thread within a specific process.  (This is "
6988 "the system call used to implement B<pthread_kill>(3).)"
6989 msgstr ""
6990 "指定されたプロセス内の指定されたスレッドにシグナルを送る (このシステムコール"
6991 "を使って B<pthread_kill>(3)  は実装されている)。"
6992
6993 #. type: Plain text
6994 #: build/C/man7/signal.7:131
6995 msgid "Sends a real-time signal with accompanying data to a specified process."
6996 msgstr "指定されたプロセスに付属データとともにリアルタイムシグナルを送る。"
6997
6998 #. type: SS
6999 #: build/C/man7/signal.7:131
7000 #, no-wrap
7001 msgid "Waiting for a signal to be caught"
7002 msgstr "シグナルが捕捉されるのを待つ"
7003
7004 #. type: Plain text
7005 #: build/C/man7/signal.7:135
7006 msgid ""
7007 "The following system calls suspend execution of the calling process or "
7008 "thread until a signal is caught (or an unhandled signal terminates the "
7009 "process):"
7010 msgstr ""
7011 "以下のシステムコールを使って、シグナルが捕捉されるまで 呼び出したプロセスやス"
7012 "レッドの実行を中断 (suspend) することができる (ハンドラが設定されていないシグ"
7013 "ナルによりそのプロセスが終了した 場合にも実行の停止は終了する)。"
7014
7015 #. type: TP
7016 #: build/C/man7/signal.7:135
7017 #, no-wrap
7018 msgid "B<pause>(2)"
7019 msgstr "B<pause>(2)"
7020
7021 #. type: Plain text
7022 #: build/C/man7/signal.7:138
7023 msgid "Suspends execution until any signal is caught."
7024 msgstr "何かシグナルが捕捉されるまで実行を停止する。"
7025
7026 #. type: TP
7027 #: build/C/man7/signal.7:138
7028 #, no-wrap
7029 msgid "B<sigsuspend>(2)"
7030 msgstr "B<sigsuspend>(2)"
7031
7032 #. type: Plain text
7033 #: build/C/man7/signal.7:142
7034 msgid ""
7035 "Temporarily changes the signal mask (see below) and suspends execution until "
7036 "one of the unmasked signals is caught."
7037 msgstr ""
7038 "一時的にシグナルマスク (下記参照) を変更し、 マスクされていないシグナルのいず"
7039 "れかが捕捉されるまで 実行を中断する。"
7040
7041 #. type: SS
7042 #: build/C/man7/signal.7:142
7043 #, no-wrap
7044 msgid "Synchronously accepting a signal"
7045 msgstr "シグナルの同期受信"
7046
7047 #. type: Plain text
7048 #: build/C/man7/signal.7:149
7049 msgid ""
7050 "Rather than asynchronously catching a signal via a signal handler, it is "
7051 "possible to synchronously accept the signal, that is, to block execution "
7052 "until the signal is delivered, at which point the kernel returns information "
7053 "about the signal to the caller.  There are two general ways to do this:"
7054 msgstr ""
7055 "シグナルハンドラ経由でシグナルを非同期 (asynchronously) で捕捉する以外にも、 "
7056 "シグナルを同期 (synchronously) して受け付けることもできる。 同期して受け付け"
7057 "るとは、シグナルが配送されるまで実行を停止 (block)  するということである。シ"
7058 "グナルを受け付けた際に、カーネルは そのシグナルに関する情報を呼び出し者に返"
7059 "す。 これを行う一般的な方法が二つある。"
7060
7061 #. type: Plain text
7062 #: build/C/man7/signal.7:157
7063 msgid ""
7064 "B<sigwaitinfo>(2), B<sigtimedwait>(2), and B<sigwait>(3)  suspend execution "
7065 "until one of the signals in a specified set is delivered.  Each of these "
7066 "calls returns information about the delivered signal."
7067 msgstr ""
7068 "B<sigwaitinfo>(2), B<sigtimedwait>(2), B<sigwait>(3)  は、指定されたシグナル"
7069 "集合のシグナルの一つが配送されるまで実行を中断する。 どのシステムコールや関数"
7070 "でも、配送されたシグナルに関する情報が返される。"
7071
7072 #. type: Plain text
7073 #: build/C/man7/signal.7:170
7074 msgid ""
7075 "B<signalfd>(2)  returns a file descriptor that can be used to read "
7076 "information about signals that are delivered to the caller.  Each B<read>"
7077 "(2)  from this file descriptor blocks until one of the signals in the set "
7078 "specified in the B<signalfd>(2)  call is delivered to the caller.  The "
7079 "buffer returned by B<read>(2)  contains a structure describing the signal."
7080 msgstr ""
7081 "B<signalfd>(2)  が返すファイルディスクリプタを使うと、呼び出し元に配送された "
7082 "シグナルに関する情報を読み出すことができる。 このファイルディスクリプタから"
7083 "の B<read>(2)  は、 B<signalfd>(2)  の呼び出し時に指定されたシグナル集合のシ"
7084 "グナルの一つが呼び出し元に 配送されるまで停止 (block) する。 B<read>(2)  が返"
7085 "すバッファにはシグナルに関する情報を格納した構造体が入っている。"
7086
7087 #. type: SS
7088 #: build/C/man7/signal.7:170
7089 #, no-wrap
7090 msgid "Signal mask and pending signals"
7091 msgstr "シグナルマスクと処理待ちシグナル"
7092
7093 #. type: Plain text
7094 #: build/C/man7/signal.7:177
7095 msgid ""
7096 "A signal may be I<blocked>, which means that it will not be delivered until "
7097 "it is later unblocked.  Between the time when it is generated and when it is "
7098 "delivered a signal is said to be I<pending>."
7099 msgstr ""
7100 "シグナルは I<ブロック (block)> されることがある。ブロックされると、そのシグナ"
7101 "ルは その後ブロックを解除されるまで配送されなくなる。 シグナルが生成されてか"
7102 "ら配送されるまでの間、そのシグナルは I<処理待ち (pending)> であると呼ばれる。"
7103
7104 #. type: Plain text
7105 #: build/C/man7/signal.7:186
7106 msgid ""
7107 "Each thread in a process has an independent I<signal mask>, which indicates "
7108 "the set of signals that the thread is currently blocking.  A thread can "
7109 "manipulate its signal mask using B<pthread_sigmask>(3).  In a traditional "
7110 "single-threaded application, B<sigprocmask>(2)  can be used to manipulate "
7111 "the signal mask."
7112 msgstr ""
7113 "プロセス内の各スレッドは、それぞれ独立な I<シグナルマスク (signal mask)> を持"
7114 "つ。シグナルマスクはそのスレッドが現在ブロックしている シグナル集合を示すもの"
7115 "である。 スレッドは、 B<pthread_sigmask>(3)  を使って自分のシグナルマスクを操"
7116 "作できる。 伝統的なシングルスレッドのアプリケーションでは、 B<sigprocmask>"
7117 "(2)  を使って、シグナルマスクを操作できる。"
7118
7119 #. type: Plain text
7120 #: build/C/man7/signal.7:192 build/C/man2/sigprocmask.2:126
7121 msgid ""
7122 "A child created via B<fork>(2)  inherits a copy of its parent's signal mask; "
7123 "the signal mask is preserved across B<execve>(2)."
7124 msgstr ""
7125 "B<fork>(2)  経由で作成された子プロセスは親プロセスのシグナルマスクのコピーを"
7126 "継承する。 B<execve>(2)  の前後でシグナルマスクは保持される。"
7127
7128 #. type: Plain text
7129 #: build/C/man7/signal.7:209
7130 msgid ""
7131 "A signal may be generated (and thus pending)  for a process as a whole (e."
7132 "g., when sent using B<kill>(2))  or for a specific thread (e.g., certain "
7133 "signals, such as B<SIGSEGV> and B<SIGFPE>, generated as a consequence of "
7134 "executing a specific machine-language instruction are thread directed, as "
7135 "are signals targeted at a specific thread using B<pthread_kill>(3)).  A "
7136 "process-directed signal may be delivered to any one of the threads that does "
7137 "not currently have the signal blocked.  If more than one of the threads has "
7138 "the signal unblocked, then the kernel chooses an arbitrary thread to which "
7139 "to deliver the signal."
7140 msgstr ""
7141 "生成されるシグナル (したがって処理待ちとなるシグナル) には、 プロセス全体宛て"
7142 "と特定のスレッド宛てがある。 例えば、プロセス全体宛てのシグナルは B<kill>"
7143 "(2)  を使って送信される。 特定のマシン語の命令の実行の結果として生成される、 "
7144 "B<SIGSEGV> や B<SIGFPE> などのシグナルは、スレッド宛てとなる。 また、 "
7145 "B<pthread_kill>(3)  を使って特定のスレッド宛てに生成されたシグナルも スレッド"
7146 "宛てとなる。 プロセス宛てのシグナルは、そのシグナルをブロックしていないスレッ"
7147 "ドのうち いずれかの一つに配送することができる。そのシグナルをブロックしていな"
7148 "い スレッドが複数ある場合、シグナルを配送するスレッドはカーネルが 無作為に選"
7149 "択する。"
7150
7151 #. type: Plain text
7152 #: build/C/man7/signal.7:216
7153 msgid ""
7154 "A thread can obtain the set of signals that it currently has pending using "
7155 "B<sigpending>(2).  This set will consist of the union of the set of pending "
7156 "process-directed signals and the set of signals pending for the calling "
7157 "thread."
7158 msgstr ""
7159 "スレッドは、 B<sigpending>(2)  を使って、現在処理待ちのシグナル集合を取得する"
7160 "ことができる。 この集合は、プロセス宛ての処理待ちシグナルと 呼び出したスレッ"
7161 "ド宛てのシグナルの両方から構成される。"
7162
7163 #. type: Plain text
7164 #: build/C/man7/signal.7:222 build/C/man2/sigpending.2:81
7165 msgid ""
7166 "A child created via B<fork>(2)  initially has an empty pending signal set; "
7167 "the pending signal set is preserved across an B<execve>(2)."
7168 msgstr ""
7169 "B<fork>(2)  経由で作成された子プロセスでは、処理待ちのシグナル集合は空の集合"
7170 "で初期化される。 B<execve>(2)  の前後で、処理待ちのシグナル集合は保持される。"
7171
7172 #. type: SS
7173 #: build/C/man7/signal.7:222
7174 #, no-wrap
7175 msgid "Standard signals"
7176 msgstr "標準シグナル"
7177
7178 #. type: Plain text
7179 #: build/C/man7/signal.7:234
7180 msgid ""
7181 "Linux supports the standard signals listed below.  Several signal numbers "
7182 "are architecture-dependent, as indicated in the \"Value\" column.  (Where "
7183 "three values are given, the first one is usually valid for alpha and sparc, "
7184 "the middle one for x86, arm, and most other architectures, and the last one "
7185 "for mips.  (Values for parisc are I<not> shown; see the Linux kernel source "
7186 "for signal numbering on that architecture.)  A - denotes that a signal is "
7187 "absent on the corresponding architecture.)"
7188 msgstr ""
7189 "Linux は以下に示す標準シグナルに対応している。シグナル番号の一部はアー\n"
7190 "キテクチャ依存であり、\"値\" 欄に示す通りである。 (3つの値が書かれている\n"
7191 "ものは、 1つ目が alpha と sparc で通常有効な値、 真ん中が x86, arm や\n"
7192 "他のほとんどのアーキテクチャでの有効な値、最後が mips での値である。\n"
7193 "(parisc での値は記載されてI<いない>。 parisc でのシグナル番号は\n"
7194 "Linux カーネルソースを参照してほしい)。 - はそのアーキテ\n"
7195 "クチャにおいて対応するシグナルがないことを示す。)"
7196
7197 #. type: Plain text
7198 #: build/C/man7/signal.7:236
7199 msgid "First the signals described in the original POSIX.1-1990 standard."
7200 msgstr "最初に、POSIX.1-1990 に定義されているシグナルを示す。"
7201
7202 #. type: tbl table
7203 #: build/C/man7/signal.7:240 build/C/man7/signal.7:276
7204 #: build/C/man7/signal.7:305
7205 #, no-wrap
7206 msgid "Signal\tValue\tAction\tComment\n"
7207 msgstr "シグナル\t値\t動作\tコメント\n"
7208
7209 #. type: tbl table
7210 #: build/C/man7/signal.7:241
7211 #, no-wrap
7212 msgid "SIGHUP\t\\01\tTerm\tHangup detected on controlling terminal\n"
7213 msgstr "SIGHUP\t\\01\tTerm\t制御端末(controlling terminal)のハングアップ検出、\n"
7214
7215 #. type: tbl table
7216 #: build/C/man7/signal.7:242
7217 #, no-wrap
7218 msgid "\t\t\tor death of controlling process\n"
7219 msgstr "\t\t\tまたは制御しているプロセスの死\n"
7220
7221 #. type: tbl table
7222 #: build/C/man7/signal.7:243
7223 #, no-wrap
7224 msgid "SIGINT\t\\02\tTerm\tInterrupt from keyboard\n"
7225 msgstr "SIGINT\t\\02\tTerm\tキーボードからの割り込み (Interrupt)\n"
7226
7227 #. type: tbl table
7228 #: build/C/man7/signal.7:244
7229 #, no-wrap
7230 msgid "SIGQUIT\t\\03\tCore\tQuit from keyboard\n"
7231 msgstr "SIGQUIT\t\\03\tCore\tキーボードによる中止 (Quit)\n"
7232
7233 #. type: tbl table
7234 #: build/C/man7/signal.7:245
7235 #, no-wrap
7236 msgid "SIGILL\t\\04\tCore\tIllegal Instruction\n"
7237 msgstr "SIGILL\t\\04\tCore\t不正な命令\n"
7238
7239 #. type: tbl table
7240 #: build/C/man7/signal.7:246
7241 #, no-wrap
7242 msgid "SIGABRT\t\\06\tCore\tAbort signal from B<abort>(3)\n"
7243 msgstr "SIGABRT\t\\06\tCore\tB<abort>(3) からの中断 (Abort) シグナル\n"
7244
7245 #. type: tbl table
7246 #: build/C/man7/signal.7:247
7247 #, no-wrap
7248 msgid "SIGFPE\t\\08\tCore\tFloating point exception\n"
7249 msgstr "SIGFPE\t\\08\tCore\t浮動小数点例外\n"
7250
7251 #. type: tbl table
7252 #: build/C/man7/signal.7:248
7253 #, no-wrap
7254 msgid "SIGKILL\t\\09\tTerm\tKill signal\n"
7255 msgstr "SIGKILL\t\\09\tTerm\tKill シグナル\n"
7256
7257 #. type: tbl table
7258 #: build/C/man7/signal.7:249
7259 #, no-wrap
7260 msgid "SIGSEGV\t11\tCore\tInvalid memory reference\n"
7261 msgstr "SIGSEGV\t11\tCore\t不正なメモリ参照\n"
7262
7263 #. type: tbl table
7264 #: build/C/man7/signal.7:250
7265 #, no-wrap
7266 msgid "SIGPIPE\t13\tTerm\tBroken pipe: write to pipe with no\n"
7267 msgstr "SIGPIPE\t13\tTerm\tパイプ破壊:\n"
7268
7269 #. type: tbl table
7270 #: build/C/man7/signal.7:251
7271 #, no-wrap
7272 msgid "\t\t\treaders\n"
7273 msgstr "\t\t\t読み手の無いパイプへの書き出し\n"
7274
7275 #. type: tbl table
7276 #: build/C/man7/signal.7:252
7277 #, no-wrap
7278 msgid "SIGALRM\t14\tTerm\tTimer signal from B<alarm>(2)\n"
7279 msgstr "SIGALRM\t14\tTerm\tB<alarm>(2) からのタイマーシグナル\n"
7280
7281 #. type: tbl table
7282 #: build/C/man7/signal.7:253
7283 #, no-wrap
7284 msgid "SIGTERM\t15\tTerm\tTermination signal\n"
7285 msgstr "SIGTERM\t15\tTerm\t終了 (termination) シグナル\n"
7286
7287 #. type: tbl table
7288 #: build/C/man7/signal.7:254
7289 #, no-wrap
7290 msgid "SIGUSR1\t30,10,16\tTerm\tUser-defined signal 1\n"
7291 msgstr "SIGUSR1\t30,10,16\tTerm\tユーザ定義シグナル 1\n"
7292
7293 #. type: tbl table
7294 #: build/C/man7/signal.7:255
7295 #, no-wrap
7296 msgid "SIGUSR2\t31,12,17\tTerm\tUser-defined signal 2\n"
7297 msgstr "SIGUSR2\t31,12,17\tTerm\tユーザ定義シグナル 2\n"
7298
7299 #. type: tbl table
7300 #: build/C/man7/signal.7:256
7301 #, no-wrap
7302 msgid "SIGCHLD\t20,17,18\tIgn\tChild stopped or terminated\n"
7303 msgstr "SIGCHLD\t20,17,18\tIgn\t子プロセスの一時停止 (stop) または終了\n"
7304
7305 #. type: tbl table
7306 #: build/C/man7/signal.7:257
7307 #, no-wrap
7308 msgid "SIGCONT\t19,18,25\tCont\tContinue if stopped\n"
7309 msgstr "SIGCONT\t19,18,25\tCont\t一時停止 (stop) からの再開\n"
7310
7311 #. type: tbl table
7312 #: build/C/man7/signal.7:258
7313 #, no-wrap
7314 msgid "SIGSTOP\t17,19,23\tStop\tStop process\n"
7315 msgstr "SIGSTOP\t17,19,23\tStop\tプロセスの一時停止 (stop)\n"
7316
7317 #. type: tbl table
7318 #: build/C/man7/signal.7:259
7319 #, no-wrap
7320 msgid "SIGTSTP\t18,20,24\tStop\tStop typed at terminal\n"
7321 msgstr "SIGTSTP\t18,20,24\tStop\t端末より入力された一時停止 (stop)\n"
7322
7323 #. type: tbl table
7324 #: build/C/man7/signal.7:260
7325 #, no-wrap
7326 msgid "SIGTTIN\t21,21,26\tStop\tTerminal input for background process\n"
7327 msgstr "SIGTTIN\t21,21,26\tStop\tバックグランドプロセスの端末入力\n"
7328
7329 #. type: tbl table
7330 #: build/C/man7/signal.7:261
7331 #, no-wrap
7332 msgid "SIGTTOU\t22,22,27\tStop\tTerminal output for background process\n"
7333 msgstr "SIGTTOU\t22,22,27\tStop\tバックグランドプロセスの端末出力\n"
7334
7335 #. type: Plain text
7336 #: build/C/man7/signal.7:269
7337 msgid ""
7338 "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught, blocked, or ignored."
7339 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> はキャッチ、ブロック、無視できない。"
7340
7341 #. type: Plain text
7342 #: build/C/man7/signal.7:272
7343 msgid ""
7344 "Next the signals not in the POSIX.1-1990 standard but described in SUSv2 and "
7345 "POSIX.1-2001."
7346 msgstr ""
7347 "次に、 POSIX.1-1990 標準にはないが、 SUSv2 と POSIX.1-2001 に記述されているシ"
7348 "グナルを示す。"
7349
7350 #. type: tbl table
7351 #: build/C/man7/signal.7:277
7352 #, no-wrap
7353 msgid "SIGBUS\t10,7,10\tCore\tBus error (bad memory access)\n"
7354 msgstr "SIGBUS\t10,7,10\tCore\tバスエラー (不正なメモリアクセス)\n"
7355
7356 #. type: tbl table
7357 #: build/C/man7/signal.7:278
7358 #, no-wrap
7359 msgid "SIGPOLL\t\tTerm\tPollable event (Sys V).\n"
7360 msgstr "SIGPOLL\t\tTerm\tポーリング可能なイベント (Sys V)。\n"
7361
7362 #. type: tbl table
7363 #: build/C/man7/signal.7:279
7364 #, no-wrap
7365 msgid "\t\t\tSynonym for B<SIGIO>\n"
7366 msgstr "\t\t\tB<SIGIO> と同義\n"
7367
7368 #. type: tbl table
7369 #: build/C/man7/signal.7:280
7370 #, no-wrap
7371 msgid "SIGPROF\t27,27,29\tTerm\tProfiling timer expired\n"
7372 msgstr "SIGPROF\t27,27,29\tTerm\tprofiling タイマの時間切れ\n"
7373
7374 #. type: tbl table
7375 #: build/C/man7/signal.7:281
7376 #, no-wrap
7377 msgid "SIGSYS\t12,31,12\tCore\tBad argument to routine (SVr4)\n"
7378 msgstr "SIGSYS\t12,31,12\tCore\tルーチンへの引き数が不正 (SVr4)\n"
7379
7380 #. type: tbl table
7381 #: build/C/man7/signal.7:282
7382 #, no-wrap
7383 msgid "SIGTRAP\t5\tCore\tTrace/breakpoint trap\n"
7384 msgstr "SIGTRAP\t5\tCore\tトレース/ブレークポイント トラップ\n"
7385
7386 #. type: tbl table
7387 #: build/C/man7/signal.7:283
7388 #, no-wrap
7389 msgid "SIGURG\t16,23,21\tIgn\tUrgent condition on socket (4.2BSD)\n"
7390 msgstr "SIGURG\t16,23,21\tIgn\tソケットの緊急事態 (urgent condition) (4.2BSD)\n"
7391
7392 #. type: tbl table
7393 #: build/C/man7/signal.7:284
7394 #, no-wrap
7395 msgid "SIGVTALRM\t26,26,28\tTerm\tVirtual alarm clock (4.2BSD)\n"
7396 msgstr "SIGVTALRM\t26,26,28\tTerm\t仮想アラームクロック (4.2BSD)\n"
7397
7398 #. type: tbl table
7399 #: build/C/man7/signal.7:285
7400 #, no-wrap
7401 msgid "SIGXCPU\t24,24,30\tCore\tCPU time limit exceeded (4.2BSD)\n"
7402 msgstr "SIGXCPU\t24,24,30\tCore\tCPU時間制限超過 (4.2BSD)\n"
7403
7404 #. type: tbl table
7405 #: build/C/man7/signal.7:286
7406 #, no-wrap
7407 msgid "SIGXFSZ\t25,25,31\tCore\tFile size limit exceeded (4.2BSD)\n"
7408 msgstr "SIGXFSZ\t25,25,31\tCore\tファイルサイズ制限の超過 (4.2BSD)\n"
7409
7410 #. type: Plain text
7411 #: build/C/man7/signal.7:299
7412 msgid ""
7413 "Up to and including Linux 2.2, the default behavior for B<SIGSYS>, "
7414 "B<SIGXCPU>, B<SIGXFSZ>, and (on architectures other than SPARC and MIPS)  "
7415 "B<SIGBUS> was to terminate the process (without a core dump).  (On some "
7416 "other UNIX systems the default action for B<SIGXCPU> and B<SIGXFSZ> is to "
7417 "terminate the process without a core dump.)  Linux 2.4 conforms to the "
7418 "POSIX.1-2001 requirements for these signals, terminating the process with a "
7419 "core dump."
7420 msgstr ""
7421 "Linux 2.2 以前では、 B<SIGSYS>, B<SIGXCPU>, B<SIGXFSZ> および SPARC と MIPS "
7422 "以外のアーキテクチャでの B<SIGBUS> のデフォルトの振る舞いは (コアダンプ出力な"
7423 "しの) プロセス終了であった。 (他の UNIX システムにも B<SIGXCPU> と "
7424 "B<SIGXFSZ> のデフォルトの動作がコアダンプなしのプロセス終了のものがある。)  "
7425 "Linux 2.4 では、POSIX.1-2001 での要求仕様に準拠して、 これらのシグナルで、プ"
7426 "ロセスを終了させ、コアダンプを出力する ようになっている。"
7427
7428 #. type: Plain text
7429 #: build/C/man7/signal.7:301
7430 msgid "Next various other signals."
7431 msgstr "次にその他の各種シグナルを示す。"
7432
7433 #. type: tbl table
7434 #: build/C/man7/signal.7:306
7435 #, no-wrap
7436 msgid "SIGIOT\t6\tCore\tIOT trap. A synonym for B<SIGABRT>\n"
7437 msgstr "SIGIOT\t6\tCore\tIOT トラップ。B<SIGABRT> と同義\n"
7438
7439 #. type: tbl table
7440 #: build/C/man7/signal.7:307
7441 #, no-wrap
7442 msgid "SIGEMT\t7,-,7\tTerm\n"
7443 msgstr "SIGEMT\t7,-,7\tTerm\n"
7444
7445 #. type: tbl table
7446 #: build/C/man7/signal.7:308
7447 #, no-wrap
7448 msgid "SIGSTKFLT\t-,16,-\tTerm\tStack fault on coprocessor (unused)\n"
7449 msgstr "SIGSTKFLT\t-,16,-\tA\t数値演算プロセッサにおけるスタックフォルト (未使用)\n"
7450
7451 #. type: tbl table
7452 #: build/C/man7/signal.7:309
7453 #, no-wrap
7454 msgid "SIGIO\t23,29,22\tTerm\tI/O now possible (4.2BSD)\n"
7455 msgstr "SIGIO\t23,29,22\tTerm\t入出力が可能になった (4.2BSD)\n"
7456
7457 #. type: tbl table
7458 #: build/C/man7/signal.7:310
7459 #, no-wrap
7460 msgid "SIGCLD\t-,-,18\tIgn\tA synonym for B<SIGCHLD>\n"
7461 msgstr "SIGCLD\t-,-,18\tIgn\tB<SIGCHLD> と同義\n"
7462
7463 #. type: tbl table
7464 #: build/C/man7/signal.7:311
7465 #, no-wrap
7466 msgid "SIGPWR\t29,30,19\tTerm\tPower failure (System V)\n"
7467 msgstr "SIGPWR\t29,30,19\tTerm\t電源喪失 (Power failure) (System V)\n"
7468
7469 #. type: tbl table
7470 #: build/C/man7/signal.7:312
7471 #, no-wrap
7472 msgid "SIGINFO\t29,-,-\t\tA synonym for B<SIGPWR>\n"
7473 msgstr "SIGINFO\t29,-,-\t \tB<SIGPWR> と同義\n"
7474
7475 #. type: tbl table
7476 #: build/C/man7/signal.7:313
7477 #, no-wrap
7478 msgid "SIGLOST\t-,-,-\tTerm\tFile lock lost (unused)\n"
7479 msgstr "SIGLOST\t-,-,-\tTerm\tファイルロックが失われた (未使用)\n"
7480
7481 #. type: tbl table
7482 #: build/C/man7/signal.7:314
7483 #, no-wrap
7484 msgid "SIGWINCH\t28,28,20\tIgn\tWindow resize signal (4.3BSD, Sun)\n"
7485 msgstr "SIGWINCH\t28,28,20\tIgn\tウィンドウ リサイズ シグナル (4.3BSD, Sun)\n"
7486
7487 #. type: tbl table
7488 #: build/C/man7/signal.7:315
7489 #, no-wrap
7490 msgid "SIGUNUSED\t-,31,-\tCore\tSynonymous with B<SIGSYS>\n"
7491 msgstr "SIGUNUSED\t-,31,-\tCore\tB<SIGSYS> と同義\n"
7492
7493 #. type: Plain text
7494 #: build/C/man7/signal.7:325
7495 msgid ""
7496 "(Signal 29 is B<SIGINFO> / B<SIGPWR> on an alpha but B<SIGLOST> on a sparc.)"
7497 msgstr ""
7498 "(シグナル 29 は alpha では B<SIGINFO> / B<SIGPWR> だが、sparc では "
7499 "B<SIGLOST> である。)"
7500
7501 #. type: Plain text
7502 #: build/C/man7/signal.7:331
7503 msgid ""
7504 "B<SIGEMT> is not specified in POSIX.1-2001, but nevertheless appears on most "
7505 "other UNIX systems, where its default action is typically to terminate the "
7506 "process with a core dump."
7507 msgstr ""
7508 "B<SIGEMT> は POSIX.1-2001 に規定されていないが、 その他の多くの UNIX システム"
7509 "に存在する。 デフォルトの動作は多くの場合、コアダンプ出力を伴うプロセスの終了"
7510 "である。"
7511
7512 #. type: Plain text
7513 #: build/C/man7/signal.7:335
7514 msgid ""
7515 "B<SIGPWR> (which is not specified in POSIX.1-2001) is typically ignored by "
7516 "default on those other UNIX systems where it appears."
7517 msgstr ""
7518 "B<SIGPWR> は (POSIX.1-2001 に規定されていないが) このシグナルが存在する 他の "
7519 "UNIX システムでは多くの場合、デフォルト動作は無視である。"
7520
7521 #. type: Plain text
7522 #: build/C/man7/signal.7:339
7523 msgid ""
7524 "B<SIGIO> (which is not specified in POSIX.1-2001) is ignored by default on "
7525 "several other UNIX systems."
7526 msgstr ""
7527 "B<SIGIO> は (POSIX.1-2001 に規定されていないが) いくつかの他の UNIX システム"
7528 "では デフォルト動作は無視である。"
7529
7530 #.  parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31
7531 #. type: Plain text
7532 #: build/C/man7/signal.7:346
7533 msgid ""
7534 "Where defined, B<SIGUNUSED> is synonymous with B<SIGSYS> on most "
7535 "architectures."
7536 msgstr ""
7537 "B<SIGUNUSED> が定義されている場合には、ほとんどのアーキテクチャで B<SIGSYS> "
7538 "の同義語となっている。"
7539
7540 #. type: SS
7541 #: build/C/man7/signal.7:346
7542 #, no-wrap
7543 msgid "Real-time signals"
7544 msgstr "リアルタイムシグナル"
7545
7546 #. type: Plain text
7547 #: build/C/man7/signal.7:356
7548 msgid ""
7549 "Linux supports real-time signals as originally defined in the POSIX.1b real-"
7550 "time extensions (and now included in POSIX.1-2001).  The range of supported "
7551 "real-time signals is defined by the macros B<SIGRTMIN> and B<SIGRTMAX>.  "
7552 "POSIX.1-2001 requires that an implementation support at least "
7553 "B<_POSIX_RTSIG_MAX> (8) real-time signals."
7554 msgstr ""
7555 "Linux はリアルタイムシグナルをサポートしている。 リアルタイムシグナルは元々 "
7556 "POSIX.1b のリアルタイム拡張で定義されて いるものであり、現在では "
7557 "POSIX.1-2001 に含まれている。 対応しているリアルタイムシグナルの範囲は、マク"
7558 "ロ B<SIGRTMIN> と B<SIGRTMAX> で定義される。 POSIX.1-2001 では、少なくとも "
7559 "B<_POSIX_RTSIG_MAX> (8) 個のリアルタイムシグナルに対応した実装が要求されてい"
7560 "る。"
7561
7562 #. type: Plain text
7563 #: build/C/man7/signal.7:378
7564 msgid ""
7565 "The Linux kernel supports a range of 32 different real-time signals, "
7566 "numbered 33 to 64.  However, the glibc POSIX threads implementation "
7567 "internally uses two (for NPTL) or three (for LinuxThreads) real-time signals "
7568 "(see B<pthreads>(7)), and adjusts the value of B<SIGRTMIN> suitably (to 34 "
7569 "or 35).  Because the range of available real-time signals varies according "
7570 "to the glibc threading implementation (and this variation can occur at run "
7571 "time according to the available kernel and glibc), and indeed the range of "
7572 "real-time signals varies across UNIX systems, programs should I<never refer "
7573 "to real-time signals using hard-coded numbers>, but instead should always "
7574 "refer to real-time signals using the notation B<SIGRTMIN>+n, and include "
7575 "suitable (run-time) checks that B<SIGRTMIN>+n does not exceed B<SIGRTMAX>."
7576 msgstr ""
7577 "Linux は、32 個の異なるリアルタイムシグナルに対応しており、 その番号は 33 か"
7578 "ら 64 である。 しかしながら、glibc の POSIX スレッド実装は、 内部で 2個 "
7579 "(NPTL の場合) か 3個 (LinuxThreads の場合) の リアルタイムシグナルを使用して"
7580 "おり (B<pthreads>(7)  参照)、 B<SIGRTMIN> の値を適切に (34 か 35 に) 調整す"
7581 "る。 利用可能なリアルタイムシグナルの範囲は glibc のスレッド実装により 異なる"
7582 "し (使用するカーネルと glibc により実行時にも変化する)、 UNIX システムの種類"
7583 "によっても異なる。したがって、 プログラムでは「ハードコーディングした数字を"
7584 "使ってのリアルタイムシグナルの 参照は決してすべきではなく」、代わりに "
7585 "B<SIGRTMIN>+n の形で参照すべきである。また、 B<SIGRTMIN>+n が B<SIGRTMAX> を"
7586 "超えていないかのチェックを (実行時に) 適切に行うべきである。"
7587
7588 #. type: Plain text
7589 #: build/C/man7/signal.7:382
7590 msgid ""
7591 "Unlike standard signals, real-time signals have no predefined meanings: the "
7592 "entire set of real-time signals can be used for application-defined purposes."
7593 msgstr ""
7594 "標準シグナルと異なり、リアルタイムシグナルには 事前に定義された意味はない。 "
7595 "リアルタイムシグナルの全部をアプリケーションで定義した用途に使える。"
7596
7597 #. type: Plain text
7598 #: build/C/man7/signal.7:385
7599 msgid ""
7600 "The default action for an unhandled real-time signal is to terminate the "
7601 "receiving process."
7602 msgstr ""
7603 "ハンドリングしないリアルタイムシグナルのデフォルトの動作は 受信したプロセスの"
7604 "終了である。"
7605
7606 #. type: Plain text
7607 #: build/C/man7/signal.7:387
7608 msgid "Real-time signals are distinguished by the following:"
7609 msgstr "リアルタイムシグナルは以下の特徴がある:"
7610
7611 #. type: Plain text
7612 #: build/C/man7/signal.7:391
7613 msgid ""
7614 "Multiple instances of real-time signals can be queued.  By contrast, if "
7615 "multiple instances of a standard signal are delivered while that signal is "
7616 "currently blocked, then only one instance is queued."
7617 msgstr ""
7618 "リアルタイムシグナルは複数の実体をキューに入れることができる。 一方、標準シグ"
7619 "ナルの場合、そのシグナルがブロックされている間に 同じシグナルの複数のインスタ"
7620 "ンスが配送されても、 1 つだけがキューに入れられる。"
7621
7622 #. type: Plain text
7623 #: build/C/man7/signal.7:411
7624 msgid ""
7625 "If the signal is sent using B<sigqueue>(3), an accompanying value (either an "
7626 "integer or a pointer) can be sent with the signal.  If the receiving process "
7627 "establishes a handler for this signal using the B<SA_SIGINFO> flag to "
7628 "B<sigaction>(2)  then it can obtain this data via the I<si_value> field of "
7629 "the I<siginfo_t> structure passed as the second argument to the handler.  "
7630 "Furthermore, the I<si_pid> and I<si_uid> fields of this structure can be "
7631 "used to obtain the PID and real user ID of the process sending the signal."
7632 msgstr ""
7633 "シグナルが B<sigqueue>(3)  を用いて送信された場合、 付属データ (整数かポイン"
7634 "タ) をシグナルと共に送信できる。 受信側プロセスが B<sigaction>(2)  に "
7635 "B<SA_SIGINFO> フラグを指定してシグナルハンドラを設定した場合、 このデータは "
7636 "I<siginfo_t> 構造体の I<si_value> フィールド経由でハンドラの第 2 引き数として"
7637 "渡され、 利用することができる。 さらに、この構造体の I<si_pid> と I<si_uid> "
7638 "フィールドでシグナルを送信したプロセスの PID と実ユーザ ID を 得ることができ"
7639 "る。"
7640
7641 #. type: Plain text
7642 #: build/C/man7/signal.7:420
7643 msgid ""
7644 "Real-time signals are delivered in a guaranteed order.  Multiple real-time "
7645 "signals of the same type are delivered in the order they were sent.  If "
7646 "different real-time signals are sent to a process, they are delivered "
7647 "starting with the lowest-numbered signal.  (I.e., low-numbered signals have "
7648 "highest priority.)  By contrast, if multiple standard signals are pending "
7649 "for a process, the order in which they are delivered is unspecified."
7650 msgstr ""
7651 "リアルタイムシグナルでは配送される順序が保証される。 同じタイプのリアルタイム"
7652 "シグナルは送信された順番に到着する。 異なるリアルタイムシグナルが一つのプロセ"
7653 "スに送信された場合、 番号の小さいシグナルから先に到着する。 (つまり小さい番号"
7654 "のシグナルが高い優先順位を持つ。)  対照的に、一つのプロセスに対して複数の標準"
7655 "シグナルが処理待ちとなった場合、 これらのシグナルが配送される順序は不定であ"
7656 "る。"
7657
7658 #. type: Plain text
7659 #: build/C/man7/signal.7:425
7660 msgid ""
7661 "If both standard and real-time signals are pending for a process, POSIX "
7662 "leaves it unspecified which is delivered first.  Linux, like many other "
7663 "implementations, gives priority to standard signals in this case."
7664 msgstr ""
7665 "一つのプロセスに対して標準シグナルとリアルタイムシグナルの両方が 処理待ちの場"
7666 "合、POSIX はどちらが先に配送されるかを規定していない。 Linux では、他の多くの"
7667 "実装と同様、このような場合には 標準シグナルが優先される。"
7668
7669 #. type: Plain text
7670 #: build/C/man7/signal.7:448
7671 msgid ""
7672 "According to POSIX, an implementation should permit at least "
7673 "B<_POSIX_SIGQUEUE_MAX> (32) real-time signals to be queued to a process.  "
7674 "However, Linux does things differently.  In kernels up to and including "
7675 "2.6.7, Linux imposes a system-wide limit on the number of queued real-time "
7676 "signals for all processes.  This limit can be viewed and (with privilege) "
7677 "changed via the I</proc/sys/kernel/rtsig-max> file.  A related file, I</proc/"
7678 "sys/kernel/rtsig-nr>, can be used to find out how many real-time signals are "
7679 "currently queued.  In Linux 2.6.8, these I</proc> interfaces were replaced "
7680 "by the B<RLIMIT_SIGPENDING> resource limit, which specifies a per-user limit "
7681 "for queued signals; see B<setrlimit>(2)  for further details."
7682 msgstr ""
7683 "POSIX によれば、1 プロセス毎に最低 B<_POSIX_SIGQUEUE_MAX> (32) 個のリアルタイ"
7684 "ムシグナルをキューに入れられるべきとしている。 しかし、 Linux では違った実装"
7685 "になっている。カーネル 2.6.7 までは (2.6.7 を含む)、全プロセスでキューに入っ"
7686 "ているリアルタイムシグナル の数の合計についてシステム全体での制限がある。 こ"
7687 "の制限は I</proc/sys/kernel/rtsig-max> ファイルで見ることができ、 (権限があれ"
7688 "ば) 変更もできる。 関係するファイルとして、 I</proc/sys/kernel/rtsig-nr> を見"
7689 "ることで、いくつのリアルタイムシグナルが現在キューに入っているかを 知ることが"
7690 "できる。 Linux 2.6.8 で、これらの I</proc> 経由のインターフェースは、 "
7691 "B<RLIMIT_SIGPENDING> リソース制限に置き換えられた。 これは、キューに入るシグ"
7692 "ナル数に関してユーザ単位に 上限を指定するものである。 詳しくは B<setrlimit>"
7693 "(2)  を参照。"
7694
7695 #. type: SS
7696 #: build/C/man7/signal.7:448
7697 #, no-wrap
7698 msgid "Async-signal-safe functions"
7699 msgstr "非同期シグナルで安全な関数 (async-signal-safe functions)"
7700
7701 #. type: Plain text
7702 #: build/C/man7/signal.7:457
7703 msgid ""
7704 "A signal handler function must be very careful, since processing elsewhere "
7705 "may be interrupted at some arbitrary point in the execution of the program.  "
7706 "POSIX has the concept of \"safe function\".  If a signal interrupts the "
7707 "execution of an unsafe function, and I<handler> calls an unsafe function, "
7708 "then the behavior of the program is undefined."
7709 msgstr ""
7710 "シグナルハンドラ関数には非常に注意しなければならない。 他の場所の処理はプログ"
7711 "ラム実行の任意の箇所で中断される可能性があるためである。 POSIX には「安全な関"
7712 "数 (safe function)」という概念がある。 シグナルが安全でない関数の実行を中断"
7713 "し、かつ I<handler> が安全でない関数を呼び出した場合、プログラムの挙動は未定"
7714 "義である。"
7715
7716 #. type: Plain text
7717 #: build/C/man7/signal.7:461
7718 msgid ""
7719 "POSIX.1-2004 (also known as POSIX.1-2001 Technical Corrigendum 2)  requires "
7720 "an implementation to guarantee that the following functions can be safely "
7721 "called inside a signal handler:"
7722 msgstr ""
7723 "POSIX.1-2004 (POSIX.1-2001 Technical Corrigendum (正誤表) 2 とも言う) では、 "
7724 "シグナルハンドラ内での安全な呼び出しを保証することが必須の関数として 以下が規"
7725 "定されている。"
7726
7727 #. type: Plain text
7728 #: build/C/man7/signal.7:582
7729 #, no-wrap
7730 msgid ""
7731 "_Exit()\n"
7732 "_exit()\n"
7733 "abort()\n"
7734 "accept()\n"
7735 "access()\n"
7736 "aio_error()\n"
7737 "aio_return()\n"
7738 "aio_suspend()\n"
7739 "alarm()\n"
7740 "bind()\n"
7741 "cfgetispeed()\n"
7742 "cfgetospeed()\n"
7743 "cfsetispeed()\n"
7744 "cfsetospeed()\n"
7745 "chdir()\n"
7746 "chmod()\n"
7747 "chown()\n"
7748 "clock_gettime()\n"
7749 "close()\n"
7750 "connect()\n"
7751 "creat()\n"
7752 "dup()\n"
7753 "dup2()\n"
7754 "execle()\n"
7755 "execve()\n"
7756 "fchmod()\n"
7757 "fchown()\n"
7758 "fcntl()\n"
7759 "fdatasync()\n"
7760 "fork()\n"
7761 "fpathconf()\n"
7762 "fstat()\n"
7763 "fsync()\n"
7764 "ftruncate()\n"
7765 "getegid()\n"
7766 "geteuid()\n"
7767 "getgid()\n"
7768 "getgroups()\n"
7769 "getpeername()\n"
7770 "getpgrp()\n"
7771 "getpid()\n"
7772 "getppid()\n"
7773 "getsockname()\n"
7774 "getsockopt()\n"
7775 "getuid()\n"
7776 "kill()\n"
7777 "link()\n"
7778 "listen()\n"
7779 "lseek()\n"
7780 "lstat()\n"
7781 "mkdir()\n"
7782 "mkfifo()\n"
7783 "open()\n"
7784 "pathconf()\n"
7785 "pause()\n"
7786 "pipe()\n"
7787 "poll()\n"
7788 "posix_trace_event()\n"
7789 "pselect()\n"
7790 "raise()\n"
7791 "read()\n"
7792 "readlink()\n"
7793 "recv()\n"
7794 "recvfrom()\n"
7795 "recvmsg()\n"
7796 "rename()\n"
7797 "rmdir()\n"
7798 "select()\n"
7799 "sem_post()\n"
7800 "send()\n"
7801 "sendmsg()\n"
7802 "sendto()\n"
7803 "setgid()\n"
7804 "setpgid()\n"
7805 "setsid()\n"
7806 "setsockopt()\n"
7807 "setuid()\n"
7808 "shutdown()\n"
7809 "sigaction()\n"
7810 "sigaddset()\n"
7811 "sigdelset()\n"
7812 "sigemptyset()\n"
7813 "sigfillset()\n"
7814 "sigismember()\n"
7815 "signal()\n"
7816 "sigpause()\n"
7817 "sigpending()\n"
7818 "sigprocmask()\n"
7819 "sigqueue()\n"
7820 "sigset()\n"
7821 "sigsuspend()\n"
7822 "sleep()\n"
7823 "sockatmark()\n"
7824 "socket()\n"
7825 "socketpair()\n"
7826 "stat()\n"
7827 "symlink()\n"
7828 "sysconf()\n"
7829 "tcdrain()\n"
7830 "tcflow()\n"
7831 "tcflush()\n"
7832 "tcgetattr()\n"
7833 "tcgetpgrp()\n"
7834 "tcsendbreak()\n"
7835 "tcsetattr()\n"
7836 "tcsetpgrp()\n"
7837 "time()\n"
7838 "timer_getoverrun()\n"
7839 "timer_gettime()\n"
7840 "timer_settime()\n"
7841 "times()\n"
7842 "umask()\n"
7843 "uname()\n"
7844 "unlink()\n"
7845 "utime()\n"
7846 "wait()\n"
7847 "waitpid()\n"
7848 "write()\n"
7849 msgstr ""
7850 "_Exit()\n"
7851 "_exit()\n"
7852 "abort()\n"
7853 "accept()\n"
7854 "access()\n"
7855 "aio_error()\n"
7856 "aio_return()\n"
7857 "aio_suspend()\n"
7858 "alarm()\n"
7859 "bind()\n"
7860 "cfgetispeed()\n"
7861 "cfgetospeed()\n"
7862 "cfsetispeed()\n"
7863 "cfsetospeed()\n"
7864 "chdir()\n"
7865 "chmod()\n"
7866 "chown()\n"
7867 "clock_gettime()\n"
7868 "close()\n"
7869 "connect()\n"
7870 "creat()\n"
7871 "dup()\n"
7872 "dup2()\n"
7873 "execle()\n"
7874 "execve()\n"
7875 "fchmod()\n"
7876 "fchown()\n"
7877 "fcntl()\n"
7878 "fdatasync()\n"
7879 "fork()\n"
7880 "fpathconf()\n"
7881 "fstat()\n"
7882 "fsync()\n"
7883 "ftruncate()\n"
7884 "getegid()\n"
7885 "geteuid()\n"
7886 "getgid()\n"
7887 "getgroups()\n"
7888 "getpeername()\n"
7889 "getpgrp()\n"
7890 "getpid()\n"
7891 "getppid()\n"
7892 "getsockname()\n"
7893 "getsockopt()\n"
7894 "getuid()\n"
7895 "kill()\n"
7896 "link()\n"
7897 "listen()\n"
7898 "lseek()\n"
7899 "lstat()\n"
7900 "mkdir()\n"
7901 "mkfifo()\n"
7902 "open()\n"
7903 "pathconf()\n"
7904 "pause()\n"
7905 "pipe()\n"
7906 "poll()\n"
7907 "posix_trace_event()\n"
7908 "pselect()\n"
7909 "raise()\n"
7910 "read()\n"
7911 "readlink()\n"
7912 "recv()\n"
7913 "recvfrom()\n"
7914 "recvmsg()\n"
7915 "rename()\n"
7916 "rmdir()\n"
7917 "select()\n"
7918 "sem_post()\n"
7919 "send()\n"
7920 "sendmsg()\n"
7921 "sendto()\n"
7922 "setgid()\n"
7923 "setpgid()\n"
7924 "setsid()\n"
7925 "setsockopt()\n"
7926 "setuid()\n"
7927 "shutdown()\n"
7928 "sigaction()\n"
7929 "sigaddset()\n"
7930 "sigdelset()\n"
7931 "sigemptyset()\n"
7932 "sigfillset()\n"
7933 "sigismember()\n"
7934 "signal()\n"
7935 "sigpause()\n"
7936 "sigpending()\n"
7937 "sigprocmask()\n"
7938 "sigqueue()\n"
7939 "sigset()\n"
7940 "sigsuspend()\n"
7941 "sleep()\n"
7942 "sockatmark()\n"
7943 "socket()\n"
7944 "socketpair()\n"
7945 "stat()\n"
7946 "symlink()\n"
7947 "sysconf()\n"
7948 "tcdrain()\n"
7949 "tcflow()\n"
7950 "tcflush()\n"
7951 "tcgetattr()\n"
7952 "tcgetpgrp()\n"
7953 "tcsendbreak()\n"
7954 "tcsetattr()\n"
7955 "tcsetpgrp()\n"
7956 "time()\n"
7957 "timer_getoverrun()\n"
7958 "timer_gettime()\n"
7959 "timer_settime()\n"
7960 "times()\n"
7961 "umask()\n"
7962 "uname()\n"
7963 "unlink()\n"
7964 "utime()\n"
7965 "wait()\n"
7966 "waitpid()\n"
7967 "write()\n"
7968
7969 #. type: Plain text
7970 #: build/C/man7/signal.7:587
7971 msgid ""
7972 "POSIX.1-2008 removes fpathconf(), pathconf(), and sysconf()  from the above "
7973 "list, and adds the following functions:"
7974 msgstr ""
7975 "POSIX.1-2008 では、上記のリストのうち fpathconf(), pathconf(), sysconf()  が"
7976 "削除され、以下の関数が追加された。"
7977
7978 #. type: Plain text
7979 #: build/C/man7/signal.7:610
7980 #, no-wrap
7981 msgid ""
7982 "execl()\n"
7983 "execv()\n"
7984 "faccessat()\n"
7985 "fchmodat()\n"
7986 "fchownat()\n"
7987 "fexecve()\n"
7988 "fstatat()\n"
7989 "futimens()\n"
7990 "linkat()\n"
7991 "mkdirat()\n"
7992 "mkfifoat()\n"
7993 "mknod()\n"
7994 "mknodat()\n"
7995 "openat()\n"
7996 "readlinkat()\n"
7997 "renameat()\n"
7998 "symlinkat()\n"
7999 "unlinkat()\n"
8000 "utimensat()\n"
8001 "utimes()\n"
8002 msgstr ""
8003 "execl()\n"
8004 "execv()\n"
8005 "faccessat()\n"
8006 "fchmodat()\n"
8007 "fchownat()\n"
8008 "fexecve()\n"
8009 "fstatat()\n"
8010 "futimens()\n"
8011 "linkat()\n"
8012 "mkdirat()\n"
8013 "mkfifoat()\n"
8014 "mknod()\n"
8015 "mknodat()\n"
8016 "openat()\n"
8017 "readlinkat()\n"
8018 "renameat()\n"
8019 "symlinkat()\n"
8020 "unlinkat()\n"
8021 "utimensat()\n"
8022 "utimes()\n"
8023
8024 #. type: SS
8025 #: build/C/man7/signal.7:612
8026 #, no-wrap
8027 msgid "Interruption of system calls and library functions by signal handlers"
8028 msgstr "シグナルハンドラによるシステムコールやライブラリ関数への割り込み"
8029
8030 #. type: Plain text
8031 #: build/C/man7/signal.7:615
8032 msgid ""
8033 "If a signal handler is invoked while a system call or library function call "
8034 "is blocked, then either:"
8035 msgstr ""
8036 "システムコールやライブラリが停止 (block) している間にシグナルハンドラが 起動"
8037 "されると、以下のどちらかとなる。"
8038
8039 #. type: Plain text
8040 #: build/C/man7/signal.7:617
8041 msgid ""
8042 "the call is automatically restarted after the signal handler returns; or"
8043 msgstr "シグナルが返った後、呼び出しは自動的に再スタートされる。"
8044
8045 #. type: Plain text
8046 #: build/C/man7/signal.7:620
8047 msgid "the call fails with the error B<EINTR>."
8048 msgstr "呼び出しはエラー B<EINTR> で失敗する。"
8049
8050 #. type: Plain text
8051 #: build/C/man7/signal.7:628
8052 msgid ""
8053 "Which of these two behaviors occurs depends on the interface and whether or "
8054 "not the signal handler was established using the B<SA_RESTART> flag (see "
8055 "B<sigaction>(2)).  The details vary across UNIX systems; below, the details "
8056 "for Linux."
8057 msgstr ""
8058 "これらの二つの挙動のうちどちらが起こるかは、インターフェイスにより依存し、 シ"
8059 "グナルハンドラが B<SA_RESTART> フラグ (B<sigaction>(2)  参照) を使って設定さ"
8060 "れていたかにも依存する。 詳細は UNIX システムによって異なる。 Linux における"
8061 "詳細を以下で説明する。"
8062
8063 #.  The following system calls use ERESTARTSYS,
8064 #.  so that they are restartable
8065 #. type: Plain text
8066 #: build/C/man7/signal.7:637
8067 msgid ""
8068 "If a blocked call to one of the following interfaces is interrupted by a "
8069 "signal handler, then the call will be automatically restarted after the "
8070 "signal handler returns if the B<SA_RESTART> flag was used; otherwise the "
8071 "call will fail with the error B<EINTR>:"
8072 msgstr ""
8073 "以下のインターフェイスのいずれかの呼び出しが停止している間に シグナルハンドラ"
8074 "により割り込まれた場合、 B<SA_RESTART> フラグが使用されていれば、シグナルハン"
8075 "ドラが返った後に その呼び出しは自動的に再スタートされることになる。 それ以外"
8076 "の場合は、その呼び出しはエラー B<EINTR> で失敗することになる。"
8077
8078 #. type: Plain text
8079 #: build/C/man7/signal.7:653
8080 msgid ""
8081 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), and B<ioctl>(2)  calls "
8082 "on \"slow\" devices.  A \"slow\" device is one where the I/O call may block "
8083 "for an indefinite time, for example, a terminal, pipe, or socket.  (A disk "
8084 "is not a slow device according to this definition.)  If an I/O call on a "
8085 "slow device has already transferred some data by the time it is interrupted "
8086 "by a signal handler, then the call will return a success status (normally, "
8087 "the number of bytes transferred)."
8088 msgstr ""
8089 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), B<ioctl>(2)  の「遅い "
8090 "(slow)」デバイスに対する呼び出し。 ここでいう「遅い」デバイスとは、I/O 呼び出"
8091 "しが無期限に停止 (block) する 可能性のあるデバイスのことで、例としては端末、"
8092 "パイプ、ソケットがある (この定義では、ディスクは遅いデバイスではない)。 遅い"
8093 "デバイスに対する I/O 呼び出しが、 シグナルハンドラにより割り込まれた時点まで"
8094 "に何らかのデータを すでに転送していれば、呼び出しは成功ステータス (通常は、転"
8095 "送されたバイト数) を返すことだろう。"
8096
8097 #. type: Plain text
8098 #: build/C/man7/signal.7:657
8099 msgid ""
8100 "B<open>(2), if it can block (e.g., when opening a FIFO; see B<fifo>(7))."
8101 msgstr ""
8102 "停止 (block) する可能性のある B<open>(2)  (例えば、FIFO のオープン時; B<fifo>"
8103 "(7)  参照)。"
8104
8105 #. type: Plain text
8106 #: build/C/man7/signal.7:664
8107 msgid "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), and B<waitpid>(2)."
8108 msgstr "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), B<waitpid>(2)."
8109
8110 #.  If a timeout (setsockopt()) is in effect on the socket, then these
8111 #.  system calls switch to using EINTR.  Consequently, they and are not
8112 #.  automatically restarted, and they show the stop/cont behavior
8113 #.  described below.  (Verified from 2.6.26 source, and by experiment; mtk)
8114 #. type: Plain text
8115 #: build/C/man7/signal.7:680
8116 msgid ""
8117 "Socket interfaces: B<accept>(2), B<connect>(2), B<recv>(2), B<recvfrom>(2), "
8118 "B<recvmsg>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), unless a timeout "
8119 "has been set on the socket (see below)."
8120 msgstr ""
8121 "ソケットインターフェイス: B<accept>(2), B<connect>(2), B<recv>(2), "
8122 "B<recvfrom>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), B<sendmsg>(2).  但"
8123 "し、ソケットにタイムアウトが設定されていない場合 (下記参照)。"
8124
8125 #. type: Plain text
8126 #: build/C/man7/signal.7:686
8127 msgid "File locking interfaces: B<flock>(2)  and B<fcntl>(2)  B<F_SETLKW>."
8128 msgstr ""
8129 "ファイルロック用インターフェイス: B<flock>(2), B<fcntl>(2)  B<F_SETLKW>."
8130
8131 #. type: Plain text
8132 #: build/C/man7/signal.7:693
8133 msgid ""
8134 "POSIX message queue interfaces: B<mq_receive>(3), B<mq_timedreceive>(3), "
8135 "B<mq_send>(3), and B<mq_timedsend>(3)."
8136 msgstr ""
8137 "POSIX メッセージキューインターフェイス: B<mq_receive>(3), B<mq_timedreceive>"
8138 "(3), B<mq_send>(3), B<mq_timedsend>(3)."
8139
8140 #. type: Plain text
8141 #: build/C/man7/signal.7:698
8142 msgid ""
8143 "B<futex>(2)  B<FUTEX_WAIT> (since Linux 2.6.22; beforehand, always failed "
8144 "with B<EINTR>)."
8145 msgstr ""
8146 "B<futex>(2)  B<FUTEX_WAIT> (Linux 2.6.22 以降; それ以前は常に B<EINTR> で失敗"
8147 "していた)。"
8148
8149 #. type: Plain text
8150 #: build/C/man7/signal.7:705
8151 msgid ""
8152 "POSIX semaphore interfaces: B<sem_wait>(3)  and B<sem_timedwait>(3)  (since "
8153 "Linux 2.6.22; beforehand, always failed with B<EINTR>)."
8154 msgstr ""
8155 "POSIX セマフォインターフェイス: B<sem_wait>(3), B<sem_timedwait>(3)  (Linux "
8156 "2.6.22 以降; それ以前は常に B<EINTR> で失敗していた)。"
8157
8158 #.  These are the system calls that give EINTR or ERESTARTNOHAND
8159 #.  on interruption by a signal handler.
8160 #. type: Plain text
8161 #: build/C/man7/signal.7:716
8162 msgid ""
8163 "The following interfaces are never restarted after being interrupted by a "
8164 "signal handler, regardless of the use of B<SA_RESTART>; they always fail "
8165 "with the error B<EINTR> when interrupted by a signal handler:"
8166 msgstr ""
8167 "以下のインターフェイスは、 B<SA_RESTART> を使っているどうかに関わらず、シグナ"
8168 "ルハンドラにより割り込まれた後、 再スタートすることは決してない。 これらは、"
8169 "シグナルハンドラにより割り込まれると、常にエラー B<EINTR> で失敗する。"
8170
8171 #. type: Plain text
8172 #: build/C/man7/signal.7:736 build/C/man7/signal.7:810
8173 msgid ""
8174 "Socket interfaces, when a timeout has been set on the socket using "
8175 "B<setsockopt>(2): B<accept>(2), B<recv>(2), B<recvfrom>(2), and B<recvmsg>"
8176 "(2), if a receive timeout (B<SO_RCVTIMEO>)  has been set; B<connect>(2), "
8177 "B<send>(2), B<sendto>(2), and B<sendmsg>(2), if a send timeout "
8178 "(B<SO_SNDTIMEO>)  has been set."
8179 msgstr ""
8180 "B<setsockopt>(2)  を使ってタイムアウトが設定されているソケットインターフェー"
8181 "ス: B<accept>(2), B<recv>(2), B<recvfrom>(2), B<recvmsg>(2)  で受信タイムアウ"
8182 "ト (B<SO_RCVTIMEO>)  が設定されている場合と、 B<connect>(2), B<send>(2), "
8183 "B<sendto>(2), B<sendmsg>(2)  で送信タイムアウト (B<SO_SNDTIMEO>)  が設定され"
8184 "ている場合。"
8185
8186 #. type: Plain text
8187 #: build/C/man7/signal.7:743
8188 msgid ""
8189 "Interfaces used to wait for signals: B<pause>(2), B<sigsuspend>(2), "
8190 "B<sigtimedwait>(2), and B<sigwaitinfo>(2)."
8191 msgstr ""
8192 "シグナル待ちに使われるインターフェイス: B<pause>(2), B<sigsuspend>(2), "
8193 "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8194
8195 #. type: Plain text
8196 #: build/C/man7/signal.7:752
8197 msgid ""
8198 "File descriptor multiplexing interfaces: B<epoll_wait>(2), B<epoll_pwait>"
8199 "(2), B<poll>(2), B<ppoll>(2), B<select>(2), and B<pselect>(2)."
8200 msgstr ""
8201 "ファイルディスクリプタ多重インターフェイス: B<epoll_wait>(2), B<epoll_pwait>"
8202 "(2), B<poll>(2), B<ppoll>(2), B<select>(2), B<pselect>(2)."
8203
8204 #.  On some other systems, SA_RESTART does restart these system calls
8205 #. type: Plain text
8206 #: build/C/man7/signal.7:760
8207 msgid ""
8208 "System V IPC interfaces: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), and "
8209 "B<semtimedop>(2)."
8210 msgstr ""
8211 "System V IPC インターフェイス: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), "
8212 "B<semtimedop>(2)."
8213
8214 #. type: Plain text
8215 #: build/C/man7/signal.7:766
8216 msgid ""
8217 "Sleep interfaces: B<clock_nanosleep>(2), B<nanosleep>(2), and B<usleep>(3)."
8218 msgstr ""
8219 "スリープ用のインターフェイス: B<clock_nanosleep>(2), B<nanosleep>(2), "
8220 "B<usleep>(3)."
8221
8222 #. type: Plain text
8223 #: build/C/man7/signal.7:771 build/C/man7/signal.7:824
8224 msgid "B<read>(2)  from an B<inotify>(7)  file descriptor."
8225 msgstr "B<inotify>(7)  ファイルディスクリプタからの B<read>(2)."
8226
8227 #. type: Plain text
8228 #: build/C/man7/signal.7:773
8229 msgid "B<io_getevents>(2)."
8230 msgstr "B<io_getevents>(2)."
8231
8232 #. type: Plain text
8233 #: build/C/man7/signal.7:779
8234 msgid ""
8235 "The B<sleep>(3)  function is also never restarted if interrupted by a "
8236 "handler, but gives a success return: the number of seconds remaining to "
8237 "sleep."
8238 msgstr ""
8239 "B<sleep>(3)  関数も、ハンドラにより割り込まれた場合、決して再スタートされるこ"
8240 "とはない。 しかし、成功となり、残っている停止時間を返す。"
8241
8242 #. type: SS
8243 #: build/C/man7/signal.7:779
8244 #, no-wrap
8245 msgid "Interruption of system calls and library functions by stop signals"
8246 msgstr "一時停止シグナルによるシステムコールやライブラリ関数への割り込み"
8247
8248 #. type: Plain text
8249 #: build/C/man7/signal.7:788
8250 msgid ""
8251 "On Linux, even in the absence of signal handlers, certain blocking "
8252 "interfaces can fail with the error B<EINTR> after the process is stopped by "
8253 "one of the stop signals and then resumed via B<SIGCONT>.  This behavior is "
8254 "not sanctioned by POSIX.1, and doesn't occur on other systems."
8255 msgstr ""
8256 "Linux では、シグナルハンドラが設定されていない場合でも、 いくつかのブロッキン"
8257 "グ型のインターフェイスは、 プロセスが一時停止 (stop) シグナルの一つにより停止"
8258 "され、 B<SIGCONT> により再開された後に、エラー B<EINTR> で失敗する可能性があ"
8259 "る。 この挙動は POSIX.1 で認められておらず、他のシステムでは起こらない。"
8260
8261 #. type: Plain text
8262 #: build/C/man7/signal.7:790
8263 msgid "The Linux interfaces that display this behavior are:"
8264 msgstr "この挙動を示す Linux のインターフェイスは以下の通りである。"
8265
8266 #. type: Plain text
8267 #: build/C/man7/signal.7:813
8268 msgid "B<epoll_wait>(2), B<epoll_pwait>(2)."
8269 msgstr "B<epoll_wait>(2), B<epoll_pwait>(2)."
8270
8271 #. type: Plain text
8272 #: build/C/man7/signal.7:816
8273 msgid "B<semop>(2), B<semtimedop>(2)."
8274 msgstr "B<semop>(2), B<semtimedop>(2)."
8275
8276 #. type: Plain text
8277 #: build/C/man7/signal.7:819
8278 msgid "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8279 msgstr "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8280
8281 #. type: Plain text
8282 #: build/C/man7/signal.7:830
8283 msgid ""
8284 "Linux 2.6.21 and earlier: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8285 "B<sem_wait>(3)."
8286 msgstr ""
8287 "Linux 2.6.21 以前: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8288 "B<sem_wait>(3)."
8289
8290 #. type: Plain text
8291 #: build/C/man7/signal.7:834
8292 msgid "Linux 2.6.8 and earlier: B<msgrcv>(2), B<msgsnd>(2)."
8293 msgstr "Linux 2.6.8 以前: B<msgrcv>(2), B<msgsnd>(2)."
8294
8295 #. type: Plain text
8296 #: build/C/man7/signal.7:837
8297 msgid "Linux 2.4 and earlier: B<nanosleep>(2)."
8298 msgstr "Linux 2.4 以前: B<nanosleep>(2)."
8299
8300 #.  It must be a *very* long time since this was true:
8301 #.  .SH BUGS
8302 #.  .B SIGIO
8303 #.  and
8304 #.  .B SIGLOST
8305 #.  have the same value.
8306 #.  The latter is commented out in the kernel source, but
8307 #.  the build process of some software still thinks that
8308 #.  signal 29 is
8309 #.  .BR SIGLOST .
8310 #. type: Plain text
8311 #: build/C/man7/signal.7:850
8312 msgid "POSIX.1, except as noted."
8313 msgstr "POSIX.1 (注記した内容以外)。"
8314
8315 #. type: Plain text
8316 #: build/C/man7/signal.7:884
8317 msgid ""
8318 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), B<restart_syscall>"
8319 "(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>"
8320 "(2), B<sigaction>(2), B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), "
8321 "B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), "
8322 "B<abort>(3), B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), "
8323 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), "
8324 "B<sigvec>(3), B<sigwait>(3), B<strsignal>(3), B<sysv_signal>(3), B<core>(5), "
8325 "B<proc>(5), B<pthreads>(7), B<sigevent>(7)"
8326 msgstr ""
8327 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), B<restart_syscall>"
8328 "(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>"
8329 "(2), B<sigaction>(2), B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), "
8330 "B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), "
8331 "B<abort>(3), B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), "
8332 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), "
8333 "B<sigvec>(3), B<sigwait>(3), B<strsignal>(3), B<sysv_signal>(3), B<core>(5), "
8334 "B<proc>(5), B<pthreads>(7), B<sigevent>(7)"
8335
8336 #. type: TH
8337 #: build/C/man2/signalfd.2:20
8338 #, no-wrap
8339 msgid "SIGNALFD"
8340 msgstr "SIGNALFD"
8341
8342 #. type: TH
8343 #: build/C/man2/signalfd.2:20
8344 #, no-wrap
8345 msgid "2009-01-13"
8346 msgstr "2009-01-13"
8347
8348 #. type: Plain text
8349 #: build/C/man2/signalfd.2:23
8350 msgid "signalfd - create a file descriptor for accepting signals"
8351 msgstr "signalfd - シグナル受け付け用のファイルディスクリプタを生成する"
8352
8353 #. type: Plain text
8354 #: build/C/man2/signalfd.2:25
8355 msgid "B<#include E<lt>sys/signalfd.hE<gt>>"
8356 msgstr "B<#include E<lt>sys/signalfd.hE<gt>>"
8357
8358 #. type: Plain text
8359 #: build/C/man2/signalfd.2:27
8360 msgid ""
8361 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8362 msgstr ""
8363 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8364
8365 #. type: Plain text
8366 #: build/C/man2/signalfd.2:38
8367 msgid ""
8368 "B<signalfd>()  creates a file descriptor that can be used to accept signals "
8369 "targeted at the caller.  This provides an alternative to the use of a signal "
8370 "handler or B<sigwaitinfo>(2), and has the advantage that the file descriptor "
8371 "may be monitored by B<select>(2), B<poll>(2), and B<epoll>(7)."
8372 msgstr ""
8373 "B<signalfd>()  は、呼び出し元宛てのシグナルを受け付けるために使用されるファイ"
8374 "ル ディスクリプタを生成する。 この方法はシグナルハンドラや B<sigwaitinfo>"
8375 "(2)  を用いる方法の代わりとなるものであり、このファイルディスクリプタを "
8376 "B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
8377
8378 #. type: Plain text
8379 #: build/C/man2/signalfd.2:58
8380 msgid ""
8381 "The I<mask> argument specifies the set of signals that the caller wishes to "
8382 "accept via the file descriptor.  This argument is a signal set whose "
8383 "contents can be initialized using the macros described in B<sigsetops>(3).  "
8384 "Normally, the set of signals to be received via the file descriptor should "
8385 "be blocked using B<sigprocmask>(2), to prevent the signals being handled "
8386 "according to their default dispositions.  It is not possible to receive "
8387 "B<SIGKILL> or B<SIGSTOP> signals via a signalfd file descriptor; these "
8388 "signals are silently ignored if specified in I<mask>."
8389 msgstr ""
8390 "I<mask> 引き数には、呼び出し元がこのファイルディスクリプタ経由で受け付けたい "
8391 "シグナル集合を指定する。この引き数で指定するシグナル集合の内容は、 "
8392 "B<sigsetops>(3)  で説明されているマクロを使って初期化することができる。 通"
8393 "常、ファイルディスクリプタ経由で受信するシグナル集合は、 そのシグナルがデフォ"
8394 "ルトの配送方法に基いて処理されるのを防ぐために、 B<sigprocmask>(2)  を使って"
8395 "ブロックしておくべきである。 シグナル B<SIGKILL> と B<SIGSTOP> を signalfd "
8396 "ファイルディスクリプタ経由で受信することはできない。 これらのシグナルが "
8397 "I<mask> で指定された場合には黙って無視される。"
8398
8399 #. type: Plain text
8400 #: build/C/man2/signalfd.2:72
8401 msgid ""
8402 "If the I<fd> argument is -1, then the call creates a new file descriptor and "
8403 "associates the signal set specified in I<mask> with that descriptor.  If "
8404 "I<fd> is not -1, then it must specify a valid existing signalfd file "
8405 "descriptor, and I<mask> is used to replace the signal set associated with "
8406 "that descriptor."
8407 msgstr ""
8408 "I<fd> 引き数が -1 の場合、 B<signalfd>()  は新しいファイルディスクリプタを生"
8409 "成し、 I<mask> で指定されたシグナル集合をそのファイルディスクリプタに関連付け"
8410 "る。 I<fd> 引き数が -1 以外の場合、 I<fd> には有効な既存の signalfd ファイル"
8411 "ディスクリプタを指定しなければならず、 そのディスクリプタに関連付けられている"
8412 "シグナル集合は I<mask> を使って置き換えられる。"
8413
8414 #. type: Plain text
8415 #: build/C/man2/signalfd.2:77
8416 msgid ""
8417 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
8418 "I<flags> to change the behaviour of B<signalfd>():"
8419 msgstr ""
8420 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
8421 "ることで、 B<signalfd>()  の振舞いを変更することができる。"
8422
8423 #. type: TP
8424 #: build/C/man2/signalfd.2:77
8425 #, no-wrap
8426 msgid "B<SFD_NONBLOCK>"
8427 msgstr "B<SFD_NONBLOCK>"
8428
8429 #. type: TP
8430 #: build/C/man2/signalfd.2:85
8431 #, no-wrap
8432 msgid "B<SFD_CLOEXEC>"
8433 msgstr "B<SFD_CLOEXEC>"
8434
8435 #. type: Plain text
8436 #: build/C/man2/signalfd.2:102
8437 msgid ""
8438 "B<signalfd>()  returns a file descriptor that supports the following "
8439 "operations:"
8440 msgstr ""
8441 "B<signalfd>()  が返すファイルディスクリプタは以下の操作をサポートしている。"
8442
8443 #. type: Plain text
8444 #: build/C/man2/signalfd.2:121
8445 msgid ""
8446 "If one or more of the signals specified in I<mask> is pending for the "
8447 "process, then the buffer supplied to B<read>(2)  is used to return one or "
8448 "more I<signalfd_siginfo> structures (see below) that describe the signals.  "
8449 "The B<read>(2)  returns information for as many signals as are pending and "
8450 "will fit in the supplied buffer.  The buffer must be at least I<sizeof"
8451 "(struct signalfd_siginfo)> bytes.  The return value of the B<read>(2)  is "
8452 "the total number of bytes read."
8453 msgstr ""
8454 "I<mask> に指定されているシグナルのうち一つ以上がそのプロセスに対して 処理待"
8455 "ち (pending) であれば、それらのシグナルの情報が B<read>(2)  に渡されたバッ"
8456 "ファを使って、 I<signalfd_siginfo> 構造体に格納されて返される。 B<read>(2)  "
8457 "は、バッファに格納可能な範囲でできるだけ多くの処理待ちのシグナルに ついての情"
8458 "報を返す。 バッファは最低でも I<sizeof(struct signalfd_siginfo)> バイトの大き"
8459 "さがなければならない。 B<read>(2)  の返り値は読み出されたトータルのバイト数で"
8460 "ある。"
8461
8462 #. type: Plain text
8463 #: build/C/man2/signalfd.2:129
8464 msgid ""
8465 "As a consequence of the B<read>(2), the signals are consumed, so that they "
8466 "are no longer pending for the process (i.e., will not be caught by signal "
8467 "handlers, and cannot be accepted using B<sigwaitinfo>(2))."
8468 msgstr ""
8469 "B<read>(2)  が行われた結果、シグナルは消費され、 これらのシグナルはそのプロセ"
8470 "スに対しては処理待ちではなくなる (つまり、シグナルハンドラで捕捉されることも"
8471 "なく、 B<sigwaitinfo>(2)  を使って受け取ることもできなくなる)。"
8472
8473 #. type: Plain text
8474 #: build/C/man2/signalfd.2:140
8475 msgid ""
8476 "If none of the signals in I<mask> is pending for the process, then the "
8477 "B<read>(2)  either blocks until one of the signals in I<mask> is generated "
8478 "for the process, or fails with the error B<EAGAIN> if the file descriptor "
8479 "has been made nonblocking."
8480 msgstr ""
8481 "I<mask> に指定されているシグナルがそのプロセスに対して一つも処理待ちでなけれ"
8482 "ば、 B<read>(2)  は、 I<mask> で指定されたシグナルのうちいずれか一つがそのプ"
8483 "ロセスに対して発生するまで 停止 (block) する、もしくはファイルディスクリプタ"
8484 "が非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗する。"
8485
8486 #. type: Plain text
8487 #: build/C/man2/signalfd.2:153
8488 msgid ""
8489 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
8490 "B<poll>(2)  B<POLLIN> flag)  if one or more of the signals in I<mask> is "
8491 "pending for the process."
8492 msgstr ""
8493 "I<mask> に指定されたシグナルのうち一つ以上がそのプロセスに対して処理待ちであ"
8494 "れば、 ファイルディスクリプタは読み出し可能となる (B<select>(2)  の "
8495 "I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
8496
8497 #. type: Plain text
8498 #: build/C/man2/signalfd.2:160
8499 msgid ""
8500 "The signalfd file descriptor also supports the other file-descriptor "
8501 "multiplexing APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
8502 msgstr ""
8503 "signalfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
8504 "である B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
8505
8506 #. type: Plain text
8507 #: build/C/man2/signalfd.2:165
8508 msgid ""
8509 "When the file descriptor is no longer required it should be closed.  When "
8510 "all file descriptors associated with the same signalfd object have been "
8511 "closed, the resources for object are freed by the kernel."
8512 msgstr ""
8513 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
8514 "る。 同じ signalfd オブジェクトに関連付けられたファイルディスクリプタが全て "
8515 "クローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
8516
8517 #. type: SS
8518 #: build/C/man2/signalfd.2:165
8519 #, no-wrap
8520 msgid "The signalfd_siginfo structure"
8521 msgstr "signalfd_siginfo 構造体"
8522
8523 #. type: Plain text
8524 #: build/C/man2/signalfd.2:171
8525 msgid ""
8526 "The format of the I<signalfd_siginfo> structure(s) returned by B<read>(2)s "
8527 "from a signalfd file descriptor is as follows:"
8528 msgstr ""
8529 "signalfd ファイルディスクリプタからの B<read>(2)  で返される "
8530 "I<signalfd_siginfo> 構造体のフォーマットは以下の通りである。"
8531
8532 #.  ssi_trapno is unused on most arches
8533 #.  FIXME Since Linux 2.6.37 there is 'uint16_t ssi_addr_lsb'
8534 #.  which is not yet documented
8535 #. type: Plain text
8536 #: build/C/man2/signalfd.2:198
8537 #, no-wrap
8538 msgid ""
8539 "struct signalfd_siginfo {\n"
8540 "    uint32_t ssi_signo;   /* Signal number */\n"
8541 "    int32_t  ssi_errno;   /* Error number (unused) */\n"
8542 "    int32_t  ssi_code;    /* Signal code */\n"
8543 "    uint32_t ssi_pid;     /* PID of sender */\n"
8544 "    uint32_t ssi_uid;     /* Real UID of sender */\n"
8545 "    int32_t  ssi_fd;      /* File descriptor (SIGIO) */\n"
8546 "    uint32_t ssi_tid;     /* Kernel timer ID (POSIX timers)\n"
8547 "    uint32_t ssi_band;    /* Band event (SIGIO) */\n"
8548 "    uint32_t ssi_overrun; /* POSIX timer overrun count */\n"
8549 "    uint32_t ssi_trapno;  /* Trap number that caused signal */\n"
8550 "    int32_t  ssi_status;  /* Exit status or signal (SIGCHLD) */\n"
8551 "    int32_t  ssi_int;     /* Integer sent by sigqueue(3) */\n"
8552 "    uint64_t ssi_ptr;     /* Pointer sent by sigqueue(3) */\n"
8553 "    uint64_t ssi_utime;   /* User CPU time consumed (SIGCHLD) */\n"
8554 "    uint64_t ssi_stime;   /* System CPU time consumed (SIGCHLD) */\n"
8555 "    uint64_t ssi_addr;    /* Address that generated signal\n"
8556 "                             (for hardware-generated signals) */\n"
8557 "    uint8_t  pad[I<X>];      /* Pad size to 128 bytes (allow for\n"
8558 "                              additional fields in the future) */\n"
8559 "};\n"
8560 msgstr ""
8561 "struct signalfd_siginfo {\n"
8562 "struct signalfd_siginfo {\n"
8563 "    uint32_t ssi_signo;   /* シグナル番号 */\n"
8564 "    int32_t  ssi_errno;   /* エラー番号 (未使用) */\n"
8565 "    int32_t  ssi_code;    /* シグナルコード */\n"
8566 "    uint32_t ssi_pid;     /* 送信元の PID */\n"
8567 "    uint32_t ssi_uid;     /* 送信元の実 UID */\n"
8568 "    int32_t  ssi_fd;      /* ファイルディスクリプタ (SIGIO) */\n"
8569 "    uint32_t ssi_tid;     /* カーネルタイマ ID (POSIX タイマ)\n"
8570 "    uint32_t ssi_band;    /* Band イベント (SIGIO) */\n"
8571 "    uint32_t ssi_overrun; /* POSIX タイマのオーバーラン回数 */\n"
8572 "    uint32_t ssi_trapno;  /* シグナルの原因となったトラップ番号 */\n"
8573 "    int32_t  ssi_status;  /* 終了ステータスかシグナル (SIGCHLD) */\n"
8574 "    int32_t  ssi_int;     /* sigqueue(3) から送られた整数 */\n"
8575 "    uint64_t ssi_ptr;     /* sigqueue(3) から送られたポインタ */\n"
8576 "    uint64_t ssi_utime;   /* 消費したユーザ CPU 時間 (SIGCHLD) */\n"
8577 "    uint64_t ssi_stime;   /* 消費したシステム CPU 時間 (SIGCHLD) */\n"
8578 "    uint64_t ssi_addr;    /* シグナルを生成したアドレス\n"
8579 "                             (ハードウェアが生成したシグナルの場合) */\n"
8580 "    uint8_t  pad[I<X>];      /* pad の大きさは 128 バイト\n"
8581 "                             (将来のフィールド追加用の場所の確保) */\n"
8582 "};\n"
8583
8584 #. type: Plain text
8585 #: build/C/man2/signalfd.2:221
8586 msgid ""
8587 "Each of the fields in this structure is analogous to the similarly named "
8588 "field in the I<siginfo_t> structure.  The I<siginfo_t> structure is "
8589 "described in B<sigaction>(2).  Not all fields in the returned "
8590 "I<signalfd_siginfo> structure will be valid for a specific signal; the set "
8591 "of valid fields can be determined from the value returned in the I<ssi_code> "
8592 "field.  This field is the analog of the I<siginfo_t> I<si_code> field; see "
8593 "B<sigaction>(2)  for details."
8594 msgstr ""
8595 "I<signalfd_siginfo> 構造体の各フィールドは、 I<siginfo_t> 構造体の同じような"
8596 "名前のフィールドと同様である。 I<siginfo_t> 構造体については B<sigaction>"
8597 "(2)  に説明がある。 返された I<signalfd_siginfo> 構造体の全てのフィールドがあ"
8598 "るシグナルに対して有効なわけではない。 どのフィールドが有効かは、 "
8599 "I<ssi_code> フィールドで返される値から判定することができる。 このフィールド"
8600 "は I<siginfo_t> の I<si_code> フィールドと同様である。詳細は B<sigaction>"
8601 "(2)  を参照。"
8602
8603 #. type: SS
8604 #: build/C/man2/signalfd.2:221 build/C/man2/timerfd_create.2:269
8605 #, no-wrap
8606 msgid "fork(2) semantics"
8607 msgstr "fork(2) での扱い"
8608
8609 #. type: Plain text
8610 #: build/C/man2/signalfd.2:229
8611 msgid ""
8612 "After a B<fork>(2), the child inherits a copy of the signalfd file "
8613 "descriptor.  A B<read>(2)  from the file descriptor in the child will return "
8614 "information about signals queued to the child."
8615 msgstr ""
8616 "B<fork>(2)  が行われると、子プロセスは signalfd ファイルディスクリプタのコ"
8617 "ピーを 継承する。 子プロセスでこのファイルディスクリプタから B<read>(2)  を行"
8618 "うと、子プロセスに対するキューに入っているシグナルに関する 情報が返される。"
8619
8620 #. type: SS
8621 #: build/C/man2/signalfd.2:229 build/C/man2/timerfd_create.2:281
8622 #, no-wrap
8623 msgid "execve(2) semantics"
8624 msgstr "execve(2) での扱い"
8625
8626 #. type: Plain text
8627 #: build/C/man2/signalfd.2:241
8628 msgid ""
8629 "Just like any other file descriptor, a signalfd file descriptor remains open "
8630 "across an B<execve>(2), unless it has been marked for close-on-exec (see "
8631 "B<fcntl>(2)).  Any signals that were available for reading before the "
8632 "B<execve>(2)  remain available to the newly loaded program.  (This is "
8633 "analogous to traditional signal semantics, where a blocked signal that is "
8634 "pending remains pending across an B<execve>(2).)"
8635 msgstr ""
8636 "他のファイルディスクリプタと全く同様に、 signalfd ファイルディスクリプタも "
8637 "B<execve>(2)  の前後でオープンされたままとなる。但し、そのファイルディスクリ"
8638 "プタに close-on-exec のマーク (B<fcntl>(2)  参照) が付いている場合はクローズ"
8639 "される。 B<execve>(2)  の前に読み出し可能となっていた全てのシグナルは新しく起"
8640 "動されたプログラム でも引き続き読み出し可能である (これは伝統的なシグナルの扱"
8641 "いと同じであり、 処理待ちのブロックされたシグナルは B<execve>(2)  の前後で処"
8642 "理待ちのままとなる)。"
8643
8644 #. type: SS
8645 #: build/C/man2/signalfd.2:241
8646 #, no-wrap
8647 msgid "Thread semantics"
8648 msgstr "スレッドでの扱い"
8649
8650 #. type: Plain text
8651 #: build/C/man2/signalfd.2:251
8652 msgid ""
8653 "The semantics of signalfd file descriptors in a multithreaded program mirror "
8654 "the standard semantics for signals.  In other words, when a thread reads "
8655 "from a signalfd file descriptor, it will read the signals that are directed "
8656 "to the thread itself and the signals that are directed to the process (i.e., "
8657 "the entire thread group).  (A thread will not be able to read signals that "
8658 "are directed to other threads in the process.)"
8659 msgstr ""
8660 "マルチスレッドプログラムにおける signalfd ファイルディスクリプタの扱いは シグ"
8661 "ナルの標準的な扱いと全く同じである。 言い換えると、あるスレッドが signalfd "
8662 "ファイルディスクリプタから 読み出しを行うと、そのスレッド自身宛てのシグナルと"
8663 "プロセス (すなわち スレッドグループ全体) 宛てのシグナルが読み出される。 (ス"
8664 "レッドは同じプロセスの他のスレッド宛てのシグナルを読み出すことはできない。)"
8665
8666 #. type: Plain text
8667 #: build/C/man2/signalfd.2:265
8668 msgid ""
8669 "On success, B<signalfd>()  returns a signalfd file descriptor; this is "
8670 "either a new file descriptor (if I<fd> was -1), or I<fd> if I<fd> was a "
8671 "valid signalfd file descriptor.  On error, -1 is returned and I<errno> is "
8672 "set to indicate the error."
8673 msgstr ""
8674 "成功すると、 B<signalfd>()  は signalfd ファイルディスクリプタを返す。 返され"
8675 "るファイルディスクリプタは、 I<fd> が -1 の場合は新規のファイルディスクリプタ"
8676 "であり、 I<fd> が有効な signalfd ファイルディスクリプタだった場合は I<fd> 自"
8677 "身である。 エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
8678
8679 #. type: TP
8680 #: build/C/man2/signalfd.2:266 build/C/man2/timerfd_create.2:338
8681 #, no-wrap
8682 msgid "B<EBADF>"
8683 msgstr "B<EBADF>"
8684
8685 #. type: Plain text
8686 #: build/C/man2/signalfd.2:271
8687 msgid "The I<fd> file descriptor is not a valid file descriptor."
8688 msgstr "ファイルディスクリプタ I<fd> が有効なファイルディスクリプタでない。"
8689
8690 #.  or, the
8691 #.  .I sizemask
8692 #.  argument is not equal to
8693 #.  .IR sizeof(sigset_t) ;
8694 #. type: Plain text
8695 #: build/C/man2/signalfd.2:279
8696 msgid "I<fd> is not a valid signalfd file descriptor."
8697 msgstr "I<fd> が有効な signalfd ファイルディスクリプタではない。"
8698
8699 #. type: Plain text
8700 #: build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:320
8701 msgid ""
8702 "I<flags> is invalid; or, in Linux 2.6.26 or earlier, I<flags> is nonzero."
8703 msgstr ""
8704 "I<flags> が無効である。もしくは、Linux 2.6.26 以前の場合には I<flags> が 0 以"
8705 "外である。"
8706
8707 #. type: Plain text
8708 #: build/C/man2/signalfd.2:289 build/C/man2/timerfd_create.2:323
8709 msgid "The per-process limit of open file descriptors has been reached."
8710 msgstr ""
8711 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
8712
8713 #. type: Plain text
8714 #: build/C/man2/signalfd.2:299
8715 msgid "There was insufficient memory to create a new signalfd file descriptor."
8716 msgstr ""
8717 "新しい signalfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
8718
8719 #.  signalfd() is in glibc 2.7, but reportedly does not build
8720 #. type: Plain text
8721 #: build/C/man2/signalfd.2:307
8722 msgid ""
8723 "B<signalfd>()  is available on Linux since kernel 2.6.22.  Working support "
8724 "is provided in glibc since version 2.8.  The B<signalfd4>()  system call "
8725 "(see NOTES) is available on Linux since kernel 2.6.27."
8726 msgstr ""
8727 "B<signalfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
8728 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<signalfd4>()  "
8729 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
8730 "る。"
8731
8732 #. type: Plain text
8733 #: build/C/man2/signalfd.2:312
8734 msgid "B<signalfd>()  and B<signalfd4>()  are Linux-specific."
8735 msgstr "B<signalfd>()  と B<signalfd4>()  は Linux 固有である。"
8736
8737 #. type: Plain text
8738 #: build/C/man2/signalfd.2:322
8739 msgid ""
8740 "The underlying Linux system call requires an additional argument, I<size_t "
8741 "sizemask>, which specifies the size of the I<mask> argument.  The glibc "
8742 "B<signalfd>()  wrapper function does not include this argument, since it "
8743 "provides the required value for the underlying system call."
8744 msgstr ""
8745 "実際の Linux のシステムコールでは I<size_t sizemask> という引き数が追加で必要"
8746 "である。この引き数で I<mask> のサイズを指定する。 glibc の B<signalfd>()  "
8747 "ラッパー関数にはこの引き数は含まれず、 ラッパー関数が必要な値を計算して内部で"
8748 "呼び出すシステムコールに提供する。"
8749
8750 #. type: Plain text
8751 #: build/C/man2/signalfd.2:336
8752 msgid ""
8753 "A process can create multiple signalfd file descriptors.  This makes it "
8754 "possible to accept different signals on different file descriptors.  (This "
8755 "may be useful if monitoring the file descriptors using B<select>(2), B<poll>"
8756 "(2), or B<epoll>(7): the arrival of different signals will make different "
8757 "descriptors ready.)  If a signal appears in the I<mask> of more than one of "
8758 "the file descriptors, then occurrences of that signal can be read (once) "
8759 "from any one of the descriptors."
8760 msgstr ""
8761 "一つのプロセスは複数の signalfd ファイルディスクリプタを生成することができ"
8762 "る。 これにより、異なるファイルディスクリプタで異なるシグナルを受け取ること"
8763 "が できる (この機能は B<select>(2), B<poll>(2), B<epoll>(7)  を使ってファイル"
8764 "ディスクリプタを監視する場合に有用かもしれない。 異なるシグナルが到着すると、"
8765 "異なるファイルディスクリプタが利用可能に なるからだ)。 一つのシグナルが二つ以"
8766 "上のファイルディスクリプタの I<mask> に含まれている場合、そのシグナルの発生は"
8767 "そのシグナルを I<mask> に含むファイルディスクリプタのうちいずれか一つから読み"
8768 "出すことができる。"
8769
8770 #. type: Plain text
8771 #: build/C/man2/signalfd.2:352
8772 msgid ""
8773 "There are two underlying Linux system calls: B<signalfd>()  and the more "
8774 "recent B<signalfd4>().  The former system call does not implement a I<flags> "
8775 "argument.  The latter system call implements the I<flags> values described "
8776 "above.  Starting with glibc 2.9, the B<signalfd>()  wrapper function will "
8777 "use B<signalfd4>()  where it is available."
8778 msgstr ""
8779 "下層にある Linux システムコールは二種類あり、 B<signalfd>()  と、もっと新し"
8780 "い B<signalfd4>()  である。 B<signalfd>()  は I<flags> 引き数を実装していな"
8781 "い。 B<signalfd4>()  では上記の値の I<flags> が実装されている。 glibc 2.9 以"
8782 "降では、 B<signalfd>()  のラッパー関数は、 B<signalfd4>()  が利用可能であれ"
8783 "ば、これを使用する。"
8784
8785 #.  The fix also was put into 2.6.24.5
8786 #. type: Plain text
8787 #: build/C/man2/signalfd.2:360
8788 msgid ""
8789 "In kernels before 2.6.25, the I<ssi_ptr> and I<ssi_int> fields are not "
8790 "filled in with the data accompanying a signal sent by B<sigqueue>(3)."
8791 msgstr ""
8792 "カーネル 2.6.25 より前では、 B<sigqueue>(3)  により送信されたシグナルと一緒に"
8793 "渡されるデータでは、フィールド I<ssi_ptr> と I<ssi_int> は設定されない。"
8794
8795 #. type: Plain text
8796 #: build/C/man2/signalfd.2:370
8797 msgid ""
8798 "The program below accepts the signals B<SIGINT> and B<SIGQUIT> via a "
8799 "signalfd file descriptor.  The program terminates after accepting a "
8800 "B<SIGQUIT> signal.  The following shell session demonstrates the use of the "
8801 "program:"
8802 msgstr ""
8803 "下記のプログラムは、シグナル B<SIGINT> と B<SIGQUIT> を signalfd ファイルディ"
8804 "スクリプタ経由で受信する。 シグナル B<SIGQUIT> 受信後にプログラムは終了す"
8805 "る。 以下に示すシェルセッションにこのプログラムの使い方を示す。"
8806
8807 #. type: Plain text
8808 #: build/C/man2/signalfd.2:381
8809 #, no-wrap
8810 msgid ""
8811 "$B< ./signalfd_demo>\n"
8812 "B<^C>                   # Control-C generates SIGINT\n"
8813 "Got SIGINT\n"
8814 "B<^C>\n"
8815 "Got SIGINT\n"
8816 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
8817 "Got SIGQUIT\n"
8818 "$\n"
8819 msgstr ""
8820 "$B< ./signalfd_demo>\n"
8821 "B<^C>                   # Control-C generates SIGINT\n"
8822 "Got SIGINT\n"
8823 "B<^C>\n"
8824 "Got SIGINT\n"
8825 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
8826 "Got SIGQUIT\n"
8827 "$\n"
8828
8829 #. type: Plain text
8830 #: build/C/man2/signalfd.2:391
8831 #, no-wrap
8832 msgid ""
8833 "#include E<lt>sys/signalfd.hE<gt>\n"
8834 "#include E<lt>signal.hE<gt>\n"
8835 "#include E<lt>unistd.hE<gt>\n"
8836 "#include E<lt>stdlib.hE<gt>\n"
8837 "#include E<lt>stdio.hE<gt>\n"
8838 msgstr ""
8839 "#include E<lt>sys/signalfd.hE<gt>\n"
8840 "#include E<lt>signal.hE<gt>\n"
8841 "#include E<lt>unistd.hE<gt>\n"
8842 "#include E<lt>stdlib.hE<gt>\n"
8843 "#include E<lt>stdio.hE<gt>\n"
8844
8845 #. type: Plain text
8846 #: build/C/man2/signalfd.2:402
8847 #, no-wrap
8848 msgid ""
8849 "int\n"
8850 "main(int argc, char *argv[])\n"
8851 "{\n"
8852 "    sigset_t mask;\n"
8853 "    int sfd;\n"
8854 "    struct signalfd_siginfo fdsi;\n"
8855 "    ssize_t s;\n"
8856 msgstr ""
8857 "int\n"
8858 "main(int argc, char *argv[])\n"
8859 "{\n"
8860 "    sigset_t mask;\n"
8861 "    int sfd;\n"
8862 "    struct signalfd_siginfo fdsi;\n"
8863 "    ssize_t s;\n"
8864
8865 #. type: Plain text
8866 #: build/C/man2/signalfd.2:406
8867 #, no-wrap
8868 msgid ""
8869 "    sigemptyset(&mask);\n"
8870 "    sigaddset(&mask, SIGINT);\n"
8871 "    sigaddset(&mask, SIGQUIT);\n"
8872 msgstr ""
8873 "    sigemptyset(&mask);\n"
8874 "    sigaddset(&mask, SIGINT);\n"
8875 "    sigaddset(&mask, SIGQUIT);\n"
8876
8877 #. type: Plain text
8878 #: build/C/man2/signalfd.2:409
8879 #, no-wrap
8880 msgid ""
8881 "    /* Block signals so that they aren\\(aqt handled\n"
8882 "       according to their default dispositions */\n"
8883 msgstr ""
8884 "    /* Block signals so that they aren\\(aqt handled\n"
8885 "       according to their default dispositions */\n"
8886
8887 #. type: Plain text
8888 #: build/C/man2/signalfd.2:412
8889 #, no-wrap
8890 msgid ""
8891 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
8892 "        handle_error(\"sigprocmask\");\n"
8893 msgstr ""
8894 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
8895 "        handle_error(\"sigprocmask\");\n"
8896
8897 #. type: Plain text
8898 #: build/C/man2/signalfd.2:416
8899 #, no-wrap
8900 msgid ""
8901 "    sfd = signalfd(-1, &mask, 0);\n"
8902 "    if (sfd == -1)\n"
8903 "        handle_error(\"signalfd\");\n"
8904 msgstr ""
8905 "    sfd = signalfd(-1, &mask, 0);\n"
8906 "    if (sfd == -1)\n"
8907 "        handle_error(\"signalfd\");\n"
8908
8909 #. type: Plain text
8910 #: build/C/man2/signalfd.2:421
8911 #, no-wrap
8912 msgid ""
8913 "    for (;;) {\n"
8914 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
8915 "        if (s != sizeof(struct signalfd_siginfo))\n"
8916 "            handle_error(\"read\");\n"
8917 msgstr ""
8918 "    for (;;) {\n"
8919 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
8920 "        if (s != sizeof(struct signalfd_siginfo))\n"
8921 "            handle_error(\"read\");\n"
8922
8923 #. type: Plain text
8924 #: build/C/man2/signalfd.2:432
8925 #, no-wrap
8926 msgid ""
8927 "        if (fdsi.ssi_signo == SIGINT) {\n"
8928 "            printf(\"Got SIGINT\\en\");\n"
8929 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
8930 "            printf(\"Got SIGQUIT\\en\");\n"
8931 "            exit(EXIT_SUCCESS);\n"
8932 "        } else {\n"
8933 "            printf(\"Read unexpected signal\\en\");\n"
8934 "        }\n"
8935 "    }\n"
8936 "}\n"
8937 msgstr ""
8938 "        if (fdsi.ssi_signo == SIGINT) {\n"
8939 "            printf(\"Got SIGINT\\en\");\n"
8940 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
8941 "            printf(\"Got SIGQUIT\\en\");\n"
8942 "            exit(EXIT_SUCCESS);\n"
8943 "        } else {\n"
8944 "            printf(\"Read unexpected signal\\en\");\n"
8945 "        }\n"
8946 "    }\n"
8947 "}\n"
8948
8949 #. type: Plain text
8950 #: build/C/man2/signalfd.2:446
8951 msgid ""
8952 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
8953 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
8954 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
8955 msgstr ""
8956 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
8957 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
8958 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
8959
8960 #. type: TH
8961 #: build/C/man3/sigpause.3:25
8962 #, no-wrap
8963 msgid "SIGPAUSE"
8964 msgstr "SIGPAUSE"
8965
8966 #. type: TH
8967 #: build/C/man3/sigpause.3:25
8968 #, no-wrap
8969 msgid "2010-09-12"
8970 msgstr "2010-09-12"
8971
8972 #. type: Plain text
8973 #: build/C/man3/sigpause.3:28
8974 msgid "sigpause - atomically release blocked signals and wait for interrupt"
8975 msgstr "sigpause - ブロックされたシグナルをアトミックに解放して割り込みを待つ"
8976
8977 #. type: Plain text
8978 #: build/C/man3/sigpause.3:33
8979 #, no-wrap
8980 msgid "B<int sigpause(int >I<sigmask>B<);  /* BSD */>\n"
8981 msgstr "B<int sigpause(int >I<sigmask>B<);  /* BSD */>\n"
8982
8983 #. type: Plain text
8984 #: build/C/man3/sigpause.3:35
8985 #, no-wrap
8986 msgid "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
8987 msgstr "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
8988
8989 #. type: Plain text
8990 #: build/C/man3/sigpause.3:41
8991 msgid "Don't use this function.  Use B<sigsuspend>(2)  instead."
8992 msgstr "この関数を使わないこと。 代わりに B<sigsuspend>(2)  を使うこと。"
8993
8994 #. type: Plain text
8995 #: build/C/man3/sigpause.3:48
8996 msgid ""
8997 "The function B<sigpause>()  is designed to wait for some signal.  It changes "
8998 "the process's signal mask (set of blocked signals), and then waits for a "
8999 "signal to arrive.  Upon arrival of a signal, the original signal mask is "
9000 "restored."
9001 msgstr ""
9002 "関数 B<sigpause>()  はシグナルを待つように設計されている。 この関数はプロセス"
9003 "のシグナルマスク (ブロックされたシグナルのセット) を変更し、 シグナルが到着す"
9004 "るのを待つ。 シグナルが到着すると、シグナルマスクは元に戻される。"
9005
9006 #. type: Plain text
9007 #: build/C/man3/sigpause.3:56
9008 msgid ""
9009 "If B<sigpause>()  returns, it was interrupted by a signal and the return "
9010 "value is -1 with I<errno> set to B<EINTR>."
9011 msgstr ""
9012 "B<sigpause>()  が返った場合、この関数はシグナルによって割り込まれている。 返"
9013 "り値は -1 で、 I<errno> は B<EINTR> に設定される。"
9014
9015 #. type: Plain text
9016 #: build/C/man3/sigpause.3:60
9017 msgid "The System V version of B<sigpause>()  is standardized in POSIX.1-2001."
9018 msgstr "System V 版の B<sigpause>()  は POSIX.1-2001 で標準化されている。"
9019
9020 #.  __xpg_sigpause: UNIX 95, spec 1170, SVID, SVr4, XPG
9021 #. type: Plain text
9022 #: build/C/man3/sigpause.3:77
9023 msgid ""
9024 "The classical BSD version of this function appeared in 4.2BSD.  It sets the "
9025 "process's signal mask to I<sigmask>.  UNIX 95 standardized the incompatible "
9026 "System V version of this function, which removes only the specified signal "
9027 "I<sig> from the process's signal mask.  The unfortunate situation with two "
9028 "incompatible functions with the same name was solved by the B<\\%sigsuspend>"
9029 "(2)  function, that takes a I<sigset_t\\ *> argument (instead of an I<int>)."
9030 msgstr ""
9031 "この関数の古典的な BSD 版は 4.2BSD で登場した。 この関数はプロセスのシグナル"
9032 "マスクを I<sigmask> に設定する。 UNIX 95 では BSD 版と互換性のない System V "
9033 "版のこの関数が標準化された。 UNIX 95 版は、指定されたシグナル I<sig> をプロセ"
9034 "スのシグナルマスクから削除するだけである。 同じ名前で互換性のない 2 つの関数"
9035 "があるという不幸な事態は、 B<\\%sigsuspend>(2)  関数によって解消された。 この"
9036 "関数は (I<int> の代わりに)  B<sigset_t\\ *> 引き数をとる。"
9037
9038 #. type: Plain text
9039 #: build/C/man3/sigpause.3:80
9040 msgid ""
9041 "On Linux, this routine is a system call only on the Sparc (sparc64)  "
9042 "architecture."
9043 msgstr ""
9044 "Linux では、このルーチンは Sparc (sparc64) アーキテクチャでのみ システムコー"
9045 "ルとなっている。"
9046
9047 #. type: Plain text
9048 #: build/C/man3/sigpause.3:82
9049 msgid "Libc4 and libc5 know only about the BSD version."
9050 msgstr "libc4 と libc5 には BSD 版しかない。"
9051
9052 #.  For the BSD version, one usually uses a zero
9053 #.  .I sigmask
9054 #.  to indicate that no signals are to be blocked.
9055 #. type: Plain text
9056 #: build/C/man3/sigpause.3:98
9057 msgid ""
9058 "Glibc uses the BSD version if the B<_BSD_SOURCE> feature test macro is "
9059 "defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
9060 "B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined.  Otherwise, the System V "
9061 "version is used."
9062 msgstr ""
9063 "機能検査マクロ B<_BSD_SOURCE> が定義され、 B<_POSIX_SOURCE>, "
9064 "B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, B<_GNU_SOURCE>, B<_SVID_SOURCE> のいず"
9065 "れも定義されていない場合、 glibc は BSD 版を使う。 それ以外の場合には、"
9066 "System V 版を使用する。"
9067
9068 #. type: Plain text
9069 #: build/C/man3/sigpause.3:106
9070 msgid ""
9071 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigblock>"
9072 "(3), B<sigvec>(3), B<feature_test_macros>(7)"
9073 msgstr ""
9074 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigblock>"
9075 "(3), B<sigvec>(3), B<feature_test_macros>(7)"
9076
9077 #. type: TH
9078 #: build/C/man2/sigpending.2:29
9079 #, no-wrap
9080 msgid "SIGPENDING"
9081 msgstr "SIGPENDING"
9082
9083 #. type: Plain text
9084 #: build/C/man2/sigpending.2:32
9085 msgid "sigpending - examine pending signals"
9086 msgstr "sigpending - 処理待ちのシグナルの検査"
9087
9088 #. type: Plain text
9089 #: build/C/man2/sigpending.2:36
9090 msgid "B<int sigpending(sigset_t *>I<set>B<);>"
9091 msgstr "B<int sigpending(sigset_t *>I<set>B<);>"
9092
9093 #. type: Plain text
9094 #: build/C/man2/sigpending.2:45
9095 msgid ""
9096 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9097 "_POSIX_SOURCE"
9098 msgstr ""
9099 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9100 "_POSIX_SOURCE"
9101
9102 #. type: Plain text
9103 #: build/C/man2/sigpending.2:53
9104 msgid ""
9105 "B<sigpending>()  returns the set of signals that are pending for delivery to "
9106 "the calling thread (i.e., the signals which have been raised while "
9107 "blocked).  The mask of pending signals is returned in I<set>."
9108 msgstr ""
9109 "B<sigpending>()  は、呼び出し元のスレッドへの配送を待っている (pending) シグ"
9110 "ナル集合 (すなわち、禁止中に発生したシグナル) を返す。 処理待ちのシグナルのマ"
9111 "スクが I<set> に格納される。"
9112
9113 #. type: Plain text
9114 #: build/C/man2/sigpending.2:59
9115 msgid ""
9116 "B<sigpending>()  returns 0 on success and -1 on error.  In the event of an "
9117 "error, I<errno> is set to indicate the cause."
9118 msgstr ""
9119 "B<sigpending>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、I<errno> "
9120 "にエラーの原因を示す値を設定する。"
9121
9122 #. type: Plain text
9123 #: build/C/man2/sigpending.2:64
9124 msgid ""
9125 "I<set> points to memory which is not a valid part of the process address "
9126 "space."
9127 msgstr ""
9128 "I<set> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
9129
9130 #. type: Plain text
9131 #: build/C/man2/sigpending.2:75
9132 msgid ""
9133 "The set of signals that is pending for a thread is the union of the set of "
9134 "signals that is pending for that thread and the set of signals that is "
9135 "pending for the process as a whole; see B<signal>(7)."
9136 msgstr ""
9137 "あるスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体への処理待ち"
9138 "のシグナル集合と、プロセス全体への処理待ちの シグナル集合をあわせたものであ"
9139 "る。 B<signal>(7)  参照。"
9140
9141 #. type: Plain text
9142 #: build/C/man2/sigpending.2:87
9143 msgid ""
9144 "In versions of glibc up to and including 2.2.1, there is a bug in the "
9145 "wrapper function for B<sigpending>()  which means that information about "
9146 "pending real-time signals is not correctly returned."
9147 msgstr ""
9148 "バージョン 2.2.1 以前の glibc では、 B<sigpending>()  のラッパー関数に、処理"
9149 "待ちのリアルタイムシグナルに関する情報が 正しく返されないというバグがある。"
9150
9151 #. type: Plain text
9152 #: build/C/man2/sigpending.2:95
9153 msgid ""
9154 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), B<sigsuspend>"
9155 "(2), B<sigsetops>(3), B<signal>(7)"
9156 msgstr ""
9157 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), B<sigsuspend>"
9158 "(2), B<sigsetops>(3), B<signal>(7)"
9159
9160 #. type: TH
9161 #: build/C/man2/sigprocmask.2:29
9162 #, no-wrap
9163 msgid "SIGPROCMASK"
9164 msgstr "SIGPROCMASK"
9165
9166 #. type: Plain text
9167 #: build/C/man2/sigprocmask.2:32
9168 msgid "sigprocmask - examine and change blocked signals"
9169 msgstr "sigprocmask - 禁止するシグナルの確認と変更"
9170
9171 #. type: Plain text
9172 #: build/C/man2/sigprocmask.2:37
9173 msgid ""
9174 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9175 "*>I<oldset>B<);>"
9176 msgstr ""
9177 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9178 "*>I<oldset>B<);>"
9179
9180 #. type: Plain text
9181 #: build/C/man2/sigprocmask.2:46
9182 msgid ""
9183 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9184 "_POSIX_SOURCE"
9185 msgstr ""
9186 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9187 "_POSIX_SOURCE"
9188
9189 #. type: Plain text
9190 #: build/C/man2/sigprocmask.2:55
9191 msgid ""
9192 "B<sigprocmask>()  is used to fetch and/or change the signal mask of the "
9193 "calling thread.  The signal mask is the set of signals whose delivery is "
9194 "currently blocked for the caller (see also B<signal>(7)  for more details)."
9195 msgstr ""
9196 "B<sigprocmask>()  を使うと、呼び出したスレッドのシグナルマスクの取得/変更がで"
9197 "きる。 シグナルマスクは、呼び出し元に対して現在配送が禁止されているシグナル"
9198 "の 集合のことである (詳細については B<signal>(7)  も参照のこと)。"
9199
9200 #. type: Plain text
9201 #: build/C/man2/sigprocmask.2:59
9202 msgid ""
9203 "The behavior of the call is dependent on the value of I<how>, as follows."
9204 msgstr "このコールの動作は I<how> の値によって決まる:"
9205
9206 #. type: TP
9207 #: build/C/man2/sigprocmask.2:59
9208 #, no-wrap
9209 msgid "B<SIG_BLOCK>"
9210 msgstr "B<SIG_BLOCK>"
9211
9212 #. type: Plain text
9213 #: build/C/man2/sigprocmask.2:64
9214 msgid ""
9215 "The set of blocked signals is the union of the current set and the I<set> "
9216 "argument."
9217 msgstr ""
9218 "禁止されたシグナルの集合は現在の値と I<set> 引き数を結合したものとなる。"
9219
9220 #. type: TP
9221 #: build/C/man2/sigprocmask.2:64
9222 #, no-wrap
9223 msgid "B<SIG_UNBLOCK>"
9224 msgstr "B<SIG_UNBLOCK>"
9225
9226 #. type: Plain text
9227 #: build/C/man2/sigprocmask.2:70
9228 msgid ""
9229 "The signals in I<set> are removed from the current set of blocked signals.  "
9230 "It is permissible to attempt to unblock a signal which is not blocked."
9231 msgstr ""
9232 "現在禁止されているシグナルの集合から I<set> にあるシグナルを取り除く。禁止さ"
9233 "れていないシグナルを取り除こうと することも認められている。"
9234
9235 #. type: TP
9236 #: build/C/man2/sigprocmask.2:70
9237 #, no-wrap
9238 msgid "B<SIG_SETMASK>"
9239 msgstr "B<SIG_SETMASK>"
9240
9241 #. type: Plain text
9242 #: build/C/man2/sigprocmask.2:74
9243 msgid "The set of blocked signals is set to the argument I<set>."
9244 msgstr "禁止されているシグナルの集合に I<set> 引き数を設定する。"
9245
9246 #. type: Plain text
9247 #: build/C/man2/sigprocmask.2:79
9248 msgid ""
9249 "If I<oldset> is non-NULL, the previous value of the signal mask is stored in "
9250 "I<oldset>."
9251 msgstr ""
9252 "I<oldset> が NULL でなければ、シグナルマスクの今までの値を I<oldset> に格納す"
9253 "る。"
9254
9255 #. type: Plain text
9256 #: build/C/man2/sigprocmask.2:88
9257 msgid ""
9258 "If I<set> is NULL, then the signal mask is unchanged (i.e., I<how> is "
9259 "ignored), but the current value of the signal mask is nevertheless returned "
9260 "in I<oldset> (if it is not NULL)."
9261 msgstr ""
9262 "I<set> が NULL であれば、シグナルマスクは変更されない (すなわち、 I<how> は無"
9263 "視される)。 I<set> の値にかかわらず、現在のシグナルマスクの値は I<oldset> に"
9264 "入れて返される (但し、 I<oldset> が NULL でない場合)。"
9265
9266 #. type: Plain text
9267 #: build/C/man2/sigprocmask.2:93
9268 msgid ""
9269 "The use of B<sigprocmask>()  is unspecified in a multithreaded process; see "
9270 "B<pthread_sigmask>(3)."
9271 msgstr ""
9272 "マルチスレッドのプロセスで B<sigprocmask>()  を使用した場合の動作は規定されて"
9273 "いない。 B<pthread_sigmask>(3)  を参照のこと。"
9274
9275 #. type: Plain text
9276 #: build/C/man2/sigprocmask.2:99
9277 msgid ""
9278 "B<sigprocmask>()  returns 0 on success and -1 on error.  In the event of an "
9279 "error, I<errno> is set to indicate the cause."
9280 msgstr ""
9281 "B<sigprocmask>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、 "
9282 "I<errno> にエラーの原因を示す値を設定する。"
9283
9284 #. type: Plain text
9285 #: build/C/man2/sigprocmask.2:107
9286 msgid ""
9287 "the I<set> or I<oldset> argument points outside the process's allocated "
9288 "address space."
9289 msgstr ""
9290 "引き数 I<set> か I<oldset> がプロセスに割り当てられた\n"
9291 "アドレス空間の外を指している。"
9292
9293 #. type: Plain text
9294 #: build/C/man2/sigprocmask.2:112
9295 msgid "The value specified in I<how> was invalid."
9296 msgstr "I<how> に指定された値が有効ではない。"
9297
9298 #. type: Plain text
9299 #: build/C/man2/sigprocmask.2:118
9300 msgid ""
9301 "It is not possible to block B<SIGKILL> or B<SIGSTOP>.  Attempts to do so are "
9302 "silently ignored."
9303 msgstr ""
9304 "B<SIGKILL> や B<SIGSTOP> を禁止することはできない。 禁止しようとしても黙って"
9305 "無視される。"
9306
9307 #. type: Plain text
9308 #: build/C/man2/sigprocmask.2:120
9309 msgid "Each of the threads in a process has its own signal mask."
9310 msgstr "プロセス内の各スレッドはそれぞれ専用のシグナルマスクを持つ。"
9311
9312 #. type: Plain text
9313 #: build/C/man2/sigprocmask.2:140
9314 msgid ""
9315 "If B<SIGBUS>, B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> are generated while they "
9316 "are blocked, the result is undefined, unless the signal was generated by "
9317 "B<kill>(2), B<sigqueue>(3), or B<raise>(3)."
9318 msgstr ""
9319 "シグナル B<SIGBUS>, B<SIGFPE>, B<SIGILL>, B<SIGSEGV> が禁止されている間に生成"
9320 "された場合で、 そのシグナルが B<kill>(2), B<sigqueue>(3), B<raise>(3)  によっ"
9321 "て生成されたものでないときには、 その後の動作は未定義である。"
9322
9323 #. type: Plain text
9324 #: build/C/man2/sigprocmask.2:155
9325 msgid ""
9326 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9327 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9328 "B<signal>(7)"
9329 msgstr ""
9330 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9331 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9332 "B<signal>(7)"
9333
9334 #. type: TH
9335 #: build/C/man3/sigqueue.3:28
9336 #, no-wrap
9337 msgid "SIGQUEUE"
9338 msgstr "SIGQUEUE"
9339
9340 #. type: TH
9341 #: build/C/man3/sigqueue.3:28
9342 #, no-wrap
9343 msgid "2012-03-25"
9344 msgstr "2012-03-25"
9345
9346 #. type: Plain text
9347 #: build/C/man3/sigqueue.3:31
9348 msgid "sigqueue - queue a signal and data to a process"
9349 msgstr "sigqueue - シグナルとデータをプロセスに送る"
9350
9351 #. type: Plain text
9352 #: build/C/man3/sigqueue.3:35
9353 msgid ""
9354 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9355 ">I<value>B<);>"
9356 msgstr ""
9357 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9358 ">I<value>B<);>"
9359
9360 #. type: Plain text
9361 #: build/C/man3/sigqueue.3:43
9362 msgid "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9363 msgstr "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9364
9365 #. type: Plain text
9366 #: build/C/man3/sigqueue.3:55
9367 msgid ""
9368 "B<sigqueue>()  sends the signal specified in I<sig> to the process whose PID "
9369 "is given in I<pid>.  The permissions required to send a signal are the same "
9370 "as for B<kill>(2).  As with B<kill>(2), the null signal (0) can be used to "
9371 "check if a process with a given PID exists."
9372 msgstr ""
9373 "B<sigqueue>()  は I<sig> で指定されたシグナルを、PID が I<pid> であるプロセス"
9374 "に送る。 シグナルを送るのに必要な権限は B<kill>(2)  と同じである。 B<kill>"
9375 "(2)  と同様に、ヌル・シグナル (0) を使って 指定した PID のプロセスが存在する"
9376 "かをチェックすることができる。"
9377
9378 #. type: Plain text
9379 #: build/C/man3/sigqueue.3:60
9380 msgid ""
9381 "The I<value> argument is used to specify an accompanying item of data "
9382 "(either an integer or a pointer value) to be sent with the signal, and has "
9383 "the following type:"
9384 msgstr ""
9385 "I<value> 引き数はシグナルと一緒に送るデータの付属アイテムを指定する。 "
9386 "I<value> は (整数またはポインタの値であり) 以下のような型である。"
9387
9388 #. type: Plain text
9389 #: build/C/man3/sigqueue.3:67
9390 #, no-wrap
9391 msgid ""
9392 "union sigval {\n"
9393 "    int   sival_int;\n"
9394 "    void *sival_ptr;\n"
9395 "};\n"
9396 msgstr ""
9397 "union sigval {\n"
9398 "    int   sival_int;\n"
9399 "    void *sival_ptr;\n"
9400 "};\n"
9401
9402 #. type: Plain text
9403 #: build/C/man3/sigqueue.3:83
9404 msgid ""
9405 "If the receiving process has installed a handler for this signal using the "
9406 "B<SA_SIGINFO> flag to B<sigaction>(2), then it can obtain this data via the "
9407 "I<si_value> field of the I<siginfo_t> structure passed as the second "
9408 "argument to the handler.  Furthermore, the I<si_code> field of that "
9409 "structure will be set to B<SI_QUEUE>."
9410 msgstr ""
9411 "受取先のプロセスに、このシグナルに対するハンドラを (B<sigaction>(2)  に "
9412 "B<SA_SIGINFO> を指定して) インストールしておくと、 そのハンドラの第 2 引き数"
9413 "に渡される I<siginfo_t> 構造体の I<si_value> フィールドによって、このデータを"
9414 "取得できる。 さらに、この構造体の I<si_code> フィールドは B<SI_QUEUE> に設定"
9415 "される。"
9416
9417 #. type: Plain text
9418 #: build/C/man3/sigqueue.3:91
9419 msgid ""
9420 "On success, B<sigqueue>()  returns 0, indicating that the signal was "
9421 "successfully queued to the receiving process.  Otherwise -1 is returned and "
9422 "I<errno> is set to indicate the error."
9423 msgstr ""
9424 "成功した場合、 B<sigqueue>()  は 0 を返す。 これは受け取り側プロセスの待ち行"
9425 "列に シグナルが正しく入れられたことを示す。 失敗した場合は -1 が返され、 "
9426 "I<errno> がエラーを表す値に設定される。"
9427
9428 #. type: Plain text
9429 #: build/C/man3/sigqueue.3:102
9430 msgid "I<sig> was invalid."
9431 msgstr "I<sig> が不正である。"
9432
9433 #. type: Plain text
9434 #: build/C/man3/sigqueue.3:108
9435 msgid ""
9436 "The process does not have permission to send the signal to the receiving "
9437 "process.  For the required permissions, see B<kill>(2)."
9438 msgstr ""
9439 "このプロセスには、受け取り側プロセスにシグナルを送る権限がない。 必要な権限に"
9440 "ついては、 B<kill>(2)  を参照すること。"
9441
9442 #. type: Plain text
9443 #: build/C/man3/sigqueue.3:112
9444 msgid "No process has a PID matching I<pid>."
9445 msgstr "I<pid> にマッチする PID のプロセスがない。"
9446
9447 #. type: Plain text
9448 #: build/C/man3/sigqueue.3:114
9449 msgid "This system call first appeared in Linux 2.2."
9450 msgstr "このシステムコールは Linux 2.2 で初めて登場した。"
9451
9452 #. type: Plain text
9453 #: build/C/man3/sigqueue.3:124
9454 msgid ""
9455 "If this function results in the sending of a signal to the process that "
9456 "invoked it, and that signal was not blocked by the calling thread, and no "
9457 "other threads were willing to handle this signal (either by having it "
9458 "unblocked, or by waiting for it using B<sigwait>(3)), then at least some "
9459 "signal must be delivered to this thread before this function returns."
9460 msgstr ""
9461 "この関数を呼び出したプロセスにこの関数がシグナルを送ったときに、 シグナルが呼"
9462 "び出し側スレッドにブロックされず、 かつ (シグナルがブロックされなかった、また"
9463 "は B<sigwait>(3)  を使用するのを待っていることにより)  このシグナルを扱うス"
9464 "レッドが何もない場合は、 この関数がリターンする前に、少なくとも そのスレッド"
9465 "に対してシグナルが配送されていなければならない。"
9466
9467 #. type: Plain text
9468 #: build/C/man3/sigqueue.3:139
9469 msgid ""
9470 "On Linux, this function is implemented using the B<rt_sigqueueinfo>(2)  "
9471 "system call.  The system call differs in its third argument, which is the "
9472 "I<siginfo_t> structure that will be supplied to the receiving process's "
9473 "signal handler or returned by the receiving process's B<sigtimedwait>(2)  "
9474 "call.  Inside the glibc B<sigqueue>()  wrapper, this argument, I<uinfo>, is "
9475 "initialized as follows:"
9476 msgstr ""
9477 "Linux では、この関数は B<rt_sigqueueinfo>(2)  システムコールを使って実装され"
9478 "ている。 両者には 3 番目の引き数に違いがあり、 B<rt_sigqueueinfo>(2)  では 3 "
9479 "番目の引き数は I<siginfo_t> 構造体である。 I<siginfo_t> 構造体は、シグナルを"
9480 "受信するプロセスのシグナルハンドラに渡されたり、 シグナル受信プロセスの "
9481 "B<sigtimedwait>(2)  システムコールから返されたりする。 glibc の B<sigqueue>"
9482 "()  ラッパー関数内部では、 この引き数 I<uinfo> は以下のように初期化される。"
9483
9484 #. type: Plain text
9485 #: build/C/man3/sigqueue.3:147
9486 #, no-wrap
9487 msgid ""
9488 "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9489 "uinfo.si_code = SI_QUEUE;\n"
9490 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9491 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9492 "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9493 msgstr ""
9494 "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9495 "uinfo.si_code = SI_QUEUE;\n"
9496 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9497 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9498 "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9499
9500 #. type: Plain text
9501 #: build/C/man3/sigqueue.3:157
9502 msgid ""
9503 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9504 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9505 msgstr ""
9506 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9507 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9508
9509 #. type: TH
9510 #: build/C/man2/sigreturn.2:29
9511 #, no-wrap
9512 msgid "SIGRETURN"
9513 msgstr "SIGRETURN"
9514
9515 #. type: Plain text
9516 #: build/C/man2/sigreturn.2:32
9517 msgid "sigreturn - return from signal handler and cleanup stack frame"
9518 msgstr "sigreturn - シグナル・ハンドラから返り、スタックを掃除する"
9519
9520 #. type: Plain text
9521 #: build/C/man2/sigreturn.2:34
9522 msgid "B<int sigreturn(unsigned long >I<__unused>B<);>"
9523 msgstr "B<int sigreturn(unsigned long >I<__unused>B<);>"
9524
9525 #. type: Plain text
9526 #: build/C/man2/sigreturn.2:42
9527 msgid ""
9528 "When the Linux kernel creates the stack frame for a signal handler, a call "
9529 "to B<sigreturn>()  is inserted into the stack frame so that upon return from "
9530 "the signal handler, B<sigreturn>()  will be called."
9531 msgstr ""
9532 "Linux カーネルは、 シグナル・ハンドラ用にスタック・フレームを作成する際、 "
9533 "B<sigreturn>()  をスタック・フレームに挿入し、シグナル・ハンドラが返るときに "
9534 "B<sigreturn>()  が呼ばれるようにする。"
9535
9536 #. type: Plain text
9537 #: build/C/man2/sigreturn.2:53
9538 msgid ""
9539 "This B<sigreturn>()  call undoes everything that was done\\(emchanging the "
9540 "process's signal mask, switching stacks (see B<sigaltstack>(2))\\(emin order "
9541 "to invoke the signal handler: it restores the process's signal mask, "
9542 "switches stacks, and restores the process's context (registers, processor "
9543 "flags), so that the process directly resumes execution at the point where it "
9544 "was interrupted by the signal."
9545 msgstr ""
9546 "B<sigreturn>()  は、シグナル・ハンドラを起動するために行ったことの全て \\(em "
9547 "プロセスのシグナルマスクの変更、スタックの切り替え (B<sigaltstack>(2)  参照) "
9548 "\\(em の取り消しを行う。 プロセスのシグナルマスクの復元、スタックの切り替"
9549 "え、 プロセスのコンテキスト (レジスタ、プロセッサ・フラグ) の復元を行い、 プ"
9550 "ロセスがシグナルにより割り込まれた場所からそのまま実行を 再開できるようにす"
9551 "る。"
9552
9553 #. type: Plain text
9554 #: build/C/man2/sigreturn.2:56
9555 msgid "B<sigreturn>()  never returns."
9556 msgstr "B<sigreturn>()  が返ることはない。"
9557
9558 #. type: SH
9559 #: build/C/man2/sigreturn.2:56
9560 #, no-wrap
9561 msgid "FILES"
9562 msgstr "ファイル"
9563
9564 #. type: Plain text
9565 #: build/C/man2/sigreturn.2:58
9566 msgid "/usr/src/linux/arch/i386/kernel/signal.c"
9567 msgstr "/usr/src/linux/arch/i386/kernel/signal.c"
9568
9569 #. type: Plain text
9570 #: build/C/man2/sigreturn.2:60
9571 msgid "/usr/src/linux/arch/alpha/kernel/entry.S"
9572 msgstr "/usr/src/linux/arch/alpha/kernel/entry.S"
9573
9574 #. type: Plain text
9575 #: build/C/man2/sigreturn.2:64
9576 msgid ""
9577 "B<sigreturn>()  is specific to Linux and should not be used in programs "
9578 "intended to be portable."
9579 msgstr ""
9580 "B<sigreturn>()  は Linux 特有であり、移植を意図したプログラムでは使用してはい"
9581 "けない。"
9582
9583 #. type: Plain text
9584 #: build/C/man2/sigreturn.2:74
9585 msgid ""
9586 "The B<sigreturn>()  call is used by the kernel to implement signal "
9587 "handlers.  It should B<never> be called directly.  Better yet, the specific "
9588 "use of the I<__unused> argument varies depending on the architecture."
9589 msgstr ""
9590 "B<sigreturn>()  コールは、シグナル・ハンドラを実装するためにカーネルにより使"
9591 "用される。 これを直接呼び出しては B<決して> いけない。さらに I<__unused> 引き"
9592 "数がどのように使われるかはそのアーキテクチャに依存して変化する。"
9593
9594 #. type: Plain text
9595 #: build/C/man2/sigreturn.2:80
9596 msgid ""
9597 "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), B<signal>"
9598 "(7)"
9599 msgstr ""
9600 "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), B<signal>"
9601 "(7)"
9602
9603 #. type: TH
9604 #: build/C/man3/sigset.3:26
9605 #, no-wrap
9606 msgid "SIGSET"
9607 msgstr "SIGSET"
9608
9609 #. type: Plain text
9610 #: build/C/man3/sigset.3:29
9611 msgid "sigset, sighold, sigrelse, sigignore - System V signal API"
9612 msgstr "sigset, sighold, sigrelse, sigignore - System V 版シグナル API"
9613
9614 #. type: Plain text
9615 #: build/C/man3/sigset.3:35
9616 msgid "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
9617 msgstr "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
9618
9619 #. type: Plain text
9620 #: build/C/man3/sigset.3:37
9621 msgid "B<int sighold(int >I<sig>B<);>"
9622 msgstr "B<int sighold(int >I<sig>B<);>"
9623
9624 #. type: Plain text
9625 #: build/C/man3/sigset.3:39
9626 msgid "B<int sigrelse(int >I<sig>B<);>"
9627 msgstr "B<int sigrelse(int >I<sig>B<);>"
9628
9629 #. type: Plain text
9630 #: build/C/man3/sigset.3:41
9631 msgid "B<int sigignore(int >I<sig>B<);>"
9632 msgstr "B<int sigignore(int >I<sig>B<);>"
9633
9634 #. type: Plain text
9635 #: build/C/man3/sigset.3:52
9636 msgid "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
9637 msgstr "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
9638
9639 #. type: Plain text
9640 #: build/C/man3/sigset.3:56
9641 msgid ""
9642 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
9643 msgstr ""
9644 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
9645
9646 #. type: Plain text
9647 #: build/C/man3/sigset.3:65
9648 msgid ""
9649 "These functions are provided in glibc as a compatibility interface for "
9650 "programs that make use of the historical System V signal API.  This API is "
9651 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
9652 "B<sigprocmask>(2), etc.)"
9653 msgstr ""
9654 "これらの関数は、昔ながらの System V 版シグナル API を使用しているプログラム "
9655 "に対して互換性のあるインタフェースを glibc で提供するものである。 この API は"
9656 "過去のものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>"
9657 "(2), B<sigprocmask>(2)  など) を使用すべきである。"
9658
9659 #. type: Plain text
9660 #: build/C/man3/sigset.3:74
9661 msgid ""
9662 "The B<sigset>()  function modifies the disposition of the signal I<sig>.  "
9663 "The I<disp> argument can be the address of a signal handler function, or one "
9664 "of the following constants:"
9665 msgstr ""
9666 "関数 B<sigset>()  はシグナル I<sig> のシグナルハンドラの動作を変更する。 "
9667 "I<disp> 引き数には、シグナルハンドラ関数のアドレスか、 以下の定数のいずれか一"
9668 "つを指定できる。"
9669
9670 #. type: TP
9671 #: build/C/man3/sigset.3:74
9672 #, no-wrap
9673 msgid "B<SIG_DFL>"
9674 msgstr "B<SIG_DFL>"
9675
9676 #. type: Plain text
9677 #: build/C/man3/sigset.3:79
9678 msgid "Reset the disposition of I<sig> to the default."
9679 msgstr "I<sig> の動作をデフォルトにリセットする。"
9680
9681 #. type: TP
9682 #: build/C/man3/sigset.3:79
9683 #, no-wrap
9684 msgid "B<SIG_IGN>"
9685 msgstr "B<SIG_IGN>"
9686
9687 #. type: Plain text
9688 #: build/C/man3/sigset.3:83
9689 msgid "Ignore I<sig>."
9690 msgstr "I<sig> を無視する。"
9691
9692 #. type: TP
9693 #: build/C/man3/sigset.3:83
9694 #, no-wrap
9695 msgid "B<SIG_HOLD>"
9696 msgstr "B<SIG_HOLD>"
9697
9698 #. type: Plain text
9699 #: build/C/man3/sigset.3:90
9700 msgid ""
9701 "Add I<sig> to the process's signal mask, but leave the disposition of I<sig> "
9702 "unchanged."
9703 msgstr ""
9704 "そのプロセスのシグナルマスクに I<sig> を追加するが、 I<sig> の動作は変更しな"
9705 "い。"
9706
9707 #. type: Plain text
9708 #: build/C/man3/sigset.3:96
9709 msgid ""
9710 "If I<disp> specifies the address of a signal handler, then I<sig> is added "
9711 "to the process's signal mask during execution of the handler."
9712 msgstr ""
9713 "I<disp> にシグナルハンドラのアドレスが指定された場合、 シグナルハンドラの実行"
9714 "中は、そのプロセスのシグナルマスクに I<sig> が追加される。"
9715
9716 #. type: Plain text
9717 #: build/C/man3/sigset.3:104
9718 msgid ""
9719 "If I<disp> was specified as a value other than B<SIG_HOLD>, then I<sig> is "
9720 "removed from the process's signal mask."
9721 msgstr ""
9722 "I<disp> に B<SIG_HOLD> 以外の値が指定された場合、 そのプロセスのシグナルマス"
9723 "クから I<sig> が削除される。"
9724
9725 #. type: Plain text
9726 #: build/C/man3/sigset.3:110 build/C/man3/sigvec.3:87
9727 msgid "The dispositions for B<SIGKILL> and B<SIGSTOP> cannot be changed."
9728 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> に対する動作は変更できない。"
9729
9730 #. type: Plain text
9731 #: build/C/man3/sigset.3:116
9732 msgid ""
9733 "The B<sighold>()  function adds I<sig> to the calling process's signal mask."
9734 msgstr ""
9735 "関数 B<sighold>()  は、呼び出し元プロセスのシグナルマスクに I<sig> を追加す"
9736 "る。"
9737
9738 #. type: Plain text
9739 #: build/C/man3/sigset.3:122
9740 msgid ""
9741 "The B<sigrelse>()  function removes I<sig> from the calling process's signal "
9742 "mask."
9743 msgstr ""
9744 "関数 B<sigrelse>()  は、呼び出し元プロセスのシグナルマスクから I<sig> を削除"
9745 "する。"
9746
9747 #. type: Plain text
9748 #: build/C/man3/sigset.3:129
9749 msgid ""
9750 "The B<sigignore>()  function sets the disposition of I<sig> to B<SIG_IGN>."
9751 msgstr "関数 B<sigignore>()  は、 I<sig> の動作を B<SIG_IGN> に設定する。"
9752
9753 #. type: Plain text
9754 #: build/C/man3/sigset.3:145
9755 msgid ""
9756 "On success, B<sigset>()  returns B<SIG_HOLD> if I<sig> was blocked before "
9757 "the call, or the signal's previous disposition if it was not blocked before "
9758 "the call.  On error, B<sigset>()  returns -1, with I<errno> set to indicate "
9759 "the error.  (But see BUGS below.)"
9760 msgstr ""
9761 "B<sigset>()  は成功すると、 呼び出し前に I<sig> がブロックされていた場合には "
9762 "B<SIG_HOLD> を返し、 ブロックされていなかった場合には 変更前のそのシグナルの"
9763 "動作を返す。 エラーの場合、 B<sigset>()  は -1 を返し、 I<errno> にエラーを示"
9764 "す値をセットする。 但し、以下の「バグ」の節も参照のこと。"
9765
9766 #. type: Plain text
9767 #: build/C/man3/sigset.3:154
9768 msgid ""
9769 "The B<sighold>(), B<sigrelse>(), and B<sigignore>()  functions return 0 on "
9770 "success; on error, these functions return -1 and set I<errno> to indicate "
9771 "the error."
9772 msgstr ""
9773 "関数 B<sighold>(), B<sigrelse>(), B<sigignore>()  は成功すると 0 を返す。エ"
9774 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値をセットする。"
9775
9776 #. type: Plain text
9777 #: build/C/man3/sigset.3:161
9778 msgid ""
9779 "For B<sigset>()  see the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
9780 msgstr ""
9781 "B<sigset>()  に関しては、 B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」"
9782 "の節を参照。"
9783
9784 #. type: Plain text
9785 #: build/C/man3/sigset.3:168
9786 msgid ""
9787 "For B<sighold>()  and B<sigrelse>()  see the ERRORS under B<sigprocmask>(2)."
9788 msgstr ""
9789 "B<sighold>()  と B<sigrelse>()  に関しては、 B<sigprocmask>(2)  の「エラー」"
9790 "の節を参照。"
9791
9792 #. type: Plain text
9793 #: build/C/man3/sigset.3:173
9794 msgid "For B<sigignore>(), see the errors under B<sigaction>(2)."
9795 msgstr "B<sigignore>()  に関しては、 B<sigaction>(2)  の「エラー」の節を参照。"
9796
9797 #. type: Plain text
9798 #: build/C/man3/sigset.3:190
9799 msgid ""
9800 "SVr4, POSIX.1-2001.  These functions are obsolete: do not use them in new "
9801 "programs.  POSIX.1-2008 marks B<sighold>(), B<sigignore>(), B<sigpause>(), "
9802 "B<sigrelse>(), and B<sigset>()  as obsolete, recommending the use of "
9803 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), and B<sigsuspend>"
9804 "(2)  instead."
9805 msgstr ""
9806 "SVr4, POSIX.1-2001.  これらの関数は廃止予定である。新しいプログラムでは使用し"
9807 "ないこと。 POSIX.1-2008 は、 B<sighold>(), B<sigignore>(), B<sigpause>(), "
9808 "B<sigrelse>(), B<sigset>()  を廃止予定としている。 代わりに、 B<sigaction>"
9809 "(2), B<sigprocmask>(2), B<pthread_sigmask>(3), B<sigsuspend>(2)  の使用が推奨"
9810 "されている。"
9811
9812 #. type: Plain text
9813 #: build/C/man3/sigset.3:192
9814 msgid "These functions appeared in glibc version 2.1."
9815 msgstr "これらの関数は glibc 2.1 で登場した。"
9816
9817 #. type: Plain text
9818 #: build/C/man3/sigset.3:198
9819 msgid ""
9820 "The I<sighandler_t> type is a GNU extension; it is used on this page only to "
9821 "make the B<sigset>()  prototype more easily readable."
9822 msgstr ""
9823 "I<sighandler_t> 型は GNU による拡張であり、この man page で B<sigset>()  のプ"
9824 "ロトタイプをより読みやすくするために使われているだけである。"
9825
9826 #. type: Plain text
9827 #: build/C/man3/sigset.3:206
9828 msgid ""
9829 "The B<sigset>()  function provides reliable signal handling semantics (as "
9830 "when calling B<sigaction>(2)  with I<sa_mask> equal to 0)."
9831 msgstr ""
9832 "関数 B<sigset>()  は信頼性のあるシグナル処理機構を提供する (I<sa_mask> を 0 "
9833 "で B<sigaction>(2)  を呼び出したときと同様)。"
9834
9835 #. type: Plain text
9836 #: build/C/man3/sigset.3:224
9837 msgid ""
9838 "On System V, the B<signal>()  function provides unreliable semantics (as "
9839 "when calling B<sigaction>(2)  with I<sa_mask> equal to I<SA_RESETHAND | "
9840 "SA_NODEFER>).  On BSD, B<signal>()  provides reliable semantics.  "
9841 "POSIX.1-2001 leaves these aspects of B<signal>()  unspecified.  See B<signal>"
9842 "(2)  for further details."
9843 msgstr ""
9844 "System V では、関数 B<signal>()  が提供する処理機構は信頼性のないものである "
9845 "(I<sa_mask> を I<SA_RESETHAND | SA_NODEFER> として B<sigaction>(2)  を呼び出"
9846 "したときと同様)。 BSD では、 B<signal>()  は信頼性のある処理機構を提供する。 "
9847 "POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままとなっている。 さら"
9848 "なる詳細については B<signal>(2)  を参照。"
9849
9850 #. type: Plain text
9851 #: build/C/man3/sigset.3:232 build/C/man3/sigvec.3:252
9852 msgid ""
9853 "In order to wait for a signal, BSD and System V both provided a function "
9854 "named B<sigpause>(3), but this function has a different argument on the two "
9855 "systems.  See B<sigpause>(3)  for details."
9856 msgstr ""
9857 "BSD と System V のどちらのシステムでも シグナルを待つために、 B<sigpause>"
9858 "(3)  という名前の関数が提供されているが、 この関数の引き数は両方のシステムで"
9859 "異なる。 詳細は B<sigpause>(3)  を参照。"
9860
9861 #. type: Plain text
9862 #: build/C/man3/sigset.3:241
9863 msgid ""
9864 "In versions of glibc before 2.2, B<sigset>()  did not unblock I<sig> if "
9865 "I<disp> was specified as a value other than B<SIG_HOLD>."
9866 msgstr ""
9867 "2.2 より前のバージョンの glibc では、 I<disp> に B<SIG_HOLD> 以外の値が指定さ"
9868 "れた場合、 I<sig> のブロック解除を行っていなかった。"
9869
9870 #.  See http://sourceware.org/bugzilla/show_bug.cgi?id=1951
9871 #. type: Plain text
9872 #: build/C/man3/sigset.3:266
9873 msgid ""
9874 "In versions of glibc before 2.5, B<sigset>()  does not correctly return the "
9875 "previous disposition of the signal in two cases.  First, if I<disp> is "
9876 "specified as B<SIG_HOLD>, then a successful B<sigset>()  always returns "
9877 "B<SIG_HOLD>.  Instead, it should return the previous disposition of the "
9878 "signal (unless the signal was blocked, in which case B<SIG_HOLD> should be "
9879 "returned).  Second, if the signal is currently blocked, then the return "
9880 "value of a successful B<sigset>()  should be B<SIG_HOLD>.  Instead, the "
9881 "previous disposition of the signal is returned.  These problems have been "
9882 "fixed since glibc 2.5."
9883 msgstr ""
9884 "2.3.5 以前の全てのバージョンの glibc では、 B<sigset>()  が変更前のシグナルの"
9885 "動作を正しく返さない場合が 2つある。 一つめは、 I<disp> に B<SIG_HOLD> が指定"
9886 "されると、成功した場合 B<sigset>()  は常に B<SIG_HOLD> を返すことである。 正"
9887 "しくは、(シグナルがブロックされていなかった場合には)  変更前のシグナルの動作"
9888 "を返すべきである (シグナルがブロックされていた場合には、 B<SIG_HOLD> が返され"
9889 "る)。 もう一つは、シグナルが現在ブロックされている場合には、 成功した場合の "
9890 "B<sigset>()  の返り値は B<SIG_HOLD> になるべきであるが、実際には 変更前のシグ"
9891 "ナルの動作が返されることである。 これらの問題は glibc 2.5 以降で修正されてい"
9892 "る。"
9893
9894 #. type: Plain text
9895 #: build/C/man3/sigset.3:276
9896 msgid ""
9897 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9898 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
9899 msgstr ""
9900 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9901 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
9902
9903 #. type: TH
9904 #: build/C/man3/sigsetops.3:31
9905 #, no-wrap
9906 msgid "SIGSETOPS"
9907 msgstr "SIGSETOPS"
9908
9909 #. type: Plain text
9910 #: build/C/man3/sigsetops.3:35
9911 msgid ""
9912 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX signal "
9913 "set operations."
9914 msgstr ""
9915 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX シグナル集"
9916 "合の操作"
9917
9918 #. type: Plain text
9919 #: build/C/man3/sigsetops.3:39
9920 msgid "B<int sigemptyset(sigset_t *>I<set>B<);>"
9921 msgstr "B<int sigemptyset(sigset_t *>I<set>B<);>"
9922
9923 #. type: Plain text
9924 #: build/C/man3/sigsetops.3:41
9925 msgid "B<int sigfillset(sigset_t *>I<set>B<);>"
9926 msgstr "B<int sigfillset(sigset_t *>I<set>B<);>"
9927
9928 #. type: Plain text
9929 #: build/C/man3/sigsetops.3:43
9930 msgid "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9931 msgstr "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9932
9933 #. type: Plain text
9934 #: build/C/man3/sigsetops.3:45
9935 msgid "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9936 msgstr "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
9937
9938 #. type: Plain text
9939 #: build/C/man3/sigsetops.3:47
9940 msgid "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
9941 msgstr "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
9942
9943 #. type: Plain text
9944 #: build/C/man3/sigsetops.3:59
9945 msgid ""
9946 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
9947 "B<sigismember>():"
9948 msgstr ""
9949 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
9950 "B<sigismember>():"
9951
9952 #. type: Plain text
9953 #: build/C/man3/sigsetops.3:61
9954 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
9955 msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
9956
9957 #. type: Plain text
9958 #: build/C/man3/sigsetops.3:65
9959 msgid "These functions allow the manipulation of POSIX signal sets."
9960 msgstr "これらの関数は POSIX シグナル集合(signal set)を操作するため使用する。"
9961
9962 #. type: Plain text
9963 #: build/C/man3/sigsetops.3:70
9964 msgid ""
9965 "B<sigemptyset>()  initializes the signal set given by I<set> to empty, with "
9966 "all signals excluded from the set."
9967 msgstr ""
9968 "B<sigemptyset>()  は I<set> で与えられたシグナル集合を空に初期化し、シグナル"
9969 "が一つも 含まれていない状態にする。"
9970
9971 #. type: Plain text
9972 #: build/C/man3/sigsetops.3:75
9973 msgid "B<sigfillset>()  initializes I<set> to full, including all signals."
9974 msgstr ""
9975 "B<sigfillset>()  は I<set> で与えられたシグナル集合が全てのシグナルを含むよう"
9976 "にする。"
9977
9978 #. type: Plain text
9979 #: build/C/man3/sigsetops.3:83
9980 msgid ""
9981 "B<sigaddset>()  and B<sigdelset>()  add and delete respectively signal "
9982 "I<signum> from I<set>."
9983 msgstr ""
9984 "B<sigaddset>()  と B<sigdelset>()  は I<set> に I<signum> シグナルをそれぞれ"
9985 "加えたり、削除したりする。"
9986
9987 #. type: Plain text
9988 #: build/C/man3/sigsetops.3:89
9989 msgid "B<sigismember>()  tests whether I<signum> is a member of I<set>."
9990 msgstr ""
9991 "B<sigismember>()  は I<signum> が I<set> に含まれているかどうかをテストする。"
9992
9993 #. type: Plain text
9994 #: build/C/man3/sigsetops.3:107
9995 msgid ""
9996 "Objects of type I<sigset_t> must be initialized by a call to either "
9997 "B<sigemptyset>()  or B<sigfillset>()  before being passed to the functions "
9998 "B<sigaddset>(), B<sigdelset>()  and B<sigismember>()  or the additional "
9999 "glibc functions described below (B<sigisemptyset>(), B<sigandset>(), and "
10000 "B<sigorset>()).  The results are undefined if this is not done."
10001 msgstr ""
10002 "I<sigset_t> 型のオブジェクトは、関数 B<sigaddset>(), B<sigdelset>(), "
10003 "B<sigismember>()  や後述の glibc の追加関数 (B<sigisemptyset>(), B<sigandset>"
10004 "(), B<sigorset>())  に渡す前に、 B<sigemptyset>()  か B<sigfillset>()  を呼び"
10005 "出して初期化しなければならない。 初期化しなかった場合の結果は未定義である。"
10006
10007 #. type: Plain text
10008 #: build/C/man3/sigsetops.3:114
10009 msgid ""
10010 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), and B<sigdelset>()  "
10011 "return 0 on success and -1 on error."
10012 msgstr ""
10013 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>()  は成功すれ"
10014 "ば 0 を、エラーの場合は -1 を返す。"
10015
10016 #. type: Plain text
10017 #: build/C/man3/sigsetops.3:126
10018 msgid ""
10019 "B<sigismember>()  returns 1 if I<signum> is a member of I<set>, 0 if "
10020 "I<signum> is not a member, and -1 on error.  On error, these functions set "
10021 "I<errno> to indicate the cause."
10022 msgstr ""
10023 "B<sigismember>()  は I<signum> が I<set> のメンバの場合 1 を返し、メンバでな"
10024 "い場合 0 を返す。 エラーの場合は -1 を返し、 I<errno> にエラーの原因を示す値"
10025 "を設定する。"
10026
10027 #. type: Plain text
10028 #: build/C/man3/sigsetops.3:131
10029 msgid "I<sig> is not a valid signal."
10030 msgstr "I<sig> が有効なシグナルではない。"
10031
10032 #. type: SS
10033 #: build/C/man3/sigsetops.3:134
10034 #, no-wrap
10035 msgid "Glibc notes"
10036 msgstr "glibc での注意"
10037
10038 #. type: Plain text
10039 #: build/C/man3/sigsetops.3:140
10040 msgid ""
10041 "If the B<_GNU_SOURCE> feature test macro is defined, then I<E<lt>signal."
10042 "hE<gt>> exposes three other functions for manipulating signal sets."
10043 msgstr ""
10044 "B<_GNU_SOURCE> 機能検査マクロが定義されていると、 I<E<lt>signal.hE<gt>> でシ"
10045 "グナル集合を操作する 3つの関数が追加で公開される。"
10046
10047 #. type: TP
10048 #: build/C/man3/sigsetops.3:140
10049 #, no-wrap
10050 msgid "B<int sigisemptyset(sigset_t *>I<set>B<);>"
10051 msgstr "B<int sigisemptyset(sigset_t *>I<set>B<);>"
10052
10053 #. type: Plain text
10054 #: build/C/man3/sigsetops.3:145
10055 msgid "returns 1 if I<set> contains no signals, and 0 otherwise."
10056 msgstr ""
10057 "I<set> にシグナルが一つも含まれていなければ 1 を返し、 それ以外は 0 を返す。"
10058
10059 #. type: TP
10060 #: build/C/man3/sigsetops.3:145
10061 #, no-wrap
10062 msgid "B<int sigorset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
10063 msgstr "B<int sigorset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
10064
10065 #. type: Plain text
10066 #: build/C/man3/sigsetops.3:154
10067 msgid "places the union of the sets I<left> and I<right> in I<dest>."
10068 msgstr "シグナル集合 I<left> と I<left> の和集合を I<dest> に書き込む。"
10069
10070 #. type: TP
10071 #: build/C/man3/sigsetops.3:154
10072 #, no-wrap
10073 msgid "B<int sigandset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
10074 msgstr "B<int sigandset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
10075
10076 #. type: Plain text
10077 #: build/C/man3/sigsetops.3:163
10078 msgid "places the intersection of the sets I<left> and I<right> in I<dest>."
10079 msgstr "シグナル集合 I<left> と I<left> の積集合を I<dest> に書き込む。"
10080
10081 #. type: Plain text
10082 #: build/C/man3/sigsetops.3:168
10083 msgid ""
10084 "B<sigorset>()  and B<sigandset>()  return 0 on success, and -1 on failure."
10085 msgstr ""
10086 "B<sigorset>()  と B<sigandset>()  は成功すると 0 を、失敗すると -1 を返す。"
10087
10088 #. type: Plain text
10089 #: build/C/man3/sigsetops.3:171
10090 msgid ""
10091 "These functions are nonstandard (a few other systems provide similar "
10092 "functions) and their use should be avoided in portable applications."
10093 msgstr ""
10094 "これらの関数は非標準であり、(他にも同様の関数を提供しているシステムも いくつ"
10095 "かはあるが) 移植性を考慮したアプリケーションでは使用を避けるべき である。"
10096
10097 #. type: Plain text
10098 #: build/C/man3/sigsetops.3:176
10099 msgid "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10100 msgstr "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10101
10102 #. type: TH
10103 #: build/C/man2/sigsuspend.2:29
10104 #, no-wrap
10105 msgid "SIGSUSPEND"
10106 msgstr "SIGSUSPEND"
10107
10108 #. type: Plain text
10109 #: build/C/man2/sigsuspend.2:32
10110 msgid "sigsuspend - wait for a signal"
10111 msgstr "sigsuspend - シグナルを待つ"
10112
10113 #. type: Plain text
10114 #: build/C/man2/sigsuspend.2:36
10115 msgid "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10116 msgstr "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10117
10118 #. type: Plain text
10119 #: build/C/man2/sigsuspend.2:45
10120 msgid ""
10121 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10122 "_POSIX_SOURCE"
10123 msgstr ""
10124 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10125 "_POSIX_SOURCE"
10126
10127 #. type: Plain text
10128 #: build/C/man2/sigsuspend.2:53
10129 msgid ""
10130 "B<sigsuspend>()  temporarily replaces the signal mask of the calling process "
10131 "with the mask given by I<mask> and then suspends the process until delivery "
10132 "of a signal whose action is to invoke a signal handler or to terminate a "
10133 "process."
10134 msgstr ""
10135 "B<sigsuspend>()  は、呼び出し元プロセスのシグナルマスクを I<mask> で指定され"
10136 "たマスクに一時的に置き換え、 シグナルハンドラの起動もしくはプロセスの終了がア"
10137 "クションとして 設定されたシグナルが配送されるまで、そのプロセスを停止する。"
10138
10139 #. type: Plain text
10140 #: build/C/man2/sigsuspend.2:62
10141 msgid ""
10142 "If the signal terminates the process, then B<sigsuspend>()  does not "
10143 "return.  If the signal is caught, then B<sigsuspend>()  returns after the "
10144 "signal handler returns, and the signal mask is restored to the state before "
10145 "the call to B<sigsuspend>()."
10146 msgstr ""
10147 "シグナルがプロセスを終了させるものの場合、 B<sigsuspend>()  は返らない。シグ"
10148 "ナルが捕捉された場合、 シグナルハンドラの処理が終わった後に B<sigsuspend>()  "
10149 "は返り、シグナルマスクは B<sigsuspend>()  が呼び出される前の状態に復元され"
10150 "る。"
10151
10152 #. type: Plain text
10153 #: build/C/man2/sigsuspend.2:70
10154 msgid ""
10155 "It is not possible to block B<SIGKILL> or B<SIGSTOP>; specifying these "
10156 "signals in I<mask>, has no effect on the process's signal mask."
10157 msgstr ""
10158 "B<SIGKILL> と B<SIGSTOP> を禁止 (block) することはできない; これらのシグナル"
10159 "を I<mask> に指定しても、プロセスのシグナルマスクは影響を受けない。"
10160
10161 #. type: Plain text
10162 #: build/C/man2/sigsuspend.2:76
10163 msgid ""
10164 "B<sigsuspend>()  always returns -1, with I<errno> set to inndicate the error "
10165 "(normally, B<EINTR>)."
10166 msgstr ""
10167 "B<sigsuspend>() は常に -1 を返し、 I<errno> にエラーの原因を示す値 (通常は "
10168 "B<EINTR>) を設定する。"
10169
10170 #. type: Plain text
10171 #: build/C/man2/sigsuspend.2:81
10172 msgid ""
10173 "I<mask> points to memory which is not a valid part of the process address "
10174 "space."
10175 msgstr ""
10176 "I<mask> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
10177
10178 #. type: Plain text
10179 #: build/C/man2/sigsuspend.2:84
10180 msgid "The call was interrupted by a signal."
10181 msgstr "システムコールはシグナルにより割り込まれた。"
10182
10183 #. type: Plain text
10184 #: build/C/man2/sigsuspend.2:104
10185 msgid ""
10186 "Normally, B<sigsuspend>()  is used in conjunction with B<sigprocmask>(2)  in "
10187 "order to prevent delivery of a signal during the execution of a critical "
10188 "code section.  The caller first blocks the signals with B<sigprocmask>(2).  "
10189 "When the critical code has completed, the caller then waits for the signals "
10190 "by calling B<sigsuspend>()  with the signal mask that was returned by "
10191 "B<sigprocmask>(2)  (in the I<oldset> argument)."
10192 msgstr ""
10193 "B<sigsuspend>()  は、通常、クリティカル・コード・セクション (critical code "
10194 "section) の 実行中にシグナルが配送されるのを防止するために、 B<sigprocmask>"
10195 "(2)  と組み合わせて使用される。 まず最初に、呼び出し元は B<sigprocmask>(2)  "
10196 "を使ってシグナルを禁止する。 クリティカル・コードが完了すると、呼び出し元は "
10197 "B<sigprocmask>(2)  が (I<oldset> 引き数で) 返すシグナルマスクを指定して "
10198 "B<sigsuspend>()  を呼び出すことで、クリティカル・コード実行中に発生した シグ"
10199 "ナルを待つことができる。"
10200
10201 #. type: Plain text
10202 #: build/C/man2/sigsuspend.2:118
10203 msgid ""
10204 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10205 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10206 msgstr ""
10207 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10208 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10209
10210 #. type: TH
10211 #: build/C/man3/sigvec.3:26
10212 #, no-wrap
10213 msgid "SIGVEC"
10214 msgstr "SIGVEC"
10215
10216 #. type: TH
10217 #: build/C/man3/sigvec.3:26
10218 #, no-wrap
10219 msgid "2012-09-06"
10220 msgstr "2012-09-06"
10221
10222 #. type: Plain text
10223 #: build/C/man3/sigvec.3:29
10224 msgid "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD signal API"
10225 msgstr "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD 版シグナル API"
10226
10227 #. type: Plain text
10228 #: build/C/man3/sigvec.3:33
10229 msgid ""
10230 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
10231 "*>I<ovec>B<);>"
10232 msgstr ""
10233 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
10234 "*>I<ovec>B<);>"
10235
10236 #. type: Plain text
10237 #: build/C/man3/sigvec.3:35
10238 msgid "B<int sigmask(int >I<signum>B<);>"
10239 msgstr "B<int sigmask(int >I<signum>B<);>"
10240
10241 #. type: Plain text
10242 #: build/C/man3/sigvec.3:37
10243 msgid "B<int sigblock(int >I<mask>B<);>"
10244 msgstr "B<int sigblock(int >I<mask>B<);>"
10245
10246 #. type: Plain text
10247 #: build/C/man3/sigvec.3:39
10248 msgid "B<int sigsetmask(int >I<mask>B<);>"
10249 msgstr "B<int sigsetmask(int >I<mask>B<);>"
10250
10251 #. type: Plain text
10252 #: build/C/man3/sigvec.3:41
10253 msgid "B<int siggetmask(void);>"
10254 msgstr "B<int siggetmask(void);>"
10255
10256 #. type: Plain text
10257 #: build/C/man3/sigvec.3:49
10258 msgid "All functions shown above: _BSD_SOURCE"
10259 msgstr "上記の全ての関数: _BSD_SOURCE"
10260
10261 #. type: Plain text
10262 #: build/C/man3/sigvec.3:56
10263 msgid ""
10264 "These functions are provided in glibc as a compatibility interface for "
10265 "programs that make use of the historical BSD signal API.  This API is "
10266 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
10267 "B<sigprocmask>(2), etc.)."
10268 msgstr ""
10269 "これらの関数は、昔ながらの BSD 版シグナル API を使用しているプログラム に対し"
10270 "て互換性のあるインタフェースを glibc で提供するものである。 この API は過去の"
10271 "ものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>(2), "
10272 "B<sigprocmask>(2)  など) を使用すべきである。"
10273
10274 #. type: Plain text
10275 #: build/C/man3/sigvec.3:81
10276 msgid ""
10277 "The B<sigvec>()  function sets and/or gets the disposition of the signal "
10278 "I<sig> (like the POSIX B<sigaction>(2)).  If I<vec> is not NULL, it points "
10279 "to a I<sigvec> structure that defines the new disposition for I<sig>.  If "
10280 "I<ovec> is not NULL, it points to a I<sigvec> structure that is used to "
10281 "return the previous disposition of I<sig>.  To obtain the current "
10282 "disposition of I<sig> without changing it, specify NULL for I<vec>, and a "
10283 "non-NULL pointer for I<ovec>."
10284 msgstr ""
10285 "関数 B<sigvec>()  は、(POSIX の B<sigaction>(2)  と同様に) シグナル I<sig> の"
10286 "動作の設定・取得を行う。 I<vec> は、NULL 以外の場合、 I<sig> の新しい動作を定"
10287 "義した I<sigvec> 構造体へのポインタである。 I<ovec> は、NULL 以外の場合、 "
10288 "I<sig> の変更前の動作を返すために使用される I<sigvec> 構造体へのポインタであ"
10289 "る。 I<sig> の動作を変更せずに現在の動作を取得するためには、 I<vec> に NULL "
10290 "を指定し、 I<ovec> に NULL でないポインタを指定すればよい。"
10291
10292 #. type: Plain text
10293 #: build/C/man3/sigvec.3:91
10294 msgid "The I<sigvec> structure has the following form:"
10295 msgstr "I<sigvec> 構造体は以下の通りである:"
10296
10297 #. type: Plain text
10298 #: build/C/man3/sigvec.3:99
10299 #, no-wrap
10300 msgid ""
10301 "struct sigvec {\n"
10302 "    void (*sv_handler)(int); /* Signal disposition */\n"
10303 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10304 "    int    sv_flags;         /* Flags */\n"
10305 "};\n"
10306 msgstr ""
10307 "struct sigvec {\n"
10308 "    void (*sv_handler)(int); /* Signal disposition */\n"
10309 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10310 "    int    sv_flags;         /* Flags */\n"
10311 "};\n"
10312
10313 #. type: Plain text
10314 #: build/C/man3/sigvec.3:110
10315 msgid ""
10316 "The I<sv_handler> field specifies the disposition of the signal, and is "
10317 "either: the address of a signal handler function; B<SIG_DFL>, meaning the "
10318 "default disposition applies for the signal; or B<SIG_IGN>, meaning that the "
10319 "signal is ignored."
10320 msgstr ""
10321 "I<sv_handler> フィールドはシグナルの動作を指定するもので、 シグナルハンドラ関"
10322 "数のアドレスか、 B<SIG_DFL> と B<SIG_IGN> のいずれかを指定できる。 "
10323 "B<SIG_DFL> はシグナルに適用されるデフォルトの動作を意味し、 B<SIG_IGN> はシグ"
10324 "ナルを無視することを意味する。"
10325
10326 #. type: Plain text
10327 #: build/C/man3/sigvec.3:124
10328 msgid ""
10329 "If I<sv_handler> specifies the address of a signal handler, then I<sv_mask> "
10330 "specifies a mask of signals that are to be blocked while the handler is "
10331 "executing.  In addition, the signal for which the handler is invoked is also "
10332 "blocked.  Attempts to block B<SIGKILL> or B<SIGSTOP> are silently ignored."
10333 msgstr ""
10334 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_mask> はハン"
10335 "ドラが実行中にブロックされるべきシグナルのマスクを指定する。 また、ハンドラを"
10336 "起動したシグナル自身はブロックされる。 B<SIGKILL> か B<SIGSTOP> をブロックし"
10337 "ようとした場合には、黙って無視される。"
10338
10339 #. type: Plain text
10340 #: build/C/man3/sigvec.3:131
10341 msgid ""
10342 "If I<sv_handler> specifies the address of a signal handler, then the "
10343 "I<sv_flags> field specifies flags controlling what happens when the handler "
10344 "is called.  This field may contain zero or more of the following flags:"
10345 msgstr ""
10346 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_flags> フィー"
10347 "ルドはハンドラが呼ばれた際の挙動を制御するフラグを指定する。 このフィールドに"
10348 "は、0 か、以下のフラグを 1個以上指定できる:"
10349
10350 #. type: TP
10351 #: build/C/man3/sigvec.3:131
10352 #, no-wrap
10353 msgid "B<SV_INTERRUPT>"
10354 msgstr "B<SV_INTERRUPT>"
10355
10356 #. type: Plain text
10357 #: build/C/man3/sigvec.3:139
10358 msgid ""
10359 "If the signal handler interrupts a blocking system call, then upon return "
10360 "from the handler the system call will not be restarted: instead it will fail "
10361 "with the error B<EINTR>.  If this flag is not specified, then system calls "
10362 "are restarted by default."
10363 msgstr ""
10364 "シグナルハンドラが停止中のシステムコールを中断した場合、 ハンドラから復帰して"
10365 "も、システムコールは再開されず、 エラー B<EINTR> で失敗する。 このフラグを指"
10366 "定しなかった場合、システムコールは デフォルトで再開される。"
10367
10368 #. type: TP
10369 #: build/C/man3/sigvec.3:139
10370 #, no-wrap
10371 msgid "B<SV_RESETHAND>"
10372 msgstr "B<SV_RESETHAND>"
10373
10374 #. type: Plain text
10375 #: build/C/man3/sigvec.3:148
10376 msgid ""
10377 "Reset the disposition of the signal to the default before calling the signal "
10378 "handler.  If this flag is not specified, then the handler remains "
10379 "established until explicitly removed by a later call to B<sigvec>()  or "
10380 "until the process performs an B<execve>(2)."
10381 msgstr ""
10382 "シグナルハンドラを呼び出す前にシグナルの動作を デフォルトにリセットする。 こ"
10383 "のフラグを指定しなかった場合、もう一度 B<sigvec>()  を呼び出して明示的に削除"
10384 "されるか、プロセスが B<execve>(2)  を実行するまで、ハンドラは設定されたままと"
10385 "なる。"
10386
10387 #. type: TP
10388 #: build/C/man3/sigvec.3:148
10389 #, no-wrap
10390 msgid "B<SV_ONSTACK>"
10391 msgstr "B<SV_ONSTACK>"
10392
10393 #. type: Plain text
10394 #: build/C/man3/sigvec.3:155
10395 msgid ""
10396 "Handle the signal on the alternate signal stack (historically established "
10397 "under BSD using the obsolete B<sigstack>()  function; the POSIX replacement "
10398 "is B<sigaltstack>(2))."
10399 msgstr ""
10400 "代替シグナルスタック上でシグナルハンドラを実行する (歴史的に、BSD では代替シ"
10401 "グナルスタックは廃止された関数 B<sigstack>()  を使って設定する。POSIX では、"
10402 "代わりに B<sigaltstack>(2)  を使用する)。"
10403
10404 #. type: Plain text
10405 #: build/C/man3/sigvec.3:165
10406 msgid ""
10407 "The B<sigmask>()  function constructs and returns a \"signal mask\" for "
10408 "I<signum>.  For example, we can initialize the I<vec.sv_mask> field given to "
10409 "B<sigvec>()  using code such as the following:"
10410 msgstr ""
10411 "関数 B<sigmask>()  は I<signum> に対する「シグナルマスク」を構成して返す。 例"
10412 "えば、以下のようなコードを使うと、 B<sigvec>()  に渡す I<vec.sv_mask> を初期"
10413 "化できる。"
10414
10415 #. type: Plain text
10416 #: build/C/man3/sigvec.3:170
10417 #, no-wrap
10418 msgid ""
10419 "    vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT);\n"
10420 "                /* Block SIGQUIT and SIGABRT during\n"
10421 "                   handler execution */\n"
10422 msgstr ""
10423 "    vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT);\n"
10424 "                /* Block SIGQUIT and SIGABRT during\n"
10425 "                   handler execution */\n"
10426
10427 #. type: Plain text
10428 #: build/C/man3/sigvec.3:185
10429 msgid ""
10430 "The B<sigblock>()  function adds the signals in I<mask> to the process's "
10431 "signal mask (like POSIX I<sigprocmask(SIG_BLOCK)>), and returns the "
10432 "process's previous signal mask.  Attempts to block B<SIGKILL> or B<SIGSTOP> "
10433 "are silently ignored."
10434 msgstr ""
10435 "B<sigblock>()  関数は、 I<mask> にあるシグナルをプロセスのシグナルマスクに追"
10436 "加し (POSIX の I<sigprocmask(SIG_BLOCK)> と同様)、変更前のプロセスのシグナル"
10437 "マスクを返す。 B<SIGKILL> や B<SIGSTOP> をブロックしようとした場合には、黙っ"
10438 "て無視される。"
10439
10440 #. type: Plain text
10441 #: build/C/man3/sigvec.3:193
10442 msgid ""
10443 "The B<sigsetmask>()  function sets the process's signal mask to the value "
10444 "given in I<mask> (like POSIX I<sigprocmask(SIG_SETMASK)>), and returns the "
10445 "process's previous signal mask."
10446 msgstr ""
10447 "B<sigsetmask>()  関数はプロセスのシグナルマスクを I<mask> で指定された値に設"
10448 "定し (POSIX の I<sigprocmask(SIG_SETMASK)> と同様)、変更前のプロセスのシグナ"
10449 "ルマスクを返す。"
10450
10451 #. type: Plain text
10452 #: build/C/man3/sigvec.3:199
10453 msgid ""
10454 "The B<siggetmask>()  function returns the process's current signal mask.  "
10455 "This call is equivalent to I<sigblock(0)>."
10456 msgstr ""
10457 "B<siggetmask>()  関数はプロセスの現在のシグナルマスクを返す。この関数は "
10458 "I<sigblock(0)> と等価である。"
10459
10460 #. type: Plain text
10461 #: build/C/man3/sigvec.3:205
10462 msgid ""
10463 "The B<sigvec>()  function returns 0 on success; on error, it returns -1 and "
10464 "sets I<errno> to indicate the error."
10465 msgstr ""
10466 "B<sigvec>()  関数は成功すると 0 を返す。エラーの場合、-1 を返し、 I<errno> に"
10467 "エラーを示す値をセットする。"
10468
10469 #. type: Plain text
10470 #: build/C/man3/sigvec.3:211
10471 msgid ""
10472 "The B<sigblock>()  and B<sigsetmask>()  functions return the previous signal "
10473 "mask."
10474 msgstr "B<sigblock>()  と B<sigsetmask>()  は変更前のシグナルマスクを返す。"
10475
10476 #. type: Plain text
10477 #: build/C/man3/sigvec.3:216
10478 msgid "The B<sigmask>()  function returns the signal mask for I<signum>."
10479 msgstr "B<sigmask>()  関数は I<signum> のシグナルマスクを返す。"
10480
10481 #. type: Plain text
10482 #: build/C/man3/sigvec.3:221
10483 msgid "See the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
10484 msgstr "B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」の節を参照。"
10485
10486 #. type: Plain text
10487 #: build/C/man3/sigvec.3:227
10488 msgid ""
10489 "All of these functions were in 4.3BSD, except B<siggetmask>(), whose origin "
10490 "is unclear.  These functions are obsolete: do not use them in new programs."
10491 msgstr ""
10492 "これらの関数のうち B<siggetmask>()  以外の全ては 4.3BSD にあった。 "
10493 "B<siggetmask>()  の出自ははっきりしない。 これらの関数は廃止予定であり、新し"
10494 "いプログラムでは使用しないこと。"
10495
10496 #. type: Plain text
10497 #: build/C/man3/sigvec.3:244
10498 msgid ""
10499 "On 4.3BSD, the B<signal>()  function provided reliable semantics (as when "
10500 "calling B<sigvec>()  with I<vec.sv_mask> equal to 0).  On System V, B<signal>"
10501 "()  provides unreliable semantics.  POSIX.1-2001 leaves these aspects of "
10502 "B<signal>()  unspecified.  See B<signal>(2)  for further details."
10503 msgstr ""
10504 "4.3BSD では、信頼性のあるシグナル処理機構を提供する (I<vec.sv_mask> を 0 で "
10505 "B<sigvec>()  を呼び出したときと同様)。 System V が提供する処理機構は信頼性の"
10506 "ないものである。 POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままと"
10507 "なっている。 さらなる詳細については B<signal>(2)  を参照。"
10508
10509 #. type: Plain text
10510 #: build/C/man3/sigvec.3:262
10511 msgid ""
10512 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10513 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10514 msgstr ""
10515 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10516 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10517
10518 #. type: TH
10519 #: build/C/man3/sigwait.3:26
10520 #, no-wrap
10521 msgid "SIGWAIT"
10522 msgstr "SIGWAIT"
10523
10524 #. type: TH
10525 #: build/C/man3/sigwait.3:26
10526 #, no-wrap
10527 msgid "2012-07-21"
10528 msgstr "2012-07-21"
10529
10530 #. type: Plain text
10531 #: build/C/man3/sigwait.3:29
10532 msgid "sigwait - wait for a signal"
10533 msgstr "sigwait - シグナルを待つ"
10534
10535 #. type: Plain text
10536 #: build/C/man3/sigwait.3:34
10537 #, no-wrap
10538 msgid "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10539 msgstr "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10540
10541 #. type: Plain text
10542 #: build/C/man3/sigwait.3:44
10543 msgid ""
10544 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10545 msgstr ""
10546 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10547
10548 #. type: Plain text
10549 #: build/C/man3/sigwait.3:56
10550 msgid ""
10551 "The B<sigwait>()  function suspends execution of the calling thread until "
10552 "one of the signals specified in the signal set I<set> becomes pending.  The "
10553 "function accepts the signal (removes it from the pending list of signals), "
10554 "and returns the signal number in I<sig>."
10555 msgstr ""
10556 "B<sigwait>()  関数は、シグナル集合 I<set> で指定されたシグナルの一つが処理待"
10557 "ち (pending) になるまで、 呼び出したスレッドの実行を中断する。 この関数はその"
10558 "シグナルを受け取り (つまり、処理待ちのシグナルのリスト からそのシグナルを削除"
10559 "し)、そのシグナル番号を I<sig> に格納して返す。"
10560
10561 #. type: Plain text
10562 #: build/C/man3/sigwait.3:62
10563 msgid ""
10564 "The operation of B<sigwait>()  is the same as B<sigwaitinfo>(2), except that:"
10565 msgstr ""
10566 "B<sigwait>()  の動作は B<sigwaitinfo>(2)  と同じだが、以下の点が異なる。"
10567
10568 #. type: Plain text
10569 #: build/C/man3/sigwait.3:67
10570 msgid ""
10571 "B<sigwait>()  returns only the signal number, rather than a I<siginfo_t> "
10572 "structure describing the signal."
10573 msgstr ""
10574 "B<sigwait>()  は、シグナルの内容を表す I<siginfo_t> 構造体を返すのではなく、"
10575 "単にシグナル番号を返す。"
10576
10577 #. type: Plain text
10578 #: build/C/man3/sigwait.3:69
10579 msgid "The return values of the two functions are different."
10580 msgstr "返り値が B<sigwaitinfo>(2)  とは異なる。"
10581
10582 #. type: Plain text
10583 #: build/C/man3/sigwait.3:74
10584 msgid ""
10585 "On success, B<sigwait>()  returns 0.  On error, it returns a positive error "
10586 "number (listed in ERRORS)."
10587 msgstr ""
10588 "成功すると、 B<sigwait>()  は 0 を返す。 エラーの場合、(「エラー」の節のリス"
10589 "トにある) 正のエラー番号を返す。"
10590
10591 #.  Does not occur for glibc.
10592 #. type: Plain text
10593 #: build/C/man3/sigwait.3:80
10594 msgid "I<set> contains an invalid signal number."
10595 msgstr "I<set> に無効なシグナル番号が入っている。"
10596
10597 #. type: Plain text
10598 #: build/C/man3/sigwait.3:86
10599 msgid "B<sigwait>()  is implemented using B<sigtimedwait>(2)."
10600 msgstr "B<sigwait>()  は B<sigtimedwait>(2)  を使って実装されている。"
10601
10602 #. type: Plain text
10603 #: build/C/man3/sigwait.3:89
10604 msgid "See B<pthread_sigmask>(3)."
10605 msgstr "B<pthread_sigmask>(3)  を参照。"
10606
10607 #. type: Plain text
10608 #: build/C/man3/sigwait.3:97
10609 msgid ""
10610 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
10611 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
10612 msgstr ""
10613 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
10614 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
10615
10616 #. type: TH
10617 #: build/C/man2/sigwaitinfo.2:25
10618 #, no-wrap
10619 msgid "SIGWAITINFO"
10620 msgstr "SIGWAITINFO"
10621
10622 #. type: TH
10623 #: build/C/man2/sigwaitinfo.2:25 build/C/man2/wait.2:49
10624 #, fuzzy, no-wrap
10625 #| msgid "2013-02-05"
10626 msgid "2013-09-04"
10627 msgstr "2013-02-05"
10628
10629 #. type: Plain text
10630 #: build/C/man2/sigwaitinfo.2:28
10631 msgid "sigwaitinfo, sigtimedwait - synchronously wait for queued signals"
10632 msgstr "sigwaitinfo, sigtimedwait - キューに入れられたシグナルを同期して待つ"
10633
10634 #. type: Plain text
10635 #: build/C/man2/sigwaitinfo.2:33
10636 #, no-wrap
10637 msgid "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
10638 msgstr "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
10639
10640 #. type: Plain text
10641 #: build/C/man2/sigwaitinfo.2:36
10642 #, no-wrap
10643 msgid ""
10644 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
10645 "B<                 const struct timespec *>I<timeout>B<);>\n"
10646 msgstr ""
10647 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
10648 "B<                 const struct timespec *>I<timeout>B<);>\n"
10649
10650 #. type: Plain text
10651 #: build/C/man2/sigwaitinfo.2:46
10652 msgid "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10653 msgstr ""
10654 "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10655
10656 #. type: Plain text
10657 #: build/C/man2/sigwaitinfo.2:56
10658 msgid ""
10659 "B<sigwaitinfo>()  suspends execution of the calling thread until one of the "
10660 "signals in I<set> is pending (If one of the signals in I<set> is already "
10661 "pending for the calling thread, B<sigwaitinfo>()  will return immediately.)"
10662 msgstr ""
10663 "B<sigwaitinfo>()  は I<set> のうちのどれかのシグナルが処理待ちになるまで、 呼"
10664 "び出しスレッドの実行を一時停止する (呼び出しスレッドに対して I<set> のうちの"
10665 "どれかのシグナルが既に待機中 (pending) である場合、 B<sigwaitinfo>()  はすぐ"
10666 "に戻る)。"
10667
10668 #. type: Plain text
10669 #: build/C/man2/sigwaitinfo.2:68
10670 msgid ""
10671 "B<sigwaitinfo>()  removes the signal from the set of pending signals and "
10672 "returns the signal number as its function result.  If the I<info> argument "
10673 "is not NULL, then the buffer that it points to is used to return a structure "
10674 "of type I<siginfo_t> (see B<sigaction>(2))  containing information about the "
10675 "signal."
10676 msgstr ""
10677 "B<sigwaitinfo>()  はそのシグナルを待機中のシグナルの集合から削除し、関数の結"
10678 "果としてシグナル番号を返す。 I<info> 引き数が NULL でない場合、配送されたシグ"
10679 "ナルの情報が入った I<siginfo_t> 型 (B<sigaction>(2)  を参照) の構造体を "
10680 "I<info> が指すバッファに入れて返す。"
10681
10682 #. type: Plain text
10683 #: build/C/man2/sigwaitinfo.2:76
10684 msgid ""
10685 "If multiple signals in I<set> are pending for the caller, the signal that is "
10686 "retrieved by B<sigwaitinfo>()  is determined according to the usual ordering "
10687 "rules; see B<signal>(7)  for further details."
10688 msgstr ""
10689 "呼び出し元に対して I<set> の複数のシグナルが処理待ちの場合、 B<sigwaitinfo>"
10690 "() で取得するシグナルは通常の順序決定ルールに基づいて決定される。 詳細は "
10691 "B<signal>(7) を参照のこと。"
10692
10693 #. type: Plain text
10694 #: build/C/man2/sigwaitinfo.2:88
10695 #, fuzzy
10696 #| msgid ""
10697 #| "B<sigtimedwait>()  operates in exactly the same way as B<sigwaitinfo>()  "
10698 #| "except that it has an additional argument, I<timeout>, which specifies a "
10699 #| "minimum interval for which the thread is suspended waiting for a signal.  "
10700 #| "(This interval will be rounded up to the system clock granularity, and "
10701 #| "kernel scheduling delays mean that the interval may overrun by a small "
10702 #| "amount.)  This argument is of the following type:"
10703 msgid ""
10704 "B<sigtimedwait>()  operates in exactly the same way as B<sigwaitinfo>()  "
10705 "except that it has an additional argument, I<timeout>, which specifies the "
10706 "interval for which the thread is suspended waiting for a signal.  (This "
10707 "interval will be rounded up to the system clock granularity, and kernel "
10708 "scheduling delays mean that the interval may overrun by a small amount.)  "
10709 "This argument is of the following type:"
10710 msgstr ""
10711 "B<sigtimedwait>() は、 B<sigwaitinfo>() と次の点を除いて全く同じように\n"
10712 "動作する。この関数にはもう 1 つの引き数 I<timeout> があり、シグナル待ち\n"
10713 "でスレッドが一時停止する最小時間を指定することができる(この時間はシステ\n"
10714 "ムクロックの粒度に切り上げられ、カーネルのスケジューリング遅延により\n"
10715 "少しだけ長くなる可能性がある)。この引き数の型は以下のとおりである:"
10716
10717 #. type: Plain text
10718 #: build/C/man2/sigwaitinfo.2:95
10719 #, no-wrap
10720 msgid ""
10721 "struct timespec {\n"
10722 "    long    tv_sec;         /* seconds */\n"
10723 "    long    tv_nsec;        /* nanoseconds */\n"
10724 "}\n"
10725 msgstr ""
10726 "struct timespec {\n"
10727 "    long    tv_sec;         /* 秒 */\n"
10728 "    long    tv_nsec;        /* ナノ秒 */\n"
10729 "}\n"
10730
10731 #. type: Plain text
10732 #: build/C/man2/sigwaitinfo.2:105
10733 msgid ""
10734 "If both fields of this structure are specified as 0, a poll is performed: "
10735 "B<sigtimedwait>()  returns immediately, either with information about a "
10736 "signal that was pending for the caller, or with an error if none of the "
10737 "signals in I<set> was pending."
10738 msgstr ""
10739 "この構造体の 2 つのフィールドがともに 0 の場合、ポーリングが行われる: "
10740 "B<sigtimedwait>()  は、呼び出し側プロセスに対して 待機しているシグナルの情報"
10741 "を返して戻るか、 I<set> のうちのどのシグナルも待機していない場合はエラーを返"
10742 "して戻る。"
10743
10744 #. type: Plain text
10745 #: build/C/man2/sigwaitinfo.2:114
10746 msgid ""
10747 "On success, both B<sigwaitinfo>()  and B<sigtimedwait>()  return a signal "
10748 "number (i.e., a value greater than zero).  On failure both calls return -1, "
10749 "with I<errno> set to indicate the error."
10750 msgstr ""
10751 "成功した場合、 B<sigwaitinfo>()  と B<sigtimedwait>()  はシグナル番号 (すなわ"
10752 "ち 0 より大きい数) を返す。 失敗した場合、2 つの関数は -1 を返し、 I<errno> "
10753 "はエラーを表す値に設定される。"
10754
10755 #. type: Plain text
10756 #: build/C/man2/sigwaitinfo.2:123
10757 msgid ""
10758 "No signal in I<set> was became pending within the I<timeout> period "
10759 "specified to B<sigtimedwait>()."
10760 msgstr ""
10761 "I<set> のうちのどのシグナルも B<sigtimedwait>()  に指定された I<timeout> の期"
10762 "間内に処理待ちにならなかった。"
10763
10764 #. type: Plain text
10765 #: build/C/man2/sigwaitinfo.2:129
10766 msgid ""
10767 "The wait was interrupted by a signal handler; see B<signal>(7).  (This "
10768 "handler was for a signal other than one of those in I<set>.)"
10769 msgstr ""
10770 "シグナル待ちがシグナルハンドラによって中断 (interrupt) された (このハンドラ"
10771 "は I<set> にあるシグナル以外のものである)。 B<signal>(7)  参照。"
10772
10773 #. type: Plain text
10774 #: build/C/man2/sigwaitinfo.2:133
10775 msgid "I<timeout> was invalid."
10776 msgstr "I<timeout> が不正である。"
10777
10778 #. type: Plain text
10779 #: build/C/man2/sigwaitinfo.2:153
10780 msgid ""
10781 "In normal usage, the calling program blocks the signals in I<set> via a "
10782 "prior call to B<sigprocmask>(2)  (so that the default disposition for these "
10783 "signals does not occur if they become pending between successive calls to "
10784 "B<sigwaitinfo>()  or B<sigtimedwait>())  and does not establish handlers for "
10785 "these signals.  In a multithreaded program, the signal should be blocked in "
10786 "all threads, in order to prevent the signal being treated according to its "
10787 "default disposition in a thread other than the one calling B<sigwaitinfo>()  "
10788 "or B<sigtimedwait>())."
10789 msgstr ""
10790 "通常の使用法では、呼び出し側プロセスはこれらの関数より先に B<sigprocmask>"
10791 "(2)  の呼び出すことにより I<set> に含まれるシグナルをブロックし (そのためにこ"
10792 "れらのシグナルがこの後に続く B<sigwaitinfo>()  や B<sigtimedwait>()  の呼び出"
10793 "しの間に処理待ちになった場合には、デフォルトの動作は行われず)、 これらのシグ"
10794 "ナルに対するハンドラは設定しない。 マルチスレッドプログラムでは、 "
10795 "B<sigwaitinfo>()  や B<sigtimedwait>() を呼び出したスレッド以外のスレッドで、"
10796 "そのシグナルがデフォルトの動作に基いて処理されないように、全てのスレッドで該"
10797 "当シグナルをブロックすべきである。"
10798
10799 #. type: Plain text
10800 #: build/C/man2/sigwaitinfo.2:158
10801 msgid ""
10802 "The set of signals that is pending for a given thread is the union of the "
10803 "set of signals that is pending specifically for that thread and the set of "
10804 "signals that is pending for the process as a whole (see B<signal>(7))."
10805 msgstr ""
10806 "指定されたスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体宛ての"
10807 "処理待ちのシグナル集合と、プロセス全体宛ての 処理待ちのシグナル集合をあわせた"
10808 "ものである (B<signal>(7)  参照)。"
10809
10810 #. type: Plain text
10811 #: build/C/man2/sigwaitinfo.2:164
10812 msgid "Attempts to wait for B<SIGKILL> and B<SIGSTOP> are silently ignored."
10813 msgstr "B<SIGKILL> と B<SIGSTOP> を待とうとした場合、黙って無視される。"
10814
10815 #. type: Plain text
10816 #: build/C/man2/sigwaitinfo.2:173
10817 msgid ""
10818 "If multiple threads of a process are blocked waiting for the same signal(s) "
10819 "in B<sigwaitinfo>()  or B<sigtimedwait>(), then exactly one of the threads "
10820 "will actually receive the signal if it becomes pending for the process as a "
10821 "whole; which of the threads receives the signal is indeterminate."
10822 msgstr ""
10823 "一つのプロセス内の複数のスレッドが B<sigwaitinfo>()  や B<sigtimedwait>()  で"
10824 "同じシグナルを待って停止した場合、 プロセス全体宛てのシグナルが処理待ちになる"
10825 "と、複数のスレッドのうち一つだけが 実際にそのシグナルを受信することになる。 "
10826 "どのスレッドがシグナルを受信するかは決まっていない。"
10827
10828 #. type: Plain text
10829 #: build/C/man2/sigwaitinfo.2:182
10830 msgid ""
10831 "POSIX leaves the meaning of a NULL value for the I<timeout> argument of "
10832 "B<sigtimedwait>()  unspecified, permitting the possibility that this has the "
10833 "same meaning as a call to B<sigwaitinfo>(), and indeed this is what is done "
10834 "on Linux."
10835 msgstr ""
10836 "POSIX では B<sigtimedwait>()  の引き数 I<timeout> の値を NULL にした場合の意"
10837 "味を未定義としている。 B<sigwaitinfo>()  を呼び出したのと同じ意味としてもよい"
10838 "ことになっており、 実際 Linux ではこのように動作する。"
10839
10840 #. type: Plain text
10841 #: build/C/man2/sigwaitinfo.2:187
10842 msgid ""
10843 "On Linux, B<sigwaitinfo>()  is a library function implemented on top of "
10844 "B<sigtimedwait>()."
10845 msgstr ""
10846 "Linux では、 B<sigwaitinfo>()  は B<sigtimedwait>()  を用いて実装されたライブ"
10847 "ラリ関数である。"
10848
10849 #. type: Plain text
10850 #: build/C/man2/sigwaitinfo.2:199
10851 msgid ""
10852 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
10853 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), B<signal>"
10854 "(7), B<time>(7)"
10855 msgstr ""
10856 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
10857 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), B<signal>"
10858 "(7), B<time>(7)"
10859
10860 #. type: TH
10861 #: build/C/man3/sysv_signal.3:25
10862 #, no-wrap
10863 msgid "SYSV_SIGNAL"
10864 msgstr "SYSV_SIGNAL"
10865
10866 #. type: TH
10867 #: build/C/man3/sysv_signal.3:25
10868 #, no-wrap
10869 msgid "2007-05-04"
10870 msgstr "2007-05-04"
10871
10872 #. type: Plain text
10873 #: build/C/man3/sysv_signal.3:28
10874 msgid "sysv_signal - signal handling with System V semantics"
10875 msgstr "sysv_signal - System V 方式のシグナル処理"
10876
10877 #. type: Plain text
10878 #: build/C/man3/sysv_signal.3:30
10879 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
10880 msgstr "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */"
10881
10882 #. type: Plain text
10883 #: build/C/man3/sysv_signal.3:36
10884 msgid ""
10885 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
10886 msgstr ""
10887 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
10888
10889 #. type: Plain text
10890 #: build/C/man3/sysv_signal.3:41
10891 msgid ""
10892 "The B<sysv_signal>()  function takes the same arguments, and performs the "
10893 "same task, as B<signal>(2)."
10894 msgstr ""
10895 "B<sysv_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
10896 "る。"
10897
10898 #. type: Plain text
10899 #: build/C/man3/sysv_signal.3:51
10900 msgid ""
10901 "However B<sysv_signal>()  provides the System V unreliable signal semantics, "
10902 "that is: a) the disposition of the signal is reset to the default when the "
10903 "handler is invoked; b) delivery of further instances of the signal is not "
10904 "blocked while the signal handler is executing; and c) if the handler "
10905 "interrupts (certain) blocking system calls, then the system call is not "
10906 "automatically restarted."
10907 msgstr ""
10908 "しかしながら、 B<sysv_signal>()  は System V の信頼性に欠けるシグナル処理方式"
10909 "を提供している。 信頼性に欠けるシグナル処理方式は以下の特徴を持つ。 a) ハンド"
10910 "ラが起動されると、シグナルの処理方法 (disposition) が デフォルトにリセットさ"
10911 "れる、 b) シグナルハンドラの実行中は、それ以降に発生した同じシグナルの配送が "
10912 "ブロックされない、 c) ハンドラが停止中の (blocking している) システムコールを"
10913 "中断した場合、 自動的に再開されないシステムコールがある。"
10914
10915 #. type: Plain text
10916 #: build/C/man3/sysv_signal.3:57
10917 msgid ""
10918 "The B<sysv_signal>()  function returns the previous value of the signal "
10919 "handler, or B<SIG_ERR> on error."
10920 msgstr ""
10921 "B<sysv_signal>()  関数はシグナルハンドラの直前の値を返す。 エラーの場合、 "
10922 "B<SIG_ERR> を返す。"
10923
10924 #. type: Plain text
10925 #: build/C/man3/sysv_signal.3:62
10926 msgid "This function is nonstandard."
10927 msgstr "この関数は非標準である。"
10928
10929 #. type: Plain text
10930 #: build/C/man3/sysv_signal.3:68
10931 msgid ""
10932 "Use of B<sysv_signal>()  should be avoided; use B<sigaction>(2)  instead."
10933 msgstr ""
10934 "B<sysv_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使う"
10935 "こと。"
10936
10937 #. type: Plain text
10938 #: build/C/man3/sysv_signal.3:79
10939 msgid ""
10940 "On older Linux systems, B<sysv_signal>()  and B<signal>(2)  were "
10941 "equivalent.  But on newer systems, B<signal>(2)  provides reliable signal "
10942 "semantics; see B<signal>(2)  for details."
10943 msgstr ""
10944 "以前の Linux システムでは、 B<sysv_signal>()  と B<signal>(2)  は等価であっ"
10945 "た。しかし、新しめのシステムでは、 B<signal>(2)  は信頼性のあるシグナル処理方"
10946 "式を提供している。 詳細は B<signal>(2)  を参照。"
10947
10948 #. type: Plain text
10949 #: build/C/man3/sysv_signal.3:92
10950 msgid "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
10951 msgstr "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
10952
10953 #. type: TH
10954 #: build/C/man2/timer_create.2:31
10955 #, no-wrap
10956 msgid "TIMER_CREATE"
10957 msgstr "TIMER_CREATE"
10958
10959 #. type: TH
10960 #: build/C/man2/timer_create.2:31
10961 #, no-wrap
10962 msgid "2010-09-27"
10963 msgstr "2010-09-27"
10964
10965 #. type: Plain text
10966 #: build/C/man2/timer_create.2:34
10967 msgid "timer_create - create a POSIX per-process timer"
10968 msgstr ""
10969
10970 #. type: Plain text
10971 #: build/C/man2/timer_create.2:38
10972 #, no-wrap
10973 msgid ""
10974 "B<#include E<lt>signal.hE<gt>>\n"
10975 "B<#include E<lt>time.hE<gt>>\n"
10976 msgstr ""
10977 "B<#include E<lt>signal.hE<gt>>\n"
10978 "B<#include E<lt>time.hE<gt>>\n"
10979
10980 #. type: Plain text
10981 #: build/C/man2/timer_create.2:41
10982 #, no-wrap
10983 msgid ""
10984 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
10985 "B<                 timer_t *>I<timerid>B<);>\n"
10986 msgstr ""
10987 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
10988 "B<                 timer_t *>I<timerid>B<);>\n"
10989
10990 #. type: Plain text
10991 #: build/C/man2/timer_create.2:44 build/C/man2/timer_delete.2:37
10992 #: build/C/man2/timer_getoverrun.2:37 build/C/man2/timer_settime.2:41
10993 msgid "Link with I<-lrt>."
10994 msgstr "I<-lrt> でリンクする。"
10995
10996 #. type: Plain text
10997 #: build/C/man2/timer_create.2:52
10998 msgid "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10999 msgstr "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11000
11001 #. type: Plain text
11002 #: build/C/man2/timer_create.2:60
11003 msgid ""
11004 "B<timer_create>()  creates a new per-process interval timer.  The ID of the "
11005 "new timer is returned in the buffer pointed to by I<timerid>, which must be "
11006 "a non-NULL pointer.  This ID is unique within the process, until the timer "
11007 "is deleted.  The new timer is initially disarmed."
11008 msgstr ""
11009
11010 #. type: Plain text
11011 #: build/C/man2/timer_create.2:65
11012 msgid ""
11013 "The I<clockid> argument specifies the clock that the new timer uses to "
11014 "measure time.  It can be specified as one of the following values:"
11015 msgstr ""
11016
11017 #. type: TP
11018 #: build/C/man2/timer_create.2:65
11019 #, no-wrap
11020 msgid "B<CLOCK_REALTIME>"
11021 msgstr "B<CLOCK_REALTIME>"
11022
11023 #. type: Plain text
11024 #: build/C/man2/timer_create.2:68
11025 msgid "A settable system-wide real-time clock."
11026 msgstr ""
11027
11028 #. type: TP
11029 #: build/C/man2/timer_create.2:68
11030 #, no-wrap
11031 msgid "B<CLOCK_MONOTONIC>"
11032 msgstr "B<CLOCK_MONOTONIC>"
11033
11034 #.  Note: the CLOCK_MONOTONIC_RAW clock added for clock_gettime()
11035 #.  in 2.6.28 is not supported for POSIX timers -- mtk, Feb 2009
11036 #. type: Plain text
11037 #: build/C/man2/timer_create.2:75
11038 msgid ""
11039 "A nonsettable monotonically increasing clock that measures time from some "
11040 "unspecified point in the past that does not change after system startup."
11041 msgstr ""
11042
11043 #. type: TP
11044 #: build/C/man2/timer_create.2:75
11045 #, no-wrap
11046 msgid "B<CLOCK_PROCESS_CPUTIME_ID> (since Linux 2.6.12)"
11047 msgstr ""
11048
11049 #. type: Plain text
11050 #: build/C/man2/timer_create.2:79
11051 msgid ""
11052 "A clock that measures (user and system) CPU time consumed by (all of the "
11053 "threads in) the calling process."
11054 msgstr ""
11055
11056 #. type: TP
11057 #: build/C/man2/timer_create.2:79
11058 #, no-wrap
11059 msgid "B<CLOCK_THREAD_CPUTIME_ID> (since Linux 2.6.12)"
11060 msgstr ""
11061
11062 #.  The CLOCK_MONOTONIC_RAW that was added in 2.6.28 can't be used
11063 #.  to create a timer -- mtk, Feb 2009
11064 #. type: Plain text
11065 #: build/C/man2/timer_create.2:85
11066 msgid ""
11067 "A clock that measures (user and system) CPU time consumed by the calling "
11068 "thread."
11069 msgstr ""
11070
11071 #. type: Plain text
11072 #: build/C/man2/timer_create.2:94
11073 msgid ""
11074 "As well as the above values, I<clockid> can be specified as the I<clockid> "
11075 "returned by a call to B<clock_getcpuclockid>(3)  or B<pthread_getcpuclockid>"
11076 "(3)."
11077 msgstr ""
11078
11079 #. type: Plain text
11080 #: build/C/man2/timer_create.2:103
11081 msgid ""
11082 "The I<sevp> argument points to a I<sigevent> structure that specifies how "
11083 "the caller should be notified when the timer expires.  For the definition "
11084 "and general details of this structure, see B<sigevent>(7)."
11085 msgstr ""
11086
11087 #. type: Plain text
11088 #: build/C/man2/timer_create.2:107
11089 msgid "The I<sevp.sigev_notify> field can have the following values:"
11090 msgstr ""
11091
11092 #. type: Plain text
11093 #: build/C/man2/timer_create.2:112
11094 msgid ""
11095 "Don't asynchronously notify when the timer expires.  Progress of the timer "
11096 "can be monitored using B<timer_gettime>(2)."
11097 msgstr ""
11098
11099 #. type: Plain text
11100 #: build/C/man2/timer_create.2:130
11101 msgid ""
11102 "Upon timer expiration, generate the signal I<sigev_signo> for the process.  "
11103 "See B<sigevent>(7)  for general details.  The I<si_code> field of the "
11104 "I<siginfo_t> structure will be set to B<SI_TIMER>.  At any point in time, at "
11105 "most one signal is queued to the process for a given timer; see "
11106 "B<timer_getoverrun>(2)  for more details."
11107 msgstr ""
11108
11109 #. type: Plain text
11110 #: build/C/man2/timer_create.2:138
11111 msgid ""
11112 "Upon timer expiration, invoke I<sigev_notify_function> as if it were the "
11113 "start function of a new thread.  See B<sigevent>(7)  for details."
11114 msgstr ""
11115
11116 #. type: Plain text
11117 #: build/C/man2/timer_create.2:152
11118 msgid ""
11119 "As for B<SIGEV_SIGNAL>, but the signal is targeted at the thread whose ID is "
11120 "given in I<sigev_notify_thread_id>, which must be a thread in the same "
11121 "process as the caller.  The I<sigev_notify_thread_id> field specifies a "
11122 "kernel thread ID, that is, the value returned by B<clone>(2)  or B<gettid>"
11123 "(2).  This flag is intended only for use by threading libraries."
11124 msgstr ""
11125
11126 #. type: Plain text
11127 #: build/C/man2/timer_create.2:167
11128 msgid ""
11129 "Specifying I<sevp> as NULL is equivalent to specifying a pointer to a "
11130 "I<sigevent> structure in which I<sigev_notify> is B<SIGEV_SIGNAL>, "
11131 "I<sigev_signo> is B<SIGALRM>, and I<sigev_value.sival_int> is the timer ID."
11132 msgstr ""
11133
11134 #. type: Plain text
11135 #: build/C/man2/timer_create.2:175
11136 msgid ""
11137 "On success, B<timer_create>()  returns 0, and the ID of the new timer is "
11138 "placed in I<*timerid>.  On failure, -1 is returned, and I<errno> is set to "
11139 "indicate the error."
11140 msgstr ""
11141
11142 #. type: Plain text
11143 #: build/C/man2/timer_create.2:179
11144 msgid "Temporary error during kernel allocation of timer structures."
11145 msgstr ""
11146
11147 #. type: Plain text
11148 #: build/C/man2/timer_create.2:187
11149 msgid ""
11150 "Clock ID, I<sigev_notify>, I<sigev_signo>, or I<sigev_notify_thread_id> is "
11151 "invalid."
11152 msgstr ""
11153
11154 #.  glibc layer: malloc()
11155 #. type: Plain text
11156 #: build/C/man2/timer_create.2:191
11157 msgid "Could not allocate memory."
11158 msgstr ""
11159
11160 #. type: Plain text
11161 #: build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:67
11162 #: build/C/man2/timer_getoverrun.2:97
11163 msgid "This system call is available since Linux 2.6."
11164 msgstr "このシステムコールは Linux 2.6 以降で利用できる。"
11165
11166 #. type: Plain text
11167 #: build/C/man2/timer_create.2:198
11168 msgid "A program may create multiple interval timers using B<timer_create>()."
11169 msgstr ""
11170
11171 #. type: Plain text
11172 #: build/C/man2/timer_create.2:203
11173 msgid ""
11174 "Timers are not inherited by the child of a B<fork>(2), and are disarmed and "
11175 "deleted during an B<execve>(2)."
11176 msgstr ""
11177
11178 #. type: Plain text
11179 #: build/C/man2/timer_create.2:211
11180 msgid ""
11181 "The kernel preallocates a \"queued real-time signal\" for each timer created "
11182 "using B<timer_create>().  Consequently, the number of timers is limited by "
11183 "the B<RLIMIT_SIGPENDING> resource limit (see B<setrlimit>(2))."
11184 msgstr ""
11185
11186 #. type: Plain text
11187 #: build/C/man2/timer_create.2:216
11188 msgid ""
11189 "The timers created by B<timer_create>()  are commonly known as \"POSIX "
11190 "(interval) timers\".  The POSIX timers API consists of the following "
11191 "interfaces:"
11192 msgstr ""
11193
11194 #. type: Plain text
11195 #: build/C/man2/timer_create.2:219
11196 msgid "B<timer_create>(): Create a timer."
11197 msgstr ""
11198
11199 #. type: Plain text
11200 #: build/C/man2/timer_create.2:222
11201 msgid "B<timer_settime>(2): Arm (start) or disarm (stop) a timer."
11202 msgstr ""
11203
11204 #. type: Plain text
11205 #: build/C/man2/timer_create.2:226
11206 msgid ""
11207 "B<timer_gettime>(2): Fetch the time remaining until the next expiration of a "
11208 "timer, along with the interval setting of the timer."
11209 msgstr ""
11210
11211 #. type: Plain text
11212 #: build/C/man2/timer_create.2:229
11213 msgid ""
11214 "B<timer_getoverrun>(2): Return the overrun count for the last timer "
11215 "expiration."
11216 msgstr ""
11217
11218 #. type: Plain text
11219 #: build/C/man2/timer_create.2:232
11220 msgid "B<timer_delete>(2): Disarm and delete a timer."
11221 msgstr ""
11222
11223 #. type: Plain text
11224 #: build/C/man2/timer_create.2:235
11225 msgid ""
11226 "Part of the implementation of the POSIX timers API is provided by glibc.  In "
11227 "particular:"
11228 msgstr ""
11229
11230 #. type: Plain text
11231 #: build/C/man2/timer_create.2:239
11232 msgid ""
11233 "The functionality for B<SIGEV_THREAD> is implemented within glibc, rather "
11234 "than the kernel."
11235 msgstr ""
11236
11237 #.  See the glibc source file kernel-posix-timers.h for the structure
11238 #.  that glibc uses to map user-space timer IDs to kernel timer IDs
11239 #.  The kernel-level timer ID is exposed via siginfo.si_tid.
11240 #. type: Plain text
11241 #: build/C/man2/timer_create.2:245
11242 msgid ""
11243 "The timer IDs presented at user level are maintained by glibc, which maps "
11244 "these IDs to the timer IDs employed by the kernel."
11245 msgstr ""
11246
11247 #. type: Plain text
11248 #: build/C/man2/timer_create.2:253
11249 msgid ""
11250 "The POSIX timers system calls first appeared in Linux 2.6.  Prior to this, "
11251 "glibc provided an incomplete user-space implementation (B<CLOCK_REALTIME> "
11252 "timers only) using POSIX threads, and current glibc falls back to this "
11253 "implementation on systems running pre-2.6 Linux kernels."
11254 msgstr ""
11255
11256 #. type: Plain text
11257 #: build/C/man2/timer_create.2:265
11258 msgid ""
11259 "The program below takes two arguments: a sleep period in seconds, and a "
11260 "timer frequency in nanoseconds.  The program establishes a handler for the "
11261 "signal it uses for the timer, blocks that signal, creates and arms a timer "
11262 "that expires with the given frequency, sleeps for the specified number of "
11263 "seconds, and then unblocks the timer signal.  Assuming that the timer "
11264 "expired at least once while the program slept, the signal handler will be "
11265 "invoked, and the handler displays some information about the timer "
11266 "notification.  The program terminates after one invocation of the signal "
11267 "handler."
11268 msgstr ""
11269
11270 #. type: Plain text
11271 #: build/C/man2/timer_create.2:270
11272 msgid ""
11273 "In the following example run, the program sleeps for 1 second, after "
11274 "creating a timer that has a frequency of 100 nanoseconds.  By the time the "
11275 "signal is unblocked and delivered, there have been around ten million "
11276 "overruns."
11277 msgstr ""
11278
11279 #. type: Plain text
11280 #: build/C/man2/timer_create.2:282
11281 #, no-wrap
11282 msgid ""
11283 "$ B<./a.out 1 100>\n"
11284 "Establishing handler for signal 34\n"
11285 "Blocking signal 34\n"
11286 "timer ID is 0x804c008\n"
11287 "Sleeping for 1 seconds\n"
11288 "Unblocking signal 34\n"
11289 "Caught signal 34\n"
11290 "    sival_ptr = 0xbfb174f4;     *sival_ptr = 0x804c008\n"
11291 "    overrun count = 10004886\n"
11292 msgstr ""
11293
11294 #. type: Plain text
11295 #: build/C/man2/timer_create.2:292
11296 #, no-wrap
11297 msgid ""
11298 "#include E<lt>stdlib.hE<gt>\n"
11299 "#include E<lt>unistd.hE<gt>\n"
11300 "#include E<lt>stdio.hE<gt>\n"
11301 "#include E<lt>signal.hE<gt>\n"
11302 "#include E<lt>time.hE<gt>\n"
11303 msgstr ""
11304 "#include E<lt>stdlib.hE<gt>\n"
11305 "#include E<lt>unistd.hE<gt>\n"
11306 "#include E<lt>stdio.hE<gt>\n"
11307 "#include E<lt>signal.hE<gt>\n"
11308 "#include E<lt>time.hE<gt>\n"
11309
11310 #. type: Plain text
11311 #: build/C/man2/timer_create.2:295
11312 #, no-wrap
11313 msgid ""
11314 "#define CLOCKID CLOCK_REALTIME\n"
11315 "#define SIG SIGRTMIN\n"
11316 msgstr ""
11317 "#define CLOCKID CLOCK_REALTIME\n"
11318 "#define SIG SIGRTMIN\n"
11319
11320 #. type: Plain text
11321 #: build/C/man2/timer_create.2:298
11322 #, no-wrap
11323 msgid ""
11324 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11325 "                        } while (0)\n"
11326 msgstr ""
11327 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11328 "                        } while (0)\n"
11329
11330 #. type: Plain text
11331 #: build/C/man2/timer_create.2:304
11332 #, no-wrap
11333 msgid ""
11334 "static void\n"
11335 "print_siginfo(siginfo_t *si)\n"
11336 "{\n"
11337 "    timer_t *tidp;\n"
11338 "    int or;\n"
11339 msgstr ""
11340 "static void\n"
11341 "print_siginfo(siginfo_t *si)\n"
11342 "{\n"
11343 "    timer_t *tidp;\n"
11344 "    int or;\n"
11345
11346 #. type: Plain text
11347 #: build/C/man2/timer_create.2:306
11348 #, no-wrap
11349 msgid "    tidp = si-E<gt>si_value.sival_ptr;\n"
11350 msgstr "    tidp = si-E<gt>si_value.sival_ptr;\n"
11351
11352 #. type: Plain text
11353 #: build/C/man2/timer_create.2:309
11354 #, no-wrap
11355 msgid ""
11356 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11357 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11358 msgstr ""
11359 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11360 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11361
11362 #. type: Plain text
11363 #: build/C/man2/timer_create.2:316
11364 #, no-wrap
11365 msgid ""
11366 "    or = timer_getoverrun(*tidp);\n"
11367 "    if (or == -1)\n"
11368 "        errExit(\"timer_getoverrun\");\n"
11369 "    else\n"
11370 "        printf(\"    overrun count = %d\\en\", or);\n"
11371 "}\n"
11372 msgstr ""
11373 "    or = timer_getoverrun(*tidp);\n"
11374 "    if (or == -1)\n"
11375 "        errExit(\"timer_getoverrun\");\n"
11376 "    else\n"
11377 "        printf(\"    overrun count = %d\\en\", or);\n"
11378 "}\n"
11379
11380 #. type: Plain text
11381 #: build/C/man2/timer_create.2:323
11382 #, no-wrap
11383 msgid ""
11384 "static void\n"
11385 "handler(int sig, siginfo_t *si, void *uc)\n"
11386 "{\n"
11387 "    /* Note: calling printf() from a signal handler is not\n"
11388 "       strictly correct, since printf() is not async-signal-safe;\n"
11389 "       see signal(7) */\n"
11390 msgstr ""
11391 "static void\n"
11392 "handler(int sig, siginfo_t *si, void *uc)\n"
11393 "{\n"
11394 "    /* Note: calling printf() from a signal handler is not\n"
11395 "       strictly correct, since printf() is not async-signal-safe;\n"
11396 "       see signal(7) */\n"
11397
11398 #. type: Plain text
11399 #: build/C/man2/timer_create.2:328
11400 #, no-wrap
11401 msgid ""
11402 "    printf(\"Caught signal %d\\en\", sig);\n"
11403 "    print_siginfo(si);\n"
11404 "    signal(sig, SIG_IGN);\n"
11405 "}\n"
11406 msgstr ""
11407 "    printf(\"Caught signal %d\\en\", sig);\n"
11408 "    print_siginfo(si);\n"
11409 "    signal(sig, SIG_IGN);\n"
11410 "}\n"
11411
11412 #. type: Plain text
11413 #: build/C/man2/timer_create.2:338
11414 #, no-wrap
11415 msgid ""
11416 "int\n"
11417 "main(int argc, char *argv[])\n"
11418 "{\n"
11419 "    timer_t timerid;\n"
11420 "    struct sigevent sev;\n"
11421 "    struct itimerspec its;\n"
11422 "    long long freq_nanosecs;\n"
11423 "    sigset_t mask;\n"
11424 "    struct sigaction sa;\n"
11425 msgstr ""
11426 "int\n"
11427 "main(int argc, char *argv[])\n"
11428 "{\n"
11429 "    timer_t timerid;\n"
11430 "    struct sigevent sev;\n"
11431 "    struct itimerspec its;\n"
11432 "    long long freq_nanosecs;\n"
11433 "    sigset_t mask;\n"
11434 "    struct sigaction sa;\n"
11435
11436 #. type: Plain text
11437 #: build/C/man2/timer_create.2:344
11438 #, no-wrap
11439 msgid ""
11440 "    if (argc != 3) {\n"
11441 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11442 "                argv[0]);\n"
11443 "        exit(EXIT_FAILURE);\n"
11444 "    }\n"
11445 msgstr ""
11446 "    if (argc != 3) {\n"
11447 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11448 "                argv[0]);\n"
11449 "        exit(EXIT_FAILURE);\n"
11450 "    }\n"
11451
11452 #. type: Plain text
11453 #: build/C/man2/timer_create.2:346
11454 #, no-wrap
11455 msgid "    /* Establish handler for timer signal */\n"
11456 msgstr "    /* Establish handler for timer signal */\n"
11457
11458 #. type: Plain text
11459 #: build/C/man2/timer_create.2:353
11460 #, no-wrap
11461 msgid ""
11462 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11463 "    sa.sa_flags = SA_SIGINFO;\n"
11464 "    sa.sa_sigaction = handler;\n"
11465 "    sigemptyset(&sa.sa_mask);\n"
11466 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11467 "        errExit(\"sigaction\");\n"
11468 msgstr ""
11469 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11470 "    sa.sa_flags = SA_SIGINFO;\n"
11471 "    sa.sa_sigaction = handler;\n"
11472 "    sigemptyset(&sa.sa_mask);\n"
11473 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11474 "        errExit(\"sigaction\");\n"
11475
11476 #. type: Plain text
11477 #: build/C/man2/timer_create.2:355
11478 #, no-wrap
11479 msgid "    /* Block timer signal temporarily */\n"
11480 msgstr "    /* Block timer signal temporarily */\n"
11481
11482 #. type: Plain text
11483 #: build/C/man2/timer_create.2:361
11484 #, no-wrap
11485 msgid ""
11486 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11487 "    sigemptyset(&mask);\n"
11488 "    sigaddset(&mask, SIG);\n"
11489 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11490 "        errExit(\"sigprocmask\");\n"
11491 msgstr ""
11492 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11493 "    sigemptyset(&mask);\n"
11494 "    sigaddset(&mask, SIG);\n"
11495 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11496 "        errExit(\"sigprocmask\");\n"
11497
11498 #. type: Plain text
11499 #: build/C/man2/timer_create.2:363
11500 #, no-wrap
11501 msgid "    /* Create the timer */\n"
11502 msgstr "    /* Create the timer */\n"
11503
11504 #. type: Plain text
11505 #: build/C/man2/timer_create.2:369
11506 #, no-wrap
11507 msgid ""
11508 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11509 "    sev.sigev_signo = SIG;\n"
11510 "    sev.sigev_value.sival_ptr = &timerid;\n"
11511 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11512 "        errExit(\"timer_create\");\n"
11513 msgstr ""
11514 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11515 "    sev.sigev_signo = SIG;\n"
11516 "    sev.sigev_value.sival_ptr = &timerid;\n"
11517 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11518 "        errExit(\"timer_create\");\n"
11519
11520 #. type: Plain text
11521 #: build/C/man2/timer_create.2:371
11522 #, no-wrap
11523 msgid "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11524 msgstr "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11525
11526 #. type: Plain text
11527 #: build/C/man2/timer_create.2:373
11528 #, no-wrap
11529 msgid "    /* Start the timer */\n"
11530 msgstr "    /* Start the timer */\n"
11531
11532 #. type: Plain text
11533 #: build/C/man2/timer_create.2:379
11534 #, no-wrap
11535 msgid ""
11536 "    freq_nanosecs = atoll(argv[2]);\n"
11537 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11538 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11539 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11540 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11541 msgstr ""
11542 "    freq_nanosecs = atoll(argv[2]);\n"
11543 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11544 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11545 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11546 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11547
11548 #. type: Plain text
11549 #: build/C/man2/timer_create.2:382
11550 #, no-wrap
11551 msgid ""
11552 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11553 "         errExit(\"timer_settime\");\n"
11554 msgstr ""
11555 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11556 "         errExit(\"timer_settime\");\n"
11557
11558 #. type: Plain text
11559 #: build/C/man2/timer_create.2:385
11560 #, no-wrap
11561 msgid ""
11562 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11563 "       multiple times */\n"
11564 msgstr ""
11565 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11566 "       multiple times */\n"
11567
11568 #. type: Plain text
11569 #: build/C/man2/timer_create.2:388
11570 #, no-wrap
11571 msgid ""
11572 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11573 "    sleep(atoi(argv[1]));\n"
11574 msgstr ""
11575 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11576 "    sleep(atoi(argv[1]));\n"
11577
11578 #. type: Plain text
11579 #: build/C/man2/timer_create.2:391
11580 #, no-wrap
11581 msgid ""
11582 "    /* Unlock the timer signal, so that timer notification\n"
11583 "       can be delivered */\n"
11584 msgstr ""
11585 "    /* Unlock the timer signal, so that timer notification\n"
11586 "       can be delivered */\n"
11587
11588 #. type: Plain text
11589 #: build/C/man2/timer_create.2:395
11590 #, no-wrap
11591 msgid ""
11592 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
11593 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
11594 "        errExit(\"sigprocmask\");\n"
11595 msgstr ""
11596 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
11597 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
11598 "        errExit(\"sigprocmask\");\n"
11599
11600 #. type: Plain text
11601 #: build/C/man2/timer_create.2:398 build/C/man2/timerfd_create.2:540
11602 #, no-wrap
11603 msgid ""
11604 "    exit(EXIT_SUCCESS);\n"
11605 "}\n"
11606 msgstr ""
11607 "    exit(EXIT_SUCCESS);\n"
11608 "}\n"
11609
11610 #. type: Plain text
11611 #: build/C/man2/timer_create.2:414
11612 msgid ""
11613 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), B<timer_getoverrun>"
11614 "(2), B<timer_settime>(2), B<timerfd_create>(2), B<clock_getcpuclockid>(3), "
11615 "B<pthread_getcpuclockid>(3), B<pthreads>(7), B<sigevent>(7), B<signal>(7), "
11616 "B<time>(7)"
11617 msgstr ""
11618 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), B<timer_getoverrun>"
11619 "(2), B<timer_settime>(2), B<timerfd_create>(2), B<clock_getcpuclockid>(3), "
11620 "B<pthread_getcpuclockid>(3), B<pthreads>(7), B<sigevent>(7), B<signal>(7), "
11621 "B<time>(7)"
11622
11623 #. type: TH
11624 #: build/C/man2/timer_delete.2:26
11625 #, no-wrap
11626 msgid "TIMER_DELETE"
11627 msgstr "TIMER_DELETE"
11628
11629 #. type: TH
11630 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
11631 #, no-wrap
11632 msgid "2009-02-20"
11633 msgstr "2009-02-20"
11634
11635 #. type: Plain text
11636 #: build/C/man2/timer_delete.2:29
11637 msgid "timer_delete - delete a POSIX per-process timer"
11638 msgstr "timer_delete - プロセス単位の POSIX タイマーを削除する"
11639
11640 #. type: Plain text
11641 #: build/C/man2/timer_delete.2:32 build/C/man2/timer_getoverrun.2:32
11642 #: build/C/man2/timer_settime.2:33
11643 #, no-wrap
11644 msgid "B<#include E<lt>time.hE<gt>>\n"
11645 msgstr "B<#include E<lt>time.hE<gt>>\n"
11646
11647 #. type: Plain text
11648 #: build/C/man2/timer_delete.2:34
11649 #, no-wrap
11650 msgid "B<int timer_delete(timer_t >I<timerid>B<);>\n"
11651 msgstr "B<int timer_delete(timer_t >I<timerid>B<);>\n"
11652
11653 #. type: Plain text
11654 #: build/C/man2/timer_delete.2:45
11655 msgid "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11656 msgstr "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11657
11658 #. type: Plain text
11659 #: build/C/man2/timer_delete.2:53
11660 msgid ""
11661 "B<timer_delete>()  deletes the timer whose ID is given in I<timerid>.  If "
11662 "the timer was armed at the time of this call, it is disarmed before being "
11663 "deleted.  The treatment of any pending signal generated by the deleted timer "
11664 "is unspecified."
11665 msgstr ""
11666 "B<timer_delete>() は I<timerid> で指定された ID のタイマーを削除する。 "
11667 "B<timer_delete>() が呼び出された時点でタイマーが開始されている場合は、 削除す"
11668 "る前にタイマーの解除が行われる。 削除されるタイマーにより生成された処理待ちシ"
11669 "グナルの扱いは不定 (unspecified) である。"
11670
11671 #. type: Plain text
11672 #: build/C/man2/timer_delete.2:60
11673 msgid ""
11674 "On success, B<timer_delete>()  returns 0.  On failure, -1 is returned, and "
11675 "I<errno> is set to indicate the error."
11676 msgstr ""
11677 "成功すると、 B<timer_delete>() は 0 を返す。 失敗すると、 -1 が返り、 "
11678 "I<errno> にエラーを示す値が設定される。"
11679
11680 #. type: Plain text
11681 #: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
11682 msgid "I<timerid> is not a valid timer ID."
11683 msgstr "I<timerid> が有効なタイマー ID ではない。"
11684
11685 #. type: Plain text
11686 #: build/C/man2/timer_delete.2:75
11687 msgid ""
11688 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
11689 "B<timer_settime>(2), B<time>(7)"
11690 msgstr ""
11691 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
11692 "B<timer_settime>(2), B<time>(7)"
11693
11694 #. type: TH
11695 #: build/C/man2/timer_getoverrun.2:26
11696 #, no-wrap
11697 msgid "TIMER_GETOVERRUN"
11698 msgstr "TIMER_GETOVERRUN"
11699
11700 #. type: Plain text
11701 #: build/C/man2/timer_getoverrun.2:29
11702 msgid "timer_getoverrun - get overrun count for a POSIX per-process timer"
11703 msgstr ""
11704
11705 #. type: Plain text
11706 #: build/C/man2/timer_getoverrun.2:34
11707 #, no-wrap
11708 msgid "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
11709 msgstr "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
11710
11711 #. type: Plain text
11712 #: build/C/man2/timer_getoverrun.2:45
11713 msgid "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11714 msgstr "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11715
11716 #. type: Plain text
11717 #: build/C/man2/timer_getoverrun.2:56
11718 msgid ""
11719 "B<timer_getoverrun>()  returns the \"overrun count\" for the timer referred "
11720 "to by I<timerid>.  An application can use the overrun count to accurately "
11721 "calculate the number of timer expirations that would have occurred over a "
11722 "given time interval.  Timer overruns can occur both when receiving "
11723 "expiration notifications via signals (B<SIGEV_SIGNAL>), and via threads "
11724 "(B<SIGEV_THREAD>)."
11725 msgstr ""
11726
11727 #. type: Plain text
11728 #: build/C/man2/timer_getoverrun.2:76
11729 msgid ""
11730 "When expiration notifications are delivered via a signal, overruns can occur "
11731 "as follows.  Regardless of whether or not a real-time signal is used for "
11732 "timer notifications, the system queues at most one signal per timer.  (This "
11733 "is the behavior specified by POSIX.1-2001.  The alternative, queuing one "
11734 "signal for each timer expiration, could easily result in overflowing the "
11735 "allowed limits for queued signals on the system.)  Because of system "
11736 "scheduling delays, or because the signal may be temporarily blocked, there "
11737 "can be a delay between the time when the notification signal is generated "
11738 "and the time when it is delivered (e.g., caught by a signal handler) or "
11739 "accepted (e.g., using B<sigwaitinfo>(2)).  In this interval, further timer "
11740 "expirations may occur.  The timer overrun count is the number of additional "
11741 "timer expirations that occurred between the time when the signal was "
11742 "generated and when it was delivered or accepted."
11743 msgstr ""
11744
11745 #. type: Plain text
11746 #: build/C/man2/timer_getoverrun.2:82
11747 msgid ""
11748 "Timer overruns can also occur when expiration notifications are delivered "
11749 "via invocation of a thread, since there may be an arbitrary delay between an "
11750 "expiration of the timer and the invocation of the notification thread, and "
11751 "in that delay interval, additional timer expirations may occur"
11752 msgstr ""
11753
11754 #. type: Plain text
11755 #: build/C/man2/timer_getoverrun.2:90
11756 msgid ""
11757 "On success, B<timer_getoverrun>()  returns the overrun count of the "
11758 "specified timer; this count may be 0 if no overruns have occurred.  On "
11759 "failure, -1 is returned, and I<errno> is set to indicate the error."
11760 msgstr ""
11761
11762 #. type: Plain text
11763 #: build/C/man2/timer_getoverrun.2:111
11764 msgid ""
11765 "When timer notifications are delivered via signals (B<SIGEV_SIGNAL>), on "
11766 "Linux it is also possible to obtain the overrun count via the I<si_overrun> "
11767 "field of the I<siginfo_t> structure (see B<sigaction>(2)).  This allows an "
11768 "application to avoid the overhead of making a system call to obtain the "
11769 "overrun count, but is a nonportable extension to POSIX.1-2001."
11770 msgstr ""
11771
11772 #.  FIXME . Austin bug filed, 11 Feb 09
11773 #. type: Plain text
11774 #: build/C/man2/timer_getoverrun.2:115
11775 msgid ""
11776 "POSIX.1-2001 discusses timer overruns only in the context of timer "
11777 "notifications using signals."
11778 msgstr ""
11779
11780 #.  Bug filed: http://bugzilla.kernel.org/show_bug.cgi?id=12665
11781 #.  http://thread.gmane.org/gmane.linux.kernel/113276/
11782 #. type: Plain text
11783 #: build/C/man2/timer_getoverrun.2:128
11784 msgid ""
11785 "POSIX.1-2001 specifies that if the timer overrun count is equal to or "
11786 "greater than an implementation-defined maximum, B<DELAYTIMER_MAX>, then "
11787 "B<timer_getoverrun>()  should return B<DELAYTIMER_MAX>.  However, Linux does "
11788 "not implement this feature: instead, if the timer overrun value exceeds the "
11789 "maximum representable integer, the counter cycles, starting once more from "
11790 "low values."
11791 msgstr ""
11792
11793 #. type: Plain text
11794 #: build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212
11795 msgid "See B<timer_create>(2)."
11796 msgstr ""
11797
11798 #. type: Plain text
11799 #: build/C/man2/timer_getoverrun.2:141
11800 msgid ""
11801 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
11802 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
11803 "B<time>(7)"
11804 msgstr ""
11805 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
11806 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
11807 "B<time>(7)"
11808
11809 #. type: TH
11810 #: build/C/man2/timer_settime.2:26
11811 #, no-wrap
11812 msgid "TIMER_SETTIME"
11813 msgstr "TIMER_SETTIME"
11814
11815 #. type: TH
11816 #: build/C/man2/timer_settime.2:26
11817 #, no-wrap
11818 msgid "2012-10-15"
11819 msgstr "2012-10-15"
11820
11821 #. type: Plain text
11822 #: build/C/man2/timer_settime.2:30
11823 msgid ""
11824 "timer_settime, timer_gettime - arm/disarm and fetch state of POSIX per-"
11825 "process timer"
11826 msgstr ""
11827
11828 #. type: Plain text
11829 #: build/C/man2/timer_settime.2:38
11830 #, no-wrap
11831 msgid ""
11832 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
11833 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
11834 "B<                  struct itimerspec * >I<old_value>B<);>\n"
11835 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
11836 msgstr ""
11837 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
11838 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
11839 "B<                  struct itimerspec * >I<old_value>B<);>\n"
11840 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
11841
11842 #. type: Plain text
11843 #: build/C/man2/timer_settime.2:50
11844 msgid ""
11845 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11846 msgstr ""
11847 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11848
11849 #. type: Plain text
11850 #: build/C/man2/timer_settime.2:63
11851 msgid ""
11852 "B<timer_settime>()  arms or disarms the timer identified by I<timerid>.  The "
11853 "I<new_value> argument is pointer to an I<itimerspec> structure that "
11854 "specifies the new initial value and the new interval for the timer.  The "
11855 "I<itimerspec> structure is defined as follows:"
11856 msgstr ""
11857
11858 #. type: Plain text
11859 #: build/C/man2/timer_settime.2:70 build/C/man2/timerfd_create.2:128
11860 #, no-wrap
11861 msgid ""
11862 "struct timespec {\n"
11863 "    time_t tv_sec;                /* Seconds */\n"
11864 "    long   tv_nsec;               /* Nanoseconds */\n"
11865 "};\n"
11866 msgstr ""
11867 "struct timespec {\n"
11868 "    time_t tv_sec;                /* Seconds */\n"
11869 "    long   tv_nsec;               /* Nanoseconds */\n"
11870 "};\n"
11871
11872 #. type: Plain text
11873 #: build/C/man2/timer_settime.2:75
11874 #, no-wrap
11875 msgid ""
11876 "struct itimerspec {\n"
11877 "    struct timespec it_interval;  /* Timer interval */\n"
11878 "    struct timespec it_value;     /* Initial expiration */\n"
11879 "};\n"
11880 msgstr ""
11881 "struct itimerspec {\n"
11882 "    struct timespec it_interval;  /* Timer interval */\n"
11883 "    struct timespec it_value;     /* Initial expiration */\n"
11884 "};\n"
11885
11886 #. type: Plain text
11887 #: build/C/man2/timer_settime.2:87
11888 msgid ""
11889 "Each of the substructures of the I<itimerspec> structure is a I<timespec> "
11890 "structure that allows a time value to be specified in seconds and "
11891 "nanoseconds.  These time values are measured according to the clock that was "
11892 "specified when the timer was created by B<timer_create>(2)"
11893 msgstr ""
11894
11895 #. type: Plain text
11896 #: build/C/man2/timer_settime.2:101
11897 msgid ""
11898 "If I<new_value-E<gt>it_value> specifies a nonzero value (i.e., either "
11899 "subfield is nonzero), then B<timer_settime>()  arms (starts) the timer, "
11900 "setting it to initially expire at the given time.  (If the timer was already "
11901 "armed, then the previous settings are overwritten.)  If I<new_value-"
11902 "E<gt>it_value> specifies a zero value (i.e., both subfields are zero), then "
11903 "the timer is disarmed."
11904 msgstr ""
11905
11906 #. type: Plain text
11907 #: build/C/man2/timer_settime.2:113
11908 msgid ""
11909 "The I<new_value-E<gt>it_interval> field specifies the period of the timer, "
11910 "in seconds and nanoseconds.  If this field is nonzero, then each time that "
11911 "an armed timer expires, the timer is reloaded from the value specified in "
11912 "I<new_value-E<gt>it_interval>.  If I<new_value-E<gt>it_interval> specifies a "
11913 "zero value then the timer expires just once, at the time specified by "
11914 "I<it_value>."
11915 msgstr ""
11916
11917 #.  By experiment: the overrun count is set correctly, for CLOCK_REALTIME.
11918 #. type: Plain text
11919 #: build/C/man2/timer_settime.2:134
11920 msgid ""
11921 "By default, the initial expiration time specified in I<new_value-"
11922 "E<gt>it_value> is interpreted relative to the current time on the timer's "
11923 "clock at the time of the call.  This can be modified by specifying "
11924 "B<TIMER_ABSTIME> in I<flags>, in which case I<new_value-E<gt>it_value> is "
11925 "interpreted as an absolute value as measured on the timer's clock; that is, "
11926 "the timer will expire when the clock value reaches the value specified by "
11927 "I<new_value-E<gt>it_value>.  If the specified absolute time has already "
11928 "passed, then the timer expires immediately, and the overrun count (see "
11929 "B<timer_getoverrun>(2))  will be set correctly."
11930 msgstr ""
11931
11932 #.  Similar remarks might apply with respect to process and thread CPU time
11933 #.  clocks, but these clocks are not currently (2.6.28) settable on Linux.
11934 #. type: Plain text
11935 #: build/C/man2/timer_settime.2:144
11936 msgid ""
11937 "If the value of the B<CLOCK_REALTIME> clock is adjusted while an absolute "
11938 "timer based on that clock is armed, then the expiration of the timer will be "
11939 "appropriately adjusted.  Adjustments to the B<CLOCK_REALTIME> clock have no "
11940 "effect on relative timers based on that clock."
11941 msgstr ""
11942
11943 #. type: Plain text
11944 #: build/C/man2/timer_settime.2:153
11945 msgid ""
11946 "If I<old_value> is not NULL, then it points to a buffer that is used to "
11947 "return the previous interval of the timer (in I<old_value-"
11948 "E<gt>it_interval>)  and the amount of time until the timer would previously "
11949 "have next expired (in I<old_value-E<gt>it_value>)."
11950 msgstr ""
11951
11952 #. type: Plain text
11953 #: build/C/man2/timer_settime.2:173
11954 msgid ""
11955 "B<timer_gettime>()  returns the time until next expiration, and the "
11956 "interval, for the timer specified by I<timerid>, in the buffer pointed to by "
11957 "I<curr_value>.  The time remaining until the next timer expiration is "
11958 "returned in I<curr_value-E<gt>it_value>; this is always a relative value, "
11959 "regardless of whether the B<TIMER_ABSTIME> flag was used when arming the "
11960 "timer.  If the value returned in I<curr_value-E<gt>it_value> is zero, then "
11961 "the timer is currently disarmed.  The timer interval is returned in "
11962 "I<curr_value-E<gt>it_interval>.  If the value returned in I<curr_value-"
11963 "E<gt>it_interval> is zero, then this is a \"one-shot\" timer."
11964 msgstr ""
11965
11966 #. type: Plain text
11967 #: build/C/man2/timer_settime.2:182
11968 msgid ""
11969 "On success, B<timer_settime>()  and B<timer_gettime>()  return 0.  On error, "
11970 "-1 is returned, and I<errno> is set to indicate the error."
11971 msgstr ""
11972
11973 #. type: Plain text
11974 #: build/C/man2/timer_settime.2:184
11975 msgid "These functions may fail with the following errors:"
11976 msgstr ""
11977
11978 #. type: Plain text
11979 #: build/C/man2/timer_settime.2:191
11980 msgid "I<new_value>, I<old_value>, or I<curr_value> is not a valid pointer."
11981 msgstr ""
11982
11983 #.  FIXME . eventually: invalid value in flags
11984 #. type: Plain text
11985 #: build/C/man2/timer_settime.2:196
11986 msgid "I<timerid> is invalid."
11987 msgstr ""
11988
11989 #. type: Plain text
11990 #: build/C/man2/timer_settime.2:199
11991 msgid "B<timer_settime>()  may fail with the following errors:"
11992 msgstr ""
11993
11994 #. type: Plain text
11995 #: build/C/man2/timer_settime.2:205
11996 msgid ""
11997 "I<new_value.it_value> is negative; or I<new_value.it_value.tv_nsec> is "
11998 "negative or greater than 999,999,999."
11999 msgstr ""
12000
12001 #. type: Plain text
12002 #: build/C/man2/timer_settime.2:207
12003 msgid "These system calls are available since Linux 2.6."
12004 msgstr ""
12005
12006 #. type: Plain text
12007 #: build/C/man2/timer_settime.2:216
12008 msgid "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12009 msgstr "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12010
12011 #. type: TH
12012 #: build/C/man2/timerfd_create.2:21
12013 #, no-wrap
12014 msgid "TIMERFD_CREATE"
12015 msgstr "TIMERFD_CREATE"
12016
12017 #. type: TH
12018 #: build/C/man2/timerfd_create.2:21
12019 #, no-wrap
12020 msgid "2011-09-14"
12021 msgstr "2011-09-14"
12022
12023 #. type: Plain text
12024 #: build/C/man2/timerfd_create.2:25
12025 msgid ""
12026 "timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via "
12027 "file descriptors"
12028 msgstr ""
12029 "timerfd_create, timerfd_settime, timerfd_gettime - ファイルディスクリプタ経由"
12030 "で通知するタイマー"
12031
12032 #. type: Plain text
12033 #: build/C/man2/timerfd_create.2:28
12034 #, no-wrap
12035 msgid "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12036 msgstr "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12037
12038 #. type: Plain text
12039 #: build/C/man2/timerfd_create.2:30
12040 #, no-wrap
12041 msgid "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12042 msgstr "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12043
12044 #. type: Plain text
12045 #: build/C/man2/timerfd_create.2:34
12046 #, no-wrap
12047 msgid ""
12048 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12049 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12050 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12051 msgstr ""
12052 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12053 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12054 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12055
12056 #. type: Plain text
12057 #: build/C/man2/timerfd_create.2:36
12058 #, no-wrap
12059 msgid "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12060 msgstr "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12061
12062 #. type: Plain text
12063 #: build/C/man2/timerfd_create.2:49
12064 msgid ""
12065 "These system calls create and operate on a timer that delivers timer "
12066 "expiration notifications via a file descriptor.  They provide an alternative "
12067 "to the use of B<setitimer>(2)  or B<timer_create>(2), with the advantage "
12068 "that the file descriptor may be monitored by B<select>(2), B<poll>(2), and "
12069 "B<epoll>(7)."
12070 msgstr ""
12071 "これらのシステムコールは、満了通知をファイルディスクリプタ経由で配送する タイ"
12072 "マーの生成と操作を行う。 これらは、 B<setitimer>(2)  や B<timer_create>(2)  "
12073 "を用いる方法の代わりとなるものであり、このファイルディスクリプタを B<select>"
12074 "(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
12075
12076 #. type: Plain text
12077 #: build/C/man2/timerfd_create.2:61
12078 msgid ""
12079 "The use of these three system calls is analogous to the use of "
12080 "B<timer_create>(2), B<timer_settime>(2), and B<timer_gettime>(2).  (There is "
12081 "no analog of B<timer_getoverrun>(2), since that functionality is provided by "
12082 "B<read>(2), as described below.)"
12083 msgstr ""
12084 "これらのシステムコールを使うのは、それぞれ B<timer_create>(2), "
12085 "B<timer_settime>(2), B<timer_gettime>(2)  を使うのと同様である "
12086 "(B<timer_getoverrun>(2)  に対応するものはなく、以下で説明するように この機能"
12087 "は B<read>(2)  により提供される)。"
12088
12089 #. type: SS
12090 #: build/C/man2/timerfd_create.2:61
12091 #, no-wrap
12092 msgid "timerfd_create()"
12093 msgstr "timerfd_create()"
12094
12095 #. type: Plain text
12096 #: build/C/man2/timerfd_create.2:80
12097 msgid ""
12098 "B<timerfd_create>()  creates a new timer object, and returns a file "
12099 "descriptor that refers to that timer.  The I<clockid> argument specifies the "
12100 "clock that is used to mark the progress of the timer, and must be either "
12101 "B<CLOCK_REALTIME> or B<CLOCK_MONOTONIC>.  B<CLOCK_REALTIME> is a settable "
12102 "system-wide clock.  B<CLOCK_MONOTONIC> is a nonsettable clock that is not "
12103 "affected by discontinuous changes in the system clock (e.g., manual changes "
12104 "to system time).  The current value of each of these clocks can be retrieved "
12105 "using B<clock_gettime>(2)."
12106 msgstr ""
12107 "B<timerfd_create>()  は新規のタイマーオブジェクトを生成し、そのタイマーを参照"
12108 "するファイル ディスクリプタを返す。 I<clockid> 引き数は、タイマーの進捗を管理"
12109 "するためのクロックを指定するもので、 B<CLOCK_REALTIME> か B<CLOCK_MONOTONIC> "
12110 "のいずれかでなければならない。 B<CLOCK_REALTIME> はシステム全体で使用されるク"
12111 "ロックで、このクロックは変更可能である。 B<CLOCK_MONOTONIC> は変更されること"
12112 "のないクロックで、(システム時刻の手動での変更などの)  システムクロックの不連"
12113 "続な変化の影響を受けない。 これらのクロックの現在の値は B<clock_gettime>(2)  "
12114 "を使って取得できる。"
12115
12116 #. type: Plain text
12117 #: build/C/man2/timerfd_create.2:85
12118 msgid ""
12119 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
12120 "I<flags> to change the behavior of B<timerfd_create>():"
12121 msgstr ""
12122 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
12123 "ることで、 B<timerfd_create>()  の振舞いを変更することができる。"
12124
12125 #. type: TP
12126 #: build/C/man2/timerfd_create.2:85
12127 #, no-wrap
12128 msgid "B<TFD_NONBLOCK>"
12129 msgstr "B<TFD_NONBLOCK>"
12130
12131 #. type: TP
12132 #: build/C/man2/timerfd_create.2:93
12133 #, no-wrap
12134 msgid "B<TFD_CLOEXEC>"
12135 msgstr "B<TFD_CLOEXEC>"
12136
12137 #. type: Plain text
12138 #: build/C/man2/timerfd_create.2:107
12139 msgid ""
12140 "In Linux versions up to and including 2.6.26, I<flags> must be specified as "
12141 "zero."
12142 msgstr ""
12143 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
12144 "しなければならない。"
12145
12146 #. type: SS
12147 #: build/C/man2/timerfd_create.2:107
12148 #, no-wrap
12149 msgid "timerfd_settime()"
12150 msgstr "timerfd_settime()"
12151
12152 #. type: Plain text
12153 #: build/C/man2/timerfd_create.2:112
12154 msgid ""
12155 "B<timerfd_settime>()  arms (starts) or disarms (stops)  the timer referred "
12156 "to by the file descriptor I<fd>."
12157 msgstr ""
12158 "B<timerfd_settime>()  は、ファイルディスクリプタ I<fd> により参照されるタイ"
12159 "マーを開始したり停止したりする。"
12160
12161 #. type: Plain text
12162 #: build/C/man2/timerfd_create.2:121
12163 msgid ""
12164 "The I<new_value> argument specifies the initial expiration and interval for "
12165 "the timer.  The I<itimer> structure used for this argument contains two "
12166 "fields, each of which is in turn a structure of type I<timespec>:"
12167 msgstr ""
12168 "I<new_value> 引き数は、タイマーの満了時間 (expiration) の初期値と間隔 "
12169 "(interval) を 指定する。この引き数で使用されている I<itimerspec> 構造体には "
12170 "2 つのフィールドがあり、各フィールドは I<timespec> 型の構造体である。"
12171
12172 #. type: Plain text
12173 #: build/C/man2/timerfd_create.2:133
12174 #, no-wrap
12175 msgid ""
12176 "struct itimerspec {\n"
12177 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12178 "    struct timespec it_value;     /* Initial expiration */\n"
12179 "};\n"
12180 msgstr ""
12181 "struct itimerspec {\n"
12182 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12183 "    struct timespec it_value;     /* Initial expiration */\n"
12184 "};\n"
12185
12186 #. type: Plain text
12187 #: build/C/man2/timerfd_create.2:145
12188 msgid ""
12189 "I<new_value.it_value> specifies the initial expiration of the timer, in "
12190 "seconds and nanoseconds.  Setting either field of I<new_value.it_value> to a "
12191 "nonzero value arms the timer.  Setting both fields of I<new_value.it_value> "
12192 "to zero disarms the timer."
12193 msgstr ""
12194 "I<new_value.it_value> はタイマーの満了時間の初期値を、秒とナノ秒で指定する。 "
12195 "I<new_value.it_value> のフィールドのうち少なくとも一方に 0 以外の値を設定する"
12196 "と、 タイマーが開始される。 両方のフィールドに 0 を設定すると、タイマーが停止"
12197 "する。"
12198
12199 #. type: Plain text
12200 #: build/C/man2/timerfd_create.2:154
12201 msgid ""
12202 "Setting one or both fields of I<new_value.it_interval> to nonzero values "
12203 "specifies the period, in seconds and nanoseconds, for repeated timer "
12204 "expirations after the initial expiration.  If both fields of I<new_value."
12205 "it_interval> are zero, the timer expires just once, at the time specified by "
12206 "I<new_value.it_value>."
12207 msgstr ""
12208 "I<new_value.it_interval> はタイマーの一回目の満了後に繰り返しタイマーの満了間"
12209 "隔を、秒とナノ秒で指定する。 I<new_value.it_interval> のフィールドのうち少な"
12210 "くとも一方に 0 以外の値を設定すると、 繰り返しタイマーが有効になる。 両方の"
12211 "フィールドに 0 を設定した場合、タイマーは I<new_value.it_value> で指定された"
12212 "時間後に、一回だけ満了して停止する。"
12213
12214 #. type: Plain text
12215 #: build/C/man2/timerfd_create.2:170
12216 msgid ""
12217 "The I<flags> argument is either 0, to start a relative timer (I<new_value."
12218 "it_value> specifies a time relative to the current value of the clock "
12219 "specified by I<clockid>), or B<TFD_TIMER_ABSTIME>, to start an absolute "
12220 "timer (I<new_value.it_value> specifies an absolute time for the clock "
12221 "specified by I<clockid>; that is, the timer will expire when the value of "
12222 "that clock reaches the value specified in I<new_value.it_value>)."
12223 msgstr ""
12224 "I<flags> 引き数には 0 か B<TFD_TIMER_ABSTIME> を指定する。 0 は相対時刻\n"
12225 "タイマーを意味し、 I<new_value.it_value> では I<clockid> で指定された\n"
12226 "クロックの現在の値からの相対的な時刻を指定する。 B<TFD_TIMER_ABSTIME>\n"
12227 "は絶対時刻タイマーを意味し、 I<new_value.it_interval> では I<clockid>\n"
12228 "で指定されたクロックの絶対時刻を指定する。\n"
12229 "つまり、クロックの値が I<new_value.it_interval> で指定された時刻に\n"
12230 "達したら、タイマーが満了する。"
12231
12232 #. type: Plain text
12233 #: build/C/man2/timerfd_create.2:181
12234 msgid ""
12235 "If the I<old_value> argument is not NULL, then the I<itimerspec> structure "
12236 "that it points to is used to return the setting of the timer that was "
12237 "current at the time of the call; see the description of B<timerfd_gettime>"
12238 "()  following."
12239 msgstr ""
12240 "I<old_value> 引き数が NULL でない場合、 I<old_value> 引き数が指す\n"
12241 "I<itimerspec> 構造体は、 B<timerfd_settime>() を呼び出した時点での\n"
12242 "タイマーの設定を返すのに使用される。\n"
12243 "下記の B<timerfd_gettime>() の説明を参照。"
12244
12245 #. type: SS
12246 #: build/C/man2/timerfd_create.2:181
12247 #, no-wrap
12248 msgid "timerfd_gettime()"
12249 msgstr "timerfd_gettime()"
12250
12251 #. type: Plain text
12252 #: build/C/man2/timerfd_create.2:190
12253 msgid ""
12254 "B<timerfd_gettime>()  returns, in I<curr_value>, an I<itimerspec> structure "
12255 "that contains the current setting of the timer referred to by the file "
12256 "descriptor I<fd>."
12257 msgstr ""
12258 "B<timerfd_gettime>()  は、ファイルディスクリプタ I<fd> で参照されるタイマーの"
12259 "現在の設定が入った I<itimerspec> 構造体を、 I<curr_value> に格納して返す。"
12260
12261 #. type: Plain text
12262 #: build/C/man2/timerfd_create.2:200
12263 msgid ""
12264 "The I<it_value> field returns the amount of time until the timer will next "
12265 "expire.  If both fields of this structure are zero, then the timer is "
12266 "currently disarmed.  This field always contains a relative value, regardless "
12267 "of whether the B<TFD_TIMER_ABSTIME> flag was specified when setting the "
12268 "timer."
12269 msgstr ""
12270 "I<it_value> フィールドは、タイマーが次に満了するまでの残り時間を返す。 この構"
12271 "造体の両方のフィールドが 0 であれば、タイマーは現在停止している。 タイマー設"
12272 "定時に B<TFD_TIMER_ABSTIME> フラグが指定されたかに関わらず、このフィールドは"
12273 "常に相対値が格納される。"
12274
12275 #. type: Plain text
12276 #: build/C/man2/timerfd_create.2:207
12277 msgid ""
12278 "The I<it_interval> field returns the interval of the timer.  If both fields "
12279 "of this structure are zero, then the timer is set to expire just once, at "
12280 "the time specified by I<curr_value.it_value>."
12281 msgstr ""
12282 "I<it_interval> フィールドは、タイマーの間隔を返す。 この構造体の両方のフィー"
12283 "ルドが 0 であれば、タイマーは I<new_value.it_value> で指定された時間後に一回"
12284 "だけ満了して停止するように設定されている。"
12285
12286 #. type: SS
12287 #: build/C/man2/timerfd_create.2:207
12288 #, no-wrap
12289 msgid "Operating on a timer file descriptor"
12290 msgstr "タイマー・ファイルディスクリプタに対する操作"
12291
12292 #. type: Plain text
12293 #: build/C/man2/timerfd_create.2:211
12294 msgid ""
12295 "The file descriptor returned by B<timerfd_create>()  supports the following "
12296 "operations:"
12297 msgstr ""
12298 "B<timerfd_create>()  が返すファイルディスクリプタは以下の操作をサポートしてい"
12299 "る。"
12300
12301 #. type: Plain text
12302 #: build/C/man2/timerfd_create.2:225
12303 msgid ""
12304 "If the timer has already expired one or more times since its settings were "
12305 "last modified using B<timerfd_settime>(), or since the last successful "
12306 "B<read>(2), then the buffer given to B<read>(2)  returns an unsigned 8-byte "
12307 "integer (I<uint64_t>)  containing the number of expirations that have "
12308 "occurred.  (The returned value is in host byte order, i.e., the native byte "
12309 "order for integers on the host machine.)"
12310 msgstr ""
12311 "B<timerfd_settime>()  を使ってタイマーの設定が最後変更されて以降、または "
12312 "B<read>(2)  の呼び出しに最後に成功して以降に、タイマーの満了が一回以上発生し"
12313 "ていれば、 B<read>(2)  に渡されたバッファに、タイマー満了回数を示す 8 バイト"
12314 "の unsigned 型の整数 (I<uint64_t>)  が返される (返される値はホストバイトオー"
12315 "ダ、つまりそのホストマシンにおける 整数の通常のバイトオーダである)。"
12316
12317 #. type: Plain text
12318 #: build/C/man2/timerfd_create.2:238
12319 msgid ""
12320 "If no timer expirations have occurred at the time of the B<read>(2), then "
12321 "the call either blocks until the next timer expiration, or fails with the "
12322 "error B<EAGAIN> if the file descriptor has been made nonblocking (via the "
12323 "use of the B<fcntl>(2)  B<F_SETFL> operation to set the B<O_NONBLOCK> flag)."
12324 msgstr ""
12325 "B<read>(2)  を行った時点でタイマーの満了が発生していなければ、 B<read>(2)  は"
12326 "停止 (block) する、もしくはファイルディスクリプタが 非停止 (nonblocking) に設"
12327 "定されている場合はエラー B<EAGAIN> で失敗する (非停止モードにするには、 "
12328 "B<fcntl>(2)  の B<F_SETFL> 命令で B<O_NONBLOCK> フラグをセットする)。"
12329
12330 #. type: Plain text
12331 #: build/C/man2/timerfd_create.2:244
12332 msgid ""
12333 "A B<read>(2)  will fail with the error B<EINVAL> if the size of the supplied "
12334 "buffer is less than 8 bytes."
12335 msgstr ""
12336 "渡されたバッファの大きさが 8 バイト未満の場合、 B<read>(2)  はエラー "
12337 "B<EINVAL> で失敗する。"
12338
12339 #. type: Plain text
12340 #: build/C/man2/timerfd_create.2:255
12341 msgid ""
12342 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
12343 "B<poll>(2)  B<POLLIN> flag)  if one or more timer expirations have occurred."
12344 msgstr ""
12345 "一つ以上のタイマー満了が発生していれば、 ファイルディスクリプタは読み出し可能"
12346 "となる (B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラ"
12347 "グ)。"
12348
12349 #. type: Plain text
12350 #: build/C/man2/timerfd_create.2:262
12351 msgid ""
12352 "The file descriptor also supports the other file-descriptor multiplexing "
12353 "APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
12354 msgstr ""
12355 "このファイルディスクリプタは、他のファイルディスクリプタ多重 API である "
12356 "B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
12357
12358 #. type: Plain text
12359 #: build/C/man2/timerfd_create.2:269
12360 msgid ""
12361 "When the file descriptor is no longer required it should be closed.  When "
12362 "all file descriptors associated with the same timer object have been closed, "
12363 "the timer is disarmed and its resources are freed by the kernel."
12364 msgstr ""
12365 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
12366 "る。 同じ timer オブジェクトに関連付けられたファイルディスクリプタが全て ク"
12367 "ローズされると、そのタイマーは解除され、 そのオブジェクト用の資源がカーネルに"
12368 "より解放される。"
12369
12370 #. type: Plain text
12371 #: build/C/man2/timerfd_create.2:281
12372 msgid ""
12373 "After a B<fork>(2), the child inherits a copy of the file descriptor created "
12374 "by B<timerfd_create>().  The file descriptor refers to the same underlying "
12375 "timer object as the corresponding file descriptor in the parent, and B<read>"
12376 "(2)s in the child will return information about expirations of the timer."
12377 msgstr ""
12378 "B<fork>(2)  が行われると、子プロセスは B<timerfd_create>()  により生成された"
12379 "ファイルディスクリプタのコピーを 継承する。そのファイルディスクリプタは、親プ"
12380 "ロセスの対応する ファイルディスクリプタと同じタイマーオブジェクトを参照してお"
12381 "り、 子プロセスの B<read>(2)  でも同じタイマーの満了に関する情報が返される。"
12382
12383 #. type: Plain text
12384 #: build/C/man2/timerfd_create.2:287
12385 msgid ""
12386 "A file descriptor created by B<timerfd_create>()  is preserved across "
12387 "B<execve>(2), and continues to generate timer expirations if the timer was "
12388 "armed."
12389 msgstr ""
12390 "B<execve>(2)  の前後で B<timerfd_create>()  により生成されたファイルディスク"
12391 "リプタは保持され、 タイマーが開始されていた場合にはタイマーの満了が発生し続け"
12392 "る。"
12393
12394 #. type: Plain text
12395 #: build/C/man2/timerfd_create.2:294
12396 msgid ""
12397 "On success, B<timerfd_create>()  returns a new file descriptor.  On error, "
12398 "-1 is returned and I<errno> is set to indicate the error."
12399 msgstr ""
12400 "成功すると、 B<timerfd_create>()  は新しいファイルディスクリプタを返す。 エ"
12401 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12402
12403 #. type: Plain text
12404 #: build/C/man2/timerfd_create.2:302
12405 msgid ""
12406 "B<timerfd_settime>()  and B<timerfd_gettime>()  return 0 on success; on "
12407 "error they return -1, and set I<errno> to indicate the error."
12408 msgstr ""
12409 "B<timerfd_settime>()  と B<timerfd_gettime>()  は成功すると 0 を返す。 エラー"
12410 "の場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12411
12412 #. type: Plain text
12413 #: build/C/man2/timerfd_create.2:305
12414 msgid "B<timerfd_create>()  can fail with the following errors:"
12415 msgstr "B<timerfd_create>()  は以下のエラーで失敗する可能性がある。"
12416
12417 #. type: Plain text
12418 #: build/C/man2/timerfd_create.2:313
12419 msgid ""
12420 "The I<clockid> argument is neither B<CLOCK_MONOTONIC> nor B<CLOCK_REALTIME>;"
12421 msgstr ""
12422 "I<clockid> 引き数が B<CLOCK_MONOTONIC> でも B<CLOCK_REALTIME> でもない。"
12423
12424 #. type: Plain text
12425 #: build/C/man2/timerfd_create.2:333
12426 msgid "There was insufficient kernel memory to create the timer."
12427 msgstr "タイマーを作成するのに十分なカーネルメモリがなかった。"
12428
12429 #. type: Plain text
12430 #: build/C/man2/timerfd_create.2:338
12431 msgid ""
12432 "B<timerfd_settime>()  and B<timerfd_gettime>()  can fail with the following "
12433 "errors:"
12434 msgstr ""
12435 "B<timerfd_settime>()  と B<timerfd_gettime>()  は以下のエラーで失敗する可能性"
12436 "がある。"
12437
12438 #. type: Plain text
12439 #: build/C/man2/timerfd_create.2:342
12440 msgid "I<fd> is not a valid file descriptor."
12441 msgstr "I<fd> が有効なファイルディスクリプタでない。"
12442
12443 #. type: Plain text
12444 #: build/C/man2/timerfd_create.2:353
12445 msgid "I<fd> is not a valid timerfd file descriptor."
12446 msgstr "I<fd> が有効な timerfd ファイルディスクリプタでない。"
12447
12448 #. type: Plain text
12449 #: build/C/man2/timerfd_create.2:356
12450 msgid "B<timerfd_settime>()  can also fail with the following errors:"
12451 msgstr "B<timerfd_settime>()  は以下のエラーで失敗することもある。"
12452
12453 #. type: Plain text
12454 #: build/C/man2/timerfd_create.2:362
12455 msgid ""
12456 "I<new_value> is not properly initialized (one of the I<tv_nsec> falls "
12457 "outside the range zero to 999,999,999)."
12458 msgstr ""
12459 "I<new_value> が適切に初期化されていない (I<tv_nsec> の一つが 0 から "
12460 "999,999,999 までの範囲に入っていない)。"
12461
12462 #.  This case only checked since 2.6.29, and 2.2.2[78].some-stable-version.
12463 #.  In older kernel versions, no check was made for invalid flags.
12464 #. type: Plain text
12465 #: build/C/man2/timerfd_create.2:368
12466 msgid "I<flags> is invalid."
12467 msgstr "I<flags> が無効である。"
12468
12469 #. type: Plain text
12470 #: build/C/man2/timerfd_create.2:371
12471 msgid ""
12472 "These system calls are available on Linux since kernel 2.6.25.  Library "
12473 "support is provided by glibc since version 2.8."
12474 msgstr ""
12475 "これらのシステムコールはカーネル 2.6.25 以降の Linux で利用可能である。 ライ"
12476 "ブラリ側のサポートはバージョン 2.8 以降の glibc で提供されている。"
12477
12478 #.  2.6.29
12479 #. type: Plain text
12480 #: build/C/man2/timerfd_create.2:379
12481 msgid ""
12482 "Currently, B<timerfd_create>()  supports fewer types of clock IDs than "
12483 "B<timer_create>(2)."
12484 msgstr ""
12485 "現在のところ、 B<timerfd_create>()  が対応している clockid の種類は "
12486 "B<timer_create>(2)  よりも少ない。"
12487
12488 #. type: Plain text
12489 #: build/C/man2/timerfd_create.2:388
12490 msgid ""
12491 "The following program creates a timer and then monitors its progress.  The "
12492 "program accepts up to three command-line arguments.  The first argument "
12493 "specifies the number of seconds for the initial expiration of the timer.  "
12494 "The second argument specifies the interval for the timer, in seconds.  The "
12495 "third argument specifies the number of times the program should allow the "
12496 "timer to expire before terminating.  The second and third command-line "
12497 "arguments are optional."
12498 msgstr ""
12499 "以下のプログラムは、タイマーを作成し、その進捗をモニターするものである。 この"
12500 "プログラムは最大で 3 個のコマンドライン引き数を取り、 第一引き数ではタイマー"
12501 "の満了時間の初期値 (秒数単位) を、 第二引き数ではタイマーの間隔 (秒数単位) "
12502 "を、 第三引き数ではタイマーが何回満了したらプログラムが終了するかを指定す"
12503 "る。 第二引き数と第三引き数は省略可能である。"
12504
12505 #. type: Plain text
12506 #: build/C/man2/timerfd_create.2:390 build/C/man2/wait.2:569
12507 msgid "The following shell session demonstrates the use of the program:"
12508 msgstr "以下のシェルのセッションはこのプログラムの使用例を示したものである。"
12509
12510 #. type: Plain text
12511 #: build/C/man2/timerfd_create.2:405
12512 #, no-wrap
12513 msgid ""
12514 "$B< a.out 3 1 100>\n"
12515 "0.000: timer started\n"
12516 "3.000: read: 1; total=1\n"
12517 "4.000: read: 1; total=2\n"
12518 "B<^Z >                 # type control-Z to suspend the program\n"
12519 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12520 "$ B<fg>                # Resume execution after a few seconds\n"
12521 "a.out 3 1 100\n"
12522 "9.660: read: 5; total=7\n"
12523 "10.000: read: 1; total=8\n"
12524 "11.000: read: 1; total=9\n"
12525 "B<^C >                 # type control-C to suspend the program\n"
12526 msgstr ""
12527 "$B< a.out 3 1 100>\n"
12528 "0.000: timer started\n"
12529 "3.000: read: 1; total=1\n"
12530 "4.000: read: 1; total=2\n"
12531 "B<^Z >                 # type control-Z to suspend the program\n"
12532 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12533 "$ B<fg>                # Resume execution after a few seconds\n"
12534 "a.out 3 1 100\n"
12535 "9.660: read: 5; total=7\n"
12536 "10.000: read: 1; total=8\n"
12537 "11.000: read: 1; total=9\n"
12538 "B<^C >                 # type control-C to suspend the program\n"
12539
12540 #.  The commented out code here is what we currently need until
12541 #.  the required stuff is in glibc
12542 #. /* Link with -lrt */
12543 #. #define _GNU_SOURCE
12544 #. #include <sys/syscall.h>
12545 #. #include <unistd.h>
12546 #. #include <time.h>
12547 #. #if defined(__i386__)
12548 #. #define __NR_timerfd_create 322
12549 #. #define __NR_timerfd_settime 325
12550 #. #define __NR_timerfd_gettime 326
12551 #. #endif
12552 #. static int
12553 #. timerfd_create(int clockid, int flags)
12554 #. {
12555 #.     return syscall(__NR_timerfd_create, clockid, flags);
12556 #. }
12557 #. static int
12558 #. timerfd_settime(int fd, int flags, struct itimerspec *new_value,
12559 #.         struct itimerspec *curr_value)
12560 #. {
12561 #.     return syscall(__NR_timerfd_settime, fd, flags, new_value,
12562 #.                    curr_value);
12563 #. }
12564 #. static int
12565 #. timerfd_gettime(int fd, struct itimerspec *curr_value)
12566 #. {
12567 #.     return syscall(__NR_timerfd_gettime, fd, curr_value);
12568 #. }
12569 #. #define TFD_TIMER_ABSTIME (1 << 0)
12570 #. ////////////////////////////////////////////////////////////
12571 #. type: Plain text
12572 #: build/C/man2/timerfd_create.2:454
12573 #, no-wrap
12574 msgid ""
12575 "#include E<lt>sys/timerfd.hE<gt>\n"
12576 "#include E<lt>time.hE<gt>\n"
12577 "#include E<lt>unistd.hE<gt>\n"
12578 "#include E<lt>stdlib.hE<gt>\n"
12579 "#include E<lt>stdio.hE<gt>\n"
12580 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12581 msgstr ""
12582 "#include E<lt>sys/timerfd.hE<gt>\n"
12583 "#include E<lt>time.hE<gt>\n"
12584 "#include E<lt>unistd.hE<gt>\n"
12585 "#include E<lt>stdlib.hE<gt>\n"
12586 "#include E<lt>stdio.hE<gt>\n"
12587 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12588
12589 #. type: Plain text
12590 #: build/C/man2/timerfd_create.2:457
12591 #, no-wrap
12592 msgid ""
12593 "#define handle_error(msg) \\e\n"
12594 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
12595 msgstr ""
12596 "#define handle_error(msg) \\e\n"
12597 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
12598
12599 #. type: Plain text
12600 #: build/C/man2/timerfd_create.2:465
12601 #, no-wrap
12602 msgid ""
12603 "static void\n"
12604 "print_elapsed_time(void)\n"
12605 "{\n"
12606 "    static struct timespec start;\n"
12607 "    struct timespec curr;\n"
12608 "    static int first_call = 1;\n"
12609 "    int secs, nsecs;\n"
12610 msgstr ""
12611 "static void\n"
12612 "print_elapsed_time(void)\n"
12613 "{\n"
12614 "    static struct timespec start;\n"
12615 "    struct timespec curr;\n"
12616 "    static int first_call = 1;\n"
12617 "    int secs, nsecs;\n"
12618
12619 #. type: Plain text
12620 #: build/C/man2/timerfd_create.2:471
12621 #, no-wrap
12622 msgid ""
12623 "    if (first_call) {\n"
12624 "        first_call = 0;\n"
12625 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
12626 "            handle_error(\"clock_gettime\");\n"
12627 "    }\n"
12628 msgstr ""
12629 "    if (first_call) {\n"
12630 "        first_call = 0;\n"
12631 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
12632 "            handle_error(\"clock_gettime\");\n"
12633 "    }\n"
12634
12635 #. type: Plain text
12636 #: build/C/man2/timerfd_create.2:474
12637 #, no-wrap
12638 msgid ""
12639 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
12640 "        handle_error(\"clock_gettime\");\n"
12641 msgstr ""
12642 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
12643 "        handle_error(\"clock_gettime\");\n"
12644
12645 #. type: Plain text
12646 #: build/C/man2/timerfd_create.2:483
12647 #, no-wrap
12648 msgid ""
12649 "    secs = curr.tv_sec - start.tv_sec;\n"
12650 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
12651 "    if (nsecs E<lt> 0) {\n"
12652 "        secs--;\n"
12653 "        nsecs += 1000000000;\n"
12654 "    }\n"
12655 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
12656 "}\n"
12657 msgstr ""
12658 "    secs = curr.tv_sec - start.tv_sec;\n"
12659 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
12660 "    if (nsecs E<lt> 0) {\n"
12661 "        secs--;\n"
12662 "        nsecs += 1000000000;\n"
12663 "    }\n"
12664 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
12665 "}\n"
12666
12667 #. type: Plain text
12668 #: build/C/man2/timerfd_create.2:492
12669 #, no-wrap
12670 msgid ""
12671 "int\n"
12672 "main(int argc, char *argv[])\n"
12673 "{\n"
12674 "    struct itimerspec new_value;\n"
12675 "    int max_exp, fd;\n"
12676 "    struct timespec now;\n"
12677 "    uint64_t exp, tot_exp;\n"
12678 "    ssize_t s;\n"
12679 msgstr ""
12680 "int\n"
12681 "main(int argc, char *argv[])\n"
12682 "{\n"
12683 "    struct itimerspec new_value;\n"
12684 "    int max_exp, fd;\n"
12685 "    struct timespec now;\n"
12686 "    uint64_t exp, tot_exp;\n"
12687 "    ssize_t s;\n"
12688
12689 #. type: Plain text
12690 #: build/C/man2/timerfd_create.2:498
12691 #, no-wrap
12692 msgid ""
12693 "    if ((argc != 2) && (argc != 4)) {\n"
12694 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
12695 "                argv[0]);\n"
12696 "        exit(EXIT_FAILURE);\n"
12697 "    }\n"
12698 msgstr ""
12699 "    if ((argc != 2) && (argc != 4)) {\n"
12700 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
12701 "                argv[0]);\n"
12702 "        exit(EXIT_FAILURE);\n"
12703 "    }\n"
12704
12705 #. type: Plain text
12706 #: build/C/man2/timerfd_create.2:501
12707 #, no-wrap
12708 msgid ""
12709 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
12710 "        handle_error(\"clock_gettime\");\n"
12711 msgstr ""
12712 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
12713 "        handle_error(\"clock_gettime\");\n"
12714
12715 #. type: Plain text
12716 #: build/C/man2/timerfd_create.2:504
12717 #, no-wrap
12718 msgid ""
12719 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
12720 "       expiration and interval as specified in command line */\n"
12721 msgstr ""
12722 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
12723 "       expiration and interval as specified in command line */\n"
12724
12725 #. type: Plain text
12726 #: build/C/man2/timerfd_create.2:515
12727 #, no-wrap
12728 msgid ""
12729 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
12730 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
12731 "    if (argc == 2) {\n"
12732 "        new_value.it_interval.tv_sec = 0;\n"
12733 "        max_exp = 1;\n"
12734 "    } else {\n"
12735 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
12736 "        max_exp = atoi(argv[3]);\n"
12737 "    }\n"
12738 "    new_value.it_interval.tv_nsec = 0;\n"
12739 msgstr ""
12740 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
12741 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
12742 "    if (argc == 2) {\n"
12743 "        new_value.it_interval.tv_sec = 0;\n"
12744 "        max_exp = 1;\n"
12745 "    } else {\n"
12746 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
12747 "        max_exp = atoi(argv[3]);\n"
12748 "    }\n"
12749 "    new_value.it_interval.tv_nsec = 0;\n"
12750
12751 #. type: Plain text
12752 #: build/C/man2/timerfd_create.2:519
12753 #, no-wrap
12754 msgid ""
12755 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
12756 "    if (fd == -1)\n"
12757 "        handle_error(\"timerfd_create\");\n"
12758 msgstr ""
12759 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
12760 "    if (fd == -1)\n"
12761 "        handle_error(\"timerfd_create\");\n"
12762
12763 #. type: Plain text
12764 #: build/C/man2/timerfd_create.2:522
12765 #, no-wrap
12766 msgid ""
12767 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
12768 "        handle_error(\"timerfd_settime\");\n"
12769 msgstr ""
12770 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
12771 "        handle_error(\"timerfd_settime\");\n"
12772
12773 #. type: Plain text
12774 #: build/C/man2/timerfd_create.2:525
12775 #, no-wrap
12776 msgid ""
12777 "    print_elapsed_time();\n"
12778 "    printf(\"timer started\\en\");\n"
12779 msgstr ""
12780 "    print_elapsed_time();\n"
12781 "    printf(\"timer started\\en\");\n"
12782
12783 #. type: Plain text
12784 #: build/C/man2/timerfd_create.2:530
12785 #, no-wrap
12786 msgid ""
12787 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
12788 "        s = read(fd, &exp, sizeof(uint64_t));\n"
12789 "        if (s != sizeof(uint64_t))\n"
12790 "            handle_error(\"read\");\n"
12791 msgstr ""
12792 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
12793 "        s = read(fd, &exp, sizeof(uint64_t));\n"
12794 "        if (s != sizeof(uint64_t))\n"
12795 "            handle_error(\"read\");\n"
12796
12797 #. type: Plain text
12798 #: build/C/man2/timerfd_create.2:537
12799 #, no-wrap
12800 msgid ""
12801 "        tot_exp += exp;\n"
12802 "        print_elapsed_time();\n"
12803 "        printf(\"read: %llu; total=%llu\\en\",\n"
12804 "                (unsigned long long) exp,\n"
12805 "                (unsigned long long) tot_exp);\n"
12806 "    }\n"
12807 msgstr ""
12808 "        tot_exp += exp;\n"
12809 "        print_elapsed_time();\n"
12810 "        printf(\"read: %llu; total=%llu\\en\",\n"
12811 "                (unsigned long long) exp,\n"
12812 "                (unsigned long long) tot_exp);\n"
12813 "    }\n"
12814
12815 #. type: Plain text
12816 #: build/C/man2/timerfd_create.2:553
12817 msgid ""
12818 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
12819 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), B<timer_settime>"
12820 "(2), B<epoll>(7), B<time>(7)"
12821 msgstr ""
12822 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
12823 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), B<timer_settime>"
12824 "(2), B<epoll>(7), B<time>(7)"
12825
12826 #. type: TH
12827 #: build/C/man2/tkill.2:29
12828 #, no-wrap
12829 msgid "TKILL"
12830 msgstr "TKILL"
12831
12832 #. type: Plain text
12833 #: build/C/man2/tkill.2:32
12834 msgid "tkill, tgkill - send a signal to a thread"
12835 msgstr "tkill, tgkill - スレッドにシグナルを送る"
12836
12837 #. type: Plain text
12838 #: build/C/man2/tkill.2:35
12839 #, no-wrap
12840 msgid "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
12841 msgstr "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
12842
12843 #. type: Plain text
12844 #: build/C/man2/tkill.2:37
12845 #, no-wrap
12846 msgid "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
12847 msgstr "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
12848
12849 #. type: Plain text
12850 #: build/C/man2/tkill.2:54
12851 msgid ""
12852 "B<tgkill>()  sends the signal I<sig> to the thread with the thread ID I<tid> "
12853 "in the thread group I<tgid>.  (By contrast, B<kill>(2)  can be used to send "
12854 "a signal only to a process (i.e., thread group)  as a whole, and the signal "
12855 "will be delivered to an arbitrary thread within that process.)"
12856 msgstr ""
12857 "B<tgkill>()  はスレッド・グループ I<tgid> に属するスレッド ID が I<tid> のス"
12858 "レッドにシグナル I<sig> を送る。 (これに対し、 B<kill>(2)  は一つのプロセス "
12859 "(すなわち、スレッド・グループ) にまとめてシグナルを 送るのにだけ利用できる。 "
12860 "B<kill>(2)  で送信されたシグナルはプロセス内の任意のスレッドに配送される。)"
12861
12862 #.  FIXME: Maybe say something about the following:
12863 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=12889
12864 #.      Rich Felker <bugdal@aerifal.cx>
12865 #.      There is a race condition in pthread_kill: it is possible that,
12866 #.      between the time pthread_kill reads the pid/tid from the target
12867 #.      thread descriptor and the time it makes the tgkill syscall,
12868 #.      the target thread terminates and the same tid gets assigned
12869 #.      to a new thread in the same process.
12870 #.      (The tgkill syscall was designed to eliminate a similar race
12871 #.      condition in tkill, but it only succeeded in eliminating races
12872 #.      where the tid gets reused in a different process, and does not
12873 #.      help if the same tid gets assigned to a new thread in the
12874 #.      same process.)
12875 #.      The only solution I can see is to introduce a mutex that ensures
12876 #.      that a thread cannot exit while pthread_kill is being called on it.
12877 #.      Note that in most real-world situations, like almost all race
12878 #.      conditions, this one will be extremely rare. To make it
12879 #.      measurable, one could exhaust all but 1-2 available pid values,
12880 #.      possibly by lowering the max pid parameter in /proc, forcing
12881 #.      the same tid to be reused rapidly.
12882 #. type: Plain text
12883 #: build/C/man2/tkill.2:85
12884 msgid ""
12885 "B<tkill>()  is an obsolete predecessor to B<tgkill>().  It allows only the "
12886 "target thread ID to be specified, which may result in the wrong thread being "
12887 "signaled if a thread terminates and its thread ID is recycled.  Avoid using "
12888 "this system call."
12889 msgstr ""
12890 "B<tkill>()  はもう使われなくなった B<tgkill>()  の先祖である。 B<tkill>()  で"
12891 "はシグナルの送り先のスレッド ID しか指定できない。 そのため、スレッドが終了し"
12892 "て、そのスレッド ID が再利用される場合に、 意図しないスレッドにシグナルが送ら"
12893 "れる可能性がある。 このシステムコールの使用は避けること。"
12894
12895 #. type: Plain text
12896 #: build/C/man2/tkill.2:92
12897 msgid ""
12898 "If I<tgid> is specified as -1, B<tgkill>()  is equivalent to B<tkill>()."
12899 msgstr ""
12900 "I<tgid> に -1 が指定された場合、 B<tgkill>()  は B<tkill>()  と等価である。"
12901
12902 #. type: Plain text
12903 #: build/C/man2/tkill.2:95
12904 msgid ""
12905 "These are the raw system call interfaces, meant for internal thread library "
12906 "use."
12907 msgstr ""
12908 "これらはシステムコールへの直接のインターフェースであり、 スレッド・ライブラリ"
12909 "内部での使用を意図したものである。"
12910
12911 #. type: Plain text
12912 #: build/C/man2/tkill.2:103
12913 msgid "An invalid thread ID, thread group ID, or signal was specified."
12914 msgstr "指定されたスレッド ID、スレッドグループ ID、シグナルが不正であった。"
12915
12916 #. type: Plain text
12917 #: build/C/man2/tkill.2:108
12918 msgid "Permission denied.  For the required permissions, see B<kill>(2)."
12919 msgstr ""
12920 "許可がなかった。どのような許可が必要かについては、 B<kill>(2)  を参照のこと。"
12921
12922 #. type: Plain text
12923 #: build/C/man2/tkill.2:111
12924 msgid "No process with the specified thread ID (and thread group ID) exists."
12925 msgstr ""
12926 "指定されたスレッドID (とスレッド・グループID) を持つプロセスが存在しない。"
12927
12928 #. type: Plain text
12929 #: build/C/man2/tkill.2:116
12930 msgid ""
12931 "B<tkill>()  is supported since Linux 2.4.19 / 2.5.4.  B<tgkill>()  was added "
12932 "in Linux 2.5.75."
12933 msgstr ""
12934 "B<tkill>()  は Linux 2.4.19 / 2.5.4 以降でサポートされ、 B<tgkill>()  は "
12935 "Linux 2.5.75 で追加された。"
12936
12937 #. type: Plain text
12938 #: build/C/man2/tkill.2:122
12939 msgid ""
12940 "B<tkill>()  and B<tgkill>()  are Linux-specific and should not be used in "
12941 "programs that are intended to be portable."
12942 msgstr ""
12943 "B<tkill>()  と B<tgkill>()  は Linux 固有であり、 移植を想定したプログラムで"
12944 "は使用すべきではない。"
12945
12946 #. type: Plain text
12947 #: build/C/man2/tkill.2:128
12948 msgid ""
12949 "See the description of B<CLONE_THREAD> in B<clone>(2)  for an explanation of "
12950 "thread groups."
12951 msgstr ""
12952 "スレッド・グループの説明については B<clone>(2)  の B<CLONE_THREAD> の説明を参"
12953 "照のこと。"
12954
12955 #. type: Plain text
12956 #: build/C/man2/tkill.2:131
12957 msgid ""
12958 "Glibc does not provide wrappers for these system calls; call them using "
12959 "B<syscall>(2)."
12960 msgstr ""
12961 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
12962 "B<syscall>(2)  を使って呼び出すこと。"
12963
12964 #. type: Plain text
12965 #: build/C/man2/tkill.2:136
12966 msgid "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
12967 msgstr "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
12968
12969 #. type: TH
12970 #: build/C/man2/wait.2:49
12971 #, no-wrap
12972 msgid "WAIT"
12973 msgstr "WAIT"
12974
12975 #. type: Plain text
12976 #: build/C/man2/wait.2:52
12977 msgid "wait, waitpid, waitid - wait for process to change state"
12978 msgstr "wait, waitpid, waitid - プロセスの状態変化を待つ"
12979
12980 #. type: Plain text
12981 #: build/C/man2/wait.2:54
12982 msgid "B<#include E<lt>sys/types.hE<gt>>"
12983 msgstr "B<#include E<lt>sys/types.hE<gt>>"
12984
12985 #. type: Plain text
12986 #: build/C/man2/wait.2:56
12987 msgid "B<#include E<lt>sys/wait.hE<gt>>"
12988 msgstr "B<#include E<lt>sys/wait.hE<gt>>"
12989
12990 #. type: Plain text
12991 #: build/C/man2/wait.2:58
12992 msgid "B<pid_t wait(int *>I<status>B<);>"
12993 msgstr "B<pid_t wait(int *>I<status>B<);>"
12994
12995 #. type: Plain text
12996 #: build/C/man2/wait.2:60
12997 msgid ""
12998 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
12999 msgstr ""
13000 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
13001
13002 #. type: Plain text
13003 #: build/C/man2/wait.2:65
13004 #, no-wrap
13005 msgid ""
13006 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, int >I<options>B<);>\n"
13007 "                /* This is the glibc and POSIX interface; see\n"
13008 "                   NOTES for information on the raw system call. */\n"
13009 msgstr ""
13010
13011 #. type: Plain text
13012 #: build/C/man2/wait.2:74
13013 msgid "B<waitid>():"
13014 msgstr "B<waitid>():"
13015
13016 #. type: Plain text
13017 #: build/C/man2/wait.2:78
13018 msgid ""
13019 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13020 "_XOPEN_SOURCE_EXTENDED"
13021 msgstr ""
13022 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13023 "_XOPEN_SOURCE_EXTENDED"
13024
13025 #. type: Plain text
13026 #: build/C/man2/wait.2:93
13027 msgid ""
13028 "All of these system calls are used to wait for state changes in a child of "
13029 "the calling process, and obtain information about the child whose state has "
13030 "changed.  A state change is considered to be: the child terminated; the "
13031 "child was stopped by a signal; or the child was resumed by a signal.  In the "
13032 "case of a terminated child, performing a wait allows the system to release "
13033 "the resources associated with the child; if a wait is not performed, then "
13034 "the terminated child remains in a \"zombie\" state (see NOTES below)."
13035 msgstr ""
13036 "これらのシステムコールはいずれも、呼び出し元プロセスの子プロセスの 状態変化を"
13037 "待ち、状態が変化したその子プロセスの情報を取得するのに 使用される。 状態変化"
13038 "とは以下のいずれかである: 子プロセスの終了、シグナルによる子プロセスの停止、 "
13039 "シグナルによる子プロセスの再開。 子プロセスが終了した場合は、wait を実行する"
13040 "ことで、 システムがその子プロセスに関連するリソースを解放できるようになる。 "
13041 "wait が実行されなかった場合には、終了した子プロセスは 「ゾンビ」状態で残り続"
13042 "ける (下記の注意の章を参照のこと)。"
13043
13044 #. type: Plain text
13045 #: build/C/man2/wait.2:105
13046 msgid ""
13047 "If a child has already changed state, then these calls return immediately.  "
13048 "Otherwise they block until either a child changes state or a signal handler "
13049 "interrupts the call (assuming that system calls are not automatically "
13050 "restarted using the B<SA_RESTART> flag of B<sigaction>(2)).  In the "
13051 "remainder of this page, a child whose state has changed and which has not "
13052 "yet been waited upon by one of these system calls is termed I<waitable>."
13053 msgstr ""
13054 "子プロセスの状態変化がすでに発生していた場合、これらのコールは すぐに復帰す"
13055 "る。それ以外の場合は、子プロセスの状態変化が起こるか、 シグナルハンドラにより"
13056 "システムコールが中断されるまで、 停止 (block) する (後者は、 B<sigaction>"
13057 "(2)  の B<SA_RESTART> フラグによりシステムコールが自動的に再スタートするよう"
13058 "になっていない 場合の動作である)。 以下の説明では、状態変化が起こったがこれら"
13059 "のシステムコールのいずれかに よって待たれていない子プロセスを I<waitable> (待"
13060 "ち可能) と呼ぶ。"
13061
13062 #. type: SS
13063 #: build/C/man2/wait.2:105
13064 #, no-wrap
13065 msgid "wait() and waitpid()"
13066 msgstr "wait() と waitpid()"
13067
13068 #. type: Plain text
13069 #: build/C/man2/wait.2:113
13070 msgid ""
13071 "The B<wait>()  system call suspends execution of the calling process until "
13072 "one of its children terminates.  The call I<wait(&status)> is equivalent to:"
13073 msgstr ""
13074 "B<wait>()  システムコールは、子プロセスのいずれかが終了するまで 呼び出し元の"
13075 "プロセスの実行を一時停止する。 呼び出し I<wait(&status)> は以下と等価である:"
13076
13077 #. type: Plain text
13078 #: build/C/man2/wait.2:116
13079 #, no-wrap
13080 msgid "    waitpid(-1, &status, 0);\n"
13081 msgstr "    waitpid(-1, &status, 0);\n"
13082
13083 #. type: Plain text
13084 #: build/C/man2/wait.2:130
13085 msgid ""
13086 "The B<waitpid>()  system call suspends execution of the calling process "
13087 "until a child specified by I<pid> argument has changed state.  By default, "
13088 "B<waitpid>()  waits only for terminated children, but this behavior is "
13089 "modifiable via the I<options> argument, as described below."
13090 msgstr ""
13091 "B<waitpid>()  システムコールは、 I<pid> 引き数で指定した子プロセスの状態変化"
13092 "が起こるまで、 呼び出し元のプロセスの実行を一時停止する。デフォルトでは、 "
13093 "B<waitpid>()  は子プロセスの終了だけを待つが、この動作は I<options> 引き数に"
13094 "より変更可能である。"
13095
13096 #. type: Plain text
13097 #: build/C/man2/wait.2:134
13098 msgid "The value of I<pid> can be:"
13099 msgstr "I<pid> に指定できる値は以下の通り:"
13100
13101 #. type: IP
13102 #: build/C/man2/wait.2:134
13103 #, no-wrap
13104 msgid "E<lt> -1"
13105 msgstr "E<lt> -1"
13106
13107 #. type: Plain text
13108 #: build/C/man2/wait.2:138
13109 msgid ""
13110 "meaning wait for any child process whose process group ID is equal to the "
13111 "absolute value of I<pid>."
13112 msgstr ""
13113 "プロセスグループID が I<pid> の絶対値に等しい子プロセスのいずれかが終了するま"
13114 "でを待つ。"
13115
13116 #. type: IP
13117 #: build/C/man2/wait.2:138
13118 #, no-wrap
13119 msgid "-1"
13120 msgstr "-1"
13121
13122 #. type: Plain text
13123 #: build/C/man2/wait.2:140
13124 msgid "meaning wait for any child process."
13125 msgstr "子プロセスのどれかが終了するまで待つ。"
13126
13127 #. type: IP
13128 #: build/C/man2/wait.2:140
13129 #, no-wrap
13130 msgid "0"
13131 msgstr "0"
13132
13133 #. type: Plain text
13134 #: build/C/man2/wait.2:143
13135 msgid ""
13136 "meaning wait for any child process whose process group ID is equal to that "
13137 "of the calling process."
13138 msgstr ""
13139 "プロセスグループID が呼び出したプロセスのものと等しい 子プロセスを待つ。"
13140
13141 #. type: IP
13142 #: build/C/man2/wait.2:143
13143 #, no-wrap
13144 msgid "E<gt> 0"
13145 msgstr "E<gt> 0"
13146
13147 #. type: Plain text
13148 #: build/C/man2/wait.2:147
13149 msgid ""
13150 "meaning wait for the child whose process ID is equal to the value of I<pid>."
13151 msgstr "プロセスID が I<pid> に等しい子プロセスを待つ。"
13152
13153 #. type: Plain text
13154 #: build/C/man2/wait.2:151
13155 msgid ""
13156 "The value of I<options> is an OR of zero or more of the following constants:"
13157 msgstr "I<options> の値は次の定数の 0 個以上の論理和である:"
13158
13159 #. type: TP
13160 #: build/C/man2/wait.2:151 build/C/man2/wait.2:280
13161 #, no-wrap
13162 msgid "B<WNOHANG>"
13163 msgstr "B<WNOHANG>"
13164
13165 #. type: Plain text
13166 #: build/C/man2/wait.2:154
13167 msgid "return immediately if no child has exited."
13168 msgstr "状態変化が起こった子プロセスがない場合にすぐに復帰する。"
13169
13170 #. type: TP
13171 #: build/C/man2/wait.2:154
13172 #, no-wrap
13173 msgid "B<WUNTRACED>"
13174 msgstr "B<WUNTRACED>"
13175
13176 #. type: Plain text
13177 #: build/C/man2/wait.2:163
13178 msgid ""
13179 "also return if a child has stopped (but not traced via B<ptrace>(2)).  "
13180 "Status for I<traced> children which have stopped is provided even if this "
13181 "option is not specified."
13182 msgstr ""
13183 "子プロセスが停止した場合にも復帰する (子プロセスが B<ptrace>(2)  でトレースさ"
13184 "れている場合は除く)。 このオプションが指定されていない場合でも、停止したプロ"
13185 "セスが 「トレース (traced)」されていれば、子プロセスの状態が報告される。"
13186
13187 #. type: TP
13188 #: build/C/man2/wait.2:163
13189 #, no-wrap
13190 msgid "B<WCONTINUED> (since Linux 2.6.10)"
13191 msgstr "B<WCONTINUED> (Linux 2.6.10 以降)"
13192
13193 #. type: Plain text
13194 #: build/C/man2/wait.2:167
13195 msgid ""
13196 "also return if a stopped child has been resumed by delivery of B<SIGCONT>."
13197 msgstr "停止した子プロセスが B<SIGCONT> の配送により再開した場合にも復帰する。"
13198
13199 #. type: Plain text
13200 #: build/C/man2/wait.2:169
13201 msgid "(For Linux-only options, see below.)"
13202 msgstr "(Linux 専用オプションについては後述する)"
13203
13204 #. type: Plain text
13205 #: build/C/man2/wait.2:183
13206 msgid ""
13207 "If I<status> is not NULL, B<wait>()  and B<waitpid>()  store status "
13208 "information in the I<int> to which it points.  This integer can be inspected "
13209 "with the following macros (which take the integer itself as an argument, not "
13210 "a pointer to it, as is done in B<wait>()  and B<waitpid>()!):"
13211 msgstr ""
13212 "I<status> が NULL でなければ、 B<wait>()  や B<waitpid>()  は I<status> で指"
13213 "す I<int> に状態情報を格納する。 この整数は以下のマクロを使って検査できる。 "
13214 "(これらのマクロの引き数には、 B<wait>()  や B<waitpid>()  が書き込んだ整数そ"
13215 "のものを指定する。ポインタではない!)"
13216
13217 #. type: TP
13218 #: build/C/man2/wait.2:183
13219 #, no-wrap
13220 msgid "B<WIFEXITED(>I<status>B<)>"
13221 msgstr "B<WIFEXITED(>I<status>B<)>"
13222
13223 #. type: Plain text
13224 #: build/C/man2/wait.2:191
13225 msgid ""
13226 "returns true if the child terminated normally, that is, by calling B<exit>"
13227 "(3)  or B<_exit>(2), or by returning from main()."
13228 msgstr ""
13229 "子プロセスが正常に終了した場合に真を返す。 「正常に」とは、 B<exit>(3)  か "
13230 "B<_exit>(2)  が呼び出された場合、もしくは main() から復帰した場合である。"
13231
13232 #. type: TP
13233 #: build/C/man2/wait.2:191
13234 #, no-wrap
13235 msgid "B<WEXITSTATUS(>I<status>B<)>"
13236 msgstr "B<WEXITSTATUS(>I<status>B<)>"
13237
13238 #. type: Plain text
13239 #: build/C/man2/wait.2:204
13240 msgid ""
13241 "returns the exit status of the child.  This consists of the least "
13242 "significant 8 bits of the I<status> argument that the child specified in a "
13243 "call to B<exit>(3)  or B<_exit>(2)  or as the argument for a return "
13244 "statement in main().  This macro should be employed only if B<WIFEXITED> "
13245 "returned true."
13246 msgstr ""
13247 "子プロセスの終了ステータスを返す。 終了ステータスは I<status> 引き数の下位 8"
13248 "ビットで構成されており、 B<exit>(3)  や B<_exit>(2)  の呼び出し時に渡された"
13249 "値、もしくは main() の return 文の 引き数として指定された値である。 このマク"
13250 "ロを使用するのは B<WIFEXITED> が真を返した場合だけにすべきである。"
13251
13252 #. type: TP
13253 #: build/C/man2/wait.2:204
13254 #, no-wrap
13255 msgid "B<WIFSIGNALED(>I<status>B<)>"
13256 msgstr "B<WIFSIGNALED(>I<status>B<)>"
13257
13258 #. type: Plain text
13259 #: build/C/man2/wait.2:207
13260 msgid "returns true if the child process was terminated by a signal."
13261 msgstr "子プロセスがシグナルにより終了した場合に真を返す。"
13262
13263 #. type: TP
13264 #: build/C/man2/wait.2:207
13265 #, no-wrap
13266 msgid "B<WTERMSIG(>I<status>B<)>"
13267 msgstr "B<WTERMSIG(>I<status>B<)>"
13268
13269 #. type: Plain text
13270 #: build/C/man2/wait.2:214
13271 msgid ""
13272 "returns the number of the signal that caused the child process to "
13273 "terminate.  This macro should be employed only if B<WIFSIGNALED> returned "
13274 "true."
13275 msgstr ""
13276 "子プロセス終了の原因となったシグナルの番号を返す。 このマクロを使用するのは "
13277 "B<WIFSIGNALED> が真を返した場合だけにすべきである。"
13278
13279 #. type: TP
13280 #: build/C/man2/wait.2:214
13281 #, no-wrap
13282 msgid "B<WCOREDUMP(>I<status>B<)>"
13283 msgstr "B<WCOREDUMP(>I<status>B<)>"
13284
13285 #. type: Plain text
13286 #: build/C/man2/wait.2:223
13287 msgid ""
13288 "returns true if the child produced a core dump.  This macro should be "
13289 "employed only if B<WIFSIGNALED> returned true.  This macro is not specified "
13290 "in POSIX.1-2001 and is not available on some UNIX implementations (e.g., "
13291 "AIX, SunOS).  Only use this enclosed in #ifdef WCOREDUMP ... #endif."
13292 msgstr ""
13293 "子プロセスがコアダンプを生成した場合に真を返す。 このマクロを使用するのは "
13294 "B<WIFSIGNALED> が真を返した場合だけにすべきである。 このマクロは "
13295 "POSIX.1-2001 では規定されておらず、 (AIX, SunOS などの) いくつかの UNIX の実"
13296 "装では利用できない。 必ず #ifdef WCOREDUMP ... #endif で括って使用すること。"
13297
13298 #. type: TP
13299 #: build/C/man2/wait.2:223
13300 #, no-wrap
13301 msgid "B<WIFSTOPPED(>I<status>B<)>"
13302 msgstr "B<WIFSTOPPED(>I<status>B<)>"
13303
13304 #. type: Plain text
13305 #: build/C/man2/wait.2:230
13306 msgid ""
13307 "returns true if the child process was stopped by delivery of a signal; this "
13308 "is possible only if the call was done using B<WUNTRACED> or when the child "
13309 "is being traced (see B<ptrace>(2))."
13310 msgstr ""
13311 "子プロセスがシグナルの配送により停止した場合に真を返す。 これが真になるのは、"
13312 "システムコールが B<WUNTRACED> を指定して呼び出された場合か、子プロセスがト"
13313 "レースされている場合 (B<ptrace>(2)  参照) だけである。"
13314
13315 #. type: TP
13316 #: build/C/man2/wait.2:230
13317 #, no-wrap
13318 msgid "B<WSTOPSIG(>I<status>B<)>"
13319 msgstr "B<WSTOPSIG(>I<status>B<)>"
13320
13321 #. type: Plain text
13322 #: build/C/man2/wait.2:236
13323 msgid ""
13324 "returns the number of the signal which caused the child to stop.  This macro "
13325 "should be employed only if B<WIFSTOPPED> returned true."
13326 msgstr ""
13327 "子プロセスを停止させたシグナルの番号を返す。 このマクロを使用するのは "
13328 "B<WIFSTOPPED> が 0 以外を返した場合だけにすべきである。"
13329
13330 #. type: TP
13331 #: build/C/man2/wait.2:236
13332 #, no-wrap
13333 msgid "B<WIFCONTINUED(>I<status>B<)>"
13334 msgstr "B<WIFCONTINUED(>I<status>B<)>"
13335
13336 #. type: Plain text
13337 #: build/C/man2/wait.2:241
13338 msgid ""
13339 "(since Linux 2.6.10)  returns true if the child process was resumed by "
13340 "delivery of B<SIGCONT>."
13341 msgstr ""
13342 "(Linux 2.6.10 以降)  子プロセスが B<SIGCONT> の配送により再開した場合に真を返"
13343 "す。"
13344
13345 #. type: SS
13346 #: build/C/man2/wait.2:241
13347 #, no-wrap
13348 msgid "waitid()"
13349 msgstr "waitid()"
13350
13351 #. type: Plain text
13352 #: build/C/man2/wait.2:246
13353 msgid ""
13354 "The B<waitid>()  system call (available since Linux 2.6.9) provides more "
13355 "precise control over which child state changes to wait for."
13356 msgstr ""
13357 "B<waitid>()  システムコール (Linux 2.6.9 以降で利用可能) を使うと、 子プロセ"
13358 "スのどの状態変化を待つかについてより細かな制御ができる。"
13359
13360 #. type: Plain text
13361 #: build/C/man2/wait.2:252
13362 msgid ""
13363 "The I<idtype> and I<id> arguments select the child(ren) to wait for, as "
13364 "follows:"
13365 msgstr "引き数 I<idtype> と I<id> でどの子プロセスを待つかを選択する:"
13366
13367 #. type: IP
13368 #: build/C/man2/wait.2:252
13369 #, no-wrap
13370 msgid "I<idtype> == B<P_PID>"
13371 msgstr "I<idtype> == B<P_PID>"
13372
13373 #. type: Plain text
13374 #: build/C/man2/wait.2:255
13375 msgid "Wait for the child whose process ID matches I<id>."
13376 msgstr "プロセスID が I<id> と一致する子プロセスを待つ。"
13377
13378 #. type: IP
13379 #: build/C/man2/wait.2:255
13380 #, no-wrap
13381 msgid "I<idtype> == B<P_PGID>"
13382 msgstr "I<idtype> == B<P_PGID>"
13383
13384 #. type: Plain text
13385 #: build/C/man2/wait.2:258
13386 msgid "Wait for any child whose process group ID matches I<id>."
13387 msgstr "プロセスグループID が I<id> と一致する子プロセスを待つ。"
13388
13389 #. type: IP
13390 #: build/C/man2/wait.2:258
13391 #, no-wrap
13392 msgid "I<idtype> == B<P_ALL>"
13393 msgstr "I<idtype> == B<P_ALL>"
13394
13395 #. type: Plain text
13396 #: build/C/man2/wait.2:262
13397 msgid "Wait for any child; I<id> is ignored."
13398 msgstr "子プロセス全部を対象に待つ。 I<id> は無視される。"
13399
13400 #. type: Plain text
13401 #: build/C/man2/wait.2:266
13402 msgid ""
13403 "The child state changes to wait for are specified by ORing one or more of "
13404 "the following flags in I<options>:"
13405 msgstr ""
13406 "子プロセスのどの状態変化を待つかは以下のフラグで指定する (I<options> には 1個"
13407 "以上のフラグの論理和をとって指定する):"
13408
13409 #. type: TP
13410 #: build/C/man2/wait.2:266
13411 #, no-wrap
13412 msgid "B<WEXITED>"
13413 msgstr "B<WEXITED>"
13414
13415 #. type: Plain text
13416 #: build/C/man2/wait.2:269
13417 msgid "Wait for children that have terminated."
13418 msgstr "子プロセスの終了を待つ。"
13419
13420 #. type: TP
13421 #: build/C/man2/wait.2:269
13422 #, no-wrap
13423 msgid "B<WSTOPPED>"
13424 msgstr "B<WSTOPPED>"
13425
13426 #. type: Plain text
13427 #: build/C/man2/wait.2:272
13428 msgid "Wait for children that have been stopped by delivery of a signal."
13429 msgstr "子プロセスがシグナルの配送により停止するのを待つ。"
13430
13431 #. type: TP
13432 #: build/C/man2/wait.2:272
13433 #, no-wrap
13434 msgid "B<WCONTINUED>"
13435 msgstr "B<WCONTINUED>"
13436
13437 #. type: Plain text
13438 #: build/C/man2/wait.2:277
13439 msgid ""
13440 "Wait for (previously stopped) children that have been resumed by delivery of "
13441 "B<SIGCONT>."
13442 msgstr "(停止していた) 子プロセスが B<SIGCONT> が配送されて再開するのを待つ。"
13443
13444 #. type: Plain text
13445 #: build/C/man2/wait.2:280
13446 msgid "The following flags may additionally be ORed in I<options>:"
13447 msgstr "さらに以下のフラグを論理和の形で I<options> に指定できる:"
13448
13449 #. type: Plain text
13450 #: build/C/man2/wait.2:284
13451 msgid "As for B<waitpid>()."
13452 msgstr "B<waitpid>()  と同様。"
13453
13454 #. type: TP
13455 #: build/C/man2/wait.2:284
13456 #, no-wrap
13457 msgid "B<WNOWAIT>"
13458 msgstr "B<WNOWAIT>"
13459
13460 #. type: Plain text
13461 #: build/C/man2/wait.2:288
13462 msgid ""
13463 "Leave the child in a waitable state; a later wait call can be used to again "
13464 "retrieve the child status information."
13465 msgstr ""
13466 "waitable 状態のプロセスをそのままにする。この後で wait コールを 使って、同じ"
13467 "子プロセスの状態情報をもう一度取得することができる。"
13468
13469 #. type: Plain text
13470 #: build/C/man2/wait.2:295
13471 msgid ""
13472 "Upon successful return, B<waitid>()  fills in the following fields of the "
13473 "I<siginfo_t> structure pointed to by I<infop>:"
13474 msgstr ""
13475 "成功した場合には、 B<waitid>()  は I<infop> が指す I<siginfo_t> 構造体の以下"
13476 "のフィールドを設定する:"
13477
13478 #. type: Plain text
13479 #: build/C/man2/wait.2:298
13480 msgid "The process ID of the child."
13481 msgstr "子プロセスのプロセスID。"
13482
13483 #. type: Plain text
13484 #: build/C/man2/wait.2:302
13485 msgid ""
13486 "The real user ID of the child.  (This field is not set on most other "
13487 "implementations.)"
13488 msgstr ""
13489 "子プロセスの実ユーザID (このフィールドは他のほとんどの実装では設定されない)。"
13490
13491 #. type: Plain text
13492 #: build/C/man2/wait.2:306
13493 msgid "Always set to B<SIGCHLD>."
13494 msgstr "常に B<SIGCHLD> が設定される。"
13495
13496 #. type: TP
13497 #: build/C/man2/wait.2:306
13498 #, no-wrap
13499 msgid "I<si_status>"
13500 msgstr "I<si_status>"
13501
13502 #. type: Plain text
13503 #: build/C/man2/wait.2:316
13504 msgid ""
13505 "Either the exit status of the child, as given to B<_exit>(2)  (or B<exit>"
13506 "(3)), or the signal that caused the child to terminate, stop, or continue.  "
13507 "The I<si_code> field can be used to determine how to interpret this field."
13508 msgstr ""
13509 "B<_exit>(2)  (か B<exit>(3))  に指定された子プロセスの終了ステータス、もしく"
13510 "は 子プロセスの終了、停止、再開の原因となったシグナルが設定される。 この"
13511 "フィールドをどう解釈するかは、 I<si_code> フィールドを参照して決めることがで"
13512 "きる。"
13513
13514 #. type: Plain text
13515 #: build/C/man2/wait.2:333
13516 msgid ""
13517 "Set to one of: B<CLD_EXITED> (child called B<_exit>(2)); B<CLD_KILLED> "
13518 "(child killed by signal); B<CLD_DUMPED> (child killed by signal, and dumped "
13519 "core); B<CLD_STOPPED> (child stopped by signal); B<CLD_TRAPPED> (traced "
13520 "child has trapped); or B<CLD_CONTINUED> (child continued by B<SIGCONT>)."
13521 msgstr ""
13522 "以下のいずれかが設定される: B<CLD_EXITED> (子プロセスが B<_exit>(2)  を呼び出"
13523 "した); B<CLD_KILLED> (シグナルにより子プロセスが kill された); B<CLD_DUMPED> "
13524 "(シグナルにより子プロセスが kill され、コア・ダンプが行われた); "
13525 "B<CLD_STOPPED> (シグナルにより子プロセスが停止した); B<CLD_TRAPPED> (トレース"
13526 "されていた子プロセスがトラップを受信した); B<CLD_CONTINUED> (B<SIGCONT> によ"
13527 "り子プロセスが再開された)。"
13528
13529 #.  POSIX.1-2001 leaves this possibility unspecified; most
13530 #.  implementations (including Linux) zero out the structure
13531 #.  in this case, but at least one implementation (AIX 5.1)
13532 #.  does not -- MTK Nov 04
13533 #. type: Plain text
13534 #: build/C/man2/wait.2:355
13535 msgid ""
13536 "If B<WNOHANG> was specified in I<options> and there were no children in a "
13537 "waitable state, then B<waitid>()  returns 0 immediately and the state of the "
13538 "I<siginfo_t> structure pointed to by I<infop> is unspecified.  To "
13539 "distinguish this case from that where a child was in a waitable state, zero "
13540 "out the I<si_pid> field before the call and check for a nonzero value in "
13541 "this field after the call returns."
13542 msgstr ""
13543 "B<WNOHANG> が I<options> に指定されていて、 waitable 状態の子プロセスがなかっ"
13544 "た場合には、 B<waitid>()  はすぐに 0 を返す。このとき、 I<infop> が指す "
13545 "I<siginfo_t> 構造体の内容は不定である。 この場合を waitable 状態の子プロセス"
13546 "があった場合と区別するには、 B<waitid>()  を呼び出す前に I<si_pid> を 0 にし"
13547 "ておき、コールが復帰した後でこのフィールドが 0 以外の値かどうか をチェックす"
13548 "ればよい。"
13549
13550 #. type: Plain text
13551 #: build/C/man2/wait.2:359
13552 msgid ""
13553 "B<wait>(): on success, returns the process ID of the terminated child; on "
13554 "error, -1 is returned."
13555 msgstr ""
13556 "B<wait>(): 成功すると、終了した子プロセスのプロセスID を返す。 エラーの場合 "
13557 "-1 を返す。"
13558
13559 #. type: Plain text
13560 #: build/C/man2/wait.2:368
13561 msgid ""
13562 "B<waitpid>(): on success, returns the process ID of the child whose state "
13563 "has changed; if B<WNOHANG> was specified and one or more child(ren) "
13564 "specified by I<pid> exist, but have not yet changed state, then 0 is "
13565 "returned.  On error, -1 is returned."
13566 msgstr ""
13567 "B<waitpid>(): 成功すると、状態が変化した子プロセスのプロセスID を返す。 "
13568 "B<WNOHANG> が指定されていて、 I<pid> で指示された子プロセスが一つ以上存在する"
13569 "が、どの子プロセスでも 状態変化が起こっていなかった場合は、 0 を返す。 エラー"
13570 "の場合 -1 を返す。"
13571
13572 #.  FIXME: As reported by Vegard Nossum, if infop is NULL, then waitid()
13573 #.  returns the PID of the child.  Either this is a bug, or it is intended
13574 #.  behavior that needs to be documented.  See my Jan 2009 LKML mail
13575 #.  "waitid() return value strangeness when infop is NULL".
13576 #. type: Plain text
13577 #: build/C/man2/wait.2:384
13578 msgid ""
13579 "B<waitid>(): returns 0 on success or if B<WNOHANG> was specified and no child"
13580 "(ren) specified by I<id> has yet changed state; on error, -1 is returned.  "
13581 "Each of these calls sets I<errno> to an appropriate value in the case of an "
13582 "error."
13583 msgstr ""
13584 "B<waitid>(): 成功すると 0 を返す。 B<WNOHANG> が指定されていて、 I<pid> で指"
13585 "示された子プロセスで状態変化が起こっていなかった場合にも 0 を返す。 エラーの"
13586 "場合 -1 を返す。 エラーの場合、これらのシステムコールはいずれも I<errno> に適"
13587 "切な値を設定する。"
13588
13589 #. type: TP
13590 #: build/C/man2/wait.2:385 build/C/man2/wait.2:390
13591 #, no-wrap
13592 msgid "B<ECHILD>"
13593 msgstr "B<ECHILD>"
13594
13595 #. type: Plain text
13596 #: build/C/man2/wait.2:390
13597 msgid ""
13598 "(for B<wait>())  The calling process does not have any unwaited-for children."
13599 msgstr ""
13600 "(B<wait>()  の場合)  呼び出し元プロセスには、wait を行っていない子プロセスは"
13601 "ない。"
13602
13603 #. type: Plain text
13604 #: build/C/man2/wait.2:410
13605 msgid ""
13606 "(for B<waitpid>()  or B<waitid>())  The process specified by I<pid> "
13607 "(B<waitpid>())  or I<idtype> and I<id> (B<waitid>())  does not exist or is "
13608 "not a child of the calling process.  (This can happen for one's own child if "
13609 "the action for B<SIGCHLD> is set to B<SIG_IGN>.  See also the I<Linux Notes> "
13610 "section about threads.)"
13611 msgstr ""
13612 "(B<waitpid>()  か B<waitid>()  の場合)  I<pid> (B<waitpid>())  か I<idtype> "
13613 "と I<id> (B<waitid>())  で指定したプロセスが存在しないか、呼び出し元プロセス"
13614 "の子プロセスでない (B<SIGCHLD> の動作に B<SIG_IGN> を設定した場合には、自分自"
13615 "身の子プロセスでも起こりうる。 スレッドに関しては「Linux での注意」の節も参照"
13616 "すること)。"
13617
13618 #. type: Plain text
13619 #: build/C/man2/wait.2:417
13620 msgid ""
13621 "B<WNOHANG> was not set and an unblocked signal or a B<SIGCHLD> was caught; "
13622 "see B<signal>(7)."
13623 msgstr ""
13624 "B<WNOHANG> が設定されておらず、禁止 (block) されていないシグナルや "
13625 "B<SIGCHLD> を受信した。 B<signal>(7)  参照。"
13626
13627 #. type: Plain text
13628 #: build/C/man2/wait.2:422
13629 msgid "The I<options> argument was invalid."
13630 msgstr "I<options> 引き数が不正である。"
13631
13632 #. type: Plain text
13633 #: build/C/man2/wait.2:437
13634 msgid ""
13635 "A child that terminates, but has not been waited for becomes a \"zombie\".  "
13636 "The kernel maintains a minimal set of information about the zombie process "
13637 "(PID, termination status, resource usage information)  in order to allow the "
13638 "parent to later perform a wait to obtain information about the child.  As "
13639 "long as a zombie is not removed from the system via a wait, it will consume "
13640 "a slot in the kernel process table, and if this table fills, it will not be "
13641 "possible to create further processes.  If a parent process terminates, then "
13642 "its \"zombie\" children (if any)  are adopted by B<init>(8), which "
13643 "automatically performs a wait to remove the zombies."
13644 msgstr ""
13645 "終了したが、wait されていない子プロセスは「ゾンビ」になる。 後で親プロセスが "
13646 "wait を実行して子プロセスについての情報を取得できるように、 カーネルはゾンビ"
13647 "プロセスについて最小限の情報 (PID、終了ステータス、 リソース使用状況) を保持"
13648 "する。 ゾンビプロセスは、 wait によってシステムから削除されない限り、 カーネ"
13649 "ルのプロセステーブルの 1 エントリを消費する。このプロセステーブルが 一杯にな"
13650 "ると、新たにプロセスを作ることができなくなる。 親プロセスが終了すると、その親"
13651 "プロセスの「ゾンビ」の 子プロセスは (もしあれば)  B<init>(8)  の養子となる。 "
13652 "B<init>(8)  は wait を自動的に実行し、ゾンビを削除する。"
13653
13654 #. type: Plain text
13655 #: build/C/man2/wait.2:478
13656 msgid ""
13657 "POSIX.1-2001 specifies that if the disposition of B<SIGCHLD> is set to "
13658 "B<SIG_IGN> or the B<SA_NOCLDWAIT> flag is set for B<SIGCHLD> (see "
13659 "B<sigaction>(2)), then children that terminate do not become zombies and a "
13660 "call to B<wait>()  or B<waitpid>()  will block until all children have "
13661 "terminated, and then fail with I<errno> set to B<ECHILD>.  (The original "
13662 "POSIX standard left the behavior of setting B<SIGCHLD> to B<SIG_IGN> "
13663 "unspecified.  Note that even though the default disposition of B<SIGCHLD> is "
13664 "\"ignore\", explicitly setting the disposition to B<SIG_IGN> results in "
13665 "different treatment of zombie process children.)  Linux 2.6 conforms to this "
13666 "specification.  However, Linux 2.4 (and earlier) does not: if a B<wait>()  "
13667 "or B<waitpid>()  call is made while B<SIGCHLD> is being ignored, the call "
13668 "behaves just as though B<SIGCHLD> were not being ignored, that is, the call "
13669 "blocks until the next child terminates and then returns the process ID and "
13670 "status of that child."
13671 msgstr ""
13672 "POSIX.1-2001 では以下のように規定されている。 B<SIGCHLD> の動作が B<SIG_IGN> "
13673 "に設定されたか、 B<SIGCHLD> に対して B<SA_NOCLDWAIT> フラグが設定された場合 "
13674 "(B<sigaction>(2)  参照)、終了した子プロセスはゾンビにはならず、 B<wait>()  "
13675 "や B<waitpid>()  の呼び出しは全ての子プロセスが終了するまで停止し、 子プロセ"
13676 "スが全部終了した後 I<errno> に B<ECHILD> を設定して失敗する。 (もともとの "
13677 "POSIX 標準は B<SIGCHLD> に B<SIG_IGN> を設定した場合の振る舞いを未規定のまま"
13678 "にしている。 B<SIGCHLD> のデフォルトの動作が「無視」であるにもかかわらず、 "
13679 "B<SIGCHLD> の動作として B<SIG_IGN> を明示的に設定した場合にはゾンビプロセスの"
13680 "子プロセスの扱いが 異なる点に注意すること。)  Linux 2.6 はこの仕様に準拠して"
13681 "いる。 しかし、Linux 2.4 (とそれ以前のバージョン) はそうではない: B<SIGCHLD> "
13682 "が無視される状態で B<wait>()  または B<waitpid>()  が呼び出された場合、 "
13683 "B<SIGCHLD> が無視されていないかのように振る舞う。 つまり、呼び出しによって次"
13684 "の子プロセスの終了までブロックされ、 終了した子プロセスの PID と状態が返され"
13685 "る。"
13686
13687 #. type: Plain text
13688 #: build/C/man2/wait.2:494
13689 msgid ""
13690 "In the Linux kernel, a kernel-scheduled thread is not a distinct construct "
13691 "from a process.  Instead, a thread is simply a process that is created using "
13692 "the Linux-unique B<clone>(2)  system call; other routines such as the "
13693 "portable B<pthread_create>(3)  call are implemented using B<clone>(2).  "
13694 "Before Linux 2.4, a thread was just a special case of a process, and as a "
13695 "consequence one thread could not wait on the children of another thread, "
13696 "even when the latter belongs to the same thread group.  However, POSIX "
13697 "prescribes such functionality, and since Linux 2.4 a thread can, and by "
13698 "default will, wait on children of other threads in the same thread group."
13699 msgstr ""
13700 "Linux カーネルでは、カーネルによってスケジュールされるスレッドは プロセスと明"
13701 "確に区別できる構成要素ではない。スレッドは Linux 固有の B<clone>(2)  システム"
13702 "コールを使用して生成されるプロセスに過ぎない。 移植性のある B<pthread_create>"
13703 "(3)  コールのような他のルーチンは B<clone>(2)  を使用して実装されている; これ"
13704 "らでは B<waitid>()  を使うことはできない。 Linux 2.4 より前では、スレッドは単"
13705 "に特殊なプロセスであったので、 例え同じスレッドグループであっても、 あるス"
13706 "レッドが別のスレッドの子プロセスが終了するのを待つことは出来なかった。 しか"
13707 "し、POSIX ではこのような機能を規定しており、 Linux 2.4 以降では、あるスレッド"
13708 "が同じスレッドグループの他のスレッドの 子プロセスが終了するのを待つことができ"
13709 "るようになった。 そして将来はこれがデフォルトの動作になるであろう。"
13710
13711 #. type: Plain text
13712 #: build/C/man2/wait.2:501
13713 msgid ""
13714 "The following Linux-specific I<options> are for use with children created "
13715 "using B<clone>(2); they cannot be used with B<waitid>():"
13716 msgstr ""
13717 "B<clone>(2)  を用いて作られた子プロセスには、以下の Linux 固有の I<options> "
13718 "が使用できる。"
13719
13720 #. type: TP
13721 #: build/C/man2/wait.2:501
13722 #, no-wrap
13723 msgid "B<__WCLONE>"
13724 msgstr "B<__WCLONE>"
13725
13726 #.  since 0.99pl10
13727 #. type: Plain text
13728 #: build/C/man2/wait.2:512
13729 msgid ""
13730 "Wait for \"clone\" children only.  If omitted then wait for \"non-clone\" "
13731 "children only.  (A \"clone\" child is one which delivers no signal, or a "
13732 "signal other than B<SIGCHLD> to its parent upon termination.)  This option "
13733 "is ignored if B<__WALL> is also specified."
13734 msgstr ""
13735 "\"clone\" な子プロセスだけを待つ。 指定されなかった場合は非 \"clone\" な子プ"
13736 "ロセスだけを待つ (\"clone\" な子プロセスは、終了時に親プロセスへ全くシグナル"
13737 "を送らないか、 B<SIGCHLD> 以外のシグナルを送る)。 このオプションは B<__WALL> "
13738 "も指定された場合は無視される。"
13739
13740 #. type: TP
13741 #: build/C/man2/wait.2:512
13742 #, no-wrap
13743 msgid "B<__WALL> (since Linux 2.4)"
13744 msgstr "B<__WALL> (Linux 2.4 以降)"
13745
13746 #.  since patch-2.3.48
13747 #. type: Plain text
13748 #: build/C/man2/wait.2:517
13749 msgid "Wait for all children, regardless of type (\"clone\" or \"non-clone\")."
13750 msgstr "\"clone\" であるかないかに関わらず、 全ての子プロセスを待つ。"
13751
13752 #. type: TP
13753 #: build/C/man2/wait.2:517
13754 #, no-wrap
13755 msgid "B<__WNOTHREAD> (since Linux 2.4)"
13756 msgstr "B<__WNOTHREAD> (Linux 2.4 以降)"
13757
13758 #.  since patch-2.4.0-test8
13759 #. type: Plain text
13760 #: build/C/man2/wait.2:523
13761 msgid ""
13762 "Do not wait for children of other threads in the same thread group.  This "
13763 "was the default before Linux 2.4."
13764 msgstr ""
13765 "同じスレッドグループの他のスレッドの子プロセスは待たない。 Linux 2.4 より前で"
13766 "はデフォルトであった。"
13767
13768 #. type: Plain text
13769 #: build/C/man2/wait.2:535
13770 msgid ""
13771 "The raw B<waitid>()  system call takes a fith argument, of type I<struct "
13772 "rusage\\ *>.  If this argument is non-NULL, then it is used to return "
13773 "resource usage information about the child, in the same manner as B<wait4>"
13774 "(2).  See B<getrusage>(2)  for details."
13775 msgstr ""
13776
13777 #. type: Plain text
13778 #: build/C/man2/wait.2:550
13779 msgid ""
13780 "According to POSIX.1-2008, an application calling B<waitid>()  must ensure "
13781 "that I<infop> points to a I<siginfo_t> structure (i.e., that it is a non-"
13782 "NULL pointer).  On Linux, if I<infop> is NULL, B<waitid>()  succeeds, and "
13783 "returns the process ID of the waited-for child.  Applications should avoid "
13784 "relying on this inconsistent, nonstandard, and unnecessary feature."
13785 msgstr ""
13786 "POSIX.1-2008 によると、 B<waitid>() を呼び出すアプリケーションは、 I<infop> "
13787 "が I<siginfo_t> 構造体を指していること (つまり I<infop> が NULL でないポイン"
13788 "タであること) を保証しなければならない。 Linux では、 I<infop> が NULL の場"
13789 "合、 B<waitid>() は成功し、wait している子プロセスのプロセス ID を返す。 アプ"
13790 "リケーションは、この食い違った、非標準で、不必要な機能に依存しないようにすべ"
13791 "きである。"
13792
13793 #.  fork.2 refers to this example program.
13794 #. type: Plain text
13795 #: build/C/man2/wait.2:567
13796 msgid ""
13797 "The following program demonstrates the use of B<fork>(2)  and B<waitpid>().  "
13798 "The program creates a child process.  If no command-line argument is "
13799 "supplied to the program, then the child suspends its execution using B<pause>"
13800 "(2), to allow the user to send signals to the child.  Otherwise, if a "
13801 "command-line argument is supplied, then the child exits immediately, using "
13802 "the integer supplied on the command line as the exit status.  The parent "
13803 "process executes a loop that monitors the child using B<waitpid>(), and uses "
13804 "the W*() macros described above to analyze the wait status value."
13805 msgstr ""
13806 "以下のプログラムは、 B<fork>(2)  と B<waitpid>()  の使用方法の例を示してい"
13807 "る。 このプログラムでは子プロセスを生成する。 コマンドライン引き数が指定され"
13808 "なかったときは、 子プロセスは B<pause>(2)  を使ってその実行を一時停止し、ユー"
13809 "ザがその子プロセスに シグナルを送信できるようにする。 コマンドライン引き数が"
13810 "指定された場合は、 子プロセスは直ちに終了し、 コマンドラインで指定された整数"
13811 "を終了ステータスとして使用する。 親プロセスは、 B<waitpid>()  を使って子プロ"
13812 "セスを監視し、 wait のステータス値を上記の W*() マクロを使って解析するという "
13813 "ループを実行する。"
13814
13815 #. type: Plain text
13816 #: build/C/man2/wait.2:583
13817 #, no-wrap
13818 msgid ""
13819 "$B< ./a.out &>\n"
13820 "Child PID is 32360\n"
13821 "[1] 32359\n"
13822 "$B< kill -STOP 32360>\n"
13823 "stopped by signal 19\n"
13824 "$B< kill -CONT 32360>\n"
13825 "continued\n"
13826 "$B< kill -TERM 32360>\n"
13827 "killed by signal 15\n"
13828 "[1]+  Done                    ./a.out\n"
13829 "$\n"
13830 msgstr ""
13831 "$B< ./a.out &>\n"
13832 "Child PID is 32360\n"
13833 "[1] 32359\n"
13834 "$B< kill -STOP 32360>\n"
13835 "stopped by signal 19\n"
13836 "$B< kill -CONT 32360>\n"
13837 "continued\n"
13838 "$B< kill -TERM 32360>\n"
13839 "killed by signal 15\n"
13840 "[1]+  Done                    ./a.out\n"
13841 "$\n"
13842
13843 #. type: Plain text
13844 #: build/C/man2/wait.2:592
13845 #, no-wrap
13846 msgid ""
13847 "#include E<lt>sys/wait.hE<gt>\n"
13848 "#include E<lt>stdlib.hE<gt>\n"
13849 "#include E<lt>unistd.hE<gt>\n"
13850 "#include E<lt>stdio.hE<gt>\n"
13851 msgstr ""
13852 "#include E<lt>sys/wait.hE<gt>\n"
13853 "#include E<lt>stdlib.hE<gt>\n"
13854 "#include E<lt>unistd.hE<gt>\n"
13855 "#include E<lt>stdio.hE<gt>\n"
13856
13857 #. type: Plain text
13858 #: build/C/man2/wait.2:598
13859 #, no-wrap
13860 msgid ""
13861 "int\n"
13862 "main(int argc, char *argv[])\n"
13863 "{\n"
13864 "    pid_t cpid, w;\n"
13865 "    int status;\n"
13866 msgstr ""
13867 "int\n"
13868 "main(int argc, char *argv[])\n"
13869 "{\n"
13870 "    pid_t cpid, w;\n"
13871 "    int status;\n"
13872
13873 #. type: Plain text
13874 #: build/C/man2/wait.2:604
13875 #, no-wrap
13876 msgid ""
13877 "    cpid = fork();\n"
13878 "    if (cpid == -1) {\n"
13879 "        perror(\"fork\");\n"
13880 "        exit(EXIT_FAILURE);\n"
13881 "    }\n"
13882 msgstr ""
13883 "    cpid = fork();\n"
13884 "    if (cpid == -1) {\n"
13885 "        perror(\"fork\");\n"
13886 "        exit(EXIT_FAILURE);\n"
13887 "    }\n"
13888
13889 #. type: Plain text
13890 #: build/C/man2/wait.2:610
13891 #, no-wrap
13892 msgid ""
13893 "    if (cpid == 0) {            /* Code executed by child */\n"
13894 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
13895 "        if (argc == 1)\n"
13896 "            pause();                    /* Wait for signals */\n"
13897 "        _exit(atoi(argv[1]));\n"
13898 msgstr ""
13899 "    if (cpid == 0) {            /* Code executed by child */\n"
13900 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
13901 "        if (argc == 1)\n"
13902 "            pause();                    /* Wait for signals */\n"
13903 "        _exit(atoi(argv[1]));\n"
13904
13905 #. type: Plain text
13906 #: build/C/man2/wait.2:618
13907 #, no-wrap
13908 msgid ""
13909 "    } else {                    /* Code executed by parent */\n"
13910 "        do {\n"
13911 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
13912 "            if (w == -1) {\n"
13913 "                perror(\"waitpid\");\n"
13914 "                exit(EXIT_FAILURE);\n"
13915 "            }\n"
13916 msgstr ""
13917 "    } else {                    /* Code executed by parent */\n"
13918 "        do {\n"
13919 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
13920 "            if (w == -1) {\n"
13921 "                perror(\"waitpid\");\n"
13922 "                exit(EXIT_FAILURE);\n"
13923 "            }\n"
13924
13925 #. type: Plain text
13926 #: build/C/man2/wait.2:632
13927 #, no-wrap
13928 msgid ""
13929 "            if (WIFEXITED(status)) {\n"
13930 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
13931 "            } else if (WIFSIGNALED(status)) {\n"
13932 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
13933 "            } else if (WIFSTOPPED(status)) {\n"
13934 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
13935 "            } else if (WIFCONTINUED(status)) {\n"
13936 "                printf(\"continued\\en\");\n"
13937 "            }\n"
13938 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
13939 "        exit(EXIT_SUCCESS);\n"
13940 "    }\n"
13941 "}\n"
13942 msgstr ""
13943 "            if (WIFEXITED(status)) {\n"
13944 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
13945 "            } else if (WIFSIGNALED(status)) {\n"
13946 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
13947 "            } else if (WIFSTOPPED(status)) {\n"
13948 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
13949 "            } else if (WIFCONTINUED(status)) {\n"
13950 "                printf(\"continued\\en\");\n"
13951 "            }\n"
13952 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
13953 "        exit(EXIT_SUCCESS);\n"
13954 "    }\n"
13955 "}\n"
13956
13957 #. type: Plain text
13958 #: build/C/man2/wait.2:645
13959 msgid ""
13960 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), B<sigaction>"
13961 "(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), B<credentials>(7), "
13962 "B<signal>(7)"
13963 msgstr ""
13964 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), B<sigaction>"
13965 "(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), B<credentials>(7), "
13966 "B<signal>(7)"
13967
13968 #. type: TH
13969 #: build/C/man2/wait4.2:33
13970 #, no-wrap
13971 msgid "WAIT4"
13972 msgstr "WAIT4"
13973
13974 #. type: TH
13975 #: build/C/man2/wait4.2:33
13976 #, no-wrap
13977 msgid "2012-09-23"
13978 msgstr "2012-09-23"
13979
13980 #. type: Plain text
13981 #: build/C/man2/wait4.2:36
13982 msgid "wait3, wait4 - wait for process to change state, BSD style"
13983 msgstr "wait3, wait4 - BSD スタイルでプロセスの状態変化を待つ"
13984
13985 #. type: Plain text
13986 #: build/C/man2/wait4.2:42
13987 #, no-wrap
13988 msgid ""
13989 "B<#include E<lt>sys/types.hE<gt>>\n"
13990 "B<#include E<lt>sys/time.hE<gt>>\n"
13991 "B<#include E<lt>sys/resource.hE<gt>>\n"
13992 "B<#include E<lt>sys/wait.hE<gt>>\n"
13993 msgstr ""
13994 "B<#include E<lt>sys/types.hE<gt>>\n"
13995 "B<#include E<lt>sys/time.hE<gt>>\n"
13996 "B<#include E<lt>sys/resource.hE<gt>>\n"
13997 "B<#include E<lt>sys/wait.hE<gt>>\n"
13998
13999 #. type: Plain text
14000 #: build/C/man2/wait4.2:45
14001 #, no-wrap
14002 msgid ""
14003 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14004 "B<            struct rusage *>I<rusage>B<);>\n"
14005 msgstr ""
14006 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14007 "B<            struct rusage *>I<rusage>B<);>\n"
14008
14009 #. type: Plain text
14010 #: build/C/man2/wait4.2:48
14011 #, no-wrap
14012 msgid ""
14013 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14014 "B<            struct rusage *>I<rusage>B<);>\n"
14015 msgstr ""
14016 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14017 "B<            struct rusage *>I<rusage>B<);>\n"
14018
14019 #. type: Plain text
14020 #: build/C/man2/wait4.2:57
14021 msgid "B<wait3>():"
14022 msgstr "B<wait3>():"
14023
14024 #. type: Plain text
14025 #: build/C/man2/wait4.2:63
14026 msgid "B<wait4>():"
14027 msgstr "B<wait4>():"
14028
14029 #. type: Plain text
14030 #: build/C/man2/wait4.2:65
14031 msgid "_BSD_SOURCE"
14032 msgstr "_BSD_SOURCE"
14033
14034 #. type: Plain text
14035 #: build/C/man2/wait4.2:73
14036 msgid ""
14037 "These functions are obsolete; use B<waitpid>(2)  or B<waitid>(2)  in new "
14038 "programs."
14039 msgstr ""
14040 "これらの関数は廃止予定である。 新しいプログラムでは B<waitpid>(2) や "
14041 "B<waitid>(2) を使用すること。"
14042
14043 #. type: Plain text
14044 #: build/C/man2/wait4.2:83
14045 msgid ""
14046 "The B<wait3>()  and B<wait4>()  system calls are similar to B<waitpid>(2), "
14047 "but additionally return resource usage information about the child in the "
14048 "structure pointed to by I<rusage>."
14049 msgstr ""
14050 "システムコール B<wait3>()  と B<wait4>()  は B<waitpid>(2)  と同様の動作をす"
14051 "る。それに加え、子プロセスのリソース使用状況の情報を I<rusage> が指す構造体に"
14052 "入れて返す。"
14053
14054 #. type: Plain text
14055 #: build/C/man2/wait4.2:89
14056 msgid ""
14057 "Other than the use of the I<rusage> argument, the following B<wait3>()  call:"
14058 msgstr "I<rusage> を使用する点を除けば、次の B<wait3>()  の呼び出し"
14059
14060 #. type: Plain text
14061 #: build/C/man2/wait4.2:92
14062 #, no-wrap
14063 msgid "    wait3(status, options, rusage);\n"
14064 msgstr "    wait3(status, options, rusage);\n"
14065
14066 #. type: Plain text
14067 #: build/C/man2/wait4.2:95 build/C/man2/wait4.2:109
14068 msgid "is equivalent to:"
14069 msgstr "は以下と等価である。"
14070
14071 #. type: Plain text
14072 #: build/C/man2/wait4.2:98
14073 #, no-wrap
14074 msgid "    waitpid(-1, status, options);\n"
14075 msgstr "    waitpid(-1, status, options);\n"
14076
14077 #. type: Plain text
14078 #: build/C/man2/wait4.2:103
14079 msgid "Similarly, the following B<wait4>()  call:"
14080 msgstr "同様に、次の B<wait4>()  の呼び出し"
14081
14082 #. type: Plain text
14083 #: build/C/man2/wait4.2:106
14084 #, no-wrap
14085 msgid "    wait4(pid, status, options, rusage);\n"
14086 msgstr "    wait4(pid, status, options, rusage);\n"
14087
14088 #. type: Plain text
14089 #: build/C/man2/wait4.2:112
14090 #, no-wrap
14091 msgid "    waitpid(pid, status, options);\n"
14092 msgstr "    waitpid(pid, status, options);\n"
14093
14094 #. type: Plain text
14095 #: build/C/man2/wait4.2:122
14096 msgid ""
14097 "In other words, B<wait3>()  waits of any child, while B<wait4>()  can be "
14098 "used to select a specific child, or children, on which to wait.  See B<wait>"
14099 "(2)  for further details."
14100 msgstr ""
14101 "言い換えると、 B<wait3>()  は全ての子プロセスを対象に待つが、 B<wait4>()  で"
14102 "は特定の子プロセス (複数可) を選んで待つことができる。"
14103
14104 #. type: Plain text
14105 #: build/C/man2/wait4.2:132
14106 msgid ""
14107 "If I<rusage> is not NULL, the I<struct rusage> to which it points will be "
14108 "filled with accounting information about the child.  See B<getrusage>(2)  "
14109 "for details."
14110 msgstr ""
14111 "I<rusage> が NULL でない場合、 I<rusage> が指す I<rusage 構造体> には子プロセ"
14112 "スのアカウント情報が格納される。 詳しくは B<getrusage>(2)  を参照のこと。"
14113
14114 #. type: Plain text
14115 #: build/C/man2/wait4.2:135 build/C/man2/wait4.2:138
14116 msgid "As for B<waitpid>(2)."
14117 msgstr "B<waitpid>(2)  と同様。"
14118
14119 #. type: Plain text
14120 #: build/C/man2/wait4.2:140
14121 msgid "4.3BSD."
14122 msgstr "4.3BSD."
14123
14124 #. type: Plain text
14125 #: build/C/man2/wait4.2:147
14126 msgid ""
14127 "SUSv1 included a specification of B<wait3>(); SUSv2 included B<wait3>(), but "
14128 "marked it LEGACY; SUSv3 removed it."
14129 msgstr ""
14130 "SUSv1 には B<wait3>() の規定があった。 SUSv2 には B<wait3>() が含まれていた"
14131 "が、「過去の名残 (LEGACY)」となっていた。 SUSv3 では B<wait3>() は削除され"
14132 "た。"
14133
14134 #. type: Plain text
14135 #: build/C/man2/wait4.2:159
14136 msgid ""
14137 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
14138 "portability.  (Indeed, I<E<lt>sys/resource.hE<gt>> defines the I<rusage> "
14139 "structure with fields of type I<struct timeval> defined in I<E<lt>sys/time."
14140 "hE<gt>>.)"
14141 msgstr ""
14142 "現在では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、インクルード"
14143 "しておくと 移植性を高めることができる (実際には I<E<lt>sys/resource.hE<gt>> "
14144 "で I<rusage> 構造体が定義されているが、そのフィールドで使用されている "
14145 "I<struct timeval> 型は I<E<lt>sys/time.hE<gt>> で定義されている)。"
14146
14147 #. type: Plain text
14148 #: build/C/man2/wait4.2:165
14149 msgid ""
14150 "On Linux, B<wait3>()  is a library function implemented on top of the "
14151 "B<wait4>()  system call."
14152 msgstr ""
14153 "Linux では、 B<wait3>()  はライブラリ関数であり、 B<wait4>()  システムコール"
14154 "を使って実装されている。"
14155
14156 #. type: Plain text
14157 #: build/C/man2/wait4.2:172
14158 msgid ""
14159 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14160 "B<signal>(7)"
14161 msgstr ""
14162 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14163 "B<signal>(7)"
14164
14165 #~ msgid "2012-12-21"
14166 #~ msgstr "2012-12-21"
14167
14168 #~ msgid ""
14169 #~ "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t "
14170 #~ "*>I<infop>B<, int >I<options>B<);>"
14171 #~ msgstr ""
14172 #~ "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t "
14173 #~ "*>I<infop>B<, int >I<options>B<);>"
14174
14175 #~ msgid "2012-05-01"
14176 #~ msgstr "2012-05-01"
14177
14178 #~ msgid "2008-06-26"
14179 #~ msgstr "2008-06-26"
14180
14181 #~ msgid "B<sigaction>()  returns 0 on success and -1 on error."
14182 #~ msgstr "B<sigaction>()  は成功すれば 0 を返し、エラーならば -1 を返す。"
14183
14184 #~ msgid "B<sigpending>()  returns 0 on success and -1 on error."
14185 #~ msgstr "B<sigpending>()  は成功すれば 0 を返し、エラーならば -1 を返す。"
14186
14187 #~ msgid "B<sigprocmask>()  returns 0 on success and -1 on error."
14188 #~ msgstr "B<sigprocmask>()  は成功すれば 0 を返し、エラーならば -1 を返す。"