OSDN Git Service

f1e0e8adcef4e1c01ed7462c651f3ea70131fa33
[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: 2015-01-04 23:49+0900\n"
10 "PO-Revision-Date: 2015-01-04 22:56+0900\n"
11 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Language-Team: LANGUAGE <LL@li.org>\n"
13 "Language: \n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17
18 #. type: TH
19 #: build/C/man3/bsd_signal.3:25
20 #, no-wrap
21 msgid "BSD_SIGNAL"
22 msgstr "BSD_SIGNAL"
23
24 #. type: TH
25 #: build/C/man3/bsd_signal.3:25
26 #, no-wrap
27 msgid "2013-10-22"
28 msgstr "2013-10-22"
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:30 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:33 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:22 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:31 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:34 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:23 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:33
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:36
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:26
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:35 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:54 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:38 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:129 build/C/man2/kill.2:100
194 #: build/C/man2/killpg.2:89 build/C/man2/pause.2:42 build/C/man2/prctl.2:804
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:88 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:671 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:65
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:169
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:294
209 #: build/C/man2/tkill.2:88 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:134 build/C/man2/kill.2:105
226 #: build/C/man2/killpg.2:94 build/C/man2/pause.2:53 build/C/man2/prctl.2:824
227 #: build/C/man2/restart_syscall.2:92 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:676 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:127
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:177
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:309
239 #: build/C/man2/tkill.2:92 build/C/man2/wait.2:385 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/man3/raise.3:64
251 #: build/C/man3/siginterrupt.3:87 build/C/man3/sigpause.3:56
252 #: build/C/man3/sigqueue.3:114 build/C/man3/sigsetops.3:132
253 #: build/C/man3/sigvec.3:221 build/C/man3/sigwait.3:80
254 #: build/C/man3/sysv_signal.3:60
255 #, no-wrap
256 msgid "ATTRIBUTES"
257 msgstr "属性"
258
259 #. type: SS
260 #: build/C/man3/bsd_signal.3:64 build/C/man3/raise.3:65
261 #: build/C/man3/siginterrupt.3:88 build/C/man3/sigpause.3:57
262 #: build/C/man3/sigqueue.3:115 build/C/man3/sigsetops.3:133
263 #: build/C/man3/sigvec.3:222 build/C/man3/sigwait.3:81
264 #: build/C/man3/sysv_signal.3:61
265 #, no-wrap
266 msgid "Multithreading (see pthreads(7))"
267 msgstr "マルチスレッディング (pthreads(7) 参照)"
268
269 #. type: Plain text
270 #: build/C/man3/bsd_signal.3:68
271 msgid "The B<bsd_signal>()  function is thread-safe."
272 msgstr "B<bsd_signal>()  関数はスレッドセーフである。"
273
274 #. type: SH
275 #: build/C/man3/bsd_signal.3:68 build/C/man2/eventfd.2:266
276 #: build/C/man2/getitimer.2:155 build/C/man3/gsignal.3:95
277 #: build/C/man2/kill.2:121 build/C/man2/killpg.2:111 build/C/man2/pause.2:57
278 #: build/C/man2/prctl.2:1070 build/C/man3/profil.3:70
279 #: build/C/man3/psignal.3:99 build/C/man3/raise.3:69
280 #: build/C/man2/restart_syscall.2:100 build/C/man2/rt_sigqueueinfo.2:176
281 #: build/C/man2/s390_runtime_instr.2:81 build/C/man2/sgetmask.2:73
282 #: build/C/man2/sigaction.2:688 build/C/man2/sigaltstack.2:158
283 #: build/C/man7/sigevent.7:130 build/C/man3/siginterrupt.3:93
284 #: build/C/man2/signal.2:110 build/C/man7/signal.7:872
285 #: build/C/man2/signalfd.2:307 build/C/man3/sigpause.3:61
286 #: build/C/man2/sigpending.2:64 build/C/man2/sigprocmask.2:112
287 #: build/C/man3/sigqueue.3:119 build/C/man2/sigreturn.2:68
288 #: build/C/man3/sigset.3:173 build/C/man3/sigsetops.3:145
289 #: build/C/man2/sigsuspend.2:84 build/C/man3/sigvec.3:241
290 #: build/C/man3/sigwait.3:85 build/C/man2/sigwaitinfo.2:133
291 #: build/C/man3/sysv_signal.3:65 build/C/man2/timer_create.2:195
292 #: build/C/man2/timer_delete.2:67 build/C/man2/timer_getoverrun.2:97
293 #: build/C/man2/timer_settime.2:207 build/C/man2/timerfd_create.2:378
294 #: build/C/man2/tkill.2:109 build/C/man2/wait.2:423 build/C/man2/wait4.2:138
295 #, no-wrap
296 msgid "CONFORMING TO"
297 msgstr "準拠"
298
299 #. type: Plain text
300 #: build/C/man3/bsd_signal.3:75
301 msgid ""
302 "4.2BSD, POSIX.1-2001.  POSIX.1-2008 removes the specification of "
303 "B<bsd_signal>(), recommending the use of B<sigaction>(2)  instead."
304 msgstr ""
305 "4.2BSD, POSIX.1-2001.  POSIX.1-2008 では B<bsd_signal>()  の仕様が削除されて"
306 "いる。 代わりに、 B<sigaction>(2)  の使用が推奨されている。"
307
308 #. type: SH
309 #: build/C/man3/bsd_signal.3:75 build/C/man2/eventfd.2:271
310 #: build/C/man2/getitimer.2:165 build/C/man2/kill.2:123
311 #: build/C/man2/killpg.2:115 build/C/man3/raise.3:71
312 #: build/C/man2/restart_syscall.2:102 build/C/man2/rt_sigqueueinfo.2:178
313 #: build/C/man2/s390_runtime_instr.2:84 build/C/man2/sgetmask.2:75
314 #: build/C/man2/sigaction.2:691 build/C/man2/sigaltstack.2:160
315 #: build/C/man2/signal.2:112 build/C/man2/signalfd.2:312
316 #: build/C/man3/sigpause.3:65 build/C/man2/sigpending.2:66
317 #: build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:121
318 #: build/C/man2/sigreturn.2:74 build/C/man3/sigset.3:190
319 #: build/C/man3/sigsetops.3:147 build/C/man2/sigsuspend.2:86
320 #: build/C/man3/sigvec.3:247 build/C/man3/sigwait.3:87
321 #: build/C/man2/sigwaitinfo.2:135 build/C/man3/sysv_signal.3:67
322 #: build/C/man2/timer_create.2:197 build/C/man2/timer_getoverrun.2:99
323 #: build/C/man2/tkill.2:115 build/C/man2/wait.2:425 build/C/man2/wait4.2:147
324 #, no-wrap
325 msgid "NOTES"
326 msgstr "注意"
327
328 #. type: Plain text
329 #: build/C/man3/bsd_signal.3:81
330 msgid ""
331 "Use of B<bsd_signal>()  should be avoided; use B<sigaction>(2)  instead."
332 msgstr ""
333 "B<bsd_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使うこ"
334 "と。"
335
336 #. type: Plain text
337 #: build/C/man3/bsd_signal.3:92
338 msgid ""
339 "On modern Linux systems, B<bsd_signal>()  and B<signal>(2)  are equivalent.  "
340 "But on older systems, B<signal>(2)  provided unreliable signal semantics; "
341 "see B<signal>(2)  for details."
342 msgstr ""
343 "最近の Linux システムでは、 B<bsd_signal>()  と B<signal>(2)  は等価である。"
344 "しかし、以前のシステムでは、 B<signal>(2)  は信頼性に欠けるシグナル処理方式を"
345 "提供していた。 詳細は B<signal>(2)  を参照。"
346
347 #. type: Plain text
348 #: build/C/man3/bsd_signal.3:99 build/C/man3/sysv_signal.3:92
349 msgid ""
350 "The use of I<sighandler_t> is a GNU extension; this type is defined only if "
351 "the B<_GNU_SOURCE> feature test macro is defined."
352 msgstr ""
353 "I<sighandler_t> を使っているのは GNU による拡張である。 この型は機能検査マク"
354 "ロ B<_GNU_SOURCE> を定義した場合にのみ定義される。"
355
356 #. type: SH
357 #: build/C/man3/bsd_signal.3:99 build/C/man2/eventfd.2:417
358 #: build/C/man2/getitimer.2:246 build/C/man3/gsignal.3:103
359 #: build/C/man2/kill.2:171 build/C/man2/killpg.2:134 build/C/man2/pause.2:59
360 #: build/C/man2/prctl.2:1084 build/C/man3/profil.3:81
361 #: build/C/man3/psignal.3:113 build/C/man3/raise.3:82
362 #: build/C/man2/restart_syscall.2:135 build/C/man2/rt_sigqueueinfo.2:188
363 #: build/C/man2/s390_runtime_instr.2:88 build/C/man2/sgetmask.2:89
364 #: build/C/man2/sigaction.2:804 build/C/man2/sigaltstack.2:234
365 #: build/C/man7/sigevent.7:132 build/C/man3/siginterrupt.3:102
366 #: build/C/man2/signal.2:278 build/C/man7/signal.7:884
367 #: build/C/man2/signalfd.2:433 build/C/man3/sigpause.3:111
368 #: build/C/man2/sigpending.2:91 build/C/man2/sigprocmask.2:144
369 #: build/C/man3/sigqueue.3:154 build/C/man2/sigreturn.2:123
370 #: build/C/man3/sigset.3:266 build/C/man3/sigsetops.3:186
371 #: build/C/man2/sigsuspend.2:108 build/C/man3/sigvec.3:272
372 #: build/C/man3/sigwait.3:94 build/C/man2/sigwaitinfo.2:201
373 #: build/C/man3/sysv_signal.3:92 build/C/man2/timer_create.2:410
374 #: build/C/man2/timer_delete.2:69 build/C/man2/timer_getoverrun.2:131
375 #: build/C/man2/timer_settime.2:212 build/C/man2/timerfd_create.2:548
376 #: build/C/man2/tkill.2:124 build/C/man2/wait.2:635 build/C/man2/wait4.2:165
377 #, no-wrap
378 msgid "SEE ALSO"
379 msgstr "関連項目"
380
381 #. type: Plain text
382 #: build/C/man3/bsd_signal.3:104
383 msgid "B<sigaction>(2), B<signal>(2), B<sysv_signal>(3), B<signal>(7)"
384 msgstr "B<sigaction>(2), B<signal>(2), B<sysv_signal>(3), B<signal>(7)"
385
386 #. type: SH
387 #: build/C/man3/bsd_signal.3:104 build/C/man2/eventfd.2:428
388 #: build/C/man2/getitimer.2:253 build/C/man3/gsignal.3:107
389 #: build/C/man2/kill.2:181 build/C/man2/killpg.2:140 build/C/man2/pause.2:64
390 #: build/C/man2/prctl.2:1087 build/C/man3/profil.3:87
391 #: build/C/man3/psignal.3:118 build/C/man3/raise.3:89
392 #: build/C/man2/restart_syscall.2:144 build/C/man2/rt_sigqueueinfo.2:196
393 #: build/C/man2/s390_runtime_instr.2:91 build/C/man2/sgetmask.2:92
394 #: build/C/man2/sigaction.2:825 build/C/man2/sigaltstack.2:241
395 #: build/C/man7/sigevent.7:142 build/C/man3/siginterrupt.3:104
396 #: build/C/man2/signal.2:297 build/C/man7/signal.7:919
397 #: build/C/man2/signalfd.2:446 build/C/man3/sigpause.3:119
398 #: build/C/man2/sigpending.2:99 build/C/man2/sigprocmask.2:155
399 #: build/C/man3/sigqueue.3:162 build/C/man2/sigreturn.2:130
400 #: build/C/man3/sigset.3:276 build/C/man3/sigsetops.3:191
401 #: build/C/man2/sigsuspend.2:118 build/C/man3/sigvec.3:282
402 #: build/C/man3/sigwait.3:102 build/C/man2/sigwaitinfo.2:213
403 #: build/C/man3/sysv_signal.3:97 build/C/man2/timer_create.2:425
404 #: build/C/man2/timer_delete.2:75 build/C/man2/timer_getoverrun.2:141
405 #: build/C/man2/timer_settime.2:216 build/C/man2/timerfd_create.2:560
406 #: build/C/man2/tkill.2:129 build/C/man2/wait.2:647 build/C/man2/wait4.2:172
407 #, no-wrap
408 msgid "COLOPHON"
409 msgstr "この文書について"
410
411 #. type: Plain text
412 #: build/C/man3/bsd_signal.3:112 build/C/man2/eventfd.2:436
413 #: build/C/man2/getitimer.2:261 build/C/man3/gsignal.3:115
414 #: build/C/man2/kill.2:189 build/C/man2/killpg.2:148 build/C/man2/pause.2:72
415 #: build/C/man2/prctl.2:1095 build/C/man3/profil.3:95
416 #: build/C/man3/psignal.3:126 build/C/man3/raise.3:97
417 #: build/C/man2/restart_syscall.2:152 build/C/man2/rt_sigqueueinfo.2:204
418 #: build/C/man2/s390_runtime_instr.2:99 build/C/man2/sgetmask.2:100
419 #: build/C/man2/sigaction.2:833 build/C/man2/sigaltstack.2:249
420 #: build/C/man7/sigevent.7:150 build/C/man3/siginterrupt.3:112
421 #: build/C/man2/signal.2:305 build/C/man7/signal.7:927
422 #: build/C/man2/signalfd.2:454 build/C/man3/sigpause.3:127
423 #: build/C/man2/sigpending.2:107 build/C/man2/sigprocmask.2:163
424 #: build/C/man3/sigqueue.3:170 build/C/man2/sigreturn.2:138
425 #: build/C/man3/sigset.3:284 build/C/man3/sigsetops.3:199
426 #: build/C/man2/sigsuspend.2:126 build/C/man3/sigvec.3:290
427 #: build/C/man3/sigwait.3:110 build/C/man2/sigwaitinfo.2:221
428 #: build/C/man3/sysv_signal.3:105 build/C/man2/timer_create.2:433
429 #: build/C/man2/timer_delete.2:83 build/C/man2/timer_getoverrun.2:149
430 #: build/C/man2/timer_settime.2:224 build/C/man2/timerfd_create.2:568
431 #: build/C/man2/tkill.2:137 build/C/man2/wait.2:655 build/C/man2/wait4.2:180
432 #, fuzzy
433 #| msgid ""
434 #| "This page is part of release 3.75 of the Linux I<man-pages> project.  A "
435 #| "description of the project, information about reporting bugs, and the "
436 #| "latest version of this page, can be found at \\%http://www.kernel.org/doc/"
437 #| "man-pages/."
438 msgid ""
439 "This page is part of release 3.76 of the Linux I<man-pages> project.  A "
440 "description of the project, information about reporting bugs, and the latest "
441 "version of this page, can be found at \\%http://www.kernel.org/doc/man-"
442 "pages/."
443 msgstr ""
444 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.75 の一部であ"
445 "る。 プロジェクトの説明とバグ報告に関する情報は \\%http://www.kernel.org/doc/"
446 "man-pages/ に書かれている。"
447
448 #. type: TH
449 #: build/C/man2/eventfd.2:22
450 #, no-wrap
451 msgid "EVENTFD"
452 msgstr "EVENTFD"
453
454 #. type: TH
455 #: build/C/man2/eventfd.2:22 build/C/man2/getitimer.2:12
456 #: build/C/man3/profil.3:28 build/C/man2/signalfd.2:20
457 #, no-wrap
458 msgid "2014-07-08"
459 msgstr "2014-07-08"
460
461 #. type: TH
462 #: build/C/man2/eventfd.2:22 build/C/man2/getitimer.2:12
463 #: build/C/man2/kill.2:44 build/C/man2/killpg.2:42 build/C/man2/pause.2:30
464 #: build/C/man2/prctl.2:52 build/C/man3/profil.3:28
465 #: build/C/man2/restart_syscall.2:33 build/C/man2/rt_sigqueueinfo.2:25
466 #: build/C/man2/sgetmask.2:26 build/C/man2/sigaction.2:47
467 #: build/C/man2/sigaltstack.2:27 build/C/man2/signal.2:36
468 #: build/C/man7/signal.7:46 build/C/man2/signalfd.2:20
469 #: build/C/man3/sigpause.3:25 build/C/man2/sigpending.2:29
470 #: build/C/man2/sigprocmask.2:29 build/C/man3/sigqueue.3:28
471 #: build/C/man2/sigreturn.2:30 build/C/man3/sigset.3:26
472 #: build/C/man3/sigsetops.3:31 build/C/man2/sigsuspend.2:29
473 #: build/C/man3/sigvec.3:26 build/C/man3/sigwait.3:26
474 #: build/C/man2/sigwaitinfo.2:25 build/C/man2/timer_create.2:33
475 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
476 #: build/C/man2/timer_settime.2:26 build/C/man2/timerfd_create.2:22
477 #: build/C/man2/tkill.2:29 build/C/man2/wait.2:49 build/C/man2/wait4.2:33
478 #, no-wrap
479 msgid "Linux"
480 msgstr "Linux"
481
482 #. type: Plain text
483 #: build/C/man2/eventfd.2:25
484 msgid "eventfd - create a file descriptor for event notification"
485 msgstr "eventfd - イベント通知用のファイルディスクリプタを生成する"
486
487 #. type: Plain text
488 #: build/C/man2/eventfd.2:27
489 msgid "B<#include E<lt>sys/eventfd.hE<gt>>"
490 msgstr "B<#include E<lt>sys/eventfd.hE<gt>>"
491
492 #. type: Plain text
493 #: build/C/man2/eventfd.2:29
494 msgid "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
495 msgstr "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
496
497 #. type: Plain text
498 #: build/C/man2/eventfd.2:39
499 msgid ""
500 "B<eventfd>()  creates an \"eventfd object\" that can be used as an event "
501 "wait/notify mechanism by user-space applications, and by the kernel to "
502 "notify user-space applications of events.  The object contains an unsigned "
503 "64-bit integer (I<uint64_t>)  counter that is maintained by the kernel.  "
504 "This counter is initialized with the value specified in the argument "
505 "I<initval>."
506 msgstr ""
507 "B<eventfd>()  は \"eventfd オブジェクト\" を生成する。 eventfd オブジェクトは"
508 "ユーザ空間アプリケーションがイベント待ち受け/通知用の 仕組みとして使うことが"
509 "できる。また、カーネルがユーザ空間アプリケーションに イベントを通知するために"
510 "も使うことができる。 このオブジェクトには、unsigned の 64 ビット整数 "
511 "(I<uint64_t>)  型のカウンタが含まれており、このカウンタはカーネルにより管理さ"
512 "れる。 このカウンタは I<initval> 引き数で指定された値で初期化される。"
513
514 #. type: Plain text
515 #: build/C/man2/eventfd.2:44
516 msgid ""
517 "The following values may be bitwise ORed in I<flags> to change the behavior "
518 "of B<eventfd>():"
519 msgstr ""
520 "以下の値のいくつかをビット単位の論理和 (OR) で指定することで、 B<eventfd>() "
521 "の振舞いを変更することができる。"
522
523 #. type: TP
524 #: build/C/man2/eventfd.2:44
525 #, no-wrap
526 msgid "B<EFD_CLOEXEC> (since Linux 2.6.27)"
527 msgstr "B<EFD_CLOEXEC> (Linux 2.6.27 以降)"
528
529 #. type: Plain text
530 #: build/C/man2/eventfd.2:54 build/C/man2/signalfd.2:95
531 #: build/C/man2/timerfd_create.2:110
532 msgid ""
533 "Set the close-on-exec (B<FD_CLOEXEC>)  flag on the new file descriptor.  See "
534 "the description of the B<O_CLOEXEC> flag in B<open>(2)  for reasons why this "
535 "may be useful."
536 msgstr ""
537 "新しいファイルディスクリプタに対して close-on-exec (B<FD_CLOEXEC>)  フラグを"
538 "セットする。 このフラグが役に立つ理由については、 B<open>(2)  の "
539 "B<O_CLOEXEC> フラグの説明を参照のこと。"
540
541 #. type: TP
542 #: build/C/man2/eventfd.2:54
543 #, no-wrap
544 msgid "B<EFD_NONBLOCK> (since Linux 2.6.27)"
545 msgstr "B<EFD_NONBLOCK> (Linux 2.6.27 以降)"
546
547 #. type: Plain text
548 #: build/C/man2/eventfd.2:62 build/C/man2/signalfd.2:85
549 #: build/C/man2/timerfd_create.2:100
550 msgid ""
551 "Set the B<O_NONBLOCK> file status flag on the new open file description.  "
552 "Using this flag saves extra calls to B<fcntl>(2)  to achieve the same result."
553 msgstr ""
554 "新しく生成されるオープンファイル記述 (open file description) の "
555 "B<O_NONBLOCK> ファイルステータスフラグをセットする。 このフラグを使うこと"
556 "で、 B<O_NONBLOCK> をセットするために B<fcntl>(2)  を追加で呼び出す必要がなく"
557 "なる。"
558
559 #. type: TP
560 #: build/C/man2/eventfd.2:62
561 #, no-wrap
562 msgid "B<EFD_SEMAPHORE> (since Linux 2.6.30)"
563 msgstr "B<EFD_SEMAPHORE> (Linux 2.6.30 以降)"
564
565 #. type: Plain text
566 #: build/C/man2/eventfd.2:66
567 msgid ""
568 "Provide semaphore-like semantics for reads from the new file descriptor.  "
569 "See below."
570 msgstr ""
571 "新しいファイルディスクリプタからの読み出しにおいて、セマフォ風の動作を行う。 "
572 "下記参照。"
573
574 #. type: Plain text
575 #: build/C/man2/eventfd.2:70 build/C/man2/signalfd.2:99
576 msgid ""
577 "In Linux up to version 2.6.26, the I<flags> argument is unused, and must be "
578 "specified as zero."
579 msgstr ""
580 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
581 "しなければならない。"
582
583 #. type: Plain text
584 #: build/C/man2/eventfd.2:76
585 msgid ""
586 "As its return value, B<eventfd>()  returns a new file descriptor that can be "
587 "used to refer to the eventfd object.  The following operations can be "
588 "performed on the file descriptor:"
589 msgstr ""
590 "B<eventfd>()  は eventfd オブジェクトを参照するのに使用できる新しいファイル"
591 "ディスクリプタ を返す。返されたファイルディスクリプタに対しては以下の操作を実"
592 "行できる。"
593
594 #. type: TP
595 #: build/C/man2/eventfd.2:76 build/C/man2/signalfd.2:102
596 #: build/C/man2/timerfd_create.2:218
597 #, no-wrap
598 msgid "B<read>(2)"
599 msgstr "B<read>(2)"
600
601 #. type: Plain text
602 #: build/C/man2/eventfd.2:86
603 msgid ""
604 "Each successful B<read>(2)  returns an 8-byte integer.  A B<read>(2)  will "
605 "fail with the error B<EINVAL> if the size of the supplied buffer is less "
606 "than 8 bytes."
607 msgstr ""
608 "B<read>(2) は成功すると、8 バイトの整数を返す。 渡されたバッファの大きさが 8 "
609 "バイト未満の場合、 B<read>(2)  はエラー B<EINVAL> で失敗する。"
610
611 #. type: Plain text
612 #: build/C/man2/eventfd.2:91
613 msgid ""
614 "The value returned by B<read>(2)  is in host byte order\\(emthat is, the "
615 "native byte order for integers on the host machine."
616 msgstr ""
617 "B<read>(2) が返す値は、ホストバイトオーダ、つまり、そのホストマシンにおける整"
618 "数の通常のバイトオーダである。"
619
620 #. type: Plain text
621 #: build/C/man2/eventfd.2:98
622 msgid ""
623 "The semantics of B<read>(2)  depend on whether the eventfd counter currently "
624 "has a nonzero value and whether the B<EFD_SEMAPHORE> flag was specified when "
625 "creating the eventfd file descriptor:"
626 msgstr ""
627 "B<read>(2) の動作は、 eventfd カウンタの現在の値が 0 以外であるかと、 "
628 "eventfd ファイルディスクリプタを作成する際に B<EFD_SEMAPHORE> フラグが指定さ"
629 "れたか、により変化する。"
630
631 #. type: IP
632 #: build/C/man2/eventfd.2:99 build/C/man2/eventfd.2:106
633 #: build/C/man2/eventfd.2:113 build/C/man2/eventfd.2:158
634 #: build/C/man2/eventfd.2:168 build/C/man2/eventfd.2:178
635 #: build/C/man2/prctl.2:867 build/C/man2/prctl.2:872 build/C/man2/prctl.2:877
636 #: build/C/man2/prctl.2:887 build/C/man3/psignal.3:105
637 #: build/C/man3/psignal.3:109 build/C/man2/sigaction.2:309
638 #: build/C/man2/sigaction.2:324 build/C/man2/sigaction.2:340
639 #: build/C/man2/sigaction.2:355 build/C/man2/sigaction.2:402
640 #: build/C/man2/sigaction.2:438 build/C/man2/signal.2:68
641 #: build/C/man2/signal.2:73 build/C/man2/signal.2:80 build/C/man2/signal.2:224
642 #: build/C/man2/signal.2:228 build/C/man2/signal.2:244
643 #: build/C/man7/signal.7:149 build/C/man7/signal.7:157
644 #: build/C/man7/signal.7:615 build/C/man7/signal.7:617
645 #: build/C/man7/signal.7:638 build/C/man7/signal.7:672
646 #: build/C/man7/signal.7:676 build/C/man7/signal.7:683
647 #: build/C/man7/signal.7:701 build/C/man7/signal.7:707
648 #: build/C/man7/signal.7:714 build/C/man7/signal.7:719
649 #: build/C/man7/signal.7:723 build/C/man7/signal.7:742
650 #: build/C/man7/signal.7:756 build/C/man7/signal.7:767
651 #: build/C/man7/signal.7:774 build/C/man7/signal.7:783
652 #: build/C/man7/signal.7:791 build/C/man7/signal.7:797
653 #: build/C/man7/signal.7:817 build/C/man7/signal.7:831
654 #: build/C/man7/signal.7:842 build/C/man7/signal.7:845
655 #: build/C/man7/signal.7:848 build/C/man7/signal.7:851
656 #: build/C/man7/signal.7:858 build/C/man7/signal.7:864
657 #: build/C/man7/signal.7:868 build/C/man3/sigwait.3:62
658 #: build/C/man3/sigwait.3:67 build/C/man2/timer_create.2:218
659 #: build/C/man2/timer_create.2:221 build/C/man2/timer_create.2:224
660 #: build/C/man2/timer_create.2:228 build/C/man2/timer_create.2:231
661 #: build/C/man2/timer_create.2:246 build/C/man2/timer_create.2:250
662 #, no-wrap
663 msgid "*"
664 msgstr "*"
665
666 #. type: Plain text
667 #: build/C/man2/eventfd.2:106
668 msgid ""
669 "If B<EFD_SEMAPHORE> was not specified and the eventfd counter has a nonzero "
670 "value, then a B<read>(2)  returns 8 bytes containing that value, and the "
671 "counter's value is reset to zero."
672 msgstr ""
673 "B<EFD_SEMAPHORE> が指定されておらず、eventfd カウンタが 0 以外の値の場合、 "
674 "B<read>(2) はカウンタ値を格納した 8 バイトの値を返し、 カウンタ値は 0 にリ"
675 "セットされる。"
676
677 #. type: Plain text
678 #: build/C/man2/eventfd.2:113
679 msgid ""
680 "If B<EFD_SEMAPHORE> was specified and the eventfd counter has a nonzero "
681 "value, then a B<read>(2)  returns 8 bytes containing the value 1, and the "
682 "counter's value is decremented by 1."
683 msgstr ""
684 "B<EFD_SEMAPHORE> が指定されていて eventfd カウンタが 0 以外の値の場合、 "
685 "B<read>(2) は値 1 の 8 バイト値を返し、カウンタ値は 1 減算される。"
686
687 #. type: Plain text
688 #: build/C/man2/eventfd.2:123
689 msgid ""
690 "If the eventfd counter is zero at the time of the call to B<read>(2), then "
691 "the call either blocks until the counter becomes nonzero (at which time, the "
692 "B<read>(2)  proceeds as described above)  or fails with the error B<EAGAIN> "
693 "if the file descriptor has been made nonblocking."
694 msgstr ""
695 "B<read>(2) を呼び出した時点で eventfd カウンタが 0 の場合、 B<read>(2) はカウ"
696 "ンタが 0 以外になるまで停止 (block) する (0 以外になった時点で B<read>(2) は"
697 "上記で述べた通り実行を再開する)、 もしくはファイルディスクリプタが非停止 "
698 "(nonblocking) に設定されている場合はエラー B<EAGAIN> で失敗する。"
699
700 #. type: TP
701 #: build/C/man2/eventfd.2:124
702 #, no-wrap
703 msgid "B<write>(2)"
704 msgstr "B<write>(2)"
705
706 #. type: Plain text
707 #: build/C/man2/eventfd.2:141
708 msgid ""
709 "A B<write>(2)  call adds the 8-byte integer value supplied in its buffer to "
710 "the counter.  The maximum value that may be stored in the counter is the "
711 "largest unsigned 64-bit value minus 1 (i.e., 0xfffffffffffffffe).  If the "
712 "addition would cause the counter's value to exceed the maximum, then the "
713 "B<write>(2)  either blocks until a B<read>(2)  is performed on the file "
714 "descriptor, or fails with the error B<EAGAIN> if the file descriptor has "
715 "been made nonblocking."
716 msgstr ""
717 "B<write>(2)  は、引き数のバッファで渡された 8 バイトの整数値をカウンタに加算"
718 "する。 カウンタに格納可能な最大値は unsigned の 64 ビット整数の最大値から 1 "
719 "を引いた値 (すなわち 0xfffffffffffffffe) である。 加算を行うとカウンタ値が最"
720 "大値を超過する場合には、 そのファイルディスクリプタに対して B<read>(2)  が実"
721 "行されるまで、 B<write>(2)  は停止 (block) する、 もしくはファイルディスクリ"
722 "プタが非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗す"
723 "る。"
724
725 #. type: Plain text
726 #: build/C/man2/eventfd.2:148
727 msgid ""
728 "A B<write>(2)  will fail with the error B<EINVAL> if the size of the "
729 "supplied buffer is less than 8 bytes, or if an attempt is made to write the "
730 "value 0xffffffffffffffff."
731 msgstr ""
732 "渡されたバッファの大きさが 8 バイト未満の場合、もしくは 値 "
733 "0xffffffffffffffff を書き込もうとした場合、 B<write>(2)  はエラー B<EINVAL> "
734 "で失敗する。"
735
736 #. type: TP
737 #: build/C/man2/eventfd.2:148 build/C/man2/signalfd.2:140
738 #: build/C/man2/timerfd_create.2:251
739 #, no-wrap
740 msgid "B<poll>(2), B<select>(2) (and similar)"
741 msgstr "B<poll>(2), B<select>(2) (と同様の操作)"
742
743 #. type: Plain text
744 #: build/C/man2/eventfd.2:157
745 msgid ""
746 "The returned file descriptor supports B<poll>(2)  (and analogously "
747 "B<epoll>(7))  and B<select>(2), as follows:"
748 msgstr ""
749 "返されたファイルディスクリプタは、 B<poll>(2)  (B<epoll>(7)  も同じ) や "
750 "B<select>(2)  をサポートしており、以下のような動作をする。"
751
752 #. type: Plain text
753 #: build/C/man2/eventfd.2:168
754 msgid ""
755 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
756 "B<poll>(2)  B<POLLIN> flag)  if the counter has a value greater than 0."
757 msgstr ""
758 "カウンタが 0 より大きい値の場合、 ファイルディスクリプタは読み出し可能となる "
759 "(B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
760
761 #. type: Plain text
762 #: build/C/man2/eventfd.2:178
763 msgid ""
764 "The file descriptor is writable (the B<select>(2)  I<writefds> argument; the "
765 "B<poll>(2)  B<POLLOUT> flag)  if it is possible to write a value of at least "
766 "\"1\" without blocking."
767 msgstr ""
768 "少なくとも値 \"1\" を、停止 (block) を伴わずに書き込める場合、 ファイルディス"
769 "クリプタは書き込み可能となる (B<select>(2)  の I<writefds> 引き数や "
770 "B<poll>(2)  の B<POLLOUT> フラグ)。"
771
772 #. type: Plain text
773 #: build/C/man2/eventfd.2:198
774 msgid ""
775 "If an overflow of the counter value was detected, then B<select>(2)  "
776 "indicates the file descriptor as being both readable and writable, and "
777 "B<poll>(2)  returns a B<POLLERR> event.  As noted above, B<write>(2)  can "
778 "never overflow the counter.  However an overflow can occur if 2^64 eventfd "
779 "\"signal posts\" were performed by the KAIO subsystem (theoretically "
780 "possible, but practically unlikely).  If an overflow has occurred, then "
781 "B<read>(2)  will return that maximum I<uint64_t> value (i.e., "
782 "0xffffffffffffffff)."
783 msgstr ""
784 "カウンタ値のオーバーフローが検出された場合、 B<select>(2)  はファイルディスク"
785 "リプタは読み出し可能と書き込み可能の両方を通知し、 B<poll>(2)  は B<POLLERR> "
786 "イベントを返す。 上述の通り、 B<write>(2)  でカウンタがオーバーフローすること"
787 "は決してない。 しかしながら、 KAIO サブシステムによって 2^64 回の eventfd "
788 "\"signal posts\" が 実行された場合にはオーバーフローが起こり得る (理論的には"
789 "あり得るが、実用的にはあり得ない)。 オーバーフローが発生した場合、 "
790 "B<read>(2)  は I<uint64_t> の最大値 (すなわち 0xffffffffffffffff) を返す。"
791
792 #. type: Plain text
793 #: build/C/man2/eventfd.2:205
794 msgid ""
795 "The eventfd file descriptor also supports the other file-descriptor "
796 "multiplexing APIs: B<pselect>(2)  and B<ppoll>(2)."
797 msgstr ""
798 "eventfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
799 "である B<pselect>(2) と B<ppoll>(2) もサポートしている。"
800
801 #. type: TP
802 #: build/C/man2/eventfd.2:205 build/C/man2/signalfd.2:160
803 #: build/C/man2/timerfd_create.2:269
804 #, no-wrap
805 msgid "B<close>(2)"
806 msgstr "B<close>(2)"
807
808 #. type: Plain text
809 #: build/C/man2/eventfd.2:210
810 msgid ""
811 "When the file descriptor is no longer required it should be closed.  When "
812 "all file descriptors associated with the same eventfd object have been "
813 "closed, the resources for object are freed by the kernel."
814 msgstr ""
815 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
816 "る。 同じ eventfd オブジェクトに関連付けられたファイルディスクリプタが全て ク"
817 "ローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
818
819 #. type: Plain text
820 #: build/C/man2/eventfd.2:222
821 msgid ""
822 "A copy of the file descriptor created by B<eventfd>()  is inherited by the "
823 "child produced by B<fork>(2).  The duplicate file descriptor is associated "
824 "with the same eventfd object.  File descriptors created by B<eventfd>()  are "
825 "preserved across B<execve>(2), unless the close-on-exec flag has been set."
826 msgstr ""
827 "B<fork>(2) で生成された子プロセスは、 B<eventfd>() で生成されたファイルディス"
828 "クリプタのコピーを継承する。 複製されたファイルディスクリプタは同じ eventfd "
829 "オブジェクトに関連付けられる。 close-on-exec フラグが設定されていない場合、 "
830 "B<execve>(2) の前後で B<eventfd>() で生成されたファイルディスクリプタは保持さ"
831 "れる。"
832
833 #. type: Plain text
834 #: build/C/man2/eventfd.2:229
835 msgid ""
836 "On success, B<eventfd>()  returns a new eventfd file descriptor.  On error, "
837 "-1 is returned and I<errno> is set to indicate the error."
838 msgstr ""
839 "成功すると、 B<eventfd>()  は新規の eventfd ファイルディスクリプタを返す。 エ"
840 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
841
842 #. type: TP
843 #: build/C/man2/eventfd.2:230 build/C/man2/getitimer.2:142
844 #: build/C/man2/kill.2:106 build/C/man2/killpg.2:95 build/C/man2/prctl.2:829
845 #: build/C/man2/prctl.2:834 build/C/man2/prctl.2:846 build/C/man2/prctl.2:851
846 #: build/C/man2/prctl.2:860 build/C/man2/prctl.2:900 build/C/man2/prctl.2:910
847 #: build/C/man2/prctl.2:918 build/C/man2/prctl.2:929 build/C/man2/prctl.2:938
848 #: build/C/man2/prctl.2:952 build/C/man2/prctl.2:964 build/C/man2/prctl.2:975
849 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man2/s390_runtime_instr.2:66
850 #: build/C/man2/sigaction.2:681 build/C/man2/sigaltstack.2:142
851 #: build/C/man3/siginterrupt.3:84 build/C/man2/signal.2:106
852 #: build/C/man2/signalfd.2:271 build/C/man2/signalfd.2:279
853 #: build/C/man2/sigprocmask.2:107 build/C/man3/sigqueue.3:98
854 #: build/C/man3/sigsetops.3:128 build/C/man3/sigwait.3:75
855 #: build/C/man2/sigwaitinfo.2:129 build/C/man2/timer_create.2:181
856 #: build/C/man2/timer_delete.2:61 build/C/man2/timer_getoverrun.2:91
857 #: build/C/man2/timer_settime.2:191 build/C/man2/timer_settime.2:199
858 #: build/C/man2/timerfd_create.2:312 build/C/man2/timerfd_create.2:320
859 #: build/C/man2/timerfd_create.2:356 build/C/man2/timerfd_create.2:363
860 #: build/C/man2/timerfd_create.2:369 build/C/man2/tkill.2:93
861 #: build/C/man2/wait.2:418
862 #, no-wrap
863 msgid "B<EINVAL>"
864 msgstr "B<EINVAL>"
865
866 #. type: Plain text
867 #: build/C/man2/eventfd.2:234
868 msgid "An unsupported value was specified in I<flags>."
869 msgstr "I<flags> にサポートされていない値が指定された。"
870
871 #. type: TP
872 #: build/C/man2/eventfd.2:234 build/C/man2/signalfd.2:286
873 #: build/C/man2/timerfd_create.2:327
874 #, no-wrap
875 msgid "B<EMFILE>"
876 msgstr "B<EMFILE>"
877
878 #. type: Plain text
879 #: build/C/man2/eventfd.2:237
880 msgid "The per-process limit on open file descriptors has been reached."
881 msgstr ""
882 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
883
884 #. type: TP
885 #: build/C/man2/eventfd.2:237 build/C/man2/signalfd.2:289
886 #: build/C/man2/timerfd_create.2:330
887 #, no-wrap
888 msgid "B<ENFILE>"
889 msgstr "B<ENFILE>"
890
891 #. type: Plain text
892 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
893 #: build/C/man2/timerfd_create.2:334
894 msgid ""
895 "The system-wide limit on the total number of open files has been reached."
896 msgstr "オープン済みのファイル総数がシステム全体の上限に達していた。"
897
898 #. type: TP
899 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
900 #: build/C/man2/timerfd_create.2:334
901 #, no-wrap
902 msgid "B<ENODEV>"
903 msgstr "B<ENODEV>"
904
905 #. type: Plain text
906 #: build/C/man2/eventfd.2:249 build/C/man2/signalfd.2:296
907 #: build/C/man2/timerfd_create.2:337
908 msgid "Could not mount (internal) anonymous inode device."
909 msgstr "(カーネル内の) 無名 inode デバイスをマウントできなかった。"
910
911 #. type: TP
912 #: build/C/man2/eventfd.2:249 build/C/man2/s390_runtime_instr.2:73
913 #: build/C/man2/sigaltstack.2:147 build/C/man2/signalfd.2:296
914 #: build/C/man2/timer_create.2:189 build/C/man2/timerfd_create.2:337
915 #, no-wrap
916 msgid "B<ENOMEM>"
917 msgstr "B<ENOMEM>"
918
919 #. type: Plain text
920 #: build/C/man2/eventfd.2:253
921 msgid "There was insufficient memory to create a new eventfd file descriptor."
922 msgstr ""
923 "新しい eventfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
924
925 #. type: SH
926 #: build/C/man2/eventfd.2:253 build/C/man2/prctl.2:1065
927 #: build/C/man3/psignal.3:95 build/C/man2/restart_syscall.2:96
928 #: build/C/man2/rt_sigqueueinfo.2:169 build/C/man2/s390_runtime_instr.2:79
929 #: build/C/man2/sgetmask.2:66 build/C/man2/signalfd.2:299
930 #: build/C/man3/sigqueue.3:112 build/C/man3/sigvec.3:234
931 #: build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:65
932 #: build/C/man2/timer_getoverrun.2:95 build/C/man2/timer_settime.2:205
933 #: build/C/man2/timerfd_create.2:375 build/C/man2/tkill.2:104
934 #, no-wrap
935 msgid "VERSIONS"
936 msgstr "バージョン"
937
938 #.  eventfd() is in glibc 2.7, but reportedly does not build
939 #. type: Plain text
940 #: build/C/man2/eventfd.2:266
941 msgid ""
942 "B<eventfd>()  is available on Linux since kernel 2.6.22.  Working support is "
943 "provided in glibc since version 2.8.  The B<eventfd2>()  system call (see "
944 "NOTES) is available on Linux since kernel 2.6.27.  Since version 2.9, the "
945 "glibc B<eventfd>()  wrapper will employ the B<eventfd2>()  system call, if "
946 "it is supported by the kernel."
947 msgstr ""
948 "B<eventfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
949 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<eventfd2>()  "
950 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
951 "る。 バージョン 2.9 以降では、glibc の B<eventfd>()  のラッパー関数は、カーネ"
952 "ルが対応していれば B<eventfd2>()  システムコールを利用する。"
953
954 #. type: Plain text
955 #: build/C/man2/eventfd.2:271
956 msgid "B<eventfd>()  and B<eventfd2>()  are Linux-specific."
957 msgstr "B<eventfd>()  と B<eventfd2>()  は Linux 固有である。"
958
959 #. type: Plain text
960 #: build/C/man2/eventfd.2:279
961 msgid ""
962 "Applications can use an eventfd file descriptor instead of a pipe (see "
963 "B<pipe>(2))  in all cases where a pipe is used simply to signal events.  The "
964 "kernel overhead of an eventfd file descriptor is much lower than that of a "
965 "pipe, and only one file descriptor is required (versus the two required for "
966 "a pipe)."
967 msgstr ""
968 "アプリケーションは、パイプをイベントを通知するためだけに使用している 全ての場"
969 "面において、パイプの代わりに eventfd ファイルディスクリプタを 使用することが"
970 "できる。 eventfd ファイルディスクリプタを使う方が、パイプを使う場合に比べて "
971 "カーネルでのオーバヘッドは比べるとずっと小さく、ファイルディスクリプタも 一つ"
972 "しか必要としない (パイプの場合は二つ必要である)。"
973
974 #.  or eventually syslets/threadlets
975 #. type: Plain text
976 #: build/C/man2/eventfd.2:285
977 msgid ""
978 "When used in the kernel, an eventfd file descriptor can provide a bridge "
979 "from kernel to user space, allowing, for example, functionalities like KAIO "
980 "(kernel AIO)  to signal to a file descriptor that some operation is complete."
981 msgstr ""
982 "カーネル内で使用すると、eventfd ファイルディスクリプタはカーネル空間からユー"
983 "ザ空間へのブリッジ機能を提供することができ、 例えば KAIO (kernel AIO)  のよう"
984 "な機能が、あるファイルディスクリプタに何らかの操作が完了したことを 通知するこ"
985 "とができる。"
986
987 #. type: Plain text
988 #: build/C/man2/eventfd.2:302
989 msgid ""
990 "A key point about an eventfd file descriptor is that it can be monitored "
991 "just like any other file descriptor using B<select>(2), B<poll>(2), or "
992 "B<epoll>(7).  This means that an application can simultaneously monitor the "
993 "readiness of \"traditional\" files and the readiness of other kernel "
994 "mechanisms that support the eventfd interface.  (Without the B<eventfd>()  "
995 "interface, these mechanisms could not be multiplexed via B<select>(2), "
996 "B<poll>(2), or B<epoll>(7).)"
997 msgstr ""
998 "eventfd ファイルディスクリプタの重要な点は、 eventfd ファイルディスクリプタ"
999 "が B<select>(2), B<poll>(2), B<epoll>(7)  を使って他のファイルディスクリプタ"
1000 "と全く同様に監視できる点である。 このことは、アプリケーションは「従来の "
1001 "(traditional)」 ファイルの状態変化と eventfd インタフェースをサポートする他の"
1002 "カーネル機構の状態変化を同時に監視 できることを意味する (B<eventfd>()  インタ"
1003 "フェースがない時には、これらのカーネル機構は B<select>(2), B<poll>(2), "
1004 "B<epoll>(7)  経由で多重することはできなかった)。"
1005
1006 #. type: SS
1007 #: build/C/man2/eventfd.2:302 build/C/man2/signalfd.2:326
1008 #: build/C/man2/sigwaitinfo.2:183 build/C/man2/timer_create.2:243
1009 #: build/C/man2/wait.2:525
1010 #, no-wrap
1011 msgid "C library/kernel ABI differences"
1012 msgstr ""
1013
1014 #. type: Plain text
1015 #: build/C/man2/eventfd.2:316
1016 msgid ""
1017 "There are two underlying Linux system calls: B<eventfd>()  and the more "
1018 "recent B<eventfd2>().  The former system call does not implement a I<flags> "
1019 "argument.  The latter system call implements the I<flags> values described "
1020 "above.  The glibc wrapper function will use B<eventfd2>()  where it is "
1021 "available."
1022 msgstr ""
1023 "下層にある Linux システムコールは二種類あり、 B<eventfd>()  と、もっと新しい "
1024 "B<eventfd2>()  である。 B<eventfd>()  は I<flags> 引き数を実装していない。 "
1025 "B<eventfd2>()  では上記の値の I<flags> が実装されている。 glibc のラッパー関"
1026 "数は、 B<eventfd2>()  が利用可能であれば、これを使用する。"
1027
1028 #. type: SS
1029 #: build/C/man2/eventfd.2:316
1030 #, no-wrap
1031 msgid "Additional glibc features"
1032 msgstr "glibc の追加機能"
1033
1034 #. type: Plain text
1035 #: build/C/man2/eventfd.2:320
1036 msgid ""
1037 "The GNU C library defines an additional type, and two functions that attempt "
1038 "to abstract some of the details of reading and writing on an eventfd file "
1039 "descriptor:"
1040 msgstr ""
1041 "GNU C ライブラリは、eventfd ファイルディスクリプタの読み出しと書き込みに を関"
1042 "する詳細のいくつか抽象化するために、一つの型と、二つの関数を追加で 定義してい"
1043 "る。"
1044
1045 #. type: Plain text
1046 #: build/C/man2/eventfd.2:324
1047 #, no-wrap
1048 msgid "typedef uint64_t eventfd_t;\n"
1049 msgstr "typedef uint64_t eventfd_t;\n"
1050
1051 #. type: Plain text
1052 #: build/C/man2/eventfd.2:327
1053 #, no-wrap
1054 msgid ""
1055 "int eventfd_read(int fd, eventfd_t *value);\n"
1056 "int eventfd_write(int fd, eventfd_t value);\n"
1057 msgstr ""
1058 "int eventfd_read(int fd, eventfd_t *value);\n"
1059 "int eventfd_write(int fd, eventfd_t value);\n"
1060
1061 #. type: Plain text
1062 #: build/C/man2/eventfd.2:334
1063 msgid ""
1064 "The functions perform the read and write operations on an eventfd file "
1065 "descriptor, returning 0 if the correct number of bytes was transferred, or "
1066 "-1 otherwise."
1067 msgstr ""
1068 "これらの関数は、eventfd ファイルディスクリプタに対する読み出しと 書き込みの操"
1069 "作を実行し、正しいバイト数が転送された場合には 0 を返し、そうでない場合は -1 "
1070 "を返す。"
1071
1072 #. type: SH
1073 #: build/C/man2/eventfd.2:334 build/C/man2/sigaction.2:801
1074 #: build/C/man2/sigaltstack.2:217 build/C/man2/signalfd.2:360
1075 #: build/C/man3/sigwait.3:91 build/C/man2/timer_create.2:264
1076 #: build/C/man2/timer_getoverrun.2:128 build/C/man2/timer_settime.2:209
1077 #: build/C/man2/timerfd_create.2:386 build/C/man2/wait.2:552
1078 #, no-wrap
1079 msgid "EXAMPLE"
1080 msgstr "例"
1081
1082 #. type: Plain text
1083 #: build/C/man2/eventfd.2:343
1084 msgid ""
1085 "The following program creates an eventfd file descriptor and then forks to "
1086 "create a child process.  While the parent briefly sleeps, the child writes "
1087 "each of the integers supplied in the program's command-line arguments to the "
1088 "eventfd file descriptor.  When the parent has finished sleeping, it reads "
1089 "from the eventfd file descriptor."
1090 msgstr ""
1091 "以下のプログラムは eventfd ファイルディスクリプタを生成し、 その後 fork を実"
1092 "行して子プロセスを生成する。 親プロセスが少しの間 sleep する間に、子プロセス"
1093 "は プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ eventfd "
1094 "ファイルディスクリプタに書き込む。 親プロセスは sleep を完了すると eventfd "
1095 "ファイルディスクリプタから 読み出しを行う。"
1096
1097 #. type: Plain text
1098 #: build/C/man2/eventfd.2:345
1099 msgid "The following shell session shows a sample run of the program:"
1100 msgstr "以下に示すシェルセッションにこのプログラムの使い方を示す。"
1101
1102 #. type: Plain text
1103 #: build/C/man2/eventfd.2:357
1104 #, no-wrap
1105 msgid ""
1106 "$B< ./a.out 1 2 4 7 14>\n"
1107 "Child writing 1 to efd\n"
1108 "Child writing 2 to efd\n"
1109 "Child writing 4 to efd\n"
1110 "Child writing 7 to efd\n"
1111 "Child writing 14 to efd\n"
1112 "Child completed write loop\n"
1113 "Parent about to read\n"
1114 "Parent read 28 (0x1c) from efd\n"
1115 msgstr ""
1116 "$B< ./a.out 1 2 4 7 14>\n"
1117 "Child writing 1 to efd\n"
1118 "Child writing 2 to efd\n"
1119 "Child writing 4 to efd\n"
1120 "Child writing 7 to efd\n"
1121 "Child writing 14 to efd\n"
1122 "Child completed write loop\n"
1123 "Parent about to read\n"
1124 "Parent read 28 (0x1c) from efd\n"
1125
1126 #. type: SS
1127 #: build/C/man2/eventfd.2:359 build/C/man2/signalfd.2:383
1128 #: build/C/man2/timer_create.2:295 build/C/man2/timerfd_create.2:414
1129 #: build/C/man2/wait.2:587
1130 #, no-wrap
1131 msgid "Program source"
1132 msgstr "プログラムのソース"
1133
1134 #. type: Plain text
1135 #: build/C/man2/eventfd.2:367
1136 #, no-wrap
1137 msgid ""
1138 "#include E<lt>sys/eventfd.hE<gt>\n"
1139 "#include E<lt>unistd.hE<gt>\n"
1140 "#include E<lt>stdlib.hE<gt>\n"
1141 "#include E<lt>stdio.hE<gt>\n"
1142 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1143 msgstr ""
1144 "#include E<lt>sys/eventfd.hE<gt>\n"
1145 "#include E<lt>unistd.hE<gt>\n"
1146 "#include E<lt>stdlib.hE<gt>\n"
1147 "#include E<lt>stdio.hE<gt>\n"
1148 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1149
1150 #. type: Plain text
1151 #: build/C/man2/eventfd.2:370 build/C/man2/signalfd.2:394
1152 #, no-wrap
1153 msgid ""
1154 "#define handle_error(msg) \\e\n"
1155 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1156 msgstr ""
1157 "#define handle_error(msg) \\e\n"
1158 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1159
1160 #. type: Plain text
1161 #: build/C/man2/eventfd.2:377
1162 #, no-wrap
1163 msgid ""
1164 "int\n"
1165 "main(int argc, char *argv[])\n"
1166 "{\n"
1167 "    int efd, j;\n"
1168 "    uint64_t u;\n"
1169 "    ssize_t s;\n"
1170 msgstr ""
1171 "int\n"
1172 "main(int argc, char *argv[])\n"
1173 "{\n"
1174 "    int efd, j;\n"
1175 "    uint64_t u;\n"
1176 "    ssize_t s;\n"
1177
1178 #. type: Plain text
1179 #: build/C/man2/eventfd.2:382
1180 #, no-wrap
1181 msgid ""
1182 "    if (argc E<lt> 2) {\n"
1183 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1184 "        exit(EXIT_FAILURE);\n"
1185 "    }\n"
1186 msgstr ""
1187 "    if (argc E<lt> 2) {\n"
1188 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1189 "        exit(EXIT_FAILURE);\n"
1190 "    }\n"
1191
1192 #. type: Plain text
1193 #: build/C/man2/eventfd.2:386
1194 #, no-wrap
1195 msgid ""
1196 "    efd = eventfd(0, 0);\n"
1197 "    if (efd == -1)\n"
1198 "        handle_error(\"eventfd\");\n"
1199 msgstr ""
1200 "    efd = eventfd(0, 0);\n"
1201 "    if (efd == -1)\n"
1202 "        handle_error(\"eventfd\");\n"
1203
1204 #. type: Plain text
1205 #: build/C/man2/eventfd.2:398
1206 #, no-wrap
1207 msgid ""
1208 "    switch (fork()) {\n"
1209 "    case 0:\n"
1210 "        for (j = 1; j E<lt> argc; j++) {\n"
1211 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1212 "            u = strtoull(argv[j], NULL, 0);\n"
1213 "                    /* strtoull() allows various bases */\n"
1214 "            s = write(efd, &u, sizeof(uint64_t));\n"
1215 "            if (s != sizeof(uint64_t))\n"
1216 "                handle_error(\"write\");\n"
1217 "        }\n"
1218 "        printf(\"Child completed write loop\\en\");\n"
1219 msgstr ""
1220 "    switch (fork()) {\n"
1221 "    case 0:\n"
1222 "        for (j = 1; j E<lt> argc; j++) {\n"
1223 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1224 "            u = strtoull(argv[j], NULL, 0);\n"
1225 "                    /* strtoull() allows various bases */\n"
1226 "            s = write(efd, &u, sizeof(uint64_t));\n"
1227 "            if (s != sizeof(uint64_t))\n"
1228 "                handle_error(\"write\");\n"
1229 "        }\n"
1230 "        printf(\"Child completed write loop\\en\");\n"
1231
1232 #. type: Plain text
1233 #: build/C/man2/eventfd.2:400
1234 #, no-wrap
1235 msgid "        exit(EXIT_SUCCESS);\n"
1236 msgstr "        exit(EXIT_SUCCESS);\n"
1237
1238 #. type: Plain text
1239 #: build/C/man2/eventfd.2:403
1240 #, no-wrap
1241 msgid ""
1242 "    default:\n"
1243 "        sleep(2);\n"
1244 msgstr ""
1245 "    default:\n"
1246 "        sleep(2);\n"
1247
1248 #. type: Plain text
1249 #: build/C/man2/eventfd.2:411
1250 #, no-wrap
1251 msgid ""
1252 "        printf(\"Parent about to read\\en\");\n"
1253 "        s = read(efd, &u, sizeof(uint64_t));\n"
1254 "        if (s != sizeof(uint64_t))\n"
1255 "            handle_error(\"read\");\n"
1256 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1257 "                (unsigned long long) u, (unsigned long long) u);\n"
1258 "        exit(EXIT_SUCCESS);\n"
1259 msgstr ""
1260 "        printf(\"Parent about to read\\en\");\n"
1261 "        s = read(efd, &u, sizeof(uint64_t));\n"
1262 "        if (s != sizeof(uint64_t))\n"
1263 "            handle_error(\"read\");\n"
1264 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1265 "                (unsigned long long) u, (unsigned long long) u);\n"
1266 "        exit(EXIT_SUCCESS);\n"
1267
1268 #. type: Plain text
1269 #: build/C/man2/eventfd.2:416
1270 #, no-wrap
1271 msgid ""
1272 "    case -1:\n"
1273 "        handle_error(\"fork\");\n"
1274 "    }\n"
1275 "}\n"
1276 msgstr ""
1277 "    case -1:\n"
1278 "        handle_error(\"fork\");\n"
1279 "    }\n"
1280 "}\n"
1281
1282 #. type: Plain text
1283 #: build/C/man2/eventfd.2:428
1284 msgid ""
1285 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), "
1286 "B<signalfd>(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), "
1287 "B<sem_overview>(7)"
1288 msgstr ""
1289 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), "
1290 "B<signalfd>(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), "
1291 "B<sem_overview>(7)"
1292
1293 #. type: TH
1294 #: build/C/man2/getitimer.2:12
1295 #, no-wrap
1296 msgid "GETITIMER"
1297 msgstr "GETITIMER"
1298
1299 #. type: Plain text
1300 #: build/C/man2/getitimer.2:15
1301 msgid "getitimer, setitimer - get or set value of an interval timer"
1302 msgstr "getitimer, setitimer - インターバル・タイマーの値を取得または設定する"
1303
1304 #. type: Plain text
1305 #: build/C/man2/getitimer.2:18
1306 #, no-wrap
1307 msgid "B<#include E<lt>sys/time.hE<gt>>\n"
1308 msgstr "B<#include E<lt>sys/time.hE<gt>>\n"
1309
1310 #. type: Plain text
1311 #: build/C/man2/getitimer.2:20
1312 #, no-wrap
1313 msgid "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1314 msgstr "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1315
1316 #. type: Plain text
1317 #: build/C/man2/getitimer.2:23
1318 #, no-wrap
1319 msgid ""
1320 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1321 "B<              struct itimerval *>I<old_value>B<);>\n"
1322 msgstr ""
1323 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1324 "B<              struct itimerval *>I<old_value>B<);>\n"
1325
1326 #. type: Plain text
1327 #: build/C/man2/getitimer.2:29
1328 #, fuzzy
1329 #| msgid ""
1330 #| "The system provides each process with three interval timers, each "
1331 #| "decrementing in a distinct time domain.  When any timer expires, a signal "
1332 #| "is sent to the process, and the timer (potentially) restarts."
1333 msgid ""
1334 "The system provides each process with three interval timers, each "
1335 "decrementing in a distinct time domain.  When a timer expires, a signal is "
1336 "sent to the process, and the timer is reset to the specified interval (if "
1337 "nonzero)."
1338 msgstr ""
1339 "システムは 1 個のプロセスにつき 3 個のインターバル・タイマーを提供する。 それ"
1340 "ぞれのタイマーは別々の時間領域で減少する。 どのタイマーも満了するとプロセスに"
1341 "シグナルが送られ、 タイマーは (設定によっては) 再び開始される。"
1342
1343 #. type: TP
1344 #: build/C/man2/getitimer.2:29
1345 #, no-wrap
1346 msgid "B<ITIMER_REAL>"
1347 msgstr "B<ITIMER_REAL>"
1348
1349 #. type: Plain text
1350 #: build/C/man2/getitimer.2:34
1351 msgid "decrements in real time, and delivers B<SIGALRM> upon expiration."
1352 msgstr "実時間 (real time) で減少し、満了すると B<SIGALRM> が送られる。"
1353
1354 #. type: TP
1355 #: build/C/man2/getitimer.2:34
1356 #, no-wrap
1357 msgid "B<ITIMER_VIRTUAL>"
1358 msgstr "B<ITIMER_VIRTUAL>"
1359
1360 #. type: Plain text
1361 #: build/C/man2/getitimer.2:39
1362 msgid ""
1363 "decrements only when the process is executing, and delivers B<SIGVTALRM> "
1364 "upon expiration."
1365 msgstr ""
1366 "プロセスが実行されている間のみ減少し、満了すると B<SIGVTALRM> が送られる。"
1367
1368 #. type: TP
1369 #: build/C/man2/getitimer.2:39
1370 #, no-wrap
1371 msgid "B<ITIMER_PROF>"
1372 msgstr "B<ITIMER_PROF>"
1373
1374 #. type: Plain text
1375 #: build/C/man2/getitimer.2:49
1376 msgid ""
1377 "decrements both when the process executes and when the system is executing "
1378 "on behalf of the process.  Coupled with B<ITIMER_VIRTUAL>, this timer is "
1379 "usually used to profile the time spent by the application in user and kernel "
1380 "space.  B<SIGPROF> is delivered upon expiration."
1381 msgstr ""
1382 "プロセスが実行されていて、 かつシステムがそのプロセスのために処理を行なってい"
1383 "る間に減少する。 多くの場合、このタイマーは B<ITIMER_VIRTUAL> と組み合わされ"
1384 "て、アプリケーションがカーネル空間とユーザー空間で どれだけの時間を過ごしたか"
1385 "をプロファイルするのに使用される。 満了すると B<SIGPROF> が送られる。"
1386
1387 #. type: Plain text
1388 #: build/C/man2/getitimer.2:51
1389 msgid "Timer values are defined by the following structures:"
1390 msgstr "タイマーの値は以下の構造体によって定義される:"
1391
1392 #. type: Plain text
1393 #: build/C/man2/getitimer.2:59
1394 #, no-wrap
1395 msgid ""
1396 "struct itimerval {\n"
1397 "    struct timeval it_interval; /* Interval for periodic timer */\n"
1398 "    struct timeval it_value;    /* Time until next expiration */\n"
1399 "};\n"
1400 msgstr ""
1401 "struct itimerval {\n"
1402 "    struct timeval it_interval; /* Interval for periodic timer */\n"
1403 "    struct timeval it_value;    /* Time until next expiration */\n"
1404 "};\n"
1405
1406 #. type: Plain text
1407 #: build/C/man2/getitimer.2:64
1408 #, no-wrap
1409 msgid ""
1410 "struct timeval {\n"
1411 "    time_t      tv_sec;         /* seconds */\n"
1412 "    suseconds_t tv_usec;        /* microseconds */\n"
1413 "};\n"
1414 msgstr ""
1415 "struct timeval {\n"
1416 "    time_t      tv_sec;         /* seconds */\n"
1417 "    suseconds_t tv_usec;        /* microseconds */\n"
1418 "};\n"
1419
1420 #. type: Plain text
1421 #: build/C/man2/getitimer.2:90
1422 #, fuzzy
1423 #| msgid ""
1424 #| "The function B<getitimer>()  fills the structure pointed to by "
1425 #| "I<curr_value> with the current setting for the timer specified by "
1426 #| "I<which> (one of B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>).  "
1427 #| "The element I<it_value> is set to the amount of time remaining on the "
1428 #| "timer, or zero if the timer is disabled.  Similarly, I<it_interval> is "
1429 #| "set to the reset value."
1430 msgid ""
1431 "The function B<getitimer>()  fills the structure pointed to by I<curr_value> "
1432 "with the current value (i.e., the amount of time remaining until the next "
1433 "expiration)  of the timer specified by I<which> (one of B<ITIMER_REAL>, "
1434 "B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>).  The subfields of the field "
1435 "I<it_value> are set to the amount of time remaining on the timer, or zero if "
1436 "the timer is disabled.  The I<it_interval> field is set to the timer "
1437 "interval (period); a value of zero returned in (both subfields of) this "
1438 "field indicates that this is a single-shot timer."
1439 msgstr ""
1440 "B<getitimer>()  関数は、 I<which> で指定されたタイマー (B<ITIMER_REAL>, "
1441 "B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれか) の現在の設定を、 I<curr_value> で"
1442 "指定された構造体に格納する。 I<it_value> 要素にはタイマーの残り時間が設定され"
1443 "る。タイマーがオフの場合は ゼロが設定される。同様に I<it_interval> には初期値"
1444 "が設定される。"
1445
1446 #. type: Plain text
1447 #: build/C/man2/getitimer.2:101
1448 #, fuzzy
1449 #| msgid ""
1450 #| "The function B<setitimer>()  sets the specified timer to the value in "
1451 #| "I<new_value>.  If I<old_value> is non-NULL, the old value of the timer is "
1452 #| "stored there."
1453 msgid ""
1454 "The function B<setitimer>()  sets the specified timer to the value in "
1455 "I<new_value>.  If I<old_value> is non-NULL, the old value of the timer (i."
1456 "e., the same information as returned by B<getitimer>())  is stored there."
1457 msgstr ""
1458 "B<setitimer>()  関数は指定されたタイマーに I<new_value> の値を設定する。 "
1459 "I<old_value> が NULL 以外の場合、タイマーの古い値が I<old_value> に格納され"
1460 "る。"
1461
1462 #. type: Plain text
1463 #: build/C/man2/getitimer.2:111
1464 msgid ""
1465 "Timers decrement from I<it_value> to zero, generate a signal, and reset to "
1466 "I<it_interval>.  A timer which is set to zero (I<it_value> is zero or the "
1467 "timer expires and I<it_interval> is zero) stops."
1468 msgstr ""
1469 "タイマーは I<it_value> からゼロへ向けて減っていき、シグナルを生成し、 "
1470 "I<it_interval> に初期化される。 タイマーがゼロに設定された場合 (I<it_value> "
1471 "がゼロか、タイマーが満了した時に I<it_interval> がゼロの場合) は停止する。"
1472
1473 #. type: Plain text
1474 #: build/C/man2/getitimer.2:117
1475 msgid ""
1476 "Both I<tv_sec> and I<tv_usec> are significant in determining the duration of "
1477 "a timer."
1478 msgstr "タイマーの期間は I<tv_sec> と I<tv_usec> の両方により決定される。"
1479
1480 #. type: Plain text
1481 #: build/C/man2/getitimer.2:129
1482 msgid ""
1483 "Timers will never expire before the requested time, but may expire some "
1484 "(short) time afterward, which depends on the system timer resolution and on "
1485 "the system load; see B<time>(7).  (But see BUGS below.)  Upon expiration, a "
1486 "signal will be generated and the timer reset.  If the timer expires while "
1487 "the process is active (always true for B<ITIMER_VIRTUAL>), the signal will "
1488 "be delivered immediately when generated.  Otherwise, the delivery will be "
1489 "offset by a small time dependent on the system loading."
1490 msgstr ""
1491 "要求した時間がくる前にタイマーが満了することはないが、 逆にある (短い) 時間だ"
1492 "け満了が遅れることはある。 どれだけ遅れるかはシステムの時間分解能とシステムの"
1493 "負荷に依存する (B<time>(7)  参照; 但し、バグの項も参照のこと)。 タイマーが満"
1494 "了するとシグナルが生成され、タイマーは初期化される。 プロセスがアクティブな"
1495 "時 (B<ITIMER_VIRTUAL> の場合には常にそうである) にタイマーが満了した場合、生"
1496 "成されたシグナルは すぐに配送される。それ以外の場合は、システムの負荷により少"
1497 "しの時間だけ 遅れて配送される。"
1498
1499 #. type: Plain text
1500 #: build/C/man2/getitimer.2:134 build/C/man2/killpg.2:94
1501 #: build/C/man2/tkill.2:92
1502 msgid ""
1503 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1504 "appropriately."
1505 msgstr ""
1506 "成功した場合、0 が返される。エラーが発生した場合、-1 が返され、 I<errno> が適"
1507 "切に設定される。"
1508
1509 #. type: TP
1510 #: build/C/man2/getitimer.2:135 build/C/man2/prctl.2:825
1511 #: build/C/man2/sigaction.2:677 build/C/man2/sigaltstack.2:138
1512 #: build/C/man2/sigpending.2:60 build/C/man2/sigprocmask.2:100
1513 #: build/C/man2/sigsuspend.2:77 build/C/man2/timer_settime.2:184
1514 #: build/C/man2/timerfd_create.2:349
1515 #, no-wrap
1516 msgid "B<EFAULT>"
1517 msgstr "B<EFAULT>"
1518
1519 #. type: Plain text
1520 #: build/C/man2/getitimer.2:142 build/C/man2/timerfd_create.2:356
1521 msgid "I<new_value>, I<old_value>, or I<curr_value> is not valid a pointer."
1522 msgstr "I<new_value>, I<old_value>, I<curr_value> が有効なポインタではない。"
1523
1524 #. type: Plain text
1525 #: build/C/man2/getitimer.2:155
1526 msgid ""
1527 "I<which> is not one of B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>; "
1528 "or (since Linux 2.6.22) one of the I<tv_usec> fields in the structure "
1529 "pointed to by I<new_value> contains a value outside the range 0 to 999999."
1530 msgstr ""
1531 "I<which> が B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれでもな"
1532 "い。 または (Linux 2.6.22 以降で)  I<new_value> で指定された構造体の "
1533 "I<tv_usec> フィールドの一つが 0 以上 999999 以下の範囲に入らない値である。"
1534
1535 #. type: Plain text
1536 #: build/C/man2/getitimer.2:165
1537 msgid ""
1538 "POSIX.1-2001, SVr4, 4.4BSD (this call first appeared in 4.2BSD).  "
1539 "POSIX.1-2008 marks B<getitimer>()  and B<setitimer>()  obsolete, "
1540 "recommending the use of the POSIX timers API (B<timer_gettime>(2), "
1541 "B<timer_settime>(2), etc.) instead."
1542 msgstr ""
1543 "POSIX.1-2001, SVr4, 4.4BSD (このコールは 4.2BSD で始めて現われた).  "
1544 "POSIX.1-2008 では、 B<getitimer>()  と B<setitimer>()  は廃止予定とされてお"
1545 "り、 代わりに POSIX タイマー API (B<timer_gettime>(2), B<timer_settime>(2)  "
1546 "など) を使うことが推奨されている。"
1547
1548 #. type: Plain text
1549 #: build/C/man2/getitimer.2:171
1550 msgid ""
1551 "A child created via B<fork>(2)  does not inherit its parent's interval "
1552 "timers.  Interval timers are preserved across an B<execve>(2)."
1553 msgstr ""
1554 "B<fork>(2)  で作成された子プロセスは、 親プロセスのインターバル・タイマーを継"
1555 "承しない。 B<execve>(2)  の前後ではインターバル・タイマーは保存される。"
1556
1557 #. type: Plain text
1558 #: build/C/man2/getitimer.2:181
1559 msgid ""
1560 "POSIX.1 leaves the interaction between B<setitimer>()  and the three "
1561 "interfaces B<alarm>(2), B<sleep>(3), and B<usleep>(3)  unspecified."
1562 msgstr ""
1563 "POSIX.1 では、 B<setitimer>()  と、 B<alarm>(2), B<sleep>(3), B<usleep>(3)  "
1564 "という 3 つのインタフェースとの相互の影響については規定していない。"
1565
1566 #. type: Plain text
1567 #: build/C/man2/getitimer.2:183
1568 msgid "The standards are silent on the meaning of the call:"
1569 msgstr "標準では、次の呼び出しの意味については規定されていない。"
1570
1571 #. type: Plain text
1572 #: build/C/man2/getitimer.2:185
1573 #, no-wrap
1574 msgid "    setitimer(which, NULL, &old_value);\n"
1575 msgstr "    setitimer(which, NULL, &old_value);\n"
1576
1577 #. type: Plain text
1578 #: build/C/man2/getitimer.2:188
1579 msgid ""
1580 "Many systems (Solaris, the BSDs, and perhaps others)  treat this as "
1581 "equivalent to:"
1582 msgstr ""
1583 "(Solaris, BSD 系やおそらく他のシステムもそうだが) 多くのシステムでは、この呼"
1584 "び出しは以下と等価である。"
1585
1586 #. type: Plain text
1587 #: build/C/man2/getitimer.2:190
1588 #, no-wrap
1589 msgid "    getitimer(which, &old_value);\n"
1590 msgstr "    getitimer(which, &old_value);\n"
1591
1592 #. type: Plain text
1593 #: build/C/man2/getitimer.2:196
1594 msgid ""
1595 "In Linux, this is treated as being equivalent to a call in which the "
1596 "I<new_value> fields are zero; that is, the timer is disabled.  I<Don't use "
1597 "this Linux misfeature>: it is nonportable and unnecessary."
1598 msgstr ""
1599 "Linux では、この呼び出しは I<new_value> フィールドが 0 の呼び出しと等価なもの"
1600 "と扱われる。 つまり、タイマーが無効になる。 I<Linux のこの間違った機能を使用"
1601 "しないこと>。移植性もなく、不必要な機能である。"
1602
1603 #. type: SH
1604 #: build/C/man2/getitimer.2:196 build/C/man2/kill.2:161
1605 #: build/C/man3/profil.3:72 build/C/man3/psignal.3:101
1606 #: build/C/man2/sigaction.2:792 build/C/man2/signalfd.2:352
1607 #: build/C/man2/sigpending.2:85 build/C/man3/sigset.3:232
1608 #: build/C/man2/timer_getoverrun.2:115 build/C/man2/timerfd_create.2:380
1609 #: build/C/man2/wait.2:537
1610 #, no-wrap
1611 msgid "BUGS"
1612 msgstr "バグ"
1613
1614 #. type: Plain text
1615 #: build/C/man2/getitimer.2:205
1616 msgid ""
1617 "The generation and delivery of a signal are distinct, and only one instance "
1618 "of each of the signals listed above may be pending for a process.  Under "
1619 "very heavy loading, an B<ITIMER_REAL> timer may expire before the signal "
1620 "from a previous expiration has been delivered.  The second signal in such an "
1621 "event will be lost."
1622 msgstr ""
1623 "シグナルの生成と配送は別個のものであり、 前述のシグナルのそれぞれについて一つ"
1624 "だけがプロセスのために 待機する。 非常に重い負荷の下では、 B<ITIMER_REAL> タ"
1625 "イマーでは、時間切れにより生成された一つ前のシグナルが配送される前に、 次の時"
1626 "間切れが起こる場合がある。 そのような場合、 2 個めのイベントに対するシグナル"
1627 "は失われてしまう。"
1628
1629 #. type: Plain text
1630 #: build/C/man2/getitimer.2:220
1631 msgid ""
1632 "On Linux kernels before 2.6.16, timer values are represented in jiffies.  If "
1633 "a request is made set a timer with a value whose jiffies representation "
1634 "exceeds B<MAX_SEC_IN_JIFFIES> (defined in I<include/linux/jiffies.h>), then "
1635 "the timer is silently truncated to this ceiling value.  On Linux/i386 "
1636 "(where, since Linux 2.6.13, the default jiffy is 0.004 seconds), this means "
1637 "that the ceiling value for a timer is approximately 99.42 days.  Since Linux "
1638 "2.6.16, the kernel uses a different internal representation for times, and "
1639 "this ceiling is removed."
1640 msgstr ""
1641 "バージョン 2.6.16 より前の Linux カーネルでは、 タイマーの値は jiffy で表現さ"
1642 "れる。 要求が jiffy 表現で (I<include/linux/jiffies.h> で定義されている)  "
1643 "B<MAX_SEC_IN_JIFFIES> を越える値をタイマーに設定しようとするものの場合、 タイ"
1644 "マーは暗黙にこの上限値に切り詰められる。 Linux/i386 の場合 (Linux 2.6.13 以降"
1645 "では jiffy は 0.004 秒) の場合、 これはタイマーの上限値がおよそ 99.42 日にな"
1646 "ることを意味する。 Linux 2.6.16 以降では、カーネルは時間に関する内部表現とし"
1647 "て 異なる表現を使うようになっており、この上限はなくなった。"
1648
1649 #.  4 Jul 2005: It looks like this bug may remain in 2.4.x.
1650 #.      http://lkml.org/lkml/2005/7/1/165
1651 #. type: Plain text
1652 #: build/C/man2/getitimer.2:227
1653 msgid ""
1654 "On certain systems (including i386), Linux kernels before version 2.6.12 "
1655 "have a bug which will produce premature timer expirations of up to one jiffy "
1656 "under some circumstances.  This bug is fixed in kernel 2.6.12."
1657 msgstr ""
1658 "(i386 を含む) いくつかのシステムでは、 バージョン 2.6.12 以前の Linux カーネ"
1659 "ルは ある種の状況では 1 jiffy 早くタイマーが終了してしまうというバグがあっ"
1660 "た。 このバグはカーネル 2.6.12 で修正された。"
1661
1662 #.  Bugzilla report 25 Apr 2006:
1663 #.  http://bugzilla.kernel.org/show_bug.cgi?id=6443
1664 #.  "setitimer() should reject noncanonical arguments"
1665 #. type: Plain text
1666 #: build/C/man2/getitimer.2:246
1667 msgid ""
1668 "POSIX.1-2001 says that B<setitimer>()  should fail if a I<tv_usec> value is "
1669 "specified that is outside of the range 0 to 999999.  However, in kernels up "
1670 "to and including 2.6.21, Linux does not give an error, but instead silently "
1671 "adjusts the corresponding seconds value for the timer.  From kernel 2.6.22 "
1672 "onward, this nonconformance has been repaired: an improper I<tv_usec> value "
1673 "results in an B<EINVAL> error."
1674 msgstr ""
1675 "POSIX.1-2001 では B<setitimer>()  は I<tv_usec> の値が 0 から 999999 の範囲外"
1676 "である場合には失敗するべきだとしている。 しかし、2.6.21 以前のカーネルの "
1677 "Linux ではエラーにならず、 対応する秒数の分だけそのタイマーの秒の値が暗黙に調"
1678 "整される。 カーネル 2.6.22 以降では、この標準非準拠の動作は修正され、 "
1679 "I<tv_usec> の値が不適切な場合には B<EINVAL> エラーとなる。"
1680
1681 #. type: Plain text
1682 #: build/C/man2/getitimer.2:253
1683 msgid ""
1684 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1685 "B<timerfd_create>(2), B<time>(7)"
1686 msgstr ""
1687 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1688 "B<timerfd_create>(2), B<time>(7)"
1689
1690 #. type: TH
1691 #: build/C/man3/gsignal.3:27
1692 #, no-wrap
1693 msgid "GSIGNAL"
1694 msgstr "GSIGNAL"
1695
1696 #. type: TH
1697 #: build/C/man3/gsignal.3:27
1698 #, no-wrap
1699 msgid "2007-07-26"
1700 msgstr "2007-07-26"
1701
1702 #. type: Plain text
1703 #: build/C/man3/gsignal.3:30
1704 msgid "gsignal, ssignal - software signal facility"
1705 msgstr "gsignal, ssignal - ソフトウェア・シグナル機能"
1706
1707 #. type: Plain text
1708 #: build/C/man3/gsignal.3:33 build/C/man2/kill.2:52 build/C/man3/psignal.3:36
1709 #: build/C/man3/raise.3:35 build/C/man2/sigaction.2:53
1710 #: build/C/man3/siginterrupt.3:37 build/C/man3/sigpause.3:31
1711 #: build/C/man3/sigwait.3:32 build/C/man2/sigwaitinfo.2:31
1712 #, no-wrap
1713 msgid "B<#include E<lt>signal.hE<gt>>\n"
1714 msgstr "B<#include E<lt>signal.hE<gt>>\n"
1715
1716 #. type: Plain text
1717 #: build/C/man3/gsignal.3:35
1718 #, no-wrap
1719 msgid "B<typedef void (*sighandler_t)(int);>\n"
1720 msgstr "B<typedef void (*sighandler_t)(int);>\n"
1721
1722 #. type: Plain text
1723 #: build/C/man3/gsignal.3:37
1724 #, no-wrap
1725 msgid "B<int gsignal(int >I<signum>B<);>\n"
1726 msgstr "B<int gsignal(int >I<signum>B<);>\n"
1727
1728 #. type: Plain text
1729 #: build/C/man3/gsignal.3:39
1730 #, no-wrap
1731 msgid "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1732 msgstr "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1733
1734 #. type: Plain text
1735 #: build/C/man3/gsignal.3:44 build/C/man2/kill.2:59 build/C/man2/killpg.2:53
1736 #: build/C/man3/profil.3:42 build/C/man3/psignal.3:46
1737 #: build/C/man2/sigaction.2:61 build/C/man2/sigaltstack.2:38
1738 #: build/C/man3/siginterrupt.3:44 build/C/man2/sigpending.2:40
1739 #: build/C/man2/sigprocmask.2:41 build/C/man3/sigqueue.3:39
1740 #: build/C/man3/sigset.3:45 build/C/man3/sigsetops.3:51
1741 #: build/C/man2/sigsuspend.2:40 build/C/man3/sigvec.3:45
1742 #: build/C/man3/sigwait.3:39 build/C/man2/sigwaitinfo.2:41
1743 #: build/C/man2/timer_create.2:50 build/C/man2/timer_delete.2:41
1744 #: build/C/man2/timer_getoverrun.2:41 build/C/man2/timer_settime.2:45
1745 #: build/C/man2/wait.2:69 build/C/man2/wait4.2:53
1746 msgid ""
1747 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
1748 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7)  参照):"
1749
1750 #. type: Plain text
1751 #: build/C/man3/gsignal.3:49
1752 msgid "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1753 msgstr "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1754
1755 #. type: Plain text
1756 #: build/C/man3/gsignal.3:57
1757 msgid ""
1758 "Don't use these functions under Linux.  Due to a historical mistake, under "
1759 "Linux these functions are aliases for B<raise>(3)  and B<signal>(2), "
1760 "respectively."
1761 msgstr ""
1762 "Linux ではこれらの関数を使用しないこと。 過去に間違いがあり、Linux では "
1763 "B<gsignal>()  と B<ssignal>()  はそれぞれ B<raise>(3)  と B<signal>(2)  の別"
1764 "名になっている。"
1765
1766 #. type: Plain text
1767 #: build/C/man3/gsignal.3:95
1768 msgid ""
1769 "Elsewhere, on System V-like systems, these functions implement software "
1770 "signaling, entirely independent of the classical B<signal>(2)  and "
1771 "B<kill>(2)  functions.  The function B<ssignal>()  defines the action to "
1772 "take when the software signal with number I<signum> is raised using the "
1773 "function B<gsignal>(), and returns the previous such action or B<SIG_DFL>.  "
1774 "The function B<gsignal>()  does the following: if no action (or the action "
1775 "B<SIG_DFL>)  was specified for I<signum>, then it does nothing and returns "
1776 "0.  If the action B<SIG_IGN> was specified for I<signum>, then it does "
1777 "nothing and returns 1.  Otherwise, it resets the action to B<SIG_DFL> and "
1778 "calls the action function with argument I<signum>, and returns the value "
1779 "returned by that function.  The range of possible values I<signum> varies "
1780 "(often 1-15 or 1-17)."
1781 msgstr ""
1782 "一方、System V 風のシステムでは、これらの関数で、 従来の B<signal>(2)  や "
1783 "B<kill>(2)  の関数群とは完全に独立な、 ソフトウェア・シグナリングを実現してい"
1784 "る。 B<ssignal>()  関数は、番号 I<signum> のソフトウェア・シグナルが "
1785 "B<gsignal>()  関数を使って発生された時にとるべきアクションを定義する。 "
1786 "B<gsignal>()  の返り値は、一つ前に指定されていたアクション、もしくは "
1787 "B<SIG_DFL> である。 B<gsignal>()  は以下のような動作を行う: I<signum> に対し"
1788 "てアクションが指定されていないか、アクション B<SIG_DFL> が指定されていた場"
1789 "合、何もせずに 0 を返す。 I<signum> に対して アクション B<SIG_IGN> が指定され"
1790 "ていた場合、何もせずに 1 を返す。 それ以外の場合、アクションを B<SIG_DFL> に"
1791 "リセットし、引き数に I<signum> を指定してアクション関数を呼び出して、アクショ"
1792 "ン関数の返り値を返す。 I<signum> がとり得る値の範囲は実装により異なる (多くの"
1793 "場合 1〜15 か 1〜17 である)。"
1794
1795 #. type: Plain text
1796 #: build/C/man3/gsignal.3:103
1797 msgid ""
1798 "These functions are available under AIX, DG/UX, HP-UX, SCO, Solaris, Tru64.  "
1799 "They are called obsolete under most of these systems, and are broken under "
1800 "Linux libc and glibc.  Some systems also have B<gsignal_r>()  and "
1801 "B<ssignal_r>()."
1802 msgstr ""
1803 "これらの関数は、AIX, DG/UX, HP-UX, SCO, Solaris, Tru64 で使用可能である。 こ"
1804 "れらのシステムのほとんどで廃止されたことになっており、 Linux の libc および "
1805 "glibc では正しく実装されていない。 B<gsignal_r>()  と B<ssignal_r>()  が実装"
1806 "されているシステムもある。"
1807
1808 #. type: Plain text
1809 #: build/C/man3/gsignal.3:107
1810 msgid "B<kill>(2), B<signal>(2), B<raise>(3)"
1811 msgstr "B<kill>(2), B<signal>(2), B<raise>(3)"
1812
1813 #. type: TH
1814 #: build/C/man2/kill.2:44
1815 #, no-wrap
1816 msgid "KILL"
1817 msgstr "KILL"
1818
1819 #. type: TH
1820 #: build/C/man2/kill.2:44
1821 #, no-wrap
1822 msgid "2013-09-17"
1823 msgstr "2013-09-17"
1824
1825 #. type: Plain text
1826 #: build/C/man2/kill.2:47
1827 msgid "kill - send signal to a process"
1828 msgstr "kill - プロセスにシグナルを送る"
1829
1830 #. type: Plain text
1831 #: build/C/man2/kill.2:50
1832 #, no-wrap
1833 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
1834 msgstr "B<#include E<lt>sys/types.hE<gt>>\n"
1835
1836 #. type: Plain text
1837 #: build/C/man2/kill.2:54
1838 #, no-wrap
1839 msgid "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1840 msgstr "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1841
1842 #. type: Plain text
1843 #: build/C/man2/kill.2:64
1844 msgid ""
1845 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1846 msgstr ""
1847 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1848
1849 #. type: Plain text
1850 #: build/C/man2/kill.2:70
1851 msgid ""
1852 "The B<kill>()  system call can be used to send any signal to any process "
1853 "group or process."
1854 msgstr ""
1855 "システムコールの B<kill>()  は、任意のプロセス・グループもしくはプロセスにシ"
1856 "グナルを 送るのに使われる。"
1857
1858 #. type: Plain text
1859 #: build/C/man2/kill.2:73
1860 msgid ""
1861 "If I<pid> is positive, then signal I<sig> is sent to the process with the ID "
1862 "specified by I<pid>."
1863 msgstr ""
1864 "I<pid> に正の値を指定した場合、シグナル I<sig> が I<pid> で指定された ID を持"
1865 "つプロセスに送られる。"
1866
1867 #. type: Plain text
1868 #: build/C/man2/kill.2:76
1869 msgid ""
1870 "If I<pid> equals 0, then I<sig> is sent to every process in the process "
1871 "group of the calling process."
1872 msgstr ""
1873 "I<pid> に 0 を指定した場合、 呼び出し元のプロセスのプロセス・グループに属する"
1874 "すべてのプロセスに I<sig> で指定したシグナルが送られる。"
1875
1876 #. type: Plain text
1877 #: build/C/man2/kill.2:80
1878 msgid ""
1879 "If I<pid> equals -1, then I<sig> is sent to every process for which the "
1880 "calling process has permission to send signals, except for process 1 "
1881 "(I<init>), but see below."
1882 msgstr ""
1883 "I<pid> に -1 を指定した場合、 I<sig> で指定したシグナルが、 呼び出し元のプロ"
1884 "セスがシグナルを送る許可を持つ全てのプロセスに 送られる。但し、プロセス番号 "
1885 "1 (I<init>) へはシグナルは送られない。 以下の関連部分も参照のこと。"
1886
1887 #. type: Plain text
1888 #: build/C/man2/kill.2:83
1889 msgid ""
1890 "If I<pid> is less than -1, then I<sig> is sent to every process in the "
1891 "process group whose ID is I<-pid>."
1892 msgstr ""
1893 "I<pid> に -1 より小さな値を指定した場合、 ID が I<-pid> のプロセス・グループ"
1894 "に属するすべてのプロセスに I<sig> で指定したシグナルが送られる。"
1895
1896 #. type: Plain text
1897 #: build/C/man2/kill.2:88
1898 msgid ""
1899 "If I<sig> is 0, then no signal is sent, but error checking is still "
1900 "performed; this can be used to check for the existence of a process ID or "
1901 "process group ID."
1902 msgstr ""
1903 "I<sig> に 0 を指定した場合、シグナルは送られないが、 エラーのチェックは行われ"
1904 "る。これを使って、プロセス ID や プロセスグループ ID の存在確認を行うことがで"
1905 "きる。"
1906
1907 #. type: Plain text
1908 #: build/C/man2/kill.2:100
1909 msgid ""
1910 "For a process to have permission to send a signal it must either be "
1911 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
1912 "effective user ID of the sending process must equal the real or saved set-"
1913 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
1914 "the sending and receiving processes belong to the same session.  "
1915 "(Historically, the rules were different; see NOTES.)"
1916 msgstr ""
1917 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
1918 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
1919 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
1920 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
1921 "プロセスが 同じセッションに属していれば十分である。 (過去には、 ルールは違っ"
1922 "ていた; 「注意」の節を参照。)"
1923
1924 #. type: Plain text
1925 #: build/C/man2/kill.2:105
1926 msgid ""
1927 "On success (at least one signal was sent), zero is returned.  On error, -1 "
1928 "is returned, and I<errno> is set appropriately."
1929 msgstr ""
1930 "成功した場合 (少なくとも一つのシグナルが送信された場合)、 0 が返される。エ"
1931 "ラーの場合 -1 が返され、 I<errno> が適切に設定される。"
1932
1933 #. type: Plain text
1934 #: build/C/man2/kill.2:109
1935 msgid "An invalid signal was specified."
1936 msgstr "無効なシグナルを指定した。"
1937
1938 #. type: TP
1939 #: build/C/man2/kill.2:109 build/C/man2/killpg.2:99 build/C/man2/prctl.2:987
1940 #: build/C/man2/prctl.2:999 build/C/man2/prctl.2:1009
1941 #: build/C/man2/prctl.2:1017 build/C/man2/rt_sigqueueinfo.2:148
1942 #: build/C/man2/sigaltstack.2:153 build/C/man3/sigqueue.3:102
1943 #: build/C/man2/tkill.2:96
1944 #, no-wrap
1945 msgid "B<EPERM>"
1946 msgstr "B<EPERM>"
1947
1948 #. type: Plain text
1949 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103
1950 msgid ""
1951 "The process does not have permission to send the signal to any of the target "
1952 "processes."
1953 msgstr ""
1954 "プロセスが、受信するプロセスのいずれに対しても シグナルを送る許可を持っていな"
1955 "い。"
1956
1957 #. type: TP
1958 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103 build/C/man2/killpg.2:107
1959 #: build/C/man2/rt_sigqueueinfo.2:156 build/C/man3/sigqueue.3:108
1960 #: build/C/man2/tkill.2:101
1961 #, no-wrap
1962 msgid "B<ESRCH>"
1963 msgstr "B<ESRCH>"
1964
1965 #. type: Plain text
1966 #: build/C/man2/kill.2:121
1967 msgid ""
1968 "The pid or process group does not exist.  Note that an existing process "
1969 "might be a zombie, a process which already committed termination, but has "
1970 "not yet been B<wait>(2)ed for."
1971 msgstr ""
1972 "指定したプロセスまたはプロセス・グループが存在しなかった。 ゾンビプロセスは存"
1973 "在するプロセスとしてみなされる。 ゾンビプロセスとはすでに処理は終了している"
1974 "が、親プロセスによる B<wait>()  処理が行われていないプロセスのことである。"
1975
1976 #. type: Plain text
1977 #: build/C/man2/kill.2:123 build/C/man2/pause.2:59 build/C/man2/wait.2:425
1978 msgid "SVr4, 4.3BSD, POSIX.1-2001."
1979 msgstr "SVr4, 4.3BSD, POSIX.1-2001."
1980
1981 #. type: Plain text
1982 #: build/C/man2/kill.2:131
1983 msgid ""
1984 "The only signals that can be sent to process ID 1, the I<init> process, are "
1985 "those for which I<init> has explicitly installed signal handlers.  This is "
1986 "done to assure the system is not brought down accidentally."
1987 msgstr ""
1988 "プロセス番号 1 の I<init> プロセスに送ることができるシグナルは、 I<init> が明"
1989 "示的にシグナルハンドラを設定したシグナルだけである。 こうなっているのは、誤っ"
1990 "てシステムをダウンさせないようにするためである。"
1991
1992 #. type: Plain text
1993 #: build/C/man2/kill.2:137
1994 msgid ""
1995 "POSIX.1-2001 requires that I<kill(-1,sig)> send I<sig> to all processes that "
1996 "the calling process may send signals to, except possibly for some "
1997 "implementation-defined system processes.  Linux allows a process to signal "
1998 "itself, but on Linux the call I<kill(-1,sig)> does not signal the calling "
1999 "process."
2000 msgstr ""
2001 "POSIX.1-2001 では、 I<kill(-1,sig)> が 呼び出し元のプロセスがシグナルを送るこ"
2002 "とが出来るプロセス全てに I<sig> を送ることを要求している。 但し、システム実装"
2003 "時に定められたシステムプロセスは シグナルの送信対象から除外される。 Linux で"
2004 "は、プロセスが自分自身にシグナルを送れるようになっているが、 Linux の "
2005 "I<kill(-1,sig)> は呼び出し元のプロセスにはシグナルを送らない。"
2006
2007 #. type: Plain text
2008 #: build/C/man2/kill.2:147
2009 msgid ""
2010 "POSIX.1-2001 requires that if a process sends a signal to itself, and the "
2011 "sending thread does not have the signal blocked, and no other thread has it "
2012 "unblocked or is waiting for it in B<sigwait>(3), at least one unblocked "
2013 "signal must be delivered to the sending thread before the B<kill>()  returns."
2014 msgstr ""
2015 "POSIX.1-2001 では以下の動作になることを要求している。 自分自身にシグナルを送"
2016 "ると、シグナルを送ったスレッドがそのシグナルをブロック しておらず、他のどのス"
2017 "レッドもそのシグナルを受ける状態にもなく B<sigwait>(3)  でそのシグナルを待っ"
2018 "てもいない場合、 B<kill>()  が返る前に少なくとも一つのブロックされていない シ"
2019 "グナルがシグナルを送ったスレッドに配送されなければならない。"
2020
2021 #. type: SS
2022 #: build/C/man2/kill.2:147 build/C/man3/sigpause.3:82 build/C/man2/wait.2:480
2023 #, no-wrap
2024 msgid "Linux notes"
2025 msgstr "Linux での注意"
2026
2027 #.  In the 0.* kernels things chopped and changed quite
2028 #.  a bit - MTK, 24 Jul 02
2029 #. type: Plain text
2030 #: build/C/man2/kill.2:161
2031 msgid ""
2032 "Across different kernel versions, Linux has enforced different rules for the "
2033 "permissions required for an unprivileged process to send a signal to another "
2034 "process.  In kernels 1.0 to 1.2.2, a signal could be sent if the effective "
2035 "user ID of the sender matched effective user ID of the target, or the real "
2036 "user ID of the sender matched the real user ID of the target.  From kernel "
2037 "1.2.3 until 1.3.77, a signal could be sent if the effective user ID of the "
2038 "sender matched either the real or effective user ID of the target.  The "
2039 "current rules, which conform to POSIX.1-2001, were adopted in kernel 1.3.78."
2040 msgstr ""
2041 "Linux では、特権のないプロセスが他のプロセスにシグナルを送信するために必要な"
2042 "権限についてのルールが、カーネルバージョンにより違っている。 カーネル 1.0 か"
2043 "ら 1.2.2 では、送信側の実効ユーザー ID が送信対象の実効ユーザー ID と一致する"
2044 "か、 送信側の実ユーザー ID が送信対象の実ユーザー ID と一致すれば、 シグナル"
2045 "を送信できた。 カーネル 1.2.3 から 1.3.77では、送信側の実効ユーザー ID が送信"
2046 "対象の実ユーザー ID か実効ユーザー ID のいずれかと一致すればシグナルを送信で"
2047 "きた。 現在のルールは、POSIX.1-2001 に準拠しており、カーネル 1.3.78 以降で 適"
2048 "用されている。"
2049
2050 #. type: Plain text
2051 #: build/C/man2/kill.2:171
2052 msgid ""
2053 "In 2.6 kernels up to and including 2.6.7, there was a bug that meant that "
2054 "when sending signals to a process group, B<kill>()  failed with the error "
2055 "B<EPERM> if the caller did not have permission to send the signal to I<any> "
2056 "(rather than I<all>) of the members of the process group.  Notwithstanding "
2057 "this error return, the signal was still delivered to all of the processes "
2058 "for which the caller had permission to signal."
2059 msgstr ""
2060 "バージョン 2.6.7 以前の 2.6 系のカーネルには、 プロセスグループにシグナルを"
2061 "送ったときに、 呼び出し元のプロセスがプロセスグループの (全メンバーではなく) "
2062 "一部のメンバーに対してのみシグナルを送る許可を持っていない場合に、 "
2063 "B<kill>()  がエラー B<EPERM> で失敗するというバグがある。 このエラーが返るに"
2064 "もかかわらず、そのシグナルは呼び出し元が シグナルを送る許可を持つ全てのプロセ"
2065 "スへ送られる。"
2066
2067 #. type: Plain text
2068 #: build/C/man2/kill.2:181
2069 msgid ""
2070 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), "
2071 "B<sigqueue>(3), B<capabilities>(7), B<credentials>(7), B<signal>(7)"
2072 msgstr ""
2073 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), "
2074 "B<sigqueue>(3), B<credentials>(7), B<capabilities>(7), B<signal>(7)"
2075
2076 #. type: TH
2077 #: build/C/man2/killpg.2:42
2078 #, no-wrap
2079 msgid "KILLPG"
2080 msgstr "KILLPG"
2081
2082 #. type: TH
2083 #: build/C/man2/killpg.2:42 build/C/man3/sigset.3:26
2084 #, no-wrap
2085 msgid "2010-09-20"
2086 msgstr "2010-09-20"
2087
2088 #. type: Plain text
2089 #: build/C/man2/killpg.2:45
2090 msgid "killpg - send signal to a process group"
2091 msgstr "killpg - シグナルをプロセス・グループに送る"
2092
2093 #. type: Plain text
2094 #: build/C/man2/killpg.2:49
2095 msgid "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2096 msgstr "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2097
2098 #. type: TP
2099 #: build/C/man2/killpg.2:55
2100 #, no-wrap
2101 msgid "B<killpg>():"
2102 msgstr "B<killpg>():"
2103
2104 #. type: Plain text
2105 #: build/C/man2/killpg.2:59 build/C/man2/sigaltstack.2:46
2106 #: build/C/man3/siginterrupt.3:51 build/C/man2/wait4.2:60
2107 msgid ""
2108 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2109 "_XOPEN_SOURCE_EXTENDED"
2110 msgstr ""
2111 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2112 "_XOPEN_SOURCE_EXTENDED"
2113
2114 #. type: Plain text
2115 #: build/C/man2/killpg.2:69
2116 msgid ""
2117 "B<killpg>()  sends the signal I<sig> to the process group I<pgrp>.  See "
2118 "B<signal>(7)  for a list of signals."
2119 msgstr ""
2120 "B<killpg>()  は I<sig> で指定したシグナルを I<pgrp> で指定したプロセス・グ"
2121 "ループに送る。 シグナルの定義の一覧は B<signal>(7)  を参照のこと。"
2122
2123 #. type: Plain text
2124 #: build/C/man2/killpg.2:78
2125 msgid ""
2126 "If I<pgrp> is 0, B<killpg>()  sends the signal to the calling process's "
2127 "process group.  (POSIX says: If I<pgrp> is less than or equal to 1, the "
2128 "behavior is undefined.)"
2129 msgstr ""
2130 "引き数 I<pgrp> に 0 を指定した場合には B<killpg>()  は呼び出し元のプロセスが"
2131 "属しているプロセス・グループに対してシグナルを送る。 (POSIX では以下のように"
2132 "記述されている: I<pgrp> が 1 以下である場合、動作は未定義である。)"
2133
2134 #. type: Plain text
2135 #: build/C/man2/killpg.2:89
2136 msgid ""
2137 "For a process to have permission to send a signal it must either be "
2138 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
2139 "effective user ID of the sending process must equal the real or saved set-"
2140 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
2141 "the sending and receiving processes belong to the same session."
2142 msgstr ""
2143 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
2144 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
2145 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
2146 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
2147 "プロセスが 同じセッションに属していれば十分である。"
2148
2149 #. type: Plain text
2150 #: build/C/man2/killpg.2:99
2151 msgid "I<sig> is not a valid signal number."
2152 msgstr "I<sig> で指定された値は無効なシグナル番号である。"
2153
2154 #. type: Plain text
2155 #: build/C/man2/killpg.2:107
2156 msgid "No process can be found in the process group specified by I<pgrp>."
2157 msgstr ""
2158 "I<pgrp> で指定されたプロセス・グループに属するプロセスが存在しなかった。"
2159
2160 #. type: Plain text
2161 #: build/C/man2/killpg.2:111
2162 msgid ""
2163 "The process group was given as 0 but the sending process does not have a "
2164 "process group."
2165 msgstr ""
2166 "プロセス・グループとして 0 が指定されたが、送信プロセスは プロセス・グループ"
2167 "を持っていない。"
2168
2169 #. type: Plain text
2170 #: build/C/man2/killpg.2:115
2171 msgid ""
2172 "SVr4, 4.4BSD (the B<killpg>()  function call first appeared in 4BSD), "
2173 "POSIX.1-2001."
2174 msgstr "SVr4, 4.4BSD (B<killpg>()  は 4BSD で初めて追加された), POSIX.1-2001。"
2175
2176 #. type: Plain text
2177 #: build/C/man2/killpg.2:129
2178 msgid ""
2179 "There are various differences between the permission checking in BSD-type "
2180 "systems and System\\ V-type systems.  See the POSIX rationale for "
2181 "B<kill>().  A difference not mentioned by POSIX concerns the return value "
2182 "B<EPERM>: BSD documents that no signal is sent and B<EPERM> returned when "
2183 "the permission check failed for at least one target process, while POSIX "
2184 "documents B<EPERM> only when the permission check failed for all target "
2185 "processes."
2186 msgstr ""
2187 "BSD 系システムと System\\ V 系システムでは、 許可のチェックに様々な違いがあ"
2188 "る。 B<kill>(2)  についての POSIX の原理 (rationale) を参照すること。 POSIX "
2189 "で記述されていない違いとしては、返り値 B<EPERM> がある。 BSD では「送信先プロ"
2190 "セスの許可のチェックが 1 つでも失敗した場合は、 シグナルが送信されず、 "
2191 "B<EPERM> が返される」と記述されている。 POSIX では「送信先プロセスの許可の"
2192 "チェックが全て失敗した場合にのみ、 B<EPERM> が返される」と記述されている。"
2193
2194 #. type: Plain text
2195 #: build/C/man2/killpg.2:134
2196 msgid ""
2197 "On Linux, B<killpg>()  is implemented as a library function that makes the "
2198 "call I<kill(-pgrp,\\ sig)>."
2199 msgstr ""
2200 "Linux では、 B<killpg>()  はライブラリ関数として実装されており、 I<kill(-"
2201 "pgrp,\\ sig)> の呼び出しが行われる。"
2202
2203 #. type: Plain text
2204 #: build/C/man2/killpg.2:140
2205 msgid ""
2206 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<capabilities>(7), "
2207 "B<credentials>(7)"
2208 msgstr ""
2209 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<credentials>(7), "
2210 "B<capabilities>(7)"
2211
2212 #. type: TH
2213 #: build/C/man2/pause.2:30
2214 #, no-wrap
2215 msgid "PAUSE"
2216 msgstr "PAUSE"
2217
2218 #. type: TH
2219 #: build/C/man2/pause.2:30
2220 #, no-wrap
2221 msgid "2008-10-06"
2222 msgstr "2008-10-06"
2223
2224 #. type: Plain text
2225 #: build/C/man2/pause.2:33
2226 msgid "pause - wait for signal"
2227 msgstr "pause - シグナルを待つ"
2228
2229 #. type: Plain text
2230 #: build/C/man2/pause.2:35
2231 msgid "B<#include E<lt>unistd.hE<gt>>"
2232 msgstr "B<#include E<lt>unistd.hE<gt>>"
2233
2234 #. type: Plain text
2235 #: build/C/man2/pause.2:37
2236 msgid "B<int pause(void);>"
2237 msgstr "B<int pause(void);>"
2238
2239 #. type: Plain text
2240 #: build/C/man2/pause.2:42
2241 msgid ""
2242 "B<pause>()  causes the calling process (or thread) to sleep until a signal "
2243 "is delivered that either terminates the process or causes the invocation of "
2244 "a signal-catching function."
2245 msgstr ""
2246 "B<pause>()  は、呼び出したプロセス (またはスレッド) を、 そのプロセスを終了さ"
2247 "せたり、シグナル捕捉関数が起動されるような シグナルが配送されるまで、スリープ"
2248 "させる。"
2249
2250 #.  .BR ERESTARTNOHAND .
2251 #. type: Plain text
2252 #: build/C/man2/pause.2:53
2253 msgid ""
2254 "B<pause>()  returns only when a signal was caught and the signal-catching "
2255 "function returned.  In this case, B<pause>()  returns -1, and I<errno> is "
2256 "set to B<EINTR>."
2257 msgstr ""
2258 "B<pause>()  が返るのは、シグナルを受け取りシグナル捕獲関数から返った場合だけ"
2259 "である。 この場合は B<pause>()  は -1 を返し、 I<errno> に B<EINTR> が設定さ"
2260 "れる。"
2261
2262 #. type: TP
2263 #: build/C/man2/pause.2:54 build/C/man2/sigsuspend.2:81
2264 #: build/C/man2/sigwaitinfo.2:123 build/C/man2/wait.2:411
2265 #, no-wrap
2266 msgid "B<EINTR>"
2267 msgstr "B<EINTR>"
2268
2269 #. type: Plain text
2270 #: build/C/man2/pause.2:57
2271 msgid "a signal was caught and the signal-catching function returned."
2272 msgstr "シグナルを受け取り、シグナル捕獲関数から帰ってきた。"
2273
2274 #. type: Plain text
2275 #: build/C/man2/pause.2:64
2276 msgid "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2277 msgstr "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2278
2279 #. type: TH
2280 #: build/C/man2/prctl.2:52
2281 #, no-wrap
2282 msgid "PRCTL"
2283 msgstr "PRCTL"
2284
2285 #. type: TH
2286 #: build/C/man2/prctl.2:52 build/C/man2/restart_syscall.2:33
2287 #: build/C/man2/sgetmask.2:26 build/C/man2/sigaction.2:47
2288 #: build/C/man7/signal.7:46 build/C/man2/sigreturn.2:30
2289 #: build/C/man3/sigvec.3:26 build/C/man2/tkill.2:29
2290 #, fuzzy, no-wrap
2291 #| msgid "2014-10-15"
2292 msgid "2014-12-31"
2293 msgstr "2014-10-15"
2294
2295 #. type: Plain text
2296 #: build/C/man2/prctl.2:55
2297 msgid "prctl - operations on a process"
2298 msgstr "prctl - プロセスの操作を行なう"
2299
2300 #. type: Plain text
2301 #: build/C/man2/prctl.2:58
2302 #, no-wrap
2303 msgid "B<#include E<lt>sys/prctl.hE<gt>>\n"
2304 msgstr "B<#include E<lt>sys/prctl.hE<gt>>\n"
2305
2306 #. type: Plain text
2307 #: build/C/man2/prctl.2:61
2308 #, no-wrap
2309 msgid ""
2310 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2311 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2312 msgstr ""
2313 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2314 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2315
2316 #. type: Plain text
2317 #: build/C/man2/prctl.2:68
2318 msgid ""
2319 "B<prctl>()  is called with a first argument describing what to do (with "
2320 "values defined in I<E<lt>linux/prctl.hE<gt>>), and further arguments with a "
2321 "significance depending on the first one.  The first argument can be:"
2322 msgstr ""
2323 "B<prctl>()  の動作は最初の引き数によって決定される (この値は I<E<lt>linux/"
2324 "prctl.hE<gt>> に定義されている)。 残りの引き数は最初の引き数によって変化す"
2325 "る。 一番目の引き数として以下のものを指定できる:"
2326
2327 #. type: TP
2328 #: build/C/man2/prctl.2:68
2329 #, no-wrap
2330 msgid "B<PR_CAPBSET_READ> (since Linux 2.6.25)"
2331 msgstr "B<PR_CAPBSET_READ> (Linux 2.6.25 以降)"
2332
2333 #. type: Plain text
2334 #: build/C/man2/prctl.2:80
2335 msgid ""
2336 "Return (as the function result) 1 if the capability specified in I<arg2> is "
2337 "in the calling thread's capability bounding set, or 0 if it is not.  (The "
2338 "capability constants are defined in I<E<lt>linux/capability.hE<gt>>.)  The "
2339 "capability bounding set dictates whether the process can receive the "
2340 "capability through a file's permitted capability set on a subsequent call to "
2341 "B<execve>(2)."
2342 msgstr ""
2343 "で指定されたケーパビリティが呼び出したスレッドのケーパビリティ バインディング"
2344 "セット (capability bounding set) に含まれている場合、 (関数の結果として) 1 を"
2345 "返し、そうでない場合 0 を返す (ケーパビリティ定数は I<E<lt>linux/capability."
2346 "hE<gt>> で定義されている)。 ケーパビリティバウンディングセットは、 "
2347 "B<execve>(2)  を呼び出した際に、ファイルの許可 (permitted) ケーパビリティの中"
2348 "で そのプロセスが獲得できるケーパビリティを指示するものである。"
2349
2350 #. type: Plain text
2351 #: build/C/man2/prctl.2:85
2352 msgid ""
2353 "If the capability specified in I<arg2> is not valid, then the call fails "
2354 "with the error B<EINVAL>."
2355 msgstr ""
2356 "I<arg2> に指定されたケーパビリティが有効でない場合、 呼び出しはエラー "
2357 "B<EINVAL> で失敗する。"
2358
2359 #. type: TP
2360 #: build/C/man2/prctl.2:85
2361 #, no-wrap
2362 msgid "B<PR_CAPBSET_DROP> (since Linux 2.6.25)"
2363 msgstr "B<PR_CAPBSET_DROP> (Linux 2.6.25 以降)"
2364
2365 #. type: Plain text
2366 #: build/C/man2/prctl.2:94
2367 msgid ""
2368 "If the calling thread has the B<CAP_SETPCAP> capability, then drop the "
2369 "capability specified by I<arg2> from the calling thread's capability "
2370 "bounding set.  Any children of the calling thread will inherit the newly "
2371 "reduced bounding set."
2372 msgstr ""
2373 "呼び出したスレッドがケーパビリティ B<CAP_SETPCAP> を持っている場合、 呼び出し"
2374 "たスレッドのケーパビリティバウンディングセットから I<arg2> で指定されたケーパ"
2375 "ビリティを外す。 呼び出したスレッドの子プロセスは変更後のバウンディングセット"
2376 "を 継承する。"
2377
2378 #. type: Plain text
2379 #: build/C/man2/prctl.2:106
2380 msgid ""
2381 "The call fails with the error: B<EPERM> if the calling thread does not have "
2382 "the B<CAP_SETPCAP>; B<EINVAL> if I<arg2> does not represent a valid "
2383 "capability; or B<EINVAL> if file capabilities are not enabled in the kernel, "
2384 "in which case bounding sets are not supported."
2385 msgstr ""
2386 "呼び出したスレッドが B<CAP_SETPCAP> を持っていない場合、呼び出しはエラー "
2387 "B<EPERM> で失敗する。 I<arg2> に指定されたケーパビリティが有効でない場合、 "
2388 "B<EINVAL> で失敗する。 ファイルケーパビリティがカーネルで有効になっていない場"
2389 "合 (この場合にはバウンディングセットがサポートされない)、 B<EINVAL> で失敗す"
2390 "る。"
2391
2392 #. type: TP
2393 #: build/C/man2/prctl.2:106
2394 #, no-wrap
2395 msgid "B<PR_SET_CHILD_SUBREAPER> (since Linux 3.4)"
2396 msgstr "B<PR_SET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2397
2398 #.  commit ebec18a6d3aa1e7d84aab16225e87fd25170ec2b
2399 #. type: Plain text
2400 #: build/C/man2/prctl.2:131
2401 msgid ""
2402 "If I<arg2> is nonzero, set the \"child subreaper\" attribute of the calling "
2403 "process; if I<arg2> is zero, unset the attribute.  When a process is marked "
2404 "as a child subreaper, all of the children that it creates, and their "
2405 "descendants, will be marked as having a subreaper.  In effect, a subreaper "
2406 "fulfills the role of B<init>(1)  for its descendant processes.  Upon "
2407 "termination of a process that is orphaned (i.e., its immediate parent has "
2408 "already terminated)  and marked as having a subreaper, the nearest still "
2409 "living ancestor subreaper will receive a B<SIGCHLD> signal and be able to "
2410 "B<wait>(2)  on the process to discover its termination status."
2411 msgstr ""
2412
2413 #. type: TP
2414 #: build/C/man2/prctl.2:131
2415 #, no-wrap
2416 msgid "B<PR_GET_CHILD_SUBREAPER> (since Linux 3.4)"
2417 msgstr "B<PR_GET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2418
2419 #. type: Plain text
2420 #: build/C/man2/prctl.2:136
2421 msgid ""
2422 "Return the \"child subreaper\" setting of the caller, in the location "
2423 "pointed to by I<(int\\ *) arg2>."
2424 msgstr ""
2425
2426 #. type: TP
2427 #: build/C/man2/prctl.2:136
2428 #, no-wrap
2429 msgid "B<PR_SET_DUMPABLE> (since Linux 2.3.20)"
2430 msgstr "B<PR_SET_DUMPABLE> (Linux 2.3.20 以降)"
2431
2432 #.  See http://marc.theaimsgroup.com/?l=linux-kernel&m=115270289030630&w=2
2433 #.  Subject:    Fix prctl privilege escalation (CVE-2006-2451)
2434 #.  From:       Marcel Holtmann <marcel () holtmann ! org>
2435 #.  Date:       2006-07-12 11:12:00
2436 #. type: Plain text
2437 #: build/C/man2/prctl.2:162
2438 msgid ""
2439 "Set the state of the flag determining whether core dumps are produced for "
2440 "the calling process upon delivery of a signal whose default behavior is to "
2441 "produce a core dump.  (Normally, this flag is set for a process by default, "
2442 "but it is cleared when a set-user-ID or set-group-ID program is executed and "
2443 "also by various system calls that manipulate process UIDs and GIDs).  In "
2444 "kernels up to and including 2.6.12, I<arg2> must be either 0 (process is not "
2445 "dumpable) or 1 (process is dumpable).  Between kernels 2.6.13 and 2.6.17, "
2446 "the value 2 was also permitted, which caused any binary which normally would "
2447 "not be dumped to be dumped readable by root only; for security reasons, this "
2448 "feature has been removed.  (See also the description of I</proc/sys/fs/"
2449 "suid_dumpable> in B<proc>(5).)  Processes that are not dumpable can not be "
2450 "attached via B<ptrace>(2)  B<PTRACE_ATTACH>."
2451 msgstr ""
2452 "(Linux 2.3.20 以降) デフォルトの振る舞いではコアダンプを引き起こすようなシグ"
2453 "ナルを受信したときに、呼び出し元のプロセスでコアダンプを生成するかどうかを決"
2454 "定するフラグを設定する (通常このフラグは、デフォルトではセットされているが、 "
2455 "set-user-ID あるいは set-group-ID プログラムが実行されたり、 さまざまなシステ"
2456 "ムコールによってプロセスの UID や GID が操作されたときに クリアされる)。 "
2457 "2.6.12 以前のカーネルでは、 I<arg2> は 0 (プロセスはダンプ不可) あるいは 1 "
2458 "(プロセスはダンプ可能) の どちらかでなければならない。 2.6.13 から 2.6.17 ま"
2459 "でのカーネルでは、値 2 も認められていた。 この値を指定すると、通常はダンプさ"
2460 "れないバイナリが root だけが 読み込み可能な形でダンプされた。 セキュリティ上"
2461 "の理由から、この機能は削除された (B<proc>(5) の I</proc/sys/fs/"
2462 "suid_dumpable> の説明も参照)。 ダンプ不可のプロセスを B<ptrace>(2) "
2463 "B<PTRACE_ATTACH> 経由で接続することはできない。"
2464
2465 #. type: TP
2466 #: build/C/man2/prctl.2:162
2467 #, no-wrap
2468 msgid "B<PR_GET_DUMPABLE> (since Linux 2.3.20)"
2469 msgstr "B<PR_GET_DUMPABLE> (Linux 2.3.20 以降)"
2470
2471 #.  Since Linux 2.6.13, the dumpable flag can have the value 2,
2472 #.  but in 2.6.13 PR_GET_DUMPABLE simply returns 1 if the dumpable
2473 #.  flags has a nonzero value.  This was fixed in 2.6.14.
2474 #. type: Plain text
2475 #: build/C/man2/prctl.2:169
2476 msgid ""
2477 "Return (as the function result) the current state of the calling process's "
2478 "dumpable flag."
2479 msgstr ""
2480 "(Linux 2.3.20 以降)  呼び出し元プロセスにおけるダンプ可能フラグの 現在の状態"
2481 "を (関数の結果として) 返す。"
2482
2483 #. type: TP
2484 #: build/C/man2/prctl.2:169
2485 #, no-wrap
2486 msgid "B<PR_SET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2487 msgstr "B<PR_SET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2488
2489 #.  Respectively 0, 1, 2
2490 #. type: Plain text
2491 #: build/C/man2/prctl.2:179
2492 msgid ""
2493 "Set the endian-ness of the calling process to the value given in I<arg2>, "
2494 "which should be one of the following: B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2495 "or B<PR_ENDIAN_PPC_LITTLE> (PowerPC pseudo little endian)."
2496 msgstr ""
2497 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<arg2> で指定された値"
2498 "に設定する。 指定できる値は B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2499 "B<PR_ENDIAN_PPC_LITTLE> (PowerPC 擬似リトルエンディアン)  のいずれか一つであ"
2500 "る。"
2501
2502 #. type: TP
2503 #: build/C/man2/prctl.2:179
2504 #, no-wrap
2505 msgid "B<PR_GET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2506 msgstr "B<PR_GET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2507
2508 #. type: Plain text
2509 #: build/C/man2/prctl.2:184
2510 msgid ""
2511 "Return the endian-ness of the calling process, in the location pointed to by "
2512 "I<(int\\ *) arg2>."
2513 msgstr ""
2514 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<(int\\ *) arg2> が指"
2515 "す場所に格納して返す。"
2516
2517 #. type: TP
2518 #: build/C/man2/prctl.2:184
2519 #, no-wrap
2520 msgid "B<PR_SET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2521 msgstr "B<PR_SET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2522
2523 #. type: Plain text
2524 #: build/C/man2/prctl.2:191
2525 msgid ""
2526 "Set floating-point emulation control bits to I<arg2>.  Pass "
2527 "B<PR_FPEMU_NOPRINT> to silently emulate fp operations accesses, or "
2528 "B<PR_FPEMU_SIGFPE> to not emulate fp operations and send B<SIGFPE> instead."
2529 msgstr ""
2530 "浮動小数点エミュレーション (floating-point emulation) 制御ビットを I<arg2> で"
2531 "指定された値に設定する。 指定できる値は B<PR_FPEMU_NOPRINT> (浮動小数点命令ア"
2532 "クセスを黙って エミュレートする) か B<PR_FPEMU_SIGFPE> (浮動小数点命令をエ"
2533 "ミュレートせず、 代わりに B<SIGFPE> を送る) である。"
2534
2535 #. type: TP
2536 #: build/C/man2/prctl.2:191
2537 #, no-wrap
2538 msgid "B<PR_GET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2539 msgstr "B<PR_GET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2540
2541 #. type: Plain text
2542 #: build/C/man2/prctl.2:196
2543 msgid ""
2544 "Return floating-point emulation control bits, in the location pointed to by "
2545 "I<(int\\ *) arg2>."
2546 msgstr ""
2547 "浮動小数点エミュレーション制御ビットの値を I<(int\\ *) arg2> が指す場所に格納"
2548 "して返す。"
2549
2550 #. type: TP
2551 #: build/C/man2/prctl.2:196
2552 #, no-wrap
2553 msgid "B<PR_SET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2554 msgstr "B<PR_SET_FPEXC> (Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2555
2556 #. type: Plain text
2557 #: build/C/man2/prctl.2:209
2558 msgid ""
2559 "Set floating-point exception mode to I<arg2>.  Pass B<PR_FP_EXC_SW_ENABLE> "
2560 "to use FPEXC for FP exception enables, B<PR_FP_EXC_DIV> for floating-point "
2561 "divide by zero, B<PR_FP_EXC_OVF> for floating-point overflow, "
2562 "B<PR_FP_EXC_UND> for floating-point underflow, B<PR_FP_EXC_RES> for floating-"
2563 "point inexact result, B<PR_FP_EXC_INV> for floating-point invalid operation, "
2564 "B<PR_FP_EXC_DISABLED> for FP exceptions disabled, B<PR_FP_EXC_NONRECOV> for "
2565 "async nonrecoverable exception mode, B<PR_FP_EXC_ASYNC> for async "
2566 "recoverable exception mode, B<PR_FP_EXC_PRECISE> for precise exception mode."
2567 msgstr ""
2568 "浮動小数点例外モード (floating-point exception mode) を I<arg2> で指定された"
2569 "値に設定する。 指定できるのは以下の値である: B<PR_FP_EXC_SW_ENABLE> (FPEXC で"
2570 "浮動小数点例外を有効にする)、 B<PR_FP_EXC_DIV> (0 除算)、 B<PR_FP_EXC_OVF> "
2571 "(オーバーフロー)、 B<PR_FP_EXC_UND> (アンダーフロー)、 B<PR_FP_EXC_RES> (不正"
2572 "確な結果 (inexact result))、 B<PR_FP_EXC_INV> (不正な命令 (invalid "
2573 "operation))、 B<PR_FP_EXC_DISABLED> (浮動小数点例外を無効にする)、 "
2574 "B<PR_FP_EXC_NONRECOV> (async nonrecoverable exception mode)、 "
2575 "B<PR_FP_EXC_ASYNC> (async recoverable exception mode)、 B<PR_FP_EXC_PRECISE> "
2576 "(precise exception mode)。"
2577
2578 #. type: TP
2579 #: build/C/man2/prctl.2:209
2580 #, no-wrap
2581 msgid "B<PR_GET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2582 msgstr "B<PR_GET_FPEXC>(Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2583
2584 #. type: Plain text
2585 #: build/C/man2/prctl.2:214
2586 msgid ""
2587 "Return floating-point exception mode, in the location pointed to by I<(int\\ "
2588 "*) arg2>."
2589 msgstr ""
2590 "浮動小数点例外モードの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
2591
2592 #. type: TP
2593 #: build/C/man2/prctl.2:214
2594 #, no-wrap
2595 msgid "B<PR_SET_KEEPCAPS> (since Linux 2.2.18)"
2596 msgstr "B<PR_SET_KEEPCAPS> (Linux 2.2.18 以降)"
2597
2598 #. type: Plain text
2599 #: build/C/man2/prctl.2:232
2600 msgid ""
2601 "Set the state of the thread's \"keep capabilities\" flag, which determines "
2602 "whether the threads's permitted capability set is cleared when a change is "
2603 "made to the threads's user IDs such that the threads's real UID, effective "
2604 "UID, and saved set-user-ID all become nonzero when at least one of them "
2605 "previously had the value 0.  By default, the permitted capability set is "
2606 "cleared when such a change is made; setting the \"keep capabilities\" flag "
2607 "prevents it from being cleared.  I<arg2> must be either 0 (permitted "
2608 "capabilities are cleared)  or 1 (permitted capabilities are kept).  (A "
2609 "thread's I<effective> capability set is always cleared when such a "
2610 "credential change is made, regardless of the setting of the \"keep "
2611 "capabilities\" flag.)  The \"keep capabilities\" value will be reset to 0 on "
2612 "subsequent calls to B<execve>(2)."
2613 msgstr ""
2614 "スレッドの「ケーパビリティ保持」フラグを設定する。 このフラグは、スレッドの"
2615 "実 UID、実効 UID、保存 set-user-ID のうち少なくとも一つが 0 であった状態か"
2616 "ら、これら全てが 0 以外に変更されたとき、 スレッドの許可ケーパビリティ集合が"
2617 "クリアされるかどうかを決定する。 デフォルトでは、このような変更が行われた場"
2618 "合、許可ケーパビリティセットはクリアされる。「ケーパビリティ保持」フラグを設"
2619 "定すると、許可ケーパビリティセットはクリアされなくなる。 I<arg2> は 0 (許可"
2620 "ケーパビリティをクリアする) か 1 (許可ケーパビリティを保持する) の どちらかで"
2621 "なければならない。 (このような ID の変更が行われた場合、「ケーパビリティ保"
2622 "持」フラグの設定に関わらず、スレッドのI<実効>ケーパビリティセットは常にクリア"
2623 "される。) B<execve>(2) が呼び出されると、「ケーパビリティ保持」フラグは 0 に"
2624 "リセットされる。"
2625
2626 #. type: TP
2627 #: build/C/man2/prctl.2:232
2628 #, no-wrap
2629 msgid "B<PR_GET_KEEPCAPS> (since Linux 2.2.18)"
2630 msgstr "B<PR_GET_KEEPCAPS> (Linux 2.2.18 以降)"
2631
2632 #. type: Plain text
2633 #: build/C/man2/prctl.2:236
2634 msgid ""
2635 "Return (as the function result) the current state of the calling threads's "
2636 "\"keep capabilities\" flag."
2637 msgstr ""
2638 "呼び出し元スレッドにおける「ケーパビリティ保持」フラグの 現在の状態を (関数の"
2639 "結果として) 返す。"
2640
2641 #. type: TP
2642 #: build/C/man2/prctl.2:236
2643 #, no-wrap
2644 msgid "B<PR_SET_NAME> (since Linux 2.6.9)"
2645 msgstr "B<PR_SET_NAME> (Linux 2.6.9 以降)"
2646
2647 #.  TASK_COMM_LEN in include/linux/sched.h
2648 #. type: Plain text
2649 #: build/C/man2/prctl.2:255
2650 #, fuzzy
2651 #| msgid ""
2652 #| "Set the name of the calling thread, using the value in the location "
2653 #| "pointed to by I<(char\\ *) arg2>.  The name can be up to 16 bytes long, "
2654 #| "and should be null-terminated if it contains fewer bytes.  This is the "
2655 #| "same attribute that can be set via B<pthread_setname_np>(3)  and "
2656 #| "retrieved using B<pthread_getname_np>(3).  The attribute is likewise "
2657 #| "accessible via I</proc/self/task/[tid]/comm>, where I<tid> is the name of "
2658 #| "the calling thread."
2659 msgid ""
2660 "Set the name of the calling thread, using the value in the location pointed "
2661 "to by I<(char\\ *) arg2>.  The name can be up to 16 bytes long, including "
2662 "the terminating null byte.  (If the length of the string, including the "
2663 "terminating null byte, exceeds 16 bytes, the string is silently truncated.)  "
2664 "This is the same attribute that can be set via B<pthread_setname_np>(3)  and "
2665 "retrieved using B<pthread_getname_np>(3).  The attribute is likewise "
2666 "accessible via I</proc/self/task/[tid]/comm>, where I<tid> is the name of "
2667 "the calling thread."
2668 msgstr ""
2669 "呼び出し元スレッドのプロセス名を I<(char\\ *) arg2> が指す場所に格納された値"
2670 "を使って設定する。 名前は最大で 16 バイトであり、 それより少ないバイト数の場"
2671 "合はヌルで終端すべきである。 これは、 B<pthread_setname_np>(3) で設定でき、 "
2672 "B<pthread_getname_np>(3) で取得できるのと同じ属性である。 同様に、 I<tid> が"
2673 "呼び出し元スレッドの ID の場合、 この属性は I</proc/self/task/[tid]/comm> 経"
2674 "由でもアクセス可能である。"
2675
2676 #. type: TP
2677 #: build/C/man2/prctl.2:255
2678 #, no-wrap
2679 msgid "B<PR_GET_NAME> (since Linux 2.6.11)"
2680 msgstr "B<PR_GET_NAME> (Linux 2.6.11 以降)"
2681
2682 #. type: Plain text
2683 #: build/C/man2/prctl.2:262
2684 #, fuzzy
2685 #| msgid ""
2686 #| "Return the name of the calling thread, in the buffer pointed to by I<(char"
2687 #| "\\ *) arg2>.  The buffer should allow space for up to 16 bytes; the "
2688 #| "returned string will be null-terminated if it is shorter than that."
2689 msgid ""
2690 "Return the name of the calling thread, in the buffer pointed to by I<(char\\ "
2691 "*) arg2>.  The buffer should allow space for up to 16 bytes; the returned "
2692 "string will be null-terminated."
2693 msgstr ""
2694 "呼び出し元スレッドの名前を I<(char\\ *) arg2> が指す場所に格納して返す。 バッ"
2695 "ファは最大で 16 バイトを格納できるようにすべきである。 返される文字列は、長さ"
2696 "が 16 バイトより短い場合はヌル終端される。"
2697
2698 #. type: TP
2699 #: build/C/man2/prctl.2:262
2700 #, no-wrap
2701 msgid "B<PR_SET_NO_NEW_PRIVS> (since Linux 3.5)"
2702 msgstr "B<PR_SET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2703
2704 #. type: Plain text
2705 #: build/C/man2/prctl.2:285
2706 msgid ""
2707 "Set the calling process's I<no_new_privs> bit to the value in I<arg2>.  With "
2708 "I<no_new_privs> set to 1, B<execve>(2)  promises not to grant privileges to "
2709 "do anything that could not have been done without the B<execve>(2)  call "
2710 "(for example, rendering the set-user-ID and set-group-ID permission bits, "
2711 "and file capabilities non-functional).  Once set, this bit cannot be unset.  "
2712 "The setting of this bit is inherited by children created by B<fork>(2)  and "
2713 "B<clone>(2), and preserved across B<execve>(2)."
2714 msgstr ""
2715
2716 #. type: Plain text
2717 #: build/C/man2/prctl.2:288
2718 msgid ""
2719 "For more information, see the kernel source file I<Documentation/prctl/"
2720 "no_new_privs.txt>."
2721 msgstr ""
2722 "詳しい情報は、カーネルソースファイル I<Documentation/prctl/no_new_privs.txt> "
2723 "を参照。"
2724
2725 #. type: TP
2726 #: build/C/man2/prctl.2:288
2727 #, no-wrap
2728 msgid "B<PR_GET_NO_NEW_PRIVS> (since Linux 3.5)"
2729 msgstr "B<PR_GET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2730
2731 #. type: Plain text
2732 #: build/C/man2/prctl.2:299
2733 msgid ""
2734 "Return (as the function result) the value of the I<no_new_privs> bit for the "
2735 "current process.  A value of 0 indicates the regular B<execve>(2)  "
2736 "behavior.  A value of 1 indicates B<execve>(2)  will operate in the "
2737 "privilege-restricting mode described above."
2738 msgstr ""
2739
2740 #. type: TP
2741 #: build/C/man2/prctl.2:299
2742 #, no-wrap
2743 msgid "B<PR_SET_PDEATHSIG> (since Linux 2.1.57)"
2744 msgstr "B<PR_SET_PDEATHSIG> (Linux 2.1.57 以降)"
2745
2746 #. type: Plain text
2747 #: build/C/man2/prctl.2:312
2748 msgid ""
2749 "Set the parent process death signal of the calling process to I<arg2> "
2750 "(either a signal value in the range 1..maxsig, or 0 to clear).  This is the "
2751 "signal that the calling process will get when its parent dies.  This value "
2752 "is cleared for the child of a B<fork>(2)  and (since Linux 2.4.36 / 2.6.23)  "
2753 "when executing a set-user-ID or set-group-ID binary.  This value is "
2754 "preserved across B<execve>(2)."
2755 msgstr ""
2756 "親プロセス死亡シグナル (parent process death signal) を I<arg2> に設定する "
2757 "(設定できるシグナル値の範囲は 1..maxsig であり、0 は通知の解除である)。 呼び"
2758 "出し元プロセスの親プロセスが死んだ際に、ここで設定した値が シグナルとして通知"
2759 "される。この値は B<fork>(2) の子プロセスでは解除される。 (Linux 2.4.36 以降お"
2760 "よび 2.6.23 以降では) set-user-ID もしくは set-group-ID されたバイナリを実行"
2761 "した場合にも、このフラグは解除される。この値は B<execve>(2) の前後で保持され"
2762 "る。"
2763
2764 #. type: TP
2765 #: build/C/man2/prctl.2:312
2766 #, no-wrap
2767 msgid "B<PR_GET_PDEATHSIG> (since Linux 2.3.15)"
2768 msgstr "B<PR_GET_PDEATHSIG> (Linux 2.3.15 以降)"
2769
2770 #. type: Plain text
2771 #: build/C/man2/prctl.2:317
2772 msgid ""
2773 "Return the current value of the parent process death signal, in the location "
2774 "pointed to by I<(int\\ *) arg2>."
2775 msgstr ""
2776 "親プロセス死亡シグナルの現在の値を I<(int\\ *) arg2> が指す場所に格納して返"
2777 "す。"
2778
2779 #. type: TP
2780 #: build/C/man2/prctl.2:317
2781 #, no-wrap
2782 msgid "B<PR_SET_PTRACER> (since Linux 3.4)"
2783 msgstr "B<PR_SET_PTRACER> (Linux 3.4 以降)"
2784
2785 #.  commit 2d514487faf188938a4ee4fb3464eeecfbdcf8eb
2786 #.  commit bf06189e4d14641c0148bea16e9dd24943862215
2787 #. type: Plain text
2788 #: build/C/man2/prctl.2:342
2789 msgid ""
2790 "This is meaningful only when the Yama LSM is enabled and in mode 1 "
2791 "(\"restricted ptrace\", visible via I</proc/sys/kernel/yama/ptrace_scope>).  "
2792 "When a \"ptracer process ID\" is passed in I<arg2>, the caller is declaring "
2793 "that the ptracer process can B<ptrace>(2)  the calling process as if it were "
2794 "a direct process ancestor.  Each B<PR_SET_PTRACER> operation replaces the "
2795 "previous \"ptracer process ID\".  Employing B<PR_SET_PTRACER> with I<arg2> "
2796 "set to 0 clears the caller's \"ptracer process ID\".  If I<arg2> is "
2797 "B<PR_SET_PTRACER_ANY>, the ptrace restrictions introduced by Yama are "
2798 "effectively disabled for the calling process."
2799 msgstr ""
2800
2801 #. type: Plain text
2802 #: build/C/man2/prctl.2:345
2803 msgid ""
2804 "For further information, see the kernel source file I<Documentation/security/"
2805 "Yama.txt>."
2806 msgstr ""
2807 "詳しい情報は、カーネルソースファイル I<Documentation/security/Yama.txt> を参"
2808 "照。"
2809
2810 #. type: TP
2811 #: build/C/man2/prctl.2:345
2812 #, no-wrap
2813 msgid "B<PR_SET_SECCOMP> (since Linux 2.6.23)"
2814 msgstr "B<PR_SET_SECCOMP> (Linux 2.6.23 以降)"
2815
2816 #.  See http://thread.gmane.org/gmane.linux.kernel/542632
2817 #.  [PATCH 0 of 2] seccomp updates
2818 #.  andrea@cpushare.com
2819 #. type: Plain text
2820 #: build/C/man2/prctl.2:356
2821 msgid ""
2822 "Set the secure computing (seccomp) mode for the calling thread, to limit the "
2823 "available system calls.  The seccomp mode is selected via I<arg2>.  (The "
2824 "seccomp constants are defined in I<E<lt>linux/seccomp.hE<gt>>.)"
2825 msgstr ""
2826 "呼び出したスレッドのセキュアコンピューティング (seccomp) モードを設定する。 "
2827 "seccomp モードは利用できるシステムコールを制限するものである。 seccomp モード"
2828 "は I<arg2> で指定できる (seccomp 定数は I<E<lt>linux/seccomp.hE<gt>> で定義さ"
2829 "れている)。"
2830
2831 #. type: Plain text
2832 #: build/C/man2/prctl.2:377
2833 msgid ""
2834 "With I<arg2> set to B<SECCOMP_MODE_STRICT> the only system calls that the "
2835 "thread is permitted to make are B<read>(2), B<write>(2), B<_exit>(2), and "
2836 "B<sigreturn>(2).  Other system calls result in the delivery of a B<SIGKILL> "
2837 "signal.  Strict secure computing mode is useful for number-crunching "
2838 "applications that may need to execute untrusted byte code, perhaps obtained "
2839 "by reading from a pipe or socket.  This operation is available only if the "
2840 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2841 msgstr ""
2842 "I<arg2> を B<SECCOMP_MODE_STRICT> に設定すると、 そのスレッドが呼び出しを許可"
2843 "されるシステムコールは B<read>(2), B<write>(2), B<_exit>(2), B<sigreturn>(2) "
2844 "だけになる。 それ以外のシステムコールを呼び出すと、シグナル B<SIGKILL> が配送"
2845 "される。 パイプやソケットから読み込んだ、 信頼できないバイトコードを実行する"
2846 "必要がある大量の演算を行うアプリケーションにおいて、 strict secure computing "
2847 "モードは役立つ。 この操作は利用できるのは、 カーネルが B<CONFIG_SECCOMP> を有"
2848 "効にして作成されている場合だけである。"
2849
2850 #. type: Plain text
2851 #: build/C/man2/prctl.2:392
2852 msgid ""
2853 "With I<arg2> set to B<SECCOMP_MODE_FILTER> (since Linux 3.5)  the system "
2854 "calls allowed are defined by a pointer to a Berkeley Packet Filter passed in "
2855 "I<arg3>.  This argument is a pointer to I<struct sock_fprog>; it can be "
2856 "designed to filter arbitrary system calls and system call arguments.  This "
2857 "mode is available only if the kernel is configured with "
2858 "B<CONFIG_SECCOMP_FILTER> enabled."
2859 msgstr ""
2860 "I<arg2> を B<SECCOMP_MODE_FILTER> (Linux 3.5 以降) に設定すると、 許可される"
2861 "システムコールは I<arg3> で渡された Berkeley Packet Filter へのポインターで定"
2862 "義される。 この引き数は I<struct sock_fprog> へのポインターである。 これは任"
2863 "意のシステムコールやシステムコール引き数をフィルタリングするために設計され"
2864 "た。 このモードはカーネルで B<CONFIG_SECCOMP_FILTER> が有効になっている場合に"
2865 "のみ利用可能である。"
2866
2867 #. type: Plain text
2868 #: build/C/man2/prctl.2:407
2869 msgid ""
2870 "If B<SECCOMP_MODE_FILTER> filters permit B<fork>(2), then the seccomp mode "
2871 "is inherited by children created by B<fork>(2); if B<execve>(2)  is "
2872 "permitted, then the seccomp mode is preserved across B<execve>(2).  If the "
2873 "filters permit B<prctl>()  calls, then additional filters can be added; they "
2874 "are run in order until the first non-allow result is seen."
2875 msgstr ""
2876 "B<SECCOMP_MODE_FILTER> フィルターで B<fork>(2) が許可されている場合、 "
2877 "seccomp モードは B<fork>(2) で作成された子プロセスに継承される。 "
2878 "B<execve>(2) が許可されている場合、 seccomp モードは B<execve>(2) の前後で維"
2879 "持される。 フィルターで B<prctl>() コールが許可されている場合、 追加でフィル"
2880 "ターが定義され、 これらのフィルターは許可されないものが見つかるまで指定された"
2881 "順序で実行される。"
2882
2883 #. type: Plain text
2884 #: build/C/man2/prctl.2:410
2885 msgid ""
2886 "For further information, see the kernel source file I<Documentation/prctl/"
2887 "seccomp_filter.txt>."
2888 msgstr ""
2889 "詳しい情報は、カーネルソースファイル I<Documentation/prctl/seccomp_filter."
2890 "txt> を参照。"
2891
2892 #. type: TP
2893 #: build/C/man2/prctl.2:410
2894 #, no-wrap
2895 msgid "B<PR_GET_SECCOMP> (since Linux 2.6.23)"
2896 msgstr "B<PR_GET_SECCOMP> (Linux 2.6.23 以降)"
2897
2898 #. type: Plain text
2899 #: build/C/man2/prctl.2:426
2900 msgid ""
2901 "Return (as the function result)  the secure computing mode of the calling "
2902 "thread.  If the caller is not in secure computing mode, this operation "
2903 "returns 0; if the caller is in strict secure computing mode, then the "
2904 "B<prctl>()  call will cause a B<SIGKILL> signal to be sent to the process.  "
2905 "If the caller is in filter mode, and this system call is allowed by the "
2906 "seccomp filters, it returns 2.  This operation is available only if the "
2907 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2908 msgstr ""
2909 "呼び出したスレッドの secure computing モードを (関数の結果として) 返す。 呼び"
2910 "出したスレッドが secure computing モードでなかった場合、 この操作は 0 を返"
2911 "す。 呼び出したスレッドが secure computing モードの場合、 B<prctl>()  を呼び"
2912 "出すとシグナル B<SIGKILL> がそのプロセスに送信される。 呼び出したスレッドが"
2913 "フィルタモードで、 このシステムコールが seccomp フィルタにより許可されている"
2914 "場合、 2 を返す。 この操作が利用できるのは、カーネルが B<CONFIG_SECCOMP> を有"
2915 "効にして作成されている場合だけである。"
2916
2917 #. type: TP
2918 #: build/C/man2/prctl.2:426
2919 #, no-wrap
2920 msgid "B<PR_SET_SECUREBITS> (since Linux 2.6.26)"
2921 msgstr "B<PR_SET_SECUREBITS> (Linux 2.6.26 以降)"
2922
2923 #. type: Plain text
2924 #: build/C/man2/prctl.2:432
2925 msgid ""
2926 "Set the \"securebits\" flags of the calling thread to the value supplied in "
2927 "I<arg2>.  See B<capabilities>(7)."
2928 msgstr ""
2929 "呼び出したスレッドの \"securebits\" フラグを I<arg2> で渡された値に設定す"
2930 "る。 B<capabilities>(7)  参照。"
2931
2932 #. type: TP
2933 #: build/C/man2/prctl.2:432
2934 #, no-wrap
2935 msgid "B<PR_GET_SECUREBITS> (since Linux 2.6.26)"
2936 msgstr "B<PR_GET_SECUREBITS> (Linux 2.6.26 以降)"
2937
2938 #. type: Plain text
2939 #: build/C/man2/prctl.2:438
2940 msgid ""
2941 "Return (as the function result)  the \"securebits\" flags of the calling "
2942 "thread.  See B<capabilities>(7)."
2943 msgstr ""
2944 "呼び出したスレッドの \"securebits\" フラグを (関数の結果として) 返す。 "
2945 "B<capabilities>(7)  参照。"
2946
2947 #. type: TP
2948 #: build/C/man2/prctl.2:438
2949 #, no-wrap
2950 msgid "B<PR_SET_THP_DISABLE> (since Linux 3.15)"
2951 msgstr "B<PR_SET_THP_DISABLE> (Linux 3.15 以降)"
2952
2953 #.  commit a0715cc22601e8830ace98366c0c2bd8da52af52
2954 #. type: Plain text
2955 #: build/C/man2/prctl.2:454
2956 msgid ""
2957 "Set the state of the \"THP disable\" flag for the calling thread.  If "
2958 "I<arg2> has a nonzero value, the flag is set, otherwise it is cleared.  "
2959 "Setting this flag provides a method for disabling transparent huge pages for "
2960 "jobs where the code cannot be modified, and using a malloc hook with "
2961 "B<madvise>(2)  is not an option (i.e., statically allocated data).  The "
2962 "setting of the \"THP disable\" flag is inherited by a child created via "
2963 "B<fork>(2)  and is preserved across B<execve>(2)."
2964 msgstr ""
2965 "呼び出したスレッドの \"THP disable\" (THP 無効) フラグの状態を設定する。 "
2966 "I<arg2> が 0 以外の場合、フラグは有効になり、そうでない場合はクリーンされ"
2967 "る。 このフラグを設定する方法により、 コードを変更できなかったり "
2968 "B<madvise>(2) の malloc hook をが有効ではないジョブ (この方法は静的に割り当て"
2969 "られたデータには有効ではない)に対して、 transparent huge pages を無効にする手"
2970 "段が提供される。 \"THP disable\" フラグの設定は B<fork>(2) で作成された子プロ"
2971 "セスに継承され、 B<execve> の前後で維持される。"
2972
2973 #. type: TP
2974 #: build/C/man2/prctl.2:454
2975 #, no-wrap
2976 msgid "B<PR_GET_THP_DISABLE> (since Linux 3.15)"
2977 msgstr "B<PR_GET_THP_DISABLE> (Linux 3.15 以降)"
2978
2979 #. type: Plain text
2980 #: build/C/man2/prctl.2:459
2981 msgid ""
2982 "Return (via the function result) the current setting of the \"THP disable\" "
2983 "flag for the calling thread: either 1, if the flag is set, or 0, if it is "
2984 "not."
2985 msgstr ""
2986 "呼び出し元スレッドの \"THP disable\" フラグの現在の設定を (関数の結果として) "
2987 "返す。フラグがセットされている場合は 1 が、セットされていない場合は 0 が返"
2988 "る。"
2989
2990 #. type: TP
2991 #: build/C/man2/prctl.2:459
2992 #, no-wrap
2993 msgid "B<PR_GET_TID_ADDRESS> (since Linux 3.5)"
2994 msgstr "B<PR_GET_TID_ADDRESS> (Linux 3.5 以降)"
2995
2996 #.  commit 300f786b2683f8bb1ec0afb6e1851183a479c86d
2997 #. type: Plain text
2998 #: build/C/man2/prctl.2:474
2999 msgid ""
3000 "Retrieve the I<clear_child_tid> address set by B<set_tid_address>(2)  and "
3001 "the B<clone>(2)  B<CLONE_CHILD_CLEARTID> flag, in the location pointed to by "
3002 "I<(int\\ **)\\ arg2>.  This feature is available only if the kernel is built "
3003 "with the B<CONFIG_CHECKPOINT_RESTORE> option enabled."
3004 msgstr ""
3005 "B<set_tid_address>(2) や B<clone>(2) B<CLONE_CHILD_CLEARTID> フラグで設定され"
3006 "た I<clear_child_tid> を取得し、 I<(int\\ **)\\ arg2> が指す場所に格納して返"
3007 "す。 この機能はカーネルが B<CONFIG_CHECKPOINT_RESTORE> オプションを有効にして"
3008 "作成されている場合にのみ利用できる。"
3009
3010 #. type: TP
3011 #: build/C/man2/prctl.2:474
3012 #, no-wrap
3013 msgid "B<PR_SET_TIMERSLACK> (since Linux 2.6.28)"
3014 msgstr "B<PR_SET_TIMERSLACK> (Linux 2.6.28 以降)"
3015
3016 #.  See https://lwn.net/Articles/369549/
3017 #.  commit 6976675d94042fbd446231d1bd8b7de71a980ada
3018 #.  It seems that it's not possible to set the timer slack to zero;
3019 #.  The minimum value is 1? Seems a little strange.
3020 #. type: Plain text
3021 #: build/C/man2/prctl.2:493
3022 msgid ""
3023 "Set the current timer slack for the calling thread to the nanosecond value "
3024 "supplied in I<arg2>.  If I<arg2> is less than or equal to zero, reset the "
3025 "current timer slack to the thread's default timer slack value.  The timer "
3026 "slack is used by the kernel to group timer expirations for the calling "
3027 "thread that are close to one another; as a consequence, timer expirations "
3028 "for the thread may be up to the specified number of nanoseconds late (but "
3029 "will never expire early).  Grouping timer expirations can help reduce system "
3030 "power consumption by minimizing CPU wake-ups."
3031 msgstr ""
3032
3033 #.  List obtained by grepping for futex usage in glibc source
3034 #. type: Plain text
3035 #: build/C/man2/prctl.2:513
3036 msgid ""
3037 "The timer expirations affected by timer slack are those set by B<select>(2), "
3038 "B<pselect>(2), B<poll>(2), B<ppoll>(2), B<epoll_wait>(2), B<epoll_pwait>(2), "
3039 "B<clock_nanosleep>(2), B<nanosleep>(2), and B<futex>(2)  (and thus the "
3040 "library functions implemented via futexes, including "
3041 "B<pthread_cond_timedwait>(3), B<pthread_mutex_timedlock>(3), "
3042 "B<pthread_rwlock_timedrdlock>(3), B<pthread_rwlock_timedwrlock>(3), and "
3043 "B<sem_timedwait>(3))."
3044 msgstr ""
3045
3046 #. type: Plain text
3047 #: build/C/man2/prctl.2:517
3048 msgid ""
3049 "Timer slack is not applied to threads that are scheduled under a real-time "
3050 "scheduling policy (see B<sched_setscheduler>(2))."
3051 msgstr ""
3052
3053 #. type: Plain text
3054 #: build/C/man2/prctl.2:534
3055 msgid ""
3056 "Each thread has two associated timer slack values: a \"default\" value, and "
3057 "a \"current\" value.  The current value is the one that governs grouping of "
3058 "timer expirations.  When a new thread is created, the two timer slack values "
3059 "are made the same as the current value of the creating thread.  Thereafter, "
3060 "a thread can adjust its current timer slack value via B<PR_SET_TIMERSLACK> "
3061 "(the default value can't be changed).  The timer slack values of I<init> "
3062 "(PID 1), the ancestor of all processes, are 50,000 nanoseconds (50 "
3063 "microseconds).  The timer slack values are preserved across B<execve>(2)."
3064 msgstr ""
3065
3066 #. type: TP
3067 #: build/C/man2/prctl.2:534
3068 #, no-wrap
3069 msgid "B<PR_GET_TIMERSLACK> (since Linux 2.6.28)"
3070 msgstr "B<PR_GET_TIMERSLACK> (Linux 2.6.28 以降)"
3071
3072 #. type: Plain text
3073 #: build/C/man2/prctl.2:538
3074 msgid ""
3075 "Return (as the function result)  the current timer slack value of the "
3076 "calling thread."
3077 msgstr ""
3078 "呼び出し元スレッドの現在のタイマーのスラック値を (関数の結果として) 返す。"
3079
3080 #. type: TP
3081 #: build/C/man2/prctl.2:538
3082 #, no-wrap
3083 msgid "B<PR_SET_TIMING> (since Linux 2.6.0-test4)"
3084 msgstr "B<PR_SET_TIMING> (Linux 2.6.0-test4 以降)"
3085
3086 #.  0
3087 #.  1
3088 #.  PR_TIMING_TIMESTAMP doesn't do anything in 2.6.26-rc8,
3089 #.  and looking at the patch history, it appears
3090 #.  that it never did anything.
3091 #. type: Plain text
3092 #: build/C/man2/prctl.2:555
3093 msgid ""
3094 "Set whether to use (normal, traditional) statistical process timing or "
3095 "accurate timestamp-based process timing, by passing B<PR_TIMING_STATISTICAL> "
3096 "or B<PR_TIMING_TIMESTAMP> to I<arg2>.  B<PR_TIMING_TIMESTAMP> is not "
3097 "currently implemented (attempting to set this mode will yield the error "
3098 "B<EINVAL>)."
3099 msgstr ""
3100 "(通常の、伝統的に使われてきた) 統計的なプロセスタイミングを使用するか、 正確"
3101 "なタイムスタンプに基づくプロセスタイミングを使用するかを設定する。 I<arg2> に"
3102 "指定できる値は B<PR_TIMING_STATISTICAL> か B<PR_TIMING_TIMESTAMP> である。 "
3103 "B<PR_TIMING_TIMESTAMP> は現在のところ実装されていない (このモードに設定しよう"
3104 "とするとエラー B<EINVAL> が起こることだろう)。"
3105
3106 #. type: TP
3107 #: build/C/man2/prctl.2:555
3108 #, no-wrap
3109 msgid "B<PR_GET_TIMING> (since Linux 2.6.0-test4)"
3110 msgstr "B<PR_GET_TIMING> (Linux 2.6.0-test4 以降)"
3111
3112 #. type: Plain text
3113 #: build/C/man2/prctl.2:559
3114 msgid ""
3115 "Return (as the function result) which process timing method is currently in "
3116 "use."
3117 msgstr "現在使用中のプロセスタイミングを決める方法を (関数の結果として) 返す。"
3118
3119 #. type: TP
3120 #: build/C/man2/prctl.2:559
3121 #, no-wrap
3122 msgid "B<PR_TASK_PERF_EVENTS_DISABLE> (since Linux 2.6.31)"
3123 msgstr "B<PR_TASK_PERF_EVENTS_DISABLE> (Linux 2.6.31 以降)"
3124
3125 #. type: Plain text
3126 #: build/C/man2/prctl.2:568
3127 msgid ""
3128 "Disable all performance counters attached to the calling process, regardless "
3129 "of whether the counters were created by this process or another process.  "
3130 "Performance counters created by the calling process for other processes are "
3131 "unaffected.  For more information on performance counters, see the Linux "
3132 "kernel source file I<tools/perf/design.txt>."
3133 msgstr ""
3134 "呼び出したプロセスに接続されたすべての性能カウンターを無効にする。 カウンター"
3135 "がこのプロセスにより作成されたか他のプロセスにより作成されたかは関係ない。 呼"
3136 "び出したプロセスが他のプロセス用に作成した性能カウンターは影響を受けない。 性"
3137 "能カウンターの詳細については Linux カーネルソースの I<tools/perf/design.txt> "
3138 "を参照。"
3139
3140 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3141 #. type: Plain text
3142 #: build/C/man2/prctl.2:574
3143 msgid ""
3144 "Originally called B<PR_TASK_PERF_COUNTERS_DISABLE>; renamed (with same "
3145 "numerical value)  in Linux 2.6.32."
3146 msgstr ""
3147 "以前は B<PR_TASK_PERF_COUNTERS_DISABLE> と呼ばれていた。 Linux 2.6.32 で名前"
3148 "が変更された (数値は同じままである)。"
3149
3150 #. type: TP
3151 #: build/C/man2/prctl.2:574
3152 #, no-wrap
3153 msgid "B<PR_TASK_PERF_EVENTS_ENABLE> (since Linux 2.6.31)"
3154 msgstr "B<PR_TASK_PERF_EVENTS_ENABLE> (Linux 2.6.31 以降)"
3155
3156 #. type: Plain text
3157 #: build/C/man2/prctl.2:579
3158 msgid ""
3159 "The converse of B<PR_TASK_PERF_EVENTS_DISABLE>; enable performance counters "
3160 "attached to the calling process."
3161 msgstr ""
3162 "B<PR_TASK_PERF_EVENTS_DISABLE> の逆。 呼び出したプロセスに接続された性能カウ"
3163 "ンターを有効にする。"
3164
3165 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3166 #.  commit cdd6c482c9ff9c55475ee7392ec8f672eddb7be6
3167 #. type: Plain text
3168 #: build/C/man2/prctl.2:586
3169 msgid ""
3170 "Originally called B<PR_TASK_PERF_COUNTERS_ENABLE>; renamed in Linux 2.6.32."
3171 msgstr ""
3172 "以前は B<PR_TASK_PERF_COUNTERS_ENABLE> と呼ばれていた。 Linux 2.6.32 で名前が"
3173 "変更された。"
3174
3175 #. type: TP
3176 #: build/C/man2/prctl.2:586
3177 #, no-wrap
3178 msgid "B<PR_SET_TSC> (since Linux 2.6.26, x86 only)"
3179 msgstr "B<PR_SET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3180
3181 #. type: Plain text
3182 #: build/C/man2/prctl.2:599
3183 msgid ""
3184 "Set the state of the flag determining whether the timestamp counter can be "
3185 "read by the process.  Pass B<PR_TSC_ENABLE> to I<arg2> to allow it to be "
3186 "read, or B<PR_TSC_SIGSEGV> to generate a B<SIGSEGV> when the process tries "
3187 "to read the timestamp counter."
3188 msgstr ""
3189 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態を"
3190 "設定する。 読み出しを許可する場合は I<arg2> に B<PR_TSC_ENABLE> を、そのプロ"
3191 "セスがタイムスタンプ・カウンタを読み出そうとした際に B<SIGSEGV> を発生させる"
3192 "場合には B<PR_TSC_SIGSEGV> を渡す。"
3193
3194 #. type: TP
3195 #: build/C/man2/prctl.2:599
3196 #, no-wrap
3197 msgid "B<PR_GET_TSC> (since Linux 2.6.26, x86 only)"
3198 msgstr "B<PR_GET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3199
3200 #. type: Plain text
3201 #: build/C/man2/prctl.2:605
3202 msgid ""
3203 "Return the state of the flag determining whether the timestamp counter can "
3204 "be read, in the location pointed to by I<(int\\ *) arg2>."
3205 msgstr ""
3206 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態"
3207 "を I<(int\\ *) arg2> が指す場所に格納して返す。"
3208
3209 #. type: TP
3210 #: build/C/man2/prctl.2:605
3211 #, no-wrap
3212 msgid "B<PR_SET_UNALIGN>"
3213 msgstr "B<PR_SET_UNALIGN>"
3214
3215 #. type: Plain text
3216 #: build/C/man2/prctl.2:615
3217 msgid ""
3218 "(Only on: ia64, since Linux 2.3.48; parisc, since Linux 2.6.15; PowerPC, "
3219 "since Linux 2.6.18; Alpha, since Linux 2.6.22)  Set unaligned access control "
3220 "bits to I<arg2>.  Pass B<PR_UNALIGN_NOPRINT> to silently fix up unaligned "
3221 "user accesses, or B<PR_UNALIGN_SIGBUS> to generate B<SIGBUS> on unaligned "
3222 "user access."
3223 msgstr ""
3224 "(ia64 では Linux 2.3.48 以降; parisc では Linux 2.6.15 以降; PowerPC では "
3225 "Linux 2.6.18 以降; Alpha では Linux 2.6.22 以降; これらのアーキテクチャの"
3226 "み)  unaligned アクセス制御ビットを I<arg2> で指定された値に設定する。 指定で"
3227 "きる値は B<PR_UNALIGN_NOPRINT> (unaligned なユーザアクセスを黙って 修正する) "
3228 "か B<PR_UNALIGN_SIGBUS> (unaligned なユーザアクセスがあった場合 B<SIGBUS> を"
3229 "生成する) である。"
3230
3231 #. type: TP
3232 #: build/C/man2/prctl.2:615
3233 #, no-wrap
3234 msgid "B<PR_GET_UNALIGN>"
3235 msgstr "B<PR_GET_UNALIGN>"
3236
3237 #. type: Plain text
3238 #: build/C/man2/prctl.2:622
3239 msgid ""
3240 "(see B<PR_SET_UNALIGN> for information on versions and architectures)  "
3241 "Return unaligned access control bits, in the location pointed to by I<(int\\ "
3242 "*) arg2>."
3243 msgstr ""
3244 "(バージョンとアーキテクチャの情報は B<PR_SET_UNALIGN> 参照)  unaligned アクセ"
3245 "ス制御ビットの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
3246
3247 #. type: TP
3248 #: build/C/man2/prctl.2:622
3249 #, no-wrap
3250 msgid "B<PR_MCE_KILL> (since Linux 2.6.32)"
3251 msgstr "B<PR_MCE_KILL> (Linux 2.6.32 以降)"
3252
3253 #. type: Plain text
3254 #: build/C/man2/prctl.2:662
3255 msgid ""
3256 "Set the machine check memory corruption kill policy for the current thread.  "
3257 "If I<arg2> is B<PR_MCE_KILL_CLEAR>, clear the thread memory corruption kill "
3258 "policy and use the system-wide default.  (The system-wide default is defined "
3259 "by I</proc/sys/vm/memory_failure_early_kill>; see B<proc>(5).)  If I<arg2> "
3260 "is B<PR_MCE_KILL_SET>, use a thread-specific memory corruption kill policy.  "
3261 "In this case, I<arg3> defines whether the policy is I<early kill> "
3262 "(B<PR_MCE_KILL_EARLY>), I<late kill> (B<PR_MCE_KILL_LATE>), or the system-"
3263 "wide default (B<PR_MCE_KILL_DEFAULT>).  Early kill means that the thread "
3264 "receives a B<SIGBUS> signal as soon as hardware memory corruption is "
3265 "detected inside its address space.  In late kill mode, the process is killed "
3266 "only when it accesses a corrupted page.  See B<sigaction>(2)  for more "
3267 "information on the B<SIGBUS> signal.  The policy is inherited by children.  "
3268 "The remaining unused B<prctl>()  arguments must be zero for future "
3269 "compatibility."
3270 msgstr ""
3271
3272 #. type: TP
3273 #: build/C/man2/prctl.2:662
3274 #, no-wrap
3275 msgid "B<PR_MCE_KILL_GET> (since Linux 2.6.32)"
3276 msgstr "B<PR_MCE_KILL_GET> (Linux 2.6.32 以降)"
3277
3278 #. type: Plain text
3279 #: build/C/man2/prctl.2:668
3280 msgid ""
3281 "Return the current per-process machine check kill policy.  All unused "
3282 "B<prctl>()  arguments must be zero."
3283 msgstr ""
3284
3285 #. type: TP
3286 #: build/C/man2/prctl.2:668
3287 #, no-wrap
3288 msgid "B<PR_SET_MM> (since Linux 3.3)"
3289 msgstr "B<PR_SET_MM> (Linux 3.3 以降)"
3290
3291 #.  commit 028ee4be34a09a6d48bdf30ab991ae933a7bc036
3292 #. type: Plain text
3293 #: build/C/man2/prctl.2:689
3294 msgid ""
3295 "Modify certain kernel memory map descriptor fields of the calling process.  "
3296 "Usually these fields are set by the kernel and dynamic loader (see B<ld."
3297 "so>(8)  for more information) and a regular application should not use this "
3298 "feature.  However, there are cases, such as self-modifying programs, where a "
3299 "program might find it useful to change its own memory map.  This feature is "
3300 "available only if the kernel is built with the B<CONFIG_CHECKPOINT_RESTORE> "
3301 "option enabled.  The calling process must have the B<CAP_SYS_RESOURCE> "
3302 "capability.  The value in I<arg2> is one of the options below, while I<arg3> "
3303 "provides a new value for the option."
3304 msgstr ""
3305 "呼び出したプロセスのカーネルメモリマップディスクリプタのフィールドを変更す"
3306 "る。 これらのフィールドは通常カーネルと動的リンカーにより設定される (詳しい情"
3307 "報は B<ld.so> を参照)。 通常のアプリケーションはこの機能を利用すべきではな"
3308 "い。 しかしながら、自分を書き換えるプログラムなど、 プログラムが自分自身のメ"
3309 "モリマップを変更するのが有用な場面もある。 この機能はカーネルが "
3310 "B<CONFIG_CHECKPOINT_RESTORE> オプションを有効にして作成されている場合にのみ利"
3311 "用できる。 呼び出したプロセスは B<CAP_SYS_RESOURCE> ケーパビリティを持ってい"
3312 "なければならない。 I<arg2> の値には以下のいずれかを指定し、 I<arg3> でそのオ"
3313 "プションの新しい値を指定する。"
3314
3315 #. type: TP
3316 #: build/C/man2/prctl.2:690
3317 #, no-wrap
3318 msgid "B<PR_SET_MM_START_CODE>"
3319 msgstr "B<PR_SET_MM_START_CODE>"
3320
3321 #. type: Plain text
3322 #: build/C/man2/prctl.2:699
3323 msgid ""
3324 "Set the address above which the program text can run.  The corresponding "
3325 "memory area must be readable and executable, but not writable or sharable "
3326 "(see B<mprotect>(2)  and B<mmap>(2)  for more information)."
3327 msgstr ""
3328 "プログラムテキストを実行できるアドレスの上限を設定する。 対応するメモリ領域は"
3329 "読み出し可能で実行可能でなければならないが、 書き込み可能だったり共有可能だっ"
3330 "たりしてはならない (詳しい情報は B<mprotect>(2) と B<mmap>(2) 参照)。"
3331
3332 #. type: TP
3333 #: build/C/man2/prctl.2:699
3334 #, no-wrap
3335 msgid "B<PR_SET_MM_END_CODE>"
3336 msgstr "B<PR_SET_MM_END_CODE>"
3337
3338 #. type: Plain text
3339 #: build/C/man2/prctl.2:704
3340 msgid ""
3341 "Set the address below which the program text can run.  The corresponding "
3342 "memory area must be readable and executable, but not writable or sharable."
3343 msgstr ""
3344 "プログラムテキストを実行できるアドレスの下限を設定する。 対応するメモリ領域は"
3345 "読み出し可能で実行可能でなければならないが、 書き込み可能だったり共有可能だっ"
3346 "たりしてはならない。"
3347
3348 #. type: TP
3349 #: build/C/man2/prctl.2:704
3350 #, no-wrap
3351 msgid "B<PR_SET_MM_START_DATA>"
3352 msgstr "B<PR_SET_MM_START_DATA>"
3353
3354 #. type: Plain text
3355 #: build/C/man2/prctl.2:710
3356 msgid ""
3357 "Set the address above which initialized and uninitialized (bss) data are "
3358 "placed.  The corresponding memory area must be readable and writable, but "
3359 "not executable or sharable."
3360 msgstr ""
3361 "初期化済データや未初期化 (bss) データを配置する領域のアドレス上限を指定す"
3362 "る。 対応するメモリ領域は読み書き可能でなければならないが、 実行可能だったり"
3363 "共有可能だったりしてはならない。"
3364
3365 #. type: TP
3366 #: build/C/man2/prctl.2:710
3367 #, no-wrap
3368 msgid "B<PR_SET_MM_END_DATA>"
3369 msgstr "B<PR_SET_MM_END_DATA>"
3370
3371 #. type: Plain text
3372 #: build/C/man2/prctl.2:716
3373 msgid ""
3374 "Set the address below which initialized and uninitialized (bss) data are "
3375 "placed.  The corresponding memory area must be readable and writable, but "
3376 "not executable or sharable."
3377 msgstr ""
3378 "初期化済データや未初期化 (bss) データを配置する領域のアドレス下限を指定す"
3379 "る。 対応するメモリ領域は読み書き可能でなければならないが、 実行可能だったり"
3380 "共有可能だったりしてはならない。"
3381
3382 #. type: TP
3383 #: build/C/man2/prctl.2:716
3384 #, no-wrap
3385 msgid "B<PR_SET_MM_START_STACK>"
3386 msgstr "B<PR_SET_MM_START_STACK>"
3387
3388 #. type: Plain text
3389 #: build/C/man2/prctl.2:720
3390 msgid ""
3391 "Set the start address of the stack.  The corresponding memory area must be "
3392 "readable and writable."
3393 msgstr ""
3394 "スタックの開始アドレスを設定する。 対応するメモリ領域は読み書き可能でなければ"
3395 "ならない。"
3396
3397 #. type: TP
3398 #: build/C/man2/prctl.2:720
3399 #, no-wrap
3400 msgid "B<PR_SET_MM_START_BRK>"
3401 msgstr "B<PR_SET_MM_START_BRK>"
3402
3403 #. type: Plain text
3404 #: build/C/man2/prctl.2:732
3405 msgid ""
3406 "Set the address above which the program heap can be expanded with B<brk>(2)  "
3407 "call.  The address must be greater than the ending address of the current "
3408 "program data segment.  In addition, the combined size of the resulting heap "
3409 "and the size of the data segment can't exceed the B<RLIMIT_DATA> resource "
3410 "limit (see B<setrlimit>(2))."
3411 msgstr ""
3412 "B<brk>(2) コールで拡張できるプログラムのヒープ領域のアドレス上限を設定する。 "
3413 "このアドレスは、プログラムの現在のデータセグメントの最終アドレスより大きくな"
3414 "ければならない。 また、 変更後のヒープとデータセグメントのサイズを合わせたサ"
3415 "イズが B<RLIMIT_DATA> リソースリミットを超えることはできない "
3416 "(B<setrlimit>(2) 参照)。"
3417
3418 #. type: TP
3419 #: build/C/man2/prctl.2:732
3420 #, no-wrap
3421 msgid "B<PR_SET_MM_BRK>"
3422 msgstr "B<PR_SET_MM_BRK>"
3423
3424 #. type: Plain text
3425 #: build/C/man2/prctl.2:740
3426 msgid ""
3427 "Set the current B<brk>(2)  value.  The requirements for the address are the "
3428 "same as for the B<PR_SET_MM_START_BRK> option."
3429 msgstr ""
3430 "現在の B<brk>(2) 値を設定する。 このアドレスの要件は B<PR_SET_MM_START_BRK> "
3431 "オプションと同じである。"
3432
3433 #.  commit fe8c7f5cbf91124987106faa3bdf0c8b955c4cf7
3434 #. type: Plain text
3435 #: build/C/man2/prctl.2:743
3436 msgid "The following options are available since Linux 3.5."
3437 msgstr "以下のオプションは Linux 3.5 以降で利用できる。"
3438
3439 #. type: TP
3440 #: build/C/man2/prctl.2:743
3441 #, no-wrap
3442 msgid "B<PR_SET_MM_ARG_START>"
3443 msgstr "B<PR_SET_MM_ARG_START>"
3444
3445 #. type: Plain text
3446 #: build/C/man2/prctl.2:746
3447 msgid "Set the address above which the program command line is placed."
3448 msgstr "プログラムのコマンドラインを配置するアドレスの上限を設定する。"
3449
3450 #. type: TP
3451 #: build/C/man2/prctl.2:746
3452 #, no-wrap
3453 msgid "B<PR_SET_MM_ARG_END>"
3454 msgstr "B<PR_SET_MM_ARG_END>"
3455
3456 #. type: Plain text
3457 #: build/C/man2/prctl.2:749
3458 msgid "Set the address below which the program command line is placed."
3459 msgstr "プログラムのコマンドラインを配置するアドレスの下限を設定する。"
3460
3461 #. type: TP
3462 #: build/C/man2/prctl.2:749
3463 #, no-wrap
3464 msgid "B<PR_SET_MM_ENV_START>"
3465 msgstr "B<PR_SET_MM_ENV_START>"
3466
3467 #. type: Plain text
3468 #: build/C/man2/prctl.2:752
3469 msgid "Set the address above which the program environment is placed."
3470 msgstr ""
3471 "プログラムの環境情報 (environment) を配置するアドレスの上限を設定する。"
3472
3473 #. type: TP
3474 #: build/C/man2/prctl.2:752
3475 #, no-wrap
3476 msgid "B<PR_SET_MM_ENV_END>"
3477 msgstr "B<PR_SET_MM_ENV_END>"
3478
3479 #. type: Plain text
3480 #: build/C/man2/prctl.2:755
3481 msgid "Set the address below which the program environment is placed."
3482 msgstr ""
3483 "プログラムの環境情報 (environment) を配置するアドレスの下限を設定する。"
3484
3485 #. type: Plain text
3486 #: build/C/man2/prctl.2:768
3487 msgid ""
3488 "The address passed with B<PR_SET_MM_ARG_START>, B<PR_SET_MM_ARG_END>, "
3489 "B<PR_SET_MM_ENV_START>, and B<PR_SET_MM_ENV_END> should belong to a process "
3490 "stack area.  Thus, the corresponding memory area must be readable, writable, "
3491 "and (depending on the kernel configuration) have the B<MAP_GROWSDOWN> "
3492 "attribute set (see B<mmap>(2))."
3493 msgstr ""
3494 "B<PR_SET_MM_ARG_START>, B<PR_SET_MM_ARG_END>, B<PR_SET_MM_ENV_START>, "
3495 "B<PR_SET_MM_ENV_END> で指定されるアドレスはプロセスのスタック領域に属している"
3496 "必要がある。 したがって、これらのメモリ領域は読み書き可能でなければならな"
3497 "い。 また、 (カーネル設定によっては) B<MAP_GROWSDOWN> 属性がセットされていな"
3498 "ければならない (B<mmap>(2) 参照)。"
3499
3500 #. type: TP
3501 #: build/C/man2/prctl.2:768
3502 #, no-wrap
3503 msgid "B<PR_SET_MM_AUXV>"
3504 msgstr "B<PR_SET_MM_AUXV>"
3505
3506 #. type: Plain text
3507 #: build/C/man2/prctl.2:777
3508 msgid ""
3509 "Set a new auxiliary vector.  The I<arg3> argument should provide the address "
3510 "of the vector.  The I<arg4> is the size of the vector."
3511 msgstr ""
3512 "新しい補助ベクトル (auxiliary vector) を設定する。 I<arg3> 引き数はベクトルの"
3513 "アドレスを指定し、 I<arg4> はベクトルのサイズを指定する。"
3514
3515 #. type: TP
3516 #: build/C/man2/prctl.2:777
3517 #, no-wrap
3518 msgid "B<PR_SET_MM_EXE_FILE>"
3519 msgstr "B<PR_SET_MM_EXE_FILE>"
3520
3521 #.  commit b32dfe377102ce668775f8b6b1461f7ad428f8b6
3522 #. type: Plain text
3523 #: build/C/man2/prctl.2:789
3524 msgid ""
3525 "Supersede the I</proc/pid/exe> symbolic link with a new one pointing to a "
3526 "new executable file identified by the file descriptor provided in I<arg3> "
3527 "argument.  The file descriptor should be obtained with a regular B<open>(2)  "
3528 "call."
3529 msgstr ""
3530 "I</proc/pid/exe> シンボリックリンクを I<arg3> 引き数で渡された新しい実行可能"
3531 "なファイルディスクリプタを指すシンボリックリンクで置き換える。 ファイルディス"
3532 "クリプタは通常の B<open>(2) コールで取得すべきである。"
3533
3534 #. type: Plain text
3535 #: build/C/man2/prctl.2:796
3536 msgid ""
3537 "To change the symbolic link, one needs to unmap all existing executable "
3538 "memory areas, including those created by the kernel itself (for example the "
3539 "kernel usually creates at least one executable memory area for the ELF I<."
3540 "text> section)."
3541 msgstr ""
3542 "シンボリックリンクを変更するには、 既存の実行可能なメモリ領域のすべてをアン"
3543 "マップする必要がある。これにはカーネル自身が作成した領域も含まれる (例えば、"
3544 "カーネルは通常 ELF I<.text> セクションに少なくとも一つの実行可能なメモリ領域"
3545 "を作成する)。"
3546
3547 #. type: Plain text
3548 #: build/C/man2/prctl.2:802
3549 msgid ""
3550 "The second limitation is that such transitions can be done only once in a "
3551 "process life time.  Any further attempts will be rejected.  This should help "
3552 "system administrators monitor unusual symbolic-link transitions over all "
3553 "processes running on a system."
3554 msgstr ""
3555 "二つ目の制限は、このような変更はプロセスの生存期間で一度だけ行うことができる"
3556 "という点である。 一度変更を行った後で変更を行おうとすると拒否される。 この動"
3557 "作は、 システム管理者が、 システムで動作するすべてのプロセスが行う、 普通でな"
3558 "いシンボリックリンクの変更を監視するのを楽にする。"
3559
3560 #. type: Plain text
3561 #: build/C/man2/prctl.2:824
3562 msgid ""
3563 "On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3564 "B<PR_GET_THP_DISABLE>, B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, "
3565 "B<PR_GET_TIMERSLACK>, B<PR_GET_SECUREBITS>, B<PR_MCE_KILL_GET>, and (if it "
3566 "returns)  B<PR_GET_SECCOMP> return the nonnegative values described above.  "
3567 "All other I<option> values return 0 on success.  On error, -1 is returned, "
3568 "and I<errno> is set appropriately."
3569 msgstr ""
3570 "成功すると、 B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3571 "B<PR_GET_THP_DISABLE>, B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, "
3572 "B<PR_GET_TIMERSLACK>, B<PR_GET_SECUREBITS>, B<PR_MCE_KILL_GET>, "
3573 "B<PR_GET_SECCOMP> は上述の負でない値を返す (なお、B<PR_GET_SECCOMP> は返らな"
3574 "い場合もある)。 I<option> が他の値の場合は成功時に 0 を返す。 エラーの場"
3575 "合、-1 を返し、 I<errno> に適切な値を設定する。"
3576
3577 #. type: Plain text
3578 #: build/C/man2/prctl.2:829
3579 msgid "I<arg2> is an invalid address."
3580 msgstr "I<arg2> が不正なアドレスである。"
3581
3582 #. type: Plain text
3583 #: build/C/man2/prctl.2:834
3584 msgid "The value of I<option> is not recognized."
3585 msgstr "I<option> の値が理解できない。"
3586
3587 #. type: Plain text
3588 #: build/C/man2/prctl.2:846
3589 msgid ""
3590 "I<option> is B<PR_MCE_KILL> or B<PR_MCE_KILL_GET> or B<PR_SET_MM>, and "
3591 "unused B<prctl>()  arguments were not specified as zero."
3592 msgstr ""
3593 "I<option> が B<PR_MCE_KILL>, B<PR_MCE_KILL_GET>, B<PR_SET_MM> のいずれかで、"
3594 "かつ未使用の B<prctl>() 引き数に 0 が指定されていなかった。"
3595
3596 #. type: Plain text
3597 #: build/C/man2/prctl.2:851
3598 msgid "I<arg2> is not valid value for this I<option>."
3599 msgstr "I<arg2> が指定された I<option> で有効な値ではない。"
3600
3601 #. type: Plain text
3602 #: build/C/man2/prctl.2:860
3603 msgid ""
3604 "I<option> is B<PR_SET_SECCOMP> or B<PR_GET_SECCOMP>, and the kernel was not "
3605 "configured with B<CONFIG_SECCOMP>."
3606 msgstr ""
3607 "I<option> が B<PR_SET_SECCOMP> か B<PR_GET_SECCOMP> だが、カーネルが "
3608 "B<CONFIG_SECCOMP> を有効にして作成されていなかった。"
3609
3610 #. type: Plain text
3611 #: build/C/man2/prctl.2:866
3612 msgid "I<option> is B<PR_SET_MM>, and one of the following is true"
3613 msgstr "I<option> が B<PR_SET_MM> で、以下のいずれかが真である。"
3614
3615 #. type: Plain text
3616 #: build/C/man2/prctl.2:872
3617 msgid "I<arg4> or I<arg5> is nonzero;"
3618 msgstr "I<arg4> が I<arg5> で 0 以外である。"
3619
3620 #. type: Plain text
3621 #: build/C/man2/prctl.2:877
3622 msgid ""
3623 "I<arg3> is greater than B<TASK_SIZE> (the limit on the size of the user "
3624 "address space for this architecture);"
3625 msgstr ""
3626 "I<arg3> が B<TASK_SIZE> よりも大きい  (B<TASK_SIZE> はこのアーキテクチャーで"
3627 "ユーザー空間アドレススペースの最大サイズである)。"
3628
3629 #. type: Plain text
3630 #: build/C/man2/prctl.2:887
3631 msgid ""
3632 "I<arg2> is B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3633 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, or B<PR_SET_MM_START_STACK>, "
3634 "and the permissions of the corresponding memory area are not as required;"
3635 msgstr ""
3636 "I<arg2> が B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3637 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, B<PR_SET_MM_START_STACK> のど"
3638 "れかで、対応するメモリ領域のアクセス許可が要件を満たしていない。"
3639
3640 #. type: Plain text
3641 #: build/C/man2/prctl.2:899
3642 msgid ""
3643 "I<arg2> is B<PR_SET_MM_START_BRK> or B<PR_SET_MM_BRK>, and I<arg3> is less "
3644 "than or equal to the end of the data segment or specifies a value that would "
3645 "cause the B<RLIMIT_DATA> resource limit to be exceeded."
3646 msgstr ""
3647 "I<arg2> が B<PR_SET_MM_START_BRK> か B<PR_SET_MM_BRK> で、 I<arg3> データセグ"
3648 "メントの末尾と同じかそれより前か、 I<arg3> に B<RLIMIT_DATA> リソースリミット"
3649 "を超えてしまうような値が指定されている。"
3650
3651 #. type: Plain text
3652 #: build/C/man2/prctl.2:910
3653 msgid ""
3654 "I<option> is B<PR_SET_PTRACER> and I<arg2> is not 0, B<PR_SET_PTRACER_ANY>, "
3655 "or the PID of an existing process."
3656 msgstr ""
3657 "I<option> が B<PR_SET_PTRACER> で I<arg2> が 0, B<PR_SET_PTRACER_ANY>, 既存プ"
3658 "ロセスの PID のいずれでもない。"
3659
3660 #. type: Plain text
3661 #: build/C/man2/prctl.2:918
3662 msgid ""
3663 "I<option> is B<PR_SET_PDEATHSIG> and I<arg2> is not a valid signal number."
3664 msgstr ""
3665 "I<option> が B<PR_SET_PDEATHSIG> で、 I<arg2> で指定された値は無効なシグナル"
3666 "番号である。"
3667
3668 #. type: Plain text
3669 #: build/C/man2/prctl.2:929
3670 msgid ""
3671 "I<option> is B<PR_SET_DUMPABLE> and I<arg2> is neither B<SUID_DUMP_DISABLE> "
3672 "nor B<SUID_DUMP_USER>."
3673 msgstr ""
3674 "I<option> が B<PR_SET_DUMPABLE> で、 I<arg2> が B<SUID_DUMP_DISABLE> でも "
3675 "B<SUID_DUMP_USER> でもない。"
3676
3677 #. type: Plain text
3678 #: build/C/man2/prctl.2:938
3679 msgid ""
3680 "I<option> is B<PR_SET_TIMING> and I<arg2> is not B<PR_TIMING_STATISTICAL>."
3681 msgstr ""
3682 "I<option> が B<PR_SET_TIMING> で、 I<arg2> が B<PR_TIMING_STATISTICAL> ではな"
3683 "い。"
3684
3685 #. type: Plain text
3686 #: build/C/man2/prctl.2:952
3687 msgid ""
3688 "I<option> is B<PR_SET_NO_NEW_PRIVS> and I<arg2> is not equal to 1 or "
3689 "I<arg3>, I<arg4>, or I<arg5> is nonzero."
3690 msgstr ""
3691 "I<option> が B<PR_SET_NO_NEW_PRIVS> で、 I<arg2> が 1 以外か、 I<arg3>, "
3692 "I<arg4>, I<arg5> のどれかが 0 ではない。"
3693
3694 #. type: Plain text
3695 #: build/C/man2/prctl.2:964
3696 msgid ""
3697 "I<option> is B<PR_GET_NO_NEW_PRIVS> and I<arg2>, I<arg3>, I<arg4>, or "
3698 "I<arg5> is nonzero."
3699 msgstr ""
3700 "I<option> が B<PR_GET_NO_NEW_PRIVS> で、 I<arg2>, I<arg3>, I<arg4>, I<arg5> "
3701 "のどれかが 0 ではない。"
3702
3703 #. type: Plain text
3704 #: build/C/man2/prctl.2:975
3705 msgid ""
3706 "I<option> is B<PR_SET_THP_DISABLE> and I<arg3>, I<arg4>, or I<arg5> is "
3707 "nonzero."
3708 msgstr ""
3709 "I<option> が B<PR_SET_THP_DISABLE> で I<arg3>, I<arg4>, I<arg5> のどれかが 0 "
3710 "ではない。"
3711
3712 #. type: Plain text
3713 #: build/C/man2/prctl.2:987
3714 msgid ""
3715 "I<option> is B<PR_GET_THP_DISABLE> and I<arg2>, I<arg3>, I<arg4>, or I<arg5> "
3716 "is nonzero."
3717 msgstr ""
3718 "I<option> が B<PR_GET_THP_DISABLE> で I<arg2>, I<arg3>, I<arg4>, I<arg5> のい"
3719 "ずれが 0 ではない。"
3720
3721 #. type: Plain text
3722 #: build/C/man2/prctl.2:999
3723 msgid ""
3724 "I<option> is B<PR_SET_SECUREBITS>, and the caller does not have the "
3725 "B<CAP_SETPCAP> capability, or tried to unset a \"locked\" flag, or tried to "
3726 "set a flag whose corresponding locked flag was set (see B<capabilities>(7))."
3727 msgstr ""
3728 "I<option> が B<PR_SET_SECUREBITS> で、呼び出し元がケーパビリティ "
3729 "B<CAP_SETPCAP> を持っていない。 または、\"locked\" フラグを解除しようとし"
3730 "た。 または、locked フラグがセットされているフラグをセットしようとした "
3731 "(B<capabilities>(7)  参照)。"
3732
3733 #. type: Plain text
3734 #: build/C/man2/prctl.2:1009
3735 msgid ""
3736 "I<option> is B<PR_SET_KEEPCAPS>, and the callers's "
3737 "B<SECURE_KEEP_CAPS_LOCKED> flag is set (see B<capabilities>(7))."
3738 msgstr ""
3739 "I<option> が B<PR_SET_KEEPCAPS> で、呼び出し元のフラグ "
3740 "B<SECURE_KEEP_CAPS_LOCKED> がセットされている (B<capabilities>(7)  参照)。"
3741
3742 #. type: Plain text
3743 #: build/C/man2/prctl.2:1017
3744 msgid ""
3745 "I<option> is B<PR_CAPBSET_DROP>, and the caller does not have the "
3746 "B<CAP_SETPCAP> capability."
3747 msgstr ""
3748 "I<option> が B<PR_CAPBSET_DROP> で、呼び出し元がケーパビリティ "
3749 "B<CAP_SETPCAP> を持っていない。"
3750
3751 #. type: Plain text
3752 #: build/C/man2/prctl.2:1025
3753 msgid ""
3754 "I<option> is B<PR_SET_MM>, and the caller does not have the "
3755 "B<CAP_SYS_RESOURCE> capability."
3756 msgstr ""
3757 "I<option> が B<PR_SET_MM> で、呼び出し元がケーパビリティ B<CAP_SYS_RESOURCE> "
3758 "を持っていない。"
3759
3760 #. type: TP
3761 #: build/C/man2/prctl.2:1025
3762 #, no-wrap
3763 msgid "B<EACCES>"
3764 msgstr "B<EACCES>"
3765
3766 #. type: Plain text
3767 #: build/C/man2/prctl.2:1035
3768 msgid ""
3769 "I<option> is B<PR_SET_MM>, and I<arg3> is B<PR_SET_MM_EXE_FILE>, the file is "
3770 "not executable."
3771 msgstr ""
3772 "I<option> が B<PR_SET_MM>、かつ I<arg3> が B<PR_SET_MM_EXE_FILE> で、ファイル"
3773 "が実行可能ではない。"
3774
3775 #. type: TP
3776 #: build/C/man2/prctl.2:1035
3777 #, no-wrap
3778 msgid "B<EBUSY>"
3779 msgstr "B<EBUSY>"
3780
3781 #. type: Plain text
3782 #: build/C/man2/prctl.2:1046
3783 msgid ""
3784 "I<option> is B<PR_SET_MM>, I<arg3> is B<PR_SET_MM_EXE_FILE>, and this the "
3785 "second attempt to change the I</proc/pid/exe> symbolic link, which is "
3786 "prohibited."
3787 msgstr ""
3788 "I<option> が B<PR_SET_MM> で、 I<arg3> が B<PR_SET_MM_EXE_FILE> で、 I</proc/"
3789 "pid/exe> シンボリックリンクを変更しようとしたが、 禁止されている。"
3790
3791 #. type: TP
3792 #: build/C/man2/prctl.2:1046 build/C/man2/signalfd.2:266
3793 #: build/C/man2/timerfd_create.2:345
3794 #, no-wrap
3795 msgid "B<EBADF>"
3796 msgstr "B<EBADF>"
3797
3798 #.  The following can't actually happen, because prctl() in
3799 #.  seccomp mode will cause SIGKILL.
3800 #.  .TP
3801 #.  .B EPERM
3802 #.  .I option
3803 #.  is
3804 #.  .BR PR_SET_SECCOMP ,
3805 #.  and secure computing mode is already 1.
3806 #. type: Plain text
3807 #: build/C/man2/prctl.2:1065
3808 msgid ""
3809 "I<option> is B<PR_SET_MM>, I<arg3> is B<PR_SET_MM_EXE_FILE>, and the file "
3810 "descriptor passed in I<arg4> is not valid."
3811 msgstr ""
3812 "I<option> が B<PR_SET_MM> で、 I<arg3> が B<PR_SET_MM_EXE_FILE> で、 I<arg4> "
3813 "で渡されたファイルディスクリプタが有効ではない。"
3814
3815 #.  The library interface was added in glibc 2.0.6
3816 #. type: Plain text
3817 #: build/C/man2/prctl.2:1070
3818 msgid "The B<prctl>()  system call was introduced in Linux 2.1.57."
3819 msgstr "B<prctl>()  システムコールは Linux 2.1.57 で導入された。"
3820
3821 #. type: Plain text
3822 #: build/C/man2/prctl.2:1077
3823 msgid ""
3824 "This call is Linux-specific.  IRIX has a B<prctl>()  system call (also "
3825 "introduced in Linux 2.1.44 as irix_prctl on the MIPS architecture), with "
3826 "prototype"
3827 msgstr ""
3828 "このコールは Linux 特有である。 IRIX には B<prctl>()  システム・コールがある"
3829 "が (MIPS アーキテクチャにおいて irix_prctl として Linux 2.1.44 で同様に導入さ"
3830 "れた)、 そのプロトタイプは"
3831
3832 #. type: Plain text
3833 #: build/C/man2/prctl.2:1079
3834 msgid "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3835 msgstr "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3836
3837 #. type: Plain text
3838 #: build/C/man2/prctl.2:1084
3839 msgid ""
3840 "and options to get the maximum number of processes per user, get the maximum "
3841 "number of processors the calling process can use, find out whether a "
3842 "specified process is currently blocked, get or set the maximum stack size, "
3843 "and so on."
3844 msgstr ""
3845 "である。ユーザー当りのプロセス最大数を取得するオプション、 プロセスの使用でき"
3846 "る最大プロッサー数を取得するオプション、 現在特定のプロセスが停止(block)させ"
3847 "られているかどうか調べるオプション、 スタックサイズの最大値の取得や設定を行な"
3848 "うオプションなどがある。"
3849
3850 #. type: Plain text
3851 #: build/C/man2/prctl.2:1087
3852 msgid "B<signal>(2), B<core>(5)"
3853 msgstr "B<signal>(2), B<core>(5)"
3854
3855 #. type: TH
3856 #: build/C/man3/profil.3:28
3857 #, no-wrap
3858 msgid "PROFIL"
3859 msgstr "PROFIL"
3860
3861 #. type: Plain text
3862 #: build/C/man3/profil.3:31
3863 msgid "profil - execution time profile"
3864 msgstr "profil - 実行時間プロファイル (profile)"
3865
3866 #. type: Plain text
3867 #: build/C/man3/profil.3:34
3868 #, no-wrap
3869 msgid "B<#include E<lt>unistd.hE<gt>>\n"
3870 msgstr "B<#include E<lt>unistd.hE<gt>>\n"
3871
3872 #. type: Plain text
3873 #: build/C/man3/profil.3:37
3874 #, no-wrap
3875 msgid ""
3876 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3877 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3878 msgstr ""
3879 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3880 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3881
3882 #. type: Plain text
3883 #: build/C/man3/profil.3:46
3884 msgid ""
3885 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3886 msgstr ""
3887 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3888
3889 #. type: Plain text
3890 #: build/C/man3/profil.3:68
3891 msgid ""
3892 "This routine provides a means to find out in what areas your program spends "
3893 "most of its time.  The argument I<buf> points to I<bufsiz> bytes of core.  "
3894 "Every virtual 10 milliseconds, the user's program counter (PC)  is examined: "
3895 "I<offset> is subtracted and the result is multiplied by I<scale> and divided "
3896 "by 65536.  If the resulting value is less than I<bufsiz>, then the "
3897 "corresponding entry in I<buf> is incremented.  If I<buf> is NULL, profiling "
3898 "is disabled."
3899 msgstr ""
3900 "このルーティンはプログラムのどこの部分で時間を費やしているかを調べる 手段を提"
3901 "供する。引き数 I<buf> は I<bufsiz> バイトのメモリを指している。仮想の 10 ミリ"
3902 "秒ごとに、ユーザーの プログラム・カウンター (PC) が検査される: I<offset> が引"
3903 "かれ、その結果が I<scale> 倍され 65536 で割られる。 結果が I<bufsiz> より小さ"
3904 "い場合は I<buf> の対応するエントリがインクリメントされる。 I<buf> が NULL な"
3905 "らば、プロファイル (profile) は無効にされる。"
3906
3907 #. type: Plain text
3908 #: build/C/man3/profil.3:70
3909 msgid "Zero is always returned."
3910 msgstr "常に 0 が返される。"
3911
3912 #. type: Plain text
3913 #: build/C/man3/profil.3:72
3914 msgid "Similar to a call in SVr4 (but not POSIX.1-2001)."
3915 msgstr "SVr4 のコールに似ている (しかし POSIX.1-2001 ではない)。"
3916
3917 #. type: Plain text
3918 #: build/C/man3/profil.3:78
3919 msgid ""
3920 "B<profil>()  cannot be used on a program that also uses B<ITIMER_PROF> "
3921 "interval timers (see B<setitimer>(2))."
3922 msgstr ""
3923 "B<profil>()  は B<ITIMER_PROF> インターバル・タイマーも使用しているプログラム"
3924 "では使用できない (B<setitimer>(2)  参照)。"
3925
3926 #. type: Plain text
3927 #: build/C/man3/profil.3:81
3928 msgid ""
3929 "True kernel profiling provides more accurate results.  Libc 4.4 contained a "
3930 "kernel patch providing a system call profil."
3931 msgstr ""
3932 "本当のカーネル・プロファイルはより正確な結果を与える。 libc 4.4 にはシステム"
3933 "コール profil を提供するための カーネルパッチが含まれていた。"
3934
3935 #. type: Plain text
3936 #: build/C/man3/profil.3:87
3937 msgid ""
3938 "B<gprof>(1), B<sprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3939 msgstr ""
3940 "B<gprof>(1), B<sprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3941
3942 #. type: TH
3943 #: build/C/man3/psignal.3:30
3944 #, no-wrap
3945 msgid "PSIGNAL"
3946 msgstr "PSIGNAL"
3947
3948 #. type: TH
3949 #: build/C/man3/psignal.3:30
3950 #, no-wrap
3951 msgid "2010-10-06"
3952 msgstr "2010-10-06"
3953
3954 #. type: TH
3955 #: build/C/man3/psignal.3:30 build/C/man3/raise.3:29
3956 #: build/C/man7/sigevent.7:26
3957 #, no-wrap
3958 msgid "GNU"
3959 msgstr "GNU"
3960
3961 #. type: Plain text
3962 #: build/C/man3/psignal.3:33
3963 msgid "psignal, psiginfo - print signal message"
3964 msgstr "psignal, psiginfo - シグナルメッセージを表示"
3965
3966 #. type: Plain text
3967 #: build/C/man3/psignal.3:39
3968 #, no-wrap
3969 msgid ""
3970 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3971 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3972 msgstr ""
3973 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3974 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3975
3976 #. type: Plain text
3977 #: build/C/man3/psignal.3:41
3978 #, no-wrap
3979 msgid "B<extern const char *const >I<sys_siglist>B<[];>\n"
3980 msgstr "B<extern const char *const >I<sys_siglist>B<[];>\n"
3981
3982 #. type: Plain text
3983 #: build/C/man3/psignal.3:50
3984 msgid "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3985 msgstr "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3986
3987 #. type: Plain text
3988 #: build/C/man3/psignal.3:53
3989 msgid ""
3990 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3991 "200809L"
3992 msgstr ""
3993 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3994 "200809L"
3995
3996 #. type: Plain text
3997 #: build/C/man3/psignal.3:56
3998 msgid "I<sys_siglist>: _BSD_SOURCE"
3999 msgstr "I<sys_siglist>: _BSD_SOURCE"
4000
4001 #. type: Plain text
4002 #: build/C/man3/psignal.3:65
4003 msgid ""
4004 "The B<psignal>()  function displays a message on I<stderr> consisting of the "
4005 "string I<s>, a colon, a space, a string describing the signal number I<sig>, "
4006 "and a trailing newline.  If the string I<s> is NULL or empty, the colon and "
4007 "space are omitted.  If I<sig> is invalid, the message displayed will "
4008 "indicate an unknown signal."
4009 msgstr ""
4010 "B<psignal>() 関数は、文字列 I<s>、コロン、スペース、シグナル番号 I<sig> を説"
4011 "明する文字列、終端の改行から構成されるメッセージを I<stderr> に表示する。 文"
4012 "字列 I<s> が NULL か空の場合、コロンとスペースは省略される。 I<sig> が不正な"
4013 "らば、表示される メッセージは未知のシグナルを示す。"
4014
4015 #. type: Plain text
4016 #: build/C/man3/psignal.3:86
4017 msgid ""
4018 "The B<psiginfo>()  function is like B<psignal>(), except that it displays "
4019 "information about the signal described by I<pinfo>, which should point to a "
4020 "valid I<siginfo_t> structure.  As well as the signal description, "
4021 "B<psiginfo>()  displays information about the origin of the signal, and "
4022 "other information relevant to the signal (e.g., the relevant memory address "
4023 "for hardware-generated signals, the child process ID for B<SIGCHLD>, and the "
4024 "user ID and process ID of the sender, for signals set using B<kill>(2)  or "
4025 "B<sigqueue>(3))."
4026 msgstr ""
4027 "B<psiginfo>() 関数は B<psignal>() と同じだが、 I<pinfo> に書かれたシグナルの"
4028 "情報を表示する点が異なる。 I<pinfo> は有効な I<siginfo_t> 構造体を指している"
4029 "必要がある。 B<psiginfo>() は、 シグナルの説明だけでなく、 シグナルの送信元や"
4030 "そのシグナルに関連するその他の情報も表示する (例えば、ハードウェアが発生した"
4031 "シグナルの関連メモリアドレス、 B<SIGCHLD> の子プロセス ID、 I<kill>(2) や "
4032 "B<sigqueue>(3) を使って送信されたシグナルの送信元プロセスのユーザ ID とプロセ"
4033 "ス ID など)。"
4034
4035 #. type: Plain text
4036 #: build/C/man3/psignal.3:89
4037 msgid ""
4038 "The array I<sys_siglist> holds the signal description strings indexed by "
4039 "signal number."
4040 msgstr ""
4041 "配列 I<sys_siglist> はシグナルを説明する文字列を保持しており、 配列へのアクセ"
4042 "スにはシグナル番号を添え字として用いる事ができる。"
4043
4044 #. type: Plain text
4045 #: build/C/man3/psignal.3:95
4046 msgid "The B<psignal>()  and B<psiginfo>()  functions return no value."
4047 msgstr "関数 B<psignal>() と B<psiginfo>() は、値を返さない。"
4048
4049 #. type: Plain text
4050 #: build/C/man3/psignal.3:99
4051 msgid "The B<psiginfo>()  function was added to glibc in version 2.10."
4052 msgstr "B<psiginfo>() 関数は glibc バージョン 2.10 で追加された。"
4053
4054 #. type: Plain text
4055 #: build/C/man3/psignal.3:101
4056 msgid "POSIX.1-2008, 4.3BSD."
4057 msgstr "POSIX.1-2008, 4.3BSD."
4058
4059 #. type: Plain text
4060 #: build/C/man3/psignal.3:105
4061 msgid "In glibc versions up to 2.12, B<psiginfo>()  had the following bugs:"
4062 msgstr ""
4063 "バージョン 2.12 までの glibc では B<psiginfo>() には以下のバグがあった。"
4064
4065 #.  FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=12107
4066 #.  Reportedly now fixed; check glibc 2.13
4067 #. type: Plain text
4068 #: build/C/man3/psignal.3:109
4069 msgid "In some circumstances, a trailing newline is not printed."
4070 msgstr "特定の状況で、末尾の改行が出力されない。"
4071
4072 #.  FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=12108
4073 #.  Reportedly now fixed; check glibc 2.13
4074 #. type: Plain text
4075 #: build/C/man3/psignal.3:113
4076 msgid "Additional details are not displayed for real-time signals."
4077 msgstr "リアルタイムシグナルの場合に、追加の詳細情報が表示されない。"
4078
4079 #. type: Plain text
4080 #: build/C/man3/psignal.3:118
4081 msgid "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
4082 msgstr "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
4083
4084 #. type: TH
4085 #: build/C/man3/raise.3:29
4086 #, no-wrap
4087 msgid "RAISE"
4088 msgstr "RAISE"
4089
4090 #. type: TH
4091 #: build/C/man3/raise.3:29
4092 #, no-wrap
4093 msgid "2014-03-10"
4094 msgstr "2014-03-10"
4095
4096 #. type: Plain text
4097 #: build/C/man3/raise.3:32
4098 msgid "raise - send a signal to the caller"
4099 msgstr "raise - 呼び出し元にシグナルを送る"
4100
4101 #. type: Plain text
4102 #: build/C/man3/raise.3:37
4103 #, no-wrap
4104 msgid "B<int raise(int >I<sig>B<);>\n"
4105 msgstr "B<int raise(int >I<sig>B<);>\n"
4106
4107 #. type: Plain text
4108 #: build/C/man3/raise.3:43
4109 msgid ""
4110 "The B<raise>()  function sends a signal to the calling process or thread.  "
4111 "In a single-threaded program it is equivalent to"
4112 msgstr ""
4113 "B<raise>()  関数は、呼び出し元のプロセスもしくはスレッドにシグナルを送る。 シ"
4114 "ングルスレッドのプログラムでは、以下と等価である。"
4115
4116 #. type: Plain text
4117 #: build/C/man3/raise.3:47
4118 #, no-wrap
4119 msgid "kill(getpid(), sig);\n"
4120 msgstr "kill(getpid(), sig);\n"
4121
4122 #. type: Plain text
4123 #: build/C/man3/raise.3:51
4124 msgid "In a multithreaded program it is equivalent to"
4125 msgstr "マルチスレッドのプログラムでは、以下と等価である。"
4126
4127 #. type: Plain text
4128 #: build/C/man3/raise.3:55
4129 #, no-wrap
4130 msgid "pthread_kill(pthread_self(), sig);\n"
4131 msgstr "pthread_kill(pthread_self(), sig);\n"
4132
4133 #. type: Plain text
4134 #: build/C/man3/raise.3:61
4135 msgid ""
4136 "If the signal causes a handler to be called, B<raise>()  will return only "
4137 "after the signal handler has returned."
4138 msgstr ""
4139 "シグナルに起因してシグナル・ハンドラが呼び出される場合には、 B<raise>()  が返"
4140 "るのは必ずシグナル・ハンドラが返った後になる。"
4141
4142 #. type: Plain text
4143 #: build/C/man3/raise.3:64
4144 msgid "B<raise>()  returns 0 on success, and nonzero for failure."
4145 msgstr "成功した場合は 0 を、失敗した場合は 0 以外の値を返す。"
4146
4147 #. type: Plain text
4148 #: build/C/man3/raise.3:69
4149 msgid "The B<raise>()  function is thread-safe."
4150 msgstr "B<raise>() 関数はスレッドセーフである。"
4151
4152 #. type: Plain text
4153 #: build/C/man3/raise.3:71 build/C/man2/signal.2:112
4154 msgid "C89, C99, POSIX.1-2001."
4155 msgstr "C89, C99, POSIX.1-2001."
4156
4157 #.  2.3.2 used the obsolete tkill(), if available.
4158 #. type: Plain text
4159 #: build/C/man3/raise.3:82
4160 msgid ""
4161 "Since version 2.3.3, glibc implements B<raise>()  by calling B<tgkill>(2), "
4162 "if the kernel supports that system call.  Older glibc versions implemented "
4163 "B<raise>()  using B<kill>(2)."
4164 msgstr ""
4165 "glibc バージョン 2.3.3 以降では、カーネルが B<tgkill>(2) システムコールをサ"
4166 "ポートしている場合はB<raise>() は B<tgkill>(2) を使って実装されている。古い"
4167 "バージョンの glibc では、B<raise>() は B<kill>(2) を使って実装されている。"
4168
4169 #. type: Plain text
4170 #: build/C/man3/raise.3:89
4171 msgid ""
4172 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
4173 "B<signal>(7)"
4174 msgstr ""
4175 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
4176 "B<signal>(7)"
4177
4178 #. type: TH
4179 #: build/C/man2/restart_syscall.2:33
4180 #, no-wrap
4181 msgid "RESTART_SYSCALL"
4182 msgstr ""
4183
4184 #. type: Plain text
4185 #: build/C/man2/restart_syscall.2:36
4186 msgid ""
4187 "restart_syscall - restart a system call after interruption by a stop signal"
4188 msgstr ""
4189 "restart_syscall - 一時停止シグナルによる割り込み後にシステムコールを再開する"
4190
4191 #. type: Plain text
4192 #: build/C/man2/restart_syscall.2:38
4193 msgid "B<int restart_syscall(void);>"
4194 msgstr "B<int restart_syscall(void);>"
4195
4196 #. type: Plain text
4197 #: build/C/man2/restart_syscall.2:41
4198 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
4199 msgstr ""
4200 "I<注>: このシステムコールには、glibc のラッパー関数はない。「注意」の節を参"
4201 "照。"
4202
4203 #. type: Plain text
4204 #: build/C/man2/restart_syscall.2:53
4205 msgid ""
4206 "The B<restart_syscall>()  system call is used to restart certain system "
4207 "calls after a process that was stopped by a signal (e.g., B<SIGSTOP> or "
4208 "B<SIGTSTP>)  is later resumed after receiving a B<SIGCONT> signal.  This "
4209 "system call is designed only for internal use by the kernel."
4210 msgstr ""
4211
4212 #.  These system calls correspond to the special internal errno value
4213 #.  ERESTART_RESTARTBLOCK. Each of the system calls has a "restart"
4214 #.  helper function that is invoked by restart_syscall().
4215 #.  Notable (as at Linux 3.17) is that poll() has such a "restart"
4216 #.  function, but ppoll(), select(), and pselect() do not.
4217 #.  This means that the latter system calls do not take account of the
4218 #.  time spent in the stopped state when restarting.
4219 #. type: Plain text
4220 #: build/C/man2/restart_syscall.2:88
4221 msgid ""
4222 "B<restart_syscall>()  is used for restarting only those system calls that, "
4223 "when restarted, should adjust their time-related parameters\\(emnamely "
4224 "B<poll>(2)  (since Linux 2.6.24), B<nanosleep>(2)  (since Linux 2.6), "
4225 "B<clock_nanosleep>(2)  (since Linux 2.6), and B<futex>(2), when employed "
4226 "with the B<FUTEX_WAIT> (since Linux 2.6.22)  and B<FUTEX_WAIT_BITSET> (since "
4227 "Linux 2.6.31)  operations.  B<restart_syscall>()  restarts the interrupted "
4228 "system call with a time argument that is suitably adjusted to account for "
4229 "the time that has already elapsed (including the time where the process was "
4230 "stopped by a signal).  Without the B<restart_syscall>()  mechanism, "
4231 "restarting these system calls would not correctly deduct the already elapsed "
4232 "time when the process continued execution."
4233 msgstr ""
4234
4235 #. type: Plain text
4236 #: build/C/man2/restart_syscall.2:92
4237 msgid ""
4238 "The return value of B<restart_syscall>()  is the return value of whatever "
4239 "system call is being restarted."
4240 msgstr ""
4241
4242 #. type: Plain text
4243 #: build/C/man2/restart_syscall.2:96
4244 msgid ""
4245 "I<errno> is set as per the errors for whatever system call is being "
4246 "restarted by B<restart_syscall>()."
4247 msgstr ""
4248
4249 #. type: Plain text
4250 #: build/C/man2/restart_syscall.2:100
4251 msgid "The B<restart_syscall>()  system call is present since Linux 2.6."
4252 msgstr "B<restart_syscall>() システムコールは Linux 2.6 以降に存在する。"
4253
4254 #. type: Plain text
4255 #: build/C/man2/restart_syscall.2:102
4256 msgid "This system call is Linux-specific."
4257 msgstr "このシステムコールは Linux 固有である。"
4258
4259 #. type: Plain text
4260 #: build/C/man2/restart_syscall.2:106
4261 msgid ""
4262 "There is no glibc wrapper for this system call, because it is intended for "
4263 "use only by the kernel and should never be called by applications."
4264 msgstr ""
4265
4266 #. type: Plain text
4267 #: build/C/man2/restart_syscall.2:128
4268 msgid ""
4269 "The kernel uses B<restart_syscall>()  to ensure that when a system call is "
4270 "restarted after a process has been stopped by a signal and then resumed by "
4271 "B<SIGCONT>, then the time that the process spent in the stopped state is "
4272 "counted against the timeout interval specified in the original system call.  "
4273 "In the case of system calls that take a timeout argument and automatically "
4274 "restart after a stop signal plus B<SIGCONT>, but which do not have the "
4275 "B<restart_syscall>(2)  mechanism built in, then, after the process resumes "
4276 "execution, the time that the process spent in the stop state is I<not> "
4277 "counted against the timeout value.  Notable examples of system calls that "
4278 "suffer this problem are B<ppoll>(2), B<select>(2), and B<pselect>(2)."
4279 msgstr ""
4280
4281 #
4282 #. type: Plain text
4283 #: build/C/man2/restart_syscall.2:135
4284 msgid ""
4285 "From user space, the operation of B<restart_syscall>(2)  is largely "
4286 "invisible: to the process that made the system call that is restarted, it "
4287 "appears as though that system call executed and returned in the usual "
4288 "fashion."
4289 msgstr ""
4290
4291 #.  FIXME . ppoll(2), select(2), and pselect(2)
4292 #.      should probably get the restart_syscall() treatment:
4293 #.      If a select() call is suspended by stop-sig+SIGCONT, the time
4294 #.      spent suspended is *not* deducted when the select() is restarted.
4295 #.  FIXME . check whether recvmmsg() handles stop-sig+SIGCONT properly.
4296 #. type: Plain text
4297 #: build/C/man2/restart_syscall.2:144
4298 msgid "B<sigaction>(2), B<sigreturn>(2), B<signal>(7)"
4299 msgstr "B<sigaction>(2), B<sigreturn>(2), B<signal>(7)"
4300
4301 #. type: TH
4302 #: build/C/man2/rt_sigqueueinfo.2:25
4303 #, no-wrap
4304 msgid "RT_SIGQUEUEINFO"
4305 msgstr "RT_SIGQUEUEINFO"
4306
4307 #. type: TH
4308 #: build/C/man2/rt_sigqueueinfo.2:25
4309 #, no-wrap
4310 msgid "2012-07-13"
4311 msgstr "2012-07-13"
4312
4313 #. type: Plain text
4314 #: build/C/man2/rt_sigqueueinfo.2:28
4315 msgid "rt_sigqueueinfo, rt_tgsigqueueinfo - queue a signal and data"
4316 msgstr ""
4317
4318 #. type: Plain text
4319 #: build/C/man2/rt_sigqueueinfo.2:31
4320 #, no-wrap
4321 msgid "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
4322 msgstr "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
4323
4324 #. type: Plain text
4325 #: build/C/man2/rt_sigqueueinfo.2:34
4326 #, no-wrap
4327 msgid ""
4328 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
4329 "B<                      siginfo_t *>I<uinfo>B<);>\n"
4330 msgstr ""
4331 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
4332 "B<                      siginfo_t *>I<uinfo>B<);>\n"
4333
4334 #. type: Plain text
4335 #: build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/sgetmask.2:36
4336 #: build/C/man2/tkill.2:41
4337 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
4338 msgstr ""
4339 "I<注>: これらのシステムコールには、glibc のラッパー関数はない。「注意」の節を"
4340 "参照。"
4341
4342 #. type: Plain text
4343 #: build/C/man2/rt_sigqueueinfo.2:50
4344 msgid ""
4345 "The B<rt_sigqueueinfo>()  and B<rt_tgsigqueueinfo>()  system calls are the "
4346 "low-level interfaces used to send a signal plus data to a process or "
4347 "thread.  The receiver of the signal can obtain the accompanying data by "
4348 "establishing a signal handler with the B<sigaction>(2)  B<SA_SIGINFO> flag."
4349 msgstr ""
4350
4351 #. type: Plain text
4352 #: build/C/man2/rt_sigqueueinfo.2:56
4353 msgid ""
4354 "These system calls are not intended for direct application use; they are "
4355 "provided to allow the implementation of B<sigqueue>(3)  and "
4356 "B<pthread_sigqueue>(3)."
4357 msgstr ""
4358
4359 #. type: Plain text
4360 #: build/C/man2/rt_sigqueueinfo.2:68
4361 msgid ""
4362 "The B<rt_sigqueueinfo>()  system call sends the signal I<sig> to the thread "
4363 "group with the ID I<tgid>.  (The term \"thread group\" is synonymous with "
4364 "\"process\", and I<tid> corresponds to the traditional UNIX process ID.)  "
4365 "The signal will be delivered to an arbitrary member of the thread group (i."
4366 "e., one of the threads that is not currently blocking the signal)."
4367 msgstr ""
4368
4369 #. type: Plain text
4370 #: build/C/man2/rt_sigqueueinfo.2:79
4371 msgid ""
4372 "The I<uinfo> argument specifies the data to accompany the signal.  This "
4373 "argument is a pointer to a structure of type I<siginfo_t>, described in "
4374 "B<sigaction>(2)  (and defined by including I<E<lt>sigaction.hE<gt>>).  The "
4375 "caller should set the following fields in this structure:"
4376 msgstr ""
4377
4378 #. type: TP
4379 #: build/C/man2/rt_sigqueueinfo.2:79 build/C/man7/sigevent.7:88
4380 #: build/C/man2/wait.2:316
4381 #, no-wrap
4382 msgid "I<si_code>"
4383 msgstr "I<si_code>"
4384
4385 #.  tkill(2) or
4386 #. type: Plain text
4387 #: build/C/man2/rt_sigqueueinfo.2:95
4388 msgid ""
4389 "This must be one of the B<SI_*> codes in the Linux kernel source file "
4390 "I<include/asm-generic/siginfo.h>, with the restriction that the code must be "
4391 "negative (i.e., cannot be B<SI_USER>, which is used by the kernel to "
4392 "indicate a signal sent by B<kill>(2))  and cannot (since Linux 2.6.39) be "
4393 "B<SI_TKILL> (which is used by the kernel to indicate a signal sent using "
4394 "B<tgkill>(2))."
4395 msgstr ""
4396
4397 #. type: TP
4398 #: build/C/man2/rt_sigqueueinfo.2:95 build/C/man2/wait.2:295
4399 #, no-wrap
4400 msgid "I<si_pid>"
4401 msgstr "I<si_pid>"
4402
4403 #. type: Plain text
4404 #: build/C/man2/rt_sigqueueinfo.2:99
4405 msgid ""
4406 "This should be set to a process ID, typically the process ID of the sender."
4407 msgstr ""
4408
4409 #. type: TP
4410 #: build/C/man2/rt_sigqueueinfo.2:99 build/C/man2/wait.2:298
4411 #, no-wrap
4412 msgid "I<si_uid>"
4413 msgstr "I<si_uid>"
4414
4415 #. type: Plain text
4416 #: build/C/man2/rt_sigqueueinfo.2:103
4417 msgid ""
4418 "This should be set to a user ID, typically the real user ID of the sender."
4419 msgstr ""
4420
4421 #. type: TP
4422 #: build/C/man2/rt_sigqueueinfo.2:103 build/C/man7/sigevent.7:96
4423 #, no-wrap
4424 msgid "I<si_value>"
4425 msgstr "I<si_value>"
4426
4427 #. type: Plain text
4428 #: build/C/man2/rt_sigqueueinfo.2:110
4429 msgid ""
4430 "This field contains the user data to accompany the signal.  For more "
4431 "information, see the description of the last (I<union sigval>)  argument of "
4432 "B<sigqueue>(3)."
4433 msgstr ""
4434
4435 #. type: Plain text
4436 #: build/C/man2/rt_sigqueueinfo.2:117
4437 msgid ""
4438 "Internally, the kernel sets the I<si_signo> field to the value specified in "
4439 "I<sig>, so that the receiver of the signal can also obtain the signal number "
4440 "via that field."
4441 msgstr ""
4442
4443 #. type: Plain text
4444 #: build/C/man2/rt_sigqueueinfo.2:129
4445 msgid ""
4446 "The B<rt_tgsigqueueinfo>()  system call is like B<rt_sigqueueinfo>(), but "
4447 "sends the signal and data to the single thread specified by the combination "
4448 "of I<tgid>, a thread group ID, and I<tid>, a thread in that thread group."
4449 msgstr ""
4450
4451 #. type: Plain text
4452 #: build/C/man2/rt_sigqueueinfo.2:134
4453 msgid ""
4454 "On success, these system calls return 0.  On error, they return -1 and "
4455 "I<errno> is set to indicate the error."
4456 msgstr ""
4457
4458 #. type: TP
4459 #: build/C/man2/rt_sigqueueinfo.2:135 build/C/man3/sigqueue.3:92
4460 #: build/C/man2/sigwaitinfo.2:115 build/C/man2/timer_create.2:178
4461 #, no-wrap
4462 msgid "B<EAGAIN>"
4463 msgstr "B<EAGAIN>"
4464
4465 #. type: Plain text
4466 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man3/sigqueue.3:98
4467 msgid ""
4468 "The limit of signals which may be queued has been reached.  (See "
4469 "B<signal>(7)  for further information.)"
4470 msgstr ""
4471 "待ち行列に入れられるシグナルの最大数に達した (より詳しい情報は B<signal>(7)  "
4472 "を参照すること)。"
4473
4474 #. type: Plain text
4475 #: build/C/man2/rt_sigqueueinfo.2:148
4476 msgid "I<sig>, I<tgid>, or I<tid> was invalid."
4477 msgstr ""
4478
4479 #. type: Plain text
4480 #: build/C/man2/rt_sigqueueinfo.2:156
4481 msgid ""
4482 "The caller does not have permission to send the signal to the target.  For "
4483 "the required permissions, see B<kill>(2).  Or: I<uinfo-E<gt>si_code> is "
4484 "invalid."
4485 msgstr ""
4486
4487 #. type: Plain text
4488 #: build/C/man2/rt_sigqueueinfo.2:162
4489 msgid "B<rt_sigqueueinfo>(): No thread group matching I<tgid> was found."
4490 msgstr ""
4491
4492 #. type: Plain text
4493 #: build/C/man2/rt_sigqueueinfo.2:169
4494 msgid "B<rt_tgsigqueinfo>(): No thread matching I<tgid> and I<tid> was found."
4495 msgstr ""
4496
4497 #. type: Plain text
4498 #: build/C/man2/rt_sigqueueinfo.2:176
4499 msgid ""
4500 "The B<rt_sigqueueinfo>()  system call was added to Linux in version 2.2.  "
4501 "The B<rt_tgsigqueueinfo>()  system call was added to Linux in version 2.6.31."
4502 msgstr ""
4503
4504 #. type: Plain text
4505 #: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/sgetmask.2:75
4506 #: build/C/man2/timerfd_create.2:380
4507 msgid "These system calls are Linux-specific."
4508 msgstr "これらのシステムコールは Linux 固有である。"
4509
4510 #. type: Plain text
4511 #: build/C/man2/rt_sigqueueinfo.2:183
4512 msgid ""
4513 "Since these system calls are not intended for application use, there are no "
4514 "glibc wrapper functions; use B<syscall>(2)  in the unlikely case that you "
4515 "want to call them directly."
4516 msgstr ""
4517 "これらのシステムコールはアプリケーションでの使用を目的として用意されたわけで"
4518 "はないので、 glibc のラッパー関数は存在しない。おそらくないと思うが、このシス"
4519 "テムコールを直接呼び出したい場合は B<syscall>(2) を使うこと。"
4520
4521 #. type: Plain text
4522 #: build/C/man2/rt_sigqueueinfo.2:188
4523 msgid ""
4524 "As with B<kill>(2), the null signal (0) can be used to check if the "
4525 "specified process or thread exists."
4526 msgstr ""
4527
4528 #. type: Plain text
4529 #: build/C/man2/rt_sigqueueinfo.2:196
4530 msgid ""
4531 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4532 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4533 msgstr ""
4534 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4535 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4536
4537 #. type: TH
4538 #: build/C/man2/s390_runtime_instr.2:25
4539 #, no-wrap
4540 msgid "S390_RUNTIME_INSTR"
4541 msgstr ""
4542
4543 #. type: TH
4544 #: build/C/man2/s390_runtime_instr.2:25
4545 #, no-wrap
4546 msgid "2012-12-17"
4547 msgstr "2012-12-17"
4548
4549 #. type: Plain text
4550 #: build/C/man2/s390_runtime_instr.2:28
4551 msgid "s390_runtime_instr - enable/disable s390 CPU run-time instrumentation"
4552 msgstr ""
4553
4554 #. type: Plain text
4555 #: build/C/man2/s390_runtime_instr.2:31
4556 #, no-wrap
4557 msgid "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4558 msgstr "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4559
4560 #. type: Plain text
4561 #: build/C/man2/s390_runtime_instr.2:33
4562 #, no-wrap
4563 msgid "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4564 msgstr "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4565
4566 #. type: Plain text
4567 #: build/C/man2/s390_runtime_instr.2:39
4568 msgid ""
4569 "The B<s390_runtime_instr>()  system call starts or stops CPU run-time "
4570 "instrumentation for the calling thread."
4571 msgstr ""
4572
4573 #. type: Plain text
4574 #: build/C/man2/s390_runtime_instr.2:47
4575 msgid ""
4576 "The I<command> argument controls whether run-time instrumentation is started "
4577 "(B<S390_RUNTIME_INSTR_START>, 1) or stopped (B<S390_RUNTIME_INSTR_STOP>, 2) "
4578 "for the calling thread."
4579 msgstr ""
4580
4581 #. type: Plain text
4582 #: build/C/man2/s390_runtime_instr.2:54
4583 msgid ""
4584 "The I<signum> argument specifies the number of a real-time signal.  The real-"
4585 "time signal is sent to the thread if the run-time instrumentation buffer is "
4586 "full or if the run-time-instrumentation-halted interrupt occurred."
4587 msgstr ""
4588
4589 #. type: Plain text
4590 #: build/C/man2/s390_runtime_instr.2:65
4591 msgid ""
4592 "On success, B<s390_runtime_instr>()  returns 0 and enables the thread for "
4593 "run-time instrumentation by assigning the thread a default run-time "
4594 "instrumentation control block.  The caller can then read and modify the "
4595 "control block and start the run-time instrumentation.  On error, -1 is "
4596 "returned and I<errno> is set to one of the error codes listed below."
4597 msgstr ""
4598
4599 #. type: Plain text
4600 #: build/C/man2/s390_runtime_instr.2:73
4601 msgid ""
4602 "The value specified in I<command> is not a valid command or the value "
4603 "specified in I<signum> is not a real-time signal number."
4604 msgstr ""
4605
4606 #. type: Plain text
4607 #: build/C/man2/s390_runtime_instr.2:76
4608 msgid ""
4609 "Allocating memory for the run-time instrumentation control block failed."
4610 msgstr ""
4611
4612 #. type: TP
4613 #: build/C/man2/s390_runtime_instr.2:76
4614 #, no-wrap
4615 msgid "B<EOPNOTSUPP>"
4616 msgstr ""
4617
4618 #. type: Plain text
4619 #: build/C/man2/s390_runtime_instr.2:79
4620 msgid "The run-time instrumentation facility is not available."
4621 msgstr ""
4622
4623 #. type: Plain text
4624 #: build/C/man2/s390_runtime_instr.2:81
4625 msgid "This system call is available since Linux 3.7."
4626 msgstr "このシステムコールは Linux 3.7 で初めて登場した。"
4627
4628 #. type: Plain text
4629 #: build/C/man2/s390_runtime_instr.2:84
4630 msgid ""
4631 "This Linux-specific system call is available only on the s390 architecture.  "
4632 "The run-time instrumentation facility is available beginning with System z "
4633 "EC12."
4634 msgstr ""
4635
4636 #. type: Plain text
4637 #: build/C/man2/s390_runtime_instr.2:88
4638 msgid ""
4639 "Glibc does not provide a wrapper for this system call, use B<syscall>(2)  to "
4640 "call it."
4641 msgstr ""
4642 "glibc はこのシステムコールに対するラッパー関数を提供していない。 "
4643 "B<syscall>(2) を使用すること。"
4644
4645 #. type: Plain text
4646 #: build/C/man2/s390_runtime_instr.2:91
4647 msgid "B<syscall>(2), B<signal>(7)"
4648 msgstr "B<syscall>(2), B<signal>(7)"
4649
4650 #. type: TH
4651 #: build/C/man2/sgetmask.2:26
4652 #, no-wrap
4653 msgid "SGETMASK"
4654 msgstr "SGETMASK"
4655
4656 #. type: Plain text
4657 #: build/C/man2/sgetmask.2:29
4658 msgid "sgetmask, ssetmask - manipulation of signal mask (obsolete)"
4659 msgstr "sgetmask, ssetmask - シグナルマスクの操作 (廃止予定)"
4660
4661 #. type: Plain text
4662 #: build/C/man2/sgetmask.2:31
4663 msgid "B<long sgetmask(void);>"
4664 msgstr "B<long sgetmask(void);>"
4665
4666 #. type: Plain text
4667 #: build/C/man2/sgetmask.2:33
4668 msgid "B<long ssetmask(long >I<newmask>B<);>"
4669 msgstr "B<long ssetmask(long >I<newmask>B<);>"
4670
4671 #. type: Plain text
4672 #: build/C/man2/sgetmask.2:42
4673 msgid ""
4674 "These system calls are obsolete.  I<Do not use them>; use B<sigprocmask>(2)  "
4675 "instead."
4676 msgstr ""
4677 "これらのシステムコールは廃止予定であり、 「使用しないこと」。 代わりに "
4678 "B<sigprocmask>(2)  を使用すること。"
4679
4680 #. type: Plain text
4681 #: build/C/man2/sgetmask.2:45
4682 msgid "B<sgetmask>()  returns the signal mask of the calling process."
4683 msgstr "B<sgetmask>()  は、呼び出し元プロセスのシグナルマスクを返す。"
4684
4685 #. type: Plain text
4686 #: build/C/man2/sgetmask.2:50
4687 msgid ""
4688 "B<ssetmask>()  sets the signal mask of the calling process to the value "
4689 "given in I<newmask>.  The previous signal mask is returned."
4690 msgstr ""
4691 "B<ssetmask>()  は、呼び出し元プロセスのシグナルマスクを I<newmask> で指定され"
4692 "た値に設定し、変更前のシグナルマスクを返す。"
4693
4694 #. type: Plain text
4695 #: build/C/man2/sgetmask.2:59
4696 msgid ""
4697 "The signal masks dealt with by these two system calls are plain bit masks "
4698 "(unlike the I<sigset_t> used by B<sigprocmask>(2)); use B<sigmask>(3)  to "
4699 "create and inspect these masks."
4700 msgstr ""
4701 "これら二つのシステムコールが扱うシグナルマスクは、 単純なビットマスクである "
4702 "(この点が B<sigprocmask>(2)  で使用される I<sigset_t> と異なる)。 これらのマ"
4703 "スクを作成したり検査するには B<sigmask>(3)  を使用すること。"
4704
4705 #. type: Plain text
4706 #: build/C/man2/sgetmask.2:64
4707 msgid ""
4708 "B<sgetmask>()  always successfully returns the signal mask.  B<ssetmask>()  "
4709 "always succeeds, and returns the previous signal mask."
4710 msgstr ""
4711 "B<sgetmask>()  は常に成功し、シグナルマスクを返す。 B<ssetmask>()  は常に成功"
4712 "し、直前のシグナルマスクを返す。"
4713
4714 #. type: Plain text
4715 #: build/C/man2/sgetmask.2:66
4716 msgid "These system calls always succeed."
4717 msgstr "これらのシステムコールは常に成功する。"
4718
4719 #.  f6187769dae48234f3877df3c4d99294cc2254fa
4720 #. type: Plain text
4721 #: build/C/man2/sgetmask.2:73
4722 msgid ""
4723 "Since Linux 3.16, support for these system calls is optional, depending on "
4724 "whether the kernel was built with the B<CONFIG_SGETMASK_SYSCALL> option."
4725 msgstr ""
4726
4727 #. type: Plain text
4728 #: build/C/man2/sgetmask.2:79
4729 msgid ""
4730 "Glibc does not provide wrappers for these obsolete system calls; in the "
4731 "unlikely event that you want to call them, use B<syscall>(2)."
4732 msgstr ""
4733 "glibc はこれらの古いシステムコールに対するラッパー関数を提供していない。 あま"
4734 "りないと思うが、これらを呼び出したい場合には B<syscall>(2) を使うこと。"
4735
4736 #. type: Plain text
4737 #: build/C/man2/sgetmask.2:82
4738 msgid ""
4739 "These system calls are unaware of signal numbers greater than 31 (i.e., real-"
4740 "time signals)."
4741 msgstr ""
4742 "これらのシステムコールは、 31 より大きいシグナル番号 (つまり、リアルタイムシ"
4743 "グナル) を扱えない。"
4744
4745 #. type: Plain text
4746 #: build/C/man2/sgetmask.2:84
4747 msgid "These system calls do not exist on x86-64."
4748 msgstr "これらのシステムコールは x86-64 には存在しない。"
4749
4750 #. type: Plain text
4751 #: build/C/man2/sgetmask.2:89
4752 msgid "It is not possible to block B<SIGSTOP> or B<SIGKILL>."
4753 msgstr "B<SIGSTOP> や B<SIGKILL> をブロックすることはできない。"
4754
4755 #. type: Plain text
4756 #: build/C/man2/sgetmask.2:92
4757 msgid "B<sigprocmask>(2), B<signal>(7)"
4758 msgstr "B<sigprocmask>(2), B<signal>(7)"
4759
4760 #. type: TH
4761 #: build/C/man2/sigaction.2:47
4762 #, no-wrap
4763 msgid "SIGACTION"
4764 msgstr "SIGACTION"
4765
4766 #. type: Plain text
4767 #: build/C/man2/sigaction.2:50
4768 msgid "sigaction - examine and change a signal action"
4769 msgstr "sigaction - シグナルの動作の確認と変更"
4770
4771 #. type: Plain text
4772 #: build/C/man2/sigaction.2:56
4773 #, no-wrap
4774 msgid ""
4775 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4776 "B<              struct sigaction *>I<oldact>B<);>\n"
4777 msgstr ""
4778 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4779 "B<              struct sigaction *>I<oldact>B<);>\n"
4780
4781 #. type: Plain text
4782 #: build/C/man2/sigaction.2:66
4783 msgid ""
4784 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4785 "_POSIX_SOURCE"
4786 msgstr ""
4787 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4788 "_POSIX_SOURCE"
4789
4790 #. type: Plain text
4791 #: build/C/man2/sigaction.2:69
4792 msgid "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4793 msgstr "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4794
4795 #. type: Plain text
4796 #: build/C/man2/sigaction.2:78
4797 msgid ""
4798 "The B<sigaction>()  system call is used to change the action taken by a "
4799 "process on receipt of a specific signal.  (See B<signal>(7)  for an overview "
4800 "of signals.)"
4801 msgstr ""
4802 "B<sigaction>()  システムコールは、特定のシグナルを受信した際の プロセスの動作"
4803 "を変更するのに使用される (シグナルの概要については B<signal>(7)  を参照)。"
4804
4805 #. type: Plain text
4806 #: build/C/man2/sigaction.2:84
4807 msgid ""
4808 "I<signum> specifies the signal and can be any valid signal except B<SIGKILL> "
4809 "and B<SIGSTOP>."
4810 msgstr ""
4811 "I<signum> には、 B<SIGKILL> と B<SIGSTOP> 以外の有効なシグナルをどれでも指定"
4812 "できる。"
4813
4814 #. type: Plain text
4815 #: build/C/man2/sigaction.2:95
4816 msgid ""
4817 "If I<act> is non-NULL, the new action for signal I<signum> is installed from "
4818 "I<act>.  If I<oldact> is non-NULL, the previous action is saved in I<oldact>."
4819 msgstr ""
4820 "I<act> が NULL 以外であれば、シグナル I<signum> の新しい動作 (action) として "
4821 "I<act> が設定される。 I<oldact> が NULL でなければ、今までの動作が I<oldact> "
4822 "に格納される。"
4823
4824 #. type: Plain text
4825 #: build/C/man2/sigaction.2:99
4826 msgid "The I<sigaction> structure is defined as something like:"
4827 msgstr "I<sigaction> 構造体は以下のような感じに定義される。"
4828
4829 #. type: Plain text
4830 #: build/C/man2/sigaction.2:109
4831 #, no-wrap
4832 msgid ""
4833 "struct sigaction {\n"
4834 "    void     (*sa_handler)(int);\n"
4835 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4836 "    sigset_t   sa_mask;\n"
4837 "    int        sa_flags;\n"
4838 "    void     (*sa_restorer)(void);\n"
4839 "};\n"
4840 msgstr ""
4841 "struct sigaction {\n"
4842 "    void     (*sa_handler)(int);\n"
4843 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4844 "    sigset_t   sa_mask;\n"
4845 "    int        sa_flags;\n"
4846 "    void     (*sa_restorer)(void);\n"
4847 "};\n"
4848
4849 #. type: Plain text
4850 #: build/C/man2/sigaction.2:116
4851 msgid ""
4852 "On some architectures a union is involved: do not assign to both "
4853 "I<sa_handler> and I<sa_sigaction>."
4854 msgstr ""
4855 "アーキテクチャによっては共用体 (union) が用いられており、その場合には "
4856 "I<sa_handler> と I<sa_sigaction> の両方を同時に割り当てることはできない。"
4857
4858 #. type: Plain text
4859 #: build/C/man2/sigaction.2:125
4860 msgid ""
4861 "The I<sa_restorer> field is not intended for application use.  (POSIX does "
4862 "not specify a I<sa_restorer> field.)  Some further details of purpose of "
4863 "this field can be found in B<sigreturn>(2)."
4864 msgstr ""
4865
4866 #. type: Plain text
4867 #: build/C/man2/sigaction.2:135
4868 msgid ""
4869 "I<sa_handler> specifies the action to be associated with I<signum> and may "
4870 "be B<SIG_DFL> for the default action, B<SIG_IGN> to ignore this signal, or a "
4871 "pointer to a signal handling function.  This function receives the signal "
4872 "number as its only argument."
4873 msgstr ""
4874 "I<sa_handler> は I<signum> に対応する動作を指定するもので、 デフォルトの動作"
4875 "を行う B<SIG_DFL>、 そのシグナルを無視する B<SIG_IGN>、 シグナルハンドラ関数"
4876 "へのポインタが設定できる。 シグナルハンドラ関数の引き数は一つであり、シグナル"
4877 "番号が引き数として 渡される。"
4878
4879 #. type: Plain text
4880 #: build/C/man2/sigaction.2:157
4881 msgid ""
4882 "If B<SA_SIGINFO> is specified in I<sa_flags>, then I<sa_sigaction> (instead "
4883 "of I<sa_handler>)  specifies the signal-handling function for I<signum>.  "
4884 "This function receives the signal number as its first argument, a pointer to "
4885 "a I<siginfo_t> as its second argument and a pointer to a I<ucontext_t> (cast "
4886 "to I<void\\ *>) as its third argument.  (Commonly, the handler function "
4887 "doesn't make any use of the third argument.  See B<getcontext>(3)  for "
4888 "further information about I<ucontext_t>.)"
4889 msgstr ""
4890 "I<sa_flags> に B<SA_SIGINFO> が指定された場合、 (I<sa_handler> ではなく) "
4891 "I<sa_sigaction> により I<signum> に対応するシグナルハンドラ関数が指定される。"
4892 "指定される関数は、最初の引き数としてシグナル番号を、二番目の引き数として "
4893 "I<siginfo_t> へのポインタを、三番目の引き数として (I<void\\ *> にキャストし"
4894 "た) I<ucontext_t> へのポインタを受けとる。 (一般的には、ハンドラ関数の三番目"
4895 "の引き数が使用されない。I<ucontext_t> についての詳しい情報は "
4896 "B<getcontext>(3) を参照。)"
4897
4898 #. type: Plain text
4899 #: build/C/man2/sigaction.2:167
4900 msgid ""
4901 "I<sa_mask> specifies a mask of signals which should be blocked (i.e., added "
4902 "to the signal mask of the thread in which the signal handler is invoked)  "
4903 "during execution of the signal handler.  In addition, the signal which "
4904 "triggered the handler will be blocked, unless the B<SA_NODEFER> flag is used."
4905 msgstr ""
4906 "I<sa_mask> は、シグナル・ハンドラ実行中に禁止 (block) すべきシグナルのマスク"
4907 "を指定する (ハンドラ実行中のシグナルの禁止は、シグナル・ハンドラが起動された"
4908 "スレッド のシグナルのマスクに追加することで行われる)。 さらに、 "
4909 "B<SA_NODEFER> フラグが指定されていない場合は、ハンドラを起動するきっかけとな"
4910 "る シグナルにも I<sa_mask> が適用される。"
4911
4912 #. type: Plain text
4913 #: build/C/man2/sigaction.2:171
4914 msgid ""
4915 "I<sa_flags> specifies a set of flags which modify the behavior of the "
4916 "signal.  It is formed by the bitwise OR of zero or more of the following:"
4917 msgstr ""
4918 "I<sa_flags> はシグナル・ハンドラの動作を変更するためのフラグの集合を指定す"
4919 "る。 I<sa_flags> には、以下に示すフラグの (0 個以上の) 論理和をとったものを指"
4920 "定する。"
4921
4922 #. type: TP
4923 #: build/C/man2/sigaction.2:172
4924 #, no-wrap
4925 msgid "B<SA_NOCLDSTOP>"
4926 msgstr "B<SA_NOCLDSTOP>"
4927
4928 #. type: Plain text
4929 #: build/C/man2/sigaction.2:189
4930 msgid ""
4931 "If I<signum> is B<SIGCHLD>, do not receive notification when child processes "
4932 "stop (i.e., when they receive one of B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, or "
4933 "B<SIGTTOU>)  or resume (i.e., they receive B<SIGCONT>)  (see B<wait>(2)).  "
4934 "This flag is meaningful only when establishing a handler for B<SIGCHLD>."
4935 msgstr ""
4936 "I<signum> が B<SIGCHLD> の場合、 子プロセスが停止したり (子プロセスが "
4937 "B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, B<SIGTTOU> を受けたとき) 再開したり (子プ"
4938 "ロセスが B<SIGCONT> を受けたとき) したときに B<SIGCHLD> の通知を受けない。 こ"
4939 "のフラグは、 B<SIGCHLD> に対してハンドラを設定する際にのみ意味を持つ。"
4940
4941 #. type: TP
4942 #: build/C/man2/sigaction.2:189
4943 #, no-wrap
4944 msgid "B<SA_NOCLDWAIT> (since Linux 2.6)"
4945 msgstr "B<SA_NOCLDWAIT> (Linux 2.6 以降)"
4946
4947 #.  To be precise: Linux 2.5.60 -- MTK
4948 #. type: Plain text
4949 #: build/C/man2/sigaction.2:203
4950 msgid ""
4951 "If I<signum> is B<SIGCHLD>, do not transform children into zombies when they "
4952 "terminate.  See also B<waitpid>(2).  This flag is meaningful only when "
4953 "establishing a handler for B<SIGCHLD>, or when setting that signal's "
4954 "disposition to B<SIG_DFL>."
4955 msgstr ""
4956 "(Linux 2.6 以降)  I<signum> が B<SIGCHLD> の場合、子プロセスが終了したときに "
4957 "子プロセスをゾンビプロセスに変化させない (B<waitpid>(2)  も参照)。 このフラグ"
4958 "は、 B<SIGCHLD> に対してハンドラを設定する際、もしくはそのシグナルの処理方法"
4959 "を B<SIG_DFL> に設定する際にのみ意味を持つ。"
4960
4961 #. type: Plain text
4962 #: build/C/man2/sigaction.2:215
4963 msgid ""
4964 "If the B<SA_NOCLDWAIT> flag is set when establishing a handler for "
4965 "B<SIGCHLD>, POSIX.1 leaves it unspecified whether a B<SIGCHLD> signal is "
4966 "generated when a child process terminates.  On Linux, a B<SIGCHLD> signal is "
4967 "generated in this case; on some other implementations, it is not."
4968 msgstr ""
4969 "B<SIGCHLD> に対してハンドラを設定する際に B<SA_NOCLDWAIT> フラグをセットした"
4970 "場合、 子プロセスが終了した際に B<SIGCHLD> シグナルが生成されるかどうかは、 "
4971 "POSIX.1 では規定されていない。 Linux では、この状況で B<SIGCHLD> シグナルは生"
4972 "成される。 いくつかの他の実装では生成されない。"
4973
4974 #. type: TP
4975 #: build/C/man2/sigaction.2:215
4976 #, no-wrap
4977 msgid "B<SA_NODEFER>"
4978 msgstr "B<SA_NODEFER>"
4979
4980 #. type: Plain text
4981 #: build/C/man2/sigaction.2:222
4982 msgid ""
4983 "Do not prevent the signal from being received from within its own signal "
4984 "handler.  This flag is meaningful only when establishing a signal handler.  "
4985 "B<SA_NOMASK> is an obsolete, nonstandard synonym for this flag."
4986 msgstr ""
4987 "それ自身のシグナル・ハンドラーの内部にいる時でも そのシグナルをマスクしないよ"
4988 "うにする。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 "
4989 "B<SA_NOMASK> はこのフラグと同じ意味だが、廃止されており、非標準である。"
4990
4991 #. type: TP
4992 #: build/C/man2/sigaction.2:222
4993 #, no-wrap
4994 msgid "B<SA_ONSTACK>"
4995 msgstr "B<SA_ONSTACK>"
4996
4997 #. type: Plain text
4998 #: build/C/man2/sigaction.2:228
4999 msgid ""
5000 "Call the signal handler on an alternate signal stack provided by "
5001 "B<sigaltstack>(2).  If an alternate stack is not available, the default "
5002 "stack will be used.  This flag is meaningful only when establishing a signal "
5003 "handler."
5004 msgstr ""
5005 "B<sigaltstack>(2)  で提供される別のシグナル・スタックでシグナルハンドラを呼び"
5006 "出す。 別のシグナル・スタックが利用可能でなければ、デフォルトのスタックが 使"
5007 "用される。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。"
5008
5009 #. type: TP
5010 #: build/C/man2/sigaction.2:228
5011 #, no-wrap
5012 msgid "B<SA_RESETHAND>"
5013 msgstr "B<SA_RESETHAND>"
5014
5015 #. type: Plain text
5016 #: build/C/man2/sigaction.2:234
5017 msgid ""
5018 "Restore the signal action to the default upon entry to the signal handler.  "
5019 "This flag is meaningful only when establishing a signal handler.  "
5020 "B<SA_ONESHOT> is an obsolete, nonstandard synonym for this flag."
5021 msgstr ""
5022 "シグナルハンドラを設定する際に、シグナルの動作をデフォルトに戻す。 このフラグ"
5023 "はシグナルハンドラを設定する際にのみ意味を持つ。 B<SA_ONESHOT> はこのフラグと"
5024 "同じ意味だが、廃止されており、非標準である。"
5025
5026 #. type: TP
5027 #: build/C/man2/sigaction.2:234
5028 #, no-wrap
5029 msgid "B<SA_RESTART>"
5030 msgstr "B<SA_RESTART>"
5031
5032 #. type: Plain text
5033 #: build/C/man2/sigaction.2:242
5034 msgid ""
5035 "Provide behavior compatible with BSD signal semantics by making certain "
5036 "system calls restartable across signals.  This flag is meaningful only when "
5037 "establishing a signal handler.  See B<signal>(7)  for a discussion of system "
5038 "call restarting."
5039 msgstr ""
5040 "いくつかのシステムコールをシグナルの通知の前後で再開できるようにして、 BSD シ"
5041 "グナル方式 (semantics) と互換性のある動作を提供する。 このフラグはシグナルハ"
5042 "ンドラを設定する際にのみ意味を持つ。 B<signal>(7)  に書かれているシステムコー"
5043 "ルの再開に関する議論を参照のこと。"
5044
5045 #. type: TP
5046 #: build/C/man2/sigaction.2:242
5047 #, fuzzy, no-wrap
5048 #| msgid "B<SA_RESTART>"
5049 msgid "B<SA_RESTORER>"
5050 msgstr "B<SA_RESTART>"
5051
5052 #. type: Plain text
5053 #: build/C/man2/sigaction.2:251
5054 msgid ""
5055 "I<Not intended for application use>.  This flag is used by C libraries to "
5056 "indicate that the I<sa_restorer> field contains the address of a \"signal "
5057 "trampoline\".  See B<sigreturn>(2)  for more details."
5058 msgstr ""
5059
5060 #. type: TP
5061 #: build/C/man2/sigaction.2:251
5062 #, no-wrap
5063 msgid "B<SA_SIGINFO> (since Linux 2.2)"
5064 msgstr "B<SA_SIGINFO> (Linux 2.2 以降)"
5065
5066 #.  (The
5067 #.  .I sa_sigaction
5068 #.  field was added in Linux 2.1.86.)
5069 #. type: Plain text
5070 #: build/C/man2/sigaction.2:262
5071 msgid ""
5072 "The signal handler takes three arguments, not one.  In this case, "
5073 "I<sa_sigaction> should be set instead of I<sa_handler>.  This flag is "
5074 "meaningful only when establishing a signal handler."
5075 msgstr ""
5076 "シグナルハンドラは一つではなく、三つの引き数を持つ。この場合は I<sa_handler> "
5077 "のかわりに I<sa_sigaction> を設定しなければならない このフラグはシグナルハン"
5078 "ドラを設定する際にのみ意味を持つ。"
5079
5080 #. type: Plain text
5081 #: build/C/man2/sigaction.2:269
5082 #, fuzzy
5083 #| msgid ""
5084 #| "The I<siginfo_t> argument to I<sa_sigaction> is a struct with the "
5085 #| "following elements:"
5086 msgid ""
5087 "The I<siginfo_t> argument to I<sa_sigaction> is a struct with the following "
5088 "fields:"
5089 msgstr ""
5090 "I<sa_sigaction> のパラメータ I<siginfo_t> は以下の要素を持つ構造体である:"
5091
5092 #.  FIXME
5093 #.  The siginfo_t 'si_trapno' field seems to be used only on SPARC and Alpha;
5094 #.  this page could use a little more detail on its purpose there.
5095 #.  In the kernel: si_tid
5096 #. type: Plain text
5097 #: build/C/man2/sigaction.2:300
5098 #, no-wrap
5099 msgid ""
5100 "siginfo_t {\n"
5101 "    int      si_signo;    /* Signal number */\n"
5102 "    int      si_errno;    /* An errno value */\n"
5103 "    int      si_code;     /* Signal code */\n"
5104 "    int      si_trapno;   /* Trap number that caused\n"
5105 "                             hardware-generated signal\n"
5106 "                             (unused on most architectures) */\n"
5107 "    pid_t    si_pid;      /* Sending process ID */\n"
5108 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
5109 "    int      si_status;   /* Exit value or signal */\n"
5110 "    clock_t  si_utime;    /* User time consumed */\n"
5111 "    clock_t  si_stime;    /* System time consumed */\n"
5112 "    sigval_t si_value;    /* Signal value */\n"
5113 "    int      si_int;      /* POSIX.1b signal */\n"
5114 "    void    *si_ptr;      /* POSIX.1b signal */\n"
5115 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
5116 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
5117 "    void    *si_addr;     /* Memory location which caused fault */\n"
5118 "    long     si_band;     /* Band event (was I<int> in\n"
5119 "                             glibc 2.3.2 and earlier) */\n"
5120 "    int      si_fd;       /* File descriptor */\n"
5121 "    short    si_addr_lsb; /* Least significant bit of address\n"
5122 "                             (since Linux 2.6.32) */\n"
5123 "}\n"
5124 msgstr ""
5125 "siginfo_t {\n"
5126 "    int      si_signo;    /* Signal number */\n"
5127 "    int      si_errno;    /* An errno value */\n"
5128 "    int      si_code;     /* Signal code */\n"
5129 "    int      si_trapno;   /* Trap number that caused\n"
5130 "                             hardware-generated signal\n"
5131 "                             (unused on most architectures) */\n"
5132 "    pid_t    si_pid;      /* Sending process ID */\n"
5133 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
5134 "    int      si_status;   /* Exit value or signal */\n"
5135 "    clock_t  si_utime;    /* User time consumed */\n"
5136 "    clock_t  si_stime;    /* System time consumed */\n"
5137 "    sigval_t si_value;    /* Signal value */\n"
5138 "    int      si_int;      /* POSIX.1b signal */\n"
5139 "    void    *si_ptr;      /* POSIX.1b signal */\n"
5140 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
5141 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
5142 "    void    *si_addr;     /* Memory location which caused fault */\n"
5143 "    long     si_band;     /* Band event (was I<int> in\n"
5144 "                             glibc 2.3.2 and earlier) */\n"
5145 "    int      si_fd;       /* File descriptor */\n"
5146 "    short    si_addr_lsb; /* Least significant bit of address\n"
5147 "                             (since Linux 2.6.32) */\n"
5148 "}\n"
5149
5150 #. type: Plain text
5151 #: build/C/man2/sigaction.2:309
5152 msgid ""
5153 "I<si_signo>, I<si_errno> and I<si_code> are defined for all signals.  "
5154 "(I<si_errno> is generally unused on Linux.)  The rest of the struct may be a "
5155 "union, so that one should read only the fields that are meaningful for the "
5156 "given signal:"
5157 msgstr ""
5158 "I<si_signo>, I<si_errno>, I<si_code> は全てのシグナルに対して定義されている "
5159 "(I<si_errno> は Linux では一般的には使用されない)。 構造体の残りの部分は、共"
5160 "用体 (union) になっているかもしれない。 その場合は該当するシグナルにおいて意"
5161 "味のあるフィールドのみを読み込む ことができる。"
5162
5163 #. type: Plain text
5164 #: build/C/man2/sigaction.2:324
5165 msgid ""
5166 "Signals sent with B<kill>(2)  and B<sigqueue>(3)  fill in I<si_pid> and "
5167 "I<si_uid>.  In addition, signals sent with B<sigqueue>(3)  fill in I<si_int> "
5168 "and I<si_ptr> with the values specified by the sender of the signal; see "
5169 "B<sigqueue>(3)  for more details."
5170 msgstr ""
5171 "B<kill>(2) や B<sigqueue>(3) で送信されたシグナルでは I<si_pid> と I<si_uid> "
5172 "が設定される。 さらに、 B<sigqueue>(3) で送信されたシグナルでは I<si_int> と "
5173 "I<si_pid> にシグナルの送信者により指定された値が設定される。詳細は "
5174 "B<sigqueue>(3) を参照。"
5175
5176 #. type: Plain text
5177 #: build/C/man2/sigaction.2:340
5178 msgid ""
5179 "Signals sent by POSIX.1b timers (since Linux 2.6) fill in I<si_overrun> and "
5180 "I<si_timerid>.  The I<si_timerid> field is an internal ID used by the kernel "
5181 "to identify the timer; it is not the same as the timer ID returned by "
5182 "B<timer_create>(2).  The I<si_overrun> field is the timer overrun count; "
5183 "this is the same information as is obtained by a call to "
5184 "B<timer_getoverrun>(2).  These fields are nonstandard Linux extensions."
5185 msgstr ""
5186 "POSIX.1b タイマ (Linux 2.6 以降) は I<si_overrun> と I<si_timerid> を設定す"
5187 "る。 I<si_timerid> フィールドはカーネルがタイマを特定するのに使用する内部 ID "
5188 "であり、 B<timer_create>(2) が返すタイマ ID と同じではない。 I<si_overrun> "
5189 "フィールドはタイマが回り切った回数である。 これは B<timer_getoverrun>(2) の呼"
5190 "び出しで取得できる情報と同じである。 これらのフィールドは非標準で Linux によ"
5191 "る拡張である。"
5192
5193 #. type: Plain text
5194 #: build/C/man2/sigaction.2:355
5195 msgid ""
5196 "Signals sent for message queue notification (see the description of "
5197 "B<SIGEV_SIGNAL> in B<mq_notify>(3))  fill in I<si_int>/I<si_ptr>, with the "
5198 "I<sigev_value> supplied to B<mq_notify>(3); I<si_pid>, with the process ID "
5199 "of the message sender; and I<si_uid>, with the real user ID of the message "
5200 "sender."
5201 msgstr ""
5202 "メッセージキューの通知用に送信されたシグナル (B<mq_notify>(3) の "
5203 "B<SIGEV_SIGNAL> の説明を参照) では、 I<si_int>/I<si_ptr> に B<mq_notify>(3) "
5204 "に渡された I<sigev_value> が設定される。 I<si_pid> にはメッセージ送信者のプロ"
5205 "セス ID が設定され、 I<si_uid> にはメッセージ送信者の実ユーザ ID が設定され"
5206 "る。"
5207
5208 #.  FIXME .
5209 #.  When si_utime and si_stime where originally implemented, the
5210 #.  measurement unit was HZ, which was the same as clock ticks
5211 #.  (sysconf(_SC_CLK_TCK)).  In 2.6, HZ became configurable, and
5212 #.  was *still* used as the unit to return the info these fields,
5213 #.  with the result that the field values depended on the the
5214 #.  configured HZ.  Of course, the should have been measured in
5215 #.  USER_HZ instead, so that sysconf(_SC_CLK_TCK) could be used to
5216 #.  convert to seconds.  I have a queued patch to fix this:
5217 #.  http://thread.gmane.org/gmane.linux.kernel/698061/ .
5218 #.  This patch made it into 2.6.27.
5219 #.  But note that these fields still don't return the times of
5220 #.  waited-for children (as is done by getrusage() and times()
5221 #.  and wait4()).  Solaris 8 does include child times.
5222 #. type: Plain text
5223 #: build/C/man2/sigaction.2:402
5224 msgid ""
5225 "B<SIGCHLD> fills in I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>, and "
5226 "I<si_stime>, providing information about the child.  The I<si_pid> field is "
5227 "the process ID of the child; I<si_uid> is the child's real user ID.  The "
5228 "I<si_status> field contains the exit status of the child (if I<si_code> is "
5229 "B<CLD_EXITED>), or the signal number that caused the process to change "
5230 "state.  The I<si_utime> and I<si_stime> contain the user and system CPU time "
5231 "used by the child process; these fields do not include the times used by "
5232 "waited-for children (unlike B<getrusage>(2)  and B<times>(2)).  In kernels "
5233 "up to 2.6, and since 2.6.27, these fields report CPU time in units of "
5234 "I<sysconf(_SC_CLK_TCK)>.  In 2.6 kernels before 2.6.27, a bug meant that "
5235 "these fields reported time in units of the (configurable) system jiffy (see "
5236 "B<time>(7))."
5237 msgstr ""
5238 "B<SIGCHLD> は I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>, I<si_stime> を"
5239 "設定し、子プロセスに関する情報を提供する。 I<si_pid> フィールドは子プロセスの"
5240 "プロセス ID で、 I<si_uid> フィールドは子プロセスの実ユーザ ID である。 "
5241 "I<si_stime> フィールドには、 (I<si_code> が B<CLD_EXITED> の場合は) 子プロセ"
5242 "スの終了ステータスが、それ以外の場合は状態が変化する原因となったシグナル番号"
5243 "が格納される。 I<si_utime> と I<si_stime> には子プロセスが使用したユーザ CPU "
5244 "時間とシステム CPU 時間がそれぞれ格納される。(B<getrusage>(2) や B<times>(2) "
5245 "と異なり) これらのフィールドには wait 待ちの子プロセスにより使用された時間は"
5246 "含まれない。 2.6 より前と 2.6.27 以降のカーネルでは、 これらのフィールドに格"
5247 "納される CPU 時間の単位は I<sysconf(_SC_CLK_TCK)> である。 2.6.27 より前の "
5248 "2.6 系のカーネルでは、バグがあり、 これらのフィールドの CPU 時間の単位が "
5249 "(カーネルのコンフィグで指定される) システムの jiffy であった (B<time>(7) 参"
5250 "照)。"
5251
5252 #.  FIXME . SIGTRAP also sets the following for ptrace_notify() ?
5253 #.      info.si_code = exit_code;
5254 #.      info.si_pid = task_pid_vnr(current);
5255 #.      info.si_uid = current_uid();  /* Real UID */
5256 #. type: Plain text
5257 #: build/C/man2/sigaction.2:438
5258 msgid ""
5259 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, and B<SIGTRAP> fill in "
5260 "I<si_addr> with the address of the fault.  On some architectures, these "
5261 "signals also fill in the I<si_trapno> field.  Some suberrors of B<SIGBUS>, "
5262 "in particular B<BUS_MCEERR_AO> and B<BUS_MCEERR_AR>, also fill in "
5263 "I<si_addr_lsb>.  This field indicates the least significant bit of the "
5264 "reported address and therefore the extent of the corruption.  For example, "
5265 "if a full page was corrupted, I<si_addr_lsb> contains "
5266 "I<log2(sysconf(_SC_PAGESIZE))>.  B<BUS_MCERR_*> and I<si_addr_lsb> are Linux-"
5267 "specific extensions."
5268 msgstr ""
5269 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, B<SIGTRAP> では、 I<si_addr> に "
5270 "fault が発生したアドレスが設定される。 いくつかのアーキテクチャでは、 これら"
5271 "のシグナルは I<si_trapno> フィールドにも設定される。 B<SIGBUS> が発生するエ"
5272 "ラーのいくつか、特に B<BUS_MCEERR_AO> と B<BUS_MCEERR_AR> では、 "
5273 "I<si_addr_lsb> も設定される。 このフィールドは報告されるアドレスの最下位ビッ"
5274 "トを示し、 これによりメモリ破壊の程度を知ることができる。 例えば、ページ全体"
5275 "が壊れている場合には I<si_addr_lsb> には I<log2(sysconf(_SC_PAGESIZE))> が入"
5276 "る。 B<BUS_MCERR_*> と I<si_addr_lsb> は Linux 固有の拡張である。"
5277
5278 #. type: Plain text
5279 #: build/C/man2/sigaction.2:452
5280 msgid ""
5281 "B<SIGIO>/B<SIGPOLL> (the two names are synonyms on Linux)  fills in "
5282 "I<si_band> and I<si_fd>.  The I<si_band> event is a bit mask containing the "
5283 "same values as are filled in the I<revents> field by B<poll>(2).  The "
5284 "I<si_fd> field indicates the file descriptor for which the I/O event "
5285 "occurred."
5286 msgstr ""
5287 "B<SIGIO>/B<SIGPOLL> (2 つの名前は Linux では同義語) では I<si_band> と "
5288 "I<si_fd> が設定される。 I<si_band> イベントは、 B<poll>(2) が I<revents> "
5289 "フィールドに設定するのと同じ値が入ったビットマスクである。 I<si_fd> フィール"
5290 "ドは I/O イベントが発生したファイルディスクリプタを示す。"
5291
5292 #. type: Plain text
5293 #: build/C/man2/sigaction.2:459
5294 msgid ""
5295 "I<si_code> is a value (not a bit mask)  indicating why this signal was "
5296 "sent.  The following list shows the values which can be placed in I<si_code> "
5297 "for any signal, along with reason that the signal was generated."
5298 msgstr ""
5299 "I<si_code> は、そのシグナルが送信された理由を示す値である (ビットマスクではな"
5300 "い)。 以下は、どのシグナルの場合でも I<si_code> に入りうる値のリストである。"
5301 "シグナルが生成された理由も記載している。"
5302
5303 #. type: TP
5304 #: build/C/man2/sigaction.2:460
5305 #, no-wrap
5306 msgid "B<SI_USER>"
5307 msgstr "B<SI_USER>"
5308
5309 #. type: TP
5310 #: build/C/man2/sigaction.2:463 build/C/man7/signal.7:111
5311 #, no-wrap
5312 msgid "B<kill>(2)"
5313 msgstr "B<kill>(2)"
5314
5315 #. type: TP
5316 #: build/C/man2/sigaction.2:463
5317 #, no-wrap
5318 msgid "B<SI_KERNEL>"
5319 msgstr "B<SI_KERNEL>"
5320
5321 #. type: Plain text
5322 #: build/C/man2/sigaction.2:466
5323 msgid "Sent by the kernel."
5324 msgstr "カーネルにより送信された"
5325
5326 #. type: TP
5327 #: build/C/man2/sigaction.2:466
5328 #, no-wrap
5329 msgid "B<SI_QUEUE>"
5330 msgstr "B<SI_QUEUE>"
5331
5332 #. type: TP
5333 #: build/C/man2/sigaction.2:469 build/C/man7/signal.7:128
5334 #, no-wrap
5335 msgid "B<sigqueue>(3)"
5336 msgstr "B<sigqueue>(3)"
5337
5338 #. type: TP
5339 #: build/C/man2/sigaction.2:469
5340 #, no-wrap
5341 msgid "B<SI_TIMER>"
5342 msgstr "B<SI_TIMER>"
5343
5344 #. type: Plain text
5345 #: build/C/man2/sigaction.2:472
5346 msgid "POSIX timer expired"
5347 msgstr "POSIX タイマが満了した"
5348
5349 #. type: TP
5350 #: build/C/man2/sigaction.2:472
5351 #, no-wrap
5352 msgid "B<SI_MESGQ>"
5353 msgstr "B<SI_MESGQ>"
5354
5355 #. type: Plain text
5356 #: build/C/man2/sigaction.2:476
5357 msgid ""
5358 "POSIX message queue state changed (since Linux 2.6.6); see B<mq_notify>(3)"
5359 msgstr ""
5360 "POSIX メッセージキューの状態が変化した (Linux 2.6.6 以降)。 B<mq_notify>(3)B<"
5361 "参照。>"
5362
5363 #. type: TP
5364 #: build/C/man2/sigaction.2:476
5365 #, no-wrap
5366 msgid "B<SI_ASYNCIO>"
5367 msgstr "B<SI_ASYNCIO>"
5368
5369 #. type: Plain text
5370 #: build/C/man2/sigaction.2:479
5371 msgid "AIO completed"
5372 msgstr "非同期 IO (AIO) が完了した"
5373
5374 #. type: TP
5375 #: build/C/man2/sigaction.2:479
5376 #, no-wrap
5377 msgid "B<SI_SIGIO>"
5378 msgstr "B<SI_SIGIO>"
5379
5380 #. type: Plain text
5381 #: build/C/man2/sigaction.2:488
5382 msgid ""
5383 "Queued B<SIGIO> (only in kernels up to Linux 2.2; from Linux 2.4 onward "
5384 "B<SIGIO>/B<SIGPOLL> fills in I<si_code> as described below)."
5385 msgstr ""
5386 "B<SIGIO> がキューイングされた (Linux 2.2 以下のカーネルのみ; Linux 2.4 以降で"
5387 "は以下で説明する B<SIGIO>/B<SIGPOLL> の I<si_code> が入る)。"
5388
5389 #. type: TP
5390 #: build/C/man2/sigaction.2:488
5391 #, no-wrap
5392 msgid "B<SI_TKILL>"
5393 msgstr "B<SI_TKILL>"
5394
5395 #.  SI_DETHREAD is defined in 2.6.9 sources, but isn't implemented
5396 #.  It appears to have been an idea that was tried during 2.5.6
5397 #.  through to 2.5.24 and then was backed out.
5398 #. type: Plain text
5399 #: build/C/man2/sigaction.2:497
5400 msgid "B<tkill>(2)  or B<tgkill>(2)  (since Linux 2.4.19)"
5401 msgstr "B<tkill>(2)  または B<tgkill>(2)  (Linux 2.4.19 以降)"
5402
5403 #. type: Plain text
5404 #: build/C/man2/sigaction.2:504
5405 msgid ""
5406 "The following values can be placed in I<si_code> for a B<SIGILL> signal:"
5407 msgstr "B<SIGILL> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5408
5409 #. type: TP
5410 #: build/C/man2/sigaction.2:505
5411 #, no-wrap
5412 msgid "B<ILL_ILLOPC>"
5413 msgstr "B<ILL_ILLOPC>"
5414
5415 #. type: Plain text
5416 #: build/C/man2/sigaction.2:508
5417 msgid "illegal opcode"
5418 msgstr "不正な命令コード (opcode)"
5419
5420 #. type: TP
5421 #: build/C/man2/sigaction.2:508
5422 #, no-wrap
5423 msgid "B<ILL_ILLOPN>"
5424 msgstr "B<ILL_ILLOPN>"
5425
5426 #. type: Plain text
5427 #: build/C/man2/sigaction.2:511
5428 msgid "illegal operand"
5429 msgstr "不正なオペランド"
5430
5431 #. type: TP
5432 #: build/C/man2/sigaction.2:511
5433 #, no-wrap
5434 msgid "B<ILL_ILLADR>"
5435 msgstr "B<ILL_ILLADR>"
5436
5437 #. type: Plain text
5438 #: build/C/man2/sigaction.2:514
5439 msgid "illegal addressing mode"
5440 msgstr "不正なアドレッシングモード"
5441
5442 #. type: TP
5443 #: build/C/man2/sigaction.2:514
5444 #, no-wrap
5445 msgid "B<ILL_ILLTRP>"
5446 msgstr "B<ILL_ILLTRP>"
5447
5448 #. type: Plain text
5449 #: build/C/man2/sigaction.2:517
5450 msgid "illegal trap"
5451 msgstr "不正なトラップ"
5452
5453 #. type: TP
5454 #: build/C/man2/sigaction.2:517
5455 #, no-wrap
5456 msgid "B<ILL_PRVOPC>"
5457 msgstr "B<ILL_PRVOPC>"
5458
5459 #. type: Plain text
5460 #: build/C/man2/sigaction.2:520
5461 msgid "privileged opcode"
5462 msgstr "特権が必要な命令コード (opcode)"
5463
5464 #. type: TP
5465 #: build/C/man2/sigaction.2:520
5466 #, no-wrap
5467 msgid "B<ILL_PRVREG>"
5468 msgstr "B<ILL_PRVREG>"
5469
5470 #. type: Plain text
5471 #: build/C/man2/sigaction.2:523
5472 msgid "privileged register"
5473 msgstr "特権が必要なレジスタ"
5474
5475 #. type: TP
5476 #: build/C/man2/sigaction.2:523
5477 #, no-wrap
5478 msgid "B<ILL_COPROC>"
5479 msgstr "B<ILL_COPROC>"
5480
5481 #. type: Plain text
5482 #: build/C/man2/sigaction.2:526
5483 msgid "coprocessor error"
5484 msgstr "コプロセッサのエラー"
5485
5486 #. type: TP
5487 #: build/C/man2/sigaction.2:526
5488 #, no-wrap
5489 msgid "B<ILL_BADSTK>"
5490 msgstr "B<ILL_BADSTK>"
5491
5492 #. type: Plain text
5493 #: build/C/man2/sigaction.2:529
5494 msgid "internal stack error"
5495 msgstr "内部スタックエラー"
5496
5497 #. type: Plain text
5498 #: build/C/man2/sigaction.2:536
5499 msgid ""
5500 "The following values can be placed in I<si_code> for a B<SIGFPE> signal:"
5501 msgstr "B<SIGFPE> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5502
5503 #. type: TP
5504 #: build/C/man2/sigaction.2:537
5505 #, no-wrap
5506 msgid "B<FPE_INTDIV>"
5507 msgstr "B<FPE_INTDIV>"
5508
5509 #. type: Plain text
5510 #: build/C/man2/sigaction.2:540
5511 msgid "integer divide by zero"
5512 msgstr "整数の 0 による除算"
5513
5514 #. type: TP
5515 #: build/C/man2/sigaction.2:540
5516 #, no-wrap
5517 msgid "B<FPE_INTOVF>"
5518 msgstr "B<FPE_INTOVF>"
5519
5520 #. type: Plain text
5521 #: build/C/man2/sigaction.2:543
5522 msgid "integer overflow"
5523 msgstr "整数のオーバーフロー"
5524
5525 #. type: TP
5526 #: build/C/man2/sigaction.2:543
5527 #, no-wrap
5528 msgid "B<FPE_FLTDIV>"
5529 msgstr "B<FPE_FLTDIV>"
5530
5531 #. type: Plain text
5532 #: build/C/man2/sigaction.2:546
5533 msgid "floating-point divide by zero"
5534 msgstr "浮動小数点の 0 による除算"
5535
5536 #. type: TP
5537 #: build/C/man2/sigaction.2:546
5538 #, no-wrap
5539 msgid "B<FPE_FLTOVF>"
5540 msgstr "B<FPE_FLTOVF>"
5541
5542 #. type: Plain text
5543 #: build/C/man2/sigaction.2:549
5544 msgid "floating-point overflow"
5545 msgstr "浮動小数点のオーバーフロー"
5546
5547 #. type: TP
5548 #: build/C/man2/sigaction.2:549
5549 #, no-wrap
5550 msgid "B<FPE_FLTUND>"
5551 msgstr "B<FPE_FLTUND>"
5552
5553 #. type: Plain text
5554 #: build/C/man2/sigaction.2:552
5555 msgid "floating-point underflow"
5556 msgstr "浮動小数点のアンダーフロー"
5557
5558 #. type: TP
5559 #: build/C/man2/sigaction.2:552
5560 #, no-wrap
5561 msgid "B<FPE_FLTRES>"
5562 msgstr "B<FPE_FLTRES>"
5563
5564 #. type: Plain text
5565 #: build/C/man2/sigaction.2:555
5566 msgid "floating-point inexact result"
5567 msgstr "浮動小数点の不正確な演算結果 (inexact result)"
5568
5569 #. type: TP
5570 #: build/C/man2/sigaction.2:555
5571 #, no-wrap
5572 msgid "B<FPE_FLTINV>"
5573 msgstr "B<FPE_FLTINV>"
5574
5575 #. type: Plain text
5576 #: build/C/man2/sigaction.2:558
5577 msgid "floating-point invalid operation"
5578 msgstr "浮動小数点の不正な操作"
5579
5580 #. type: TP
5581 #: build/C/man2/sigaction.2:558
5582 #, no-wrap
5583 msgid "B<FPE_FLTSUB>"
5584 msgstr "B<FPE_FLTSUB>"
5585
5586 #. type: Plain text
5587 #: build/C/man2/sigaction.2:561
5588 msgid "subscript out of range"
5589 msgstr "範囲外の添字 (subscript)"
5590
5591 #. type: Plain text
5592 #: build/C/man2/sigaction.2:568
5593 msgid ""
5594 "The following values can be placed in I<si_code> for a B<SIGSEGV> signal:"
5595 msgstr "B<SIGSEGV> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5596
5597 #. type: TP
5598 #: build/C/man2/sigaction.2:569
5599 #, no-wrap
5600 msgid "B<SEGV_MAPERR>"
5601 msgstr "B<SEGV_MAPERR>"
5602
5603 #. type: Plain text
5604 #: build/C/man2/sigaction.2:572
5605 msgid "address not mapped to object"
5606 msgstr "オブジェクトにマッピングされていないアドレス"
5607
5608 #. type: TP
5609 #: build/C/man2/sigaction.2:572
5610 #, no-wrap
5611 msgid "B<SEGV_ACCERR>"
5612 msgstr "B<SEGV_ACCERR>"
5613
5614 #. type: Plain text
5615 #: build/C/man2/sigaction.2:575
5616 msgid "invalid permissions for mapped object"
5617 msgstr "マッピングされたオブジェクトに対するアクセス許可がない"
5618
5619 #. type: Plain text
5620 #: build/C/man2/sigaction.2:582
5621 msgid ""
5622 "The following values can be placed in I<si_code> for a B<SIGBUS> signal:"
5623 msgstr "B<SIGBUS> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5624
5625 #. type: TP
5626 #: build/C/man2/sigaction.2:583
5627 #, no-wrap
5628 msgid "B<BUS_ADRALN>"
5629 msgstr "B<BUS_ADRALN>"
5630
5631 #. type: Plain text
5632 #: build/C/man2/sigaction.2:586
5633 msgid "invalid address alignment"
5634 msgstr "不正なアドレス・アライメント (alignment)"
5635
5636 #. type: TP
5637 #: build/C/man2/sigaction.2:586
5638 #, no-wrap
5639 msgid "B<BUS_ADRERR>"
5640 msgstr "B<BUS_ADRERR>"
5641
5642 #. type: Plain text
5643 #: build/C/man2/sigaction.2:589
5644 msgid "nonexistent physical address"
5645 msgstr "存在しない物理アドレス"
5646
5647 #. type: TP
5648 #: build/C/man2/sigaction.2:589
5649 #, no-wrap
5650 msgid "B<BUS_OBJERR>"
5651 msgstr "B<BUS_OBJERR>"
5652
5653 #. type: Plain text
5654 #: build/C/man2/sigaction.2:592
5655 msgid "object-specific hardware error"
5656 msgstr "オブジェクト固有のハードウェアエラー"
5657
5658 #. type: TP
5659 #: build/C/man2/sigaction.2:592
5660 #, no-wrap
5661 msgid "B<BUS_MCEERR_AR> (since Linux 2.6.32)"
5662 msgstr "B<BUS_MCEERR_AR> (Linux 2.6.32 以降)"
5663
5664 #. type: Plain text
5665 #: build/C/man2/sigaction.2:595
5666 msgid "Hardware memory error consumed on a machine check; action required."
5667 msgstr ""
5668 "マシンチェックで使用中のハードウェアメモリのエラーが検出された。対応が必須。"
5669
5670 #. type: TP
5671 #: build/C/man2/sigaction.2:595
5672 #, no-wrap
5673 msgid "B<BUS_MCEERR_AO> (since Linux 2.6.32)"
5674 msgstr "B<BUS_MCEERR_AO> (Linux 2.6.32  以降)"
5675
5676 #. type: Plain text
5677 #: build/C/man2/sigaction.2:598
5678 msgid ""
5679 "Hardware memory error detected in process but not consumed; action optional."
5680 msgstr ""
5681 "実行中にハードウェアメモリエラーが検出されたが、使用中のメモリではない。対応"
5682 "は必須ではない。"
5683
5684 #. type: Plain text
5685 #: build/C/man2/sigaction.2:605
5686 msgid ""
5687 "The following values can be placed in I<si_code> for a B<SIGTRAP> signal:"
5688 msgstr "B<SIGTRAP> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5689
5690 #. type: TP
5691 #: build/C/man2/sigaction.2:606
5692 #, no-wrap
5693 msgid "B<TRAP_BRKPT>"
5694 msgstr "B<TRAP_BRKPT>"
5695
5696 #. type: Plain text
5697 #: build/C/man2/sigaction.2:609
5698 msgid "process breakpoint"
5699 msgstr "プロセスのブレークポイント"
5700
5701 #. type: TP
5702 #: build/C/man2/sigaction.2:609
5703 #, no-wrap
5704 msgid "B<TRAP_TRACE>"
5705 msgstr "B<TRAP_TRACE>"
5706
5707 #. type: Plain text
5708 #: build/C/man2/sigaction.2:612
5709 msgid "process trace trap"
5710 msgstr "プロセスのトレース・トラップ"
5711
5712 #. type: TP
5713 #: build/C/man2/sigaction.2:612
5714 #, no-wrap
5715 msgid "B<TRAP_BRANCH> (since Linux 2.4)"
5716 msgstr "B<TRAP_BRANCH> (Linux 2.4 以降)"
5717
5718 #. type: Plain text
5719 #: build/C/man2/sigaction.2:615
5720 msgid "process taken branch trap"
5721 msgstr "プロセスのブランチ・トラップ"
5722
5723 #. type: TP
5724 #: build/C/man2/sigaction.2:615
5725 #, no-wrap
5726 msgid "B<TRAP_HWBKPT> (since Linux 2.4)"
5727 msgstr "B<TRAP_HWBKPT> (Linux 2.4 以降)"
5728
5729 #. type: Plain text
5730 #: build/C/man2/sigaction.2:618
5731 msgid "hardware breakpoint/watchpoint"
5732 msgstr "ハードウェア・ブレークポイント/ウォッチポイント"
5733
5734 #. type: Plain text
5735 #: build/C/man2/sigaction.2:625
5736 msgid ""
5737 "The following values can be placed in I<si_code> for a B<SIGCHLD> signal:"
5738 msgstr "B<SIGCHLD> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5739
5740 #. type: TP
5741 #: build/C/man2/sigaction.2:626
5742 #, no-wrap
5743 msgid "B<CLD_EXITED>"
5744 msgstr "B<CLD_EXITED>"
5745
5746 #. type: Plain text
5747 #: build/C/man2/sigaction.2:629
5748 msgid "child has exited"
5749 msgstr "子プロセスが終了した (exited)"
5750
5751 #. type: TP
5752 #: build/C/man2/sigaction.2:629
5753 #, no-wrap
5754 msgid "B<CLD_KILLED>"
5755 msgstr "B<CLD_KILLED>"
5756
5757 #. type: Plain text
5758 #: build/C/man2/sigaction.2:632
5759 msgid "child was killed"
5760 msgstr "子プロセスが kill された"
5761
5762 #. type: TP
5763 #: build/C/man2/sigaction.2:632
5764 #, no-wrap
5765 msgid "B<CLD_DUMPED>"
5766 msgstr "B<CLD_DUMPED>"
5767
5768 #. type: Plain text
5769 #: build/C/man2/sigaction.2:635
5770 msgid "child terminated abnormally"
5771 msgstr "子プロセスが異常終了した"
5772
5773 #. type: TP
5774 #: build/C/man2/sigaction.2:635
5775 #, no-wrap
5776 msgid "B<CLD_TRAPPED>"
5777 msgstr "B<CLD_TRAPPED>"
5778
5779 #. type: Plain text
5780 #: build/C/man2/sigaction.2:638
5781 msgid "traced child has trapped"
5782 msgstr "トレース対象の子プロセスがトラップを上げた"
5783
5784 #. type: TP
5785 #: build/C/man2/sigaction.2:638
5786 #, no-wrap
5787 msgid "B<CLD_STOPPED>"
5788 msgstr "B<CLD_STOPPED>"
5789
5790 #. type: Plain text
5791 #: build/C/man2/sigaction.2:641
5792 msgid "child has stopped"
5793 msgstr "子プロセスが停止 (stop) した"
5794
5795 #. type: TP
5796 #: build/C/man2/sigaction.2:641
5797 #, no-wrap
5798 msgid "B<CLD_CONTINUED>"
5799 msgstr "B<CLD_CONTINUED>"
5800
5801 #. type: Plain text
5802 #: build/C/man2/sigaction.2:644
5803 msgid "stopped child has continued (since Linux 2.6.9)"
5804 msgstr "停止していた子プロセスが再開した (Linux 2.6.9 以降)"
5805
5806 #. type: Plain text
5807 #: build/C/man2/sigaction.2:651
5808 msgid ""
5809 "The following values can be placed in I<si_code> for a B<SIGIO>/B<SIGPOLL> "
5810 "signal:"
5811 msgstr ""
5812 "B<SIGIO>/B<SIGPOLL> シグナルの場合、 I<si_code> には以下の値が入る可能性があ"
5813 "る:"
5814
5815 #. type: TP
5816 #: build/C/man2/sigaction.2:652
5817 #, no-wrap
5818 msgid "B<POLL_IN>"
5819 msgstr "B<POLL_IN>"
5820
5821 #. type: Plain text
5822 #: build/C/man2/sigaction.2:655
5823 msgid "data input available"
5824 msgstr "入力データが利用可能"
5825
5826 #. type: TP
5827 #: build/C/man2/sigaction.2:655
5828 #, no-wrap
5829 msgid "B<POLL_OUT>"
5830 msgstr "B<POLL_OUT>"
5831
5832 #. type: Plain text
5833 #: build/C/man2/sigaction.2:658
5834 msgid "output buffers available"
5835 msgstr "出力バッファが利用可能"
5836
5837 #. type: TP
5838 #: build/C/man2/sigaction.2:658
5839 #, no-wrap
5840 msgid "B<POLL_MSG>"
5841 msgstr "B<POLL_MSG>"
5842
5843 #. type: Plain text
5844 #: build/C/man2/sigaction.2:661
5845 msgid "input message available"
5846 msgstr "入力メッセージが利用可能"
5847
5848 #. type: TP
5849 #: build/C/man2/sigaction.2:661
5850 #, no-wrap
5851 msgid "B<POLL_ERR>"
5852 msgstr "B<POLL_ERR>"
5853
5854 #. type: Plain text
5855 #: build/C/man2/sigaction.2:664
5856 msgid "I/O error"
5857 msgstr "I/O エラー"
5858
5859 #. type: TP
5860 #: build/C/man2/sigaction.2:664
5861 #, no-wrap
5862 msgid "B<POLL_PRI>"
5863 msgstr "B<POLL_PRI>"
5864
5865 #. type: Plain text
5866 #: build/C/man2/sigaction.2:667
5867 msgid "high priority input available"
5868 msgstr "高優先の入力が利用可能"
5869
5870 #. type: TP
5871 #: build/C/man2/sigaction.2:667
5872 #, no-wrap
5873 msgid "B<POLL_HUP>"
5874 msgstr "B<POLL_HUP>"
5875
5876 #. type: Plain text
5877 #: build/C/man2/sigaction.2:670
5878 msgid "device disconnected"
5879 msgstr "デバイスが接続されていない"
5880
5881 #. type: Plain text
5882 #: build/C/man2/sigaction.2:676
5883 msgid ""
5884 "B<sigaction>()  returns 0 on success; on error, -1 is returned, and I<errno> "
5885 "is set to indicate the error."
5886 msgstr ""
5887 "B<sigaction>() 関数は成功すると 0 を返す。 エラーの場合、-1 を返し、 "
5888 "I<errno> にエラーを示す値をセットする。"
5889
5890 #. type: Plain text
5891 #: build/C/man2/sigaction.2:681
5892 msgid ""
5893 "I<act> or I<oldact> points to memory which is not a valid part of the "
5894 "process address space."
5895 msgstr ""
5896 "I<act> か I<oldact> が指しているメモリが正しいプロセスのアドレス空間にない。"
5897
5898 #. type: Plain text
5899 #: build/C/man2/sigaction.2:688
5900 msgid ""
5901 "An invalid signal was specified.  This will also be generated if an attempt "
5902 "is made to change the action for B<SIGKILL> or B<SIGSTOP>, which cannot be "
5903 "caught or ignored."
5904 msgstr ""
5905 "無効なシグナルが指定された。補足 (catch) したり無視したりできない シグナルで"
5906 "ある B<SIGKILL> や B<SIGSTOP> に対する動作を変更しようとした場合にも発生す"
5907 "る。"
5908
5909 #.  SVr4 does not document the EINTR condition.
5910 #. type: Plain text
5911 #: build/C/man2/sigaction.2:691
5912 msgid "POSIX.1-2001, SVr4."
5913 msgstr "POSIX.1-2001, SVr4."
5914
5915 #. type: Plain text
5916 #: build/C/man2/sigaction.2:699 build/C/man7/signal.7:105
5917 msgid ""
5918 "A child created via B<fork>(2)  inherits a copy of its parent's signal "
5919 "dispositions.  During an B<execve>(2), the dispositions of handled signals "
5920 "are reset to the default; the dispositions of ignored signals are left "
5921 "unchanged."
5922 msgstr ""
5923 "B<fork>(2) 経由で作成された子プロセスは、親プロセスのシグナルの処理方法の コ"
5924 "ピーを継承する。 B<execve>(2) の前後で、ハンドラが設定されているシグナルの処"
5925 "理方法はデフォルトにリセットされ、 無視が設定されているシグナルの処理方法は変"
5926 "更されずそのままとなる。"
5927
5928 #. type: Plain text
5929 #: build/C/man2/sigaction.2:717 build/C/man2/signal.2:134
5930 msgid ""
5931 "According to POSIX, the behavior of a process is undefined after it ignores "
5932 "a B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> signal that was not generated by "
5933 "B<kill>(2)  or B<raise>(3).  Integer division by zero has undefined result.  "
5934 "On some architectures it will generate a B<SIGFPE> signal.  (Also dividing "
5935 "the most negative integer by -1 may generate B<SIGFPE>.)  Ignoring this "
5936 "signal might lead to an endless loop."
5937 msgstr ""
5938 "POSIX では、 B<kill>(2)  や B<raise>(3)  で生成できないシグナル B<SIGFPE>, "
5939 "B<SIGILL>, B<SIGSEGV> を無視 (ignore) した場合、その後の動作は未定義である。 "
5940 "ゼロによる整数割り算の結果は未定義となる。 アーキテクチャーによっては、このと"
5941 "き B<SIGFPE> シグナルが生成される。 (同様に負の最大整数を -1 で割ると "
5942 "B<SIGFPE> が生成されるかもしれない)  このシグナルを無視すると無限ループに陥る"
5943 "かもしれない。"
5944
5945 #. type: Plain text
5946 #: build/C/man2/sigaction.2:734
5947 msgid ""
5948 "POSIX.1-1990 disallowed setting the action for B<SIGCHLD> to B<SIG_IGN>.  "
5949 "POSIX.1-2001 allows this possibility, so that ignoring B<SIGCHLD> can be "
5950 "used to prevent the creation of zombies (see B<wait>(2)).  Nevertheless, the "
5951 "historical BSD and System\\ V behaviors for ignoring B<SIGCHLD> differ, so "
5952 "that the only completely portable method of ensuring that terminated "
5953 "children do not become zombies is to catch the B<SIGCHLD> signal and perform "
5954 "a B<wait>(2)  or similar."
5955 msgstr ""
5956 "POSIX.1-1990 では B<SIGCHLD> に B<SIG_IGN> を設定することを認めていない。 "
5957 "POSIX.1-2001 では認められており、 B<SIGCHLD> を無視することでゾンビプロセスの"
5958 "生成を防止することができる (B<wait>(2)  を参照)。 さらに、BSD と System\\ V "
5959 "では B<SIGCHLD> を無視した際の動作が異なっている。 そのため、完全に移植性があ"
5960 "る方法で、終了した子プロセスがゾンビにならないこと を保証するには、 "
5961 "B<SIGCHLD> シグナルを補足し、 B<wait>(2)  などを実行するしかない。"
5962
5963 #. type: Plain text
5964 #: build/C/man2/sigaction.2:747
5965 msgid ""
5966 "POSIX.1-1990 specified only B<SA_NOCLDSTOP>.  POSIX.1-2001 added "
5967 "B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, and B<SA_SIGINFO>.  Use of "
5968 "these latter values in I<sa_flags> may be less portable in applications "
5969 "intended for older UNIX implementations."
5970 msgstr ""
5971 "POSIX.1-1990 の仕様では B<SA_NOCLDSTOP> のみが定義されている。 POSIX.1-2001 "
5972 "では B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, B<SA_SIGINFO> が追加さ"
5973 "れた。 UNIX の古い実装で動かすアプリケーションで、 他の I<sa_flags> フラグを"
5974 "使用すると移植性が下がる。"
5975
5976 #. type: Plain text
5977 #: build/C/man2/sigaction.2:751
5978 msgid ""
5979 "The B<SA_RESETHAND> flag is compatible with the SVr4 flag of the same name."
5980 msgstr "B<SA_RESETHAND> フラグは SVr4 の同じ名前のフラグと互換性がある。"
5981
5982 #. type: Plain text
5983 #: build/C/man2/sigaction.2:761
5984 msgid ""
5985 "The B<SA_NODEFER> flag is compatible with the SVr4 flag of the same name "
5986 "under kernels 1.3.9 and newer.  On older kernels the Linux implementation "
5987 "allowed the receipt of any signal, not just the one we are installing "
5988 "(effectively overriding any I<sa_mask> settings)."
5989 msgstr ""
5990 "B<SA_NODEFER> フラグは 1.3.9 以降のカーネルでは同じ名前の SVr4 のフラグと互換"
5991 "性がある。 ぞれ以前の Linux カーネルの実装では、このフラグを設定しているシグ"
5992 "ナル だけでなく、どのシグナルでも受けることを許していた (実際には I<sa_mask> "
5993 "の設定により無効にできる)。"
5994
5995 #. type: Plain text
5996 #: build/C/man2/sigaction.2:767
5997 msgid ""
5998 "B<sigaction>()  can be called with a NULL second argument to query the "
5999 "current signal handler.  It can also be used to check whether a given signal "
6000 "is valid for the current machine by calling it with NULL second and third "
6001 "arguments."
6002 msgstr ""
6003 "B<sigaction>()  の二番目の引き数に NULL を指定して呼び出すと、現在のシグナル"
6004 "ハンドラを確認する ことができる。また、二番目と三番目の引き数を NULL にて呼び"
6005 "出すことで、 指定されたシグナルが現在のマシンで使えるかどうかチェックできる。"
6006
6007 #. type: Plain text
6008 #: build/C/man2/sigaction.2:773
6009 msgid ""
6010 "It is not possible to block B<SIGKILL> or B<SIGSTOP> (by specifying them in "
6011 "I<sa_mask>).  Attempts to do so are silently ignored."
6012 msgstr ""
6013 "B<SIGKILL> や B<SIGSTOP> を (I<sa_mask> に指定して) 禁止することはできない。 "
6014 "禁止しようとしても黙って無視される。"
6015
6016 #. type: Plain text
6017 #: build/C/man2/sigaction.2:777 build/C/man2/sigpending.2:70
6018 #: build/C/man2/sigprocmask.2:144 build/C/man2/sigsuspend.2:108
6019 msgid "See B<sigsetops>(3)  for details on manipulating signal sets."
6020 msgstr "シグナル集合の操作に関する詳細は B<sigsetops>(3)  を参照のこと。"
6021
6022 #. type: Plain text
6023 #: build/C/man2/sigaction.2:782
6024 msgid ""
6025 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
6026 "safely called inside from inside a signal handler."
6027 msgstr ""
6028 "シグナルハンドラ内から安全に呼び出すことができる、 async-signal-safe "
6029 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
6030 "照。"
6031
6032 #. type: SS
6033 #: build/C/man2/sigaction.2:782
6034 #, no-wrap
6035 msgid "Undocumented"
6036 msgstr "非公式"
6037
6038 #. type: Plain text
6039 #: build/C/man2/sigaction.2:792
6040 msgid ""
6041 "Before the introduction of B<SA_SIGINFO> it was also possible to get some "
6042 "additional information, namely by using a I<sa_handler> with second argument "
6043 "of type I<struct sigcontext>.  See the relevant Linux kernel sources for "
6044 "details.  This use is obsolete now."
6045 msgstr ""
6046 "B<SA_SIGINFO> が導入される前は、 I<struct sigcontext> 型の二番目の引き数と一"
6047 "緒に I<sa_handler> を使用することで、 いくつかの追加の情報を入手することがで"
6048 "きた。 詳細については Linux カーネルソースの関連部分を見てほしい。 現在はこの"
6049 "使用法は廃止されている。"
6050
6051 #. type: Plain text
6052 #: build/C/man2/sigaction.2:801
6053 msgid ""
6054 "In kernels up to and including 2.6.13, specifying B<SA_NODEFER> in "
6055 "I<sa_flags> prevents not only the delivered signal from being masked during "
6056 "execution of the handler, but also the signals specified in I<sa_mask>.  "
6057 "This bug was fixed in kernel 2.6.14."
6058 msgstr ""
6059 "2.6.13 以前のカーネルでは、 I<sa_flags> に B<SA_NODEFER> を指定した場合、 ハ"
6060 "ンドラが実行中に配送されたシグナル自身がマスクされなくなるだけでなく、 "
6061 "I<sa_mask> に指定されたシグナルもマスクされなくなる。 このバグは、カーネル "
6062 "2.6.14 で修正された。"
6063
6064 #. type: Plain text
6065 #: build/C/man2/sigaction.2:804
6066 msgid "See B<mprotect>(2)."
6067 msgstr "B<mprotect>(2)  参照。"
6068
6069 #. type: Plain text
6070 #: build/C/man2/sigaction.2:825
6071 #, fuzzy
6072 #| msgid ""
6073 #| "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
6074 #| "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
6075 #| "B<sigprocmask>(2), B<sigsuspend>(2), B<wait>(2), B<raise>(3), "
6076 #| "B<siginterrupt>(3), B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), "
6077 #| "B<core>(5), B<signal>(7)"
6078 msgid ""
6079 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
6080 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
6081 "B<sigreturn>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<wait>(2), "
6082 "B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), B<sigsetops>(3), "
6083 "B<sigvec>(3), B<core>(5), B<signal>(7)"
6084 msgstr ""
6085 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
6086 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
6087 "B<sigprocmask>(2), B<sigsuspend>(2), B<wait>(2), B<raise>(3), "
6088 "B<siginterrupt>(3), B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), "
6089 "B<core>(5), B<signal>(7)"
6090
6091 #. type: TH
6092 #: build/C/man2/sigaltstack.2:27
6093 #, no-wrap
6094 msgid "SIGALTSTACK"
6095 msgstr "SIGALTSTACK"
6096
6097 #. type: TH
6098 #: build/C/man2/sigaltstack.2:27
6099 #, no-wrap
6100 msgid "2010-09-26"
6101 msgstr "2010-09-26"
6102
6103 #. type: Plain text
6104 #: build/C/man2/sigaltstack.2:30
6105 msgid "sigaltstack - set and/or get signal stack context"
6106 msgstr "sigaltstack - シグナルスタックのコンテキストを設定・取得する"
6107
6108 #. type: Plain text
6109 #: build/C/man2/sigaltstack.2:34
6110 msgid "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
6111 msgstr "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
6112
6113 #. type: Plain text
6114 #: build/C/man2/sigaltstack.2:41
6115 msgid "B<sigaltstack>():"
6116 msgstr "B<sigaltstack>():"
6117
6118 #. type: Plain text
6119 #: build/C/man2/sigaltstack.2:48 build/C/man3/siginterrupt.3:53
6120 #: build/C/man2/wait.2:80
6121 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
6122 msgstr "|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
6123
6124 #. type: Plain text
6125 #: build/C/man2/sigaltstack.2:60
6126 msgid ""
6127 "B<sigaltstack>()  allows a process to define a new alternate signal stack "
6128 "and/or retrieve the state of an existing alternate signal stack.  An "
6129 "alternate signal stack is used during the execution of a signal handler if "
6130 "the establishment of that handler (see B<sigaction>(2))  requested it."
6131 msgstr ""
6132 "B<sigaltstack>()  を使うと、 プロセスは新しい代替シグナルスタックを定義した"
6133 "り、 既存の代替シグナルスタックの状態を取得できる。 シグナルハンドラが代替シ"
6134 "グナルスタックを要求するように設定されていると (B<sigaction>(2)  参照)、ハン"
6135 "ドラの実行中はそのシグナルスタックが使われる。"
6136
6137 #. type: Plain text
6138 #: build/C/man2/sigaltstack.2:63
6139 msgid ""
6140 "The normal sequence of events for using an alternate signal stack is the "
6141 "following:"
6142 msgstr "代替シグナルスタックを使う際の一般的な手順は、以下の通りである:"
6143
6144 #. type: IP
6145 #: build/C/man2/sigaltstack.2:63 build/C/man7/signal.7:387
6146 #, no-wrap
6147 msgid "1."
6148 msgstr "1."
6149
6150 #. type: Plain text
6151 #: build/C/man2/sigaltstack.2:67
6152 msgid "Allocate an area of memory to be used for the alternate signal stack."
6153 msgstr "代替シグナルスタックで使うメモリ領域を確保する。"
6154
6155 #. type: IP
6156 #: build/C/man2/sigaltstack.2:67 build/C/man7/signal.7:391
6157 #, no-wrap
6158 msgid "2."
6159 msgstr "2."
6160
6161 #. type: Plain text
6162 #: build/C/man2/sigaltstack.2:73
6163 msgid ""
6164 "Use B<sigaltstack>()  to inform the system of the existence and location of "
6165 "the alternate signal stack."
6166 msgstr ""
6167 "B<sigaltstack>()  を使って、 代替シグナルスタックの存在と場所をシステムに知ら"
6168 "せる。"
6169
6170 #. type: IP
6171 #: build/C/man2/sigaltstack.2:73 build/C/man7/signal.7:411
6172 #, no-wrap
6173 msgid "3."
6174 msgstr "3."
6175
6176 #. type: Plain text
6177 #: build/C/man2/sigaltstack.2:80
6178 msgid ""
6179 "When establishing a signal handler using B<sigaction>(2), inform the system "
6180 "that the signal handler should be executed on the alternate signal stack by "
6181 "specifying the B<SA_ONSTACK> flag."
6182 msgstr ""
6183 "B<sigaction>(2)  を使ってシグナルハンドラを確立する際、 B<SA_ONSTACK> フラグ"
6184 "を指定することにより、 そのシグナルハンドラを代替シグナルスタック上で実行する"
6185 "ことを システムに知らせる。"
6186
6187 #. type: Plain text
6188 #: build/C/man2/sigaltstack.2:88
6189 msgid ""
6190 "The I<ss> argument is used to specify a new alternate signal stack, while "
6191 "the I<oss> argument is used to retrieve information about the currently "
6192 "established signal stack.  If we are interested in performing just one of "
6193 "these tasks, then the other argument can be specified as NULL.  Each of "
6194 "these arguments is a structure of the following type:"
6195 msgstr ""
6196 "I<ss> 引き数は、新しいシグナルスタックを指定するために使う。 また I<oss> 引き"
6197 "数は、現在確立されている シグナルスタックの情報を取得するために使う。 この操"
6198 "作のうち 1 つだけを実行させるには、 使用しない引き数を NULL に指定すればよ"
6199 "い。 引き数となる構造体は、以下のような型である:"
6200
6201 #. type: Plain text
6202 #: build/C/man2/sigaltstack.2:96
6203 #, no-wrap
6204 msgid ""
6205 "typedef struct {\n"
6206 "    void  *ss_sp;     /* Base address of stack */\n"
6207 "    int    ss_flags;  /* Flags */\n"
6208 "    size_t ss_size;   /* Number of bytes in stack */\n"
6209 "} stack_t;\n"
6210 msgstr ""
6211 "typedef struct {\n"
6212 "    void  *ss_sp;     /* スタックのベースアドレス */\n"
6213 "    int    ss_flags;  /* フラグ */\n"
6214 "    size_t ss_size;   /* スタックのバイト数 */\n"
6215 "} stack_t;\n"
6216
6217 #. type: Plain text
6218 #: build/C/man2/sigaltstack.2:107
6219 msgid ""
6220 "To establish a new alternate signal stack, I<ss.ss_flags> is set to zero, "
6221 "and I<ss.ss_sp> and I<ss.ss_size> specify the starting address and size of "
6222 "the stack.  The constant B<SIGSTKSZ> is defined to be large enough to cover "
6223 "the usual size requirements for an alternate signal stack, and the constant "
6224 "B<MINSIGSTKSZ> defines the minimum size required to execute a signal handler."
6225 msgstr ""
6226 "新規の代替シグナルスタックを確立するには、 I<ss.ss_flags> を 0 に設定し、 "
6227 "I<ss.ss_sp> と I<ss.ss_size> に スタックの開始アドレスとスタックサイズを指定"
6228 "する。 定数 B<SIGSTKSZ> は、代替シグナルスタックが通常必要する サイズよりも充"
6229 "分大きく定義されている。 また定数 B<MINSIGSTKSZ> は、 シグナルハンドラの実行"
6230 "に必要な最小サイズに定義されている。"
6231
6232 #. type: Plain text
6233 #: build/C/man2/sigaltstack.2:111
6234 msgid ""
6235 "When a signal handler is invoked on the alternate stack, the kernel "
6236 "automatically aligns the address given in I<ss.ss_sp> to a suitable address "
6237 "boundary for the underlying hardware architecture."
6238 msgstr ""
6239 "代替スタックでシグナルハンドラが起動された場合には、 カーネルにより自動的に、"
6240 "I<ss.ss_sp> で指定されたアドレスは 動作しているハードウェアアーキテクチャに適"
6241 "したアドレス境界に 調整される。"
6242
6243 #. type: Plain text
6244 #: build/C/man2/sigaltstack.2:116
6245 msgid ""
6246 "To disable an existing stack, specify I<ss.ss_flags> as B<SS_DISABLE>.  In "
6247 "this case, the remaining fields in I<ss> are ignored."
6248 msgstr ""
6249 "既存のスタックを無効にするには、 I<ss.ss_flags> を B<SS_DISABLE> に指定す"
6250 "る。 この場合、I<ss> の他のフィールドは無視される。"
6251
6252 #. type: Plain text
6253 #: build/C/man2/sigaltstack.2:124
6254 msgid ""
6255 "If I<oss> is not NULL, then it is used to return information about the "
6256 "alternate signal stack which was in effect prior to the call to "
6257 "B<sigaltstack>().  The I<oss.ss_sp> and I<oss.ss_size> fields return the "
6258 "starting address and size of that stack.  The I<oss.ss_flags> may return "
6259 "either of the following values:"
6260 msgstr ""
6261 "I<oss> が NULL 以外の場合、 I<oss> に代替シグナルスタックの情報が返される。 "
6262 "これは (実質的に)  B<sigaltstack>()  の呼び出しより先に行われる。 I<oss."
6263 "ss_sp> と I<oss.ss_size> フィールドに スタックの開始アドレスとスタックサイズ"
6264 "が返される。 I<oss.ss_flags> には以下のどちらかの値が返される:"
6265
6266 #. type: TP
6267 #: build/C/man2/sigaltstack.2:124
6268 #, no-wrap
6269 msgid "B<SS_ONSTACK>"
6270 msgstr "B<SS_ONSTACK>"
6271
6272 #. type: Plain text
6273 #: build/C/man2/sigaltstack.2:130
6274 msgid ""
6275 "The process is currently executing on the alternate signal stack.  (Note "
6276 "that it is not possible to change the alternate signal stack if the process "
6277 "is currently executing on it.)"
6278 msgstr ""
6279 "プロセスが代替シグナルスタック上で実行されている (プロセスが既にそのシグナル"
6280 "スタック上で実行されている場合は、 それと同じシグナルスタックには変更できない"
6281 "点に注意すること)。"
6282
6283 #. type: TP
6284 #: build/C/man2/sigaltstack.2:130
6285 #, no-wrap
6286 msgid "B<SS_DISABLE>"
6287 msgstr "B<SS_DISABLE>"
6288
6289 #. type: Plain text
6290 #: build/C/man2/sigaltstack.2:133
6291 msgid "The alternate signal stack is currently disabled."
6292 msgstr "代替シグナルスタックが現在無効になっている。"
6293
6294 #. type: Plain text
6295 #: build/C/man2/sigaltstack.2:137
6296 msgid ""
6297 "B<sigaltstack>()  returns 0 on success, or -1 on failure with I<errno> set "
6298 "to indicate the error."
6299 msgstr ""
6300 "B<sigaltstack>()  は成功した場合 0 を返す。 失敗した場合は -1 を返して、 エ"
6301 "ラーを示す値に I<errno> を設定する。"
6302
6303 #. type: Plain text
6304 #: build/C/man2/sigaltstack.2:142
6305 msgid ""
6306 "Either I<ss> or I<oss> is not NULL and points to an area outside of the "
6307 "process's address space."
6308 msgstr ""
6309 "I<ss> または I<oss> のどちらが、NULL 以外で、 かつプロセスのアドレス空間の外"
6310 "を指している。"
6311
6312 #. type: Plain text
6313 #: build/C/man2/sigaltstack.2:147
6314 msgid ""
6315 "I<ss> is not NULL and the I<ss_flags> field contains a nonzero value other "
6316 "than B<SS_DISABLE>."
6317 msgstr ""
6318 "I<ss> が NULL 以外で、I<ss_flags> フィールドが B<SS_DISABLE> 以外の 0 でない"
6319 "値になっている。"
6320
6321 #. type: Plain text
6322 #: build/C/man2/sigaltstack.2:153
6323 msgid ""
6324 "The specified size of the new alternate signal stack I<ss.ss_size> was less "
6325 "than B<MINSTKSZ>."
6326 msgstr ""
6327 "新しい代替シグナルスタック (I<ss.ss_size>) に指定したサイズが B<MINSTKSZ> よ"
6328 "り小さかった。"
6329
6330 #. type: Plain text
6331 #: build/C/man2/sigaltstack.2:158
6332 msgid ""
6333 "An attempt was made to change the alternate signal stack while it was active "
6334 "(i.e., the process was already executing on the current alternate signal "
6335 "stack)."
6336 msgstr ""
6337 "代替シグナルスタックが有効であるときに変更を行おうとした (つまり、プロセスが"
6338 "既に現在の代替シグナルスタック上で実行されていた)。"
6339
6340 #. type: Plain text
6341 #: build/C/man2/sigaltstack.2:160
6342 msgid "SUSv2, SVr4, POSIX.1-2001."
6343 msgstr "SUSv2, SVr4, POSIX.1-2001."
6344
6345 #. type: Plain text
6346 #: build/C/man2/sigaltstack.2:168
6347 msgid ""
6348 "The most common usage of an alternate signal stack is to handle the "
6349 "B<SIGSEGV> signal that is generated if the space available for the normal "
6350 "process stack is exhausted: in this case, a signal handler for B<SIGSEGV> "
6351 "cannot be invoked on the process stack; if we wish to handle it, we must use "
6352 "an alternate signal stack."
6353 msgstr ""
6354 "代替シグナルスタックを使用する最もよくある場面は、 B<SIGSEGV> シグナルを扱う"
6355 "ときである。 B<SIGSEGV> はプロセスの通常のスタックが利用できる空間が使い果た"
6356 "された際に 生成されるシグナルである。この場合には、 B<SIGSEGV> 用のシグナルハ"
6357 "ンドラをプロセスのスタック上では起動することができない。 そのため、このシグナ"
6358 "ルを扱おうとする場合には、 代替シグナルスタックを使用しなければならない。"
6359
6360 #. type: Plain text
6361 #: build/C/man2/sigaltstack.2:178
6362 msgid ""
6363 "Establishing an alternate signal stack is useful if a process expects that "
6364 "it may exhaust its standard stack.  This may occur, for example, because the "
6365 "stack grows so large that it encounters the upwardly growing heap, or it "
6366 "reaches a limit established by a call to B<setrlimit(RLIMIT_STACK, &rlim)>.  "
6367 "If the standard stack is exhausted, the kernel sends the process a "
6368 "B<SIGSEGV> signal.  In these circumstances the only way to catch this signal "
6369 "is on an alternate signal stack."
6370 msgstr ""
6371 "プロセスが標準のシグナルスタックを使い果たすことが予想される場合は、 代替シグ"
6372 "ナルスタックを確立すると便利である。 例えば、スタックが最上位アドレスから 下"
6373 "位アドレス方向に非常にたくさん積まれてしまうことで、 最下位アドレスから上位ア"
6374 "ドレス方向に積まれるヒープとぶつかってしまう場合や、 "
6375 "B<setrlimit(RLIMIT_STACK, &rlim)> の呼び出しで確立された 制限に達してしまった"
6376 "場合に、この様な事が起こる。 標準のスタックを使い果たしてしまうと、 カーネル"
6377 "はプロセスに B<SIGSEGV> シグナルを送る。 このような状況では、代替シグナルス"
6378 "タック上でしかシグナルをキャッチできない。"
6379
6380 #. type: Plain text
6381 #: build/C/man2/sigaltstack.2:184
6382 msgid ""
6383 "On most hardware architectures supported by Linux, stacks grow downward.  "
6384 "B<sigaltstack>()  automatically takes account of the direction of stack "
6385 "growth."
6386 msgstr ""
6387 "Linux がサポートする多くのハードウェアアーキテクチャでは、 スタックは下位アド"
6388 "レス方向に積まれる。 B<sigaltstack>()  はスタックが積まれる方向を自動的に決定"
6389 "する。"
6390
6391 #. type: Plain text
6392 #: build/C/man2/sigaltstack.2:193
6393 msgid ""
6394 "Functions called from a signal handler executing on an alternate signal "
6395 "stack will also use the alternate signal stack.  (This also applies to any "
6396 "handlers invoked for other signals while the process is executing on the "
6397 "alternate signal stack.)  Unlike the standard stack, the system does not "
6398 "automatically extend the alternate signal stack.  Exceeding the allocated "
6399 "size of the alternate signal stack will lead to unpredictable results."
6400 msgstr ""
6401 "代替シグナルスタック上で実行されている シグナルハンドラから呼ばれる関数も、代"
6402 "替シグナルハンドラを使う (プロセスが代替シグナルスタック上で実行されている場"
6403 "合、 他のシグナルで呼び出されるハンドラもこの代替シグナルハンドラを使う)。 標"
6404 "準のスタックとは異なり、 システムは代替シグナルスタックを自動的に拡張しな"
6405 "い。 代替シグナルスタック用に確保したサイズを越えた場合、 結果は予想できな"
6406 "い。"
6407
6408 #. type: Plain text
6409 #: build/C/man2/sigaltstack.2:201
6410 msgid ""
6411 "A successful call to B<execve>(2)  removes any existing alternate signal "
6412 "stack.  A child process created via B<fork>(2)  inherits a copy of its "
6413 "parent's alternate signal stack settings."
6414 msgstr ""
6415 "B<execve>(2)  の呼び出しが成功すると、 既存の全ての代替シグナルスタックが削除"
6416 "される。 B<fork>(2)  経由で作成された子プロセスは、親プロセスの代替シグナルス"
6417 "タックの 設定のコピーを継承する。"
6418
6419 #. type: Plain text
6420 #: build/C/man2/sigaltstack.2:210
6421 msgid ""
6422 "B<sigaltstack>()  supersedes the older B<sigstack>()  call.  For backward "
6423 "compatibility, glibc also provides B<sigstack>().  All new applications "
6424 "should be written using B<sigaltstack>()."
6425 msgstr ""
6426 "B<sigaltstack>()  は以前の B<sigstack>()  を置き換えるものである。 過去プログ"
6427 "ラムとの互換性のため、glibc では B<sigstack>()  も提供している。 新しいのアプ"
6428 "リケーションは全て B<sigaltstack>()  を使って書くべきである。"
6429
6430 #. type: SS
6431 #: build/C/man2/sigaltstack.2:210 build/C/man3/sigpause.3:66
6432 #, no-wrap
6433 msgid "History"
6434 msgstr "歴史"
6435
6436 #. type: Plain text
6437 #: build/C/man2/sigaltstack.2:217
6438 msgid ""
6439 "4.2BSD had a B<sigstack>()  system call.  It used a slightly different "
6440 "struct, and had the major disadvantage that the caller had to know the "
6441 "direction of stack growth."
6442 msgstr ""
6443 "4.2BSD には B<sigstack>()  システムコールがあった。 この関数は少し異なった構"
6444 "造体を使っており、 呼び出した側がスタックの積まれる方向を知っていなければなら"
6445 "ないという 大きな欠点があった。"
6446
6447 #. type: Plain text
6448 #: build/C/man2/sigaltstack.2:220
6449 msgid "The following code segment demonstrates the use of B<sigaltstack>():"
6450 msgstr "以下のコードで B<sigaltstack>()  の使用法の一部を示す:"
6451
6452 #. type: Plain text
6453 #: build/C/man2/sigaltstack.2:224
6454 #, no-wrap
6455 msgid "stack_t ss;\n"
6456 msgstr "stack_t ss;\n"
6457
6458 #. type: Plain text
6459 #: build/C/man2/sigaltstack.2:232
6460 #, no-wrap
6461 msgid ""
6462 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6463 "if (ss.ss_sp == NULL)\n"
6464 "    /* Handle error */;\n"
6465 "ss.ss_size = SIGSTKSZ;\n"
6466 "ss.ss_flags = 0;\n"
6467 "if (sigaltstack(&ss, NULL) == -1)\n"
6468 "    /* Handle error */;\n"
6469 msgstr ""
6470 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6471 "if (ss.ss_sp == NULL)\n"
6472 "    /* ハンドルエラー */;\n"
6473 "ss.ss_size = SIGSTKSZ;\n"
6474 "ss.ss_flags = 0;\n"
6475 "if (sigaltstack(&ss, NULL) == -1)\n"
6476 "    /* ハンドルエラー */;\n"
6477
6478 #. type: Plain text
6479 #: build/C/man2/sigaltstack.2:241
6480 msgid ""
6481 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6482 "B<sigsetjmp>(3), B<signal>(7)"
6483 msgstr ""
6484 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6485 "B<sigsetjmp>(3), B<signal>(7)"
6486
6487 #. type: TH
6488 #: build/C/man7/sigevent.7:26
6489 #, no-wrap
6490 msgid "SIGEVENT"
6491 msgstr "SIGEVENT"
6492
6493 #. type: TH
6494 #: build/C/man7/sigevent.7:26
6495 #, no-wrap
6496 msgid "2011-09-09"
6497 msgstr "2011-09-09"
6498
6499 #. type: Plain text
6500 #: build/C/man7/sigevent.7:29
6501 msgid "sigevent - structure for notification from asynchronous routines"
6502 msgstr "sigevent - 非同期ルーチンからの通知用の構造体"
6503
6504 #. type: Plain text
6505 #: build/C/man7/sigevent.7:36
6506 #, no-wrap
6507 msgid ""
6508 "union sigval {          /* Data passed with notification */\n"
6509 "    int     sival_int;         /* Integer value */\n"
6510 "    void   *sival_ptr;         /* Pointer value */\n"
6511 "};\n"
6512 msgstr ""
6513 "union sigval {          /* Data passed with notification */\n"
6514 "    int     sival_int;         /* Integer value */\n"
6515 "    void   *sival_ptr;         /* Pointer value */\n"
6516 "};\n"
6517
6518 #. type: Plain text
6519 #: build/C/man7/sigevent.7:51
6520 #, no-wrap
6521 msgid ""
6522 "struct sigevent {\n"
6523 "    int          sigev_notify; /* Notification method */\n"
6524 "    int          sigev_signo;  /* Notification signal */\n"
6525 "    union sigval sigev_value;  /* Data passed with\n"
6526 "                                  notification */\n"
6527 "    void       (*sigev_notify_function) (union sigval);\n"
6528 "                     /* Function used for thread\n"
6529 "                        notification (SIGEV_THREAD) */\n"
6530 "    void        *sigev_notify_attributes;\n"
6531 "                     /* Attributes for notification thread\n"
6532 "                        (SIGEV_THREAD) */\n"
6533 "    pid_t        sigev_notify_thread_id;\n"
6534 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6535 "};\n"
6536 msgstr ""
6537 "struct sigevent {\n"
6538 "    int          sigev_notify; /* Notification method */\n"
6539 "    int          sigev_signo;  /* Notification signal */\n"
6540 "    union sigval sigev_value;  /* Data passed with\n"
6541 "                                  notification */\n"
6542 "    void       (*sigev_notify_function) (union sigval);\n"
6543 "                     /* Function used for thread\n"
6544 "                        notification (SIGEV_THREAD) */\n"
6545 "    void        *sigev_notify_attributes;\n"
6546 "                     /* Attributes for notification thread\n"
6547 "                        (SIGEV_THREAD) */\n"
6548 "    pid_t        sigev_notify_thread_id;\n"
6549 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6550 "};\n"
6551
6552 #. type: Plain text
6553 #: build/C/man7/sigevent.7:60
6554 msgid ""
6555 "The I<sigevent> structure is used by various APIs to describe the way a "
6556 "process is to be notified about an event (e.g., completion of an "
6557 "asynchronous request, expiration of a timer, or the arrival of a message)."
6558 msgstr ""
6559 "I<sigevent> 構造体は、イベントに関する情報をプロセスに通知するために様々な "
6560 "API で使用される (イベントの例としては、 非同期処理要求の完了、 タイマーの満"
6561 "了、 メッセージの到着など)。"
6562
6563 #. type: Plain text
6564 #: build/C/man7/sigevent.7:68
6565 msgid ""
6566 "The definition shown in the SYNOPSIS is approximate: some of the fields in "
6567 "the I<sigevent> structure may be defined as part of a union.  Programs "
6568 "should employ only those fields relevant to the value specified in "
6569 "I<sigev_notify>."
6570 msgstr ""
6571 "「書式」に記載されている定義はおおよそのものである。 I<sigevent> 構造体のいく"
6572 "つかのフィールドは、 共用体の一部として定義されているものもある。 プログラム"
6573 "は、 I<sigev_notify> で指定された値に応じたフィールドだけを利用すべきである。"
6574
6575 #. type: Plain text
6576 #: build/C/man7/sigevent.7:73
6577 msgid ""
6578 "The I<sigev_notify> field specifies how notification is to be performed.  "
6579 "This field can have one of the following values:"
6580 msgstr ""
6581 "I<sigev_notify> フィールドは、通知をどのように処理すべきかを指定する。 この"
6582 "フィールドは、以下のいずれかの値である。"
6583
6584 #. type: TP
6585 #: build/C/man7/sigevent.7:73 build/C/man2/timer_create.2:109
6586 #, no-wrap
6587 msgid "B<SIGEV_NONE>"
6588 msgstr "B<SIGEV_NONE>"
6589
6590 #. type: Plain text
6591 #: build/C/man7/sigevent.7:76
6592 msgid "A \"null\" notification: don't do anything when the event occurs."
6593 msgstr "「空 (null)」の通知。 イベントが発生時には何もしないこと。"
6594
6595 #. type: TP
6596 #: build/C/man7/sigevent.7:76 build/C/man2/timer_create.2:114
6597 #, no-wrap
6598 msgid "B<SIGEV_SIGNAL>"
6599 msgstr "B<SIGEV_SIGNAL>"
6600
6601 #. type: Plain text
6602 #: build/C/man7/sigevent.7:80
6603 msgid "Notify the process by sending the signal specified in I<sigev_signo>."
6604 msgstr ""
6605 "I<sigev_signo> で指定されたシグナルを送信することで、プロセスへの通知を行う。"
6606
6607 #. type: Plain text
6608 #: build/C/man7/sigevent.7:87
6609 msgid ""
6610 "If the signal is caught with a signal handler that was registered using the "
6611 "B<sigaction>(2)  B<SA_SIGINFO> flag, then the following fields are set in "
6612 "the I<siginfo_t> structure that is passed as the second argument of the "
6613 "handler:"
6614 msgstr ""
6615 "B<sigaction>(2) の B<SA_SIGINFO> フラグを使った登録されたシグナルハンドラによ"
6616 "りシグナルが捕捉されると、 シグナルハンドラの 2 番目の引き数として渡された "
6617 "I<siginfo_t> 構造体の以下のフィールドが設定される。"
6618
6619 #. type: Plain text
6620 #: build/C/man7/sigevent.7:92
6621 msgid ""
6622 "This field is set to a value that depends on the API delivering the "
6623 "notification."
6624 msgstr "このフィールドには通知を配送した API に応じた決まる値が設定される。"
6625
6626 #. type: TP
6627 #: build/C/man7/sigevent.7:92 build/C/man2/wait.2:302
6628 #, no-wrap
6629 msgid "I<si_signo>"
6630 msgstr "I<si_signo>"
6631
6632 #. type: Plain text
6633 #: build/C/man7/sigevent.7:96
6634 msgid ""
6635 "This field is set to the signal number (i.e., the same value as in "
6636 "I<sigev_signo>)."
6637 msgstr ""
6638 "このフィールドにはシグナル番号 (すなわち I<sigev_signo> と同じ値) が設定され"
6639 "る。"
6640
6641 #. type: Plain text
6642 #: build/C/man7/sigevent.7:100
6643 msgid "This field is set to the value specified in I<sigev_value>."
6644 msgstr "このフィールドには I<sigev_value> で指定された値が設定される。"
6645
6646 #. type: Plain text
6647 #: build/C/man7/sigevent.7:105
6648 msgid ""
6649 "Depending on the API, other fields may also be set in the I<siginfo_t> "
6650 "structure."
6651 msgstr ""
6652 "API によっては I<siginfo_t> 構造体の他のフィールドが設定される場合もある。"
6653
6654 #. type: Plain text
6655 #: build/C/man7/sigevent.7:108
6656 msgid ""
6657 "The same information is also available if the signal is accepted using "
6658 "B<sigwaitinfo>(2)."
6659 msgstr ""
6660 "シグナルを受け取ったときには B<sigwaitinfo>(2) でも同じ情報が得られる。"
6661
6662 #. type: TP
6663 #: build/C/man7/sigevent.7:108 build/C/man2/timer_create.2:132
6664 #, no-wrap
6665 msgid "B<SIGEV_THREAD>"
6666 msgstr "B<SIGEV_THREAD>"
6667
6668 #. type: Plain text
6669 #: build/C/man7/sigevent.7:125
6670 msgid ""
6671 "Notify the process by invoking I<sigev_notify_function> \"as if\" it were "
6672 "the start function of a new thread.  (Among the implementation possibilities "
6673 "here are that each timer notification could result in the creation of a new "
6674 "thread, or that a single thread is created to receive all notifications.)  "
6675 "The function is invoked with I<sigev_value> as its sole argument.  If "
6676 "I<sigev_notify_attributes> is not NULL, it should point to a "
6677 "I<pthread_attr_t> structure that defines attributes for the new thread (see "
6678 "B<pthread_attr_init>(3))."
6679 msgstr ""
6680 "「あたかも」新しいスレッドセーフの開始関数であるかのように "
6681 "I<sigev_notify_function> を起動することで、 プロセスへの通知を行う (実装の可"
6682 "能性としては、 タイマー通知の度に新しいスレッドセーフが作成される場合も、 一"
6683 "つのスレッドを作成してすべての通知を受信する場合もある)。 この関数は "
6684 "I<sigev_value> を唯一の引き数として起動される。 I<sigev_notify_attributes> "
6685 "は、 NULL 以外の場合は、 新しいスレッドセーフの属性を定義する "
6686 "I<pthread_attr_t> 構造体を指していなければならない (B<pthread_attr_init>(3) "
6687 "参照)。"
6688
6689 #. type: TP
6690 #: build/C/man7/sigevent.7:125 build/C/man2/timer_create.2:140
6691 #, no-wrap
6692 msgid "B<SIGEV_THREAD_ID> (Linux-specific)"
6693 msgstr "B<SIGEV_THREAD_ID> (Linux 固有)"
6694
6695 #.  | SIGEV_SIGNAL vs not?
6696 #. type: Plain text
6697 #: build/C/man7/sigevent.7:130
6698 msgid "Currently used only by POSIX timers; see B<timer_create>(2)."
6699 msgstr "現在のところ POSIX でのみ使用されている。 B<timer_create>(2) 参照。"
6700
6701 #. type: Plain text
6702 #: build/C/man7/sigevent.7:132 build/C/man2/sigpending.2:66
6703 #: build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:121
6704 #: build/C/man3/sigsetops.3:147 build/C/man2/sigsuspend.2:86
6705 #: build/C/man3/sigwait.3:87 build/C/man2/sigwaitinfo.2:135
6706 #: build/C/man2/timer_create.2:197 build/C/man2/timer_delete.2:69
6707 #: build/C/man2/timer_getoverrun.2:99 build/C/man2/timer_settime.2:209
6708 msgid "POSIX.1-2001."
6709 msgstr "POSIX.1-2001."
6710
6711 #. type: Plain text
6712 #: build/C/man7/sigevent.7:142
6713 msgid ""
6714 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6715 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6716 "B<pthreads>(7)"
6717 msgstr ""
6718 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6719 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6720 "B<pthreads>(7)"
6721
6722 #. type: TH
6723 #: build/C/man3/siginterrupt.3:31
6724 #, no-wrap
6725 msgid "SIGINTERRUPT"
6726 msgstr "SIGINTERRUPT"
6727
6728 #. type: TH
6729 #: build/C/man3/siginterrupt.3:31
6730 #, no-wrap
6731 msgid "2014-06-13"
6732 msgstr "2014-06-13"
6733
6734 #. type: Plain text
6735 #: build/C/man3/siginterrupt.3:34
6736 msgid "siginterrupt - allow signals to interrupt system calls"
6737 msgstr "siginterrupt - シグナルでシステム・コールに割り込むことを許す"
6738
6739 #. type: Plain text
6740 #: build/C/man3/siginterrupt.3:39
6741 #, no-wrap
6742 msgid "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6743 msgstr "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6744
6745 #. type: Plain text
6746 #: build/C/man3/siginterrupt.3:47
6747 msgid "B<siginterrupt>():"
6748 msgstr "B<siginterrupt>():"
6749
6750 #. type: Plain text
6751 #: build/C/man3/siginterrupt.3:64
6752 msgid ""
6753 "The B<siginterrupt>()  function changes the restart behavior when a system "
6754 "call is interrupted by the signal I<sig>.  If the I<flag> argument is false "
6755 "(0), then system calls will be restarted if interrupted by the specified "
6756 "signal I<sig>.  This is the default behavior in Linux."
6757 msgstr ""
6758 "B<siginterrupt>()  関数は、システム・コールがシグナル I<sig> によって割り込ま"
6759 "れた後、再実行の際の振る舞いを変更する。 I<flag> 引き数が偽 (0) ならば、シス"
6760 "テム・コールが指定した シグナル I<sig> によって割り込まれた後に、そのシステ"
6761 "ム・コールは 再実行される。これは Linux においてデフォルトの動作である。"
6762
6763 #. type: Plain text
6764 #: build/C/man3/siginterrupt.3:69
6765 msgid ""
6766 "If the I<flag> argument is true (1) and no data has been transferred, then a "
6767 "system call interrupted by the signal I<sig> will return -1 and I<errno> "
6768 "will be set to B<EINTR>."
6769 msgstr ""
6770 "I<flag> 引き数が真 (1) でデータの転送が全く行なわれていないならば、 シグナル "
6771 "I<sig> でシステム・コールは中断されて、-1 が返され、 I<errno> に B<EINTR> が"
6772 "設定される。"
6773
6774 #. type: Plain text
6775 #: build/C/man3/siginterrupt.3:73
6776 msgid ""
6777 "If the I<flag> argument is true (1) and data transfer has started, then the "
6778 "system call will be interrupted and will return the actual amount of data "
6779 "transferred."
6780 msgstr ""
6781 "I<flag> 引き数が真 (1) でデータの転送が開始されていれば、 システム・コールは"
6782 "中断され、それまでに実際に転送されたデータ の量が返される。"
6783
6784 #. type: Plain text
6785 #: build/C/man3/siginterrupt.3:83
6786 msgid ""
6787 "The B<siginterrupt>()  function returns 0 on success.  It returns -1 if the "
6788 "signal number I<sig> is invalid, with I<errno> set to indicate the cause of "
6789 "the error."
6790 msgstr ""
6791 "B<siginterrupt>()  関数は成功した場合 0 を返す。 シグナル番号 I<sig> が不正な"
6792 "場合、 -1 を返し、 I<errno> にエラーの原因を示す値を設定する。"
6793
6794 #. type: Plain text
6795 #: build/C/man3/siginterrupt.3:87
6796 msgid "The specified signal number is invalid."
6797 msgstr "指定したシグナル番号が不正である。"
6798
6799 #. type: Plain text
6800 #: build/C/man3/siginterrupt.3:93
6801 msgid ""
6802 "The B<siginterrupt>()  function uses a global variable that is not "
6803 "protected, so it is not thread-safe."
6804 msgstr ""
6805
6806 #. type: Plain text
6807 #: build/C/man3/siginterrupt.3:102
6808 msgid ""
6809 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 marks B<siginterrupt>()  as obsolete, "
6810 "recommending the use of B<sigaction>(2)  with the B<SA_RESTART> flag instead."
6811 msgstr ""
6812 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 は、 B<siginterrupt>()  を廃止予定として"
6813 "いる。 代わりに、 B<sigaction>(2)  に B<SA_RESTART> フラグを指定して使うこと"
6814 "を推奨している。"
6815
6816 #. type: Plain text
6817 #: build/C/man3/siginterrupt.3:104
6818 msgid "B<signal>(2)"
6819 msgstr "B<signal>(2)"
6820
6821 #. type: TH
6822 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
6823 #, no-wrap
6824 msgid "SIGNAL"
6825 msgstr "SIGNAL"
6826
6827 #. type: TH
6828 #: build/C/man2/signal.2:36 build/C/man3/sigpause.3:25
6829 #: build/C/man2/sigwaitinfo.2:25 build/C/man2/timer_create.2:33
6830 #: build/C/man2/wait.2:49
6831 #, no-wrap
6832 msgid "2014-08-19"
6833 msgstr "2014-08-19"
6834
6835 #. type: Plain text
6836 #: build/C/man2/signal.2:39
6837 msgid "signal - ANSI C signal handling"
6838 msgstr "signal - ANSI C シグナル操作"
6839
6840 #. type: Plain text
6841 #: build/C/man2/signal.2:45
6842 msgid "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
6843 msgstr ""
6844 "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<sighandler>B<);>"
6845
6846 #. type: Plain text
6847 #: build/C/man2/signal.2:54
6848 msgid ""
6849 "The behavior of B<signal>()  varies across UNIX versions, and has also "
6850 "varied historically across different versions of Linux.  B<Avoid its use>: "
6851 "use B<sigaction>(2)  instead.  See I<Portability> below."
6852 msgstr ""
6853 "B<signal>()  の動作は UNIX のバージョンにより異なる。 また、歴史的に見て "
6854 "Linux のバージョンによっても異なっている。 B<このシステムコールの使用は避け、"
6855 "> 代わりに B<sigaction>(2)  を使用すること。 下記の「移植性」を参照。"
6856
6857 #. type: Plain text
6858 #: build/C/man2/signal.2:64
6859 msgid ""
6860 "B<signal>()  sets the disposition of the signal I<signum> to I<handler>, "
6861 "which is either B<SIG_IGN>, B<SIG_DFL>, or the address of a programmer-"
6862 "defined function (a \"signal handler\")."
6863 msgstr ""
6864 "B<signal>()  はシグナル I<signum> の処理方法を I<handler> に設定する。 "
6865 "I<handler> には、 B<SIG_IGN>、 B<SIG_DFL>、 プログラマが定義した関数 (「シグ"
6866 "ナル・ハンドラ」) のアドレスの いずれかを指定する。"
6867
6868 #. type: Plain text
6869 #: build/C/man2/signal.2:68
6870 msgid ""
6871 "If the signal I<signum> is delivered to the process, then one of the "
6872 "following happens:"
6873 msgstr ""
6874 "シグナル I<signum> がプロセスに配送されると、以下のいずれかが発生する。"
6875
6876 #. type: Plain text
6877 #: build/C/man2/signal.2:73
6878 msgid "If the disposition is set to B<SIG_IGN>, then the signal is ignored."
6879 msgstr "処理方法が B<SIG_IGN> に設定されている場合、そのシグナルは無視される。"
6880
6881 #. type: Plain text
6882 #: build/C/man2/signal.2:80
6883 msgid ""
6884 "If the disposition is set to B<SIG_DFL>, then the default action associated "
6885 "with the signal (see B<signal>(7))  occurs."
6886 msgstr ""
6887 "処理方法が B<SIG_DFL> に設定されている場合、シグナルに関連づけられた デフォル"
6888 "トの動作が行われる (B<signal>(7)  参照)。"
6889
6890 #. type: Plain text
6891 #: build/C/man2/signal.2:91
6892 msgid ""
6893 "If the disposition is set to a function, then first either the disposition "
6894 "is reset to B<SIG_DFL>, or the signal is blocked (see I<Portability> below), "
6895 "and then I<handler> is called with argument I<signum>.  If invocation of the "
6896 "handler caused the signal to be blocked, then the signal is unblocked upon "
6897 "return from the handler."
6898 msgstr ""
6899 "処理方法として関数が設定されている場合、 まず最初に処理方法が B<SIG_DFL> にリ"
6900 "セットされるかそのシグナルのブロックが実行された後、 I<signum> を引き数とし"
6901 "て I<handler> が呼び出される。 ハンドラが起動される際にシグナルがブロックされ"
6902 "た場合、 ハンドラが返る際にそのシグナルのブロックが解除される。"
6903
6904 #. type: Plain text
6905 #: build/C/man2/signal.2:97
6906 msgid "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught or ignored."
6907 msgstr ""
6908 "シグナル B<SIGKILL> と B<SIGSTOP> は捕捉できず、無視することもできない。"
6909
6910 #. type: Plain text
6911 #: build/C/man2/signal.2:105
6912 msgid ""
6913 "B<signal>()  returns the previous value of the signal handler, or B<SIG_ERR> "
6914 "on error.  In the event of an error, I<errno> is set to indicate the cause."
6915 msgstr ""
6916 "B<signal>()  は、今までのシグナル・ハンドラの値を返す。 エラーの場合は "
6917 "B<SIG_ERR> を返し、 I<errno> にエラーの原因を示す値を設定する。"
6918
6919 #. type: Plain text
6920 #: build/C/man2/signal.2:110
6921 msgid "I<signum> is invalid."
6922 msgstr "I<signum> が不正である。"
6923
6924 #. type: Plain text
6925 #: build/C/man2/signal.2:116
6926 msgid "The effects of B<signal>()  in a multithreaded process are unspecified."
6927 msgstr ""
6928 "マルチスレッドプロセスにおける B<signal>()  の結果は、指定されていない。"
6929
6930 #. type: Plain text
6931 #: build/C/man2/signal.2:141
6932 msgid ""
6933 "See B<sigaction>(2)  for details on what happens when B<SIGCHLD> is set to "
6934 "B<SIG_IGN>."
6935 msgstr ""
6936 "B<SIGCHLD> の動作として B<SIG_IGN> を設定した場合の詳細な動作については、 "
6937 "B<sigaction>(2)  を参照すること。"
6938
6939 #. type: Plain text
6940 #: build/C/man2/signal.2:146
6941 msgid ""
6942 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
6943 "safely called from inside a signal handler."
6944 msgstr ""
6945 "シグナル・ハンドラ内から安全に呼び出すことができる、 async-signal-safe "
6946 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
6947 "照。"
6948
6949 #.  libc4 and libc5 define
6950 #.  .IR SignalHandler ;
6951 #. type: Plain text
6952 #: build/C/man2/signal.2:162
6953 msgid ""
6954 "The use of I<sighandler_t> is a GNU extension, exposed if B<_GNU_SOURCE> is "
6955 "defined; glibc also defines (the BSD-derived)  I<sig_t> if B<_BSD_SOURCE> is "
6956 "defined.  Without use of such a type, the declaration of B<signal>()  is the "
6957 "somewhat harder to read:"
6958 msgstr ""
6959 "I<sighandler_t> の使用は GNU 拡張であり、 B<_GNU_SOURCE> が定義された場合に公"
6960 "開される。glibc では B<_BSD_SOURCE> が定義された場合には (BSD 由来の) "
6961 "I<sig_t> も定義される。このような型を使用しないと、 B<signal>() の宣言は読み"
6962 "にくいものとなる。"
6963
6964 #. type: Plain text
6965 #: build/C/man2/signal.2:166
6966 #, no-wrap
6967 msgid "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6968 msgstr "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6969
6970 #. type: SS
6971 #: build/C/man2/signal.2:168
6972 #, no-wrap
6973 msgid "Portability"
6974 msgstr "移植性"
6975
6976 #. type: Plain text
6977 #: build/C/man2/signal.2:180
6978 msgid ""
6979 "The only portable use of B<signal>()  is to set a signal's disposition to "
6980 "B<SIG_DFL> or B<SIG_IGN>.  The semantics when using B<signal>()  to "
6981 "establish a signal handler vary across systems (and POSIX.1 explicitly "
6982 "permits this variation); B<do not use it for this purpose.>"
6983 msgstr ""
6984 "移植性のある B<signal>()  の使い方は、シグナルの処理方法を B<SIG_DFL> か "
6985 "B<SIG_IGN> に設定する方法だけである。 シグナル・ハンドラを設定するのに "
6986 "B<signal>()  を使ったときの動作はシステムにより異なる (POSIX.1 は明示的にこの"
6987 "違いを認めている)。 B<移植性が必要なときはこのシステムコールを使用しないこ"
6988 "と。>"
6989
6990 #. type: Plain text
6991 #: build/C/man2/signal.2:186
6992 msgid ""
6993 "POSIX.1 solved the portability mess by specifying B<sigaction>(2), which "
6994 "provides explicit control of the semantics when a signal handler is invoked; "
6995 "use that interface instead of B<signal>()."
6996 msgstr ""
6997 "POSIX.1 は、 B<sigaction>(2)  を規定することで移植性に関する混乱を解決した。 "
6998 "B<sigaction>(2)  はシグナル・ハンドラが起動される際の挙動を明示的に制御でき"
6999 "る。 B<signal>()  の代わりにこのインターフェイスを使うこと。"
7000
7001 #. type: Plain text
7002 #: build/C/man2/signal.2:196
7003 msgid ""
7004 "In the original UNIX systems, when a handler that was established using "
7005 "B<signal>()  was invoked by the delivery of a signal, the disposition of the "
7006 "signal would be reset to B<SIG_DFL>, and the system did not block delivery "
7007 "of further instances of the signal.  This is equivalent to calling "
7008 "B<sigaction>(2)  with the following flags:"
7009 msgstr ""
7010 "オリジナルの UNIX システムでは、 B<signal>()  を使って設定されたハンドラがシ"
7011 "グナルの配送により起動されると、 そのシグナルの処理方法は B<SIG_DFL> にリセッ"
7012 "トされ、システムは同じシグナルがさらに生成されても シグナルの配送をブロックし"
7013 "なかった。これは、以下のフラグで B<sigaction>(2) を呼び出すのと等価である。"
7014
7015 #. type: Plain text
7016 #: build/C/man2/signal.2:198
7017 #, no-wrap
7018 msgid "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
7019 msgstr "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
7020
7021 #. type: Plain text
7022 #: build/C/man2/signal.2:205
7023 msgid ""
7024 "System\\ V also provides these semantics for B<signal>().  This was bad "
7025 "because the signal might be delivered again before the handler had a chance "
7026 "to reestablish itself.  Furthermore, rapid deliveries of the same signal "
7027 "could result in recursive invocations of the handler."
7028 msgstr ""
7029 "System\\ V でも、 B<signal>()  に対してこれらの挙動を規定している。 こうした"
7030 "挙動はまずく、ハンドラがハンドラ自身を再設定する機会が 来るより前に、同じシグ"
7031 "ナルがまた配送される可能性がある。 さらに、同じシグナルが立て続けに配送される"
7032 "と、同じシグナルが ハンドラを繰り返し起動されることになる。"
7033
7034 #. type: Plain text
7035 #: build/C/man2/signal.2:220
7036 msgid ""
7037 "BSD improved on this situation, but unfortunately also changed the semantics "
7038 "of the existing B<signal>()  interface while doing so.  On BSD, when a "
7039 "signal handler is invoked, the signal disposition is not reset, and further "
7040 "instances of the signal are blocked from being delivered while the handler "
7041 "is executing.  Furthermore, certain blocking system calls are automatically "
7042 "restarted if interrupted by a signal handler (see B<signal>(7)).  The BSD "
7043 "semantics are equivalent to calling B<sigaction>(2)  with the following "
7044 "flags:"
7045 msgstr ""
7046 "BSD はこの状況が改善したが、残念なことに、その過程で既存の B<signal>() の挙動"
7047 "も変更された。 BSD では、シグナルハンドラが起動された際、 シグナルの処理方法"
7048 "はリセットされず、 ハンドラの実行中は、同じシグナルのさらなる生成は配送がブ"
7049 "ロックされる。 また、 シグナルハンドラが中断された場合、 停止中のシステムコー"
7050 "ルのいくつかは自動的に再スタートされる。 BSD の挙動は、 以下のフラグを指定し"
7051 "た B<sigaction>(2) の呼び出しと等価である。"
7052
7053 #. type: Plain text
7054 #: build/C/man2/signal.2:222
7055 #, no-wrap
7056 msgid "    sa.sa_flags = SA_RESTART;\n"
7057 msgstr "    sa.sa_flags = SA_RESTART;\n"
7058
7059 #. type: Plain text
7060 #: build/C/man2/signal.2:224
7061 msgid "The situation on Linux is as follows:"
7062 msgstr "Linux での状況は以下の通りである。"
7063
7064 #. type: Plain text
7065 #: build/C/man2/signal.2:228
7066 msgid "The kernel's B<signal>()  system call provides System\\ V semantics."
7067 msgstr ""
7068 "カーネルの B<signal>()  システムコールは System\\ V 方式を提供している。"
7069
7070 #. type: Plain text
7071 #: build/C/man2/signal.2:244
7072 msgid ""
7073 "By default, in glibc 2 and later, the B<signal>()  wrapper function does not "
7074 "invoke the kernel system call.  Instead, it calls B<sigaction>(2)  using "
7075 "flags that supply BSD semantics.  This default behavior is provided as long "
7076 "as the B<_BSD_SOURCE> feature test macro is defined.  By default, "
7077 "B<_BSD_SOURCE> is defined; it is also implicitly defined if one defines "
7078 "B<_GNU_SOURCE>, and can of course be explicitly defined."
7079 msgstr ""
7080 "デフォルトでは、glibc 2 以降では、 B<signal>()  ラッパー関数はカーネルのシス"
7081 "テムコールを起動しない。 代わりに、ラッパー関数は BSD 方式を示すフラグを使っ"
7082 "て B<sigaction>(2)  を呼び出す。 機能検査マクロ B<_BSD_SOURCE> を定義していれ"
7083 "ば、このデフォルトの動作となる。 デフォルトでは、 B<_BSD_SOURCE> が定義され"
7084 "る。 B<_BSD_SOURCE> は B<_GNU_SOURCE> が定義された場合には暗黙のうちに定義さ"
7085 "れ、 もちろん明示的に定義することもできる。"
7086
7087 #.  System V semantics are also provided if one uses the separate
7088 #.  .BR sysv_signal (3)
7089 #.  function.
7090 #.  .IP *
7091 #.  The
7092 #.  .BR signal ()
7093 #.  function in Linux libc4 and libc5 provide System\ V semantics.
7094 #.  If one on a libc5 system includes
7095 #.  .I <bsd/signal.h>
7096 #.  instead of
7097 #.  .IR <signal.h> ,
7098 #.  then
7099 #.  .BR signal ()
7100 #.  provides BSD semantics.
7101 #. type: Plain text
7102 #: build/C/man2/signal.2:278
7103 msgid ""
7104 "On glibc 2 and later, if the B<_BSD_SOURCE> feature test macro is not "
7105 "defined, then B<signal>()  provides System\\ V semantics.  (The default "
7106 "implicit definition of B<_BSD_SOURCE> is not provided if one invokes "
7107 "B<gcc>(1)  in one of its standard modes (I<-std=xxx> or I<-ansi>)  or "
7108 "defines various other feature test macros such as B<_POSIX_SOURCE>, "
7109 "B<_XOPEN_SOURCE>, or B<_SVID_SOURCE>; see B<feature_test_macros>(7).)"
7110 msgstr ""
7111 "glibc 2 以降では、機能検査マクロ B<_BSD_SOURCE> が定義されていなければ、 "
7112 "B<signal>()  は System\\ V 方式となる。 (B<gcc>(1)  が標準指定モード (I<-"
7113 "std=xxx> or I<-ansi>)  で起動された場合、もしくは B<_POSIX_SOURCE>, "
7114 "B<_XOPEN_SOURCE>, B<_SVID_SOURCE> といった他の様々な機能検査マクロが定義され"
7115 "た場合、 デフォルトの B<_BSD_SOURCE> の暗黙の定義は行われない。 "
7116 "B<feature_test_macros>(7)  を参照のこと。)"
7117
7118 #. type: Plain text
7119 #: build/C/man2/signal.2:297
7120 msgid ""
7121 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), "
7122 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
7123 "B<sigsuspend>(2), B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), "
7124 "B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), "
7125 "B<signal>(7)"
7126 msgstr ""
7127 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), "
7128 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
7129 "B<sigsuspend>(2), B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), "
7130 "B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), "
7131 "B<signal>(7)"
7132
7133 #. type: Plain text
7134 #: build/C/man7/signal.7:49
7135 msgid "signal - overview of signals"
7136 msgstr "signal - シグナルの概要"
7137
7138 #. type: Plain text
7139 #: build/C/man7/signal.7:52
7140 msgid ""
7141 "Linux supports both POSIX reliable signals (hereinafter \"standard signals"
7142 "\") and POSIX real-time signals."
7143 msgstr ""
7144 "Linux は POSIX 信頼シグナル (reliable signal; 以後 \"標準シグナル\"と表記)  "
7145 "と POSIX リアルタイムシグナルの両方に対応している。"
7146
7147 #. type: SS
7148 #: build/C/man7/signal.7:52
7149 #, no-wrap
7150 msgid "Signal dispositions"
7151 msgstr "シグナル処理方法"
7152
7153 #. type: Plain text
7154 #: build/C/man7/signal.7:57
7155 msgid ""
7156 "Each signal has a current I<disposition>, which determines how the process "
7157 "behaves when it is delivered the signal."
7158 msgstr ""
7159 "シグナルはそれぞれ現在の「処理方法 (disposition)」を保持しており、 この処理方"
7160 "法によりシグナルが配送された際にプロセスが どのような振舞いをするかが決まる。"
7161
7162 #. type: Plain text
7163 #: build/C/man7/signal.7:60
7164 msgid ""
7165 "The entries in the \"Action\" column of the tables below specify the default "
7166 "disposition for each signal, as follows:"
7167 msgstr ""
7168 "後述の表の \"動作\" の欄のエントリは各シグナルのデフォルトの 処理方法を示して"
7169 "おり、以下のような意味を持つ。"
7170
7171 #. type: IP
7172 #: build/C/man7/signal.7:60
7173 #, no-wrap
7174 msgid "Term"
7175 msgstr "Term"
7176
7177 #. type: Plain text
7178 #: build/C/man7/signal.7:62
7179 msgid "Default action is to terminate the process."
7180 msgstr "デフォルトの動作はプロセス終了。"
7181
7182 #. type: IP
7183 #: build/C/man7/signal.7:62
7184 #, no-wrap
7185 msgid "Ign"
7186 msgstr "Ign"
7187
7188 #. type: Plain text
7189 #: build/C/man7/signal.7:64
7190 msgid "Default action is to ignore the signal."
7191 msgstr "デフォルトの動作はこのシグナルの無視。"
7192
7193 #. type: IP
7194 #: build/C/man7/signal.7:64
7195 #, no-wrap
7196 msgid "Core"
7197 msgstr "Core"
7198
7199 #. type: Plain text
7200 #: build/C/man7/signal.7:67
7201 msgid ""
7202 "Default action is to terminate the process and dump core (see B<core>(5))."
7203 msgstr "デフォルトの動作はプロセス終了とコアダンプ出力 (B<core>(5)  参照)。"
7204
7205 #. type: IP
7206 #: build/C/man7/signal.7:67
7207 #, no-wrap
7208 msgid "Stop"
7209 msgstr "Stop"
7210
7211 #. type: Plain text
7212 #: build/C/man7/signal.7:69
7213 msgid "Default action is to stop the process."
7214 msgstr "デフォルトの動作はプロセスの一時停止。"
7215
7216 #. type: IP
7217 #: build/C/man7/signal.7:69
7218 #, no-wrap
7219 msgid "Cont"
7220 msgstr "Cont"
7221
7222 #. type: Plain text
7223 #: build/C/man7/signal.7:71
7224 msgid "Default action is to continue the process if it is currently stopped."
7225 msgstr "デフォルトの動作は、プロセスが停止中の場合にその実行の再開。"
7226
7227 #. type: Plain text
7228 #: build/C/man7/signal.7:93
7229 msgid ""
7230 "A process can change the disposition of a signal using B<sigaction>(2)  or "
7231 "B<signal>(2).  (The latter is less portable when establishing a signal "
7232 "handler; see B<signal>(2)  for details.)  Using these system calls, a "
7233 "process can elect one of the following behaviors to occur on delivery of the "
7234 "signal: perform the default action; ignore the signal; or catch the signal "
7235 "with a I<signal handler>, a programmer-defined function that is "
7236 "automatically invoked when the signal is delivered.  (By default, the signal "
7237 "handler is invoked on the normal process stack.  It is possible to arrange "
7238 "that the signal handler uses an alternate stack; see B<sigaltstack>(2)  for "
7239 "a discussion of how to do this and when it might be useful.)"
7240 msgstr ""
7241 "プロセスは、 B<sigaction>(2)  や B<signal>(2)  を使って、シグナルの処理方法を"
7242 "変更することができる (B<signal>(2)  の方がシグナルハンドラを設定する際の移植"
7243 "性が低い; 詳細は B<signal>(2)  を参照)。 シグナルの配送時に起こる動作として "
7244 "プロセスが選択できるのは、次のいずれか一つである。 デフォルトの動作を実行す"
7245 "る、シグナルを無視する、 I<シグナルハンドラ (signal handler)> でシグナルを捕"
7246 "捉する。シグナルハンドラとは、シグナル配送時に 自動的に起動されるプログラマ定"
7247 "義の関数である。 (デフォルトでは、シグナルハンドラは通常のプロセスのスタック"
7248 "上で起動される。 シグナルハンドラが代替スタック (alternate stack) を使用する"
7249 "ように設定する こともできる。代替スタックを使用するように設定する方法と、どの"
7250 "ような際に 代替スタックが役に立つかについての議論については "
7251 "B<sigaltstack>(2)  を参照のこと。"
7252
7253 #. type: Plain text
7254 #: build/C/man7/signal.7:97
7255 msgid ""
7256 "The signal disposition is a per-process attribute: in a multithreaded "
7257 "application, the disposition of a particular signal is the same for all "
7258 "threads."
7259 msgstr ""
7260 "シグナルの処理方法はプロセス単位の属性である。 マルチスレッドのアプリケーショ"
7261 "ンでは、あるシグナルの処理方法は 全てのスレッドで同じである。"
7262
7263 #. type: SS
7264 #: build/C/man7/signal.7:105
7265 #, no-wrap
7266 msgid "Sending a signal"
7267 msgstr "シグナルの送信"
7268
7269 #. type: Plain text
7270 #: build/C/man7/signal.7:108
7271 msgid ""
7272 "The following system calls and library functions allow the caller to send a "
7273 "signal:"
7274 msgstr ""
7275 "以下のシステムコールとライブラリ関数を使って、 呼び出し者はシグナルを送信する"
7276 "ことができる。"
7277
7278 #. type: TP
7279 #: build/C/man7/signal.7:108
7280 #, no-wrap
7281 msgid "B<raise>(3)"
7282 msgstr "B<raise>(3)"
7283
7284 #. type: Plain text
7285 #: build/C/man7/signal.7:111
7286 msgid "Sends a signal to the calling thread."
7287 msgstr "呼び出したスレッドにシグナルを送る。"
7288
7289 #. type: Plain text
7290 #: build/C/man7/signal.7:116
7291 msgid ""
7292 "Sends a signal to a specified process, to all members of a specified process "
7293 "group, or to all processes on the system."
7294 msgstr ""
7295 "指定されたプロセスや、指定されたプロセスグループの全メンバー、 システムの全プ"
7296 "ロセスにシグナルを送る。"
7297
7298 #. type: TP
7299 #: build/C/man7/signal.7:116
7300 #, no-wrap
7301 msgid "B<killpg>(2)"
7302 msgstr "B<killpg>(2)"
7303
7304 #. type: Plain text
7305 #: build/C/man7/signal.7:119
7306 msgid "Sends a signal to all of the members of a specified process group."
7307 msgstr "指定されたプロセスグループの全メンバーにシグナルを送る。"
7308
7309 #. type: TP
7310 #: build/C/man7/signal.7:119
7311 #, no-wrap
7312 msgid "B<pthread_kill>(3)"
7313 msgstr "B<pthread_kill>(3)"
7314
7315 #. type: Plain text
7316 #: build/C/man7/signal.7:123
7317 msgid ""
7318 "Sends a signal to a specified POSIX thread in the same process as the caller."
7319 msgstr ""
7320 "呼び出し者と同じプロセス内の指定された POSIX スレッドにシグナルを送る。"
7321
7322 #. type: TP
7323 #: build/C/man7/signal.7:123
7324 #, no-wrap
7325 msgid "B<tgkill>(2)"
7326 msgstr "B<tgkill>(2)"
7327
7328 #. type: Plain text
7329 #: build/C/man7/signal.7:128
7330 msgid ""
7331 "Sends a signal to a specified thread within a specific process.  (This is "
7332 "the system call used to implement B<pthread_kill>(3).)"
7333 msgstr ""
7334 "指定されたプロセス内の指定されたスレッドにシグナルを送る (このシステムコール"
7335 "を使って B<pthread_kill>(3)  は実装されている)。"
7336
7337 #. type: Plain text
7338 #: build/C/man7/signal.7:131
7339 msgid "Sends a real-time signal with accompanying data to a specified process."
7340 msgstr "指定されたプロセスに付属データとともにリアルタイムシグナルを送る。"
7341
7342 #. type: SS
7343 #: build/C/man7/signal.7:131
7344 #, no-wrap
7345 msgid "Waiting for a signal to be caught"
7346 msgstr "シグナルが捕捉されるのを待つ"
7347
7348 #. type: Plain text
7349 #: build/C/man7/signal.7:135
7350 msgid ""
7351 "The following system calls suspend execution of the calling process or "
7352 "thread until a signal is caught (or an unhandled signal terminates the "
7353 "process):"
7354 msgstr ""
7355 "以下のシステムコールを使って、シグナルが捕捉されるまで 呼び出したプロセスやス"
7356 "レッドの実行を中断 (suspend) することができる (ハンドラが設定されていないシグ"
7357 "ナルによりそのプロセスが終了した 場合にも実行の停止は終了する)。"
7358
7359 #. type: TP
7360 #: build/C/man7/signal.7:135
7361 #, no-wrap
7362 msgid "B<pause>(2)"
7363 msgstr "B<pause>(2)"
7364
7365 #. type: Plain text
7366 #: build/C/man7/signal.7:138
7367 msgid "Suspends execution until any signal is caught."
7368 msgstr "何かシグナルが捕捉されるまで実行を停止する。"
7369
7370 #. type: TP
7371 #: build/C/man7/signal.7:138
7372 #, no-wrap
7373 msgid "B<sigsuspend>(2)"
7374 msgstr "B<sigsuspend>(2)"
7375
7376 #. type: Plain text
7377 #: build/C/man7/signal.7:142
7378 msgid ""
7379 "Temporarily changes the signal mask (see below) and suspends execution until "
7380 "one of the unmasked signals is caught."
7381 msgstr ""
7382 "一時的にシグナルマスク (下記参照) を変更し、 マスクされていないシグナルのいず"
7383 "れかが捕捉されるまで 実行を中断する。"
7384
7385 #. type: SS
7386 #: build/C/man7/signal.7:142
7387 #, no-wrap
7388 msgid "Synchronously accepting a signal"
7389 msgstr "シグナルの同期受信"
7390
7391 #. type: Plain text
7392 #: build/C/man7/signal.7:149
7393 msgid ""
7394 "Rather than asynchronously catching a signal via a signal handler, it is "
7395 "possible to synchronously accept the signal, that is, to block execution "
7396 "until the signal is delivered, at which point the kernel returns information "
7397 "about the signal to the caller.  There are two general ways to do this:"
7398 msgstr ""
7399 "シグナルハンドラ経由でシグナルを非同期 (asynchronously) で捕捉する以外にも、 "
7400 "シグナルを同期 (synchronously) して受け付けることもできる。 同期して受け付け"
7401 "るとは、シグナルが配送されるまで実行を停止 (block)  するということである。シ"
7402 "グナルを受け付けた際に、カーネルは そのシグナルに関する情報を呼び出し者に返"
7403 "す。 これを行う一般的な方法が二つある。"
7404
7405 #. type: Plain text
7406 #: build/C/man7/signal.7:157
7407 msgid ""
7408 "B<sigwaitinfo>(2), B<sigtimedwait>(2), and B<sigwait>(3)  suspend execution "
7409 "until one of the signals in a specified set is delivered.  Each of these "
7410 "calls returns information about the delivered signal."
7411 msgstr ""
7412 "B<sigwaitinfo>(2), B<sigtimedwait>(2), B<sigwait>(3)  は、指定されたシグナル"
7413 "集合のシグナルの一つが配送されるまで実行を中断する。 どのシステムコールや関数"
7414 "でも、配送されたシグナルに関する情報が返される。"
7415
7416 #. type: Plain text
7417 #: build/C/man7/signal.7:170
7418 msgid ""
7419 "B<signalfd>(2)  returns a file descriptor that can be used to read "
7420 "information about signals that are delivered to the caller.  Each "
7421 "B<read>(2)  from this file descriptor blocks until one of the signals in the "
7422 "set specified in the B<signalfd>(2)  call is delivered to the caller.  The "
7423 "buffer returned by B<read>(2)  contains a structure describing the signal."
7424 msgstr ""
7425 "B<signalfd>(2)  が返すファイルディスクリプタを使うと、呼び出し元に配送された "
7426 "シグナルに関する情報を読み出すことができる。 このファイルディスクリプタから"
7427 "の B<read>(2)  は、 B<signalfd>(2)  の呼び出し時に指定されたシグナル集合のシ"
7428 "グナルの一つが呼び出し元に 配送されるまで停止 (block) する。 B<read>(2)  が返"
7429 "すバッファにはシグナルに関する情報を格納した構造体が入っている。"
7430
7431 #. type: SS
7432 #: build/C/man7/signal.7:170
7433 #, no-wrap
7434 msgid "Signal mask and pending signals"
7435 msgstr "シグナルマスクと処理待ちシグナル"
7436
7437 #. type: Plain text
7438 #: build/C/man7/signal.7:177
7439 msgid ""
7440 "A signal may be I<blocked>, which means that it will not be delivered until "
7441 "it is later unblocked.  Between the time when it is generated and when it is "
7442 "delivered a signal is said to be I<pending>."
7443 msgstr ""
7444 "シグナルは I<ブロック (block)> されることがある。ブロックされると、そのシグナ"
7445 "ルは その後ブロックを解除されるまで配送されなくなる。 シグナルが生成されてか"
7446 "ら配送されるまでの間、そのシグナルは I<処理待ち (pending)> であると呼ばれる。"
7447
7448 #. type: Plain text
7449 #: build/C/man7/signal.7:186
7450 msgid ""
7451 "Each thread in a process has an independent I<signal mask>, which indicates "
7452 "the set of signals that the thread is currently blocking.  A thread can "
7453 "manipulate its signal mask using B<pthread_sigmask>(3).  In a traditional "
7454 "single-threaded application, B<sigprocmask>(2)  can be used to manipulate "
7455 "the signal mask."
7456 msgstr ""
7457 "プロセス内の各スレッドは、それぞれ独立な I<シグナルマスク (signal mask)> を持"
7458 "つ。シグナルマスクはそのスレッドが現在ブロックしている シグナル集合を示すもの"
7459 "である。 スレッドは、 B<pthread_sigmask>(3)  を使って自分のシグナルマスクを操"
7460 "作できる。 伝統的なシングルスレッドのアプリケーションでは、 "
7461 "B<sigprocmask>(2)  を使って、シグナルマスクを操作できる。"
7462
7463 #. type: Plain text
7464 #: build/C/man7/signal.7:192 build/C/man2/sigprocmask.2:126
7465 msgid ""
7466 "A child created via B<fork>(2)  inherits a copy of its parent's signal mask; "
7467 "the signal mask is preserved across B<execve>(2)."
7468 msgstr ""
7469 "B<fork>(2)  経由で作成された子プロセスは親プロセスのシグナルマスクのコピーを"
7470 "継承する。 B<execve>(2)  の前後でシグナルマスクは保持される。"
7471
7472 #. type: Plain text
7473 #: build/C/man7/signal.7:209
7474 msgid ""
7475 "A signal may be generated (and thus pending)  for a process as a whole (e."
7476 "g., when sent using B<kill>(2))  or for a specific thread (e.g., certain "
7477 "signals, such as B<SIGSEGV> and B<SIGFPE>, generated as a consequence of "
7478 "executing a specific machine-language instruction are thread directed, as "
7479 "are signals targeted at a specific thread using B<pthread_kill>(3)).  A "
7480 "process-directed signal may be delivered to any one of the threads that does "
7481 "not currently have the signal blocked.  If more than one of the threads has "
7482 "the signal unblocked, then the kernel chooses an arbitrary thread to which "
7483 "to deliver the signal."
7484 msgstr ""
7485 "生成されるシグナル (したがって処理待ちとなるシグナル) には、 プロセス全体宛て"
7486 "と特定のスレッド宛てがある。 例えば、プロセス全体宛てのシグナルは "
7487 "B<kill>(2)  を使って送信される。 特定のマシン語の命令の実行の結果として生成さ"
7488 "れる、 B<SIGSEGV> や B<SIGFPE> などのシグナルは、スレッド宛てとなる。 また、 "
7489 "B<pthread_kill>(3)  を使って特定のスレッド宛てに生成されたシグナルも スレッド"
7490 "宛てとなる。 プロセス宛てのシグナルは、そのシグナルをブロックしていないスレッ"
7491 "ドのうち いずれかの一つに配送することができる。そのシグナルをブロックしていな"
7492 "い スレッドが複数ある場合、シグナルを配送するスレッドはカーネルが 無作為に選"
7493 "択する。"
7494
7495 #. type: Plain text
7496 #: build/C/man7/signal.7:216
7497 msgid ""
7498 "A thread can obtain the set of signals that it currently has pending using "
7499 "B<sigpending>(2).  This set will consist of the union of the set of pending "
7500 "process-directed signals and the set of signals pending for the calling "
7501 "thread."
7502 msgstr ""
7503 "スレッドは、 B<sigpending>(2)  を使って、現在処理待ちのシグナル集合を取得する"
7504 "ことができる。 この集合は、プロセス宛ての処理待ちシグナルと 呼び出したスレッ"
7505 "ド宛てのシグナルの両方から構成される。"
7506
7507 #. type: Plain text
7508 #: build/C/man7/signal.7:222 build/C/man2/sigpending.2:85
7509 msgid ""
7510 "A child created via B<fork>(2)  initially has an empty pending signal set; "
7511 "the pending signal set is preserved across an B<execve>(2)."
7512 msgstr ""
7513 "B<fork>(2)  経由で作成された子プロセスでは、処理待ちのシグナル集合は空の集合"
7514 "で初期化される。 B<execve>(2)  の前後で、処理待ちのシグナル集合は保持される。"
7515
7516 #. type: SS
7517 #: build/C/man7/signal.7:222
7518 #, no-wrap
7519 msgid "Standard signals"
7520 msgstr "標準シグナル"
7521
7522 #. type: Plain text
7523 #: build/C/man7/signal.7:234
7524 msgid ""
7525 "Linux supports the standard signals listed below.  Several signal numbers "
7526 "are architecture-dependent, as indicated in the \"Value\" column.  (Where "
7527 "three values are given, the first one is usually valid for alpha and sparc, "
7528 "the middle one for x86, arm, and most other architectures, and the last one "
7529 "for mips.  (Values for parisc are I<not> shown; see the Linux kernel source "
7530 "for signal numbering on that architecture.)  A - denotes that a signal is "
7531 "absent on the corresponding architecture.)"
7532 msgstr ""
7533 "Linux は以下に示す標準シグナルに対応している。シグナル番号の一部はアーキテク"
7534 "チャ依存であり、\"値\" 欄に示す通りである。 (3つの値が書かれているものは、 1"
7535 "つ目が alpha と sparc で通常有効な値、 真ん中が x86, arm や他のほとんどのアー"
7536 "キテクチャでの有効な値、最後が mips での値である。 (parisc での値は記載されて"
7537 "I<いない>。 parisc でのシグナル番号は Linux カーネルソースを参照してほし"
7538 "い)。 - はそのアーキテクチャにおいて対応するシグナルがないことを示す。)"
7539
7540 #. type: Plain text
7541 #: build/C/man7/signal.7:236
7542 msgid "First the signals described in the original POSIX.1-1990 standard."
7543 msgstr "最初に、POSIX.1-1990 に定義されているシグナルを示す。"
7544
7545 #. type: tbl table
7546 #: build/C/man7/signal.7:240 build/C/man7/signal.7:276
7547 #: build/C/man7/signal.7:305
7548 #, no-wrap
7549 msgid "Signal\tValue\tAction\tComment\n"
7550 msgstr "シグナル\t値\t動作\tコメント\n"
7551
7552 #. type: tbl table
7553 #: build/C/man7/signal.7:241
7554 #, no-wrap
7555 msgid "SIGHUP\t\\01\tTerm\tHangup detected on controlling terminal\n"
7556 msgstr "SIGHUP\t\\01\tTerm\t制御端末(controlling terminal)のハングアップ検出、\n"
7557
7558 #. type: tbl table
7559 #: build/C/man7/signal.7:242
7560 #, no-wrap
7561 msgid "\t\t\tor death of controlling process\n"
7562 msgstr "\t\t\tまたは制御しているプロセスの死\n"
7563
7564 #. type: tbl table
7565 #: build/C/man7/signal.7:243
7566 #, no-wrap
7567 msgid "SIGINT\t\\02\tTerm\tInterrupt from keyboard\n"
7568 msgstr "SIGINT\t\\02\tTerm\tキーボードからの割り込み (Interrupt)\n"
7569
7570 #. type: tbl table
7571 #: build/C/man7/signal.7:244
7572 #, no-wrap
7573 msgid "SIGQUIT\t\\03\tCore\tQuit from keyboard\n"
7574 msgstr "SIGQUIT\t\\03\tCore\tキーボードによる中止 (Quit)\n"
7575
7576 #. type: tbl table
7577 #: build/C/man7/signal.7:245
7578 #, no-wrap
7579 msgid "SIGILL\t\\04\tCore\tIllegal Instruction\n"
7580 msgstr "SIGILL\t\\04\tCore\t不正な命令\n"
7581
7582 #. type: tbl table
7583 #: build/C/man7/signal.7:246
7584 #, no-wrap
7585 msgid "SIGABRT\t\\06\tCore\tAbort signal from B<abort>(3)\n"
7586 msgstr "SIGABRT\t\\06\tCore\tB<abort>(3) からの中断 (Abort) シグナル\n"
7587
7588 #. type: tbl table
7589 #: build/C/man7/signal.7:247
7590 #, no-wrap
7591 msgid "SIGFPE\t\\08\tCore\tFloating point exception\n"
7592 msgstr "SIGFPE\t\\08\tCore\t浮動小数点例外\n"
7593
7594 #. type: tbl table
7595 #: build/C/man7/signal.7:248
7596 #, no-wrap
7597 msgid "SIGKILL\t\\09\tTerm\tKill signal\n"
7598 msgstr "SIGKILL\t\\09\tTerm\tKill シグナル\n"
7599
7600 #. type: tbl table
7601 #: build/C/man7/signal.7:249
7602 #, no-wrap
7603 msgid "SIGSEGV\t11\tCore\tInvalid memory reference\n"
7604 msgstr "SIGSEGV\t11\tCore\t不正なメモリ参照\n"
7605
7606 #. type: tbl table
7607 #: build/C/man7/signal.7:250
7608 #, no-wrap
7609 msgid "SIGPIPE\t13\tTerm\tBroken pipe: write to pipe with no\n"
7610 msgstr "SIGPIPE\t13\tTerm\tパイプ破壊:\n"
7611
7612 #. type: tbl table
7613 #: build/C/man7/signal.7:251
7614 #, no-wrap
7615 msgid "\t\t\treaders\n"
7616 msgstr "\t\t\t読み手の無いパイプへの書き出し\n"
7617
7618 #. type: tbl table
7619 #: build/C/man7/signal.7:252
7620 #, no-wrap
7621 msgid "SIGALRM\t14\tTerm\tTimer signal from B<alarm>(2)\n"
7622 msgstr "SIGALRM\t14\tTerm\tB<alarm>(2) からのタイマーシグナル\n"
7623
7624 #. type: tbl table
7625 #: build/C/man7/signal.7:253
7626 #, no-wrap
7627 msgid "SIGTERM\t15\tTerm\tTermination signal\n"
7628 msgstr "SIGTERM\t15\tTerm\t終了 (termination) シグナル\n"
7629
7630 #. type: tbl table
7631 #: build/C/man7/signal.7:254
7632 #, no-wrap
7633 msgid "SIGUSR1\t30,10,16\tTerm\tUser-defined signal 1\n"
7634 msgstr "SIGUSR1\t30,10,16\tTerm\tユーザ定義シグナル 1\n"
7635
7636 #. type: tbl table
7637 #: build/C/man7/signal.7:255
7638 #, no-wrap
7639 msgid "SIGUSR2\t31,12,17\tTerm\tUser-defined signal 2\n"
7640 msgstr "SIGUSR2\t31,12,17\tTerm\tユーザ定義シグナル 2\n"
7641
7642 #. type: tbl table
7643 #: build/C/man7/signal.7:256
7644 #, no-wrap
7645 msgid "SIGCHLD\t20,17,18\tIgn\tChild stopped or terminated\n"
7646 msgstr "SIGCHLD\t20,17,18\tIgn\t子プロセスの一時停止 (stop) または終了\n"
7647
7648 #. type: tbl table
7649 #: build/C/man7/signal.7:257
7650 #, no-wrap
7651 msgid "SIGCONT\t19,18,25\tCont\tContinue if stopped\n"
7652 msgstr "SIGCONT\t19,18,25\tCont\t一時停止 (stop) からの再開\n"
7653
7654 #. type: tbl table
7655 #: build/C/man7/signal.7:258
7656 #, no-wrap
7657 msgid "SIGSTOP\t17,19,23\tStop\tStop process\n"
7658 msgstr "SIGSTOP\t17,19,23\tStop\tプロセスの一時停止 (stop)\n"
7659
7660 #. type: tbl table
7661 #: build/C/man7/signal.7:259
7662 #, no-wrap
7663 msgid "SIGTSTP\t18,20,24\tStop\tStop typed at terminal\n"
7664 msgstr "SIGTSTP\t18,20,24\tStop\t端末より入力された一時停止 (stop)\n"
7665
7666 #. type: tbl table
7667 #: build/C/man7/signal.7:260
7668 #, no-wrap
7669 msgid "SIGTTIN\t21,21,26\tStop\tTerminal input for background process\n"
7670 msgstr "SIGTTIN\t21,21,26\tStop\tバックグランドプロセスの端末入力\n"
7671
7672 #. type: tbl table
7673 #: build/C/man7/signal.7:261
7674 #, no-wrap
7675 msgid "SIGTTOU\t22,22,27\tStop\tTerminal output for background process\n"
7676 msgstr "SIGTTOU\t22,22,27\tStop\tバックグランドプロセスの端末出力\n"
7677
7678 #. type: Plain text
7679 #: build/C/man7/signal.7:269
7680 msgid ""
7681 "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught, blocked, or ignored."
7682 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> はキャッチ、ブロック、無視できない。"
7683
7684 #. type: Plain text
7685 #: build/C/man7/signal.7:272
7686 msgid ""
7687 "Next the signals not in the POSIX.1-1990 standard but described in SUSv2 and "
7688 "POSIX.1-2001."
7689 msgstr ""
7690 "次に、 POSIX.1-1990 標準にはないが、 SUSv2 と POSIX.1-2001 に記述されているシ"
7691 "グナルを示す。"
7692
7693 #. type: tbl table
7694 #: build/C/man7/signal.7:277
7695 #, no-wrap
7696 msgid "SIGBUS\t10,7,10\tCore\tBus error (bad memory access)\n"
7697 msgstr "SIGBUS\t10,7,10\tCore\tバスエラー (不正なメモリアクセス)\n"
7698
7699 #. type: tbl table
7700 #: build/C/man7/signal.7:278
7701 #, no-wrap
7702 msgid "SIGPOLL\t\tTerm\tPollable event (Sys V).\n"
7703 msgstr "SIGPOLL\t\tTerm\tポーリング可能なイベント (Sys V)。\n"
7704
7705 #. type: tbl table
7706 #: build/C/man7/signal.7:279
7707 #, no-wrap
7708 msgid "\t\t\tSynonym for B<SIGIO>\n"
7709 msgstr "\t\t\tB<SIGIO> と同義\n"
7710
7711 #. type: tbl table
7712 #: build/C/man7/signal.7:280
7713 #, no-wrap
7714 msgid "SIGPROF\t27,27,29\tTerm\tProfiling timer expired\n"
7715 msgstr "SIGPROF\t27,27,29\tTerm\tprofiling タイマの時間切れ\n"
7716
7717 #. type: tbl table
7718 #: build/C/man7/signal.7:281
7719 #, no-wrap
7720 msgid "SIGSYS\t12,31,12\tCore\tBad argument to routine (SVr4)\n"
7721 msgstr "SIGSYS\t12,31,12\tCore\tルーチンへの引き数が不正 (SVr4)\n"
7722
7723 #. type: tbl table
7724 #: build/C/man7/signal.7:282
7725 #, no-wrap
7726 msgid "SIGTRAP\t5\tCore\tTrace/breakpoint trap\n"
7727 msgstr "SIGTRAP\t5\tCore\tトレース/ブレークポイント トラップ\n"
7728
7729 #. type: tbl table
7730 #: build/C/man7/signal.7:283
7731 #, no-wrap
7732 msgid "SIGURG\t16,23,21\tIgn\tUrgent condition on socket (4.2BSD)\n"
7733 msgstr "SIGURG\t16,23,21\tIgn\tソケットの緊急事態 (urgent condition) (4.2BSD)\n"
7734
7735 #. type: tbl table
7736 #: build/C/man7/signal.7:284
7737 #, no-wrap
7738 msgid "SIGVTALRM\t26,26,28\tTerm\tVirtual alarm clock (4.2BSD)\n"
7739 msgstr "SIGVTALRM\t26,26,28\tTerm\t仮想アラームクロック (4.2BSD)\n"
7740
7741 #. type: tbl table
7742 #: build/C/man7/signal.7:285
7743 #, no-wrap
7744 msgid "SIGXCPU\t24,24,30\tCore\tCPU time limit exceeded (4.2BSD)\n"
7745 msgstr "SIGXCPU\t24,24,30\tCore\tCPU時間制限超過 (4.2BSD)\n"
7746
7747 #. type: tbl table
7748 #: build/C/man7/signal.7:286
7749 #, no-wrap
7750 msgid "SIGXFSZ\t25,25,31\tCore\tFile size limit exceeded (4.2BSD)\n"
7751 msgstr "SIGXFSZ\t25,25,31\tCore\tファイルサイズ制限の超過 (4.2BSD)\n"
7752
7753 #. type: Plain text
7754 #: build/C/man7/signal.7:299
7755 msgid ""
7756 "Up to and including Linux 2.2, the default behavior for B<SIGSYS>, "
7757 "B<SIGXCPU>, B<SIGXFSZ>, and (on architectures other than SPARC and MIPS)  "
7758 "B<SIGBUS> was to terminate the process (without a core dump).  (On some "
7759 "other UNIX systems the default action for B<SIGXCPU> and B<SIGXFSZ> is to "
7760 "terminate the process without a core dump.)  Linux 2.4 conforms to the "
7761 "POSIX.1-2001 requirements for these signals, terminating the process with a "
7762 "core dump."
7763 msgstr ""
7764 "Linux 2.2 以前では、 B<SIGSYS>, B<SIGXCPU>, B<SIGXFSZ> および SPARC と MIPS "
7765 "以外のアーキテクチャでの B<SIGBUS> のデフォルトの振る舞いは (コアダンプ出力な"
7766 "しの) プロセス終了であった。 (他の UNIX システムにも B<SIGXCPU> と "
7767 "B<SIGXFSZ> のデフォルトの動作がコアダンプなしのプロセス終了のものがある。)  "
7768 "Linux 2.4 では、POSIX.1-2001 での要求仕様に準拠して、 これらのシグナルで、プ"
7769 "ロセスを終了させ、コアダンプを出力する ようになっている。"
7770
7771 #. type: Plain text
7772 #: build/C/man7/signal.7:301
7773 msgid "Next various other signals."
7774 msgstr "次にその他の各種シグナルを示す。"
7775
7776 #. type: tbl table
7777 #: build/C/man7/signal.7:306
7778 #, no-wrap
7779 msgid "SIGIOT\t6\tCore\tIOT trap. A synonym for B<SIGABRT>\n"
7780 msgstr "SIGIOT\t6\tCore\tIOT トラップ。B<SIGABRT> と同義\n"
7781
7782 #. type: tbl table
7783 #: build/C/man7/signal.7:307
7784 #, no-wrap
7785 msgid "SIGEMT\t7,-,7\tTerm\n"
7786 msgstr "SIGEMT\t7,-,7\tTerm\n"
7787
7788 #. type: tbl table
7789 #: build/C/man7/signal.7:308
7790 #, no-wrap
7791 msgid "SIGSTKFLT\t-,16,-\tTerm\tStack fault on coprocessor (unused)\n"
7792 msgstr "SIGSTKFLT\t-,16,-\tA\t数値演算プロセッサにおけるスタックフォルト (未使用)\n"
7793
7794 #. type: tbl table
7795 #: build/C/man7/signal.7:309
7796 #, no-wrap
7797 msgid "SIGIO\t23,29,22\tTerm\tI/O now possible (4.2BSD)\n"
7798 msgstr "SIGIO\t23,29,22\tTerm\t入出力が可能になった (4.2BSD)\n"
7799
7800 #. type: tbl table
7801 #: build/C/man7/signal.7:310
7802 #, no-wrap
7803 msgid "SIGCLD\t-,-,18\tIgn\tA synonym for B<SIGCHLD>\n"
7804 msgstr "SIGCLD\t-,-,18\tIgn\tB<SIGCHLD> と同義\n"
7805
7806 #. type: tbl table
7807 #: build/C/man7/signal.7:311
7808 #, no-wrap
7809 msgid "SIGPWR\t29,30,19\tTerm\tPower failure (System V)\n"
7810 msgstr "SIGPWR\t29,30,19\tTerm\t電源喪失 (Power failure) (System V)\n"
7811
7812 #. type: tbl table
7813 #: build/C/man7/signal.7:312
7814 #, no-wrap
7815 msgid "SIGINFO\t29,-,-\t\tA synonym for B<SIGPWR>\n"
7816 msgstr "SIGINFO\t29,-,-\t \tB<SIGPWR> と同義\n"
7817
7818 #. type: tbl table
7819 #: build/C/man7/signal.7:313
7820 #, no-wrap
7821 msgid "SIGLOST\t-,-,-\tTerm\tFile lock lost (unused)\n"
7822 msgstr "SIGLOST\t-,-,-\tTerm\tファイルロックが失われた (未使用)\n"
7823
7824 #. type: tbl table
7825 #: build/C/man7/signal.7:314
7826 #, no-wrap
7827 msgid "SIGWINCH\t28,28,20\tIgn\tWindow resize signal (4.3BSD, Sun)\n"
7828 msgstr "SIGWINCH\t28,28,20\tIgn\tウィンドウ リサイズ シグナル (4.3BSD, Sun)\n"
7829
7830 #. type: tbl table
7831 #: build/C/man7/signal.7:315
7832 #, no-wrap
7833 msgid "SIGUNUSED\t-,31,-\tCore\tSynonymous with B<SIGSYS>\n"
7834 msgstr "SIGUNUSED\t-,31,-\tCore\tB<SIGSYS> と同義\n"
7835
7836 #. type: Plain text
7837 #: build/C/man7/signal.7:325
7838 msgid ""
7839 "(Signal 29 is B<SIGINFO> / B<SIGPWR> on an alpha but B<SIGLOST> on a sparc.)"
7840 msgstr ""
7841 "(シグナル 29 は alpha では B<SIGINFO> / B<SIGPWR> だが、sparc では "
7842 "B<SIGLOST> である。)"
7843
7844 #. type: Plain text
7845 #: build/C/man7/signal.7:331
7846 msgid ""
7847 "B<SIGEMT> is not specified in POSIX.1-2001, but nevertheless appears on most "
7848 "other UNIX systems, where its default action is typically to terminate the "
7849 "process with a core dump."
7850 msgstr ""
7851 "B<SIGEMT> は POSIX.1-2001 に規定されていないが、 その他の多くの UNIX システム"
7852 "に存在する。 デフォルトの動作は多くの場合、コアダンプ出力を伴うプロセスの終了"
7853 "である。"
7854
7855 #. type: Plain text
7856 #: build/C/man7/signal.7:335
7857 msgid ""
7858 "B<SIGPWR> (which is not specified in POSIX.1-2001) is typically ignored by "
7859 "default on those other UNIX systems where it appears."
7860 msgstr ""
7861 "B<SIGPWR> は (POSIX.1-2001 に規定されていないが) このシグナルが存在する 他の "
7862 "UNIX システムでは多くの場合、デフォルト動作は無視である。"
7863
7864 #. type: Plain text
7865 #: build/C/man7/signal.7:339
7866 msgid ""
7867 "B<SIGIO> (which is not specified in POSIX.1-2001) is ignored by default on "
7868 "several other UNIX systems."
7869 msgstr ""
7870 "B<SIGIO> は (POSIX.1-2001 に規定されていないが) いくつかの他の UNIX システム"
7871 "では デフォルト動作は無視である。"
7872
7873 #.  parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31
7874 #. type: Plain text
7875 #: build/C/man7/signal.7:346
7876 msgid ""
7877 "Where defined, B<SIGUNUSED> is synonymous with B<SIGSYS> on most "
7878 "architectures."
7879 msgstr ""
7880 "B<SIGUNUSED> が定義されている場合には、ほとんどのアーキテクチャで B<SIGSYS> "
7881 "の同義語となっている。"
7882
7883 #. type: SS
7884 #: build/C/man7/signal.7:346
7885 #, no-wrap
7886 msgid "Real-time signals"
7887 msgstr "リアルタイムシグナル"
7888
7889 #. type: Plain text
7890 #: build/C/man7/signal.7:356
7891 msgid ""
7892 "Linux supports real-time signals as originally defined in the POSIX.1b real-"
7893 "time extensions (and now included in POSIX.1-2001).  The range of supported "
7894 "real-time signals is defined by the macros B<SIGRTMIN> and B<SIGRTMAX>.  "
7895 "POSIX.1-2001 requires that an implementation support at least "
7896 "B<_POSIX_RTSIG_MAX> (8) real-time signals."
7897 msgstr ""
7898 "Linux はリアルタイムシグナルをサポートしている。 リアルタイムシグナルは元々 "
7899 "POSIX.1b のリアルタイム拡張で定義されて いるものであり、現在では "
7900 "POSIX.1-2001 に含まれている。 対応しているリアルタイムシグナルの範囲は、マク"
7901 "ロ B<SIGRTMIN> と B<SIGRTMAX> で定義される。 POSIX.1-2001 では、少なくとも "
7902 "B<_POSIX_RTSIG_MAX> (8) 個のリアルタイムシグナルに対応した実装が要求されてい"
7903 "る。"
7904
7905 #. type: Plain text
7906 #: build/C/man7/signal.7:378
7907 msgid ""
7908 "The Linux kernel supports a range of 32 different real-time signals, "
7909 "numbered 33 to 64.  However, the glibc POSIX threads implementation "
7910 "internally uses two (for NPTL) or three (for LinuxThreads) real-time signals "
7911 "(see B<pthreads>(7)), and adjusts the value of B<SIGRTMIN> suitably (to 34 "
7912 "or 35).  Because the range of available real-time signals varies according "
7913 "to the glibc threading implementation (and this variation can occur at run "
7914 "time according to the available kernel and glibc), and indeed the range of "
7915 "real-time signals varies across UNIX systems, programs should I<never refer "
7916 "to real-time signals using hard-coded numbers>, but instead should always "
7917 "refer to real-time signals using the notation B<SIGRTMIN>+n, and include "
7918 "suitable (run-time) checks that B<SIGRTMIN>+n does not exceed B<SIGRTMAX>."
7919 msgstr ""
7920 "Linux は、32 個の異なるリアルタイムシグナルに対応しており、 その番号は 33 か"
7921 "ら 64 である。 しかしながら、glibc の POSIX スレッド実装は、 内部で 2個 "
7922 "(NPTL の場合) か 3個 (LinuxThreads の場合) の リアルタイムシグナルを使用して"
7923 "おり (B<pthreads>(7)  参照)、 B<SIGRTMIN> の値を適切に (34 か 35 に) 調整す"
7924 "る。 利用可能なリアルタイムシグナルの範囲は glibc のスレッド実装により 異なる"
7925 "し (使用するカーネルと glibc により実行時にも変化する)、 UNIX システムの種類"
7926 "によっても異なる。したがって、 プログラムでは「ハードコーディングした数字を"
7927 "使ってのリアルタイムシグナルの 参照は決してすべきではなく」、代わりに "
7928 "B<SIGRTMIN>+n の形で参照すべきである。また、 B<SIGRTMIN>+n が B<SIGRTMAX> を"
7929 "超えていないかのチェックを (実行時に) 適切に行うべきである。"
7930
7931 #. type: Plain text
7932 #: build/C/man7/signal.7:382
7933 msgid ""
7934 "Unlike standard signals, real-time signals have no predefined meanings: the "
7935 "entire set of real-time signals can be used for application-defined purposes."
7936 msgstr ""
7937 "標準シグナルと異なり、リアルタイムシグナルには 事前に定義された意味はない。 "
7938 "リアルタイムシグナルの全部をアプリケーションで定義した用途に使える。"
7939
7940 #. type: Plain text
7941 #: build/C/man7/signal.7:385
7942 msgid ""
7943 "The default action for an unhandled real-time signal is to terminate the "
7944 "receiving process."
7945 msgstr ""
7946 "ハンドリングしないリアルタイムシグナルのデフォルトの動作は 受信したプロセスの"
7947 "終了である。"
7948
7949 #. type: Plain text
7950 #: build/C/man7/signal.7:387
7951 msgid "Real-time signals are distinguished by the following:"
7952 msgstr "リアルタイムシグナルは以下の特徴がある:"
7953
7954 #. type: Plain text
7955 #: build/C/man7/signal.7:391
7956 msgid ""
7957 "Multiple instances of real-time signals can be queued.  By contrast, if "
7958 "multiple instances of a standard signal are delivered while that signal is "
7959 "currently blocked, then only one instance is queued."
7960 msgstr ""
7961 "リアルタイムシグナルは複数の実体をキューに入れることができる。 一方、標準シグ"
7962 "ナルの場合、そのシグナルがブロックされている間に 同じシグナルの複数のインスタ"
7963 "ンスが配送されても、 1 つだけがキューに入れられる。"
7964
7965 #. type: Plain text
7966 #: build/C/man7/signal.7:411
7967 msgid ""
7968 "If the signal is sent using B<sigqueue>(3), an accompanying value (either an "
7969 "integer or a pointer) can be sent with the signal.  If the receiving process "
7970 "establishes a handler for this signal using the B<SA_SIGINFO> flag to "
7971 "B<sigaction>(2), then it can obtain this data via the I<si_value> field of "
7972 "the I<siginfo_t> structure passed as the second argument to the handler.  "
7973 "Furthermore, the I<si_pid> and I<si_uid> fields of this structure can be "
7974 "used to obtain the PID and real user ID of the process sending the signal."
7975 msgstr ""
7976 "シグナルが B<sigqueue>(3)  を用いて送信された場合、 付属データ (整数かポイン"
7977 "タ) をシグナルと共に送信できる。 受信側プロセスが B<sigaction>(2)  に "
7978 "B<SA_SIGINFO> フラグを指定してシグナルハンドラを設定した場合、 このデータは "
7979 "I<siginfo_t> 構造体の I<si_value> フィールド経由でハンドラの第 2 引き数として"
7980 "渡され、 利用することができる。 さらに、この構造体の I<si_pid> と I<si_uid> "
7981 "フィールドでシグナルを送信したプロセスの PID と実ユーザ ID を 得ることができ"
7982 "る。"
7983
7984 #. type: Plain text
7985 #: build/C/man7/signal.7:420
7986 msgid ""
7987 "Real-time signals are delivered in a guaranteed order.  Multiple real-time "
7988 "signals of the same type are delivered in the order they were sent.  If "
7989 "different real-time signals are sent to a process, they are delivered "
7990 "starting with the lowest-numbered signal.  (I.e., low-numbered signals have "
7991 "highest priority.)  By contrast, if multiple standard signals are pending "
7992 "for a process, the order in which they are delivered is unspecified."
7993 msgstr ""
7994 "リアルタイムシグナルでは配送される順序が保証される。 同じタイプのリアルタイム"
7995 "シグナルは送信された順番に到着する。 異なるリアルタイムシグナルが一つのプロセ"
7996 "スに送信された場合、 番号の小さいシグナルから先に到着する。 (つまり小さい番号"
7997 "のシグナルが高い優先順位を持つ。)  対照的に、一つのプロセスに対して複数の標準"
7998 "シグナルが処理待ちとなった場合、 これらのシグナルが配送される順序は不定であ"
7999 "る。"
8000
8001 #. type: Plain text
8002 #: build/C/man7/signal.7:425
8003 msgid ""
8004 "If both standard and real-time signals are pending for a process, POSIX "
8005 "leaves it unspecified which is delivered first.  Linux, like many other "
8006 "implementations, gives priority to standard signals in this case."
8007 msgstr ""
8008 "一つのプロセスに対して標準シグナルとリアルタイムシグナルの両方が 処理待ちの場"
8009 "合、POSIX はどちらが先に配送されるかを規定していない。 Linux では、他の多くの"
8010 "実装と同様、このような場合には 標準シグナルが優先される。"
8011
8012 #. type: Plain text
8013 #: build/C/man7/signal.7:448
8014 msgid ""
8015 "According to POSIX, an implementation should permit at least "
8016 "B<_POSIX_SIGQUEUE_MAX> (32) real-time signals to be queued to a process.  "
8017 "However, Linux does things differently.  In kernels up to and including "
8018 "2.6.7, Linux imposes a system-wide limit on the number of queued real-time "
8019 "signals for all processes.  This limit can be viewed and (with privilege) "
8020 "changed via the I</proc/sys/kernel/rtsig-max> file.  A related file, I</proc/"
8021 "sys/kernel/rtsig-nr>, can be used to find out how many real-time signals are "
8022 "currently queued.  In Linux 2.6.8, these I</proc> interfaces were replaced "
8023 "by the B<RLIMIT_SIGPENDING> resource limit, which specifies a per-user limit "
8024 "for queued signals; see B<setrlimit>(2)  for further details."
8025 msgstr ""
8026 "POSIX によれば、1 プロセス毎に最低 B<_POSIX_SIGQUEUE_MAX> (32) 個のリアルタイ"
8027 "ムシグナルをキューに入れられるべきとしている。 しかし、 Linux では違った実装"
8028 "になっている。カーネル 2.6.7 までは (2.6.7 を含む)、全プロセスでキューに入っ"
8029 "ているリアルタイムシグナル の数の合計についてシステム全体での制限がある。 こ"
8030 "の制限は I</proc/sys/kernel/rtsig-max> ファイルで見ることができ、 (権限があれ"
8031 "ば) 変更もできる。 関係するファイルとして、 I</proc/sys/kernel/rtsig-nr> を見"
8032 "ることで、いくつのリアルタイムシグナルが現在キューに入っているかを 知ることが"
8033 "できる。 Linux 2.6.8 で、これらの I</proc> 経由のインターフェースは、 "
8034 "B<RLIMIT_SIGPENDING> リソース制限に置き換えられた。 これは、キューに入るシグ"
8035 "ナル数に関してユーザ単位に 上限を指定するものである。 詳しくは "
8036 "B<setrlimit>(2)  を参照。"
8037
8038 #. type: SS
8039 #: build/C/man7/signal.7:448
8040 #, no-wrap
8041 msgid "Async-signal-safe functions"
8042 msgstr "非同期シグナルで安全な関数 (async-signal-safe functions)"
8043
8044 #. type: Plain text
8045 #: build/C/man7/signal.7:457
8046 msgid ""
8047 "A signal handler function must be very careful, since processing elsewhere "
8048 "may be interrupted at some arbitrary point in the execution of the program.  "
8049 "POSIX has the concept of \"safe function\".  If a signal interrupts the "
8050 "execution of an unsafe function, and I<handler> calls an unsafe function, "
8051 "then the behavior of the program is undefined."
8052 msgstr ""
8053 "シグナルハンドラ関数には非常に注意しなければならない。 他の場所の処理はプログ"
8054 "ラム実行の任意の箇所で中断される可能性があるためである。 POSIX には「安全な関"
8055 "数 (safe function)」という概念がある。 シグナルが安全でない関数の実行を中断"
8056 "し、かつ I<handler> が安全でない関数を呼び出した場合、プログラムの挙動は未定"
8057 "義である。"
8058
8059 #. type: Plain text
8060 #: build/C/man7/signal.7:461
8061 msgid ""
8062 "POSIX.1-2004 (also known as POSIX.1-2001 Technical Corrigendum 2)  requires "
8063 "an implementation to guarantee that the following functions can be safely "
8064 "called inside a signal handler:"
8065 msgstr ""
8066 "POSIX.1-2004 (POSIX.1-2001 Technical Corrigendum (正誤表) 2 とも言う) では、 "
8067 "シグナルハンドラ内での安全な呼び出しを保証することが必須の関数として 以下が規"
8068 "定されている。"
8069
8070 #. type: Plain text
8071 #: build/C/man7/signal.7:582
8072 #, no-wrap
8073 msgid ""
8074 "_Exit()\n"
8075 "_exit()\n"
8076 "abort()\n"
8077 "accept()\n"
8078 "access()\n"
8079 "aio_error()\n"
8080 "aio_return()\n"
8081 "aio_suspend()\n"
8082 "alarm()\n"
8083 "bind()\n"
8084 "cfgetispeed()\n"
8085 "cfgetospeed()\n"
8086 "cfsetispeed()\n"
8087 "cfsetospeed()\n"
8088 "chdir()\n"
8089 "chmod()\n"
8090 "chown()\n"
8091 "clock_gettime()\n"
8092 "close()\n"
8093 "connect()\n"
8094 "creat()\n"
8095 "dup()\n"
8096 "dup2()\n"
8097 "execle()\n"
8098 "execve()\n"
8099 "fchmod()\n"
8100 "fchown()\n"
8101 "fcntl()\n"
8102 "fdatasync()\n"
8103 "fork()\n"
8104 "fpathconf()\n"
8105 "fstat()\n"
8106 "fsync()\n"
8107 "ftruncate()\n"
8108 "getegid()\n"
8109 "geteuid()\n"
8110 "getgid()\n"
8111 "getgroups()\n"
8112 "getpeername()\n"
8113 "getpgrp()\n"
8114 "getpid()\n"
8115 "getppid()\n"
8116 "getsockname()\n"
8117 "getsockopt()\n"
8118 "getuid()\n"
8119 "kill()\n"
8120 "link()\n"
8121 "listen()\n"
8122 "lseek()\n"
8123 "lstat()\n"
8124 "mkdir()\n"
8125 "mkfifo()\n"
8126 "open()\n"
8127 "pathconf()\n"
8128 "pause()\n"
8129 "pipe()\n"
8130 "poll()\n"
8131 "posix_trace_event()\n"
8132 "pselect()\n"
8133 "raise()\n"
8134 "read()\n"
8135 "readlink()\n"
8136 "recv()\n"
8137 "recvfrom()\n"
8138 "recvmsg()\n"
8139 "rename()\n"
8140 "rmdir()\n"
8141 "select()\n"
8142 "sem_post()\n"
8143 "send()\n"
8144 "sendmsg()\n"
8145 "sendto()\n"
8146 "setgid()\n"
8147 "setpgid()\n"
8148 "setsid()\n"
8149 "setsockopt()\n"
8150 "setuid()\n"
8151 "shutdown()\n"
8152 "sigaction()\n"
8153 "sigaddset()\n"
8154 "sigdelset()\n"
8155 "sigemptyset()\n"
8156 "sigfillset()\n"
8157 "sigismember()\n"
8158 "signal()\n"
8159 "sigpause()\n"
8160 "sigpending()\n"
8161 "sigprocmask()\n"
8162 "sigqueue()\n"
8163 "sigset()\n"
8164 "sigsuspend()\n"
8165 "sleep()\n"
8166 "sockatmark()\n"
8167 "socket()\n"
8168 "socketpair()\n"
8169 "stat()\n"
8170 "symlink()\n"
8171 "sysconf()\n"
8172 "tcdrain()\n"
8173 "tcflow()\n"
8174 "tcflush()\n"
8175 "tcgetattr()\n"
8176 "tcgetpgrp()\n"
8177 "tcsendbreak()\n"
8178 "tcsetattr()\n"
8179 "tcsetpgrp()\n"
8180 "time()\n"
8181 "timer_getoverrun()\n"
8182 "timer_gettime()\n"
8183 "timer_settime()\n"
8184 "times()\n"
8185 "umask()\n"
8186 "uname()\n"
8187 "unlink()\n"
8188 "utime()\n"
8189 "wait()\n"
8190 "waitpid()\n"
8191 "write()\n"
8192 msgstr ""
8193 "_Exit()\n"
8194 "_exit()\n"
8195 "abort()\n"
8196 "accept()\n"
8197 "access()\n"
8198 "aio_error()\n"
8199 "aio_return()\n"
8200 "aio_suspend()\n"
8201 "alarm()\n"
8202 "bind()\n"
8203 "cfgetispeed()\n"
8204 "cfgetospeed()\n"
8205 "cfsetispeed()\n"
8206 "cfsetospeed()\n"
8207 "chdir()\n"
8208 "chmod()\n"
8209 "chown()\n"
8210 "clock_gettime()\n"
8211 "close()\n"
8212 "connect()\n"
8213 "creat()\n"
8214 "dup()\n"
8215 "dup2()\n"
8216 "execle()\n"
8217 "execve()\n"
8218 "fchmod()\n"
8219 "fchown()\n"
8220 "fcntl()\n"
8221 "fdatasync()\n"
8222 "fork()\n"
8223 "fpathconf()\n"
8224 "fstat()\n"
8225 "fsync()\n"
8226 "ftruncate()\n"
8227 "getegid()\n"
8228 "geteuid()\n"
8229 "getgid()\n"
8230 "getgroups()\n"
8231 "getpeername()\n"
8232 "getpgrp()\n"
8233 "getpid()\n"
8234 "getppid()\n"
8235 "getsockname()\n"
8236 "getsockopt()\n"
8237 "getuid()\n"
8238 "kill()\n"
8239 "link()\n"
8240 "listen()\n"
8241 "lseek()\n"
8242 "lstat()\n"
8243 "mkdir()\n"
8244 "mkfifo()\n"
8245 "open()\n"
8246 "pathconf()\n"
8247 "pause()\n"
8248 "pipe()\n"
8249 "poll()\n"
8250 "posix_trace_event()\n"
8251 "pselect()\n"
8252 "raise()\n"
8253 "read()\n"
8254 "readlink()\n"
8255 "recv()\n"
8256 "recvfrom()\n"
8257 "recvmsg()\n"
8258 "rename()\n"
8259 "rmdir()\n"
8260 "select()\n"
8261 "sem_post()\n"
8262 "send()\n"
8263 "sendmsg()\n"
8264 "sendto()\n"
8265 "setgid()\n"
8266 "setpgid()\n"
8267 "setsid()\n"
8268 "setsockopt()\n"
8269 "setuid()\n"
8270 "shutdown()\n"
8271 "sigaction()\n"
8272 "sigaddset()\n"
8273 "sigdelset()\n"
8274 "sigemptyset()\n"
8275 "sigfillset()\n"
8276 "sigismember()\n"
8277 "signal()\n"
8278 "sigpause()\n"
8279 "sigpending()\n"
8280 "sigprocmask()\n"
8281 "sigqueue()\n"
8282 "sigset()\n"
8283 "sigsuspend()\n"
8284 "sleep()\n"
8285 "sockatmark()\n"
8286 "socket()\n"
8287 "socketpair()\n"
8288 "stat()\n"
8289 "symlink()\n"
8290 "sysconf()\n"
8291 "tcdrain()\n"
8292 "tcflow()\n"
8293 "tcflush()\n"
8294 "tcgetattr()\n"
8295 "tcgetpgrp()\n"
8296 "tcsendbreak()\n"
8297 "tcsetattr()\n"
8298 "tcsetpgrp()\n"
8299 "time()\n"
8300 "timer_getoverrun()\n"
8301 "timer_gettime()\n"
8302 "timer_settime()\n"
8303 "times()\n"
8304 "umask()\n"
8305 "uname()\n"
8306 "unlink()\n"
8307 "utime()\n"
8308 "wait()\n"
8309 "waitpid()\n"
8310 "write()\n"
8311
8312 #. type: Plain text
8313 #: build/C/man7/signal.7:587
8314 msgid ""
8315 "POSIX.1-2008 removes fpathconf(), pathconf(), and sysconf()  from the above "
8316 "list, and adds the following functions:"
8317 msgstr ""
8318 "POSIX.1-2008 では、上記のリストのうち fpathconf(), pathconf(), sysconf()  が"
8319 "削除され、以下の関数が追加された。"
8320
8321 #. type: Plain text
8322 #: build/C/man7/signal.7:610
8323 #, no-wrap
8324 msgid ""
8325 "execl()\n"
8326 "execv()\n"
8327 "faccessat()\n"
8328 "fchmodat()\n"
8329 "fchownat()\n"
8330 "fexecve()\n"
8331 "fstatat()\n"
8332 "futimens()\n"
8333 "linkat()\n"
8334 "mkdirat()\n"
8335 "mkfifoat()\n"
8336 "mknod()\n"
8337 "mknodat()\n"
8338 "openat()\n"
8339 "readlinkat()\n"
8340 "renameat()\n"
8341 "symlinkat()\n"
8342 "unlinkat()\n"
8343 "utimensat()\n"
8344 "utimes()\n"
8345 msgstr ""
8346 "execl()\n"
8347 "execv()\n"
8348 "faccessat()\n"
8349 "fchmodat()\n"
8350 "fchownat()\n"
8351 "fexecve()\n"
8352 "fstatat()\n"
8353 "futimens()\n"
8354 "linkat()\n"
8355 "mkdirat()\n"
8356 "mkfifoat()\n"
8357 "mknod()\n"
8358 "mknodat()\n"
8359 "openat()\n"
8360 "readlinkat()\n"
8361 "renameat()\n"
8362 "symlinkat()\n"
8363 "unlinkat()\n"
8364 "utimensat()\n"
8365 "utimes()\n"
8366
8367 #. type: SS
8368 #: build/C/man7/signal.7:612
8369 #, no-wrap
8370 msgid "Interruption of system calls and library functions by signal handlers"
8371 msgstr "シグナルハンドラによるシステムコールやライブラリ関数への割り込み"
8372
8373 #. type: Plain text
8374 #: build/C/man7/signal.7:615
8375 msgid ""
8376 "If a signal handler is invoked while a system call or library function call "
8377 "is blocked, then either:"
8378 msgstr ""
8379 "システムコールやライブラリが停止 (block) している間にシグナルハンドラが 起動"
8380 "されると、以下のどちらかとなる。"
8381
8382 #. type: Plain text
8383 #: build/C/man7/signal.7:617
8384 msgid ""
8385 "the call is automatically restarted after the signal handler returns; or"
8386 msgstr "シグナルが返った後、呼び出しは自動的に再スタートされる。"
8387
8388 #. type: Plain text
8389 #: build/C/man7/signal.7:620
8390 msgid "the call fails with the error B<EINTR>."
8391 msgstr "呼び出しはエラー B<EINTR> で失敗する。"
8392
8393 #. type: Plain text
8394 #: build/C/man7/signal.7:628
8395 msgid ""
8396 "Which of these two behaviors occurs depends on the interface and whether or "
8397 "not the signal handler was established using the B<SA_RESTART> flag (see "
8398 "B<sigaction>(2)).  The details vary across UNIX systems; below, the details "
8399 "for Linux."
8400 msgstr ""
8401 "これらの二つの挙動のうちどちらが起こるかは、インターフェイスにより依存し、 シ"
8402 "グナルハンドラが B<SA_RESTART> フラグ (B<sigaction>(2)  参照) を使って設定さ"
8403 "れていたかにも依存する。 詳細は UNIX システムによって異なる。 Linux における"
8404 "詳細を以下で説明する。"
8405
8406 #.  The following system calls use ERESTARTSYS,
8407 #.  so that they are restartable
8408 #. type: Plain text
8409 #: build/C/man7/signal.7:637
8410 msgid ""
8411 "If a blocked call to one of the following interfaces is interrupted by a "
8412 "signal handler, then the call will be automatically restarted after the "
8413 "signal handler returns if the B<SA_RESTART> flag was used; otherwise the "
8414 "call will fail with the error B<EINTR>:"
8415 msgstr ""
8416 "以下のインターフェイスのいずれかの呼び出しが停止している間に シグナルハンドラ"
8417 "により割り込まれた場合、 B<SA_RESTART> フラグが使用されていれば、シグナルハン"
8418 "ドラが返った後に その呼び出しは自動的に再スタートされることになる。 それ以外"
8419 "の場合は、その呼び出しはエラー B<EINTR> で失敗することになる。"
8420
8421 #.  commit 1ca39ab9d21ac93f94b9e3eb364ea9a5cf2aba06
8422 #. type: Plain text
8423 #: build/C/man7/signal.7:672
8424 #, fuzzy
8425 #| msgid ""
8426 #| "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), and B<ioctl>(2)  "
8427 #| "calls on \"slow\" devices.  A \"slow\" device is one where the I/O call "
8428 #| "may block for an indefinite time, for example, a terminal, pipe, or "
8429 #| "socket.  (A disk is not a slow device according to this definition.)  If "
8430 #| "an I/O call on a slow device has already transferred some data by the "
8431 #| "time it is interrupted by a signal handler, then the call will return a "
8432 #| "success status (normally, the number of bytes transferred)."
8433 msgid ""
8434 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), and B<ioctl>(2)  calls "
8435 "on \"slow\" devices.  A \"slow\" device is one where the I/O call may block "
8436 "for an indefinite time, for example, a terminal, pipe, or socket.  (A disk "
8437 "is not a slow device according to this definition.)  A B<read>(2)  on an "
8438 "B<eventfd>(2), B<signalfd>(2), B<timerfd>(2), B<fanotify>(7), or "
8439 "B<inotify>(7)  file descriptor is also considered to be a \"slow\" "
8440 "operation.  (Before Linux 3.8, reads from an B<inotify>(7)  file descriptor "
8441 "were not restartable; when interrupted by a signal handler, B<read>(2)  "
8442 "always failed with the error B<EINTR>.)  If an I/O call on a slow device has "
8443 "already transferred some data by the time it is interrupted by a signal "
8444 "handler, then the call will return a success status (normally, the number of "
8445 "bytes transferred)."
8446 msgstr ""
8447 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), B<ioctl>(2)  の「遅い "
8448 "(slow)」デバイスに対する呼び出し。 ここでいう「遅い」デバイスとは、I/O 呼び出"
8449 "しが無期限に停止 (block) する 可能性のあるデバイスのことで、例としては端末、"
8450 "パイプ、ソケットがある (この定義では、ディスクは遅いデバイスではない)。 遅い"
8451 "デバイスに対する I/O 呼び出しが、 シグナルハンドラにより割り込まれた時点まで"
8452 "に何らかのデータを すでに転送していれば、呼び出しは成功ステータス (通常は、転"
8453 "送されたバイト数) を返すことだろう。"
8454
8455 #. type: Plain text
8456 #: build/C/man7/signal.7:676
8457 msgid ""
8458 "B<open>(2), if it can block (e.g., when opening a FIFO; see B<fifo>(7))."
8459 msgstr ""
8460 "停止 (block) する可能性のある B<open>(2)  (例えば、FIFO のオープン時; "
8461 "B<fifo>(7)  参照)。"
8462
8463 #. type: Plain text
8464 #: build/C/man7/signal.7:683
8465 msgid "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), and B<waitpid>(2)."
8466 msgstr "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), B<waitpid>(2)."
8467
8468 #.  If a timeout (setsockopt()) is in effect on the socket, then these
8469 #.  system calls switch to using EINTR.  Consequently, they and are not
8470 #.  automatically restarted, and they show the stop/cont behavior
8471 #.  described below.  (Verified from 2.6.26 source, and by experiment; mtk)
8472 #.  FIXME . What about sendmmsg()?
8473 #. type: Plain text
8474 #: build/C/man7/signal.7:701
8475 msgid ""
8476 "Socket interfaces: B<accept>(2), B<connect>(2), B<recv>(2), B<recvfrom>(2), "
8477 "B<recvmmsg>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), "
8478 "unless a timeout has been set on the socket (see below)."
8479 msgstr ""
8480 "ソケットインターフェイス: B<accept>(2), B<connect>(2), B<recv>(2), "
8481 "B<recvfrom>(2), B<recvmmsg>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), "
8482 "B<sendmsg>(2).  但し、ソケットにタイムアウトが設定されていない場合 (下記参"
8483 "照)。"
8484
8485 #. type: Plain text
8486 #: build/C/man7/signal.7:707
8487 msgid "File locking interfaces: B<flock>(2)  and B<fcntl>(2)  B<F_SETLKW>."
8488 msgstr ""
8489 "ファイルロック用インターフェイス: B<flock>(2), B<fcntl>(2)  B<F_SETLKW>."
8490
8491 #. type: Plain text
8492 #: build/C/man7/signal.7:714
8493 msgid ""
8494 "POSIX message queue interfaces: B<mq_receive>(3), B<mq_timedreceive>(3), "
8495 "B<mq_send>(3), and B<mq_timedsend>(3)."
8496 msgstr ""
8497 "POSIX メッセージキューインターフェイス: B<mq_receive>(3), "
8498 "B<mq_timedreceive>(3), B<mq_send>(3), B<mq_timedsend>(3)."
8499
8500 #. type: Plain text
8501 #: build/C/man7/signal.7:719
8502 msgid ""
8503 "B<futex>(2)  B<FUTEX_WAIT> (since Linux 2.6.22; beforehand, always failed "
8504 "with B<EINTR>)."
8505 msgstr ""
8506 "B<futex>(2)  B<FUTEX_WAIT> (Linux 2.6.22 以降; それ以前は常に B<EINTR> で失敗"
8507 "していた)。"
8508
8509 #. type: Plain text
8510 #: build/C/man7/signal.7:723
8511 msgid "B<pthread_mutex_lock>(3), B<pthread_cond_wait>(3), and related APIs."
8512 msgstr ""
8513
8514 #. type: Plain text
8515 #: build/C/man7/signal.7:730
8516 msgid ""
8517 "POSIX semaphore interfaces: B<sem_wait>(3)  and B<sem_timedwait>(3)  (since "
8518 "Linux 2.6.22; beforehand, always failed with B<EINTR>)."
8519 msgstr ""
8520 "POSIX セマフォインターフェイス: B<sem_wait>(3), B<sem_timedwait>(3)  (Linux "
8521 "2.6.22 以降; それ以前は常に B<EINTR> で失敗していた)。"
8522
8523 #.  These are the system calls that give EINTR or ERESTARTNOHAND
8524 #.  on interruption by a signal handler.
8525 #. type: Plain text
8526 #: build/C/man7/signal.7:741
8527 msgid ""
8528 "The following interfaces are never restarted after being interrupted by a "
8529 "signal handler, regardless of the use of B<SA_RESTART>; they always fail "
8530 "with the error B<EINTR> when interrupted by a signal handler:"
8531 msgstr ""
8532 "以下のインターフェイスは、 B<SA_RESTART> を使っているどうかに関わらず、シグナ"
8533 "ルハンドラにより割り込まれた後、 再スタートすることは決してない。 これらは、"
8534 "シグナルハンドラにより割り込まれると、常にエラー B<EINTR> で失敗する。"
8535
8536 #. type: Plain text
8537 #: build/C/man7/signal.7:756 build/C/man7/signal.7:831
8538 #, fuzzy
8539 #| msgid ""
8540 #| "Socket interfaces, when a timeout has been set on the socket using "
8541 #| "B<setsockopt>(2): B<accept>(2), B<recv>(2), B<recvfrom>(2), and "
8542 #| "B<recvmsg>(2), if a receive timeout (B<SO_RCVTIMEO>)  has been set; "
8543 #| "B<connect>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), if a send "
8544 #| "timeout (B<SO_SNDTIMEO>)  has been set."
8545 msgid ""
8546 "\"Input\" socket interfaces, when a timeout (B<SO_RCVTIMEO>)  has been set "
8547 "on the socket using B<setsockopt>(2): B<accept>(2), B<recv>(2), "
8548 "B<recvfrom>(2), B<recvmmsg>(2)  (also with a non-NULL I<timeout> argument), "
8549 "and B<recvmsg>(2)."
8550 msgstr ""
8551 "B<setsockopt>(2)  を使ってタイムアウトが設定されているソケットインターフェー"
8552 "ス: B<accept>(2), B<recv>(2), B<recvfrom>(2), B<recvmsg>(2)  で受信タイムアウ"
8553 "ト (B<SO_RCVTIMEO>)  が設定されている場合と、 B<connect>(2), B<send>(2), "
8554 "B<sendto>(2), B<sendmsg>(2)  で送信タイムアウト (B<SO_SNDTIMEO>)  が設定され"
8555 "ている場合。"
8556
8557 #.  FIXME . What about sendmmsg()?
8558 #. type: Plain text
8559 #: build/C/man7/signal.7:767 build/C/man7/signal.7:842
8560 #, fuzzy
8561 #| msgid ""
8562 #| "Socket interfaces, when a timeout has been set on the socket using "
8563 #| "B<setsockopt>(2): B<accept>(2), B<recv>(2), B<recvfrom>(2), and "
8564 #| "B<recvmsg>(2), if a receive timeout (B<SO_RCVTIMEO>)  has been set; "
8565 #| "B<connect>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), if a send "
8566 #| "timeout (B<SO_SNDTIMEO>)  has been set."
8567 msgid ""
8568 "\"Output\" socket interfaces, when a timeout (B<SO_SNDTIMEO>)  has been set "
8569 "on the socket using B<setsockopt>(2): B<connect>(2), B<send>(2), "
8570 "B<sendto>(2), and B<sendmsg>(2)."
8571 msgstr ""
8572 "B<setsockopt>(2)  を使ってタイムアウトが設定されているソケットインターフェー"
8573 "ス: B<accept>(2), B<recv>(2), B<recvfrom>(2), B<recvmsg>(2)  で受信タイムアウ"
8574 "ト (B<SO_RCVTIMEO>)  が設定されている場合と、 B<connect>(2), B<send>(2), "
8575 "B<sendto>(2), B<sendmsg>(2)  で送信タイムアウト (B<SO_SNDTIMEO>)  が設定され"
8576 "ている場合。"
8577
8578 #. type: Plain text
8579 #: build/C/man7/signal.7:774
8580 msgid ""
8581 "Interfaces used to wait for signals: B<pause>(2), B<sigsuspend>(2), "
8582 "B<sigtimedwait>(2), and B<sigwaitinfo>(2)."
8583 msgstr ""
8584 "シグナル待ちに使われるインターフェイス: B<pause>(2), B<sigsuspend>(2), "
8585 "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8586
8587 #. type: Plain text
8588 #: build/C/man7/signal.7:783
8589 msgid ""
8590 "File descriptor multiplexing interfaces: B<epoll_wait>(2), "
8591 "B<epoll_pwait>(2), B<poll>(2), B<ppoll>(2), B<select>(2), and B<pselect>(2)."
8592 msgstr ""
8593 "ファイルディスクリプタ多重インターフェイス: B<epoll_wait>(2), "
8594 "B<epoll_pwait>(2), B<poll>(2), B<ppoll>(2), B<select>(2), B<pselect>(2)."
8595
8596 #.  On some other systems, SA_RESTART does restart these system calls
8597 #. type: Plain text
8598 #: build/C/man7/signal.7:791
8599 msgid ""
8600 "System V IPC interfaces: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), and "
8601 "B<semtimedop>(2)."
8602 msgstr ""
8603 "System V IPC インターフェイス: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), "
8604 "B<semtimedop>(2)."
8605
8606 #. type: Plain text
8607 #: build/C/man7/signal.7:797
8608 msgid ""
8609 "Sleep interfaces: B<clock_nanosleep>(2), B<nanosleep>(2), and B<usleep>(3)."
8610 msgstr ""
8611 "スリープ用のインターフェイス: B<clock_nanosleep>(2), B<nanosleep>(2), "
8612 "B<usleep>(3)."
8613
8614 #. type: Plain text
8615 #: build/C/man7/signal.7:799
8616 msgid "B<io_getevents>(2)."
8617 msgstr "B<io_getevents>(2)."
8618
8619 #. type: Plain text
8620 #: build/C/man7/signal.7:805
8621 msgid ""
8622 "The B<sleep>(3)  function is also never restarted if interrupted by a "
8623 "handler, but gives a success return: the number of seconds remaining to "
8624 "sleep."
8625 msgstr ""
8626 "B<sleep>(3)  関数も、ハンドラにより割り込まれた場合、決して再スタートされるこ"
8627 "とはない。 しかし、成功となり、残っている停止時間を返す。"
8628
8629 #. type: SS
8630 #: build/C/man7/signal.7:805
8631 #, no-wrap
8632 msgid "Interruption of system calls and library functions by stop signals"
8633 msgstr "一時停止シグナルによるシステムコールやライブラリ関数への割り込み"
8634
8635 #. type: Plain text
8636 #: build/C/man7/signal.7:814
8637 msgid ""
8638 "On Linux, even in the absence of signal handlers, certain blocking "
8639 "interfaces can fail with the error B<EINTR> after the process is stopped by "
8640 "one of the stop signals and then resumed via B<SIGCONT>.  This behavior is "
8641 "not sanctioned by POSIX.1, and doesn't occur on other systems."
8642 msgstr ""
8643 "Linux では、シグナルハンドラが設定されていない場合でも、 いくつかのブロッキン"
8644 "グ型のインターフェイスは、 プロセスが一時停止 (stop) シグナルの一つにより停止"
8645 "され、 B<SIGCONT> により再開された後に、エラー B<EINTR> で失敗する可能性があ"
8646 "る。 この挙動は POSIX.1 で認められておらず、他のシステムでは起こらない。"
8647
8648 #. type: Plain text
8649 #: build/C/man7/signal.7:816
8650 msgid "The Linux interfaces that display this behavior are:"
8651 msgstr "この挙動を示す Linux のインターフェイスは以下の通りである。"
8652
8653 #. type: Plain text
8654 #: build/C/man7/signal.7:845
8655 msgid "B<epoll_wait>(2), B<epoll_pwait>(2)."
8656 msgstr "B<epoll_wait>(2), B<epoll_pwait>(2)."
8657
8658 #. type: Plain text
8659 #: build/C/man7/signal.7:848
8660 msgid "B<semop>(2), B<semtimedop>(2)."
8661 msgstr "B<semop>(2), B<semtimedop>(2)."
8662
8663 #. type: Plain text
8664 #: build/C/man7/signal.7:851
8665 msgid "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8666 msgstr "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8667
8668 #.  commit 1ca39ab9d21ac93f94b9e3eb364ea9a5cf2aba06
8669 #. type: Plain text
8670 #: build/C/man7/signal.7:858
8671 #, fuzzy
8672 #| msgid "B<read>(2)  from an B<inotify>(7)  file descriptor."
8673 msgid ""
8674 "Linux 3.7 and earlier: B<read>(2)  from an B<inotify>(7)  file descriptor."
8675 msgstr "B<inotify>(7)  ファイルディスクリプタからの B<read>(2)."
8676
8677 #. type: Plain text
8678 #: build/C/man7/signal.7:864
8679 msgid ""
8680 "Linux 2.6.21 and earlier: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8681 "B<sem_wait>(3)."
8682 msgstr ""
8683 "Linux 2.6.21 以前: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8684 "B<sem_wait>(3)."
8685
8686 #. type: Plain text
8687 #: build/C/man7/signal.7:868
8688 msgid "Linux 2.6.8 and earlier: B<msgrcv>(2), B<msgsnd>(2)."
8689 msgstr "Linux 2.6.8 以前: B<msgrcv>(2), B<msgsnd>(2)."
8690
8691 #. type: Plain text
8692 #: build/C/man7/signal.7:871
8693 msgid "Linux 2.4 and earlier: B<nanosleep>(2)."
8694 msgstr "Linux 2.4 以前: B<nanosleep>(2)."
8695
8696 #.  It must be a *very* long time since this was true:
8697 #.  .SH BUGS
8698 #.  .B SIGIO
8699 #.  and
8700 #.  .B SIGLOST
8701 #.  have the same value.
8702 #.  The latter is commented out in the kernel source, but
8703 #.  the build process of some software still thinks that
8704 #.  signal 29 is
8705 #.  .BR SIGLOST .
8706 #. type: Plain text
8707 #: build/C/man7/signal.7:884
8708 msgid "POSIX.1, except as noted."
8709 msgstr "POSIX.1 (注記した内容以外)。"
8710
8711 #. type: Plain text
8712 #: build/C/man7/signal.7:919
8713 #, fuzzy
8714 #| msgid ""
8715 #| "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), "
8716 #| "B<restart_syscall>(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), "
8717 #| "B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), B<sigaltstack>(2), "
8718 #| "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
8719 #| "B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), B<bsd_signal>(3), "
8720 #| "B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), B<sigqueue>(3), "
8721 #| "B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), "
8722 #| "B<strsignal>(3), B<sysv_signal>(3), B<core>(5), B<proc>(5), "
8723 #| "B<pthreads>(7), B<sigevent>(7)"
8724 msgid ""
8725 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), "
8726 "B<restart_syscall>(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), "
8727 "B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), B<sigaltstack>(2), "
8728 "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
8729 "B<sigreturn>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), "
8730 "B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), "
8731 "B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), "
8732 "B<strsignal>(3), B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), "
8733 "B<sigevent>(7)"
8734 msgstr ""
8735 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), "
8736 "B<restart_syscall>(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), "
8737 "B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), B<sigaltstack>(2), "
8738 "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
8739 "B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), B<bsd_signal>(3), "
8740 "B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), B<sigqueue>(3), "
8741 "B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), B<strsignal>(3), "
8742 "B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), B<sigevent>(7)"
8743
8744 #. type: TH
8745 #: build/C/man2/signalfd.2:20
8746 #, no-wrap
8747 msgid "SIGNALFD"
8748 msgstr "SIGNALFD"
8749
8750 #. type: Plain text
8751 #: build/C/man2/signalfd.2:23
8752 msgid "signalfd - create a file descriptor for accepting signals"
8753 msgstr "signalfd - シグナル受け付け用のファイルディスクリプタを生成する"
8754
8755 #. type: Plain text
8756 #: build/C/man2/signalfd.2:25
8757 msgid "B<#include E<lt>sys/signalfd.hE<gt>>"
8758 msgstr "B<#include E<lt>sys/signalfd.hE<gt>>"
8759
8760 #. type: Plain text
8761 #: build/C/man2/signalfd.2:27
8762 msgid ""
8763 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8764 msgstr ""
8765 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8766
8767 #. type: Plain text
8768 #: build/C/man2/signalfd.2:38
8769 msgid ""
8770 "B<signalfd>()  creates a file descriptor that can be used to accept signals "
8771 "targeted at the caller.  This provides an alternative to the use of a signal "
8772 "handler or B<sigwaitinfo>(2), and has the advantage that the file descriptor "
8773 "may be monitored by B<select>(2), B<poll>(2), and B<epoll>(7)."
8774 msgstr ""
8775 "B<signalfd>()  は、呼び出し元宛てのシグナルを受け付けるために使用されるファイ"
8776 "ル ディスクリプタを生成する。 この方法はシグナルハンドラや "
8777 "B<sigwaitinfo>(2)  を用いる方法の代わりとなるものであり、このファイルディスク"
8778 "リプタを B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点があ"
8779 "る。"
8780
8781 #. type: Plain text
8782 #: build/C/man2/signalfd.2:58
8783 msgid ""
8784 "The I<mask> argument specifies the set of signals that the caller wishes to "
8785 "accept via the file descriptor.  This argument is a signal set whose "
8786 "contents can be initialized using the macros described in B<sigsetops>(3).  "
8787 "Normally, the set of signals to be received via the file descriptor should "
8788 "be blocked using B<sigprocmask>(2), to prevent the signals being handled "
8789 "according to their default dispositions.  It is not possible to receive "
8790 "B<SIGKILL> or B<SIGSTOP> signals via a signalfd file descriptor; these "
8791 "signals are silently ignored if specified in I<mask>."
8792 msgstr ""
8793 "I<mask> 引き数には、呼び出し元がこのファイルディスクリプタ経由で受け付けたい "
8794 "シグナル集合を指定する。この引き数で指定するシグナル集合の内容は、 "
8795 "B<sigsetops>(3)  で説明されているマクロを使って初期化することができる。 通"
8796 "常、ファイルディスクリプタ経由で受信するシグナル集合は、 そのシグナルがデフォ"
8797 "ルトの配送方法に基いて処理されるのを防ぐために、 B<sigprocmask>(2)  を使って"
8798 "ブロックしておくべきである。 シグナル B<SIGKILL> と B<SIGSTOP> を signalfd "
8799 "ファイルディスクリプタ経由で受信することはできない。 これらのシグナルが "
8800 "I<mask> で指定された場合には黙って無視される。"
8801
8802 #. type: Plain text
8803 #: build/C/man2/signalfd.2:72
8804 msgid ""
8805 "If the I<fd> argument is -1, then the call creates a new file descriptor and "
8806 "associates the signal set specified in I<mask> with that descriptor.  If "
8807 "I<fd> is not -1, then it must specify a valid existing signalfd file "
8808 "descriptor, and I<mask> is used to replace the signal set associated with "
8809 "that descriptor."
8810 msgstr ""
8811 "I<fd> 引き数が -1 の場合、 B<signalfd>()  は新しいファイルディスクリプタを生"
8812 "成し、 I<mask> で指定されたシグナル集合をそのファイルディスクリプタに関連付け"
8813 "る。 I<fd> 引き数が -1 以外の場合、 I<fd> には有効な既存の signalfd ファイル"
8814 "ディスクリプタを指定しなければならず、 そのディスクリプタに関連付けられている"
8815 "シグナル集合は I<mask> を使って置き換えられる。"
8816
8817 #. type: Plain text
8818 #: build/C/man2/signalfd.2:77
8819 msgid ""
8820 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
8821 "I<flags> to change the behavior of B<signalfd>():"
8822 msgstr ""
8823 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
8824 "ることで、 B<signalfd>()  の振舞いを変更することができる。"
8825
8826 #. type: TP
8827 #: build/C/man2/signalfd.2:77
8828 #, no-wrap
8829 msgid "B<SFD_NONBLOCK>"
8830 msgstr "B<SFD_NONBLOCK>"
8831
8832 #. type: TP
8833 #: build/C/man2/signalfd.2:85
8834 #, no-wrap
8835 msgid "B<SFD_CLOEXEC>"
8836 msgstr "B<SFD_CLOEXEC>"
8837
8838 #. type: Plain text
8839 #: build/C/man2/signalfd.2:102
8840 msgid ""
8841 "B<signalfd>()  returns a file descriptor that supports the following "
8842 "operations:"
8843 msgstr ""
8844 "B<signalfd>()  が返すファイルディスクリプタは以下の操作をサポートしている。"
8845
8846 #. type: Plain text
8847 #: build/C/man2/signalfd.2:121
8848 msgid ""
8849 "If one or more of the signals specified in I<mask> is pending for the "
8850 "process, then the buffer supplied to B<read>(2)  is used to return one or "
8851 "more I<signalfd_siginfo> structures (see below) that describe the signals.  "
8852 "The B<read>(2)  returns information for as many signals as are pending and "
8853 "will fit in the supplied buffer.  The buffer must be at least "
8854 "I<sizeof(struct signalfd_siginfo)> bytes.  The return value of the "
8855 "B<read>(2)  is the total number of bytes read."
8856 msgstr ""
8857 "I<mask> に指定されているシグナルのうち一つ以上がそのプロセスに対して 処理待"
8858 "ち (pending) であれば、それらのシグナルの情報が B<read>(2)  に渡されたバッ"
8859 "ファを使って、 I<signalfd_siginfo> 構造体に格納されて返される。 B<read>(2)  "
8860 "は、バッファに格納可能な範囲でできるだけ多くの処理待ちのシグナルに ついての情"
8861 "報を返す。 バッファは最低でも I<sizeof(struct signalfd_siginfo)> バイトの大き"
8862 "さがなければならない。 B<read>(2)  の返り値は読み出されたトータルのバイト数で"
8863 "ある。"
8864
8865 #. type: Plain text
8866 #: build/C/man2/signalfd.2:129
8867 msgid ""
8868 "As a consequence of the B<read>(2), the signals are consumed, so that they "
8869 "are no longer pending for the process (i.e., will not be caught by signal "
8870 "handlers, and cannot be accepted using B<sigwaitinfo>(2))."
8871 msgstr ""
8872 "B<read>(2)  が行われた結果、シグナルは消費され、 これらのシグナルはそのプロセ"
8873 "スに対しては処理待ちではなくなる (つまり、シグナルハンドラで捕捉されることも"
8874 "なく、 B<sigwaitinfo>(2)  を使って受け取ることもできなくなる)。"
8875
8876 #. type: Plain text
8877 #: build/C/man2/signalfd.2:140
8878 msgid ""
8879 "If none of the signals in I<mask> is pending for the process, then the "
8880 "B<read>(2)  either blocks until one of the signals in I<mask> is generated "
8881 "for the process, or fails with the error B<EAGAIN> if the file descriptor "
8882 "has been made nonblocking."
8883 msgstr ""
8884 "I<mask> に指定されているシグナルがそのプロセスに対して一つも処理待ちでなけれ"
8885 "ば、 B<read>(2)  は、 I<mask> で指定されたシグナルのうちいずれか一つがそのプ"
8886 "ロセスに対して発生するまで 停止 (block) する、もしくはファイルディスクリプタ"
8887 "が非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗する。"
8888
8889 #. type: Plain text
8890 #: build/C/man2/signalfd.2:153
8891 msgid ""
8892 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
8893 "B<poll>(2)  B<POLLIN> flag)  if one or more of the signals in I<mask> is "
8894 "pending for the process."
8895 msgstr ""
8896 "I<mask> に指定されたシグナルのうち一つ以上がそのプロセスに対して処理待ちであ"
8897 "れば、 ファイルディスクリプタは読み出し可能となる (B<select>(2)  の "
8898 "I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
8899
8900 #. type: Plain text
8901 #: build/C/man2/signalfd.2:160
8902 msgid ""
8903 "The signalfd file descriptor also supports the other file-descriptor "
8904 "multiplexing APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
8905 msgstr ""
8906 "signalfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
8907 "である B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
8908
8909 #. type: Plain text
8910 #: build/C/man2/signalfd.2:165
8911 msgid ""
8912 "When the file descriptor is no longer required it should be closed.  When "
8913 "all file descriptors associated with the same signalfd object have been "
8914 "closed, the resources for object are freed by the kernel."
8915 msgstr ""
8916 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
8917 "る。 同じ signalfd オブジェクトに関連付けられたファイルディスクリプタが全て "
8918 "クローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
8919
8920 #. type: SS
8921 #: build/C/man2/signalfd.2:165
8922 #, no-wrap
8923 msgid "The signalfd_siginfo structure"
8924 msgstr "signalfd_siginfo 構造体"
8925
8926 #. type: Plain text
8927 #: build/C/man2/signalfd.2:171
8928 msgid ""
8929 "The format of the I<signalfd_siginfo> structure(s) returned by B<read>(2)s "
8930 "from a signalfd file descriptor is as follows:"
8931 msgstr ""
8932 "signalfd ファイルディスクリプタからの B<read>(2)  で返される "
8933 "I<signalfd_siginfo> 構造体のフォーマットは以下の通りである。"
8934
8935 #.  ssi_trapno is unused on most arches
8936 #.  FIXME Since Linux 2.6.37 there is 'uint16_t ssi_addr_lsb'
8937 #.  in the signalfd_siginfo structure. This needs to be documented.
8938 #. type: Plain text
8939 #: build/C/man2/signalfd.2:198
8940 #, no-wrap
8941 msgid ""
8942 "struct signalfd_siginfo {\n"
8943 "    uint32_t ssi_signo;   /* Signal number */\n"
8944 "    int32_t  ssi_errno;   /* Error number (unused) */\n"
8945 "    int32_t  ssi_code;    /* Signal code */\n"
8946 "    uint32_t ssi_pid;     /* PID of sender */\n"
8947 "    uint32_t ssi_uid;     /* Real UID of sender */\n"
8948 "    int32_t  ssi_fd;      /* File descriptor (SIGIO) */\n"
8949 "    uint32_t ssi_tid;     /* Kernel timer ID (POSIX timers)\n"
8950 "    uint32_t ssi_band;    /* Band event (SIGIO) */\n"
8951 "    uint32_t ssi_overrun; /* POSIX timer overrun count */\n"
8952 "    uint32_t ssi_trapno;  /* Trap number that caused signal */\n"
8953 "    int32_t  ssi_status;  /* Exit status or signal (SIGCHLD) */\n"
8954 "    int32_t  ssi_int;     /* Integer sent by sigqueue(3) */\n"
8955 "    uint64_t ssi_ptr;     /* Pointer sent by sigqueue(3) */\n"
8956 "    uint64_t ssi_utime;   /* User CPU time consumed (SIGCHLD) */\n"
8957 "    uint64_t ssi_stime;   /* System CPU time consumed (SIGCHLD) */\n"
8958 "    uint64_t ssi_addr;    /* Address that generated signal\n"
8959 "                             (for hardware-generated signals) */\n"
8960 "    uint8_t  pad[I<X>];      /* Pad size to 128 bytes (allow for\n"
8961 "                              additional fields in the future) */\n"
8962 "};\n"
8963 msgstr ""
8964 "struct signalfd_siginfo {\n"
8965 "struct signalfd_siginfo {\n"
8966 "    uint32_t ssi_signo;   /* シグナル番号 */\n"
8967 "    int32_t  ssi_errno;   /* エラー番号 (未使用) */\n"
8968 "    int32_t  ssi_code;    /* シグナルコード */\n"
8969 "    uint32_t ssi_pid;     /* 送信元の PID */\n"
8970 "    uint32_t ssi_uid;     /* 送信元の実 UID */\n"
8971 "    int32_t  ssi_fd;      /* ファイルディスクリプタ (SIGIO) */\n"
8972 "    uint32_t ssi_tid;     /* カーネルタイマ ID (POSIX タイマ)\n"
8973 "    uint32_t ssi_band;    /* Band イベント (SIGIO) */\n"
8974 "    uint32_t ssi_overrun; /* POSIX タイマのオーバーラン回数 */\n"
8975 "    uint32_t ssi_trapno;  /* シグナルの原因となったトラップ番号 */\n"
8976 "    int32_t  ssi_status;  /* 終了ステータスかシグナル (SIGCHLD) */\n"
8977 "    int32_t  ssi_int;     /* sigqueue(3) から送られた整数 */\n"
8978 "    uint64_t ssi_ptr;     /* sigqueue(3) から送られたポインタ */\n"
8979 "    uint64_t ssi_utime;   /* 消費したユーザ CPU 時間 (SIGCHLD) */\n"
8980 "    uint64_t ssi_stime;   /* 消費したシステム CPU 時間 (SIGCHLD) */\n"
8981 "    uint64_t ssi_addr;    /* シグナルを生成したアドレス\n"
8982 "                             (ハードウェアが生成したシグナルの場合) */\n"
8983 "    uint8_t  pad[I<X>];      /* pad の大きさは 128 バイト\n"
8984 "                             (将来のフィールド追加用の場所の確保) */\n"
8985 "};\n"
8986
8987 #. type: Plain text
8988 #: build/C/man2/signalfd.2:221
8989 msgid ""
8990 "Each of the fields in this structure is analogous to the similarly named "
8991 "field in the I<siginfo_t> structure.  The I<siginfo_t> structure is "
8992 "described in B<sigaction>(2).  Not all fields in the returned "
8993 "I<signalfd_siginfo> structure will be valid for a specific signal; the set "
8994 "of valid fields can be determined from the value returned in the I<ssi_code> "
8995 "field.  This field is the analog of the I<siginfo_t> I<si_code> field; see "
8996 "B<sigaction>(2)  for details."
8997 msgstr ""
8998 "I<signalfd_siginfo> 構造体の各フィールドは、 I<siginfo_t> 構造体の同じような"
8999 "名前のフィールドと同様である。 I<siginfo_t> 構造体については "
9000 "B<sigaction>(2)  に説明がある。 返された I<signalfd_siginfo> 構造体の全ての"
9001 "フィールドがあるシグナルに対して有効なわけではない。 どのフィールドが有効か"
9002 "は、 I<ssi_code> フィールドで返される値から判定することができる。 このフィー"
9003 "ルドは I<siginfo_t> の I<si_code> フィールドと同様である。詳細は "
9004 "B<sigaction>(2)  を参照。"
9005
9006 #. type: SS
9007 #: build/C/man2/signalfd.2:221 build/C/man2/timerfd_create.2:276
9008 #, no-wrap
9009 msgid "fork(2) semantics"
9010 msgstr "fork(2) での扱い"
9011
9012 #. type: Plain text
9013 #: build/C/man2/signalfd.2:229
9014 msgid ""
9015 "After a B<fork>(2), the child inherits a copy of the signalfd file "
9016 "descriptor.  A B<read>(2)  from the file descriptor in the child will return "
9017 "information about signals queued to the child."
9018 msgstr ""
9019 "B<fork>(2)  が行われると、子プロセスは signalfd ファイルディスクリプタのコ"
9020 "ピーを 継承する。 子プロセスでこのファイルディスクリプタから B<read>(2)  を行"
9021 "うと、子プロセスに対するキューに入っているシグナルに関する 情報が返される。"
9022
9023 #. type: SS
9024 #: build/C/man2/signalfd.2:229 build/C/man2/timerfd_create.2:288
9025 #, no-wrap
9026 msgid "execve(2) semantics"
9027 msgstr "execve(2) での扱い"
9028
9029 #. type: Plain text
9030 #: build/C/man2/signalfd.2:241
9031 msgid ""
9032 "Just like any other file descriptor, a signalfd file descriptor remains open "
9033 "across an B<execve>(2), unless it has been marked for close-on-exec (see "
9034 "B<fcntl>(2)).  Any signals that were available for reading before the "
9035 "B<execve>(2)  remain available to the newly loaded program.  (This is "
9036 "analogous to traditional signal semantics, where a blocked signal that is "
9037 "pending remains pending across an B<execve>(2).)"
9038 msgstr ""
9039 "他のファイルディスクリプタと全く同様に、 signalfd ファイルディスクリプタも "
9040 "B<execve>(2)  の前後でオープンされたままとなる。但し、そのファイルディスクリ"
9041 "プタに close-on-exec のマーク (B<fcntl>(2)  参照) が付いている場合はクローズ"
9042 "される。 B<execve>(2)  の前に読み出し可能となっていた全てのシグナルは新しく起"
9043 "動されたプログラム でも引き続き読み出し可能である (これは伝統的なシグナルの扱"
9044 "いと同じであり、 処理待ちのブロックされたシグナルは B<execve>(2)  の前後で処"
9045 "理待ちのままとなる)。"
9046
9047 #. type: SS
9048 #: build/C/man2/signalfd.2:241
9049 #, no-wrap
9050 msgid "Thread semantics"
9051 msgstr "スレッドでの扱い"
9052
9053 #. type: Plain text
9054 #: build/C/man2/signalfd.2:251
9055 msgid ""
9056 "The semantics of signalfd file descriptors in a multithreaded program mirror "
9057 "the standard semantics for signals.  In other words, when a thread reads "
9058 "from a signalfd file descriptor, it will read the signals that are directed "
9059 "to the thread itself and the signals that are directed to the process (i.e., "
9060 "the entire thread group).  (A thread will not be able to read signals that "
9061 "are directed to other threads in the process.)"
9062 msgstr ""
9063 "マルチスレッドプログラムにおける signalfd ファイルディスクリプタの扱いは シグ"
9064 "ナルの標準的な扱いと全く同じである。 言い換えると、あるスレッドが signalfd "
9065 "ファイルディスクリプタから 読み出しを行うと、そのスレッド自身宛てのシグナルと"
9066 "プロセス (すなわち スレッドグループ全体) 宛てのシグナルが読み出される。 (ス"
9067 "レッドは同じプロセスの他のスレッド宛てのシグナルを読み出すことはできない。)"
9068
9069 #. type: Plain text
9070 #: build/C/man2/signalfd.2:265
9071 msgid ""
9072 "On success, B<signalfd>()  returns a signalfd file descriptor; this is "
9073 "either a new file descriptor (if I<fd> was -1), or I<fd> if I<fd> was a "
9074 "valid signalfd file descriptor.  On error, -1 is returned and I<errno> is "
9075 "set to indicate the error."
9076 msgstr ""
9077 "成功すると、 B<signalfd>()  は signalfd ファイルディスクリプタを返す。 返され"
9078 "るファイルディスクリプタは、 I<fd> が -1 の場合は新規のファイルディスクリプタ"
9079 "であり、 I<fd> が有効な signalfd ファイルディスクリプタだった場合は I<fd> 自"
9080 "身である。 エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
9081
9082 #. type: Plain text
9083 #: build/C/man2/signalfd.2:271
9084 msgid "The I<fd> file descriptor is not a valid file descriptor."
9085 msgstr "ファイルディスクリプタ I<fd> が有効なファイルディスクリプタでない。"
9086
9087 #.  or, the
9088 #.  .I sizemask
9089 #.  argument is not equal to
9090 #.  .IR sizeof(sigset_t) ;
9091 #. type: Plain text
9092 #: build/C/man2/signalfd.2:279
9093 msgid "I<fd> is not a valid signalfd file descriptor."
9094 msgstr "I<fd> が有効な signalfd ファイルディスクリプタではない。"
9095
9096 #. type: Plain text
9097 #: build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:327
9098 msgid ""
9099 "I<flags> is invalid; or, in Linux 2.6.26 or earlier, I<flags> is nonzero."
9100 msgstr ""
9101 "I<flags> が無効である。もしくは、Linux 2.6.26 以前の場合には I<flags> が 0 以"
9102 "外である。"
9103
9104 #. type: Plain text
9105 #: build/C/man2/signalfd.2:289 build/C/man2/timerfd_create.2:330
9106 msgid "The per-process limit of open file descriptors has been reached."
9107 msgstr ""
9108 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
9109
9110 #. type: Plain text
9111 #: build/C/man2/signalfd.2:299
9112 msgid "There was insufficient memory to create a new signalfd file descriptor."
9113 msgstr ""
9114 "新しい signalfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
9115
9116 #.  signalfd() is in glibc 2.7, but reportedly does not build
9117 #. type: Plain text
9118 #: build/C/man2/signalfd.2:307
9119 msgid ""
9120 "B<signalfd>()  is available on Linux since kernel 2.6.22.  Working support "
9121 "is provided in glibc since version 2.8.  The B<signalfd4>()  system call "
9122 "(see NOTES) is available on Linux since kernel 2.6.27."
9123 msgstr ""
9124 "B<signalfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
9125 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<signalfd4>()  "
9126 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
9127 "る。"
9128
9129 #. type: Plain text
9130 #: build/C/man2/signalfd.2:312
9131 msgid "B<signalfd>()  and B<signalfd4>()  are Linux-specific."
9132 msgstr "B<signalfd>()  と B<signalfd4>()  は Linux 固有である。"
9133
9134 #. type: Plain text
9135 #: build/C/man2/signalfd.2:326
9136 msgid ""
9137 "A process can create multiple signalfd file descriptors.  This makes it "
9138 "possible to accept different signals on different file descriptors.  (This "
9139 "may be useful if monitoring the file descriptors using B<select>(2), "
9140 "B<poll>(2), or B<epoll>(7): the arrival of different signals will make "
9141 "different descriptors ready.)  If a signal appears in the I<mask> of more "
9142 "than one of the file descriptors, then occurrences of that signal can be "
9143 "read (once) from any one of the descriptors."
9144 msgstr ""
9145 "一つのプロセスは複数の signalfd ファイルディスクリプタを生成することができ"
9146 "る。 これにより、異なるファイルディスクリプタで異なるシグナルを受け取ること"
9147 "が できる (この機能は B<select>(2), B<poll>(2), B<epoll>(7)  を使ってファイル"
9148 "ディスクリプタを監視する場合に有用かもしれない。 異なるシグナルが到着すると、"
9149 "異なるファイルディスクリプタが利用可能に なるからだ)。 一つのシグナルが二つ以"
9150 "上のファイルディスクリプタの I<mask> に含まれている場合、そのシグナルの発生は"
9151 "そのシグナルを I<mask> に含むファイルディスクリプタのうちいずれか一つから読み"
9152 "出すことができる。"
9153
9154 #. type: Plain text
9155 #: build/C/man2/signalfd.2:336
9156 msgid ""
9157 "The underlying Linux system call requires an additional argument, I<size_t "
9158 "sizemask>, which specifies the size of the I<mask> argument.  The glibc "
9159 "B<signalfd>()  wrapper function does not include this argument, since it "
9160 "provides the required value for the underlying system call."
9161 msgstr ""
9162 "実際の Linux のシステムコールでは I<size_t sizemask> という引き数が追加で必要"
9163 "である。この引き数で I<mask> のサイズを指定する。 glibc の B<signalfd>()  "
9164 "ラッパー関数にはこの引き数は含まれず、 ラッパー関数が必要な値を計算して内部で"
9165 "呼び出すシステムコールに提供する。"
9166
9167 #. type: Plain text
9168 #: build/C/man2/signalfd.2:352
9169 msgid ""
9170 "There are two underlying Linux system calls: B<signalfd>()  and the more "
9171 "recent B<signalfd4>().  The former system call does not implement a I<flags> "
9172 "argument.  The latter system call implements the I<flags> values described "
9173 "above.  Starting with glibc 2.9, the B<signalfd>()  wrapper function will "
9174 "use B<signalfd4>()  where it is available."
9175 msgstr ""
9176 "下層にある Linux システムコールは二種類あり、 B<signalfd>()  と、もっと新し"
9177 "い B<signalfd4>()  である。 B<signalfd>()  は I<flags> 引き数を実装していな"
9178 "い。 B<signalfd4>()  では上記の値の I<flags> が実装されている。 glibc 2.9 以"
9179 "降では、 B<signalfd>()  のラッパー関数は、 B<signalfd4>()  が利用可能であれ"
9180 "ば、これを使用する。"
9181
9182 #.  The fix also was put into 2.6.24.5
9183 #. type: Plain text
9184 #: build/C/man2/signalfd.2:360
9185 msgid ""
9186 "In kernels before 2.6.25, the I<ssi_ptr> and I<ssi_int> fields are not "
9187 "filled in with the data accompanying a signal sent by B<sigqueue>(3)."
9188 msgstr ""
9189 "カーネル 2.6.25 より前では、 B<sigqueue>(3)  により送信されたシグナルと一緒に"
9190 "渡されるデータでは、フィールド I<ssi_ptr> と I<ssi_int> は設定されない。"
9191
9192 #. type: Plain text
9193 #: build/C/man2/signalfd.2:370
9194 msgid ""
9195 "The program below accepts the signals B<SIGINT> and B<SIGQUIT> via a "
9196 "signalfd file descriptor.  The program terminates after accepting a "
9197 "B<SIGQUIT> signal.  The following shell session demonstrates the use of the "
9198 "program:"
9199 msgstr ""
9200 "下記のプログラムは、シグナル B<SIGINT> と B<SIGQUIT> を signalfd ファイルディ"
9201 "スクリプタ経由で受信する。 シグナル B<SIGQUIT> 受信後にプログラムは終了す"
9202 "る。 以下に示すシェルセッションにこのプログラムの使い方を示す。"
9203
9204 #. type: Plain text
9205 #: build/C/man2/signalfd.2:381
9206 #, no-wrap
9207 msgid ""
9208 "$B< ./signalfd_demo>\n"
9209 "B<^C>                   # Control-C generates SIGINT\n"
9210 "Got SIGINT\n"
9211 "B<^C>\n"
9212 "Got SIGINT\n"
9213 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
9214 "Got SIGQUIT\n"
9215 "$\n"
9216 msgstr ""
9217 "$B< ./signalfd_demo>\n"
9218 "B<^C>                   # Control-C generates SIGINT\n"
9219 "Got SIGINT\n"
9220 "B<^C>\n"
9221 "Got SIGINT\n"
9222 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
9223 "Got SIGQUIT\n"
9224 "$\n"
9225
9226 #. type: Plain text
9227 #: build/C/man2/signalfd.2:391
9228 #, no-wrap
9229 msgid ""
9230 "#include E<lt>sys/signalfd.hE<gt>\n"
9231 "#include E<lt>signal.hE<gt>\n"
9232 "#include E<lt>unistd.hE<gt>\n"
9233 "#include E<lt>stdlib.hE<gt>\n"
9234 "#include E<lt>stdio.hE<gt>\n"
9235 msgstr ""
9236 "#include E<lt>sys/signalfd.hE<gt>\n"
9237 "#include E<lt>signal.hE<gt>\n"
9238 "#include E<lt>unistd.hE<gt>\n"
9239 "#include E<lt>stdlib.hE<gt>\n"
9240 "#include E<lt>stdio.hE<gt>\n"
9241
9242 #. type: Plain text
9243 #: build/C/man2/signalfd.2:402
9244 #, no-wrap
9245 msgid ""
9246 "int\n"
9247 "main(int argc, char *argv[])\n"
9248 "{\n"
9249 "    sigset_t mask;\n"
9250 "    int sfd;\n"
9251 "    struct signalfd_siginfo fdsi;\n"
9252 "    ssize_t s;\n"
9253 msgstr ""
9254 "int\n"
9255 "main(int argc, char *argv[])\n"
9256 "{\n"
9257 "    sigset_t mask;\n"
9258 "    int sfd;\n"
9259 "    struct signalfd_siginfo fdsi;\n"
9260 "    ssize_t s;\n"
9261
9262 #. type: Plain text
9263 #: build/C/man2/signalfd.2:406
9264 #, no-wrap
9265 msgid ""
9266 "    sigemptyset(&mask);\n"
9267 "    sigaddset(&mask, SIGINT);\n"
9268 "    sigaddset(&mask, SIGQUIT);\n"
9269 msgstr ""
9270 "    sigemptyset(&mask);\n"
9271 "    sigaddset(&mask, SIGINT);\n"
9272 "    sigaddset(&mask, SIGQUIT);\n"
9273
9274 #. type: Plain text
9275 #: build/C/man2/signalfd.2:409
9276 #, no-wrap
9277 msgid ""
9278 "    /* Block signals so that they aren\\(aqt handled\n"
9279 "       according to their default dispositions */\n"
9280 msgstr ""
9281 "    /* Block signals so that they aren\\(aqt handled\n"
9282 "       according to their default dispositions */\n"
9283
9284 #. type: Plain text
9285 #: build/C/man2/signalfd.2:412
9286 #, no-wrap
9287 msgid ""
9288 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
9289 "        handle_error(\"sigprocmask\");\n"
9290 msgstr ""
9291 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
9292 "        handle_error(\"sigprocmask\");\n"
9293
9294 #. type: Plain text
9295 #: build/C/man2/signalfd.2:416
9296 #, no-wrap
9297 msgid ""
9298 "    sfd = signalfd(-1, &mask, 0);\n"
9299 "    if (sfd == -1)\n"
9300 "        handle_error(\"signalfd\");\n"
9301 msgstr ""
9302 "    sfd = signalfd(-1, &mask, 0);\n"
9303 "    if (sfd == -1)\n"
9304 "        handle_error(\"signalfd\");\n"
9305
9306 #. type: Plain text
9307 #: build/C/man2/signalfd.2:421
9308 #, no-wrap
9309 msgid ""
9310 "    for (;;) {\n"
9311 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
9312 "        if (s != sizeof(struct signalfd_siginfo))\n"
9313 "            handle_error(\"read\");\n"
9314 msgstr ""
9315 "    for (;;) {\n"
9316 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
9317 "        if (s != sizeof(struct signalfd_siginfo))\n"
9318 "            handle_error(\"read\");\n"
9319
9320 #. type: Plain text
9321 #: build/C/man2/signalfd.2:432
9322 #, no-wrap
9323 msgid ""
9324 "        if (fdsi.ssi_signo == SIGINT) {\n"
9325 "            printf(\"Got SIGINT\\en\");\n"
9326 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
9327 "            printf(\"Got SIGQUIT\\en\");\n"
9328 "            exit(EXIT_SUCCESS);\n"
9329 "        } else {\n"
9330 "            printf(\"Read unexpected signal\\en\");\n"
9331 "        }\n"
9332 "    }\n"
9333 "}\n"
9334 msgstr ""
9335 "        if (fdsi.ssi_signo == SIGINT) {\n"
9336 "            printf(\"Got SIGINT\\en\");\n"
9337 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
9338 "            printf(\"Got SIGQUIT\\en\");\n"
9339 "            exit(EXIT_SUCCESS);\n"
9340 "        } else {\n"
9341 "            printf(\"Read unexpected signal\\en\");\n"
9342 "        }\n"
9343 "    }\n"
9344 "}\n"
9345
9346 #. type: Plain text
9347 #: build/C/man2/signalfd.2:446
9348 msgid ""
9349 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
9350 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
9351 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
9352 msgstr ""
9353 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
9354 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
9355 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
9356
9357 #. type: TH
9358 #: build/C/man3/sigpause.3:25
9359 #, no-wrap
9360 msgid "SIGPAUSE"
9361 msgstr "SIGPAUSE"
9362
9363 #. type: Plain text
9364 #: build/C/man3/sigpause.3:28
9365 msgid "sigpause - atomically release blocked signals and wait for interrupt"
9366 msgstr "sigpause - ブロックされたシグナルをアトミックに解放して割り込みを待つ"
9367
9368 #. type: Plain text
9369 #: build/C/man3/sigpause.3:33
9370 #, no-wrap
9371 msgid "B<int sigpause(int >I<sigmask>B<);  /* BSD (but see NOTES) */>\n"
9372 msgstr "B<int sigpause(int >I<sigmask>B<);  /* BSD (ただし「備考」を参照) */>\n"
9373
9374 #. type: Plain text
9375 #: build/C/man3/sigpause.3:35
9376 #, no-wrap
9377 msgid "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
9378 msgstr "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
9379
9380 #. type: Plain text
9381 #: build/C/man3/sigpause.3:41
9382 msgid "Don't use this function.  Use B<sigsuspend>(2)  instead."
9383 msgstr "この関数を使わないこと。 代わりに B<sigsuspend>(2)  を使うこと。"
9384
9385 #. type: Plain text
9386 #: build/C/man3/sigpause.3:48
9387 msgid ""
9388 "The function B<sigpause>()  is designed to wait for some signal.  It changes "
9389 "the process's signal mask (set of blocked signals), and then waits for a "
9390 "signal to arrive.  Upon arrival of a signal, the original signal mask is "
9391 "restored."
9392 msgstr ""
9393 "関数 B<sigpause>()  はシグナルを待つように設計されている。 この関数はプロセス"
9394 "のシグナルマスク (ブロックされたシグナルのセット) を変更し、 シグナルが到着す"
9395 "るのを待つ。 シグナルが到着すると、シグナルマスクは元に戻される。"
9396
9397 #. type: Plain text
9398 #: build/C/man3/sigpause.3:56
9399 msgid ""
9400 "If B<sigpause>()  returns, it was interrupted by a signal and the return "
9401 "value is -1 with I<errno> set to B<EINTR>."
9402 msgstr ""
9403 "B<sigpause>()  が返った場合、この関数はシグナルによって割り込まれている。 返"
9404 "り値は -1 で、 I<errno> は B<EINTR> に設定される。"
9405
9406 #. type: Plain text
9407 #: build/C/man3/sigpause.3:61
9408 msgid "The B<sigpause>()  function is thread-safe."
9409 msgstr "B<sigpause>() 関数はスレッドセーフである。"
9410
9411 #. type: Plain text
9412 #: build/C/man3/sigpause.3:65
9413 msgid "The System V version of B<sigpause>()  is standardized in POSIX.1-2001."
9414 msgstr "System V 版の B<sigpause>()  は POSIX.1-2001 で標準化されている。"
9415
9416 #.  __xpg_sigpause: UNIX 95, spec 1170, SVID, SVr4, XPG
9417 #. type: Plain text
9418 #: build/C/man3/sigpause.3:82
9419 msgid ""
9420 "The classical BSD version of this function appeared in 4.2BSD.  It sets the "
9421 "process's signal mask to I<sigmask>.  UNIX 95 standardized the incompatible "
9422 "System V version of this function, which removes only the specified signal "
9423 "I<sig> from the process's signal mask.  The unfortunate situation with two "
9424 "incompatible functions with the same name was solved by the B<\\"
9425 "%sigsuspend>(2)  function, that takes a I<sigset_t\\ *> argument (instead of "
9426 "an I<int>)."
9427 msgstr ""
9428 "この関数の古典的な BSD 版は 4.2BSD で登場した。 この関数はプロセスのシグナル"
9429 "マスクを I<sigmask> に設定する。 UNIX 95 では BSD 版と互換性のない System V "
9430 "版のこの関数が標準化された。 UNIX 95 版は、指定されたシグナル I<sig> をプロセ"
9431 "スのシグナルマスクから削除するだけである。 同じ名前で互換性のない 2 つの関数"
9432 "があるという不幸な事態は、 B<\\%sigsuspend>(2)  関数によって解消された。 この"
9433 "関数は (I<int> の代わりに)  B<sigset_t\\ *> 引き数をとる。"
9434
9435 #. type: Plain text
9436 #: build/C/man3/sigpause.3:85
9437 msgid ""
9438 "On Linux, this routine is a system call only on the Sparc (sparc64)  "
9439 "architecture."
9440 msgstr ""
9441 "Linux では、このルーチンは Sparc (sparc64) アーキテクチャでのみ システムコー"
9442 "ルとなっている。"
9443
9444 #.  Libc4 and libc5 know only about the BSD version.
9445 #.  For the BSD version, one usually uses a zero
9446 #.  .I sigmask
9447 #.  to indicate that no signals are to be blocked.
9448 #. type: Plain text
9449 #: build/C/man3/sigpause.3:111
9450 msgid ""
9451 "Glibc uses the BSD version if the B<_BSD_SOURCE> feature test macro is "
9452 "defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
9453 "B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined.  Otherwise, the System V "
9454 "version is used (and B<_XOPEN_SOURCE> must be defined to obtain the "
9455 "declaration).  Since glibc 2.19, only the System V version is exposed by "
9456 "I<E<lt>signal.hE<gt>>; applications that formerly used the BSD "
9457 "B<sigpause>()  should be amended to use B<sigsuspend>(2)."
9458 msgstr ""
9459 "機能検査マクロ B<_BSD_SOURCE> が定義され、 B<_POSIX_SOURCE>, "
9460 "B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, B<_GNU_SOURCE>, B<_SVID_SOURCE> のいず"
9461 "れも定義されていない場合、 glibc は BSD 版を使う。 それ以外の場合には、"
9462 "System V 版を使用する (宣言を得るためには B<_XOPEN_SOURCE> が定義されていなけ"
9463 "ればならない)。 glibc 2.19 以降では、 I<E<lt>signal.hE<gt>> では System V 版"
9464 "だけが公開される。 BSD 版の B<sigpause>() を使用していたアプリケーションは "
9465 "B<sigsuspend>(2) を使用するように修正すべきである。"
9466
9467 #. type: Plain text
9468 #: build/C/man3/sigpause.3:119
9469 msgid ""
9470 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
9471 "B<sigblock>(3), B<sigvec>(3), B<feature_test_macros>(7)"
9472 msgstr ""
9473 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
9474 "B<sigblock>(3), B<sigvec>(3), B<feature_test_macros>(7)"
9475
9476 #. type: TH
9477 #: build/C/man2/sigpending.2:29
9478 #, no-wrap
9479 msgid "SIGPENDING"
9480 msgstr "SIGPENDING"
9481
9482 #. type: TH
9483 #: build/C/man2/sigpending.2:29
9484 #, no-wrap
9485 msgid "2013-12-11"
9486 msgstr "2013-12-11"
9487
9488 #. type: Plain text
9489 #: build/C/man2/sigpending.2:32
9490 msgid "sigpending - examine pending signals"
9491 msgstr "sigpending - 処理待ちのシグナルの検査"
9492
9493 #. type: Plain text
9494 #: build/C/man2/sigpending.2:36
9495 msgid "B<int sigpending(sigset_t *>I<set>B<);>"
9496 msgstr "B<int sigpending(sigset_t *>I<set>B<);>"
9497
9498 #. type: Plain text
9499 #: build/C/man2/sigpending.2:45
9500 msgid ""
9501 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9502 "_POSIX_SOURCE"
9503 msgstr ""
9504 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9505 "_POSIX_SOURCE"
9506
9507 #. type: Plain text
9508 #: build/C/man2/sigpending.2:53
9509 msgid ""
9510 "B<sigpending>()  returns the set of signals that are pending for delivery to "
9511 "the calling thread (i.e., the signals which have been raised while "
9512 "blocked).  The mask of pending signals is returned in I<set>."
9513 msgstr ""
9514 "B<sigpending>()  は、呼び出し元のスレッドへの配送を待っている (pending) シグ"
9515 "ナル集合 (すなわち、禁止中に発生したシグナル) を返す。 処理待ちのシグナルのマ"
9516 "スクが I<set> に格納される。"
9517
9518 #. type: Plain text
9519 #: build/C/man2/sigpending.2:59
9520 msgid ""
9521 "B<sigpending>()  returns 0 on success and -1 on error.  In the event of an "
9522 "error, I<errno> is set to indicate the cause."
9523 msgstr ""
9524 "B<sigpending>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、I<errno> "
9525 "にエラーの原因を示す値を設定する。"
9526
9527 #. type: Plain text
9528 #: build/C/man2/sigpending.2:64
9529 msgid ""
9530 "I<set> points to memory which is not a valid part of the process address "
9531 "space."
9532 msgstr ""
9533 "I<set> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
9534
9535 #. type: Plain text
9536 #: build/C/man2/sigpending.2:74
9537 msgid ""
9538 "If a signal is both blocked and has a disposition of \"ignored\", it is "
9539 "I<not> added to the mask of pending signals when generated."
9540 msgstr ""
9541 "シグナルが禁止 (ブロック) されており、かつ配送方法が \"ignored\" (無視) に"
9542 "なっている場合、そのシグナルが発生した場合に処理待ちシグナルのマスクにそのシ"
9543 "グナルは追加I<されない>。"
9544
9545 #. type: Plain text
9546 #: build/C/man2/sigpending.2:79
9547 msgid ""
9548 "The set of signals that is pending for a thread is the union of the set of "
9549 "signals that is pending for that thread and the set of signals that is "
9550 "pending for the process as a whole; see B<signal>(7)."
9551 msgstr ""
9552 "あるスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体への処理待ち"
9553 "のシグナル集合と、プロセス全体への処理待ちの シグナル集合をあわせたものであ"
9554 "る。 B<signal>(7)  参照。"
9555
9556 #. type: Plain text
9557 #: build/C/man2/sigpending.2:91
9558 msgid ""
9559 "In versions of glibc up to and including 2.2.1, there is a bug in the "
9560 "wrapper function for B<sigpending>()  which means that information about "
9561 "pending real-time signals is not correctly returned."
9562 msgstr ""
9563 "バージョン 2.2.1 以前の glibc では、 B<sigpending>()  のラッパー関数に、処理"
9564 "待ちのリアルタイムシグナルに関する情報が 正しく返されないというバグがある。"
9565
9566 #. type: Plain text
9567 #: build/C/man2/sigpending.2:99
9568 msgid ""
9569 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9570 "B<sigsuspend>(2), B<sigsetops>(3), B<signal>(7)"
9571 msgstr ""
9572 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9573 "B<sigsuspend>(2), B<sigsetops>(3), B<signal>(7)"
9574
9575 #. type: TH
9576 #: build/C/man2/sigprocmask.2:29
9577 #, no-wrap
9578 msgid "SIGPROCMASK"
9579 msgstr "SIGPROCMASK"
9580
9581 #. type: TH
9582 #: build/C/man2/sigprocmask.2:29 build/C/man2/sigsuspend.2:29
9583 #, no-wrap
9584 msgid "2013-04-19"
9585 msgstr "2013-04-19"
9586
9587 #. type: Plain text
9588 #: build/C/man2/sigprocmask.2:32
9589 msgid "sigprocmask - examine and change blocked signals"
9590 msgstr "sigprocmask - 禁止するシグナルの確認と変更"
9591
9592 #. type: Plain text
9593 #: build/C/man2/sigprocmask.2:37
9594 msgid ""
9595 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9596 "*>I<oldset>B<);>"
9597 msgstr ""
9598 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9599 "*>I<oldset>B<);>"
9600
9601 #. type: Plain text
9602 #: build/C/man2/sigprocmask.2:46
9603 msgid ""
9604 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9605 "_POSIX_SOURCE"
9606 msgstr ""
9607 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9608 "_POSIX_SOURCE"
9609
9610 #. type: Plain text
9611 #: build/C/man2/sigprocmask.2:55
9612 msgid ""
9613 "B<sigprocmask>()  is used to fetch and/or change the signal mask of the "
9614 "calling thread.  The signal mask is the set of signals whose delivery is "
9615 "currently blocked for the caller (see also B<signal>(7)  for more details)."
9616 msgstr ""
9617 "B<sigprocmask>()  を使うと、呼び出したスレッドのシグナルマスクの取得/変更がで"
9618 "きる。 シグナルマスクは、呼び出し元に対して現在配送が禁止されているシグナル"
9619 "の 集合のことである (詳細については B<signal>(7)  も参照のこと)。"
9620
9621 #. type: Plain text
9622 #: build/C/man2/sigprocmask.2:59
9623 msgid ""
9624 "The behavior of the call is dependent on the value of I<how>, as follows."
9625 msgstr "このコールの動作は I<how> の値によって決まる:"
9626
9627 #. type: TP
9628 #: build/C/man2/sigprocmask.2:59
9629 #, no-wrap
9630 msgid "B<SIG_BLOCK>"
9631 msgstr "B<SIG_BLOCK>"
9632
9633 #. type: Plain text
9634 #: build/C/man2/sigprocmask.2:64
9635 msgid ""
9636 "The set of blocked signals is the union of the current set and the I<set> "
9637 "argument."
9638 msgstr ""
9639 "禁止されたシグナルの集合は現在の値と I<set> 引き数を結合したものとなる。"
9640
9641 #. type: TP
9642 #: build/C/man2/sigprocmask.2:64
9643 #, no-wrap
9644 msgid "B<SIG_UNBLOCK>"
9645 msgstr "B<SIG_UNBLOCK>"
9646
9647 #. type: Plain text
9648 #: build/C/man2/sigprocmask.2:70
9649 msgid ""
9650 "The signals in I<set> are removed from the current set of blocked signals.  "
9651 "It is permissible to attempt to unblock a signal which is not blocked."
9652 msgstr ""
9653 "現在禁止されているシグナルの集合から I<set> にあるシグナルを取り除く。禁止さ"
9654 "れていないシグナルを取り除こうと することも認められている。"
9655
9656 #. type: TP
9657 #: build/C/man2/sigprocmask.2:70
9658 #, no-wrap
9659 msgid "B<SIG_SETMASK>"
9660 msgstr "B<SIG_SETMASK>"
9661
9662 #. type: Plain text
9663 #: build/C/man2/sigprocmask.2:74
9664 msgid "The set of blocked signals is set to the argument I<set>."
9665 msgstr "禁止されているシグナルの集合に I<set> 引き数を設定する。"
9666
9667 #. type: Plain text
9668 #: build/C/man2/sigprocmask.2:79
9669 msgid ""
9670 "If I<oldset> is non-NULL, the previous value of the signal mask is stored in "
9671 "I<oldset>."
9672 msgstr ""
9673 "I<oldset> が NULL でなければ、シグナルマスクの今までの値を I<oldset> に格納す"
9674 "る。"
9675
9676 #. type: Plain text
9677 #: build/C/man2/sigprocmask.2:88
9678 msgid ""
9679 "If I<set> is NULL, then the signal mask is unchanged (i.e., I<how> is "
9680 "ignored), but the current value of the signal mask is nevertheless returned "
9681 "in I<oldset> (if it is not NULL)."
9682 msgstr ""
9683 "I<set> が NULL であれば、シグナルマスクは変更されない (すなわち、 I<how> は無"
9684 "視される)。 I<set> の値にかかわらず、現在のシグナルマスクの値は I<oldset> に"
9685 "入れて返される (但し、 I<oldset> が NULL でない場合)。"
9686
9687 #. type: Plain text
9688 #: build/C/man2/sigprocmask.2:93
9689 msgid ""
9690 "The use of B<sigprocmask>()  is unspecified in a multithreaded process; see "
9691 "B<pthread_sigmask>(3)."
9692 msgstr ""
9693 "マルチスレッドのプロセスで B<sigprocmask>()  を使用した場合の動作は規定されて"
9694 "いない。 B<pthread_sigmask>(3)  を参照のこと。"
9695
9696 #. type: Plain text
9697 #: build/C/man2/sigprocmask.2:99
9698 msgid ""
9699 "B<sigprocmask>()  returns 0 on success and -1 on error.  In the event of an "
9700 "error, I<errno> is set to indicate the cause."
9701 msgstr ""
9702 "B<sigprocmask>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、 "
9703 "I<errno> にエラーの原因を示す値を設定する。"
9704
9705 #. type: Plain text
9706 #: build/C/man2/sigprocmask.2:107
9707 msgid ""
9708 "the I<set> or I<oldset> argument points outside the process's allocated "
9709 "address space."
9710 msgstr ""
9711 "引き数 I<set> か I<oldset> がプロセスに割り当てられたアドレス空間の外を指して"
9712 "いる。"
9713
9714 #. type: Plain text
9715 #: build/C/man2/sigprocmask.2:112
9716 msgid "The value specified in I<how> was invalid."
9717 msgstr "I<how> に指定された値が有効ではない。"
9718
9719 #. type: Plain text
9720 #: build/C/man2/sigprocmask.2:118
9721 msgid ""
9722 "It is not possible to block B<SIGKILL> or B<SIGSTOP>.  Attempts to do so are "
9723 "silently ignored."
9724 msgstr ""
9725 "B<SIGKILL> や B<SIGSTOP> を禁止することはできない。 禁止しようとしても黙って"
9726 "無視される。"
9727
9728 #. type: Plain text
9729 #: build/C/man2/sigprocmask.2:120
9730 msgid "Each of the threads in a process has its own signal mask."
9731 msgstr "プロセス内の各スレッドはそれぞれ専用のシグナルマスクを持つ。"
9732
9733 #. type: Plain text
9734 #: build/C/man2/sigprocmask.2:140
9735 msgid ""
9736 "If B<SIGBUS>, B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> are generated while they "
9737 "are blocked, the result is undefined, unless the signal was generated by "
9738 "B<kill>(2), B<sigqueue>(3), or B<raise>(3)."
9739 msgstr ""
9740 "シグナル B<SIGBUS>, B<SIGFPE>, B<SIGILL>, B<SIGSEGV> が禁止されている間に生成"
9741 "された場合で、 そのシグナルが B<kill>(2), B<sigqueue>(3), B<raise>(3)  によっ"
9742 "て生成されたものでないときには、 その後の動作は未定義である。"
9743
9744 #. type: Plain text
9745 #: build/C/man2/sigprocmask.2:155
9746 msgid ""
9747 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9748 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9749 "B<signal>(7)"
9750 msgstr ""
9751 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9752 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9753 "B<signal>(7)"
9754
9755 #. type: TH
9756 #: build/C/man3/sigqueue.3:28
9757 #, no-wrap
9758 msgid "SIGQUEUE"
9759 msgstr "SIGQUEUE"
9760
9761 #. type: TH
9762 #: build/C/man3/sigqueue.3:28 build/C/man3/sigwait.3:26
9763 #, no-wrap
9764 msgid "2013-12-16"
9765 msgstr "2013-12-16"
9766
9767 #. type: Plain text
9768 #: build/C/man3/sigqueue.3:31
9769 msgid "sigqueue - queue a signal and data to a process"
9770 msgstr "sigqueue - シグナルとデータをプロセスに送る"
9771
9772 #. type: Plain text
9773 #: build/C/man3/sigqueue.3:35
9774 msgid ""
9775 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9776 ">I<value>B<);>"
9777 msgstr ""
9778 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9779 ">I<value>B<);>"
9780
9781 #. type: Plain text
9782 #: build/C/man3/sigqueue.3:43
9783 msgid "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9784 msgstr "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9785
9786 #. type: Plain text
9787 #: build/C/man3/sigqueue.3:55
9788 msgid ""
9789 "B<sigqueue>()  sends the signal specified in I<sig> to the process whose PID "
9790 "is given in I<pid>.  The permissions required to send a signal are the same "
9791 "as for B<kill>(2).  As with B<kill>(2), the null signal (0) can be used to "
9792 "check if a process with a given PID exists."
9793 msgstr ""
9794 "B<sigqueue>()  は I<sig> で指定されたシグナルを、PID が I<pid> であるプロセス"
9795 "に送る。 シグナルを送るのに必要な権限は B<kill>(2)  と同じである。 "
9796 "B<kill>(2)  と同様に、ヌル・シグナル (0) を使って 指定した PID のプロセスが存"
9797 "在するかをチェックすることができる。"
9798
9799 #. type: Plain text
9800 #: build/C/man3/sigqueue.3:60
9801 msgid ""
9802 "The I<value> argument is used to specify an accompanying item of data "
9803 "(either an integer or a pointer value) to be sent with the signal, and has "
9804 "the following type:"
9805 msgstr ""
9806 "I<value> 引き数はシグナルと一緒に送るデータの付属アイテムを指定する。 "
9807 "I<value> は (整数またはポインタの値であり) 以下のような型である。"
9808
9809 #. type: Plain text
9810 #: build/C/man3/sigqueue.3:67
9811 #, no-wrap
9812 msgid ""
9813 "union sigval {\n"
9814 "    int   sival_int;\n"
9815 "    void *sival_ptr;\n"
9816 "};\n"
9817 msgstr ""
9818 "union sigval {\n"
9819 "    int   sival_int;\n"
9820 "    void *sival_ptr;\n"
9821 "};\n"
9822
9823 #. type: Plain text
9824 #: build/C/man3/sigqueue.3:83
9825 msgid ""
9826 "If the receiving process has installed a handler for this signal using the "
9827 "B<SA_SIGINFO> flag to B<sigaction>(2), then it can obtain this data via the "
9828 "I<si_value> field of the I<siginfo_t> structure passed as the second "
9829 "argument to the handler.  Furthermore, the I<si_code> field of that "
9830 "structure will be set to B<SI_QUEUE>."
9831 msgstr ""
9832 "受取先のプロセスに、このシグナルに対するハンドラを (B<sigaction>(2)  に "
9833 "B<SA_SIGINFO> を指定して) インストールしておくと、 そのハンドラの第 2 引き数"
9834 "に渡される I<siginfo_t> 構造体の I<si_value> フィールドによって、このデータを"
9835 "取得できる。 さらに、この構造体の I<si_code> フィールドは B<SI_QUEUE> に設定"
9836 "される。"
9837
9838 #. type: Plain text
9839 #: build/C/man3/sigqueue.3:91
9840 msgid ""
9841 "On success, B<sigqueue>()  returns 0, indicating that the signal was "
9842 "successfully queued to the receiving process.  Otherwise, -1 is returned and "
9843 "I<errno> is set to indicate the error."
9844 msgstr ""
9845 "成功した場合、 B<sigqueue>()  は 0 を返す。 これは受け取り側プロセスの待ち行"
9846 "列に シグナルが正しく入れられたことを示す。 失敗した場合は -1 が返され、 "
9847 "I<errno> がエラーを表す値に設定される。"
9848
9849 #. type: Plain text
9850 #: build/C/man3/sigqueue.3:102
9851 msgid "I<sig> was invalid."
9852 msgstr "I<sig> が不正である。"
9853
9854 #. type: Plain text
9855 #: build/C/man3/sigqueue.3:108
9856 msgid ""
9857 "The process does not have permission to send the signal to the receiving "
9858 "process.  For the required permissions, see B<kill>(2)."
9859 msgstr ""
9860 "このプロセスには、受け取り側プロセスにシグナルを送る権限がない。 必要な権限に"
9861 "ついては、 B<kill>(2)  を参照すること。"
9862
9863 #. type: Plain text
9864 #: build/C/man3/sigqueue.3:112
9865 msgid "No process has a PID matching I<pid>."
9866 msgstr "I<pid> にマッチする PID のプロセスがない。"
9867
9868 #. type: Plain text
9869 #: build/C/man3/sigqueue.3:114
9870 msgid "This system call first appeared in Linux 2.2."
9871 msgstr "このシステムコールは Linux 2.2 で初めて登場した。"
9872
9873 #. type: Plain text
9874 #: build/C/man3/sigqueue.3:119
9875 msgid "The B<sigqueue>()  function is thread-safe."
9876 msgstr "B<sigqueue>() 関数はスレッドセーフである。"
9877
9878 #. type: Plain text
9879 #: build/C/man3/sigqueue.3:129
9880 msgid ""
9881 "If this function results in the sending of a signal to the process that "
9882 "invoked it, and that signal was not blocked by the calling thread, and no "
9883 "other threads were willing to handle this signal (either by having it "
9884 "unblocked, or by waiting for it using B<sigwait>(3)), then at least some "
9885 "signal must be delivered to this thread before this function returns."
9886 msgstr ""
9887 "この関数を呼び出したプロセスにこの関数がシグナルを送ったときに、 シグナルが呼"
9888 "び出し側スレッドにブロックされず、 かつ (シグナルがブロックされなかった、また"
9889 "は B<sigwait>(3)  を使用するのを待っていることにより)  このシグナルを扱うス"
9890 "レッドが何もない場合は、 この関数がリターンする前に、少なくとも そのスレッド"
9891 "に対してシグナルが配送されていなければならない。"
9892
9893 #. type: Plain text
9894 #: build/C/man3/sigqueue.3:144
9895 msgid ""
9896 "On Linux, this function is implemented using the B<rt_sigqueueinfo>(2)  "
9897 "system call.  The system call differs in its third argument, which is the "
9898 "I<siginfo_t> structure that will be supplied to the receiving process's "
9899 "signal handler or returned by the receiving process's B<sigtimedwait>(2)  "
9900 "call.  Inside the glibc B<sigqueue>()  wrapper, this argument, I<uinfo>, is "
9901 "initialized as follows:"
9902 msgstr ""
9903 "Linux では、この関数は B<rt_sigqueueinfo>(2)  システムコールを使って実装され"
9904 "ている。 両者には 3 番目の引き数に違いがあり、 B<rt_sigqueueinfo>(2)  では 3 "
9905 "番目の引き数は I<siginfo_t> 構造体である。 I<siginfo_t> 構造体は、シグナルを"
9906 "受信するプロセスのシグナルハンドラに渡されたり、 シグナル受信プロセスの "
9907 "B<sigtimedwait>(2)  システムコールから返されたりする。 glibc の "
9908 "B<sigqueue>()  ラッパー関数内部では、 この引き数 I<uinfo> は以下のように初期"
9909 "化される。"
9910
9911 #. type: Plain text
9912 #: build/C/man3/sigqueue.3:152
9913 #, no-wrap
9914 msgid ""
9915 "uinfo.si_signo = sig;      /* Argument supplied to sigqueue() */\n"
9916 "uinfo.si_code = SI_QUEUE;\n"
9917 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9918 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9919 "uinfo.si_value = val;      /* Argument supplied to sigqueue() */\n"
9920 msgstr ""
9921 "uinfo.si_signo = sig;      /* Argument supplied to sigqueue() */\n"
9922 "uinfo.si_code = SI_QUEUE;\n"
9923 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9924 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9925 "uinfo.si_value = val;      /* Argument supplied to sigqueue() */\n"
9926
9927 #. type: Plain text
9928 #: build/C/man3/sigqueue.3:162
9929 msgid ""
9930 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9931 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9932 msgstr ""
9933 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9934 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9935
9936 #. type: TH
9937 #: build/C/man2/sigreturn.2:30
9938 #, no-wrap
9939 msgid "SIGRETURN"
9940 msgstr "SIGRETURN"
9941
9942 #. type: Plain text
9943 #: build/C/man2/sigreturn.2:33
9944 msgid "sigreturn - return from signal handler and cleanup stack frame"
9945 msgstr "sigreturn - シグナル・ハンドラから返り、スタックを掃除する"
9946
9947 #. type: Plain text
9948 #: build/C/man2/sigreturn.2:35
9949 #, fuzzy
9950 #| msgid "B<int siggetmask(void);>"
9951 msgid "B<int sigreturn(...);>"
9952 msgstr "B<int siggetmask(void);>"
9953
9954 #.  See arch/x86/kernel/signal.c::__setup_frame() [in 3.17 source code]
9955 #. type: Plain text
9956 #: build/C/man2/sigreturn.2:45
9957 msgid ""
9958 "If the Linux kernel determines that an unblocked signal is pending for a "
9959 "process, then, at the next transition back to user mode in that process (e."
9960 "g., upon return from a system call or when the process is rescheduled onto "
9961 "the CPU), it saves various pieces of process context (processor status word, "
9962 "registers, signal mask, and signal stack settings)  into the user-space "
9963 "stack."
9964 msgstr ""
9965
9966 #. type: Plain text
9967 #: build/C/man2/sigreturn.2:52
9968 msgid ""
9969 "The kernel also arranges that, during the transition back to user mode, the "
9970 "signal handler is called, and that, upon return from the handler, control "
9971 "passes to a piece of user-space code commonly called the \"signal trampoline"
9972 "\".  The signal trampoline code in turn calls B<sigreturn>()."
9973 msgstr ""
9974
9975 #. type: Plain text
9976 #: build/C/man2/sigreturn.2:65
9977 #, fuzzy
9978 #| msgid ""
9979 #| "This B<sigreturn>()  call undoes everything that was done\\(emchanging "
9980 #| "the process's signal mask, switching stacks (see "
9981 #| "B<sigaltstack>(2))\\(emin order to invoke the signal handler: it restores "
9982 #| "the process's signal mask, switches stacks, and restores the process's "
9983 #| "context (registers, processor flags), so that the process directly "
9984 #| "resumes execution at the point where it was interrupted by the signal."
9985 msgid ""
9986 "This B<sigreturn>()  call undoes everything that was done\\(emchanging the "
9987 "process's signal mask, switching signal stacks (see "
9988 "B<sigaltstack>(2))\\(emin order to invoke the signal handler.  It restores "
9989 "the process's signal mask, switches stacks, and restores the process's "
9990 "context (processor flags and registers, including the stack pointer and "
9991 "instruction pointer), so that the process resumes execution at the point "
9992 "where it was interrupted by the signal."
9993 msgstr ""
9994 "B<sigreturn>()  は、シグナル・ハンドラを起動するために行ったことの全て \\(em "
9995 "プロセスのシグナルマスクの変更、スタックの切り替え (B<sigaltstack>(2)  参照) "
9996 "\\(em の取り消しを行う。 プロセスのシグナルマスクの復元、スタックの切り替"
9997 "え、 プロセスのコンテキスト (レジスタ、プロセッサ・フラグ) の復元を行い、 プ"
9998 "ロセスがシグナルにより割り込まれた場所からそのまま実行を 再開できるようにす"
9999 "る。"
10000
10001 #. type: Plain text
10002 #: build/C/man2/sigreturn.2:68
10003 msgid "B<sigreturn>()  never returns."
10004 msgstr "B<sigreturn>()  が返ることはない。"
10005
10006 #. type: Plain text
10007 #: build/C/man2/sigreturn.2:74
10008 msgid ""
10009 "Many UNIX-type systems have a B<sigreturn>()  system call or near "
10010 "equivalent.  However, this call is not specified in POSIX, and details of "
10011 "its behavior vary across systems."
10012 msgstr ""
10013
10014 #. type: Plain text
10015 #: build/C/man2/sigreturn.2:83
10016 #, fuzzy
10017 #| msgid ""
10018 #| "The B<sigreturn>()  call is used by the kernel to implement signal "
10019 #| "handlers.  It should B<never> be called directly.  Better yet, the "
10020 #| "specific use of the I<__unused> argument varies depending on the "
10021 #| "architecture."
10022 msgid ""
10023 "B<sigreturn>()  exists only to allow the implementation of signal handlers.  "
10024 "It should B<never> be called directly.  Details of the arguments (if any) "
10025 "passed to B<sigreturn>()  vary depending on the architecture."
10026 msgstr ""
10027 "B<sigreturn>()  コールは、シグナル・ハンドラを実装するためにカーネルにより使"
10028 "用される。 これを直接呼び出しては B<決して> いけない。さらに I<__unused> 引き"
10029 "数がどのように使われるかはそのアーキテクチャに依存して変化する。"
10030
10031 #.  See, for example, sysdeps/unix/sysv/linux/i386/sigaction.c and
10032 #.  sysdeps/unix/sysv/linux/x86_64/sigaction.c in the glibc (2.20) source.
10033 #. type: Plain text
10034 #: build/C/man2/sigreturn.2:106
10035 msgid ""
10036 "Once upon a time, UNIX systems placed the signal trampoline code onto the "
10037 "user stack.  Nowadays, pages of the user stack are protected so as to "
10038 "disallow code execution.  Thus, on contemporary Linux systems, depending on "
10039 "the architecture, the signal trampoline code lives either in the B<vdso>(7)  "
10040 "or in the C library.  In the latter case, the C library supplies the "
10041 "location of the trampoline code using the I<sa_restorer> field of the "
10042 "I<sigaction> structure that is passed to B<sigaction>(2), and sets the "
10043 "B<SA_RESTORER> flag in the I<sa_flags> field."
10044 msgstr ""
10045
10046 #. type: Plain text
10047 #: build/C/man2/sigreturn.2:115
10048 msgid ""
10049 "The saved process context information is placed in a I<ucontext_t> structure "
10050 "(see I<E<lt>sys/ucontext.hE<gt>>).  That structure is visible within the "
10051 "signal handler as the third argument of a handler established with the "
10052 "B<SA_SIGINFO> flag."
10053 msgstr ""
10054
10055 #. type: Plain text
10056 #: build/C/man2/sigreturn.2:123
10057 msgid ""
10058 "On some other UNIX systems, the operation of the signal trampoline differs a "
10059 "little.  In particular, on some systems, upon transitioning back to user "
10060 "mode, the kernel passes control to the trampoline (rather than the signal "
10061 "handler), and the trampoline code calls the signal handler (and then calls "
10062 "B<sigreturn>()  once the handler returns)."
10063 msgstr ""
10064
10065 #. type: Plain text
10066 #: build/C/man2/sigreturn.2:130
10067 #, fuzzy
10068 #| msgid ""
10069 #| "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), "
10070 #| "B<signal>(7)"
10071 msgid ""
10072 "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), "
10073 "B<getcontext>(3), B<signal>(7)"
10074 msgstr ""
10075 "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), "
10076 "B<signal>(7)"
10077
10078 #. type: TH
10079 #: build/C/man3/sigset.3:26
10080 #, no-wrap
10081 msgid "SIGSET"
10082 msgstr "SIGSET"
10083
10084 #. type: Plain text
10085 #: build/C/man3/sigset.3:29
10086 msgid "sigset, sighold, sigrelse, sigignore - System V signal API"
10087 msgstr "sigset, sighold, sigrelse, sigignore - System V 版シグナル API"
10088
10089 #. type: Plain text
10090 #: build/C/man3/sigset.3:35
10091 msgid "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
10092 msgstr "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
10093
10094 #. type: Plain text
10095 #: build/C/man3/sigset.3:37
10096 msgid "B<int sighold(int >I<sig>B<);>"
10097 msgstr "B<int sighold(int >I<sig>B<);>"
10098
10099 #. type: Plain text
10100 #: build/C/man3/sigset.3:39
10101 msgid "B<int sigrelse(int >I<sig>B<);>"
10102 msgstr "B<int sigrelse(int >I<sig>B<);>"
10103
10104 #. type: Plain text
10105 #: build/C/man3/sigset.3:41
10106 msgid "B<int sigignore(int >I<sig>B<);>"
10107 msgstr "B<int sigignore(int >I<sig>B<);>"
10108
10109 #. type: Plain text
10110 #: build/C/man3/sigset.3:52
10111 msgid "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
10112 msgstr "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
10113
10114 #. type: Plain text
10115 #: build/C/man3/sigset.3:56
10116 msgid ""
10117 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
10118 msgstr ""
10119 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
10120
10121 #. type: Plain text
10122 #: build/C/man3/sigset.3:65
10123 msgid ""
10124 "These functions are provided in glibc as a compatibility interface for "
10125 "programs that make use of the historical System V signal API.  This API is "
10126 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
10127 "B<sigprocmask>(2), etc.)"
10128 msgstr ""
10129 "これらの関数は、昔ながらの System V 版シグナル API を使用しているプログラム "
10130 "に対して互換性のあるインタフェースを glibc で提供するものである。 この API は"
10131 "過去のものであり、新しいアプリケーションでは POSIX シグナル API "
10132 "(B<sigaction>(2), B<sigprocmask>(2)  など) を使用すべきである。"
10133
10134 #. type: Plain text
10135 #: build/C/man3/sigset.3:74
10136 msgid ""
10137 "The B<sigset>()  function modifies the disposition of the signal I<sig>.  "
10138 "The I<disp> argument can be the address of a signal handler function, or one "
10139 "of the following constants:"
10140 msgstr ""
10141 "関数 B<sigset>()  はシグナル I<sig> のシグナルハンドラの動作を変更する。 "
10142 "I<disp> 引き数には、シグナルハンドラ関数のアドレスか、 以下の定数のいずれか一"
10143 "つを指定できる。"
10144
10145 #. type: TP
10146 #: build/C/man3/sigset.3:74
10147 #, no-wrap
10148 msgid "B<SIG_DFL>"
10149 msgstr "B<SIG_DFL>"
10150
10151 #. type: Plain text
10152 #: build/C/man3/sigset.3:79
10153 msgid "Reset the disposition of I<sig> to the default."
10154 msgstr "I<sig> の動作をデフォルトにリセットする。"
10155
10156 #. type: TP
10157 #: build/C/man3/sigset.3:79
10158 #, no-wrap
10159 msgid "B<SIG_IGN>"
10160 msgstr "B<SIG_IGN>"
10161
10162 #. type: Plain text
10163 #: build/C/man3/sigset.3:83
10164 msgid "Ignore I<sig>."
10165 msgstr "I<sig> を無視する。"
10166
10167 #. type: TP
10168 #: build/C/man3/sigset.3:83
10169 #, no-wrap
10170 msgid "B<SIG_HOLD>"
10171 msgstr "B<SIG_HOLD>"
10172
10173 #. type: Plain text
10174 #: build/C/man3/sigset.3:90
10175 msgid ""
10176 "Add I<sig> to the process's signal mask, but leave the disposition of I<sig> "
10177 "unchanged."
10178 msgstr ""
10179 "そのプロセスのシグナルマスクに I<sig> を追加するが、 I<sig> の動作は変更しな"
10180 "い。"
10181
10182 #. type: Plain text
10183 #: build/C/man3/sigset.3:96
10184 msgid ""
10185 "If I<disp> specifies the address of a signal handler, then I<sig> is added "
10186 "to the process's signal mask during execution of the handler."
10187 msgstr ""
10188 "I<disp> にシグナルハンドラのアドレスが指定された場合、 シグナルハンドラの実行"
10189 "中は、そのプロセスのシグナルマスクに I<sig> が追加される。"
10190
10191 #. type: Plain text
10192 #: build/C/man3/sigset.3:104
10193 msgid ""
10194 "If I<disp> was specified as a value other than B<SIG_HOLD>, then I<sig> is "
10195 "removed from the process's signal mask."
10196 msgstr ""
10197 "I<disp> に B<SIG_HOLD> 以外の値が指定された場合、 そのプロセスのシグナルマス"
10198 "クから I<sig> が削除される。"
10199
10200 #. type: Plain text
10201 #: build/C/man3/sigset.3:110 build/C/man3/sigvec.3:87
10202 msgid "The dispositions for B<SIGKILL> and B<SIGSTOP> cannot be changed."
10203 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> に対する動作は変更できない。"
10204
10205 #. type: Plain text
10206 #: build/C/man3/sigset.3:116
10207 msgid ""
10208 "The B<sighold>()  function adds I<sig> to the calling process's signal mask."
10209 msgstr ""
10210 "関数 B<sighold>()  は、呼び出し元プロセスのシグナルマスクに I<sig> を追加す"
10211 "る。"
10212
10213 #. type: Plain text
10214 #: build/C/man3/sigset.3:122
10215 msgid ""
10216 "The B<sigrelse>()  function removes I<sig> from the calling process's signal "
10217 "mask."
10218 msgstr ""
10219 "関数 B<sigrelse>()  は、呼び出し元プロセスのシグナルマスクから I<sig> を削除"
10220 "する。"
10221
10222 #. type: Plain text
10223 #: build/C/man3/sigset.3:129
10224 msgid ""
10225 "The B<sigignore>()  function sets the disposition of I<sig> to B<SIG_IGN>."
10226 msgstr "関数 B<sigignore>()  は、 I<sig> の動作を B<SIG_IGN> に設定する。"
10227
10228 #. type: Plain text
10229 #: build/C/man3/sigset.3:145
10230 msgid ""
10231 "On success, B<sigset>()  returns B<SIG_HOLD> if I<sig> was blocked before "
10232 "the call, or the signal's previous disposition if it was not blocked before "
10233 "the call.  On error, B<sigset>()  returns -1, with I<errno> set to indicate "
10234 "the error.  (But see BUGS below.)"
10235 msgstr ""
10236 "B<sigset>()  は成功すると、 呼び出し前に I<sig> がブロックされていた場合には "
10237 "B<SIG_HOLD> を返し、 ブロックされていなかった場合には 変更前のそのシグナルの"
10238 "動作を返す。 エラーの場合、 B<sigset>()  は -1 を返し、 I<errno> にエラーを示"
10239 "す値をセットする。 但し、以下の「バグ」の節も参照のこと。"
10240
10241 #. type: Plain text
10242 #: build/C/man3/sigset.3:154
10243 msgid ""
10244 "The B<sighold>(), B<sigrelse>(), and B<sigignore>()  functions return 0 on "
10245 "success; on error, these functions return -1 and set I<errno> to indicate "
10246 "the error."
10247 msgstr ""
10248 "関数 B<sighold>(), B<sigrelse>(), B<sigignore>()  は成功すると 0 を返す。エ"
10249 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値をセットする。"
10250
10251 #. type: Plain text
10252 #: build/C/man3/sigset.3:161
10253 msgid ""
10254 "For B<sigset>()  see the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
10255 msgstr ""
10256 "B<sigset>()  に関しては、 B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」"
10257 "の節を参照。"
10258
10259 #. type: Plain text
10260 #: build/C/man3/sigset.3:168
10261 msgid ""
10262 "For B<sighold>()  and B<sigrelse>()  see the ERRORS under B<sigprocmask>(2)."
10263 msgstr ""
10264 "B<sighold>()  と B<sigrelse>()  に関しては、 B<sigprocmask>(2)  の「エラー」"
10265 "の節を参照。"
10266
10267 #. type: Plain text
10268 #: build/C/man3/sigset.3:173
10269 msgid "For B<sigignore>(), see the errors under B<sigaction>(2)."
10270 msgstr "B<sigignore>()  に関しては、 B<sigaction>(2)  の「エラー」の節を参照。"
10271
10272 #. type: Plain text
10273 #: build/C/man3/sigset.3:190
10274 msgid ""
10275 "SVr4, POSIX.1-2001.  These functions are obsolete: do not use them in new "
10276 "programs.  POSIX.1-2008 marks B<sighold>(), B<sigignore>(), B<sigpause>(), "
10277 "B<sigrelse>(), and B<sigset>()  as obsolete, recommending the use of "
10278 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), and "
10279 "B<sigsuspend>(2)  instead."
10280 msgstr ""
10281 "SVr4, POSIX.1-2001.  これらの関数は廃止予定である。新しいプログラムでは使用し"
10282 "ないこと。 POSIX.1-2008 は、 B<sighold>(), B<sigignore>(), B<sigpause>(), "
10283 "B<sigrelse>(), B<sigset>()  を廃止予定としている。 代わりに、 "
10284 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), B<sigsuspend>(2)  "
10285 "の使用が推奨されている。"
10286
10287 #. type: Plain text
10288 #: build/C/man3/sigset.3:192
10289 msgid "These functions appeared in glibc version 2.1."
10290 msgstr "これらの関数は glibc 2.1 で登場した。"
10291
10292 #. type: Plain text
10293 #: build/C/man3/sigset.3:198
10294 msgid ""
10295 "The I<sighandler_t> type is a GNU extension; it is used on this page only to "
10296 "make the B<sigset>()  prototype more easily readable."
10297 msgstr ""
10298 "I<sighandler_t> 型は GNU による拡張であり、この man page で B<sigset>()  のプ"
10299 "ロトタイプをより読みやすくするために使われているだけである。"
10300
10301 #. type: Plain text
10302 #: build/C/man3/sigset.3:206
10303 msgid ""
10304 "The B<sigset>()  function provides reliable signal handling semantics (as "
10305 "when calling B<sigaction>(2)  with I<sa_mask> equal to 0)."
10306 msgstr ""
10307 "関数 B<sigset>()  は信頼性のあるシグナル処理機構を提供する (I<sa_mask> を 0 "
10308 "で B<sigaction>(2)  を呼び出したときと同様)。"
10309
10310 #. type: Plain text
10311 #: build/C/man3/sigset.3:224
10312 msgid ""
10313 "On System V, the B<signal>()  function provides unreliable semantics (as "
10314 "when calling B<sigaction>(2)  with I<sa_mask> equal to I<SA_RESETHAND | "
10315 "SA_NODEFER>).  On BSD, B<signal>()  provides reliable semantics.  "
10316 "POSIX.1-2001 leaves these aspects of B<signal>()  unspecified.  See "
10317 "B<signal>(2)  for further details."
10318 msgstr ""
10319 "System V では、関数 B<signal>()  が提供する処理機構は信頼性のないものである "
10320 "(I<sa_mask> を I<SA_RESETHAND | SA_NODEFER> として B<sigaction>(2)  を呼び出"
10321 "したときと同様)。 BSD では、 B<signal>()  は信頼性のある処理機構を提供する。 "
10322 "POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままとなっている。 さら"
10323 "なる詳細については B<signal>(2)  を参照。"
10324
10325 #. type: Plain text
10326 #: build/C/man3/sigset.3:232 build/C/man3/sigvec.3:272
10327 msgid ""
10328 "In order to wait for a signal, BSD and System V both provided a function "
10329 "named B<sigpause>(3), but this function has a different argument on the two "
10330 "systems.  See B<sigpause>(3)  for details."
10331 msgstr ""
10332 "BSD と System V のどちらのシステムでも シグナルを待つために、 "
10333 "B<sigpause>(3)  という名前の関数が提供されているが、 この関数の引き数は両方の"
10334 "システムで異なる。 詳細は B<sigpause>(3)  を参照。"
10335
10336 #. type: Plain text
10337 #: build/C/man3/sigset.3:241
10338 msgid ""
10339 "In versions of glibc before 2.2, B<sigset>()  did not unblock I<sig> if "
10340 "I<disp> was specified as a value other than B<SIG_HOLD>."
10341 msgstr ""
10342 "2.2 より前のバージョンの glibc では、 I<disp> に B<SIG_HOLD> 以外の値が指定さ"
10343 "れた場合、 I<sig> のブロック解除を行っていなかった。"
10344
10345 #.  See http://sourceware.org/bugzilla/show_bug.cgi?id=1951
10346 #. type: Plain text
10347 #: build/C/man3/sigset.3:266
10348 msgid ""
10349 "In versions of glibc before 2.5, B<sigset>()  does not correctly return the "
10350 "previous disposition of the signal in two cases.  First, if I<disp> is "
10351 "specified as B<SIG_HOLD>, then a successful B<sigset>()  always returns "
10352 "B<SIG_HOLD>.  Instead, it should return the previous disposition of the "
10353 "signal (unless the signal was blocked, in which case B<SIG_HOLD> should be "
10354 "returned).  Second, if the signal is currently blocked, then the return "
10355 "value of a successful B<sigset>()  should be B<SIG_HOLD>.  Instead, the "
10356 "previous disposition of the signal is returned.  These problems have been "
10357 "fixed since glibc 2.5."
10358 msgstr ""
10359 "2.3.5 以前の全てのバージョンの glibc では、 B<sigset>()  が変更前のシグナルの"
10360 "動作を正しく返さない場合が 2つある。 一つめは、 I<disp> に B<SIG_HOLD> が指定"
10361 "されると、成功した場合 B<sigset>()  は常に B<SIG_HOLD> を返すことである。 正"
10362 "しくは、(シグナルがブロックされていなかった場合には)  変更前のシグナルの動作"
10363 "を返すべきである (シグナルがブロックされていた場合には、 B<SIG_HOLD> が返され"
10364 "る)。 もう一つは、シグナルが現在ブロックされている場合には、 成功した場合の "
10365 "B<sigset>()  の返り値は B<SIG_HOLD> になるべきであるが、実際には 変更前のシグ"
10366 "ナルの動作が返されることである。 これらの問題は glibc 2.5 以降で修正されてい"
10367 "る。"
10368
10369 #. type: Plain text
10370 #: build/C/man3/sigset.3:276
10371 msgid ""
10372 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10373 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
10374 msgstr ""
10375 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10376 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
10377
10378 #. type: TH
10379 #: build/C/man3/sigsetops.3:31
10380 #, no-wrap
10381 msgid "SIGSETOPS"
10382 msgstr "SIGSETOPS"
10383
10384 #. type: TH
10385 #: build/C/man3/sigsetops.3:31
10386 #, no-wrap
10387 msgid "2014-04-14"
10388 msgstr "2014-04-14"
10389
10390 #. type: Plain text
10391 #: build/C/man3/sigsetops.3:35
10392 msgid ""
10393 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX signal "
10394 "set operations"
10395 msgstr ""
10396 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX シグナル集"
10397 "合の操作"
10398
10399 #. type: Plain text
10400 #: build/C/man3/sigsetops.3:39
10401 msgid "B<int sigemptyset(sigset_t *>I<set>B<);>"
10402 msgstr "B<int sigemptyset(sigset_t *>I<set>B<);>"
10403
10404 #. type: Plain text
10405 #: build/C/man3/sigsetops.3:41
10406 msgid "B<int sigfillset(sigset_t *>I<set>B<);>"
10407 msgstr "B<int sigfillset(sigset_t *>I<set>B<);>"
10408
10409 #. type: Plain text
10410 #: build/C/man3/sigsetops.3:43
10411 msgid "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10412 msgstr "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10413
10414 #. type: Plain text
10415 #: build/C/man3/sigsetops.3:45
10416 msgid "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10417 msgstr "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10418
10419 #. type: Plain text
10420 #: build/C/man3/sigsetops.3:47
10421 msgid "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
10422 msgstr "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
10423
10424 #. type: Plain text
10425 #: build/C/man3/sigsetops.3:59
10426 msgid ""
10427 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10428 "B<sigismember>():"
10429 msgstr ""
10430 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10431 "B<sigismember>():"
10432
10433 #. type: Plain text
10434 #: build/C/man3/sigsetops.3:61
10435 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10436 msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10437
10438 #. type: Plain text
10439 #: build/C/man3/sigsetops.3:65
10440 msgid "These functions allow the manipulation of POSIX signal sets."
10441 msgstr "これらの関数は POSIX シグナル集合(signal set)を操作するため使用する。"
10442
10443 #. type: Plain text
10444 #: build/C/man3/sigsetops.3:70
10445 msgid ""
10446 "B<sigemptyset>()  initializes the signal set given by I<set> to empty, with "
10447 "all signals excluded from the set."
10448 msgstr ""
10449 "B<sigemptyset>()  は I<set> で与えられたシグナル集合を空に初期化し、シグナル"
10450 "が一つも 含まれていない状態にする。"
10451
10452 #. type: Plain text
10453 #: build/C/man3/sigsetops.3:75
10454 msgid "B<sigfillset>()  initializes I<set> to full, including all signals."
10455 msgstr ""
10456 "B<sigfillset>()  は I<set> で与えられたシグナル集合が全てのシグナルを含むよう"
10457 "にする。"
10458
10459 #. type: Plain text
10460 #: build/C/man3/sigsetops.3:83
10461 msgid ""
10462 "B<sigaddset>()  and B<sigdelset>()  add and delete respectively signal "
10463 "I<signum> from I<set>."
10464 msgstr ""
10465 "B<sigaddset>()  と B<sigdelset>()  は I<set> に I<signum> シグナルをそれぞれ"
10466 "加えたり、削除したりする。"
10467
10468 #. type: Plain text
10469 #: build/C/man3/sigsetops.3:89
10470 msgid "B<sigismember>()  tests whether I<signum> is a member of I<set>."
10471 msgstr ""
10472 "B<sigismember>()  は I<signum> が I<set> に含まれているかどうかをテストする。"
10473
10474 #. type: Plain text
10475 #: build/C/man3/sigsetops.3:107
10476 msgid ""
10477 "Objects of type I<sigset_t> must be initialized by a call to either "
10478 "B<sigemptyset>()  or B<sigfillset>()  before being passed to the functions "
10479 "B<sigaddset>(), B<sigdelset>()  and B<sigismember>()  or the additional "
10480 "glibc functions described below (B<sigisemptyset>(), B<sigandset>(), and "
10481 "B<sigorset>()).  The results are undefined if this is not done."
10482 msgstr ""
10483 "I<sigset_t> 型のオブジェクトは、関数 B<sigaddset>(), B<sigdelset>(), "
10484 "B<sigismember>()  や後述の glibc の追加関数 (B<sigisemptyset>(), "
10485 "B<sigandset>(), B<sigorset>())  に渡す前に、 B<sigemptyset>()  か "
10486 "B<sigfillset>()  を呼び出して初期化しなければならない。 初期化しなかった場合"
10487 "の結果は未定義である。"
10488
10489 #. type: Plain text
10490 #: build/C/man3/sigsetops.3:114
10491 msgid ""
10492 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), and B<sigdelset>()  "
10493 "return 0 on success and -1 on error."
10494 msgstr ""
10495 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>()  は成功すれ"
10496 "ば 0 を、エラーの場合は -1 を返す。"
10497
10498 #. type: Plain text
10499 #: build/C/man3/sigsetops.3:123
10500 #, fuzzy
10501 #| msgid ""
10502 #| "B<sigismember>()  returns 1 if I<signum> is a member of I<set>, 0 if "
10503 #| "I<signum> is not a member, and -1 on error.  On error, these functions "
10504 #| "set I<errno> to indicate the cause."
10505 msgid ""
10506 "B<sigismember>()  returns 1 if I<signum> is a member of I<set>, 0 if "
10507 "I<signum> is not a member, and -1 on error."
10508 msgstr ""
10509 "B<sigismember>()  は I<signum> が I<set> のメンバの場合 1 を返し、メンバでな"
10510 "い場合 0 を返す。 エラーの場合は -1 を返し、 I<errno> にエラーの原因を示す値"
10511 "を設定する。"
10512
10513 #. type: Plain text
10514 #: build/C/man3/sigsetops.3:127
10515 #, fuzzy
10516 #| msgid ""
10517 #| "Each of these calls sets I<errno> to an appropriate value in the case of "
10518 #| "an error."
10519 msgid ""
10520 "On error, these functions set I<errno> to indicate the cause of the error."
10521 msgstr ""
10522 "エラーの場合 -1 を返す。 エラーの場合、これらのシステムコールはいずれも "
10523 "I<errno> に適切な値を設定する。"
10524
10525 #. type: Plain text
10526 #: build/C/man3/sigsetops.3:132
10527 msgid "I<sig> is not a valid signal."
10528 msgstr "I<sig> が有効なシグナルではない。"
10529
10530 #. type: Plain text
10531 #: build/C/man3/sigsetops.3:145
10532 msgid ""
10533 "The B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10534 "B<sigismember>(), B<sigisemptyset>(), B<sigorset>(), and B<sigandset>()  "
10535 "functions are thread-safe."
10536 msgstr ""
10537 "関数 B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10538 "B<sigismember>(), B<sigisemptyset>(), B<sigorset>(), B<sigandset>() はスレッ"
10539 "ドセーフである。"
10540
10541 #. type: SS
10542 #: build/C/man3/sigsetops.3:148
10543 #, no-wrap
10544 msgid "Glibc notes"
10545 msgstr "glibc での注意"
10546
10547 #. type: Plain text
10548 #: build/C/man3/sigsetops.3:154
10549 msgid ""
10550 "If the B<_GNU_SOURCE> feature test macro is defined, then I<E<lt>signal."
10551 "hE<gt>> exposes three other functions for manipulating signal sets:"
10552 msgstr ""
10553 "B<_GNU_SOURCE> 機能検査マクロが定義されていると、 I<E<lt>signal.hE<gt>> でシ"
10554 "グナル集合を操作する 3 つの関数が追加で公開される。"
10555
10556 #. type: Plain text
10557 #: build/C/man3/sigsetops.3:161
10558 #, no-wrap
10559 msgid ""
10560 "B<int sigisemptyset(const sigset_t *>I<set>B<);>\n"
10561 "B<int sigorset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10562 "B<              const sigset_t *>I<right>B<);>\n"
10563 "B<int sigandset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10564 "B<              const sigset_t *>I<right>B<);>\n"
10565 msgstr ""
10566 "B<int sigisemptyset(const sigset_t *>I<set>B<);>\n"
10567 "B<int sigorset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10568 "B<              const sigset_t *>I<right>B<);>\n"
10569 "B<int sigandset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10570 "B<              const sigset_t *>I<right>B<);>\n"
10571
10572 #. type: Plain text
10573 #: build/C/man3/sigsetops.3:167
10574 msgid ""
10575 "B<sigisemptyset>()  returns 1 if I<set> contains no signals, and 0 otherwise."
10576 msgstr ""
10577 "B<sigisemptyset>() は I<set> にシグナルが一つも含まれていなければ 1 を返し、 "
10578 "それ以外は 0 を返す。"
10579
10580 #. type: Plain text
10581 #: build/C/man3/sigsetops.3:183
10582 msgid ""
10583 "B<sigorset>()  places the union of the sets I<left> and I<right> in "
10584 "I<dest>.  B<sigandset>()  places the intersection of the sets I<left> and "
10585 "I<right> in I<dest>.  Both functions return 0 on success, and -1 on failure."
10586 msgstr ""
10587 "B<sigorset>() は集合 I<left> と I<right> の和集合を I<dest> に設定する。 "
10588 "B<sigandset>() は集合 I<left> と I<right> の積集合を I<dest> に設定する。 ど"
10589 "ちらの関数も成功すると 0 を返し、失敗時には -1 を返す。"
10590
10591 #. type: Plain text
10592 #: build/C/man3/sigsetops.3:186
10593 msgid ""
10594 "These functions are nonstandard (a few other systems provide similar "
10595 "functions) and their use should be avoided in portable applications."
10596 msgstr ""
10597 "これらの関数は非標準であり、(他にも同様の関数を提供しているシステムも いくつ"
10598 "かはあるが) 移植性を考慮したアプリケーションでは使用を避けるべき である。"
10599
10600 #. type: Plain text
10601 #: build/C/man3/sigsetops.3:191
10602 msgid "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10603 msgstr "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10604
10605 #. type: TH
10606 #: build/C/man2/sigsuspend.2:29
10607 #, no-wrap
10608 msgid "SIGSUSPEND"
10609 msgstr "SIGSUSPEND"
10610
10611 #. type: Plain text
10612 #: build/C/man2/sigsuspend.2:32
10613 msgid "sigsuspend - wait for a signal"
10614 msgstr "sigsuspend - シグナルを待つ"
10615
10616 #. type: Plain text
10617 #: build/C/man2/sigsuspend.2:36
10618 msgid "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10619 msgstr "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10620
10621 #. type: Plain text
10622 #: build/C/man2/sigsuspend.2:45
10623 msgid ""
10624 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10625 "_POSIX_SOURCE"
10626 msgstr ""
10627 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10628 "_POSIX_SOURCE"
10629
10630 #. type: Plain text
10631 #: build/C/man2/sigsuspend.2:53
10632 msgid ""
10633 "B<sigsuspend>()  temporarily replaces the signal mask of the calling process "
10634 "with the mask given by I<mask> and then suspends the process until delivery "
10635 "of a signal whose action is to invoke a signal handler or to terminate a "
10636 "process."
10637 msgstr ""
10638 "B<sigsuspend>()  は、呼び出し元プロセスのシグナルマスクを I<mask> で指定され"
10639 "たマスクに一時的に置き換え、 シグナルハンドラの起動もしくはプロセスの終了がア"
10640 "クションとして 設定されたシグナルが配送されるまで、そのプロセスを停止する。"
10641
10642 #. type: Plain text
10643 #: build/C/man2/sigsuspend.2:62
10644 msgid ""
10645 "If the signal terminates the process, then B<sigsuspend>()  does not "
10646 "return.  If the signal is caught, then B<sigsuspend>()  returns after the "
10647 "signal handler returns, and the signal mask is restored to the state before "
10648 "the call to B<sigsuspend>()."
10649 msgstr ""
10650 "シグナルがプロセスを終了させるものの場合、 B<sigsuspend>()  は返らない。シグ"
10651 "ナルが捕捉された場合、 シグナルハンドラの処理が終わった後に B<sigsuspend>()  "
10652 "は返り、シグナルマスクは B<sigsuspend>()  が呼び出される前の状態に復元され"
10653 "る。"
10654
10655 #. type: Plain text
10656 #: build/C/man2/sigsuspend.2:70
10657 msgid ""
10658 "It is not possible to block B<SIGKILL> or B<SIGSTOP>; specifying these "
10659 "signals in I<mask>, has no effect on the process's signal mask."
10660 msgstr ""
10661 "B<SIGKILL> と B<SIGSTOP> を禁止 (block) することはできない; これらのシグナル"
10662 "を I<mask> に指定しても、プロセスのシグナルマスクは影響を受けない。"
10663
10664 #. type: Plain text
10665 #: build/C/man2/sigsuspend.2:76
10666 msgid ""
10667 "B<sigsuspend>()  always returns -1, with I<errno> set to indicate the error "
10668 "(normally, B<EINTR>)."
10669 msgstr ""
10670 "B<sigsuspend>() は常に -1 を返し、 I<errno> にエラーの原因を示す値 (通常は "
10671 "B<EINTR>) を設定する。"
10672
10673 #. type: Plain text
10674 #: build/C/man2/sigsuspend.2:81
10675 msgid ""
10676 "I<mask> points to memory which is not a valid part of the process address "
10677 "space."
10678 msgstr ""
10679 "I<mask> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
10680
10681 #. type: Plain text
10682 #: build/C/man2/sigsuspend.2:84
10683 msgid "The call was interrupted by a signal."
10684 msgstr "システムコールはシグナルにより割り込まれた。"
10685
10686 #. type: Plain text
10687 #: build/C/man2/sigsuspend.2:104
10688 msgid ""
10689 "Normally, B<sigsuspend>()  is used in conjunction with B<sigprocmask>(2)  in "
10690 "order to prevent delivery of a signal during the execution of a critical "
10691 "code section.  The caller first blocks the signals with B<sigprocmask>(2).  "
10692 "When the critical code has completed, the caller then waits for the signals "
10693 "by calling B<sigsuspend>()  with the signal mask that was returned by "
10694 "B<sigprocmask>(2)  (in the I<oldset> argument)."
10695 msgstr ""
10696 "B<sigsuspend>()  は、通常、クリティカル・コード・セクション (critical code "
10697 "section) の 実行中にシグナルが配送されるのを防止するために、 "
10698 "B<sigprocmask>(2)  と組み合わせて使用される。 まず最初に、呼び出し元は "
10699 "B<sigprocmask>(2)  を使ってシグナルを禁止する。 クリティカル・コードが完了す"
10700 "ると、呼び出し元は B<sigprocmask>(2)  が (I<oldset> 引き数で) 返すシグナルマ"
10701 "スクを指定して B<sigsuspend>()  を呼び出すことで、クリティカル・コード実行中"
10702 "に発生した シグナルを待つことができる。"
10703
10704 #. type: Plain text
10705 #: build/C/man2/sigsuspend.2:118
10706 msgid ""
10707 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10708 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10709 msgstr ""
10710 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10711 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10712
10713 #. type: TH
10714 #: build/C/man3/sigvec.3:26
10715 #, no-wrap
10716 msgid "SIGVEC"
10717 msgstr "SIGVEC"
10718
10719 #. type: Plain text
10720 #: build/C/man3/sigvec.3:29
10721 msgid "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD signal API"
10722 msgstr "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD 版シグナル API"
10723
10724 #. type: Plain text
10725 #: build/C/man3/sigvec.3:33
10726 msgid ""
10727 "B<int sigvec(int >I<sig>B<, const struct sigvec *>I<vec>B<, struct sigvec "
10728 "*>I<ovec>B<);>"
10729 msgstr ""
10730 "B<int sigvec(int >I<sig>B<, const struct sigvec *>I<vec>B<, struct sigvec "
10731 "*>I<ovec>B<);>"
10732
10733 #. type: Plain text
10734 #: build/C/man3/sigvec.3:35
10735 msgid "B<int sigmask(int >I<signum>B<);>"
10736 msgstr "B<int sigmask(int >I<signum>B<);>"
10737
10738 #. type: Plain text
10739 #: build/C/man3/sigvec.3:37
10740 msgid "B<int sigblock(int >I<mask>B<);>"
10741 msgstr "B<int sigblock(int >I<mask>B<);>"
10742
10743 #. type: Plain text
10744 #: build/C/man3/sigvec.3:39
10745 msgid "B<int sigsetmask(int >I<mask>B<);>"
10746 msgstr "B<int sigsetmask(int >I<mask>B<);>"
10747
10748 #. type: Plain text
10749 #: build/C/man3/sigvec.3:41
10750 msgid "B<int siggetmask(void);>"
10751 msgstr "B<int siggetmask(void);>"
10752
10753 #. type: Plain text
10754 #: build/C/man3/sigvec.3:49
10755 msgid "All functions shown above: _BSD_SOURCE"
10756 msgstr "上記の全ての関数: _BSD_SOURCE"
10757
10758 #. type: Plain text
10759 #: build/C/man3/sigvec.3:56
10760 msgid ""
10761 "These functions are provided in glibc as a compatibility interface for "
10762 "programs that make use of the historical BSD signal API.  This API is "
10763 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
10764 "B<sigprocmask>(2), etc.)."
10765 msgstr ""
10766 "これらの関数は、昔ながらの BSD 版シグナル API を使用しているプログラム に対し"
10767 "て互換性のあるインタフェースを glibc で提供するものである。 この API は過去の"
10768 "ものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>(2), "
10769 "B<sigprocmask>(2)  など) を使用すべきである。"
10770
10771 #. type: Plain text
10772 #: build/C/man3/sigvec.3:81
10773 msgid ""
10774 "The B<sigvec>()  function sets and/or gets the disposition of the signal "
10775 "I<sig> (like the POSIX B<sigaction>(2)).  If I<vec> is not NULL, it points "
10776 "to a I<sigvec> structure that defines the new disposition for I<sig>.  If "
10777 "I<ovec> is not NULL, it points to a I<sigvec> structure that is used to "
10778 "return the previous disposition of I<sig>.  To obtain the current "
10779 "disposition of I<sig> without changing it, specify NULL for I<vec>, and a "
10780 "non-null pointer for I<ovec>."
10781 msgstr ""
10782 "関数 B<sigvec>()  は、(POSIX の B<sigaction>(2)  と同様に) シグナル I<sig> の"
10783 "動作の設定・取得を行う。 I<vec> は、NULL 以外の場合、 I<sig> の新しい動作を定"
10784 "義した I<sigvec> 構造体へのポインタである。 I<ovec> は、NULL 以外の場合、 "
10785 "I<sig> の変更前の動作を返すために使用される I<sigvec> 構造体へのポインタであ"
10786 "る。 I<sig> の動作を変更せずに現在の動作を取得するためには、 I<vec> に NULL "
10787 "を指定し、 I<ovec> に NULL でないポインタを指定すればよい。"
10788
10789 #. type: Plain text
10790 #: build/C/man3/sigvec.3:91
10791 msgid "The I<sigvec> structure has the following form:"
10792 msgstr "I<sigvec> 構造体は以下の通りである:"
10793
10794 #. type: Plain text
10795 #: build/C/man3/sigvec.3:99
10796 #, no-wrap
10797 msgid ""
10798 "struct sigvec {\n"
10799 "    void (*sv_handler)(int); /* Signal disposition */\n"
10800 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10801 "    int    sv_flags;         /* Flags */\n"
10802 "};\n"
10803 msgstr ""
10804 "struct sigvec {\n"
10805 "    void (*sv_handler)(int); /* Signal disposition */\n"
10806 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10807 "    int    sv_flags;         /* Flags */\n"
10808 "};\n"
10809
10810 #. type: Plain text
10811 #: build/C/man3/sigvec.3:110
10812 msgid ""
10813 "The I<sv_handler> field specifies the disposition of the signal, and is "
10814 "either: the address of a signal handler function; B<SIG_DFL>, meaning the "
10815 "default disposition applies for the signal; or B<SIG_IGN>, meaning that the "
10816 "signal is ignored."
10817 msgstr ""
10818 "I<sv_handler> フィールドはシグナルの動作を指定するもので、 シグナルハンドラ関"
10819 "数のアドレスか、 B<SIG_DFL> と B<SIG_IGN> のいずれかを指定できる。 "
10820 "B<SIG_DFL> はシグナルに適用されるデフォルトの動作を意味し、 B<SIG_IGN> はシグ"
10821 "ナルを無視することを意味する。"
10822
10823 #. type: Plain text
10824 #: build/C/man3/sigvec.3:124
10825 msgid ""
10826 "If I<sv_handler> specifies the address of a signal handler, then I<sv_mask> "
10827 "specifies a mask of signals that are to be blocked while the handler is "
10828 "executing.  In addition, the signal for which the handler is invoked is also "
10829 "blocked.  Attempts to block B<SIGKILL> or B<SIGSTOP> are silently ignored."
10830 msgstr ""
10831 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_mask> はハン"
10832 "ドラが実行中にブロックされるべきシグナルのマスクを指定する。 また、ハンドラを"
10833 "起動したシグナル自身はブロックされる。 B<SIGKILL> か B<SIGSTOP> をブロックし"
10834 "ようとした場合には、黙って無視される。"
10835
10836 #. type: Plain text
10837 #: build/C/man3/sigvec.3:131
10838 msgid ""
10839 "If I<sv_handler> specifies the address of a signal handler, then the "
10840 "I<sv_flags> field specifies flags controlling what happens when the handler "
10841 "is called.  This field may contain zero or more of the following flags:"
10842 msgstr ""
10843 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_flags> フィー"
10844 "ルドはハンドラが呼ばれた際の挙動を制御するフラグを指定する。 このフィールドに"
10845 "は、0 か、以下のフラグを 1個以上指定できる:"
10846
10847 #. type: TP
10848 #: build/C/man3/sigvec.3:131
10849 #, no-wrap
10850 msgid "B<SV_INTERRUPT>"
10851 msgstr "B<SV_INTERRUPT>"
10852
10853 #. type: Plain text
10854 #: build/C/man3/sigvec.3:139
10855 msgid ""
10856 "If the signal handler interrupts a blocking system call, then upon return "
10857 "from the handler the system call will not be restarted: instead it will fail "
10858 "with the error B<EINTR>.  If this flag is not specified, then system calls "
10859 "are restarted by default."
10860 msgstr ""
10861 "シグナルハンドラが停止中のシステムコールを中断した場合、 ハンドラから復帰して"
10862 "も、システムコールは再開されず、 エラー B<EINTR> で失敗する。 このフラグを指"
10863 "定しなかった場合、システムコールは デフォルトで再開される。"
10864
10865 #. type: TP
10866 #: build/C/man3/sigvec.3:139
10867 #, no-wrap
10868 msgid "B<SV_RESETHAND>"
10869 msgstr "B<SV_RESETHAND>"
10870
10871 #. type: Plain text
10872 #: build/C/man3/sigvec.3:148
10873 msgid ""
10874 "Reset the disposition of the signal to the default before calling the signal "
10875 "handler.  If this flag is not specified, then the handler remains "
10876 "established until explicitly removed by a later call to B<sigvec>()  or "
10877 "until the process performs an B<execve>(2)."
10878 msgstr ""
10879 "シグナルハンドラを呼び出す前にシグナルの動作を デフォルトにリセットする。 こ"
10880 "のフラグを指定しなかった場合、もう一度 B<sigvec>()  を呼び出して明示的に削除"
10881 "されるか、プロセスが B<execve>(2)  を実行するまで、ハンドラは設定されたままと"
10882 "なる。"
10883
10884 #. type: TP
10885 #: build/C/man3/sigvec.3:148
10886 #, no-wrap
10887 msgid "B<SV_ONSTACK>"
10888 msgstr "B<SV_ONSTACK>"
10889
10890 #. type: Plain text
10891 #: build/C/man3/sigvec.3:155
10892 msgid ""
10893 "Handle the signal on the alternate signal stack (historically established "
10894 "under BSD using the obsolete B<sigstack>()  function; the POSIX replacement "
10895 "is B<sigaltstack>(2))."
10896 msgstr ""
10897 "代替シグナルスタック上でシグナルハンドラを実行する (歴史的に、BSD では代替シ"
10898 "グナルスタックは廃止された関数 B<sigstack>()  を使って設定する。POSIX では、"
10899 "代わりに B<sigaltstack>(2)  を使用する)。"
10900
10901 #. type: Plain text
10902 #: build/C/man3/sigvec.3:165
10903 msgid ""
10904 "The B<sigmask>()  macro constructs and returns a \"signal mask\" for "
10905 "I<signum>.  For example, we can initialize the I<vec.sv_mask> field given to "
10906 "B<sigvec>()  using code such as the following:"
10907 msgstr ""
10908 "マクロ B<sigmask>()  は I<signum> に対する「シグナルマスク」を構成して返す。 "
10909 "例えば、以下のようなコードを使うと、 B<sigvec>()  に渡す I<vec.sv_mask> を初"
10910 "期化できる。"
10911
10912 #. type: Plain text
10913 #: build/C/man3/sigvec.3:170
10914 #, no-wrap
10915 msgid ""
10916 "    vec.sv_mask = sigmask(SIGQUIT) | sigmask(SIGABRT);\n"
10917 "                /* Block SIGQUIT and SIGABRT during\n"
10918 "                   handler execution */\n"
10919 msgstr ""
10920 "    vec.sv_mask = sigmask(SIGQUIT) | sigmask(SIGABRT);\n"
10921 "                /* Block SIGQUIT and SIGABRT during\n"
10922 "                   handler execution */\n"
10923
10924 #. type: Plain text
10925 #: build/C/man3/sigvec.3:185
10926 msgid ""
10927 "The B<sigblock>()  function adds the signals in I<mask> to the process's "
10928 "signal mask (like POSIX I<sigprocmask(SIG_BLOCK)>), and returns the "
10929 "process's previous signal mask.  Attempts to block B<SIGKILL> or B<SIGSTOP> "
10930 "are silently ignored."
10931 msgstr ""
10932 "B<sigblock>()  関数は、 I<mask> にあるシグナルをプロセスのシグナルマスクに追"
10933 "加し (POSIX の I<sigprocmask(SIG_BLOCK)> と同様)、変更前のプロセスのシグナル"
10934 "マスクを返す。 B<SIGKILL> や B<SIGSTOP> をブロックしようとした場合には、黙っ"
10935 "て無視される。"
10936
10937 #. type: Plain text
10938 #: build/C/man3/sigvec.3:193
10939 msgid ""
10940 "The B<sigsetmask>()  function sets the process's signal mask to the value "
10941 "given in I<mask> (like POSIX I<sigprocmask(SIG_SETMASK)>), and returns the "
10942 "process's previous signal mask."
10943 msgstr ""
10944 "B<sigsetmask>()  関数はプロセスのシグナルマスクを I<mask> で指定された値に設"
10945 "定し (POSIX の I<sigprocmask(SIG_SETMASK)> と同様)、変更前のプロセスのシグナ"
10946 "ルマスクを返す。"
10947
10948 #. type: Plain text
10949 #: build/C/man3/sigvec.3:199
10950 msgid ""
10951 "The B<siggetmask>()  function returns the process's current signal mask.  "
10952 "This call is equivalent to I<sigblock(0)>."
10953 msgstr ""
10954 "B<siggetmask>()  関数はプロセスの現在のシグナルマスクを返す。この関数は "
10955 "I<sigblock(0)> と等価である。"
10956
10957 #. type: Plain text
10958 #: build/C/man3/sigvec.3:205
10959 msgid ""
10960 "The B<sigvec>()  function returns 0 on success; on error, it returns -1 and "
10961 "sets I<errno> to indicate the error."
10962 msgstr ""
10963 "B<sigvec>()  関数は成功すると 0 を返す。エラーの場合、-1 を返し、 I<errno> に"
10964 "エラーを示す値をセットする。"
10965
10966 #. type: Plain text
10967 #: build/C/man3/sigvec.3:211
10968 msgid ""
10969 "The B<sigblock>()  and B<sigsetmask>()  functions return the previous signal "
10970 "mask."
10971 msgstr "B<sigblock>()  と B<sigsetmask>()  は変更前のシグナルマスクを返す。"
10972
10973 #. type: Plain text
10974 #: build/C/man3/sigvec.3:216
10975 msgid "The B<sigmask>()  macro returns the signal mask for I<signum>."
10976 msgstr "B<sigmask>() マクロは I<signum> のシグナルマスクを返す。"
10977
10978 #. type: Plain text
10979 #: build/C/man3/sigvec.3:221
10980 msgid "See the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
10981 msgstr "B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」の節を参照。"
10982
10983 #. type: Plain text
10984 #: build/C/man3/sigvec.3:230
10985 msgid ""
10986 "The B<sigvec>(), B<sigblock>(), B<sigsetmask>(), and B<siggetmask>()  "
10987 "functions are thread-safe."
10988 msgstr ""
10989 "関数 B<sigvec>(), B<sigblock>(), B<sigsetmask>(), B<siggetmask>() はスレッド"
10990 "セーフである。"
10991
10992 #. type: Plain text
10993 #: build/C/man3/sigvec.3:234
10994 msgid "The B<sigmask>()  macro is thread-safe."
10995 msgstr "B<sigmask>() マクロはスレッドセーフである。"
10996
10997 #. type: Plain text
10998 #: build/C/man3/sigvec.3:241
10999 msgid ""
11000 "Starting with version 2.21, the GNU C library no longer exports the "
11001 "B<sigvec>()  function as part of the ABI.  (To ensure backward "
11002 "compatibility, the glibc symbol versioning scheme continues to export the "
11003 "interface to binaries linked against older versions of the library.)"
11004 msgstr ""
11005
11006 #. type: Plain text
11007 #: build/C/man3/sigvec.3:247
11008 msgid ""
11009 "All of these functions were in 4.3BSD, except B<siggetmask>(), whose origin "
11010 "is unclear.  These functions are obsolete: do not use them in new programs."
11011 msgstr ""
11012 "これらの関数のうち B<siggetmask>()  以外の全ては 4.3BSD にあった。 "
11013 "B<siggetmask>()  の出自ははっきりしない。 これらの関数は廃止予定であり、新し"
11014 "いプログラムでは使用しないこと。"
11015
11016 #. type: Plain text
11017 #: build/C/man3/sigvec.3:264
11018 msgid ""
11019 "On 4.3BSD, the B<signal>()  function provided reliable semantics (as when "
11020 "calling B<sigvec>()  with I<vec.sv_mask> equal to 0).  On System V, "
11021 "B<signal>()  provides unreliable semantics.  POSIX.1-2001 leaves these "
11022 "aspects of B<signal>()  unspecified.  See B<signal>(2)  for further details."
11023 msgstr ""
11024 "4.3BSD では、信頼性のあるシグナル処理機構を提供する (I<vec.sv_mask> を 0 で "
11025 "B<sigvec>()  を呼び出したときと同様)。 System V が提供する処理機構は信頼性の"
11026 "ないものである。 POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままと"
11027 "なっている。 さらなる詳細については B<signal>(2)  を参照。"
11028
11029 #. type: Plain text
11030 #: build/C/man3/sigvec.3:282
11031 msgid ""
11032 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
11033 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
11034 msgstr ""
11035 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
11036 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
11037
11038 #. type: TH
11039 #: build/C/man3/sigwait.3:26
11040 #, no-wrap
11041 msgid "SIGWAIT"
11042 msgstr "SIGWAIT"
11043
11044 #. type: Plain text
11045 #: build/C/man3/sigwait.3:29
11046 msgid "sigwait - wait for a signal"
11047 msgstr "sigwait - シグナルを待つ"
11048
11049 #. type: Plain text
11050 #: build/C/man3/sigwait.3:34
11051 #, no-wrap
11052 msgid "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
11053 msgstr "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
11054
11055 #. type: Plain text
11056 #: build/C/man3/sigwait.3:44
11057 msgid ""
11058 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
11059 msgstr ""
11060 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
11061
11062 #. type: Plain text
11063 #: build/C/man3/sigwait.3:56
11064 msgid ""
11065 "The B<sigwait>()  function suspends execution of the calling thread until "
11066 "one of the signals specified in the signal set I<set> becomes pending.  The "
11067 "function accepts the signal (removes it from the pending list of signals), "
11068 "and returns the signal number in I<sig>."
11069 msgstr ""
11070 "B<sigwait>()  関数は、シグナル集合 I<set> で指定されたシグナルの一つが処理待"
11071 "ち (pending) になるまで、 呼び出したスレッドの実行を中断する。 この関数はその"
11072 "シグナルを受け取り (つまり、処理待ちのシグナルのリスト からそのシグナルを削除"
11073 "し)、そのシグナル番号を I<sig> に格納して返す。"
11074
11075 #. type: Plain text
11076 #: build/C/man3/sigwait.3:62
11077 msgid ""
11078 "The operation of B<sigwait>()  is the same as B<sigwaitinfo>(2), except that:"
11079 msgstr ""
11080 "B<sigwait>()  の動作は B<sigwaitinfo>(2)  と同じだが、以下の点が異なる。"
11081
11082 #. type: Plain text
11083 #: build/C/man3/sigwait.3:67
11084 msgid ""
11085 "B<sigwait>()  returns only the signal number, rather than a I<siginfo_t> "
11086 "structure describing the signal."
11087 msgstr ""
11088 "B<sigwait>()  は、シグナルの内容を表す I<siginfo_t> 構造体を返すのではなく、"
11089 "単にシグナル番号を返す。"
11090
11091 #. type: Plain text
11092 #: build/C/man3/sigwait.3:69
11093 msgid "The return values of the two functions are different."
11094 msgstr "返り値が B<sigwaitinfo>(2)  とは異なる。"
11095
11096 #. type: Plain text
11097 #: build/C/man3/sigwait.3:74
11098 msgid ""
11099 "On success, B<sigwait>()  returns 0.  On error, it returns a positive error "
11100 "number (listed in ERRORS)."
11101 msgstr ""
11102 "成功すると、 B<sigwait>()  は 0 を返す。 エラーの場合、(「エラー」の節のリス"
11103 "トにある) 正のエラー番号を返す。"
11104
11105 #.  Does not occur for glibc.
11106 #. type: Plain text
11107 #: build/C/man3/sigwait.3:80
11108 msgid "I<set> contains an invalid signal number."
11109 msgstr "I<set> に無効なシグナル番号が入っている。"
11110
11111 #. type: Plain text
11112 #: build/C/man3/sigwait.3:85
11113 msgid "The B<sigwait>()  function is thread-safe."
11114 msgstr "B<sigwait>() 関数はスレッドセーフである。"
11115
11116 #. type: Plain text
11117 #: build/C/man3/sigwait.3:91
11118 msgid "B<sigwait>()  is implemented using B<sigtimedwait>(2)."
11119 msgstr "B<sigwait>()  は B<sigtimedwait>(2)  を使って実装されている。"
11120
11121 #. type: Plain text
11122 #: build/C/man3/sigwait.3:94
11123 msgid "See B<pthread_sigmask>(3)."
11124 msgstr "B<pthread_sigmask>(3)  を参照。"
11125
11126 #. type: Plain text
11127 #: build/C/man3/sigwait.3:102
11128 msgid ""
11129 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
11130 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
11131 msgstr ""
11132 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
11133 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
11134
11135 #. type: TH
11136 #: build/C/man2/sigwaitinfo.2:25
11137 #, no-wrap
11138 msgid "SIGWAITINFO"
11139 msgstr "SIGWAITINFO"
11140
11141 #. type: Plain text
11142 #: build/C/man2/sigwaitinfo.2:28
11143 msgid "sigwaitinfo, sigtimedwait - synchronously wait for queued signals"
11144 msgstr "sigwaitinfo, sigtimedwait - キューに入れられたシグナルを同期して待つ"
11145
11146 #. type: Plain text
11147 #: build/C/man2/sigwaitinfo.2:33
11148 #, no-wrap
11149 msgid "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
11150 msgstr "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
11151
11152 #. type: Plain text
11153 #: build/C/man2/sigwaitinfo.2:36
11154 #, no-wrap
11155 msgid ""
11156 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
11157 "B<                 const struct timespec *>I<timeout>B<);>\n"
11158 msgstr ""
11159 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
11160 "B<                 const struct timespec *>I<timeout>B<);>\n"
11161
11162 #. type: Plain text
11163 #: build/C/man2/sigwaitinfo.2:46
11164 msgid "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11165 msgstr ""
11166 "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11167
11168 #. type: Plain text
11169 #: build/C/man2/sigwaitinfo.2:56
11170 msgid ""
11171 "B<sigwaitinfo>()  suspends execution of the calling thread until one of the "
11172 "signals in I<set> is pending (If one of the signals in I<set> is already "
11173 "pending for the calling thread, B<sigwaitinfo>()  will return immediately.)"
11174 msgstr ""
11175 "B<sigwaitinfo>()  は I<set> のうちのどれかのシグナルが処理待ちになるまで、 呼"
11176 "び出しスレッドの実行を一時停止する (呼び出しスレッドに対して I<set> のうちの"
11177 "どれかのシグナルが既に待機中 (pending) である場合、 B<sigwaitinfo>()  はすぐ"
11178 "に戻る)。"
11179
11180 #. type: Plain text
11181 #: build/C/man2/sigwaitinfo.2:68
11182 msgid ""
11183 "B<sigwaitinfo>()  removes the signal from the set of pending signals and "
11184 "returns the signal number as its function result.  If the I<info> argument "
11185 "is not NULL, then the buffer that it points to is used to return a structure "
11186 "of type I<siginfo_t> (see B<sigaction>(2))  containing information about the "
11187 "signal."
11188 msgstr ""
11189 "B<sigwaitinfo>()  はそのシグナルを待機中のシグナルの集合から削除し、関数の結"
11190 "果としてシグナル番号を返す。 I<info> 引き数が NULL でない場合、配送されたシグ"
11191 "ナルの情報が入った I<siginfo_t> 型 (B<sigaction>(2)  を参照) の構造体を "
11192 "I<info> が指すバッファに入れて返す。"
11193
11194 #. type: Plain text
11195 #: build/C/man2/sigwaitinfo.2:76
11196 msgid ""
11197 "If multiple signals in I<set> are pending for the caller, the signal that is "
11198 "retrieved by B<sigwaitinfo>()  is determined according to the usual ordering "
11199 "rules; see B<signal>(7)  for further details."
11200 msgstr ""
11201 "呼び出し元に対して I<set> の複数のシグナルが処理待ちの場合、 "
11202 "B<sigwaitinfo>() で取得するシグナルは通常の順序決定ルールに基づいて決定され"
11203 "る。 詳細は B<signal>(7) を参照のこと。"
11204
11205 #. type: Plain text
11206 #: build/C/man2/sigwaitinfo.2:88
11207 msgid ""
11208 "B<sigtimedwait>()  operates in exactly the same way as B<sigwaitinfo>()  "
11209 "except that it has an additional argument, I<timeout>, which specifies the "
11210 "interval for which the thread is suspended waiting for a signal.  (This "
11211 "interval will be rounded up to the system clock granularity, and kernel "
11212 "scheduling delays mean that the interval may overrun by a small amount.)  "
11213 "This argument is of the following type:"
11214 msgstr ""
11215 "B<sigtimedwait>() は、 B<sigwaitinfo>() と次の点を除いて全く同じように動作す"
11216 "る。この関数にはもう 1 つの引き数 I<timeout> があり、シグナル待ちでスレッドが"
11217 "一時停止する時間を指定することができる(この時間はシステムクロックの粒度に切り"
11218 "上げられ、カーネルのスケジューリング遅延により少しだけ長くなる可能性がある)。"
11219 "この引き数の型は以下のとおりである:"
11220
11221 #. type: Plain text
11222 #: build/C/man2/sigwaitinfo.2:95
11223 #, no-wrap
11224 msgid ""
11225 "struct timespec {\n"
11226 "    long    tv_sec;         /* seconds */\n"
11227 "    long    tv_nsec;        /* nanoseconds */\n"
11228 "}\n"
11229 msgstr ""
11230 "struct timespec {\n"
11231 "    long    tv_sec;         /* 秒 */\n"
11232 "    long    tv_nsec;        /* ナノ秒 */\n"
11233 "}\n"
11234
11235 #. type: Plain text
11236 #: build/C/man2/sigwaitinfo.2:105
11237 msgid ""
11238 "If both fields of this structure are specified as 0, a poll is performed: "
11239 "B<sigtimedwait>()  returns immediately, either with information about a "
11240 "signal that was pending for the caller, or with an error if none of the "
11241 "signals in I<set> was pending."
11242 msgstr ""
11243 "この構造体の 2 つのフィールドがともに 0 の場合、ポーリングが行われる: "
11244 "B<sigtimedwait>()  は、呼び出し側プロセスに対して 待機しているシグナルの情報"
11245 "を返して戻るか、 I<set> のうちのどのシグナルも待機していない場合はエラーを返"
11246 "して戻る。"
11247
11248 #. type: Plain text
11249 #: build/C/man2/sigwaitinfo.2:114
11250 msgid ""
11251 "On success, both B<sigwaitinfo>()  and B<sigtimedwait>()  return a signal "
11252 "number (i.e., a value greater than zero).  On failure both calls return -1, "
11253 "with I<errno> set to indicate the error."
11254 msgstr ""
11255 "成功した場合、 B<sigwaitinfo>()  と B<sigtimedwait>()  はシグナル番号 (すなわ"
11256 "ち 0 より大きい数) を返す。 失敗した場合、2 つの関数は -1 を返し、 I<errno> "
11257 "はエラーを表す値に設定される。"
11258
11259 #. type: Plain text
11260 #: build/C/man2/sigwaitinfo.2:123
11261 msgid ""
11262 "No signal in I<set> was became pending within the I<timeout> period "
11263 "specified to B<sigtimedwait>()."
11264 msgstr ""
11265 "I<set> のうちのどのシグナルも B<sigtimedwait>()  に指定された I<timeout> の期"
11266 "間内に処理待ちにならなかった。"
11267
11268 #. type: Plain text
11269 #: build/C/man2/sigwaitinfo.2:129
11270 msgid ""
11271 "The wait was interrupted by a signal handler; see B<signal>(7).  (This "
11272 "handler was for a signal other than one of those in I<set>.)"
11273 msgstr ""
11274 "シグナル待ちがシグナルハンドラによって中断 (interrupt) された (このハンドラ"
11275 "は I<set> にあるシグナル以外のものである)。 B<signal>(7)  参照。"
11276
11277 #. type: Plain text
11278 #: build/C/man2/sigwaitinfo.2:133
11279 msgid "I<timeout> was invalid."
11280 msgstr "I<timeout> が不正である。"
11281
11282 #. type: Plain text
11283 #: build/C/man2/sigwaitinfo.2:153
11284 msgid ""
11285 "In normal usage, the calling program blocks the signals in I<set> via a "
11286 "prior call to B<sigprocmask>(2)  (so that the default disposition for these "
11287 "signals does not occur if they become pending between successive calls to "
11288 "B<sigwaitinfo>()  or B<sigtimedwait>())  and does not establish handlers for "
11289 "these signals.  In a multithreaded program, the signal should be blocked in "
11290 "all threads, in order to prevent the signal being treated according to its "
11291 "default disposition in a thread other than the one calling B<sigwaitinfo>()  "
11292 "or B<sigtimedwait>())."
11293 msgstr ""
11294 "通常の使用法では、呼び出し側プロセスはこれらの関数より先に "
11295 "B<sigprocmask>(2)  の呼び出すことにより I<set> に含まれるシグナルをブロック"
11296 "し (そのためにこれらのシグナルがこの後に続く B<sigwaitinfo>()  や "
11297 "B<sigtimedwait>()  の呼び出しの間に処理待ちになった場合には、デフォルトの動作"
11298 "は行われず)、 これらのシグナルに対するハンドラは設定しない。 マルチスレッドプ"
11299 "ログラムでは、 B<sigwaitinfo>()  や B<sigtimedwait>() を呼び出したスレッド以"
11300 "外のスレッドで、そのシグナルがデフォルトの動作に基いて処理されないように、全"
11301 "てのスレッドで該当シグナルをブロックすべきである。"
11302
11303 #. type: Plain text
11304 #: build/C/man2/sigwaitinfo.2:158
11305 msgid ""
11306 "The set of signals that is pending for a given thread is the union of the "
11307 "set of signals that is pending specifically for that thread and the set of "
11308 "signals that is pending for the process as a whole (see B<signal>(7))."
11309 msgstr ""
11310 "指定されたスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体宛ての"
11311 "処理待ちのシグナル集合と、プロセス全体宛ての 処理待ちのシグナル集合をあわせた"
11312 "ものである (B<signal>(7)  参照)。"
11313
11314 #. type: Plain text
11315 #: build/C/man2/sigwaitinfo.2:164
11316 msgid "Attempts to wait for B<SIGKILL> and B<SIGSTOP> are silently ignored."
11317 msgstr "B<SIGKILL> と B<SIGSTOP> を待とうとした場合、黙って無視される。"
11318
11319 #. type: Plain text
11320 #: build/C/man2/sigwaitinfo.2:173
11321 msgid ""
11322 "If multiple threads of a process are blocked waiting for the same signal(s) "
11323 "in B<sigwaitinfo>()  or B<sigtimedwait>(), then exactly one of the threads "
11324 "will actually receive the signal if it becomes pending for the process as a "
11325 "whole; which of the threads receives the signal is indeterminate."
11326 msgstr ""
11327 "一つのプロセス内の複数のスレッドが B<sigwaitinfo>()  や B<sigtimedwait>()  で"
11328 "同じシグナルを待って停止した場合、 プロセス全体宛てのシグナルが処理待ちになる"
11329 "と、複数のスレッドのうち一つだけが 実際にそのシグナルを受信することになる。 "
11330 "どのスレッドがシグナルを受信するかは決まっていない。"
11331
11332 #. type: Plain text
11333 #: build/C/man2/sigwaitinfo.2:183
11334 msgid ""
11335 "POSIX leaves the meaning of a NULL value for the I<timeout> argument of "
11336 "B<sigtimedwait>()  unspecified, permitting the possibility that this has the "
11337 "same meaning as a call to B<sigwaitinfo>(), and indeed this is what is done "
11338 "on Linux."
11339 msgstr ""
11340 "POSIX では B<sigtimedwait>()  の引き数 I<timeout> の値を NULL にした場合の意"
11341 "味を未定義としている。 B<sigwaitinfo>()  を呼び出したのと同じ意味としてもよい"
11342 "ことになっており、 実際 Linux ではこのように動作する。"
11343
11344 #. type: Plain text
11345 #: build/C/man2/sigwaitinfo.2:188
11346 msgid ""
11347 "On Linux, B<sigwaitinfo>()  is a library function implemented on top of "
11348 "B<sigtimedwait>()."
11349 msgstr ""
11350 "Linux では、 B<sigwaitinfo>()  は B<sigtimedwait>()  を用いて実装されたライブ"
11351 "ラリ関数である。"
11352
11353 #. type: Plain text
11354 #: build/C/man2/sigwaitinfo.2:201
11355 #, fuzzy
11356 #| msgid ""
11357 #| "The underlying Linux system call requires an additional argument, "
11358 #| "I<size_t sizemask>, which specifies the size of the I<mask> argument.  "
11359 #| "The glibc B<signalfd>()  wrapper function does not include this argument, "
11360 #| "since it provides the required value for the underlying system call."
11361 msgid ""
11362 "The raw B<sigtimedwait>()  system call has a fifth argument, I<size_t "
11363 "sigsetsize>, which specifies the size in bytes of the I<set> argument.  The "
11364 "glibc B<sigtimedwait>()  wrapper function specifies this argument as a fixed "
11365 "value (equal to I<sizeof(sigset_t)>)."
11366 msgstr ""
11367 "実際の Linux のシステムコールでは I<size_t sizemask> という引き数が追加で必要"
11368 "である。この引き数で I<mask> のサイズを指定する。 glibc の B<signalfd>()  "
11369 "ラッパー関数にはこの引き数は含まれず、 ラッパー関数が必要な値を計算して内部で"
11370 "呼び出すシステムコールに提供する。"
11371
11372 #. type: Plain text
11373 #: build/C/man2/sigwaitinfo.2:213
11374 msgid ""
11375 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
11376 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), "
11377 "B<signal>(7), B<time>(7)"
11378 msgstr ""
11379 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
11380 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), "
11381 "B<signal>(7), B<time>(7)"
11382
11383 #. type: TH
11384 #: build/C/man3/sysv_signal.3:25
11385 #, no-wrap
11386 msgid "SYSV_SIGNAL"
11387 msgstr "SYSV_SIGNAL"
11388
11389 #. type: TH
11390 #: build/C/man3/sysv_signal.3:25
11391 #, no-wrap
11392 msgid "2014-01-06"
11393 msgstr "2014-01-06"
11394
11395 #. type: Plain text
11396 #: build/C/man3/sysv_signal.3:28
11397 msgid "sysv_signal - signal handling with System V semantics"
11398 msgstr "sysv_signal - System V 方式のシグナル処理"
11399
11400 #. type: Plain text
11401 #: build/C/man3/sysv_signal.3:30
11402 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
11403 msgstr "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */"
11404
11405 #. type: Plain text
11406 #: build/C/man3/sysv_signal.3:36
11407 msgid ""
11408 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
11409 msgstr ""
11410 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
11411
11412 #. type: Plain text
11413 #: build/C/man3/sysv_signal.3:41
11414 msgid ""
11415 "The B<sysv_signal>()  function takes the same arguments, and performs the "
11416 "same task, as B<signal>(2)."
11417 msgstr ""
11418 "B<sysv_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
11419 "る。"
11420
11421 #. type: Plain text
11422 #: build/C/man3/sysv_signal.3:51
11423 msgid ""
11424 "However B<sysv_signal>()  provides the System V unreliable signal semantics, "
11425 "that is: a) the disposition of the signal is reset to the default when the "
11426 "handler is invoked; b) delivery of further instances of the signal is not "
11427 "blocked while the signal handler is executing; and c) if the handler "
11428 "interrupts (certain) blocking system calls, then the system call is not "
11429 "automatically restarted."
11430 msgstr ""
11431 "しかしながら、 B<sysv_signal>()  は System V の信頼性に欠けるシグナル処理方式"
11432 "を提供している。 信頼性に欠けるシグナル処理方式は以下の特徴を持つ。 a) ハンド"
11433 "ラが起動されると、シグナルの処理方法 (disposition) が デフォルトにリセットさ"
11434 "れる、 b) シグナルハンドラの実行中は、それ以降に発生した同じシグナルの配送が "
11435 "ブロックされない、 c) ハンドラが停止中の (blocking している) システムコールを"
11436 "中断した場合、 自動的に再開されないシステムコールがある。"
11437
11438 #. type: Plain text
11439 #: build/C/man3/sysv_signal.3:57
11440 msgid ""
11441 "The B<sysv_signal>()  function returns the previous value of the signal "
11442 "handler, or B<SIG_ERR> on error."
11443 msgstr ""
11444 "B<sysv_signal>()  関数はシグナルハンドラの直前の値を返す。 エラーの場合、 "
11445 "B<SIG_ERR> を返す。"
11446
11447 #. type: Plain text
11448 #: build/C/man3/sysv_signal.3:65
11449 msgid "The B<sysv_signal>()  function is thread-safe."
11450 msgstr "B<sysv_signal>() 関数はスレッドセーフである。"
11451
11452 #. type: Plain text
11453 #: build/C/man3/sysv_signal.3:67
11454 msgid "This function is nonstandard."
11455 msgstr "この関数は非標準である。"
11456
11457 #. type: Plain text
11458 #: build/C/man3/sysv_signal.3:73
11459 msgid ""
11460 "Use of B<sysv_signal>()  should be avoided; use B<sigaction>(2)  instead."
11461 msgstr ""
11462 "B<sysv_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使う"
11463 "こと。"
11464
11465 #. type: Plain text
11466 #: build/C/man3/sysv_signal.3:84
11467 msgid ""
11468 "On older Linux systems, B<sysv_signal>()  and B<signal>(2)  were "
11469 "equivalent.  But on newer systems, B<signal>(2)  provides reliable signal "
11470 "semantics; see B<signal>(2)  for details."
11471 msgstr ""
11472 "以前の Linux システムでは、 B<sysv_signal>()  と B<signal>(2)  は等価であっ"
11473 "た。しかし、新しめのシステムでは、 B<signal>(2)  は信頼性のあるシグナル処理方"
11474 "式を提供している。 詳細は B<signal>(2)  を参照。"
11475
11476 #. type: Plain text
11477 #: build/C/man3/sysv_signal.3:97
11478 msgid "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
11479 msgstr "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
11480
11481 #. type: TH
11482 #: build/C/man2/timer_create.2:33
11483 #, no-wrap
11484 msgid "TIMER_CREATE"
11485 msgstr "TIMER_CREATE"
11486
11487 #. type: Plain text
11488 #: build/C/man2/timer_create.2:36
11489 msgid "timer_create - create a POSIX per-process timer"
11490 msgstr ""
11491
11492 #. type: Plain text
11493 #: build/C/man2/timer_create.2:40
11494 #, no-wrap
11495 msgid ""
11496 "B<#include E<lt>signal.hE<gt>>\n"
11497 "B<#include E<lt>time.hE<gt>>\n"
11498 msgstr ""
11499 "B<#include E<lt>signal.hE<gt>>\n"
11500 "B<#include E<lt>time.hE<gt>>\n"
11501
11502 #. type: Plain text
11503 #: build/C/man2/timer_create.2:43
11504 #, no-wrap
11505 msgid ""
11506 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
11507 "B<                 timer_t *>I<timerid>B<);>\n"
11508 msgstr ""
11509 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
11510 "B<                 timer_t *>I<timerid>B<);>\n"
11511
11512 #. type: Plain text
11513 #: build/C/man2/timer_create.2:46 build/C/man2/timer_delete.2:37
11514 #: build/C/man2/timer_getoverrun.2:37 build/C/man2/timer_settime.2:41
11515 msgid "Link with I<-lrt>."
11516 msgstr "I<-lrt> でリンクする。"
11517
11518 #. type: Plain text
11519 #: build/C/man2/timer_create.2:54
11520 msgid "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11521 msgstr "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11522
11523 #. type: Plain text
11524 #: build/C/man2/timer_create.2:62
11525 msgid ""
11526 "B<timer_create>()  creates a new per-process interval timer.  The ID of the "
11527 "new timer is returned in the buffer pointed to by I<timerid>, which must be "
11528 "a non-null pointer.  This ID is unique within the process, until the timer "
11529 "is deleted.  The new timer is initially disarmed."
11530 msgstr ""
11531
11532 #. type: Plain text
11533 #: build/C/man2/timer_create.2:67
11534 msgid ""
11535 "The I<clockid> argument specifies the clock that the new timer uses to "
11536 "measure time.  It can be specified as one of the following values:"
11537 msgstr ""
11538
11539 #. type: TP
11540 #: build/C/man2/timer_create.2:67
11541 #, no-wrap
11542 msgid "B<CLOCK_REALTIME>"
11543 msgstr "B<CLOCK_REALTIME>"
11544
11545 #. type: Plain text
11546 #: build/C/man2/timer_create.2:70
11547 msgid "A settable system-wide real-time clock."
11548 msgstr ""
11549
11550 #. type: TP
11551 #: build/C/man2/timer_create.2:70
11552 #, no-wrap
11553 msgid "B<CLOCK_MONOTONIC>"
11554 msgstr "B<CLOCK_MONOTONIC>"
11555
11556 #.  Note: the CLOCK_MONOTONIC_RAW clock added for clock_gettime()
11557 #.  in 2.6.28 is not supported for POSIX timers -- mtk, Feb 2009
11558 #. type: Plain text
11559 #: build/C/man2/timer_create.2:77
11560 msgid ""
11561 "A nonsettable monotonically increasing clock that measures time from some "
11562 "unspecified point in the past that does not change after system startup."
11563 msgstr ""
11564
11565 #. type: TP
11566 #: build/C/man2/timer_create.2:77
11567 #, no-wrap
11568 msgid "B<CLOCK_PROCESS_CPUTIME_ID> (since Linux 2.6.12)"
11569 msgstr ""
11570
11571 #. type: Plain text
11572 #: build/C/man2/timer_create.2:81
11573 msgid ""
11574 "A clock that measures (user and system) CPU time consumed by (all of the "
11575 "threads in) the calling process."
11576 msgstr ""
11577
11578 #. type: TP
11579 #: build/C/man2/timer_create.2:81
11580 #, no-wrap
11581 msgid "B<CLOCK_THREAD_CPUTIME_ID> (since Linux 2.6.12)"
11582 msgstr ""
11583
11584 #.  The CLOCK_MONOTONIC_RAW that was added in 2.6.28 can't be used
11585 #.  to create a timer -- mtk, Feb 2009
11586 #. type: Plain text
11587 #: build/C/man2/timer_create.2:87
11588 msgid ""
11589 "A clock that measures (user and system) CPU time consumed by the calling "
11590 "thread."
11591 msgstr ""
11592
11593 #. type: Plain text
11594 #: build/C/man2/timer_create.2:96
11595 msgid ""
11596 "As well as the above values, I<clockid> can be specified as the I<clockid> "
11597 "returned by a call to B<clock_getcpuclockid>(3)  or "
11598 "B<pthread_getcpuclockid>(3)."
11599 msgstr ""
11600
11601 #. type: Plain text
11602 #: build/C/man2/timer_create.2:105
11603 msgid ""
11604 "The I<sevp> argument points to a I<sigevent> structure that specifies how "
11605 "the caller should be notified when the timer expires.  For the definition "
11606 "and general details of this structure, see B<sigevent>(7)."
11607 msgstr ""
11608
11609 #. type: Plain text
11610 #: build/C/man2/timer_create.2:109
11611 msgid "The I<sevp.sigev_notify> field can have the following values:"
11612 msgstr ""
11613
11614 #. type: Plain text
11615 #: build/C/man2/timer_create.2:114
11616 msgid ""
11617 "Don't asynchronously notify when the timer expires.  Progress of the timer "
11618 "can be monitored using B<timer_gettime>(2)."
11619 msgstr ""
11620
11621 #. type: Plain text
11622 #: build/C/man2/timer_create.2:132
11623 msgid ""
11624 "Upon timer expiration, generate the signal I<sigev_signo> for the process.  "
11625 "See B<sigevent>(7)  for general details.  The I<si_code> field of the "
11626 "I<siginfo_t> structure will be set to B<SI_TIMER>.  At any point in time, at "
11627 "most one signal is queued to the process for a given timer; see "
11628 "B<timer_getoverrun>(2)  for more details."
11629 msgstr ""
11630
11631 #. type: Plain text
11632 #: build/C/man2/timer_create.2:140
11633 msgid ""
11634 "Upon timer expiration, invoke I<sigev_notify_function> as if it were the "
11635 "start function of a new thread.  See B<sigevent>(7)  for details."
11636 msgstr ""
11637
11638 #. type: Plain text
11639 #: build/C/man2/timer_create.2:154
11640 msgid ""
11641 "As for B<SIGEV_SIGNAL>, but the signal is targeted at the thread whose ID is "
11642 "given in I<sigev_notify_thread_id>, which must be a thread in the same "
11643 "process as the caller.  The I<sigev_notify_thread_id> field specifies a "
11644 "kernel thread ID, that is, the value returned by B<clone>(2)  or "
11645 "B<gettid>(2).  This flag is intended only for use by threading libraries."
11646 msgstr ""
11647
11648 #. type: Plain text
11649 #: build/C/man2/timer_create.2:169
11650 msgid ""
11651 "Specifying I<sevp> as NULL is equivalent to specifying a pointer to a "
11652 "I<sigevent> structure in which I<sigev_notify> is B<SIGEV_SIGNAL>, "
11653 "I<sigev_signo> is B<SIGALRM>, and I<sigev_value.sival_int> is the timer ID."
11654 msgstr ""
11655
11656 #. type: Plain text
11657 #: build/C/man2/timer_create.2:177
11658 msgid ""
11659 "On success, B<timer_create>()  returns 0, and the ID of the new timer is "
11660 "placed in I<*timerid>.  On failure, -1 is returned, and I<errno> is set to "
11661 "indicate the error."
11662 msgstr ""
11663
11664 #. type: Plain text
11665 #: build/C/man2/timer_create.2:181
11666 msgid "Temporary error during kernel allocation of timer structures."
11667 msgstr ""
11668
11669 #. type: Plain text
11670 #: build/C/man2/timer_create.2:189
11671 msgid ""
11672 "Clock ID, I<sigev_notify>, I<sigev_signo>, or I<sigev_notify_thread_id> is "
11673 "invalid."
11674 msgstr ""
11675
11676 #.  glibc layer: malloc()
11677 #. type: Plain text
11678 #: build/C/man2/timer_create.2:193
11679 msgid "Could not allocate memory."
11680 msgstr ""
11681
11682 #. type: Plain text
11683 #: build/C/man2/timer_create.2:195 build/C/man2/timer_delete.2:67
11684 #: build/C/man2/timer_getoverrun.2:97
11685 msgid "This system call is available since Linux 2.6."
11686 msgstr "このシステムコールは Linux 2.6 以降で利用できる。"
11687
11688 #. type: Plain text
11689 #: build/C/man2/timer_create.2:200
11690 msgid "A program may create multiple interval timers using B<timer_create>()."
11691 msgstr ""
11692
11693 #. type: Plain text
11694 #: build/C/man2/timer_create.2:205
11695 msgid ""
11696 "Timers are not inherited by the child of a B<fork>(2), and are disarmed and "
11697 "deleted during an B<execve>(2)."
11698 msgstr ""
11699
11700 #. type: Plain text
11701 #: build/C/man2/timer_create.2:213
11702 msgid ""
11703 "The kernel preallocates a \"queued real-time signal\" for each timer created "
11704 "using B<timer_create>().  Consequently, the number of timers is limited by "
11705 "the B<RLIMIT_SIGPENDING> resource limit (see B<setrlimit>(2))."
11706 msgstr ""
11707
11708 #. type: Plain text
11709 #: build/C/man2/timer_create.2:218
11710 msgid ""
11711 "The timers created by B<timer_create>()  are commonly known as \"POSIX "
11712 "(interval) timers\".  The POSIX timers API consists of the following "
11713 "interfaces:"
11714 msgstr ""
11715
11716 #. type: Plain text
11717 #: build/C/man2/timer_create.2:221
11718 msgid "B<timer_create>(): Create a timer."
11719 msgstr ""
11720
11721 #. type: Plain text
11722 #: build/C/man2/timer_create.2:224
11723 msgid "B<timer_settime>(2): Arm (start) or disarm (stop) a timer."
11724 msgstr ""
11725
11726 #. type: Plain text
11727 #: build/C/man2/timer_create.2:228
11728 msgid ""
11729 "B<timer_gettime>(2): Fetch the time remaining until the next expiration of a "
11730 "timer, along with the interval setting of the timer."
11731 msgstr ""
11732
11733 #. type: Plain text
11734 #: build/C/man2/timer_create.2:231
11735 msgid ""
11736 "B<timer_getoverrun>(2): Return the overrun count for the last timer "
11737 "expiration."
11738 msgstr ""
11739
11740 #. type: Plain text
11741 #: build/C/man2/timer_create.2:234
11742 msgid "B<timer_delete>(2): Disarm and delete a timer."
11743 msgstr ""
11744
11745 #. type: Plain text
11746 #: build/C/man2/timer_create.2:243
11747 msgid ""
11748 "Since Linux 3.10, the I</proc/[pid]/timers> file can be used to list the "
11749 "POSIX timers for the process with PID I<pid>.  See B<proc>(5)  for further "
11750 "information."
11751 msgstr ""
11752
11753 #. type: Plain text
11754 #: build/C/man2/timer_create.2:246
11755 msgid ""
11756 "Part of the implementation of the POSIX timers API is provided by glibc.  In "
11757 "particular:"
11758 msgstr ""
11759
11760 #. type: Plain text
11761 #: build/C/man2/timer_create.2:250
11762 msgid ""
11763 "The functionality for B<SIGEV_THREAD> is implemented within glibc, rather "
11764 "than the kernel."
11765 msgstr ""
11766
11767 #.  See the glibc source file kernel-posix-timers.h for the structure
11768 #.  that glibc uses to map user-space timer IDs to kernel timer IDs
11769 #.  The kernel-level timer ID is exposed via siginfo.si_tid.
11770 #. type: Plain text
11771 #: build/C/man2/timer_create.2:256
11772 msgid ""
11773 "The timer IDs presented at user level are maintained by glibc, which maps "
11774 "these IDs to the timer IDs employed by the kernel."
11775 msgstr ""
11776
11777 #. type: Plain text
11778 #: build/C/man2/timer_create.2:264
11779 msgid ""
11780 "The POSIX timers system calls first appeared in Linux 2.6.  Prior to this, "
11781 "glibc provided an incomplete user-space implementation (B<CLOCK_REALTIME> "
11782 "timers only) using POSIX threads, and current glibc falls back to this "
11783 "implementation on systems running pre-2.6 Linux kernels."
11784 msgstr ""
11785
11786 #. type: Plain text
11787 #: build/C/man2/timer_create.2:276
11788 msgid ""
11789 "The program below takes two arguments: a sleep period in seconds, and a "
11790 "timer frequency in nanoseconds.  The program establishes a handler for the "
11791 "signal it uses for the timer, blocks that signal, creates and arms a timer "
11792 "that expires with the given frequency, sleeps for the specified number of "
11793 "seconds, and then unblocks the timer signal.  Assuming that the timer "
11794 "expired at least once while the program slept, the signal handler will be "
11795 "invoked, and the handler displays some information about the timer "
11796 "notification.  The program terminates after one invocation of the signal "
11797 "handler."
11798 msgstr ""
11799
11800 #. type: Plain text
11801 #: build/C/man2/timer_create.2:281
11802 msgid ""
11803 "In the following example run, the program sleeps for 1 second, after "
11804 "creating a timer that has a frequency of 100 nanoseconds.  By the time the "
11805 "signal is unblocked and delivered, there have been around ten million "
11806 "overruns."
11807 msgstr ""
11808
11809 #. type: Plain text
11810 #: build/C/man2/timer_create.2:293
11811 #, no-wrap
11812 msgid ""
11813 "$ B<./a.out 1 100>\n"
11814 "Establishing handler for signal 34\n"
11815 "Blocking signal 34\n"
11816 "timer ID is 0x804c008\n"
11817 "Sleeping for 1 seconds\n"
11818 "Unblocking signal 34\n"
11819 "Caught signal 34\n"
11820 "    sival_ptr = 0xbfb174f4;     *sival_ptr = 0x804c008\n"
11821 "    overrun count = 10004886\n"
11822 msgstr ""
11823
11824 #. type: Plain text
11825 #: build/C/man2/timer_create.2:303
11826 #, no-wrap
11827 msgid ""
11828 "#include E<lt>stdlib.hE<gt>\n"
11829 "#include E<lt>unistd.hE<gt>\n"
11830 "#include E<lt>stdio.hE<gt>\n"
11831 "#include E<lt>signal.hE<gt>\n"
11832 "#include E<lt>time.hE<gt>\n"
11833 msgstr ""
11834 "#include E<lt>stdlib.hE<gt>\n"
11835 "#include E<lt>unistd.hE<gt>\n"
11836 "#include E<lt>stdio.hE<gt>\n"
11837 "#include E<lt>signal.hE<gt>\n"
11838 "#include E<lt>time.hE<gt>\n"
11839
11840 #. type: Plain text
11841 #: build/C/man2/timer_create.2:306
11842 #, no-wrap
11843 msgid ""
11844 "#define CLOCKID CLOCK_REALTIME\n"
11845 "#define SIG SIGRTMIN\n"
11846 msgstr ""
11847 "#define CLOCKID CLOCK_REALTIME\n"
11848 "#define SIG SIGRTMIN\n"
11849
11850 #. type: Plain text
11851 #: build/C/man2/timer_create.2:309
11852 #, no-wrap
11853 msgid ""
11854 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11855 "                        } while (0)\n"
11856 msgstr ""
11857 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11858 "                        } while (0)\n"
11859
11860 #. type: Plain text
11861 #: build/C/man2/timer_create.2:315
11862 #, no-wrap
11863 msgid ""
11864 "static void\n"
11865 "print_siginfo(siginfo_t *si)\n"
11866 "{\n"
11867 "    timer_t *tidp;\n"
11868 "    int or;\n"
11869 msgstr ""
11870 "static void\n"
11871 "print_siginfo(siginfo_t *si)\n"
11872 "{\n"
11873 "    timer_t *tidp;\n"
11874 "    int or;\n"
11875
11876 #. type: Plain text
11877 #: build/C/man2/timer_create.2:317
11878 #, no-wrap
11879 msgid "    tidp = si-E<gt>si_value.sival_ptr;\n"
11880 msgstr "    tidp = si-E<gt>si_value.sival_ptr;\n"
11881
11882 #. type: Plain text
11883 #: build/C/man2/timer_create.2:320
11884 #, no-wrap
11885 msgid ""
11886 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11887 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11888 msgstr ""
11889 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11890 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11891
11892 #. type: Plain text
11893 #: build/C/man2/timer_create.2:327
11894 #, no-wrap
11895 msgid ""
11896 "    or = timer_getoverrun(*tidp);\n"
11897 "    if (or == -1)\n"
11898 "        errExit(\"timer_getoverrun\");\n"
11899 "    else\n"
11900 "        printf(\"    overrun count = %d\\en\", or);\n"
11901 "}\n"
11902 msgstr ""
11903 "    or = timer_getoverrun(*tidp);\n"
11904 "    if (or == -1)\n"
11905 "        errExit(\"timer_getoverrun\");\n"
11906 "    else\n"
11907 "        printf(\"    overrun count = %d\\en\", or);\n"
11908 "}\n"
11909
11910 #. type: Plain text
11911 #: build/C/man2/timer_create.2:334
11912 #, no-wrap
11913 msgid ""
11914 "static void\n"
11915 "handler(int sig, siginfo_t *si, void *uc)\n"
11916 "{\n"
11917 "    /* Note: calling printf() from a signal handler is not\n"
11918 "       strictly correct, since printf() is not async-signal-safe;\n"
11919 "       see signal(7) */\n"
11920 msgstr ""
11921 "static void\n"
11922 "handler(int sig, siginfo_t *si, void *uc)\n"
11923 "{\n"
11924 "    /* Note: calling printf() from a signal handler is not\n"
11925 "       strictly correct, since printf() is not async-signal-safe;\n"
11926 "       see signal(7) */\n"
11927
11928 #. type: Plain text
11929 #: build/C/man2/timer_create.2:339
11930 #, no-wrap
11931 msgid ""
11932 "    printf(\"Caught signal %d\\en\", sig);\n"
11933 "    print_siginfo(si);\n"
11934 "    signal(sig, SIG_IGN);\n"
11935 "}\n"
11936 msgstr ""
11937 "    printf(\"Caught signal %d\\en\", sig);\n"
11938 "    print_siginfo(si);\n"
11939 "    signal(sig, SIG_IGN);\n"
11940 "}\n"
11941
11942 #. type: Plain text
11943 #: build/C/man2/timer_create.2:349
11944 #, no-wrap
11945 msgid ""
11946 "int\n"
11947 "main(int argc, char *argv[])\n"
11948 "{\n"
11949 "    timer_t timerid;\n"
11950 "    struct sigevent sev;\n"
11951 "    struct itimerspec its;\n"
11952 "    long long freq_nanosecs;\n"
11953 "    sigset_t mask;\n"
11954 "    struct sigaction sa;\n"
11955 msgstr ""
11956 "int\n"
11957 "main(int argc, char *argv[])\n"
11958 "{\n"
11959 "    timer_t timerid;\n"
11960 "    struct sigevent sev;\n"
11961 "    struct itimerspec its;\n"
11962 "    long long freq_nanosecs;\n"
11963 "    sigset_t mask;\n"
11964 "    struct sigaction sa;\n"
11965
11966 #. type: Plain text
11967 #: build/C/man2/timer_create.2:355
11968 #, no-wrap
11969 msgid ""
11970 "    if (argc != 3) {\n"
11971 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11972 "                argv[0]);\n"
11973 "        exit(EXIT_FAILURE);\n"
11974 "    }\n"
11975 msgstr ""
11976 "    if (argc != 3) {\n"
11977 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11978 "                argv[0]);\n"
11979 "        exit(EXIT_FAILURE);\n"
11980 "    }\n"
11981
11982 #. type: Plain text
11983 #: build/C/man2/timer_create.2:357
11984 #, no-wrap
11985 msgid "    /* Establish handler for timer signal */\n"
11986 msgstr "    /* Establish handler for timer signal */\n"
11987
11988 #. type: Plain text
11989 #: build/C/man2/timer_create.2:364
11990 #, no-wrap
11991 msgid ""
11992 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11993 "    sa.sa_flags = SA_SIGINFO;\n"
11994 "    sa.sa_sigaction = handler;\n"
11995 "    sigemptyset(&sa.sa_mask);\n"
11996 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11997 "        errExit(\"sigaction\");\n"
11998 msgstr ""
11999 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
12000 "    sa.sa_flags = SA_SIGINFO;\n"
12001 "    sa.sa_sigaction = handler;\n"
12002 "    sigemptyset(&sa.sa_mask);\n"
12003 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
12004 "        errExit(\"sigaction\");\n"
12005
12006 #. type: Plain text
12007 #: build/C/man2/timer_create.2:366
12008 #, no-wrap
12009 msgid "    /* Block timer signal temporarily */\n"
12010 msgstr "    /* Block timer signal temporarily */\n"
12011
12012 #. type: Plain text
12013 #: build/C/man2/timer_create.2:372
12014 #, no-wrap
12015 msgid ""
12016 "    printf(\"Blocking signal %d\\en\", SIG);\n"
12017 "    sigemptyset(&mask);\n"
12018 "    sigaddset(&mask, SIG);\n"
12019 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
12020 "        errExit(\"sigprocmask\");\n"
12021 msgstr ""
12022 "    printf(\"Blocking signal %d\\en\", SIG);\n"
12023 "    sigemptyset(&mask);\n"
12024 "    sigaddset(&mask, SIG);\n"
12025 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
12026 "        errExit(\"sigprocmask\");\n"
12027
12028 #. type: Plain text
12029 #: build/C/man2/timer_create.2:374
12030 #, no-wrap
12031 msgid "    /* Create the timer */\n"
12032 msgstr "    /* Create the timer */\n"
12033
12034 #. type: Plain text
12035 #: build/C/man2/timer_create.2:380
12036 #, no-wrap
12037 msgid ""
12038 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
12039 "    sev.sigev_signo = SIG;\n"
12040 "    sev.sigev_value.sival_ptr = &timerid;\n"
12041 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
12042 "        errExit(\"timer_create\");\n"
12043 msgstr ""
12044 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
12045 "    sev.sigev_signo = SIG;\n"
12046 "    sev.sigev_value.sival_ptr = &timerid;\n"
12047 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
12048 "        errExit(\"timer_create\");\n"
12049
12050 #. type: Plain text
12051 #: build/C/man2/timer_create.2:382
12052 #, no-wrap
12053 msgid "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
12054 msgstr "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
12055
12056 #. type: Plain text
12057 #: build/C/man2/timer_create.2:384
12058 #, no-wrap
12059 msgid "    /* Start the timer */\n"
12060 msgstr "    /* Start the timer */\n"
12061
12062 #. type: Plain text
12063 #: build/C/man2/timer_create.2:390
12064 #, no-wrap
12065 msgid ""
12066 "    freq_nanosecs = atoll(argv[2]);\n"
12067 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
12068 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
12069 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
12070 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
12071 msgstr ""
12072 "    freq_nanosecs = atoll(argv[2]);\n"
12073 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
12074 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
12075 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
12076 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
12077
12078 #. type: Plain text
12079 #: build/C/man2/timer_create.2:393
12080 #, no-wrap
12081 msgid ""
12082 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
12083 "         errExit(\"timer_settime\");\n"
12084 msgstr ""
12085 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
12086 "         errExit(\"timer_settime\");\n"
12087
12088 #. type: Plain text
12089 #: build/C/man2/timer_create.2:396
12090 #, no-wrap
12091 msgid ""
12092 "    /* Sleep for a while; meanwhile, the timer may expire\n"
12093 "       multiple times */\n"
12094 msgstr ""
12095 "    /* Sleep for a while; meanwhile, the timer may expire\n"
12096 "       multiple times */\n"
12097
12098 #. type: Plain text
12099 #: build/C/man2/timer_create.2:399
12100 #, no-wrap
12101 msgid ""
12102 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
12103 "    sleep(atoi(argv[1]));\n"
12104 msgstr ""
12105 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
12106 "    sleep(atoi(argv[1]));\n"
12107
12108 #. type: Plain text
12109 #: build/C/man2/timer_create.2:402
12110 #, no-wrap
12111 msgid ""
12112 "    /* Unlock the timer signal, so that timer notification\n"
12113 "       can be delivered */\n"
12114 msgstr ""
12115 "    /* Unlock the timer signal, so that timer notification\n"
12116 "       can be delivered */\n"
12117
12118 #. type: Plain text
12119 #: build/C/man2/timer_create.2:406
12120 #, no-wrap
12121 msgid ""
12122 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
12123 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
12124 "        errExit(\"sigprocmask\");\n"
12125 msgstr ""
12126 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
12127 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
12128 "        errExit(\"sigprocmask\");\n"
12129
12130 #. type: Plain text
12131 #: build/C/man2/timer_create.2:409 build/C/man2/timerfd_create.2:547
12132 #, no-wrap
12133 msgid ""
12134 "    exit(EXIT_SUCCESS);\n"
12135 "}\n"
12136 msgstr ""
12137 "    exit(EXIT_SUCCESS);\n"
12138 "}\n"
12139
12140 #. type: Plain text
12141 #: build/C/man2/timer_create.2:425
12142 msgid ""
12143 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), "
12144 "B<timer_getoverrun>(2), B<timer_settime>(2), B<timerfd_create>(2), "
12145 "B<clock_getcpuclockid>(3), B<pthread_getcpuclockid>(3), B<pthreads>(7), "
12146 "B<sigevent>(7), B<signal>(7), B<time>(7)"
12147 msgstr ""
12148 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), "
12149 "B<timer_getoverrun>(2), B<timer_settime>(2), B<timerfd_create>(2), "
12150 "B<clock_getcpuclockid>(3), B<pthread_getcpuclockid>(3), B<pthreads>(7), "
12151 "B<sigevent>(7), B<signal>(7), B<time>(7)"
12152
12153 #. type: TH
12154 #: build/C/man2/timer_delete.2:26
12155 #, no-wrap
12156 msgid "TIMER_DELETE"
12157 msgstr "TIMER_DELETE"
12158
12159 #. type: TH
12160 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
12161 #, no-wrap
12162 msgid "2009-02-20"
12163 msgstr "2009-02-20"
12164
12165 #. type: Plain text
12166 #: build/C/man2/timer_delete.2:29
12167 msgid "timer_delete - delete a POSIX per-process timer"
12168 msgstr "timer_delete - プロセス単位の POSIX タイマーを削除する"
12169
12170 #. type: Plain text
12171 #: build/C/man2/timer_delete.2:32 build/C/man2/timer_getoverrun.2:32
12172 #: build/C/man2/timer_settime.2:33
12173 #, no-wrap
12174 msgid "B<#include E<lt>time.hE<gt>>\n"
12175 msgstr "B<#include E<lt>time.hE<gt>>\n"
12176
12177 #. type: Plain text
12178 #: build/C/man2/timer_delete.2:34
12179 #, no-wrap
12180 msgid "B<int timer_delete(timer_t >I<timerid>B<);>\n"
12181 msgstr "B<int timer_delete(timer_t >I<timerid>B<);>\n"
12182
12183 #. type: Plain text
12184 #: build/C/man2/timer_delete.2:45
12185 msgid "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12186 msgstr "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12187
12188 #. type: Plain text
12189 #: build/C/man2/timer_delete.2:53
12190 msgid ""
12191 "B<timer_delete>()  deletes the timer whose ID is given in I<timerid>.  If "
12192 "the timer was armed at the time of this call, it is disarmed before being "
12193 "deleted.  The treatment of any pending signal generated by the deleted timer "
12194 "is unspecified."
12195 msgstr ""
12196 "B<timer_delete>() は I<timerid> で指定された ID のタイマーを削除する。 "
12197 "B<timer_delete>() が呼び出された時点でタイマーが開始されている場合は、 削除す"
12198 "る前にタイマーの解除が行われる。 削除されるタイマーにより生成された処理待ちシ"
12199 "グナルの扱いは不定 (unspecified) である。"
12200
12201 #. type: Plain text
12202 #: build/C/man2/timer_delete.2:60
12203 msgid ""
12204 "On success, B<timer_delete>()  returns 0.  On failure, -1 is returned, and "
12205 "I<errno> is set to indicate the error."
12206 msgstr ""
12207 "成功すると、 B<timer_delete>() は 0 を返す。 失敗すると、 -1 が返り、 "
12208 "I<errno> にエラーを示す値が設定される。"
12209
12210 #. type: Plain text
12211 #: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
12212 msgid "I<timerid> is not a valid timer ID."
12213 msgstr "I<timerid> が有効なタイマー ID ではない。"
12214
12215 #. type: Plain text
12216 #: build/C/man2/timer_delete.2:75
12217 msgid ""
12218 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
12219 "B<timer_settime>(2), B<time>(7)"
12220 msgstr ""
12221 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
12222 "B<timer_settime>(2), B<time>(7)"
12223
12224 #. type: TH
12225 #: build/C/man2/timer_getoverrun.2:26
12226 #, no-wrap
12227 msgid "TIMER_GETOVERRUN"
12228 msgstr "TIMER_GETOVERRUN"
12229
12230 #. type: Plain text
12231 #: build/C/man2/timer_getoverrun.2:29
12232 msgid "timer_getoverrun - get overrun count for a POSIX per-process timer"
12233 msgstr ""
12234
12235 #. type: Plain text
12236 #: build/C/man2/timer_getoverrun.2:34
12237 #, no-wrap
12238 msgid "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
12239 msgstr "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
12240
12241 #. type: Plain text
12242 #: build/C/man2/timer_getoverrun.2:45
12243 msgid "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12244 msgstr "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12245
12246 #. type: Plain text
12247 #: build/C/man2/timer_getoverrun.2:56
12248 msgid ""
12249 "B<timer_getoverrun>()  returns the \"overrun count\" for the timer referred "
12250 "to by I<timerid>.  An application can use the overrun count to accurately "
12251 "calculate the number of timer expirations that would have occurred over a "
12252 "given time interval.  Timer overruns can occur both when receiving "
12253 "expiration notifications via signals (B<SIGEV_SIGNAL>), and via threads "
12254 "(B<SIGEV_THREAD>)."
12255 msgstr ""
12256
12257 #. type: Plain text
12258 #: build/C/man2/timer_getoverrun.2:76
12259 msgid ""
12260 "When expiration notifications are delivered via a signal, overruns can occur "
12261 "as follows.  Regardless of whether or not a real-time signal is used for "
12262 "timer notifications, the system queues at most one signal per timer.  (This "
12263 "is the behavior specified by POSIX.1-2001.  The alternative, queuing one "
12264 "signal for each timer expiration, could easily result in overflowing the "
12265 "allowed limits for queued signals on the system.)  Because of system "
12266 "scheduling delays, or because the signal may be temporarily blocked, there "
12267 "can be a delay between the time when the notification signal is generated "
12268 "and the time when it is delivered (e.g., caught by a signal handler) or "
12269 "accepted (e.g., using B<sigwaitinfo>(2)).  In this interval, further timer "
12270 "expirations may occur.  The timer overrun count is the number of additional "
12271 "timer expirations that occurred between the time when the signal was "
12272 "generated and when it was delivered or accepted."
12273 msgstr ""
12274
12275 #. type: Plain text
12276 #: build/C/man2/timer_getoverrun.2:82
12277 msgid ""
12278 "Timer overruns can also occur when expiration notifications are delivered "
12279 "via invocation of a thread, since there may be an arbitrary delay between an "
12280 "expiration of the timer and the invocation of the notification thread, and "
12281 "in that delay interval, additional timer expirations may occur."
12282 msgstr ""
12283
12284 #. type: Plain text
12285 #: build/C/man2/timer_getoverrun.2:90
12286 msgid ""
12287 "On success, B<timer_getoverrun>()  returns the overrun count of the "
12288 "specified timer; this count may be 0 if no overruns have occurred.  On "
12289 "failure, -1 is returned, and I<errno> is set to indicate the error."
12290 msgstr ""
12291
12292 #. type: Plain text
12293 #: build/C/man2/timer_getoverrun.2:111
12294 msgid ""
12295 "When timer notifications are delivered via signals (B<SIGEV_SIGNAL>), on "
12296 "Linux it is also possible to obtain the overrun count via the I<si_overrun> "
12297 "field of the I<siginfo_t> structure (see B<sigaction>(2)).  This allows an "
12298 "application to avoid the overhead of making a system call to obtain the "
12299 "overrun count, but is a nonportable extension to POSIX.1-2001."
12300 msgstr ""
12301
12302 #.  FIXME . Austin bug filed, 11 Feb 09
12303 #. type: Plain text
12304 #: build/C/man2/timer_getoverrun.2:115
12305 msgid ""
12306 "POSIX.1-2001 discusses timer overruns only in the context of timer "
12307 "notifications using signals."
12308 msgstr ""
12309
12310 #.  Bug filed: http://bugzilla.kernel.org/show_bug.cgi?id=12665
12311 #.  http://thread.gmane.org/gmane.linux.kernel/113276/
12312 #. type: Plain text
12313 #: build/C/man2/timer_getoverrun.2:128
12314 msgid ""
12315 "POSIX.1-2001 specifies that if the timer overrun count is equal to or "
12316 "greater than an implementation-defined maximum, B<DELAYTIMER_MAX>, then "
12317 "B<timer_getoverrun>()  should return B<DELAYTIMER_MAX>.  However, Linux does "
12318 "not implement this feature: instead, if the timer overrun value exceeds the "
12319 "maximum representable integer, the counter cycles, starting once more from "
12320 "low values."
12321 msgstr ""
12322
12323 #. type: Plain text
12324 #: build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212
12325 msgid "See B<timer_create>(2)."
12326 msgstr ""
12327
12328 #. type: Plain text
12329 #: build/C/man2/timer_getoverrun.2:141
12330 msgid ""
12331 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
12332 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
12333 "B<time>(7)"
12334 msgstr ""
12335 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
12336 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
12337 "B<time>(7)"
12338
12339 #. type: TH
12340 #: build/C/man2/timer_settime.2:26
12341 #, no-wrap
12342 msgid "TIMER_SETTIME"
12343 msgstr "TIMER_SETTIME"
12344
12345 #. type: TH
12346 #: build/C/man2/timer_settime.2:26
12347 #, no-wrap
12348 msgid "2012-10-15"
12349 msgstr "2012-10-15"
12350
12351 #. type: Plain text
12352 #: build/C/man2/timer_settime.2:30
12353 msgid ""
12354 "timer_settime, timer_gettime - arm/disarm and fetch state of POSIX per-"
12355 "process timer"
12356 msgstr ""
12357
12358 #. type: Plain text
12359 #: build/C/man2/timer_settime.2:38
12360 #, no-wrap
12361 msgid ""
12362 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
12363 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
12364 "B<                  struct itimerspec *>I<old_value>B<);>\n"
12365 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
12366 msgstr ""
12367 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
12368 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
12369 "B<                  struct itimerspec *>I<old_value>B<);>\n"
12370 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
12371
12372 #. type: Plain text
12373 #: build/C/man2/timer_settime.2:50
12374 msgid ""
12375 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12376 msgstr ""
12377 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12378
12379 #. type: Plain text
12380 #: build/C/man2/timer_settime.2:63
12381 msgid ""
12382 "B<timer_settime>()  arms or disarms the timer identified by I<timerid>.  The "
12383 "I<new_value> argument is pointer to an I<itimerspec> structure that "
12384 "specifies the new initial value and the new interval for the timer.  The "
12385 "I<itimerspec> structure is defined as follows:"
12386 msgstr ""
12387
12388 #. type: Plain text
12389 #: build/C/man2/timer_settime.2:70 build/C/man2/timerfd_create.2:135
12390 #, no-wrap
12391 msgid ""
12392 "struct timespec {\n"
12393 "    time_t tv_sec;                /* Seconds */\n"
12394 "    long   tv_nsec;               /* Nanoseconds */\n"
12395 "};\n"
12396 msgstr ""
12397 "struct timespec {\n"
12398 "    time_t tv_sec;                /* Seconds */\n"
12399 "    long   tv_nsec;               /* Nanoseconds */\n"
12400 "};\n"
12401
12402 #. type: Plain text
12403 #: build/C/man2/timer_settime.2:75
12404 #, no-wrap
12405 msgid ""
12406 "struct itimerspec {\n"
12407 "    struct timespec it_interval;  /* Timer interval */\n"
12408 "    struct timespec it_value;     /* Initial expiration */\n"
12409 "};\n"
12410 msgstr ""
12411 "struct itimerspec {\n"
12412 "    struct timespec it_interval;  /* Timer interval */\n"
12413 "    struct timespec it_value;     /* Initial expiration */\n"
12414 "};\n"
12415
12416 #. type: Plain text
12417 #: build/C/man2/timer_settime.2:87
12418 msgid ""
12419 "Each of the substructures of the I<itimerspec> structure is a I<timespec> "
12420 "structure that allows a time value to be specified in seconds and "
12421 "nanoseconds.  These time values are measured according to the clock that was "
12422 "specified when the timer was created by B<timer_create>(2)."
12423 msgstr ""
12424
12425 #. type: Plain text
12426 #: build/C/man2/timer_settime.2:101
12427 msgid ""
12428 "If I<new_value-E<gt>it_value> specifies a nonzero value (i.e., either "
12429 "subfield is nonzero), then B<timer_settime>()  arms (starts) the timer, "
12430 "setting it to initially expire at the given time.  (If the timer was already "
12431 "armed, then the previous settings are overwritten.)  If I<new_value-"
12432 "E<gt>it_value> specifies a zero value (i.e., both subfields are zero), then "
12433 "the timer is disarmed."
12434 msgstr ""
12435
12436 #. type: Plain text
12437 #: build/C/man2/timer_settime.2:113
12438 msgid ""
12439 "The I<new_value-E<gt>it_interval> field specifies the period of the timer, "
12440 "in seconds and nanoseconds.  If this field is nonzero, then each time that "
12441 "an armed timer expires, the timer is reloaded from the value specified in "
12442 "I<new_value-E<gt>it_interval>.  If I<new_value-E<gt>it_interval> specifies a "
12443 "zero value, then the timer expires just once, at the time specified by "
12444 "I<it_value>."
12445 msgstr ""
12446
12447 #.  By experiment: the overrun count is set correctly, for CLOCK_REALTIME.
12448 #. type: Plain text
12449 #: build/C/man2/timer_settime.2:134
12450 msgid ""
12451 "By default, the initial expiration time specified in I<new_value-"
12452 "E<gt>it_value> is interpreted relative to the current time on the timer's "
12453 "clock at the time of the call.  This can be modified by specifying "
12454 "B<TIMER_ABSTIME> in I<flags>, in which case I<new_value-E<gt>it_value> is "
12455 "interpreted as an absolute value as measured on the timer's clock; that is, "
12456 "the timer will expire when the clock value reaches the value specified by "
12457 "I<new_value-E<gt>it_value>.  If the specified absolute time has already "
12458 "passed, then the timer expires immediately, and the overrun count (see "
12459 "B<timer_getoverrun>(2))  will be set correctly."
12460 msgstr ""
12461
12462 #.  Similar remarks might apply with respect to process and thread CPU time
12463 #.  clocks, but these clocks are not currently (2.6.28) settable on Linux.
12464 #. type: Plain text
12465 #: build/C/man2/timer_settime.2:144
12466 msgid ""
12467 "If the value of the B<CLOCK_REALTIME> clock is adjusted while an absolute "
12468 "timer based on that clock is armed, then the expiration of the timer will be "
12469 "appropriately adjusted.  Adjustments to the B<CLOCK_REALTIME> clock have no "
12470 "effect on relative timers based on that clock."
12471 msgstr ""
12472
12473 #. type: Plain text
12474 #: build/C/man2/timer_settime.2:153
12475 msgid ""
12476 "If I<old_value> is not NULL, then it points to a buffer that is used to "
12477 "return the previous interval of the timer (in I<old_value-"
12478 "E<gt>it_interval>)  and the amount of time until the timer would previously "
12479 "have next expired (in I<old_value-E<gt>it_value>)."
12480 msgstr ""
12481
12482 #. type: Plain text
12483 #: build/C/man2/timer_settime.2:173
12484 msgid ""
12485 "B<timer_gettime>()  returns the time until next expiration, and the "
12486 "interval, for the timer specified by I<timerid>, in the buffer pointed to by "
12487 "I<curr_value>.  The time remaining until the next timer expiration is "
12488 "returned in I<curr_value-E<gt>it_value>; this is always a relative value, "
12489 "regardless of whether the B<TIMER_ABSTIME> flag was used when arming the "
12490 "timer.  If the value returned in I<curr_value-E<gt>it_value> is zero, then "
12491 "the timer is currently disarmed.  The timer interval is returned in "
12492 "I<curr_value-E<gt>it_interval>.  If the value returned in I<curr_value-"
12493 "E<gt>it_interval> is zero, then this is a \"one-shot\" timer."
12494 msgstr ""
12495
12496 #. type: Plain text
12497 #: build/C/man2/timer_settime.2:182
12498 msgid ""
12499 "On success, B<timer_settime>()  and B<timer_gettime>()  return 0.  On error, "
12500 "-1 is returned, and I<errno> is set to indicate the error."
12501 msgstr ""
12502
12503 #. type: Plain text
12504 #: build/C/man2/timer_settime.2:184
12505 msgid "These functions may fail with the following errors:"
12506 msgstr ""
12507
12508 #. type: Plain text
12509 #: build/C/man2/timer_settime.2:191
12510 msgid "I<new_value>, I<old_value>, or I<curr_value> is not a valid pointer."
12511 msgstr ""
12512
12513 #.  FIXME . eventually: invalid value in flags
12514 #. type: Plain text
12515 #: build/C/man2/timer_settime.2:196
12516 msgid "I<timerid> is invalid."
12517 msgstr ""
12518
12519 #. type: Plain text
12520 #: build/C/man2/timer_settime.2:199
12521 msgid "B<timer_settime>()  may fail with the following errors:"
12522 msgstr ""
12523
12524 #. type: Plain text
12525 #: build/C/man2/timer_settime.2:205
12526 msgid ""
12527 "I<new_value.it_value> is negative; or I<new_value.it_value.tv_nsec> is "
12528 "negative or greater than 999,999,999."
12529 msgstr ""
12530
12531 #. type: Plain text
12532 #: build/C/man2/timer_settime.2:207
12533 msgid "These system calls are available since Linux 2.6."
12534 msgstr "これらのシステムコールは Linux 2.6 以降で利用可能である。"
12535
12536 #. type: Plain text
12537 #: build/C/man2/timer_settime.2:216
12538 msgid "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12539 msgstr "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12540
12541 #. type: TH
12542 #: build/C/man2/timerfd_create.2:22
12543 #, no-wrap
12544 msgid "TIMERFD_CREATE"
12545 msgstr "TIMERFD_CREATE"
12546
12547 #. type: TH
12548 #: build/C/man2/timerfd_create.2:22
12549 #, no-wrap
12550 msgid "2011-09-14"
12551 msgstr "2011-09-14"
12552
12553 #. type: Plain text
12554 #: build/C/man2/timerfd_create.2:26
12555 msgid ""
12556 "timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via "
12557 "file descriptors"
12558 msgstr ""
12559 "timerfd_create, timerfd_settime, timerfd_gettime - ファイルディスクリプタ経由"
12560 "で通知するタイマー"
12561
12562 #. type: Plain text
12563 #: build/C/man2/timerfd_create.2:29
12564 #, no-wrap
12565 msgid "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12566 msgstr "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12567
12568 #. type: Plain text
12569 #: build/C/man2/timerfd_create.2:31
12570 #, no-wrap
12571 msgid "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12572 msgstr "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12573
12574 #. type: Plain text
12575 #: build/C/man2/timerfd_create.2:35
12576 #, no-wrap
12577 msgid ""
12578 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12579 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12580 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12581 msgstr ""
12582 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12583 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12584 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12585
12586 #. type: Plain text
12587 #: build/C/man2/timerfd_create.2:37
12588 #, no-wrap
12589 msgid "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12590 msgstr "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12591
12592 #. type: Plain text
12593 #: build/C/man2/timerfd_create.2:50
12594 msgid ""
12595 "These system calls create and operate on a timer that delivers timer "
12596 "expiration notifications via a file descriptor.  They provide an alternative "
12597 "to the use of B<setitimer>(2)  or B<timer_create>(2), with the advantage "
12598 "that the file descriptor may be monitored by B<select>(2), B<poll>(2), and "
12599 "B<epoll>(7)."
12600 msgstr ""
12601 "これらのシステムコールは、満了通知をファイルディスクリプタ経由で配送する タイ"
12602 "マーの生成と操作を行う。 これらは、 B<setitimer>(2)  や B<timer_create>(2)  "
12603 "を用いる方法の代わりとなるものであり、このファイルディスクリプタを "
12604 "B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
12605
12606 #. type: Plain text
12607 #: build/C/man2/timerfd_create.2:62
12608 msgid ""
12609 "The use of these three system calls is analogous to the use of "
12610 "B<timer_create>(2), B<timer_settime>(2), and B<timer_gettime>(2).  (There is "
12611 "no analog of B<timer_getoverrun>(2), since that functionality is provided by "
12612 "B<read>(2), as described below.)"
12613 msgstr ""
12614 "これらのシステムコールを使うのは、それぞれ B<timer_create>(2), "
12615 "B<timer_settime>(2), B<timer_gettime>(2)  を使うのと同様である "
12616 "(B<timer_getoverrun>(2)  に対応するものはなく、以下で説明するように この機能"
12617 "は B<read>(2)  により提供される)。"
12618
12619 #. type: SS
12620 #: build/C/man2/timerfd_create.2:62
12621 #, no-wrap
12622 msgid "timerfd_create()"
12623 msgstr "timerfd_create()"
12624
12625 #.  FIXME
12626 #.  Additional clocks are now supported:
12627 #.  CLOCK_REALTIME_ALARM and CLOCK_BOOTTIME_ALARM
12628 #.     Since Linux 3.11, commit 11ffa9d6065f344a9bd769a2452f26f2f671e5f8
12629 #.  CLOCK_BOOTTIME
12630 #.     Since Linux 3.15, commit 4a2378a943f09907fb1ae35c15de917f60289c14
12631 #. type: Plain text
12632 #: build/C/man2/timerfd_create.2:87
12633 msgid ""
12634 "B<timerfd_create>()  creates a new timer object, and returns a file "
12635 "descriptor that refers to that timer.  The I<clockid> argument specifies the "
12636 "clock that is used to mark the progress of the timer, and must be either "
12637 "B<CLOCK_REALTIME> or B<CLOCK_MONOTONIC>.  B<CLOCK_REALTIME> is a settable "
12638 "system-wide clock.  B<CLOCK_MONOTONIC> is a nonsettable clock that is not "
12639 "affected by discontinuous changes in the system clock (e.g., manual changes "
12640 "to system time).  The current value of each of these clocks can be retrieved "
12641 "using B<clock_gettime>(2)."
12642 msgstr ""
12643 "B<timerfd_create>()  は新規のタイマーオブジェクトを生成し、そのタイマーを参照"
12644 "するファイル ディスクリプタを返す。 I<clockid> 引き数は、タイマーの進捗を管理"
12645 "するためのクロックを指定するもので、 B<CLOCK_REALTIME> か B<CLOCK_MONOTONIC> "
12646 "のいずれかでなければならない。 B<CLOCK_REALTIME> はシステム全体で使用されるク"
12647 "ロックで、このクロックは変更可能である。 B<CLOCK_MONOTONIC> は変更されること"
12648 "のないクロックで、(システム時刻の手動での変更などの)  システムクロックの不連"
12649 "続な変化の影響を受けない。 これらのクロックの現在の値は B<clock_gettime>(2)  "
12650 "を使って取得できる。"
12651
12652 #. type: Plain text
12653 #: build/C/man2/timerfd_create.2:92
12654 msgid ""
12655 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
12656 "I<flags> to change the behavior of B<timerfd_create>():"
12657 msgstr ""
12658 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
12659 "ることで、 B<timerfd_create>()  の振舞いを変更することができる。"
12660
12661 #. type: TP
12662 #: build/C/man2/timerfd_create.2:92
12663 #, no-wrap
12664 msgid "B<TFD_NONBLOCK>"
12665 msgstr "B<TFD_NONBLOCK>"
12666
12667 #. type: TP
12668 #: build/C/man2/timerfd_create.2:100
12669 #, no-wrap
12670 msgid "B<TFD_CLOEXEC>"
12671 msgstr "B<TFD_CLOEXEC>"
12672
12673 #. type: Plain text
12674 #: build/C/man2/timerfd_create.2:114
12675 msgid ""
12676 "In Linux versions up to and including 2.6.26, I<flags> must be specified as "
12677 "zero."
12678 msgstr ""
12679 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
12680 "しなければならない。"
12681
12682 #. type: SS
12683 #: build/C/man2/timerfd_create.2:114
12684 #, no-wrap
12685 msgid "timerfd_settime()"
12686 msgstr "timerfd_settime()"
12687
12688 #. type: Plain text
12689 #: build/C/man2/timerfd_create.2:119
12690 msgid ""
12691 "B<timerfd_settime>()  arms (starts) or disarms (stops)  the timer referred "
12692 "to by the file descriptor I<fd>."
12693 msgstr ""
12694 "B<timerfd_settime>()  は、ファイルディスクリプタ I<fd> により参照されるタイ"
12695 "マーを開始したり停止したりする。"
12696
12697 #. type: Plain text
12698 #: build/C/man2/timerfd_create.2:128
12699 msgid ""
12700 "The I<new_value> argument specifies the initial expiration and interval for "
12701 "the timer.  The I<itimer> structure used for this argument contains two "
12702 "fields, each of which is in turn a structure of type I<timespec>:"
12703 msgstr ""
12704 "I<new_value> 引き数は、タイマーの満了時間 (expiration) の初期値と間隔 "
12705 "(interval) を 指定する。この引き数で使用されている I<itimerspec> 構造体には "
12706 "2 つのフィールドがあり、各フィールドは I<timespec> 型の構造体である。"
12707
12708 #. type: Plain text
12709 #: build/C/man2/timerfd_create.2:140
12710 #, no-wrap
12711 msgid ""
12712 "struct itimerspec {\n"
12713 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12714 "    struct timespec it_value;     /* Initial expiration */\n"
12715 "};\n"
12716 msgstr ""
12717 "struct itimerspec {\n"
12718 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12719 "    struct timespec it_value;     /* Initial expiration */\n"
12720 "};\n"
12721
12722 #. type: Plain text
12723 #: build/C/man2/timerfd_create.2:152
12724 msgid ""
12725 "I<new_value.it_value> specifies the initial expiration of the timer, in "
12726 "seconds and nanoseconds.  Setting either field of I<new_value.it_value> to a "
12727 "nonzero value arms the timer.  Setting both fields of I<new_value.it_value> "
12728 "to zero disarms the timer."
12729 msgstr ""
12730 "I<new_value.it_value> はタイマーの満了時間の初期値を、秒とナノ秒で指定する。 "
12731 "I<new_value.it_value> のフィールドのうち少なくとも一方に 0 以外の値を設定する"
12732 "と、 タイマーが開始される。 両方のフィールドに 0 を設定すると、タイマーが停止"
12733 "する。"
12734
12735 #. type: Plain text
12736 #: build/C/man2/timerfd_create.2:161
12737 msgid ""
12738 "Setting one or both fields of I<new_value.it_interval> to nonzero values "
12739 "specifies the period, in seconds and nanoseconds, for repeated timer "
12740 "expirations after the initial expiration.  If both fields of I<new_value."
12741 "it_interval> are zero, the timer expires just once, at the time specified by "
12742 "I<new_value.it_value>."
12743 msgstr ""
12744 "I<new_value.it_interval> はタイマーの一回目の満了後に繰り返しタイマーの満了間"
12745 "隔を、秒とナノ秒で指定する。 I<new_value.it_interval> のフィールドのうち少な"
12746 "くとも一方に 0 以外の値を設定すると、 繰り返しタイマーが有効になる。 両方の"
12747 "フィールドに 0 を設定した場合、タイマーは I<new_value.it_value> で指定された"
12748 "時間後に、一回だけ満了して停止する。"
12749
12750 #. type: Plain text
12751 #: build/C/man2/timerfd_create.2:177
12752 msgid ""
12753 "The I<flags> argument is either 0, to start a relative timer (I<new_value."
12754 "it_value> specifies a time relative to the current value of the clock "
12755 "specified by I<clockid>), or B<TFD_TIMER_ABSTIME>, to start an absolute "
12756 "timer (I<new_value.it_value> specifies an absolute time for the clock "
12757 "specified by I<clockid>; that is, the timer will expire when the value of "
12758 "that clock reaches the value specified in I<new_value.it_value>)."
12759 msgstr ""
12760 "I<flags> 引き数には 0 か B<TFD_TIMER_ABSTIME> を指定する。 0 は相対時刻タイ"
12761 "マーを意味し、 I<new_value.it_value> では I<clockid> で指定されたクロックの現"
12762 "在の値からの相対的な時刻を指定する。 B<TFD_TIMER_ABSTIME> は絶対時刻タイマー"
12763 "を意味し、 I<new_value.it_interval> では I<clockid> で指定されたクロックの絶"
12764 "対時刻を指定する。 つまり、クロックの値が I<new_value.it_interval> で指定され"
12765 "た時刻に達したら、タイマーが満了する。"
12766
12767 #. type: Plain text
12768 #: build/C/man2/timerfd_create.2:188
12769 msgid ""
12770 "If the I<old_value> argument is not NULL, then the I<itimerspec> structure "
12771 "that it points to is used to return the setting of the timer that was "
12772 "current at the time of the call; see the description of "
12773 "B<timerfd_gettime>()  following."
12774 msgstr ""
12775 "I<old_value> 引き数が NULL でない場合、 I<old_value> 引き数が指す "
12776 "I<itimerspec> 構造体は、 B<timerfd_settime>() を呼び出した時点でのタイマーの"
12777 "設定を返すのに使用される。 下記の B<timerfd_gettime>() の説明を参照。"
12778
12779 #. type: SS
12780 #: build/C/man2/timerfd_create.2:188
12781 #, no-wrap
12782 msgid "timerfd_gettime()"
12783 msgstr "timerfd_gettime()"
12784
12785 #. type: Plain text
12786 #: build/C/man2/timerfd_create.2:197
12787 msgid ""
12788 "B<timerfd_gettime>()  returns, in I<curr_value>, an I<itimerspec> structure "
12789 "that contains the current setting of the timer referred to by the file "
12790 "descriptor I<fd>."
12791 msgstr ""
12792 "B<timerfd_gettime>()  は、ファイルディスクリプタ I<fd> で参照されるタイマーの"
12793 "現在の設定が入った I<itimerspec> 構造体を、 I<curr_value> に格納して返す。"
12794
12795 #. type: Plain text
12796 #: build/C/man2/timerfd_create.2:207
12797 msgid ""
12798 "The I<it_value> field returns the amount of time until the timer will next "
12799 "expire.  If both fields of this structure are zero, then the timer is "
12800 "currently disarmed.  This field always contains a relative value, regardless "
12801 "of whether the B<TFD_TIMER_ABSTIME> flag was specified when setting the "
12802 "timer."
12803 msgstr ""
12804 "I<it_value> フィールドは、タイマーが次に満了するまでの残り時間を返す。 この構"
12805 "造体の両方のフィールドが 0 であれば、タイマーは現在停止している。 タイマー設"
12806 "定時に B<TFD_TIMER_ABSTIME> フラグが指定されたかに関わらず、このフィールドは"
12807 "常に相対値が格納される。"
12808
12809 #. type: Plain text
12810 #: build/C/man2/timerfd_create.2:214
12811 msgid ""
12812 "The I<it_interval> field returns the interval of the timer.  If both fields "
12813 "of this structure are zero, then the timer is set to expire just once, at "
12814 "the time specified by I<curr_value.it_value>."
12815 msgstr ""
12816 "I<it_interval> フィールドは、タイマーの間隔を返す。 この構造体の両方のフィー"
12817 "ルドが 0 であれば、タイマーは I<new_value.it_value> で指定された時間後に一回"
12818 "だけ満了して停止するように設定されている。"
12819
12820 #. type: SS
12821 #: build/C/man2/timerfd_create.2:214
12822 #, no-wrap
12823 msgid "Operating on a timer file descriptor"
12824 msgstr "タイマー・ファイルディスクリプタに対する操作"
12825
12826 #. type: Plain text
12827 #: build/C/man2/timerfd_create.2:218
12828 msgid ""
12829 "The file descriptor returned by B<timerfd_create>()  supports the following "
12830 "operations:"
12831 msgstr ""
12832 "B<timerfd_create>()  が返すファイルディスクリプタは以下の操作をサポートしてい"
12833 "る。"
12834
12835 #. type: Plain text
12836 #: build/C/man2/timerfd_create.2:232
12837 msgid ""
12838 "If the timer has already expired one or more times since its settings were "
12839 "last modified using B<timerfd_settime>(), or since the last successful "
12840 "B<read>(2), then the buffer given to B<read>(2)  returns an unsigned 8-byte "
12841 "integer (I<uint64_t>)  containing the number of expirations that have "
12842 "occurred.  (The returned value is in host byte order\\(emthat is, the native "
12843 "byte order for integers on the host machine.)"
12844 msgstr ""
12845 "B<timerfd_settime>()  を使ってタイマーの設定が最後変更されて以降、または "
12846 "B<read>(2)  の呼び出しに最後に成功して以降に、タイマーの満了が一回以上発生し"
12847 "ていれば、 B<read>(2)  に渡されたバッファに、タイマー満了回数を示す 8 バイト"
12848 "の unsigned 型の整数 (I<uint64_t>)  が返される (返される値はホストバイトオー"
12849 "ダ、つまりそのホストマシンにおける 整数の通常のバイトオーダである)。"
12850
12851 #. type: Plain text
12852 #: build/C/man2/timerfd_create.2:245
12853 msgid ""
12854 "If no timer expirations have occurred at the time of the B<read>(2), then "
12855 "the call either blocks until the next timer expiration, or fails with the "
12856 "error B<EAGAIN> if the file descriptor has been made nonblocking (via the "
12857 "use of the B<fcntl>(2)  B<F_SETFL> operation to set the B<O_NONBLOCK> flag)."
12858 msgstr ""
12859 "B<read>(2)  を行った時点でタイマーの満了が発生していなければ、 B<read>(2)  は"
12860 "停止 (block) する、もしくはファイルディスクリプタが 非停止 (nonblocking) に設"
12861 "定されている場合はエラー B<EAGAIN> で失敗する (非停止モードにするには、 "
12862 "B<fcntl>(2)  の B<F_SETFL> 命令で B<O_NONBLOCK> フラグをセットする)。"
12863
12864 #. type: Plain text
12865 #: build/C/man2/timerfd_create.2:251
12866 msgid ""
12867 "A B<read>(2)  will fail with the error B<EINVAL> if the size of the supplied "
12868 "buffer is less than 8 bytes."
12869 msgstr ""
12870 "渡されたバッファの大きさが 8 バイト未満の場合、 B<read>(2)  はエラー "
12871 "B<EINVAL> で失敗する。"
12872
12873 #. type: Plain text
12874 #: build/C/man2/timerfd_create.2:262
12875 msgid ""
12876 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
12877 "B<poll>(2)  B<POLLIN> flag)  if one or more timer expirations have occurred."
12878 msgstr ""
12879 "一つ以上のタイマー満了が発生していれば、 ファイルディスクリプタは読み出し可能"
12880 "となる (B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラ"
12881 "グ)。"
12882
12883 #. type: Plain text
12884 #: build/C/man2/timerfd_create.2:269
12885 msgid ""
12886 "The file descriptor also supports the other file-descriptor multiplexing "
12887 "APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
12888 msgstr ""
12889 "このファイルディスクリプタは、他のファイルディスクリプタ多重 API である "
12890 "B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
12891
12892 #. type: Plain text
12893 #: build/C/man2/timerfd_create.2:276
12894 msgid ""
12895 "When the file descriptor is no longer required it should be closed.  When "
12896 "all file descriptors associated with the same timer object have been closed, "
12897 "the timer is disarmed and its resources are freed by the kernel."
12898 msgstr ""
12899 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
12900 "る。 同じ timer オブジェクトに関連付けられたファイルディスクリプタが全て ク"
12901 "ローズされると、そのタイマーは解除され、 そのオブジェクト用の資源がカーネルに"
12902 "より解放される。"
12903
12904 #. type: Plain text
12905 #: build/C/man2/timerfd_create.2:288
12906 msgid ""
12907 "After a B<fork>(2), the child inherits a copy of the file descriptor created "
12908 "by B<timerfd_create>().  The file descriptor refers to the same underlying "
12909 "timer object as the corresponding file descriptor in the parent, and "
12910 "B<read>(2)s in the child will return information about expirations of the "
12911 "timer."
12912 msgstr ""
12913 "B<fork>(2)  が行われると、子プロセスは B<timerfd_create>()  により生成された"
12914 "ファイルディスクリプタのコピーを 継承する。そのファイルディスクリプタは、親プ"
12915 "ロセスの対応する ファイルディスクリプタと同じタイマーオブジェクトを参照してお"
12916 "り、 子プロセスの B<read>(2)  でも同じタイマーの満了に関する情報が返される。"
12917
12918 #. type: Plain text
12919 #: build/C/man2/timerfd_create.2:294
12920 msgid ""
12921 "A file descriptor created by B<timerfd_create>()  is preserved across "
12922 "B<execve>(2), and continues to generate timer expirations if the timer was "
12923 "armed."
12924 msgstr ""
12925 "B<execve>(2)  の前後で B<timerfd_create>()  により生成されたファイルディスク"
12926 "リプタは保持され、 タイマーが開始されていた場合にはタイマーの満了が発生し続け"
12927 "る。"
12928
12929 #. type: Plain text
12930 #: build/C/man2/timerfd_create.2:301
12931 msgid ""
12932 "On success, B<timerfd_create>()  returns a new file descriptor.  On error, "
12933 "-1 is returned and I<errno> is set to indicate the error."
12934 msgstr ""
12935 "成功すると、 B<timerfd_create>()  は新しいファイルディスクリプタを返す。 エ"
12936 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12937
12938 #. type: Plain text
12939 #: build/C/man2/timerfd_create.2:309
12940 msgid ""
12941 "B<timerfd_settime>()  and B<timerfd_gettime>()  return 0 on success; on "
12942 "error they return -1, and set I<errno> to indicate the error."
12943 msgstr ""
12944 "B<timerfd_settime>()  と B<timerfd_gettime>()  は成功すると 0 を返す。 エラー"
12945 "の場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12946
12947 #. type: Plain text
12948 #: build/C/man2/timerfd_create.2:312
12949 msgid "B<timerfd_create>()  can fail with the following errors:"
12950 msgstr "B<timerfd_create>()  は以下のエラーで失敗する可能性がある。"
12951
12952 #. type: Plain text
12953 #: build/C/man2/timerfd_create.2:320
12954 msgid ""
12955 "The I<clockid> argument is neither B<CLOCK_MONOTONIC> nor B<CLOCK_REALTIME>;"
12956 msgstr ""
12957 "I<clockid> 引き数が B<CLOCK_MONOTONIC> でも B<CLOCK_REALTIME> でもない。"
12958
12959 #. type: Plain text
12960 #: build/C/man2/timerfd_create.2:340
12961 msgid "There was insufficient kernel memory to create the timer."
12962 msgstr "タイマーを作成するのに十分なカーネルメモリがなかった。"
12963
12964 #. type: Plain text
12965 #: build/C/man2/timerfd_create.2:345
12966 msgid ""
12967 "B<timerfd_settime>()  and B<timerfd_gettime>()  can fail with the following "
12968 "errors:"
12969 msgstr ""
12970 "B<timerfd_settime>()  と B<timerfd_gettime>()  は以下のエラーで失敗する可能性"
12971 "がある。"
12972
12973 #. type: Plain text
12974 #: build/C/man2/timerfd_create.2:349
12975 msgid "I<fd> is not a valid file descriptor."
12976 msgstr "I<fd> が有効なファイルディスクリプタでない。"
12977
12978 #. type: Plain text
12979 #: build/C/man2/timerfd_create.2:360
12980 msgid "I<fd> is not a valid timerfd file descriptor."
12981 msgstr "I<fd> が有効な timerfd ファイルディスクリプタでない。"
12982
12983 #. type: Plain text
12984 #: build/C/man2/timerfd_create.2:363
12985 msgid "B<timerfd_settime>()  can also fail with the following errors:"
12986 msgstr "B<timerfd_settime>()  は以下のエラーで失敗することもある。"
12987
12988 #. type: Plain text
12989 #: build/C/man2/timerfd_create.2:369
12990 msgid ""
12991 "I<new_value> is not properly initialized (one of the I<tv_nsec> falls "
12992 "outside the range zero to 999,999,999)."
12993 msgstr ""
12994 "I<new_value> が適切に初期化されていない (I<tv_nsec> の一つが 0 から "
12995 "999,999,999 までの範囲に入っていない)。"
12996
12997 #.  This case only checked since 2.6.29, and 2.2.2[78].some-stable-version.
12998 #.  In older kernel versions, no check was made for invalid flags.
12999 #. type: Plain text
13000 #: build/C/man2/timerfd_create.2:375
13001 msgid "I<flags> is invalid."
13002 msgstr "I<flags> が無効である。"
13003
13004 #. type: Plain text
13005 #: build/C/man2/timerfd_create.2:378
13006 msgid ""
13007 "These system calls are available on Linux since kernel 2.6.25.  Library "
13008 "support is provided by glibc since version 2.8."
13009 msgstr ""
13010 "これらのシステムコールはカーネル 2.6.25 以降の Linux で利用可能である。 ライ"
13011 "ブラリ側のサポートはバージョン 2.8 以降の glibc で提供されている。"
13012
13013 #.  2.6.29
13014 #. type: Plain text
13015 #: build/C/man2/timerfd_create.2:386
13016 msgid ""
13017 "Currently, B<timerfd_create>()  supports fewer types of clock IDs than "
13018 "B<timer_create>(2)."
13019 msgstr ""
13020 "現在のところ、 B<timerfd_create>()  が対応している clockid の種類は "
13021 "B<timer_create>(2)  よりも少ない。"
13022
13023 #. type: Plain text
13024 #: build/C/man2/timerfd_create.2:395
13025 msgid ""
13026 "The following program creates a timer and then monitors its progress.  The "
13027 "program accepts up to three command-line arguments.  The first argument "
13028 "specifies the number of seconds for the initial expiration of the timer.  "
13029 "The second argument specifies the interval for the timer, in seconds.  The "
13030 "third argument specifies the number of times the program should allow the "
13031 "timer to expire before terminating.  The second and third command-line "
13032 "arguments are optional."
13033 msgstr ""
13034 "以下のプログラムは、タイマーを作成し、その進捗をモニターするものである。 この"
13035 "プログラムは最大で 3 個のコマンドライン引き数を取り、 第一引き数ではタイマー"
13036 "の満了時間の初期値 (秒数単位) を、 第二引き数ではタイマーの間隔 (秒数単位) "
13037 "を、 第三引き数ではタイマーが何回満了したらプログラムが終了するかを指定す"
13038 "る。 第二引き数と第三引き数は省略可能である。"
13039
13040 #. type: Plain text
13041 #: build/C/man2/timerfd_create.2:397 build/C/man2/wait.2:571
13042 msgid "The following shell session demonstrates the use of the program:"
13043 msgstr "以下のシェルのセッションはこのプログラムの使用例を示したものである。"
13044
13045 #. type: Plain text
13046 #: build/C/man2/timerfd_create.2:412
13047 #, no-wrap
13048 msgid ""
13049 "$B< a.out 3 1 100>\n"
13050 "0.000: timer started\n"
13051 "3.000: read: 1; total=1\n"
13052 "4.000: read: 1; total=2\n"
13053 "B<^Z >                 # type control-Z to suspend the program\n"
13054 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
13055 "$ B<fg>                # Resume execution after a few seconds\n"
13056 "a.out 3 1 100\n"
13057 "9.660: read: 5; total=7\n"
13058 "10.000: read: 1; total=8\n"
13059 "11.000: read: 1; total=9\n"
13060 "B<^C >                 # type control-C to suspend the program\n"
13061 msgstr ""
13062 "$B< a.out 3 1 100>\n"
13063 "0.000: timer started\n"
13064 "3.000: read: 1; total=1\n"
13065 "4.000: read: 1; total=2\n"
13066 "B<^Z >                 # type control-Z to suspend the program\n"
13067 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
13068 "$ B<fg>                # Resume execution after a few seconds\n"
13069 "a.out 3 1 100\n"
13070 "9.660: read: 5; total=7\n"
13071 "10.000: read: 1; total=8\n"
13072 "11.000: read: 1; total=9\n"
13073 "B<^C >                 # type control-C to suspend the program\n"
13074
13075 #.  The commented out code here is what we currently need until
13076 #.  the required stuff is in glibc
13077 #. /* Link with -lrt */
13078 #. #define _GNU_SOURCE
13079 #. #include <sys/syscall.h>
13080 #. #include <unistd.h>
13081 #. #include <time.h>
13082 #. #if defined(__i386__)
13083 #. #define __NR_timerfd_create 322
13084 #. #define __NR_timerfd_settime 325
13085 #. #define __NR_timerfd_gettime 326
13086 #. #endif
13087 #. static int
13088 #. timerfd_create(int clockid, int flags)
13089 #. {
13090 #.     return syscall(__NR_timerfd_create, clockid, flags);
13091 #. }
13092 #. static int
13093 #. timerfd_settime(int fd, int flags, struct itimerspec *new_value,
13094 #.         struct itimerspec *curr_value)
13095 #. {
13096 #.     return syscall(__NR_timerfd_settime, fd, flags, new_value,
13097 #.                    curr_value);
13098 #. }
13099 #. static int
13100 #. timerfd_gettime(int fd, struct itimerspec *curr_value)
13101 #. {
13102 #.     return syscall(__NR_timerfd_gettime, fd, curr_value);
13103 #. }
13104 #. #define TFD_TIMER_ABSTIME (1 << 0)
13105 #. ////////////////////////////////////////////////////////////
13106 #. type: Plain text
13107 #: build/C/man2/timerfd_create.2:461
13108 #, no-wrap
13109 msgid ""
13110 "#include E<lt>sys/timerfd.hE<gt>\n"
13111 "#include E<lt>time.hE<gt>\n"
13112 "#include E<lt>unistd.hE<gt>\n"
13113 "#include E<lt>stdlib.hE<gt>\n"
13114 "#include E<lt>stdio.hE<gt>\n"
13115 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
13116 msgstr ""
13117 "#include E<lt>sys/timerfd.hE<gt>\n"
13118 "#include E<lt>time.hE<gt>\n"
13119 "#include E<lt>unistd.hE<gt>\n"
13120 "#include E<lt>stdlib.hE<gt>\n"
13121 "#include E<lt>stdio.hE<gt>\n"
13122 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
13123
13124 #. type: Plain text
13125 #: build/C/man2/timerfd_create.2:464
13126 #, no-wrap
13127 msgid ""
13128 "#define handle_error(msg) \\e\n"
13129 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
13130 msgstr ""
13131 "#define handle_error(msg) \\e\n"
13132 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
13133
13134 #. type: Plain text
13135 #: build/C/man2/timerfd_create.2:472
13136 #, no-wrap
13137 msgid ""
13138 "static void\n"
13139 "print_elapsed_time(void)\n"
13140 "{\n"
13141 "    static struct timespec start;\n"
13142 "    struct timespec curr;\n"
13143 "    static int first_call = 1;\n"
13144 "    int secs, nsecs;\n"
13145 msgstr ""
13146 "static void\n"
13147 "print_elapsed_time(void)\n"
13148 "{\n"
13149 "    static struct timespec start;\n"
13150 "    struct timespec curr;\n"
13151 "    static int first_call = 1;\n"
13152 "    int secs, nsecs;\n"
13153
13154 #. type: Plain text
13155 #: build/C/man2/timerfd_create.2:478
13156 #, no-wrap
13157 msgid ""
13158 "    if (first_call) {\n"
13159 "        first_call = 0;\n"
13160 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
13161 "            handle_error(\"clock_gettime\");\n"
13162 "    }\n"
13163 msgstr ""
13164 "    if (first_call) {\n"
13165 "        first_call = 0;\n"
13166 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
13167 "            handle_error(\"clock_gettime\");\n"
13168 "    }\n"
13169
13170 #. type: Plain text
13171 #: build/C/man2/timerfd_create.2:481
13172 #, no-wrap
13173 msgid ""
13174 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
13175 "        handle_error(\"clock_gettime\");\n"
13176 msgstr ""
13177 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
13178 "        handle_error(\"clock_gettime\");\n"
13179
13180 #. type: Plain text
13181 #: build/C/man2/timerfd_create.2:490
13182 #, no-wrap
13183 msgid ""
13184 "    secs = curr.tv_sec - start.tv_sec;\n"
13185 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
13186 "    if (nsecs E<lt> 0) {\n"
13187 "        secs--;\n"
13188 "        nsecs += 1000000000;\n"
13189 "    }\n"
13190 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
13191 "}\n"
13192 msgstr ""
13193 "    secs = curr.tv_sec - start.tv_sec;\n"
13194 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
13195 "    if (nsecs E<lt> 0) {\n"
13196 "        secs--;\n"
13197 "        nsecs += 1000000000;\n"
13198 "    }\n"
13199 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
13200 "}\n"
13201
13202 #. type: Plain text
13203 #: build/C/man2/timerfd_create.2:499
13204 #, no-wrap
13205 msgid ""
13206 "int\n"
13207 "main(int argc, char *argv[])\n"
13208 "{\n"
13209 "    struct itimerspec new_value;\n"
13210 "    int max_exp, fd;\n"
13211 "    struct timespec now;\n"
13212 "    uint64_t exp, tot_exp;\n"
13213 "    ssize_t s;\n"
13214 msgstr ""
13215 "int\n"
13216 "main(int argc, char *argv[])\n"
13217 "{\n"
13218 "    struct itimerspec new_value;\n"
13219 "    int max_exp, fd;\n"
13220 "    struct timespec now;\n"
13221 "    uint64_t exp, tot_exp;\n"
13222 "    ssize_t s;\n"
13223
13224 #. type: Plain text
13225 #: build/C/man2/timerfd_create.2:505
13226 #, no-wrap
13227 msgid ""
13228 "    if ((argc != 2) && (argc != 4)) {\n"
13229 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
13230 "                argv[0]);\n"
13231 "        exit(EXIT_FAILURE);\n"
13232 "    }\n"
13233 msgstr ""
13234 "    if ((argc != 2) && (argc != 4)) {\n"
13235 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
13236 "                argv[0]);\n"
13237 "        exit(EXIT_FAILURE);\n"
13238 "    }\n"
13239
13240 #. type: Plain text
13241 #: build/C/man2/timerfd_create.2:508
13242 #, no-wrap
13243 msgid ""
13244 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
13245 "        handle_error(\"clock_gettime\");\n"
13246 msgstr ""
13247 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
13248 "        handle_error(\"clock_gettime\");\n"
13249
13250 #. type: Plain text
13251 #: build/C/man2/timerfd_create.2:511
13252 #, no-wrap
13253 msgid ""
13254 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
13255 "       expiration and interval as specified in command line */\n"
13256 msgstr ""
13257 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
13258 "       expiration and interval as specified in command line */\n"
13259
13260 #. type: Plain text
13261 #: build/C/man2/timerfd_create.2:522
13262 #, no-wrap
13263 msgid ""
13264 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
13265 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
13266 "    if (argc == 2) {\n"
13267 "        new_value.it_interval.tv_sec = 0;\n"
13268 "        max_exp = 1;\n"
13269 "    } else {\n"
13270 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
13271 "        max_exp = atoi(argv[3]);\n"
13272 "    }\n"
13273 "    new_value.it_interval.tv_nsec = 0;\n"
13274 msgstr ""
13275 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
13276 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
13277 "    if (argc == 2) {\n"
13278 "        new_value.it_interval.tv_sec = 0;\n"
13279 "        max_exp = 1;\n"
13280 "    } else {\n"
13281 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
13282 "        max_exp = atoi(argv[3]);\n"
13283 "    }\n"
13284 "    new_value.it_interval.tv_nsec = 0;\n"
13285
13286 #. type: Plain text
13287 #: build/C/man2/timerfd_create.2:526
13288 #, no-wrap
13289 msgid ""
13290 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
13291 "    if (fd == -1)\n"
13292 "        handle_error(\"timerfd_create\");\n"
13293 msgstr ""
13294 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
13295 "    if (fd == -1)\n"
13296 "        handle_error(\"timerfd_create\");\n"
13297
13298 #. type: Plain text
13299 #: build/C/man2/timerfd_create.2:529
13300 #, no-wrap
13301 msgid ""
13302 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
13303 "        handle_error(\"timerfd_settime\");\n"
13304 msgstr ""
13305 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
13306 "        handle_error(\"timerfd_settime\");\n"
13307
13308 #. type: Plain text
13309 #: build/C/man2/timerfd_create.2:532
13310 #, no-wrap
13311 msgid ""
13312 "    print_elapsed_time();\n"
13313 "    printf(\"timer started\\en\");\n"
13314 msgstr ""
13315 "    print_elapsed_time();\n"
13316 "    printf(\"timer started\\en\");\n"
13317
13318 #. type: Plain text
13319 #: build/C/man2/timerfd_create.2:537
13320 #, no-wrap
13321 msgid ""
13322 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
13323 "        s = read(fd, &exp, sizeof(uint64_t));\n"
13324 "        if (s != sizeof(uint64_t))\n"
13325 "            handle_error(\"read\");\n"
13326 msgstr ""
13327 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
13328 "        s = read(fd, &exp, sizeof(uint64_t));\n"
13329 "        if (s != sizeof(uint64_t))\n"
13330 "            handle_error(\"read\");\n"
13331
13332 #. type: Plain text
13333 #: build/C/man2/timerfd_create.2:544
13334 #, no-wrap
13335 msgid ""
13336 "        tot_exp += exp;\n"
13337 "        print_elapsed_time();\n"
13338 "        printf(\"read: %llu; total=%llu\\en\",\n"
13339 "                (unsigned long long) exp,\n"
13340 "                (unsigned long long) tot_exp);\n"
13341 "    }\n"
13342 msgstr ""
13343 "        tot_exp += exp;\n"
13344 "        print_elapsed_time();\n"
13345 "        printf(\"read: %llu; total=%llu\\en\",\n"
13346 "                (unsigned long long) exp,\n"
13347 "                (unsigned long long) tot_exp);\n"
13348 "    }\n"
13349
13350 #. type: Plain text
13351 #: build/C/man2/timerfd_create.2:560
13352 msgid ""
13353 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
13354 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), "
13355 "B<timer_settime>(2), B<epoll>(7), B<time>(7)"
13356 msgstr ""
13357 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
13358 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), "
13359 "B<timer_settime>(2), B<epoll>(7), B<time>(7)"
13360
13361 #. type: TH
13362 #: build/C/man2/tkill.2:29
13363 #, no-wrap
13364 msgid "TKILL"
13365 msgstr "TKILL"
13366
13367 #. type: Plain text
13368 #: build/C/man2/tkill.2:32
13369 msgid "tkill, tgkill - send a signal to a thread"
13370 msgstr "tkill, tgkill - スレッドにシグナルを送る"
13371
13372 #. type: Plain text
13373 #: build/C/man2/tkill.2:35
13374 #, no-wrap
13375 msgid "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
13376 msgstr "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
13377
13378 #. type: Plain text
13379 #: build/C/man2/tkill.2:37
13380 #, no-wrap
13381 msgid "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
13382 msgstr "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
13383
13384 #. type: Plain text
13385 #: build/C/man2/tkill.2:54
13386 msgid ""
13387 "B<tgkill>()  sends the signal I<sig> to the thread with the thread ID I<tid> "
13388 "in the thread group I<tgid>.  (By contrast, B<kill>(2)  can be used to send "
13389 "a signal only to a process (i.e., thread group)  as a whole, and the signal "
13390 "will be delivered to an arbitrary thread within that process.)"
13391 msgstr ""
13392 "B<tgkill>()  はスレッド・グループ I<tgid> に属するスレッド ID が I<tid> のス"
13393 "レッドにシグナル I<sig> を送る。 (これに対し、 B<kill>(2)  は一つのプロセス "
13394 "(すなわち、スレッド・グループ) にまとめてシグナルを 送るのにだけ利用できる。 "
13395 "B<kill>(2)  で送信されたシグナルはプロセス内の任意のスレッドに配送される。)"
13396
13397 #.  FIXME Maybe say something about the following:
13398 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=12889
13399 #.      Rich Felker <bugdal@aerifal.cx>
13400 #.      There is a race condition in pthread_kill: it is possible that,
13401 #.      between the time pthread_kill reads the pid/tid from the target
13402 #.      thread descriptor and the time it makes the tgkill syscall,
13403 #.      the target thread terminates and the same tid gets assigned
13404 #.      to a new thread in the same process.
13405 #.      (The tgkill syscall was designed to eliminate a similar race
13406 #.      condition in tkill, but it only succeeded in eliminating races
13407 #.      where the tid gets reused in a different process, and does not
13408 #.      help if the same tid gets assigned to a new thread in the
13409 #.      same process.)
13410 #.      The only solution I can see is to introduce a mutex that ensures
13411 #.      that a thread cannot exit while pthread_kill is being called on it.
13412 #.      Note that in most real-world situations, like almost all race
13413 #.      conditions, this one will be extremely rare. To make it
13414 #.      measurable, one could exhaust all but 1-2 available pid values,
13415 #.      possibly by lowering the max pid parameter in /proc, forcing
13416 #.      the same tid to be reused rapidly.
13417 #. type: Plain text
13418 #: build/C/man2/tkill.2:85
13419 msgid ""
13420 "B<tkill>()  is an obsolete predecessor to B<tgkill>().  It allows only the "
13421 "target thread ID to be specified, which may result in the wrong thread being "
13422 "signaled if a thread terminates and its thread ID is recycled.  Avoid using "
13423 "this system call."
13424 msgstr ""
13425 "B<tkill>()  はもう使われなくなった B<tgkill>()  の先祖である。 B<tkill>()  で"
13426 "はシグナルの送り先のスレッド ID しか指定できない。 そのため、スレッドが終了し"
13427 "て、そのスレッド ID が再利用される場合に、 意図しないスレッドにシグナルが送ら"
13428 "れる可能性がある。 このシステムコールの使用は避けること。"
13429
13430 #. type: Plain text
13431 #: build/C/man2/tkill.2:88
13432 msgid ""
13433 "These are the raw system call interfaces, meant for internal thread library "
13434 "use."
13435 msgstr ""
13436 "これらはシステムコールへの直接のインターフェースであり、 スレッド・ライブラリ"
13437 "内部での使用を意図したものである。"
13438
13439 #. type: Plain text
13440 #: build/C/man2/tkill.2:96
13441 msgid "An invalid thread ID, thread group ID, or signal was specified."
13442 msgstr "指定されたスレッド ID、スレッドグループ ID、シグナルが不正であった。"
13443
13444 #. type: Plain text
13445 #: build/C/man2/tkill.2:101
13446 msgid "Permission denied.  For the required permissions, see B<kill>(2)."
13447 msgstr ""
13448 "許可がなかった。どのような許可が必要かについては、 B<kill>(2)  を参照のこと。"
13449
13450 #. type: Plain text
13451 #: build/C/man2/tkill.2:104
13452 msgid "No process with the specified thread ID (and thread group ID) exists."
13453 msgstr ""
13454 "指定されたスレッドID (とスレッド・グループID) を持つプロセスが存在しない。"
13455
13456 #. type: Plain text
13457 #: build/C/man2/tkill.2:109
13458 msgid ""
13459 "B<tkill>()  is supported since Linux 2.4.19 / 2.5.4.  B<tgkill>()  was added "
13460 "in Linux 2.5.75."
13461 msgstr ""
13462 "B<tkill>()  は Linux 2.4.19 / 2.5.4 以降でサポートされ、 B<tgkill>()  は "
13463 "Linux 2.5.75 で追加された。"
13464
13465 #. type: Plain text
13466 #: build/C/man2/tkill.2:115
13467 msgid ""
13468 "B<tkill>()  and B<tgkill>()  are Linux-specific and should not be used in "
13469 "programs that are intended to be portable."
13470 msgstr ""
13471 "B<tkill>()  と B<tgkill>()  は Linux 固有であり、 移植を想定したプログラムで"
13472 "は使用すべきではない。"
13473
13474 #. type: Plain text
13475 #: build/C/man2/tkill.2:121
13476 msgid ""
13477 "See the description of B<CLONE_THREAD> in B<clone>(2)  for an explanation of "
13478 "thread groups."
13479 msgstr ""
13480 "スレッド・グループの説明については B<clone>(2)  の B<CLONE_THREAD> の説明を参"
13481 "照のこと。"
13482
13483 #. type: Plain text
13484 #: build/C/man2/tkill.2:124
13485 msgid ""
13486 "Glibc does not provide wrappers for these system calls; call them using "
13487 "B<syscall>(2)."
13488 msgstr ""
13489 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
13490 "B<syscall>(2)  を使って呼び出すこと。"
13491
13492 #. type: Plain text
13493 #: build/C/man2/tkill.2:129
13494 msgid "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
13495 msgstr "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
13496
13497 #. type: TH
13498 #: build/C/man2/wait.2:49
13499 #, no-wrap
13500 msgid "WAIT"
13501 msgstr "WAIT"
13502
13503 #. type: Plain text
13504 #: build/C/man2/wait.2:52
13505 msgid "wait, waitpid, waitid - wait for process to change state"
13506 msgstr "wait, waitpid, waitid - プロセスの状態変化を待つ"
13507
13508 #. type: Plain text
13509 #: build/C/man2/wait.2:54
13510 msgid "B<#include E<lt>sys/types.hE<gt>>"
13511 msgstr "B<#include E<lt>sys/types.hE<gt>>"
13512
13513 #. type: Plain text
13514 #: build/C/man2/wait.2:56
13515 msgid "B<#include E<lt>sys/wait.hE<gt>>"
13516 msgstr "B<#include E<lt>sys/wait.hE<gt>>"
13517
13518 #. type: Plain text
13519 #: build/C/man2/wait.2:58
13520 msgid "B<pid_t wait(int *>I<status>B<);>"
13521 msgstr "B<pid_t wait(int *>I<status>B<);>"
13522
13523 #. type: Plain text
13524 #: build/C/man2/wait.2:60
13525 msgid ""
13526 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
13527 msgstr ""
13528 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
13529
13530 #. type: Plain text
13531 #: build/C/man2/wait.2:65
13532 #, no-wrap
13533 msgid ""
13534 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, int >I<options>B<);>\n"
13535 "                /* This is the glibc and POSIX interface; see\n"
13536 "                   NOTES for information on the raw system call. */\n"
13537 msgstr ""
13538 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, int >I<options>B<);>\n"
13539 "                /* これは glibc と POSIX のインターフェイスである。\n"
13540 "                   生のシステムコールについての情報は「注意」の節を参照。 */\n"
13541
13542 #. type: Plain text
13543 #: build/C/man2/wait.2:74
13544 msgid "B<waitid>():"
13545 msgstr "B<waitid>():"
13546
13547 #. type: Plain text
13548 #: build/C/man2/wait.2:78
13549 msgid ""
13550 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13551 "_XOPEN_SOURCE_EXTENDED"
13552 msgstr ""
13553 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13554 "_XOPEN_SOURCE_EXTENDED"
13555
13556 #. type: Plain text
13557 #: build/C/man2/wait.2:93
13558 msgid ""
13559 "All of these system calls are used to wait for state changes in a child of "
13560 "the calling process, and obtain information about the child whose state has "
13561 "changed.  A state change is considered to be: the child terminated; the "
13562 "child was stopped by a signal; or the child was resumed by a signal.  In the "
13563 "case of a terminated child, performing a wait allows the system to release "
13564 "the resources associated with the child; if a wait is not performed, then "
13565 "the terminated child remains in a \"zombie\" state (see NOTES below)."
13566 msgstr ""
13567 "これらのシステムコールはいずれも、呼び出し元プロセスの子プロセスの 状態変化を"
13568 "待ち、状態が変化したその子プロセスの情報を取得するのに 使用される。 状態変化"
13569 "とは以下のいずれかである: 子プロセスの終了、シグナルによる子プロセスの停止、 "
13570 "シグナルによる子プロセスの再開。 子プロセスが終了した場合は、wait を実行する"
13571 "ことで、 システムがその子プロセスに関連するリソースを解放できるようになる。 "
13572 "wait が実行されなかった場合には、終了した子プロセスは 「ゾンビ」状態で残り続"
13573 "ける (下記の注意の章を参照のこと)。"
13574
13575 #. type: Plain text
13576 #: build/C/man2/wait.2:105
13577 msgid ""
13578 "If a child has already changed state, then these calls return immediately.  "
13579 "Otherwise, they block until either a child changes state or a signal handler "
13580 "interrupts the call (assuming that system calls are not automatically "
13581 "restarted using the B<SA_RESTART> flag of B<sigaction>(2)).  In the "
13582 "remainder of this page, a child whose state has changed and which has not "
13583 "yet been waited upon by one of these system calls is termed I<waitable>."
13584 msgstr ""
13585 "子プロセスの状態変化がすでに発生していた場合、これらのコールは すぐに復帰す"
13586 "る。それ以外の場合は、子プロセスの状態変化が起こるか、 シグナルハンドラにより"
13587 "システムコールが中断されるまで、 停止 (block) する (後者は、 "
13588 "B<sigaction>(2)  の B<SA_RESTART> フラグによりシステムコールが自動的に再ス"
13589 "タートするようになっていない 場合の動作である)。 以下の説明では、状態変化が起"
13590 "こったがこれらのシステムコールのいずれかに よって待たれていない子プロセスを "
13591 "I<waitable> (待ち可能) と呼ぶ。"
13592
13593 #. type: SS
13594 #: build/C/man2/wait.2:105
13595 #, no-wrap
13596 msgid "wait() and waitpid()"
13597 msgstr "wait() と waitpid()"
13598
13599 #. type: Plain text
13600 #: build/C/man2/wait.2:113
13601 msgid ""
13602 "The B<wait>()  system call suspends execution of the calling process until "
13603 "one of its children terminates.  The call I<wait(&status)> is equivalent to:"
13604 msgstr ""
13605 "B<wait>()  システムコールは、子プロセスのいずれかが終了するまで 呼び出し元の"
13606 "プロセスの実行を一時停止する。 呼び出し I<wait(&status)> は以下と等価である:"
13607
13608 #. type: Plain text
13609 #: build/C/man2/wait.2:116
13610 #, no-wrap
13611 msgid "    waitpid(-1, &status, 0);\n"
13612 msgstr "    waitpid(-1, &status, 0);\n"
13613
13614 #. type: Plain text
13615 #: build/C/man2/wait.2:130
13616 msgid ""
13617 "The B<waitpid>()  system call suspends execution of the calling process "
13618 "until a child specified by I<pid> argument has changed state.  By default, "
13619 "B<waitpid>()  waits only for terminated children, but this behavior is "
13620 "modifiable via the I<options> argument, as described below."
13621 msgstr ""
13622 "B<waitpid>()  システムコールは、 I<pid> 引き数で指定した子プロセスの状態変化"
13623 "が起こるまで、 呼び出し元のプロセスの実行を一時停止する。デフォルトでは、 "
13624 "B<waitpid>()  は子プロセスの終了だけを待つが、この動作は I<options> 引き数に"
13625 "より変更可能である。"
13626
13627 #. type: Plain text
13628 #: build/C/man2/wait.2:134
13629 msgid "The value of I<pid> can be:"
13630 msgstr "I<pid> に指定できる値は以下の通り:"
13631
13632 #. type: IP
13633 #: build/C/man2/wait.2:134
13634 #, no-wrap
13635 msgid "E<lt> -1"
13636 msgstr "E<lt> -1"
13637
13638 #. type: Plain text
13639 #: build/C/man2/wait.2:138
13640 msgid ""
13641 "meaning wait for any child process whose process group ID is equal to the "
13642 "absolute value of I<pid>."
13643 msgstr ""
13644 "プロセスグループID が I<pid> の絶対値に等しい子プロセスのいずれかが終了するま"
13645 "でを待つ。"
13646
13647 #. type: IP
13648 #: build/C/man2/wait.2:138
13649 #, no-wrap
13650 msgid "-1"
13651 msgstr "-1"
13652
13653 #. type: Plain text
13654 #: build/C/man2/wait.2:140
13655 msgid "meaning wait for any child process."
13656 msgstr "子プロセスのどれかが終了するまで待つ。"
13657
13658 #. type: IP
13659 #: build/C/man2/wait.2:140
13660 #, no-wrap
13661 msgid "0"
13662 msgstr "0"
13663
13664 #. type: Plain text
13665 #: build/C/man2/wait.2:143
13666 msgid ""
13667 "meaning wait for any child process whose process group ID is equal to that "
13668 "of the calling process."
13669 msgstr ""
13670 "プロセスグループID が呼び出したプロセスのものと等しい 子プロセスを待つ。"
13671
13672 #. type: IP
13673 #: build/C/man2/wait.2:143
13674 #, no-wrap
13675 msgid "E<gt> 0"
13676 msgstr "E<gt> 0"
13677
13678 #. type: Plain text
13679 #: build/C/man2/wait.2:147
13680 msgid ""
13681 "meaning wait for the child whose process ID is equal to the value of I<pid>."
13682 msgstr "プロセスID が I<pid> に等しい子プロセスを待つ。"
13683
13684 #. type: Plain text
13685 #: build/C/man2/wait.2:151
13686 msgid ""
13687 "The value of I<options> is an OR of zero or more of the following constants:"
13688 msgstr "I<options> の値は次の定数の 0 個以上の論理和である:"
13689
13690 #. type: TP
13691 #: build/C/man2/wait.2:151 build/C/man2/wait.2:280
13692 #, no-wrap
13693 msgid "B<WNOHANG>"
13694 msgstr "B<WNOHANG>"
13695
13696 #. type: Plain text
13697 #: build/C/man2/wait.2:154
13698 msgid "return immediately if no child has exited."
13699 msgstr "状態変化が起こった子プロセスがない場合にすぐに復帰する。"
13700
13701 #. type: TP
13702 #: build/C/man2/wait.2:154
13703 #, no-wrap
13704 msgid "B<WUNTRACED>"
13705 msgstr "B<WUNTRACED>"
13706
13707 #. type: Plain text
13708 #: build/C/man2/wait.2:163
13709 msgid ""
13710 "also return if a child has stopped (but not traced via B<ptrace>(2)).  "
13711 "Status for I<traced> children which have stopped is provided even if this "
13712 "option is not specified."
13713 msgstr ""
13714 "子プロセスが停止した場合にも復帰する (子プロセスが B<ptrace>(2)  でトレースさ"
13715 "れている場合は除く)。 このオプションが指定されていない場合でも、停止したプロ"
13716 "セスが 「トレース (traced)」されていれば、子プロセスの状態が報告される。"
13717
13718 #. type: TP
13719 #: build/C/man2/wait.2:163
13720 #, no-wrap
13721 msgid "B<WCONTINUED> (since Linux 2.6.10)"
13722 msgstr "B<WCONTINUED> (Linux 2.6.10 以降)"
13723
13724 #. type: Plain text
13725 #: build/C/man2/wait.2:167
13726 msgid ""
13727 "also return if a stopped child has been resumed by delivery of B<SIGCONT>."
13728 msgstr "停止した子プロセスが B<SIGCONT> の配送により再開した場合にも復帰する。"
13729
13730 #. type: Plain text
13731 #: build/C/man2/wait.2:169
13732 msgid "(For Linux-only options, see below.)"
13733 msgstr "(Linux 専用オプションについては後述する)"
13734
13735 #. type: Plain text
13736 #: build/C/man2/wait.2:183
13737 msgid ""
13738 "If I<status> is not NULL, B<wait>()  and B<waitpid>()  store status "
13739 "information in the I<int> to which it points.  This integer can be inspected "
13740 "with the following macros (which take the integer itself as an argument, not "
13741 "a pointer to it, as is done in B<wait>()  and B<waitpid>()!):"
13742 msgstr ""
13743 "I<status> が NULL でなければ、 B<wait>()  や B<waitpid>()  は I<status> で指"
13744 "す I<int> に状態情報を格納する。 この整数は以下のマクロを使って検査できる。 "
13745 "(これらのマクロの引き数には、 B<wait>()  や B<waitpid>()  が書き込んだ整数そ"
13746 "のものを指定する。ポインタではない!)"
13747
13748 #. type: TP
13749 #: build/C/man2/wait.2:183
13750 #, no-wrap
13751 msgid "B<WIFEXITED(>I<status>B<)>"
13752 msgstr "B<WIFEXITED(>I<status>B<)>"
13753
13754 #. type: Plain text
13755 #: build/C/man2/wait.2:191
13756 msgid ""
13757 "returns true if the child terminated normally, that is, by calling "
13758 "B<exit>(3)  or B<_exit>(2), or by returning from main()."
13759 msgstr ""
13760 "子プロセスが正常に終了した場合に真を返す。 「正常に」とは、 B<exit>(3)  か "
13761 "B<_exit>(2)  が呼び出された場合、もしくは main() から復帰した場合である。"
13762
13763 #. type: TP
13764 #: build/C/man2/wait.2:191
13765 #, no-wrap
13766 msgid "B<WEXITSTATUS(>I<status>B<)>"
13767 msgstr "B<WEXITSTATUS(>I<status>B<)>"
13768
13769 #. type: Plain text
13770 #: build/C/man2/wait.2:204
13771 msgid ""
13772 "returns the exit status of the child.  This consists of the least "
13773 "significant 8 bits of the I<status> argument that the child specified in a "
13774 "call to B<exit>(3)  or B<_exit>(2)  or as the argument for a return "
13775 "statement in main().  This macro should be employed only if B<WIFEXITED> "
13776 "returned true."
13777 msgstr ""
13778 "子プロセスの終了ステータスを返す。 終了ステータスは I<status> 引き数の下位 8"
13779 "ビットで構成されており、 B<exit>(3)  や B<_exit>(2)  の呼び出し時に渡された"
13780 "値、もしくは main() の return 文の 引き数として指定された値である。 このマク"
13781 "ロを使用するのは B<WIFEXITED> が真を返した場合だけにすべきである。"
13782
13783 #. type: TP
13784 #: build/C/man2/wait.2:204
13785 #, no-wrap
13786 msgid "B<WIFSIGNALED(>I<status>B<)>"
13787 msgstr "B<WIFSIGNALED(>I<status>B<)>"
13788
13789 #. type: Plain text
13790 #: build/C/man2/wait.2:207
13791 msgid "returns true if the child process was terminated by a signal."
13792 msgstr "子プロセスがシグナルにより終了した場合に真を返す。"
13793
13794 #. type: TP
13795 #: build/C/man2/wait.2:207
13796 #, no-wrap
13797 msgid "B<WTERMSIG(>I<status>B<)>"
13798 msgstr "B<WTERMSIG(>I<status>B<)>"
13799
13800 #. type: Plain text
13801 #: build/C/man2/wait.2:214
13802 msgid ""
13803 "returns the number of the signal that caused the child process to "
13804 "terminate.  This macro should be employed only if B<WIFSIGNALED> returned "
13805 "true."
13806 msgstr ""
13807 "子プロセス終了の原因となったシグナルの番号を返す。 このマクロを使用するのは "
13808 "B<WIFSIGNALED> が真を返した場合だけにすべきである。"
13809
13810 #. type: TP
13811 #: build/C/man2/wait.2:214
13812 #, no-wrap
13813 msgid "B<WCOREDUMP(>I<status>B<)>"
13814 msgstr "B<WCOREDUMP(>I<status>B<)>"
13815
13816 #. type: Plain text
13817 #: build/C/man2/wait.2:223
13818 msgid ""
13819 "returns true if the child produced a core dump.  This macro should be "
13820 "employed only if B<WIFSIGNALED> returned true.  This macro is not specified "
13821 "in POSIX.1-2001 and is not available on some UNIX implementations (e.g., "
13822 "AIX, SunOS).  Only use this enclosed in #ifdef WCOREDUMP ... #endif."
13823 msgstr ""
13824 "子プロセスがコアダンプを生成した場合に真を返す。 このマクロを使用するのは "
13825 "B<WIFSIGNALED> が真を返した場合だけにすべきである。 このマクロは "
13826 "POSIX.1-2001 では規定されておらず、 (AIX, SunOS などの) いくつかの UNIX の実"
13827 "装では利用できない。 必ず #ifdef WCOREDUMP ... #endif で括って使用すること。"
13828
13829 #. type: TP
13830 #: build/C/man2/wait.2:223
13831 #, no-wrap
13832 msgid "B<WIFSTOPPED(>I<status>B<)>"
13833 msgstr "B<WIFSTOPPED(>I<status>B<)>"
13834
13835 #. type: Plain text
13836 #: build/C/man2/wait.2:230
13837 msgid ""
13838 "returns true if the child process was stopped by delivery of a signal; this "
13839 "is possible only if the call was done using B<WUNTRACED> or when the child "
13840 "is being traced (see B<ptrace>(2))."
13841 msgstr ""
13842 "子プロセスがシグナルの配送により停止した場合に真を返す。 これが真になるのは、"
13843 "システムコールが B<WUNTRACED> を指定して呼び出された場合か、子プロセスがト"
13844 "レースされている場合 (B<ptrace>(2)  参照) だけである。"
13845
13846 #. type: TP
13847 #: build/C/man2/wait.2:230
13848 #, no-wrap
13849 msgid "B<WSTOPSIG(>I<status>B<)>"
13850 msgstr "B<WSTOPSIG(>I<status>B<)>"
13851
13852 #. type: Plain text
13853 #: build/C/man2/wait.2:236
13854 msgid ""
13855 "returns the number of the signal which caused the child to stop.  This macro "
13856 "should be employed only if B<WIFSTOPPED> returned true."
13857 msgstr ""
13858 "子プロセスを停止させたシグナルの番号を返す。 このマクロを使用するのは "
13859 "B<WIFSTOPPED> が 0 以外を返した場合だけにすべきである。"
13860
13861 #. type: TP
13862 #: build/C/man2/wait.2:236
13863 #, no-wrap
13864 msgid "B<WIFCONTINUED(>I<status>B<)>"
13865 msgstr "B<WIFCONTINUED(>I<status>B<)>"
13866
13867 #. type: Plain text
13868 #: build/C/man2/wait.2:241
13869 msgid ""
13870 "(since Linux 2.6.10)  returns true if the child process was resumed by "
13871 "delivery of B<SIGCONT>."
13872 msgstr ""
13873 "(Linux 2.6.10 以降)  子プロセスが B<SIGCONT> の配送により再開した場合に真を返"
13874 "す。"
13875
13876 #. type: SS
13877 #: build/C/man2/wait.2:241
13878 #, no-wrap
13879 msgid "waitid()"
13880 msgstr "waitid()"
13881
13882 #. type: Plain text
13883 #: build/C/man2/wait.2:246
13884 msgid ""
13885 "The B<waitid>()  system call (available since Linux 2.6.9) provides more "
13886 "precise control over which child state changes to wait for."
13887 msgstr ""
13888 "B<waitid>()  システムコール (Linux 2.6.9 以降で利用可能) を使うと、 子プロセ"
13889 "スのどの状態変化を待つかについてより細かな制御ができる。"
13890
13891 #. type: Plain text
13892 #: build/C/man2/wait.2:252
13893 msgid ""
13894 "The I<idtype> and I<id> arguments select the child(ren) to wait for, as "
13895 "follows:"
13896 msgstr "引き数 I<idtype> と I<id> でどの子プロセスを待つかを選択する:"
13897
13898 #. type: IP
13899 #: build/C/man2/wait.2:252
13900 #, no-wrap
13901 msgid "I<idtype> == B<P_PID>"
13902 msgstr "I<idtype> == B<P_PID>"
13903
13904 #. type: Plain text
13905 #: build/C/man2/wait.2:255
13906 msgid "Wait for the child whose process ID matches I<id>."
13907 msgstr "プロセスID が I<id> と一致する子プロセスを待つ。"
13908
13909 #. type: IP
13910 #: build/C/man2/wait.2:255
13911 #, no-wrap
13912 msgid "I<idtype> == B<P_PGID>"
13913 msgstr "I<idtype> == B<P_PGID>"
13914
13915 #. type: Plain text
13916 #: build/C/man2/wait.2:258
13917 msgid "Wait for any child whose process group ID matches I<id>."
13918 msgstr "プロセスグループID が I<id> と一致する子プロセスを待つ。"
13919
13920 #. type: IP
13921 #: build/C/man2/wait.2:258
13922 #, no-wrap
13923 msgid "I<idtype> == B<P_ALL>"
13924 msgstr "I<idtype> == B<P_ALL>"
13925
13926 #. type: Plain text
13927 #: build/C/man2/wait.2:262
13928 msgid "Wait for any child; I<id> is ignored."
13929 msgstr "子プロセス全部を対象に待つ。 I<id> は無視される。"
13930
13931 #. type: Plain text
13932 #: build/C/man2/wait.2:266
13933 msgid ""
13934 "The child state changes to wait for are specified by ORing one or more of "
13935 "the following flags in I<options>:"
13936 msgstr ""
13937 "子プロセスのどの状態変化を待つかは以下のフラグで指定する (I<options> には 1個"
13938 "以上のフラグの論理和をとって指定する):"
13939
13940 #. type: TP
13941 #: build/C/man2/wait.2:266
13942 #, no-wrap
13943 msgid "B<WEXITED>"
13944 msgstr "B<WEXITED>"
13945
13946 #. type: Plain text
13947 #: build/C/man2/wait.2:269
13948 msgid "Wait for children that have terminated."
13949 msgstr "子プロセスの終了を待つ。"
13950
13951 #. type: TP
13952 #: build/C/man2/wait.2:269
13953 #, no-wrap
13954 msgid "B<WSTOPPED>"
13955 msgstr "B<WSTOPPED>"
13956
13957 #. type: Plain text
13958 #: build/C/man2/wait.2:272
13959 msgid "Wait for children that have been stopped by delivery of a signal."
13960 msgstr "子プロセスがシグナルの配送により停止するのを待つ。"
13961
13962 #. type: TP
13963 #: build/C/man2/wait.2:272
13964 #, no-wrap
13965 msgid "B<WCONTINUED>"
13966 msgstr "B<WCONTINUED>"
13967
13968 #. type: Plain text
13969 #: build/C/man2/wait.2:277
13970 msgid ""
13971 "Wait for (previously stopped) children that have been resumed by delivery of "
13972 "B<SIGCONT>."
13973 msgstr "(停止していた) 子プロセスが B<SIGCONT> が配送されて再開するのを待つ。"
13974
13975 #. type: Plain text
13976 #: build/C/man2/wait.2:280
13977 msgid "The following flags may additionally be ORed in I<options>:"
13978 msgstr "さらに以下のフラグを論理和の形で I<options> に指定できる:"
13979
13980 #. type: Plain text
13981 #: build/C/man2/wait.2:284
13982 msgid "As for B<waitpid>()."
13983 msgstr "B<waitpid>()  と同様。"
13984
13985 #. type: TP
13986 #: build/C/man2/wait.2:284
13987 #, no-wrap
13988 msgid "B<WNOWAIT>"
13989 msgstr "B<WNOWAIT>"
13990
13991 #. type: Plain text
13992 #: build/C/man2/wait.2:288
13993 msgid ""
13994 "Leave the child in a waitable state; a later wait call can be used to again "
13995 "retrieve the child status information."
13996 msgstr ""
13997 "waitable 状態のプロセスをそのままにする。この後で wait コールを 使って、同じ"
13998 "子プロセスの状態情報をもう一度取得することができる。"
13999
14000 #. type: Plain text
14001 #: build/C/man2/wait.2:295
14002 msgid ""
14003 "Upon successful return, B<waitid>()  fills in the following fields of the "
14004 "I<siginfo_t> structure pointed to by I<infop>:"
14005 msgstr ""
14006 "成功した場合には、 B<waitid>()  は I<infop> が指す I<siginfo_t> 構造体の以下"
14007 "のフィールドを設定する:"
14008
14009 #. type: Plain text
14010 #: build/C/man2/wait.2:298
14011 msgid "The process ID of the child."
14012 msgstr "子プロセスのプロセスID。"
14013
14014 #. type: Plain text
14015 #: build/C/man2/wait.2:302
14016 msgid ""
14017 "The real user ID of the child.  (This field is not set on most other "
14018 "implementations.)"
14019 msgstr ""
14020 "子プロセスの実ユーザID (このフィールドは他のほとんどの実装では設定されない)。"
14021
14022 #. type: Plain text
14023 #: build/C/man2/wait.2:306
14024 msgid "Always set to B<SIGCHLD>."
14025 msgstr "常に B<SIGCHLD> が設定される。"
14026
14027 #. type: TP
14028 #: build/C/man2/wait.2:306
14029 #, no-wrap
14030 msgid "I<si_status>"
14031 msgstr "I<si_status>"
14032
14033 #. type: Plain text
14034 #: build/C/man2/wait.2:316
14035 msgid ""
14036 "Either the exit status of the child, as given to B<_exit>(2)  (or "
14037 "B<exit>(3)), or the signal that caused the child to terminate, stop, or "
14038 "continue.  The I<si_code> field can be used to determine how to interpret "
14039 "this field."
14040 msgstr ""
14041 "B<_exit>(2)  (か B<exit>(3))  に指定された子プロセスの終了ステータス、もしく"
14042 "は 子プロセスの終了、停止、再開の原因となったシグナルが設定される。 この"
14043 "フィールドをどう解釈するかは、 I<si_code> フィールドを参照して決めることがで"
14044 "きる。"
14045
14046 #. type: Plain text
14047 #: build/C/man2/wait.2:333
14048 msgid ""
14049 "Set to one of: B<CLD_EXITED> (child called B<_exit>(2)); B<CLD_KILLED> "
14050 "(child killed by signal); B<CLD_DUMPED> (child killed by signal, and dumped "
14051 "core); B<CLD_STOPPED> (child stopped by signal); B<CLD_TRAPPED> (traced "
14052 "child has trapped); or B<CLD_CONTINUED> (child continued by B<SIGCONT>)."
14053 msgstr ""
14054 "以下のいずれかが設定される: B<CLD_EXITED> (子プロセスが B<_exit>(2)  を呼び出"
14055 "した); B<CLD_KILLED> (シグナルにより子プロセスが kill された); B<CLD_DUMPED> "
14056 "(シグナルにより子プロセスが kill され、コア・ダンプが行われた); "
14057 "B<CLD_STOPPED> (シグナルにより子プロセスが停止した); B<CLD_TRAPPED> (トレース"
14058 "されていた子プロセスがトラップを受信した); B<CLD_CONTINUED> (B<SIGCONT> によ"
14059 "り子プロセスが再開された)。"
14060
14061 #.  POSIX.1-2001 leaves this possibility unspecified; most
14062 #.  implementations (including Linux) zero out the structure
14063 #.  in this case, but at least one implementation (AIX 5.1)
14064 #.  does not -- MTK Nov 04
14065 #. type: Plain text
14066 #: build/C/man2/wait.2:355
14067 msgid ""
14068 "If B<WNOHANG> was specified in I<options> and there were no children in a "
14069 "waitable state, then B<waitid>()  returns 0 immediately and the state of the "
14070 "I<siginfo_t> structure pointed to by I<infop> is unspecified.  To "
14071 "distinguish this case from that where a child was in a waitable state, zero "
14072 "out the I<si_pid> field before the call and check for a nonzero value in "
14073 "this field after the call returns."
14074 msgstr ""
14075 "B<WNOHANG> が I<options> に指定されていて、 waitable 状態の子プロセスがなかっ"
14076 "た場合には、 B<waitid>()  はすぐに 0 を返す。このとき、 I<infop> が指す "
14077 "I<siginfo_t> 構造体の内容は不定である。 この場合を waitable 状態の子プロセス"
14078 "があった場合と区別するには、 B<waitid>()  を呼び出す前に I<si_pid> を 0 にし"
14079 "ておき、コールが復帰した後でこのフィールドが 0 以外の値かどうか をチェックす"
14080 "ればよい。"
14081
14082 #. type: Plain text
14083 #: build/C/man2/wait.2:359
14084 msgid ""
14085 "B<wait>(): on success, returns the process ID of the terminated child; on "
14086 "error, -1 is returned."
14087 msgstr ""
14088 "B<wait>(): 成功すると、終了した子プロセスのプロセスID を返す。 エラーの場合 "
14089 "-1 を返す。"
14090
14091 #. type: Plain text
14092 #: build/C/man2/wait.2:368
14093 msgid ""
14094 "B<waitpid>(): on success, returns the process ID of the child whose state "
14095 "has changed; if B<WNOHANG> was specified and one or more child(ren) "
14096 "specified by I<pid> exist, but have not yet changed state, then 0 is "
14097 "returned.  On error, -1 is returned."
14098 msgstr ""
14099 "B<waitpid>(): 成功すると、状態が変化した子プロセスのプロセスID を返す。 "
14100 "B<WNOHANG> が指定されていて、 I<pid> で指示された子プロセスが一つ以上存在する"
14101 "が、どの子プロセスでも 状態変化が起こっていなかった場合は、 0 を返す。 エラー"
14102 "の場合 -1 を返す。"
14103
14104 #.  FIXME As reported by Vegard Nossum, if infop is NULL, then waitid()
14105 #.  returns the PID of the child.  Either this is a bug, or it is intended
14106 #.  behavior that needs to be documented.  See my Jan 2009 LKML mail
14107 #.  "waitid() return value strangeness when infop is NULL".
14108 #. type: Plain text
14109 #: build/C/man2/wait.2:381
14110 msgid ""
14111 "B<waitid>(): returns 0 on success or if B<WNOHANG> was specified and no "
14112 "child(ren) specified by I<id> has yet changed state; on error, -1 is "
14113 "returned."
14114 msgstr ""
14115 "B<waitid>(): 成功すると 0 を返す。 B<WNOHANG> が指定されていて、 I<pid> で指"
14116 "示された子プロセスで状態変化が起こっていなかった場合にも 0 を返す。"
14117
14118 #. type: Plain text
14119 #: build/C/man2/wait.2:385
14120 msgid ""
14121 "Each of these calls sets I<errno> to an appropriate value in the case of an "
14122 "error."
14123 msgstr ""
14124 "エラーの場合 -1 を返す。 エラーの場合、これらのシステムコールはいずれも "
14125 "I<errno> に適切な値を設定する。"
14126
14127 #. type: TP
14128 #: build/C/man2/wait.2:386 build/C/man2/wait.2:391
14129 #, no-wrap
14130 msgid "B<ECHILD>"
14131 msgstr "B<ECHILD>"
14132
14133 #. type: Plain text
14134 #: build/C/man2/wait.2:391
14135 msgid ""
14136 "(for B<wait>())  The calling process does not have any unwaited-for children."
14137 msgstr ""
14138 "(B<wait>()  の場合)  呼び出し元プロセスには、wait を行っていない子プロセスは"
14139 "ない。"
14140
14141 #. type: Plain text
14142 #: build/C/man2/wait.2:411
14143 msgid ""
14144 "(for B<waitpid>()  or B<waitid>())  The process specified by I<pid> "
14145 "(B<waitpid>())  or I<idtype> and I<id> (B<waitid>())  does not exist or is "
14146 "not a child of the calling process.  (This can happen for one's own child if "
14147 "the action for B<SIGCHLD> is set to B<SIG_IGN>.  See also the I<Linux Notes> "
14148 "section about threads.)"
14149 msgstr ""
14150 "(B<waitpid>()  か B<waitid>()  の場合)  I<pid> (B<waitpid>())  か I<idtype> "
14151 "と I<id> (B<waitid>())  で指定したプロセスが存在しないか、呼び出し元プロセス"
14152 "の子プロセスでない (B<SIGCHLD> の動作に B<SIG_IGN> を設定した場合には、自分自"
14153 "身の子プロセスでも起こりうる。 スレッドに関しては「Linux での注意」の節も参照"
14154 "すること)。"
14155
14156 #. type: Plain text
14157 #: build/C/man2/wait.2:418
14158 msgid ""
14159 "B<WNOHANG> was not set and an unblocked signal or a B<SIGCHLD> was caught; "
14160 "see B<signal>(7)."
14161 msgstr ""
14162 "B<WNOHANG> が設定されておらず、禁止 (block) されていないシグナルや "
14163 "B<SIGCHLD> を受信した。 B<signal>(7)  参照。"
14164
14165 #. type: Plain text
14166 #: build/C/man2/wait.2:423
14167 msgid "The I<options> argument was invalid."
14168 msgstr "I<options> 引き数が不正である。"
14169
14170 #. type: Plain text
14171 #: build/C/man2/wait.2:438
14172 msgid ""
14173 "A child that terminates, but has not been waited for becomes a \"zombie\".  "
14174 "The kernel maintains a minimal set of information about the zombie process "
14175 "(PID, termination status, resource usage information)  in order to allow the "
14176 "parent to later perform a wait to obtain information about the child.  As "
14177 "long as a zombie is not removed from the system via a wait, it will consume "
14178 "a slot in the kernel process table, and if this table fills, it will not be "
14179 "possible to create further processes.  If a parent process terminates, then "
14180 "its \"zombie\" children (if any)  are adopted by B<init>(1), which "
14181 "automatically performs a wait to remove the zombies."
14182 msgstr ""
14183 "終了したが、wait されていない子プロセスは「ゾンビ」になる。 後で親プロセスが "
14184 "wait を実行して子プロセスについての情報を取得できるように、 カーネルはゾンビ"
14185 "プロセスについて最小限の情報 (PID、終了ステータス、 リソース使用状況) を保持"
14186 "する。 ゾンビプロセスは、 wait によってシステムから削除されない限り、 カーネ"
14187 "ルのプロセステーブルの 1 エントリを消費する。このプロセステーブルが 一杯にな"
14188 "ると、新たにプロセスを作ることができなくなる。 親プロセスが終了すると、その親"
14189 "プロセスの「ゾンビ」の 子プロセスは (もしあれば)  B<init>(1)  の養子となる。 "
14190 "B<init>(1)  は wait を自動的に実行し、ゾンビを削除する。"
14191
14192 #. type: Plain text
14193 #: build/C/man2/wait.2:467
14194 msgid ""
14195 "POSIX.1-2001 specifies that if the disposition of B<SIGCHLD> is set to "
14196 "B<SIG_IGN> or the B<SA_NOCLDWAIT> flag is set for B<SIGCHLD> (see "
14197 "B<sigaction>(2)), then children that terminate do not become zombies and a "
14198 "call to B<wait>()  or B<waitpid>()  will block until all children have "
14199 "terminated, and then fail with I<errno> set to B<ECHILD>.  (The original "
14200 "POSIX standard left the behavior of setting B<SIGCHLD> to B<SIG_IGN> "
14201 "unspecified.  Note that even though the default disposition of B<SIGCHLD> is "
14202 "\"ignore\", explicitly setting the disposition to B<SIG_IGN> results in "
14203 "different treatment of zombie process children.)"
14204 msgstr ""
14205 "POSIX.1-2001 では以下のように規定されている。 B<SIGCHLD> の動作が B<SIG_IGN> "
14206 "に設定されたか、 B<SIGCHLD> に対して B<SA_NOCLDWAIT> フラグが設定された場合 "
14207 "(B<sigaction>(2)  参照)、終了した子プロセスはゾンビにはならず、 B<wait>()  "
14208 "や B<waitpid>()  の呼び出しは全ての子プロセスが終了するまで停止し、 子プロセ"
14209 "スが全部終了した後 I<errno> に B<ECHILD> を設定して失敗する。 (もともとの "
14210 "POSIX 標準は B<SIGCHLD> に B<SIG_IGN> を設定した場合の振る舞いを未規定のまま"
14211 "にしている。 B<SIGCHLD> のデフォルトの動作が「無視」であるにもかかわらず、 "
14212 "B<SIGCHLD> の動作として B<SIG_IGN> を明示的に設定した場合にはゾンビプロセスの"
14213 "子プロセスの扱いが 異なる点に注意すること。)"
14214
14215 #. type: Plain text
14216 #: build/C/man2/wait.2:480
14217 msgid ""
14218 "Linux 2.6 conforms to the POSIX requirements.  However, Linux 2.4 (and "
14219 "earlier) does not: if a B<wait>()  or B<waitpid>()  call is made while "
14220 "B<SIGCHLD> is being ignored, the call behaves just as though B<SIGCHLD> were "
14221 "not being ignored, that is, the call blocks until the next child terminates "
14222 "and then returns the process ID and status of that child."
14223 msgstr ""
14224 "Linux 2.6 はこの仕様に準拠している。 しかし、Linux 2.4 (とそれ以前のバージョ"
14225 "ン) はそうではない: B<SIGCHLD> が無視される状態で B<wait>()  または "
14226 "B<waitpid>()  が呼び出された場合、 B<SIGCHLD> が無視されていないかのように振"
14227 "る舞う。 つまり、呼び出しによって次の子プロセスの終了までブロックされ、 終了"
14228 "した子プロセスの PID と状態が返される。"
14229
14230 #. type: Plain text
14231 #: build/C/man2/wait.2:496
14232 msgid ""
14233 "In the Linux kernel, a kernel-scheduled thread is not a distinct construct "
14234 "from a process.  Instead, a thread is simply a process that is created using "
14235 "the Linux-unique B<clone>(2)  system call; other routines such as the "
14236 "portable B<pthread_create>(3)  call are implemented using B<clone>(2).  "
14237 "Before Linux 2.4, a thread was just a special case of a process, and as a "
14238 "consequence one thread could not wait on the children of another thread, "
14239 "even when the latter belongs to the same thread group.  However, POSIX "
14240 "prescribes such functionality, and since Linux 2.4 a thread can, and by "
14241 "default will, wait on children of other threads in the same thread group."
14242 msgstr ""
14243 "Linux カーネルでは、カーネルによってスケジュールされるスレッドは プロセスと明"
14244 "確に区別できる構成要素ではない。スレッドは Linux 固有の B<clone>(2)  システム"
14245 "コールを使用して生成されるプロセスに過ぎない。 移植性のある "
14246 "B<pthread_create>(3)  コールのような他のルーチンは B<clone>(2)  を使用して実"
14247 "装されている; これらでは B<waitid>()  を使うことはできない。 Linux 2.4 より前"
14248 "では、スレッドは単に特殊なプロセスであったので、 例え同じスレッドグループで"
14249 "あっても、 あるスレッドが別のスレッドの子プロセスが終了するのを待つことは出来"
14250 "なかった。 しかし、POSIX ではこのような機能を規定しており、 Linux 2.4 以降で"
14251 "は、あるスレッドが同じスレッドグループの他のスレッドの 子プロセスが終了するの"
14252 "を待つことができるようになった。 そして将来はこれがデフォルトの動作になるであ"
14253 "ろう。"
14254
14255 #. type: Plain text
14256 #: build/C/man2/wait.2:503
14257 msgid ""
14258 "The following Linux-specific I<options> are for use with children created "
14259 "using B<clone>(2); they cannot be used with B<waitid>():"
14260 msgstr ""
14261 "B<clone>(2)  を用いて作られた子プロセスには、以下の Linux 固有の I<options> "
14262 "が使用できる。"
14263
14264 #. type: TP
14265 #: build/C/man2/wait.2:503
14266 #, no-wrap
14267 msgid "B<__WCLONE>"
14268 msgstr "B<__WCLONE>"
14269
14270 #.  since 0.99pl10
14271 #. type: Plain text
14272 #: build/C/man2/wait.2:514
14273 msgid ""
14274 "Wait for \"clone\" children only.  If omitted, then wait for \"non-clone\" "
14275 "children only.  (A \"clone\" child is one which delivers no signal, or a "
14276 "signal other than B<SIGCHLD> to its parent upon termination.)  This option "
14277 "is ignored if B<__WALL> is also specified."
14278 msgstr ""
14279 "\"clone\" な子プロセスだけを待つ。 指定されなかった場合は非 \"clone\" な子プ"
14280 "ロセスだけを待つ (\"clone\" な子プロセスは、終了時に親プロセスへ全くシグナル"
14281 "を送らないか、 B<SIGCHLD> 以外のシグナルを送る)。 このオプションは B<__WALL> "
14282 "も指定された場合は無視される。"
14283
14284 #. type: TP
14285 #: build/C/man2/wait.2:514
14286 #, no-wrap
14287 msgid "B<__WALL> (since Linux 2.4)"
14288 msgstr "B<__WALL> (Linux 2.4 以降)"
14289
14290 #.  since patch-2.3.48
14291 #. type: Plain text
14292 #: build/C/man2/wait.2:519
14293 msgid "Wait for all children, regardless of type (\"clone\" or \"non-clone\")."
14294 msgstr "\"clone\" であるかないかに関わらず、 全ての子プロセスを待つ。"
14295
14296 #. type: TP
14297 #: build/C/man2/wait.2:519
14298 #, no-wrap
14299 msgid "B<__WNOTHREAD> (since Linux 2.4)"
14300 msgstr "B<__WNOTHREAD> (Linux 2.4 以降)"
14301
14302 #.  since patch-2.4.0-test8
14303 #. type: Plain text
14304 #: build/C/man2/wait.2:525
14305 msgid ""
14306 "Do not wait for children of other threads in the same thread group.  This "
14307 "was the default before Linux 2.4."
14308 msgstr ""
14309 "同じスレッドグループの他のスレッドの子プロセスは待たない。 Linux 2.4 より前で"
14310 "はデフォルトであった。"
14311
14312 #. type: Plain text
14313 #: build/C/man2/wait.2:537
14314 msgid ""
14315 "The raw B<waitid>()  system call takes a fifth argument, of type I<struct "
14316 "rusage\\ *>.  If this argument is non-NULL, then it is used to return "
14317 "resource usage information about the child, in the same manner as "
14318 "B<wait4>(2).  See B<getrusage>(2)  for details."
14319 msgstr ""
14320 "生の B<waitid>() システムコールは I<struct rusage\\ *> 型の第 5 引数を取る。 "
14321 "この引数が NULL 以外の場合、 この引数が子プロセスのリソース使用状況を返すのに"
14322 "使用される。 これは B<wait4>(2) と同じ方法である。 詳細は B<getrusage>(2) を"
14323 "参照。"
14324
14325 #. type: Plain text
14326 #: build/C/man2/wait.2:552
14327 msgid ""
14328 "According to POSIX.1-2008, an application calling B<waitid>()  must ensure "
14329 "that I<infop> points to a I<siginfo_t> structure (i.e., that it is a non-"
14330 "null pointer).  On Linux, if I<infop> is NULL, B<waitid>()  succeeds, and "
14331 "returns the process ID of the waited-for child.  Applications should avoid "
14332 "relying on this inconsistent, nonstandard, and unnecessary feature."
14333 msgstr ""
14334 "POSIX.1-2008 によると、 B<waitid>() を呼び出すアプリケーションは、 I<infop> "
14335 "が I<siginfo_t> 構造体を指していること (つまり I<infop> が NULL でないポイン"
14336 "タであること) を保証しなければならない。 Linux では、 I<infop> が NULL の場"
14337 "合、 B<waitid>() は成功し、wait している子プロセスのプロセス ID を返す。 アプ"
14338 "リケーションは、この食い違った、非標準で、不必要な機能に依存しないようにすべ"
14339 "きである。"
14340
14341 #.  fork.2 refers to this example program.
14342 #. type: Plain text
14343 #: build/C/man2/wait.2:569
14344 msgid ""
14345 "The following program demonstrates the use of B<fork>(2)  and B<waitpid>().  "
14346 "The program creates a child process.  If no command-line argument is "
14347 "supplied to the program, then the child suspends its execution using "
14348 "B<pause>(2), to allow the user to send signals to the child.  Otherwise, if "
14349 "a command-line argument is supplied, then the child exits immediately, using "
14350 "the integer supplied on the command line as the exit status.  The parent "
14351 "process executes a loop that monitors the child using B<waitpid>(), and uses "
14352 "the W*() macros described above to analyze the wait status value."
14353 msgstr ""
14354 "以下のプログラムは、 B<fork>(2)  と B<waitpid>()  の使用方法の例を示してい"
14355 "る。 このプログラムでは子プロセスを生成する。 コマンドライン引き数が指定され"
14356 "なかったときは、 子プロセスは B<pause>(2)  を使ってその実行を一時停止し、ユー"
14357 "ザがその子プロセスに シグナルを送信できるようにする。 コマンドライン引き数が"
14358 "指定された場合は、 子プロセスは直ちに終了し、 コマンドラインで指定された整数"
14359 "を終了ステータスとして使用する。 親プロセスは、 B<waitpid>()  を使って子プロ"
14360 "セスを監視し、 wait のステータス値を上記の W*() マクロを使って解析するという "
14361 "ループを実行する。"
14362
14363 #. type: Plain text
14364 #: build/C/man2/wait.2:585
14365 #, no-wrap
14366 msgid ""
14367 "$B< ./a.out &>\n"
14368 "Child PID is 32360\n"
14369 "[1] 32359\n"
14370 "$B< kill -STOP 32360>\n"
14371 "stopped by signal 19\n"
14372 "$B< kill -CONT 32360>\n"
14373 "continued\n"
14374 "$B< kill -TERM 32360>\n"
14375 "killed by signal 15\n"
14376 "[1]+  Done                    ./a.out\n"
14377 "$\n"
14378 msgstr ""
14379 "$B< ./a.out &>\n"
14380 "Child PID is 32360\n"
14381 "[1] 32359\n"
14382 "$B< kill -STOP 32360>\n"
14383 "stopped by signal 19\n"
14384 "$B< kill -CONT 32360>\n"
14385 "continued\n"
14386 "$B< kill -TERM 32360>\n"
14387 "killed by signal 15\n"
14388 "[1]+  Done                    ./a.out\n"
14389 "$\n"
14390
14391 #. type: Plain text
14392 #: build/C/man2/wait.2:594
14393 #, no-wrap
14394 msgid ""
14395 "#include E<lt>sys/wait.hE<gt>\n"
14396 "#include E<lt>stdlib.hE<gt>\n"
14397 "#include E<lt>unistd.hE<gt>\n"
14398 "#include E<lt>stdio.hE<gt>\n"
14399 msgstr ""
14400 "#include E<lt>sys/wait.hE<gt>\n"
14401 "#include E<lt>stdlib.hE<gt>\n"
14402 "#include E<lt>unistd.hE<gt>\n"
14403 "#include E<lt>stdio.hE<gt>\n"
14404
14405 #. type: Plain text
14406 #: build/C/man2/wait.2:600
14407 #, no-wrap
14408 msgid ""
14409 "int\n"
14410 "main(int argc, char *argv[])\n"
14411 "{\n"
14412 "    pid_t cpid, w;\n"
14413 "    int status;\n"
14414 msgstr ""
14415 "int\n"
14416 "main(int argc, char *argv[])\n"
14417 "{\n"
14418 "    pid_t cpid, w;\n"
14419 "    int status;\n"
14420
14421 #. type: Plain text
14422 #: build/C/man2/wait.2:606
14423 #, no-wrap
14424 msgid ""
14425 "    cpid = fork();\n"
14426 "    if (cpid == -1) {\n"
14427 "        perror(\"fork\");\n"
14428 "        exit(EXIT_FAILURE);\n"
14429 "    }\n"
14430 msgstr ""
14431 "    cpid = fork();\n"
14432 "    if (cpid == -1) {\n"
14433 "        perror(\"fork\");\n"
14434 "        exit(EXIT_FAILURE);\n"
14435 "    }\n"
14436
14437 #. type: Plain text
14438 #: build/C/man2/wait.2:612
14439 #, no-wrap
14440 msgid ""
14441 "    if (cpid == 0) {            /* Code executed by child */\n"
14442 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
14443 "        if (argc == 1)\n"
14444 "            pause();                    /* Wait for signals */\n"
14445 "        _exit(atoi(argv[1]));\n"
14446 msgstr ""
14447 "    if (cpid == 0) {            /* Code executed by child */\n"
14448 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
14449 "        if (argc == 1)\n"
14450 "            pause();                    /* Wait for signals */\n"
14451 "        _exit(atoi(argv[1]));\n"
14452
14453 #. type: Plain text
14454 #: build/C/man2/wait.2:620
14455 #, no-wrap
14456 msgid ""
14457 "    } else {                    /* Code executed by parent */\n"
14458 "        do {\n"
14459 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
14460 "            if (w == -1) {\n"
14461 "                perror(\"waitpid\");\n"
14462 "                exit(EXIT_FAILURE);\n"
14463 "            }\n"
14464 msgstr ""
14465 "    } else {                    /* Code executed by parent */\n"
14466 "        do {\n"
14467 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
14468 "            if (w == -1) {\n"
14469 "                perror(\"waitpid\");\n"
14470 "                exit(EXIT_FAILURE);\n"
14471 "            }\n"
14472
14473 #. type: Plain text
14474 #: build/C/man2/wait.2:634
14475 #, no-wrap
14476 msgid ""
14477 "            if (WIFEXITED(status)) {\n"
14478 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
14479 "            } else if (WIFSIGNALED(status)) {\n"
14480 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
14481 "            } else if (WIFSTOPPED(status)) {\n"
14482 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
14483 "            } else if (WIFCONTINUED(status)) {\n"
14484 "                printf(\"continued\\en\");\n"
14485 "            }\n"
14486 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
14487 "        exit(EXIT_SUCCESS);\n"
14488 "    }\n"
14489 "}\n"
14490 msgstr ""
14491 "            if (WIFEXITED(status)) {\n"
14492 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
14493 "            } else if (WIFSIGNALED(status)) {\n"
14494 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
14495 "            } else if (WIFSTOPPED(status)) {\n"
14496 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
14497 "            } else if (WIFCONTINUED(status)) {\n"
14498 "                printf(\"continued\\en\");\n"
14499 "            }\n"
14500 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
14501 "        exit(EXIT_SUCCESS);\n"
14502 "    }\n"
14503 "}\n"
14504
14505 #. type: Plain text
14506 #: build/C/man2/wait.2:647
14507 msgid ""
14508 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), "
14509 "B<sigaction>(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), "
14510 "B<credentials>(7), B<signal>(7)"
14511 msgstr ""
14512 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), "
14513 "B<sigaction>(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), "
14514 "B<credentials>(7), B<signal>(7)"
14515
14516 #. type: TH
14517 #: build/C/man2/wait4.2:33
14518 #, no-wrap
14519 msgid "WAIT4"
14520 msgstr "WAIT4"
14521
14522 #. type: TH
14523 #: build/C/man2/wait4.2:33
14524 #, no-wrap
14525 msgid "2012-09-23"
14526 msgstr "2012-09-23"
14527
14528 #. type: Plain text
14529 #: build/C/man2/wait4.2:36
14530 msgid "wait3, wait4 - wait for process to change state, BSD style"
14531 msgstr "wait3, wait4 - BSD スタイルでプロセスの状態変化を待つ"
14532
14533 #. type: Plain text
14534 #: build/C/man2/wait4.2:42
14535 #, no-wrap
14536 msgid ""
14537 "B<#include E<lt>sys/types.hE<gt>>\n"
14538 "B<#include E<lt>sys/time.hE<gt>>\n"
14539 "B<#include E<lt>sys/resource.hE<gt>>\n"
14540 "B<#include E<lt>sys/wait.hE<gt>>\n"
14541 msgstr ""
14542 "B<#include E<lt>sys/types.hE<gt>>\n"
14543 "B<#include E<lt>sys/time.hE<gt>>\n"
14544 "B<#include E<lt>sys/resource.hE<gt>>\n"
14545 "B<#include E<lt>sys/wait.hE<gt>>\n"
14546
14547 #. type: Plain text
14548 #: build/C/man2/wait4.2:45
14549 #, no-wrap
14550 msgid ""
14551 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14552 "B<            struct rusage *>I<rusage>B<);>\n"
14553 msgstr ""
14554 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14555 "B<            struct rusage *>I<rusage>B<);>\n"
14556
14557 #. type: Plain text
14558 #: build/C/man2/wait4.2:48
14559 #, no-wrap
14560 msgid ""
14561 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14562 "B<            struct rusage *>I<rusage>B<);>\n"
14563 msgstr ""
14564 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14565 "B<            struct rusage *>I<rusage>B<);>\n"
14566
14567 #. type: Plain text
14568 #: build/C/man2/wait4.2:57
14569 msgid "B<wait3>():"
14570 msgstr "B<wait3>():"
14571
14572 #. type: Plain text
14573 #: build/C/man2/wait4.2:63
14574 msgid "B<wait4>():"
14575 msgstr "B<wait4>():"
14576
14577 #. type: Plain text
14578 #: build/C/man2/wait4.2:65
14579 msgid "_BSD_SOURCE"
14580 msgstr "_BSD_SOURCE"
14581
14582 #. type: Plain text
14583 #: build/C/man2/wait4.2:73
14584 msgid ""
14585 "These functions are obsolete; use B<waitpid>(2)  or B<waitid>(2)  in new "
14586 "programs."
14587 msgstr ""
14588 "これらの関数は廃止予定である。 新しいプログラムでは B<waitpid>(2) や "
14589 "B<waitid>(2) を使用すること。"
14590
14591 #. type: Plain text
14592 #: build/C/man2/wait4.2:83
14593 msgid ""
14594 "The B<wait3>()  and B<wait4>()  system calls are similar to B<waitpid>(2), "
14595 "but additionally return resource usage information about the child in the "
14596 "structure pointed to by I<rusage>."
14597 msgstr ""
14598 "システムコール B<wait3>()  と B<wait4>()  は B<waitpid>(2)  と同様の動作をす"
14599 "る。それに加え、子プロセスのリソース使用状況の情報を I<rusage> が指す構造体に"
14600 "入れて返す。"
14601
14602 #. type: Plain text
14603 #: build/C/man2/wait4.2:89
14604 msgid ""
14605 "Other than the use of the I<rusage> argument, the following B<wait3>()  call:"
14606 msgstr "I<rusage> を使用する点を除けば、次の B<wait3>()  の呼び出し"
14607
14608 #. type: Plain text
14609 #: build/C/man2/wait4.2:92
14610 #, no-wrap
14611 msgid "    wait3(status, options, rusage);\n"
14612 msgstr "    wait3(status, options, rusage);\n"
14613
14614 #. type: Plain text
14615 #: build/C/man2/wait4.2:95 build/C/man2/wait4.2:109
14616 msgid "is equivalent to:"
14617 msgstr "は以下と等価である。"
14618
14619 #. type: Plain text
14620 #: build/C/man2/wait4.2:98
14621 #, no-wrap
14622 msgid "    waitpid(-1, status, options);\n"
14623 msgstr "    waitpid(-1, status, options);\n"
14624
14625 #. type: Plain text
14626 #: build/C/man2/wait4.2:103
14627 msgid "Similarly, the following B<wait4>()  call:"
14628 msgstr "同様に、次の B<wait4>()  の呼び出し"
14629
14630 #. type: Plain text
14631 #: build/C/man2/wait4.2:106
14632 #, no-wrap
14633 msgid "    wait4(pid, status, options, rusage);\n"
14634 msgstr "    wait4(pid, status, options, rusage);\n"
14635
14636 #. type: Plain text
14637 #: build/C/man2/wait4.2:112
14638 #, no-wrap
14639 msgid "    waitpid(pid, status, options);\n"
14640 msgstr "    waitpid(pid, status, options);\n"
14641
14642 #. type: Plain text
14643 #: build/C/man2/wait4.2:122
14644 msgid ""
14645 "In other words, B<wait3>()  waits of any child, while B<wait4>()  can be "
14646 "used to select a specific child, or children, on which to wait.  See "
14647 "B<wait>(2)  for further details."
14648 msgstr ""
14649 "言い換えると、 B<wait3>()  は全ての子プロセスを対象に待つが、 B<wait4>()  で"
14650 "は特定の子プロセス (複数可) を選んで待つことができる。"
14651
14652 #. type: Plain text
14653 #: build/C/man2/wait4.2:132
14654 msgid ""
14655 "If I<rusage> is not NULL, the I<struct rusage> to which it points will be "
14656 "filled with accounting information about the child.  See B<getrusage>(2)  "
14657 "for details."
14658 msgstr ""
14659 "I<rusage> が NULL でない場合、 I<rusage> が指す I<rusage 構造体> には子プロセ"
14660 "スのアカウント情報が格納される。 詳しくは B<getrusage>(2)  を参照のこと。"
14661
14662 #. type: Plain text
14663 #: build/C/man2/wait4.2:135 build/C/man2/wait4.2:138
14664 msgid "As for B<waitpid>(2)."
14665 msgstr "B<waitpid>(2)  と同様。"
14666
14667 #. type: Plain text
14668 #: build/C/man2/wait4.2:140
14669 msgid "4.3BSD."
14670 msgstr "4.3BSD."
14671
14672 #. type: Plain text
14673 #: build/C/man2/wait4.2:147
14674 msgid ""
14675 "SUSv1 included a specification of B<wait3>(); SUSv2 included B<wait3>(), but "
14676 "marked it LEGACY; SUSv3 removed it."
14677 msgstr ""
14678 "SUSv1 には B<wait3>() の規定があった。 SUSv2 には B<wait3>() が含まれていた"
14679 "が、「過去の名残 (LEGACY)」となっていた。 SUSv3 では B<wait3>() は削除され"
14680 "た。"
14681
14682 #. type: Plain text
14683 #: build/C/man2/wait4.2:159
14684 msgid ""
14685 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
14686 "portability.  (Indeed, I<E<lt>sys/resource.hE<gt>> defines the I<rusage> "
14687 "structure with fields of type I<struct timeval> defined in I<E<lt>sys/time."
14688 "hE<gt>>.)"
14689 msgstr ""
14690 "現在では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、インクルード"
14691 "しておくと 移植性を高めることができる (実際には I<E<lt>sys/resource.hE<gt>> "
14692 "で I<rusage> 構造体が定義されているが、そのフィールドで使用されている "
14693 "I<struct timeval> 型は I<E<lt>sys/time.hE<gt>> で定義されている)。"
14694
14695 #. type: Plain text
14696 #: build/C/man2/wait4.2:165
14697 msgid ""
14698 "On Linux, B<wait3>()  is a library function implemented on top of the "
14699 "B<wait4>()  system call."
14700 msgstr ""
14701 "Linux では、 B<wait3>()  はライブラリ関数であり、 B<wait4>()  システムコール"
14702 "を使って実装されている。"
14703
14704 #. type: Plain text
14705 #: build/C/man2/wait4.2:172
14706 msgid ""
14707 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14708 "B<signal>(7)"
14709 msgstr ""
14710 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14711 "B<signal>(7)"
14712
14713 #~ msgid "2014-02-11"
14714 #~ msgstr "2014-02-11"
14715
14716 #~ msgid "2014-02-25"
14717 #~ msgstr "2014-02-25"
14718
14719 #~ msgid "2014-04-27"
14720 #~ msgstr "2014-04-27"
14721
14722 #~ msgid ""
14723 #~ "The I<sa_restorer> element is obsolete and should not be used.  POSIX "
14724 #~ "does not specify a I<sa_restorer> element."
14725 #~ msgstr ""
14726 #~ "I<sa_restorer> 要素は廃止予定であり使用すべきではない。 POSIX には "
14727 #~ "I<sa_restorer> 要素に関する規定はない。"
14728
14729 #~ msgid "2013-07-30"
14730 #~ msgstr "2013-07-30"
14731
14732 #~ msgid "B<int sigreturn(unsigned long >I<__unused>B<);>"
14733 #~ msgstr "B<int sigreturn(unsigned long >I<__unused>B<);>"
14734
14735 #~ msgid ""
14736 #~ "When the Linux kernel creates the stack frame for a signal handler, a "
14737 #~ "call to B<sigreturn>()  is inserted into the stack frame so that upon "
14738 #~ "return from the signal handler, B<sigreturn>()  will be called."
14739 #~ msgstr ""
14740 #~ "Linux カーネルは、 シグナル・ハンドラ用にスタック・フレームを作成する際、 "
14741 #~ "B<sigreturn>()  をスタック・フレームに挿入し、シグナル・ハンドラが返るとき"
14742 #~ "に B<sigreturn>()  が呼ばれるようにする。"
14743
14744 #~ msgid "FILES"
14745 #~ msgstr "ファイル"
14746
14747 #~ msgid "/usr/src/linux/arch/i386/kernel/signal.c"
14748 #~ msgstr "/usr/src/linux/arch/i386/kernel/signal.c"
14749
14750 #~ msgid "/usr/src/linux/arch/alpha/kernel/entry.S"
14751 #~ msgstr "/usr/src/linux/arch/alpha/kernel/entry.S"
14752
14753 #~ msgid ""
14754 #~ "B<sigreturn>()  is specific to Linux and should not be used in programs "
14755 #~ "intended to be portable."
14756 #~ msgstr ""
14757 #~ "B<sigreturn>()  は Linux 特有であり、移植を意図したプログラムでは使用して"
14758 #~ "はいけない。"
14759
14760 #~ msgid "2014-05-28"
14761 #~ msgstr "2014-05-28"
14762
14763 #~ msgid ""
14764 #~ "If I<tgid> is specified as -1, B<tgkill>()  is equivalent to B<tkill>()."
14765 #~ msgstr ""
14766 #~ "I<tgid> に -1 が指定された場合、 B<tgkill>()  は B<tkill>()  と等価であ"
14767 #~ "る。"
14768
14769 #~ msgid "2010-08-30"
14770 #~ msgstr "2010-08-30"
14771
14772 #~ msgid "Underlying Linux system calls"
14773 #~ msgstr "下層にある Linux のシステムコール"
14774
14775 #~ msgid "2012-10-01"
14776 #~ msgstr "2012-10-01"
14777
14778 #~ msgid ""
14779 #~ "struct itimerval {\n"
14780 #~ "    struct timeval it_interval; /* next value */\n"
14781 #~ "    struct timeval it_value;    /* current value */\n"
14782 #~ "};\n"
14783 #~ msgstr ""
14784 #~ "struct itimerval {\n"
14785 #~ "    struct timeval it_interval; /* next value */\n"
14786 #~ "    struct timeval it_value;    /* current value */\n"
14787 #~ "};\n"
14788
14789 #~ msgid ""
14790 #~ "The B<signal>()  function in Linux libc4 and libc5 provide System\\ V "
14791 #~ "semantics.  If one on a libc5 system includes I<E<lt>bsd/signal.hE<gt>> "
14792 #~ "instead of I<E<lt>signal.hE<gt>>, then B<signal>()  provides BSD "
14793 #~ "semantics."
14794 #~ msgstr ""
14795 #~ "Linux の libc4 と libc5 の B<signal>()  関数は System\\ V 方式である。 "
14796 #~ "libc5 システムにおいて I<E<lt>signal.hE<gt>> のかわりに I<E<lt>bsd/signal."
14797 #~ "hE<gt>> をインクルードすると、 B<signal>()  は B<__bsd_signal>()  に再定義"
14798 #~ "され、 B<signal>()  は BSD 方式となる。"
14799
14800 #~ msgid "2009-01-13"
14801 #~ msgstr "2009-01-13"
14802
14803 #~ msgid "2014-01-07"
14804 #~ msgstr "2014-01-07"
14805
14806 #~ msgid "Libc4 and libc5 know only about the BSD version."
14807 #~ msgstr "libc4 と libc5 には BSD 版しかない。"
14808
14809 #~ msgid "2013-09-04"
14810 #~ msgstr "2013-09-04"
14811
14812 #~ msgid "2014-01-20"
14813 #~ msgstr "2014-01-20"
14814
14815 #~ msgid "2014-03-24"
14816 #~ msgstr "2014-03-24"