OSDN Git Service

Translation snapshot for LDP v3.76
[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-05 03:46+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 msgid ""
433 "This page is part of release 3.76 of the Linux I<man-pages> project.  A "
434 "description of the project, information about reporting bugs, and the latest "
435 "version of this page, can be found at \\%http://www.kernel.org/doc/man-"
436 "pages/."
437 msgstr "この man ページは Linux I<man-pages> プロジェクトのリリース 3.76 の一部である。 プロジェクトの説明とバグ報告に関する情報は \\%http://www.kernel.org/doc/man-pages/ に書かれている。"
438
439 #. type: TH
440 #: build/C/man2/eventfd.2:22
441 #, no-wrap
442 msgid "EVENTFD"
443 msgstr "EVENTFD"
444
445 #. type: TH
446 #: build/C/man2/eventfd.2:22 build/C/man2/getitimer.2:12
447 #: build/C/man3/profil.3:28 build/C/man2/signalfd.2:20
448 #, no-wrap
449 msgid "2014-07-08"
450 msgstr "2014-07-08"
451
452 #. type: TH
453 #: build/C/man2/eventfd.2:22 build/C/man2/getitimer.2:12
454 #: build/C/man2/kill.2:44 build/C/man2/killpg.2:42 build/C/man2/pause.2:30
455 #: build/C/man2/prctl.2:52 build/C/man3/profil.3:28
456 #: build/C/man2/restart_syscall.2:33 build/C/man2/rt_sigqueueinfo.2:25
457 #: build/C/man2/sgetmask.2:26 build/C/man2/sigaction.2:47
458 #: build/C/man2/sigaltstack.2:27 build/C/man2/signal.2:36
459 #: build/C/man7/signal.7:46 build/C/man2/signalfd.2:20
460 #: build/C/man3/sigpause.3:25 build/C/man2/sigpending.2:29
461 #: build/C/man2/sigprocmask.2:29 build/C/man3/sigqueue.3:28
462 #: build/C/man2/sigreturn.2:30 build/C/man3/sigset.3:26
463 #: build/C/man3/sigsetops.3:31 build/C/man2/sigsuspend.2:29
464 #: build/C/man3/sigvec.3:26 build/C/man3/sigwait.3:26
465 #: build/C/man2/sigwaitinfo.2:25 build/C/man2/timer_create.2:33
466 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
467 #: build/C/man2/timer_settime.2:26 build/C/man2/timerfd_create.2:22
468 #: build/C/man2/tkill.2:29 build/C/man2/wait.2:49 build/C/man2/wait4.2:33
469 #, no-wrap
470 msgid "Linux"
471 msgstr "Linux"
472
473 #. type: Plain text
474 #: build/C/man2/eventfd.2:25
475 msgid "eventfd - create a file descriptor for event notification"
476 msgstr "eventfd - イベント通知用のファイルディスクリプタを生成する"
477
478 #. type: Plain text
479 #: build/C/man2/eventfd.2:27
480 msgid "B<#include E<lt>sys/eventfd.hE<gt>>"
481 msgstr "B<#include E<lt>sys/eventfd.hE<gt>>"
482
483 #. type: Plain text
484 #: build/C/man2/eventfd.2:29
485 msgid "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
486 msgstr "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
487
488 #. type: Plain text
489 #: build/C/man2/eventfd.2:39
490 msgid ""
491 "B<eventfd>()  creates an \"eventfd object\" that can be used as an event "
492 "wait/notify mechanism by user-space applications, and by the kernel to "
493 "notify user-space applications of events.  The object contains an unsigned "
494 "64-bit integer (I<uint64_t>)  counter that is maintained by the kernel.  "
495 "This counter is initialized with the value specified in the argument "
496 "I<initval>."
497 msgstr ""
498 "B<eventfd>()  は \"eventfd オブジェクト\" を生成する。 eventfd オブジェクトは"
499 "ユーザ空間アプリケーションがイベント待ち受け/通知用の 仕組みとして使うことが"
500 "できる。また、カーネルがユーザ空間アプリケーションに イベントを通知するために"
501 "も使うことができる。 このオブジェクトには、unsigned の 64 ビット整数 "
502 "(I<uint64_t>)  型のカウンタが含まれており、このカウンタはカーネルにより管理さ"
503 "れる。 このカウンタは I<initval> 引き数で指定された値で初期化される。"
504
505 #. type: Plain text
506 #: build/C/man2/eventfd.2:44
507 msgid ""
508 "The following values may be bitwise ORed in I<flags> to change the behavior "
509 "of B<eventfd>():"
510 msgstr ""
511 "以下の値のいくつかをビット単位の論理和 (OR) で指定することで、 B<eventfd>() "
512 "の振舞いを変更することができる。"
513
514 #. type: TP
515 #: build/C/man2/eventfd.2:44
516 #, no-wrap
517 msgid "B<EFD_CLOEXEC> (since Linux 2.6.27)"
518 msgstr "B<EFD_CLOEXEC> (Linux 2.6.27 以降)"
519
520 #. type: Plain text
521 #: build/C/man2/eventfd.2:54 build/C/man2/signalfd.2:95
522 #: build/C/man2/timerfd_create.2:110
523 msgid ""
524 "Set the close-on-exec (B<FD_CLOEXEC>)  flag on the new file descriptor.  See "
525 "the description of the B<O_CLOEXEC> flag in B<open>(2)  for reasons why this "
526 "may be useful."
527 msgstr ""
528 "新しいファイルディスクリプタに対して close-on-exec (B<FD_CLOEXEC>)  フラグを"
529 "セットする。 このフラグが役に立つ理由については、 B<open>(2)  の "
530 "B<O_CLOEXEC> フラグの説明を参照のこと。"
531
532 #. type: TP
533 #: build/C/man2/eventfd.2:54
534 #, no-wrap
535 msgid "B<EFD_NONBLOCK> (since Linux 2.6.27)"
536 msgstr "B<EFD_NONBLOCK> (Linux 2.6.27 以降)"
537
538 #. type: Plain text
539 #: build/C/man2/eventfd.2:62 build/C/man2/signalfd.2:85
540 #: build/C/man2/timerfd_create.2:100
541 msgid ""
542 "Set the B<O_NONBLOCK> file status flag on the new open file description.  "
543 "Using this flag saves extra calls to B<fcntl>(2)  to achieve the same result."
544 msgstr ""
545 "新しく生成されるオープンファイル記述 (open file description) の "
546 "B<O_NONBLOCK> ファイルステータスフラグをセットする。 このフラグを使うこと"
547 "で、 B<O_NONBLOCK> をセットするために B<fcntl>(2)  を追加で呼び出す必要がなく"
548 "なる。"
549
550 #. type: TP
551 #: build/C/man2/eventfd.2:62
552 #, no-wrap
553 msgid "B<EFD_SEMAPHORE> (since Linux 2.6.30)"
554 msgstr "B<EFD_SEMAPHORE> (Linux 2.6.30 以降)"
555
556 #. type: Plain text
557 #: build/C/man2/eventfd.2:66
558 msgid ""
559 "Provide semaphore-like semantics for reads from the new file descriptor.  "
560 "See below."
561 msgstr ""
562 "新しいファイルディスクリプタからの読み出しにおいて、セマフォ風の動作を行う。 "
563 "下記参照。"
564
565 #. type: Plain text
566 #: build/C/man2/eventfd.2:70 build/C/man2/signalfd.2:99
567 msgid ""
568 "In Linux up to version 2.6.26, the I<flags> argument is unused, and must be "
569 "specified as zero."
570 msgstr ""
571 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
572 "しなければならない。"
573
574 #. type: Plain text
575 #: build/C/man2/eventfd.2:76
576 msgid ""
577 "As its return value, B<eventfd>()  returns a new file descriptor that can be "
578 "used to refer to the eventfd object.  The following operations can be "
579 "performed on the file descriptor:"
580 msgstr ""
581 "B<eventfd>()  は eventfd オブジェクトを参照するのに使用できる新しいファイル"
582 "ディスクリプタ を返す。返されたファイルディスクリプタに対しては以下の操作を実"
583 "行できる。"
584
585 #. type: TP
586 #: build/C/man2/eventfd.2:76 build/C/man2/signalfd.2:102
587 #: build/C/man2/timerfd_create.2:218
588 #, no-wrap
589 msgid "B<read>(2)"
590 msgstr "B<read>(2)"
591
592 #. type: Plain text
593 #: build/C/man2/eventfd.2:86
594 msgid ""
595 "Each successful B<read>(2)  returns an 8-byte integer.  A B<read>(2)  will "
596 "fail with the error B<EINVAL> if the size of the supplied buffer is less "
597 "than 8 bytes."
598 msgstr ""
599 "B<read>(2) は成功すると、8 バイトの整数を返す。 渡されたバッファの大きさが 8 "
600 "バイト未満の場合、 B<read>(2)  はエラー B<EINVAL> で失敗する。"
601
602 #. type: Plain text
603 #: build/C/man2/eventfd.2:91
604 msgid ""
605 "The value returned by B<read>(2)  is in host byte order\\(emthat is, the "
606 "native byte order for integers on the host machine."
607 msgstr ""
608 "B<read>(2) が返す値は、ホストバイトオーダ、つまり、そのホストマシンにおける整"
609 "数の通常のバイトオーダである。"
610
611 #. type: Plain text
612 #: build/C/man2/eventfd.2:98
613 msgid ""
614 "The semantics of B<read>(2)  depend on whether the eventfd counter currently "
615 "has a nonzero value and whether the B<EFD_SEMAPHORE> flag was specified when "
616 "creating the eventfd file descriptor:"
617 msgstr ""
618 "B<read>(2) の動作は、 eventfd カウンタの現在の値が 0 以外であるかと、 "
619 "eventfd ファイルディスクリプタを作成する際に B<EFD_SEMAPHORE> フラグが指定さ"
620 "れたか、により変化する。"
621
622 #. type: IP
623 #: build/C/man2/eventfd.2:99 build/C/man2/eventfd.2:106
624 #: build/C/man2/eventfd.2:113 build/C/man2/eventfd.2:158
625 #: build/C/man2/eventfd.2:168 build/C/man2/eventfd.2:178
626 #: build/C/man2/prctl.2:867 build/C/man2/prctl.2:872 build/C/man2/prctl.2:877
627 #: build/C/man2/prctl.2:887 build/C/man3/psignal.3:105
628 #: build/C/man3/psignal.3:109 build/C/man2/sigaction.2:309
629 #: build/C/man2/sigaction.2:324 build/C/man2/sigaction.2:340
630 #: build/C/man2/sigaction.2:355 build/C/man2/sigaction.2:402
631 #: build/C/man2/sigaction.2:438 build/C/man2/signal.2:68
632 #: build/C/man2/signal.2:73 build/C/man2/signal.2:80 build/C/man2/signal.2:224
633 #: build/C/man2/signal.2:228 build/C/man2/signal.2:244
634 #: build/C/man7/signal.7:149 build/C/man7/signal.7:157
635 #: build/C/man7/signal.7:615 build/C/man7/signal.7:617
636 #: build/C/man7/signal.7:638 build/C/man7/signal.7:672
637 #: build/C/man7/signal.7:676 build/C/man7/signal.7:683
638 #: build/C/man7/signal.7:701 build/C/man7/signal.7:707
639 #: build/C/man7/signal.7:714 build/C/man7/signal.7:719
640 #: build/C/man7/signal.7:723 build/C/man7/signal.7:742
641 #: build/C/man7/signal.7:756 build/C/man7/signal.7:767
642 #: build/C/man7/signal.7:774 build/C/man7/signal.7:783
643 #: build/C/man7/signal.7:791 build/C/man7/signal.7:797
644 #: build/C/man7/signal.7:817 build/C/man7/signal.7:831
645 #: build/C/man7/signal.7:842 build/C/man7/signal.7:845
646 #: build/C/man7/signal.7:848 build/C/man7/signal.7:851
647 #: build/C/man7/signal.7:858 build/C/man7/signal.7:864
648 #: build/C/man7/signal.7:868 build/C/man3/sigwait.3:62
649 #: build/C/man3/sigwait.3:67 build/C/man2/timer_create.2:218
650 #: build/C/man2/timer_create.2:221 build/C/man2/timer_create.2:224
651 #: build/C/man2/timer_create.2:228 build/C/man2/timer_create.2:231
652 #: build/C/man2/timer_create.2:246 build/C/man2/timer_create.2:250
653 #, no-wrap
654 msgid "*"
655 msgstr "*"
656
657 #. type: Plain text
658 #: build/C/man2/eventfd.2:106
659 msgid ""
660 "If B<EFD_SEMAPHORE> was not specified and the eventfd counter has a nonzero "
661 "value, then a B<read>(2)  returns 8 bytes containing that value, and the "
662 "counter's value is reset to zero."
663 msgstr ""
664 "B<EFD_SEMAPHORE> が指定されておらず、eventfd カウンタが 0 以外の値の場合、 "
665 "B<read>(2) はカウンタ値を格納した 8 バイトの値を返し、 カウンタ値は 0 にリ"
666 "セットされる。"
667
668 #. type: Plain text
669 #: build/C/man2/eventfd.2:113
670 msgid ""
671 "If B<EFD_SEMAPHORE> was specified and the eventfd counter has a nonzero "
672 "value, then a B<read>(2)  returns 8 bytes containing the value 1, and the "
673 "counter's value is decremented by 1."
674 msgstr ""
675 "B<EFD_SEMAPHORE> が指定されていて eventfd カウンタが 0 以外の値の場合、 "
676 "B<read>(2) は値 1 の 8 バイト値を返し、カウンタ値は 1 減算される。"
677
678 #. type: Plain text
679 #: build/C/man2/eventfd.2:123
680 msgid ""
681 "If the eventfd counter is zero at the time of the call to B<read>(2), then "
682 "the call either blocks until the counter becomes nonzero (at which time, the "
683 "B<read>(2)  proceeds as described above)  or fails with the error B<EAGAIN> "
684 "if the file descriptor has been made nonblocking."
685 msgstr ""
686 "B<read>(2) を呼び出した時点で eventfd カウンタが 0 の場合、 B<read>(2) はカウ"
687 "ンタが 0 以外になるまで停止 (block) する (0 以外になった時点で B<read>(2) は"
688 "上記で述べた通り実行を再開する)、 もしくはファイルディスクリプタが非停止 "
689 "(nonblocking) に設定されている場合はエラー B<EAGAIN> で失敗する。"
690
691 #. type: TP
692 #: build/C/man2/eventfd.2:124
693 #, no-wrap
694 msgid "B<write>(2)"
695 msgstr "B<write>(2)"
696
697 #. type: Plain text
698 #: build/C/man2/eventfd.2:141
699 msgid ""
700 "A B<write>(2)  call adds the 8-byte integer value supplied in its buffer to "
701 "the counter.  The maximum value that may be stored in the counter is the "
702 "largest unsigned 64-bit value minus 1 (i.e., 0xfffffffffffffffe).  If the "
703 "addition would cause the counter's value to exceed the maximum, then the "
704 "B<write>(2)  either blocks until a B<read>(2)  is performed on the file "
705 "descriptor, or fails with the error B<EAGAIN> if the file descriptor has "
706 "been made nonblocking."
707 msgstr ""
708 "B<write>(2)  は、引き数のバッファで渡された 8 バイトの整数値をカウンタに加算"
709 "する。 カウンタに格納可能な最大値は unsigned の 64 ビット整数の最大値から 1 "
710 "を引いた値 (すなわち 0xfffffffffffffffe) である。 加算を行うとカウンタ値が最"
711 "大値を超過する場合には、 そのファイルディスクリプタに対して B<read>(2)  が実"
712 "行されるまで、 B<write>(2)  は停止 (block) する、 もしくはファイルディスクリ"
713 "プタが非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗す"
714 "る。"
715
716 #. type: Plain text
717 #: build/C/man2/eventfd.2:148
718 msgid ""
719 "A B<write>(2)  will fail with the error B<EINVAL> if the size of the "
720 "supplied buffer is less than 8 bytes, or if an attempt is made to write the "
721 "value 0xffffffffffffffff."
722 msgstr ""
723 "渡されたバッファの大きさが 8 バイト未満の場合、もしくは 値 "
724 "0xffffffffffffffff を書き込もうとした場合、 B<write>(2)  はエラー B<EINVAL> "
725 "で失敗する。"
726
727 #. type: TP
728 #: build/C/man2/eventfd.2:148 build/C/man2/signalfd.2:140
729 #: build/C/man2/timerfd_create.2:251
730 #, no-wrap
731 msgid "B<poll>(2), B<select>(2) (and similar)"
732 msgstr "B<poll>(2), B<select>(2) (と同様の操作)"
733
734 #. type: Plain text
735 #: build/C/man2/eventfd.2:157
736 msgid ""
737 "The returned file descriptor supports B<poll>(2)  (and analogously "
738 "B<epoll>(7))  and B<select>(2), as follows:"
739 msgstr ""
740 "返されたファイルディスクリプタは、 B<poll>(2)  (B<epoll>(7)  も同じ) や "
741 "B<select>(2)  をサポートしており、以下のような動作をする。"
742
743 #. type: Plain text
744 #: build/C/man2/eventfd.2:168
745 msgid ""
746 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
747 "B<poll>(2)  B<POLLIN> flag)  if the counter has a value greater than 0."
748 msgstr ""
749 "カウンタが 0 より大きい値の場合、 ファイルディスクリプタは読み出し可能となる "
750 "(B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
751
752 #. type: Plain text
753 #: build/C/man2/eventfd.2:178
754 msgid ""
755 "The file descriptor is writable (the B<select>(2)  I<writefds> argument; the "
756 "B<poll>(2)  B<POLLOUT> flag)  if it is possible to write a value of at least "
757 "\"1\" without blocking."
758 msgstr ""
759 "少なくとも値 \"1\" を、停止 (block) を伴わずに書き込める場合、 ファイルディス"
760 "クリプタは書き込み可能となる (B<select>(2)  の I<writefds> 引き数や "
761 "B<poll>(2)  の B<POLLOUT> フラグ)。"
762
763 #. type: Plain text
764 #: build/C/man2/eventfd.2:198
765 msgid ""
766 "If an overflow of the counter value was detected, then B<select>(2)  "
767 "indicates the file descriptor as being both readable and writable, and "
768 "B<poll>(2)  returns a B<POLLERR> event.  As noted above, B<write>(2)  can "
769 "never overflow the counter.  However an overflow can occur if 2^64 eventfd "
770 "\"signal posts\" were performed by the KAIO subsystem (theoretically "
771 "possible, but practically unlikely).  If an overflow has occurred, then "
772 "B<read>(2)  will return that maximum I<uint64_t> value (i.e., "
773 "0xffffffffffffffff)."
774 msgstr ""
775 "カウンタ値のオーバーフローが検出された場合、 B<select>(2)  はファイルディスク"
776 "リプタは読み出し可能と書き込み可能の両方を通知し、 B<poll>(2)  は B<POLLERR> "
777 "イベントを返す。 上述の通り、 B<write>(2)  でカウンタがオーバーフローすること"
778 "は決してない。 しかしながら、 KAIO サブシステムによって 2^64 回の eventfd "
779 "\"signal posts\" が 実行された場合にはオーバーフローが起こり得る (理論的には"
780 "あり得るが、実用的にはあり得ない)。 オーバーフローが発生した場合、 "
781 "B<read>(2)  は I<uint64_t> の最大値 (すなわち 0xffffffffffffffff) を返す。"
782
783 #. type: Plain text
784 #: build/C/man2/eventfd.2:205
785 msgid ""
786 "The eventfd file descriptor also supports the other file-descriptor "
787 "multiplexing APIs: B<pselect>(2)  and B<ppoll>(2)."
788 msgstr ""
789 "eventfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
790 "である B<pselect>(2) と B<ppoll>(2) もサポートしている。"
791
792 #. type: TP
793 #: build/C/man2/eventfd.2:205 build/C/man2/signalfd.2:160
794 #: build/C/man2/timerfd_create.2:269
795 #, no-wrap
796 msgid "B<close>(2)"
797 msgstr "B<close>(2)"
798
799 #. type: Plain text
800 #: build/C/man2/eventfd.2:210
801 msgid ""
802 "When the file descriptor is no longer required it should be closed.  When "
803 "all file descriptors associated with the same eventfd object have been "
804 "closed, the resources for object are freed by the kernel."
805 msgstr ""
806 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
807 "る。 同じ eventfd オブジェクトに関連付けられたファイルディスクリプタが全て ク"
808 "ローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
809
810 #. type: Plain text
811 #: build/C/man2/eventfd.2:222
812 msgid ""
813 "A copy of the file descriptor created by B<eventfd>()  is inherited by the "
814 "child produced by B<fork>(2).  The duplicate file descriptor is associated "
815 "with the same eventfd object.  File descriptors created by B<eventfd>()  are "
816 "preserved across B<execve>(2), unless the close-on-exec flag has been set."
817 msgstr ""
818 "B<fork>(2) で生成された子プロセスは、 B<eventfd>() で生成されたファイルディス"
819 "クリプタのコピーを継承する。 複製されたファイルディスクリプタは同じ eventfd "
820 "オブジェクトに関連付けられる。 close-on-exec フラグが設定されていない場合、 "
821 "B<execve>(2) の前後で B<eventfd>() で生成されたファイルディスクリプタは保持さ"
822 "れる。"
823
824 #. type: Plain text
825 #: build/C/man2/eventfd.2:229
826 msgid ""
827 "On success, B<eventfd>()  returns a new eventfd file descriptor.  On error, "
828 "-1 is returned and I<errno> is set to indicate the error."
829 msgstr ""
830 "成功すると、 B<eventfd>()  は新規の eventfd ファイルディスクリプタを返す。 エ"
831 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
832
833 #. type: TP
834 #: build/C/man2/eventfd.2:230 build/C/man2/getitimer.2:142
835 #: build/C/man2/kill.2:106 build/C/man2/killpg.2:95 build/C/man2/prctl.2:829
836 #: build/C/man2/prctl.2:834 build/C/man2/prctl.2:846 build/C/man2/prctl.2:851
837 #: build/C/man2/prctl.2:860 build/C/man2/prctl.2:900 build/C/man2/prctl.2:910
838 #: build/C/man2/prctl.2:918 build/C/man2/prctl.2:929 build/C/man2/prctl.2:938
839 #: build/C/man2/prctl.2:952 build/C/man2/prctl.2:964 build/C/man2/prctl.2:975
840 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man2/s390_runtime_instr.2:66
841 #: build/C/man2/sigaction.2:681 build/C/man2/sigaltstack.2:142
842 #: build/C/man3/siginterrupt.3:84 build/C/man2/signal.2:106
843 #: build/C/man2/signalfd.2:271 build/C/man2/signalfd.2:279
844 #: build/C/man2/sigprocmask.2:107 build/C/man3/sigqueue.3:98
845 #: build/C/man3/sigsetops.3:128 build/C/man3/sigwait.3:75
846 #: build/C/man2/sigwaitinfo.2:129 build/C/man2/timer_create.2:181
847 #: build/C/man2/timer_delete.2:61 build/C/man2/timer_getoverrun.2:91
848 #: build/C/man2/timer_settime.2:191 build/C/man2/timer_settime.2:199
849 #: build/C/man2/timerfd_create.2:312 build/C/man2/timerfd_create.2:320
850 #: build/C/man2/timerfd_create.2:356 build/C/man2/timerfd_create.2:363
851 #: build/C/man2/timerfd_create.2:369 build/C/man2/tkill.2:93
852 #: build/C/man2/wait.2:418
853 #, no-wrap
854 msgid "B<EINVAL>"
855 msgstr "B<EINVAL>"
856
857 #. type: Plain text
858 #: build/C/man2/eventfd.2:234
859 msgid "An unsupported value was specified in I<flags>."
860 msgstr "I<flags> にサポートされていない値が指定された。"
861
862 #. type: TP
863 #: build/C/man2/eventfd.2:234 build/C/man2/signalfd.2:286
864 #: build/C/man2/timerfd_create.2:327
865 #, no-wrap
866 msgid "B<EMFILE>"
867 msgstr "B<EMFILE>"
868
869 #. type: Plain text
870 #: build/C/man2/eventfd.2:237
871 msgid "The per-process limit on open file descriptors has been reached."
872 msgstr ""
873 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
874
875 #. type: TP
876 #: build/C/man2/eventfd.2:237 build/C/man2/signalfd.2:289
877 #: build/C/man2/timerfd_create.2:330
878 #, no-wrap
879 msgid "B<ENFILE>"
880 msgstr "B<ENFILE>"
881
882 #. type: Plain text
883 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
884 #: build/C/man2/timerfd_create.2:334
885 msgid ""
886 "The system-wide limit on the total number of open files has been reached."
887 msgstr "オープン済みのファイル総数がシステム全体の上限に達していた。"
888
889 #. type: TP
890 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
891 #: build/C/man2/timerfd_create.2:334
892 #, no-wrap
893 msgid "B<ENODEV>"
894 msgstr "B<ENODEV>"
895
896 #. type: Plain text
897 #: build/C/man2/eventfd.2:249 build/C/man2/signalfd.2:296
898 #: build/C/man2/timerfd_create.2:337
899 msgid "Could not mount (internal) anonymous inode device."
900 msgstr "(カーネル内の) 無名 inode デバイスをマウントできなかった。"
901
902 #. type: TP
903 #: build/C/man2/eventfd.2:249 build/C/man2/s390_runtime_instr.2:73
904 #: build/C/man2/sigaltstack.2:147 build/C/man2/signalfd.2:296
905 #: build/C/man2/timer_create.2:189 build/C/man2/timerfd_create.2:337
906 #, no-wrap
907 msgid "B<ENOMEM>"
908 msgstr "B<ENOMEM>"
909
910 #. type: Plain text
911 #: build/C/man2/eventfd.2:253
912 msgid "There was insufficient memory to create a new eventfd file descriptor."
913 msgstr ""
914 "新しい eventfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
915
916 #. type: SH
917 #: build/C/man2/eventfd.2:253 build/C/man2/prctl.2:1065
918 #: build/C/man3/psignal.3:95 build/C/man2/restart_syscall.2:96
919 #: build/C/man2/rt_sigqueueinfo.2:169 build/C/man2/s390_runtime_instr.2:79
920 #: build/C/man2/sgetmask.2:66 build/C/man2/signalfd.2:299
921 #: build/C/man3/sigqueue.3:112 build/C/man3/sigvec.3:234
922 #: build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:65
923 #: build/C/man2/timer_getoverrun.2:95 build/C/man2/timer_settime.2:205
924 #: build/C/man2/timerfd_create.2:375 build/C/man2/tkill.2:104
925 #, no-wrap
926 msgid "VERSIONS"
927 msgstr "バージョン"
928
929 #.  eventfd() is in glibc 2.7, but reportedly does not build
930 #. type: Plain text
931 #: build/C/man2/eventfd.2:266
932 msgid ""
933 "B<eventfd>()  is available on Linux since kernel 2.6.22.  Working support is "
934 "provided in glibc since version 2.8.  The B<eventfd2>()  system call (see "
935 "NOTES) is available on Linux since kernel 2.6.27.  Since version 2.9, the "
936 "glibc B<eventfd>()  wrapper will employ the B<eventfd2>()  system call, if "
937 "it is supported by the kernel."
938 msgstr ""
939 "B<eventfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
940 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<eventfd2>()  "
941 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
942 "る。 バージョン 2.9 以降では、glibc の B<eventfd>()  のラッパー関数は、カーネ"
943 "ルが対応していれば B<eventfd2>()  システムコールを利用する。"
944
945 #. type: Plain text
946 #: build/C/man2/eventfd.2:271
947 msgid "B<eventfd>()  and B<eventfd2>()  are Linux-specific."
948 msgstr "B<eventfd>()  と B<eventfd2>()  は Linux 固有である。"
949
950 #. type: Plain text
951 #: build/C/man2/eventfd.2:279
952 msgid ""
953 "Applications can use an eventfd file descriptor instead of a pipe (see "
954 "B<pipe>(2))  in all cases where a pipe is used simply to signal events.  The "
955 "kernel overhead of an eventfd file descriptor is much lower than that of a "
956 "pipe, and only one file descriptor is required (versus the two required for "
957 "a pipe)."
958 msgstr ""
959 "アプリケーションは、パイプをイベントを通知するためだけに使用している 全ての場"
960 "面において、パイプの代わりに eventfd ファイルディスクリプタを 使用することが"
961 "できる。 eventfd ファイルディスクリプタを使う方が、パイプを使う場合に比べて "
962 "カーネルでのオーバヘッドは比べるとずっと小さく、ファイルディスクリプタも 一つ"
963 "しか必要としない (パイプの場合は二つ必要である)。"
964
965 #.  or eventually syslets/threadlets
966 #. type: Plain text
967 #: build/C/man2/eventfd.2:285
968 msgid ""
969 "When used in the kernel, an eventfd file descriptor can provide a bridge "
970 "from kernel to user space, allowing, for example, functionalities like KAIO "
971 "(kernel AIO)  to signal to a file descriptor that some operation is complete."
972 msgstr ""
973 "カーネル内で使用すると、eventfd ファイルディスクリプタはカーネル空間からユー"
974 "ザ空間へのブリッジ機能を提供することができ、 例えば KAIO (kernel AIO)  のよう"
975 "な機能が、あるファイルディスクリプタに何らかの操作が完了したことを 通知するこ"
976 "とができる。"
977
978 #. type: Plain text
979 #: build/C/man2/eventfd.2:302
980 msgid ""
981 "A key point about an eventfd file descriptor is that it can be monitored "
982 "just like any other file descriptor using B<select>(2), B<poll>(2), or "
983 "B<epoll>(7).  This means that an application can simultaneously monitor the "
984 "readiness of \"traditional\" files and the readiness of other kernel "
985 "mechanisms that support the eventfd interface.  (Without the B<eventfd>()  "
986 "interface, these mechanisms could not be multiplexed via B<select>(2), "
987 "B<poll>(2), or B<epoll>(7).)"
988 msgstr ""
989 "eventfd ファイルディスクリプタの重要な点は、 eventfd ファイルディスクリプタ"
990 "が B<select>(2), B<poll>(2), B<epoll>(7)  を使って他のファイルディスクリプタ"
991 "と全く同様に監視できる点である。 このことは、アプリケーションは「従来の "
992 "(traditional)」 ファイルの状態変化と eventfd インタフェースをサポートする他の"
993 "カーネル機構の状態変化を同時に監視 できることを意味する (B<eventfd>()  インタ"
994 "フェースがない時には、これらのカーネル機構は B<select>(2), B<poll>(2), "
995 "B<epoll>(7)  経由で多重することはできなかった)。"
996
997 #. type: SS
998 #: build/C/man2/eventfd.2:302 build/C/man2/signalfd.2:326
999 #: build/C/man2/sigwaitinfo.2:183 build/C/man2/timer_create.2:243
1000 #: build/C/man2/wait.2:525
1001 #, no-wrap
1002 msgid "C library/kernel ABI differences"
1003 msgstr "C ライブラリとカーネル ABI の違い"
1004
1005 #. type: Plain text
1006 #: build/C/man2/eventfd.2:316
1007 msgid ""
1008 "There are two underlying Linux system calls: B<eventfd>()  and the more "
1009 "recent B<eventfd2>().  The former system call does not implement a I<flags> "
1010 "argument.  The latter system call implements the I<flags> values described "
1011 "above.  The glibc wrapper function will use B<eventfd2>()  where it is "
1012 "available."
1013 msgstr ""
1014 "下層にある Linux システムコールは二種類あり、 B<eventfd>()  と、もっと新しい "
1015 "B<eventfd2>()  である。 B<eventfd>()  は I<flags> 引き数を実装していない。 "
1016 "B<eventfd2>()  では上記の値の I<flags> が実装されている。 glibc のラッパー関"
1017 "数は、 B<eventfd2>()  が利用可能であれば、これを使用する。"
1018
1019 #. type: SS
1020 #: build/C/man2/eventfd.2:316
1021 #, no-wrap
1022 msgid "Additional glibc features"
1023 msgstr "glibc の追加機能"
1024
1025 #. type: Plain text
1026 #: build/C/man2/eventfd.2:320
1027 msgid ""
1028 "The GNU C library defines an additional type, and two functions that attempt "
1029 "to abstract some of the details of reading and writing on an eventfd file "
1030 "descriptor:"
1031 msgstr ""
1032 "GNU C ライブラリは、eventfd ファイルディスクリプタの読み出しと書き込みに を関"
1033 "する詳細のいくつか抽象化するために、一つの型と、二つの関数を追加で 定義してい"
1034 "る。"
1035
1036 #. type: Plain text
1037 #: build/C/man2/eventfd.2:324
1038 #, no-wrap
1039 msgid "typedef uint64_t eventfd_t;\n"
1040 msgstr "typedef uint64_t eventfd_t;\n"
1041
1042 #. type: Plain text
1043 #: build/C/man2/eventfd.2:327
1044 #, no-wrap
1045 msgid ""
1046 "int eventfd_read(int fd, eventfd_t *value);\n"
1047 "int eventfd_write(int fd, eventfd_t value);\n"
1048 msgstr ""
1049 "int eventfd_read(int fd, eventfd_t *value);\n"
1050 "int eventfd_write(int fd, eventfd_t value);\n"
1051
1052 #. type: Plain text
1053 #: build/C/man2/eventfd.2:334
1054 msgid ""
1055 "The functions perform the read and write operations on an eventfd file "
1056 "descriptor, returning 0 if the correct number of bytes was transferred, or "
1057 "-1 otherwise."
1058 msgstr ""
1059 "これらの関数は、eventfd ファイルディスクリプタに対する読み出しと 書き込みの操"
1060 "作を実行し、正しいバイト数が転送された場合には 0 を返し、そうでない場合は -1 "
1061 "を返す。"
1062
1063 #. type: SH
1064 #: build/C/man2/eventfd.2:334 build/C/man2/sigaction.2:801
1065 #: build/C/man2/sigaltstack.2:217 build/C/man2/signalfd.2:360
1066 #: build/C/man3/sigwait.3:91 build/C/man2/timer_create.2:264
1067 #: build/C/man2/timer_getoverrun.2:128 build/C/man2/timer_settime.2:209
1068 #: build/C/man2/timerfd_create.2:386 build/C/man2/wait.2:552
1069 #, no-wrap
1070 msgid "EXAMPLE"
1071 msgstr "例"
1072
1073 #. type: Plain text
1074 #: build/C/man2/eventfd.2:343
1075 msgid ""
1076 "The following program creates an eventfd file descriptor and then forks to "
1077 "create a child process.  While the parent briefly sleeps, the child writes "
1078 "each of the integers supplied in the program's command-line arguments to the "
1079 "eventfd file descriptor.  When the parent has finished sleeping, it reads "
1080 "from the eventfd file descriptor."
1081 msgstr ""
1082 "以下のプログラムは eventfd ファイルディスクリプタを生成し、 その後 fork を実"
1083 "行して子プロセスを生成する。 親プロセスが少しの間 sleep する間に、子プロセス"
1084 "は プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ eventfd "
1085 "ファイルディスクリプタに書き込む。 親プロセスは sleep を完了すると eventfd "
1086 "ファイルディスクリプタから 読み出しを行う。"
1087
1088 #. type: Plain text
1089 #: build/C/man2/eventfd.2:345
1090 msgid "The following shell session shows a sample run of the program:"
1091 msgstr "以下に示すシェルセッションにこのプログラムの使い方を示す。"
1092
1093 #. type: Plain text
1094 #: build/C/man2/eventfd.2:357
1095 #, no-wrap
1096 msgid ""
1097 "$B< ./a.out 1 2 4 7 14>\n"
1098 "Child writing 1 to efd\n"
1099 "Child writing 2 to efd\n"
1100 "Child writing 4 to efd\n"
1101 "Child writing 7 to efd\n"
1102 "Child writing 14 to efd\n"
1103 "Child completed write loop\n"
1104 "Parent about to read\n"
1105 "Parent read 28 (0x1c) from efd\n"
1106 msgstr ""
1107 "$B< ./a.out 1 2 4 7 14>\n"
1108 "Child writing 1 to efd\n"
1109 "Child writing 2 to efd\n"
1110 "Child writing 4 to efd\n"
1111 "Child writing 7 to efd\n"
1112 "Child writing 14 to efd\n"
1113 "Child completed write loop\n"
1114 "Parent about to read\n"
1115 "Parent read 28 (0x1c) from efd\n"
1116
1117 #. type: SS
1118 #: build/C/man2/eventfd.2:359 build/C/man2/signalfd.2:383
1119 #: build/C/man2/timer_create.2:295 build/C/man2/timerfd_create.2:414
1120 #: build/C/man2/wait.2:587
1121 #, no-wrap
1122 msgid "Program source"
1123 msgstr "プログラムのソース"
1124
1125 #. type: Plain text
1126 #: build/C/man2/eventfd.2:367
1127 #, no-wrap
1128 msgid ""
1129 "#include E<lt>sys/eventfd.hE<gt>\n"
1130 "#include E<lt>unistd.hE<gt>\n"
1131 "#include E<lt>stdlib.hE<gt>\n"
1132 "#include E<lt>stdio.hE<gt>\n"
1133 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1134 msgstr ""
1135 "#include E<lt>sys/eventfd.hE<gt>\n"
1136 "#include E<lt>unistd.hE<gt>\n"
1137 "#include E<lt>stdlib.hE<gt>\n"
1138 "#include E<lt>stdio.hE<gt>\n"
1139 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1140
1141 #. type: Plain text
1142 #: build/C/man2/eventfd.2:370 build/C/man2/signalfd.2:394
1143 #, no-wrap
1144 msgid ""
1145 "#define handle_error(msg) \\e\n"
1146 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1147 msgstr ""
1148 "#define handle_error(msg) \\e\n"
1149 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1150
1151 #. type: Plain text
1152 #: build/C/man2/eventfd.2:377
1153 #, no-wrap
1154 msgid ""
1155 "int\n"
1156 "main(int argc, char *argv[])\n"
1157 "{\n"
1158 "    int efd, j;\n"
1159 "    uint64_t u;\n"
1160 "    ssize_t s;\n"
1161 msgstr ""
1162 "int\n"
1163 "main(int argc, char *argv[])\n"
1164 "{\n"
1165 "    int efd, j;\n"
1166 "    uint64_t u;\n"
1167 "    ssize_t s;\n"
1168
1169 #. type: Plain text
1170 #: build/C/man2/eventfd.2:382
1171 #, no-wrap
1172 msgid ""
1173 "    if (argc E<lt> 2) {\n"
1174 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1175 "        exit(EXIT_FAILURE);\n"
1176 "    }\n"
1177 msgstr ""
1178 "    if (argc E<lt> 2) {\n"
1179 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1180 "        exit(EXIT_FAILURE);\n"
1181 "    }\n"
1182
1183 #. type: Plain text
1184 #: build/C/man2/eventfd.2:386
1185 #, no-wrap
1186 msgid ""
1187 "    efd = eventfd(0, 0);\n"
1188 "    if (efd == -1)\n"
1189 "        handle_error(\"eventfd\");\n"
1190 msgstr ""
1191 "    efd = eventfd(0, 0);\n"
1192 "    if (efd == -1)\n"
1193 "        handle_error(\"eventfd\");\n"
1194
1195 #. type: Plain text
1196 #: build/C/man2/eventfd.2:398
1197 #, no-wrap
1198 msgid ""
1199 "    switch (fork()) {\n"
1200 "    case 0:\n"
1201 "        for (j = 1; j E<lt> argc; j++) {\n"
1202 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1203 "            u = strtoull(argv[j], NULL, 0);\n"
1204 "                    /* strtoull() allows various bases */\n"
1205 "            s = write(efd, &u, sizeof(uint64_t));\n"
1206 "            if (s != sizeof(uint64_t))\n"
1207 "                handle_error(\"write\");\n"
1208 "        }\n"
1209 "        printf(\"Child completed write loop\\en\");\n"
1210 msgstr ""
1211 "    switch (fork()) {\n"
1212 "    case 0:\n"
1213 "        for (j = 1; j E<lt> argc; j++) {\n"
1214 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1215 "            u = strtoull(argv[j], NULL, 0);\n"
1216 "                    /* strtoull() allows various bases */\n"
1217 "            s = write(efd, &u, sizeof(uint64_t));\n"
1218 "            if (s != sizeof(uint64_t))\n"
1219 "                handle_error(\"write\");\n"
1220 "        }\n"
1221 "        printf(\"Child completed write loop\\en\");\n"
1222
1223 #. type: Plain text
1224 #: build/C/man2/eventfd.2:400
1225 #, no-wrap
1226 msgid "        exit(EXIT_SUCCESS);\n"
1227 msgstr "        exit(EXIT_SUCCESS);\n"
1228
1229 #. type: Plain text
1230 #: build/C/man2/eventfd.2:403
1231 #, no-wrap
1232 msgid ""
1233 "    default:\n"
1234 "        sleep(2);\n"
1235 msgstr ""
1236 "    default:\n"
1237 "        sleep(2);\n"
1238
1239 #. type: Plain text
1240 #: build/C/man2/eventfd.2:411
1241 #, no-wrap
1242 msgid ""
1243 "        printf(\"Parent about to read\\en\");\n"
1244 "        s = read(efd, &u, sizeof(uint64_t));\n"
1245 "        if (s != sizeof(uint64_t))\n"
1246 "            handle_error(\"read\");\n"
1247 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1248 "                (unsigned long long) u, (unsigned long long) u);\n"
1249 "        exit(EXIT_SUCCESS);\n"
1250 msgstr ""
1251 "        printf(\"Parent about to read\\en\");\n"
1252 "        s = read(efd, &u, sizeof(uint64_t));\n"
1253 "        if (s != sizeof(uint64_t))\n"
1254 "            handle_error(\"read\");\n"
1255 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1256 "                (unsigned long long) u, (unsigned long long) u);\n"
1257 "        exit(EXIT_SUCCESS);\n"
1258
1259 #. type: Plain text
1260 #: build/C/man2/eventfd.2:416
1261 #, no-wrap
1262 msgid ""
1263 "    case -1:\n"
1264 "        handle_error(\"fork\");\n"
1265 "    }\n"
1266 "}\n"
1267 msgstr ""
1268 "    case -1:\n"
1269 "        handle_error(\"fork\");\n"
1270 "    }\n"
1271 "}\n"
1272
1273 #. type: Plain text
1274 #: build/C/man2/eventfd.2:428
1275 msgid ""
1276 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), "
1277 "B<signalfd>(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), "
1278 "B<sem_overview>(7)"
1279 msgstr ""
1280 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), "
1281 "B<signalfd>(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), "
1282 "B<sem_overview>(7)"
1283
1284 #. type: TH
1285 #: build/C/man2/getitimer.2:12
1286 #, no-wrap
1287 msgid "GETITIMER"
1288 msgstr "GETITIMER"
1289
1290 #. type: Plain text
1291 #: build/C/man2/getitimer.2:15
1292 msgid "getitimer, setitimer - get or set value of an interval timer"
1293 msgstr "getitimer, setitimer - インターバル・タイマーの値を取得または設定する"
1294
1295 #. type: Plain text
1296 #: build/C/man2/getitimer.2:18
1297 #, no-wrap
1298 msgid "B<#include E<lt>sys/time.hE<gt>>\n"
1299 msgstr "B<#include E<lt>sys/time.hE<gt>>\n"
1300
1301 #. type: Plain text
1302 #: build/C/man2/getitimer.2:20
1303 #, no-wrap
1304 msgid "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1305 msgstr "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1306
1307 #. type: Plain text
1308 #: build/C/man2/getitimer.2:23
1309 #, no-wrap
1310 msgid ""
1311 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1312 "B<              struct itimerval *>I<old_value>B<);>\n"
1313 msgstr ""
1314 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1315 "B<              struct itimerval *>I<old_value>B<);>\n"
1316
1317 #. type: Plain text
1318 #: build/C/man2/getitimer.2:29
1319 #, fuzzy
1320 #| msgid ""
1321 #| "The system provides each process with three interval timers, each "
1322 #| "decrementing in a distinct time domain.  When any timer expires, a signal "
1323 #| "is sent to the process, and the timer (potentially) restarts."
1324 msgid ""
1325 "The system provides each process with three interval timers, each "
1326 "decrementing in a distinct time domain.  When a timer expires, a signal is "
1327 "sent to the process, and the timer is reset to the specified interval (if "
1328 "nonzero)."
1329 msgstr ""
1330 "システムは 1 個のプロセスにつき 3 個のインターバル・タイマーを提供する。 それ"
1331 "ぞれのタイマーは別々の時間領域で減少する。 どのタイマーも満了するとプロセスに"
1332 "シグナルが送られ、 タイマーは (設定によっては) 再び開始される。"
1333
1334 #. type: TP
1335 #: build/C/man2/getitimer.2:29
1336 #, no-wrap
1337 msgid "B<ITIMER_REAL>"
1338 msgstr "B<ITIMER_REAL>"
1339
1340 #. type: Plain text
1341 #: build/C/man2/getitimer.2:34
1342 msgid "decrements in real time, and delivers B<SIGALRM> upon expiration."
1343 msgstr "実時間 (real time) で減少し、満了すると B<SIGALRM> が送られる。"
1344
1345 #. type: TP
1346 #: build/C/man2/getitimer.2:34
1347 #, no-wrap
1348 msgid "B<ITIMER_VIRTUAL>"
1349 msgstr "B<ITIMER_VIRTUAL>"
1350
1351 #. type: Plain text
1352 #: build/C/man2/getitimer.2:39
1353 msgid ""
1354 "decrements only when the process is executing, and delivers B<SIGVTALRM> "
1355 "upon expiration."
1356 msgstr ""
1357 "プロセスが実行されている間のみ減少し、満了すると B<SIGVTALRM> が送られる。"
1358
1359 #. type: TP
1360 #: build/C/man2/getitimer.2:39
1361 #, no-wrap
1362 msgid "B<ITIMER_PROF>"
1363 msgstr "B<ITIMER_PROF>"
1364
1365 #. type: Plain text
1366 #: build/C/man2/getitimer.2:49
1367 msgid ""
1368 "decrements both when the process executes and when the system is executing "
1369 "on behalf of the process.  Coupled with B<ITIMER_VIRTUAL>, this timer is "
1370 "usually used to profile the time spent by the application in user and kernel "
1371 "space.  B<SIGPROF> is delivered upon expiration."
1372 msgstr ""
1373 "プロセスが実行されていて、 かつシステムがそのプロセスのために処理を行なってい"
1374 "る間に減少する。 多くの場合、このタイマーは B<ITIMER_VIRTUAL> と組み合わされ"
1375 "て、アプリケーションがカーネル空間とユーザー空間で どれだけの時間を過ごしたか"
1376 "をプロファイルするのに使用される。 満了すると B<SIGPROF> が送られる。"
1377
1378 #. type: Plain text
1379 #: build/C/man2/getitimer.2:51
1380 msgid "Timer values are defined by the following structures:"
1381 msgstr "タイマーの値は以下の構造体によって定義される:"
1382
1383 #. type: Plain text
1384 #: build/C/man2/getitimer.2:59
1385 #, no-wrap
1386 msgid ""
1387 "struct itimerval {\n"
1388 "    struct timeval it_interval; /* Interval for periodic timer */\n"
1389 "    struct timeval it_value;    /* Time until next expiration */\n"
1390 "};\n"
1391 msgstr ""
1392 "struct itimerval {\n"
1393 "    struct timeval it_interval; /* Interval for periodic timer */\n"
1394 "    struct timeval it_value;    /* Time until next expiration */\n"
1395 "};\n"
1396
1397 #. type: Plain text
1398 #: build/C/man2/getitimer.2:64
1399 #, no-wrap
1400 msgid ""
1401 "struct timeval {\n"
1402 "    time_t      tv_sec;         /* seconds */\n"
1403 "    suseconds_t tv_usec;        /* microseconds */\n"
1404 "};\n"
1405 msgstr ""
1406 "struct timeval {\n"
1407 "    time_t      tv_sec;         /* seconds */\n"
1408 "    suseconds_t tv_usec;        /* microseconds */\n"
1409 "};\n"
1410
1411 #. type: Plain text
1412 #: build/C/man2/getitimer.2:90
1413 #, fuzzy
1414 #| msgid ""
1415 #| "The function B<getitimer>()  fills the structure pointed to by "
1416 #| "I<curr_value> with the current setting for the timer specified by "
1417 #| "I<which> (one of B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>).  "
1418 #| "The element I<it_value> is set to the amount of time remaining on the "
1419 #| "timer, or zero if the timer is disabled.  Similarly, I<it_interval> is "
1420 #| "set to the reset value."
1421 msgid ""
1422 "The function B<getitimer>()  fills the structure pointed to by I<curr_value> "
1423 "with the current value (i.e., the amount of time remaining until the next "
1424 "expiration)  of the timer specified by I<which> (one of B<ITIMER_REAL>, "
1425 "B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>).  The subfields of the field "
1426 "I<it_value> are set to the amount of time remaining on the timer, or zero if "
1427 "the timer is disabled.  The I<it_interval> field is set to the timer "
1428 "interval (period); a value of zero returned in (both subfields of) this "
1429 "field indicates that this is a single-shot timer."
1430 msgstr ""
1431 "B<getitimer>()  関数は、 I<which> で指定されたタイマー (B<ITIMER_REAL>, "
1432 "B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれか) の現在の設定を、 I<curr_value> で"
1433 "指定された構造体に格納する。 I<it_value> 要素にはタイマーの残り時間が設定され"
1434 "る。タイマーがオフの場合は ゼロが設定される。同様に I<it_interval> には初期値"
1435 "が設定される。"
1436
1437 #. type: Plain text
1438 #: build/C/man2/getitimer.2:101
1439 #, fuzzy
1440 #| msgid ""
1441 #| "The function B<setitimer>()  sets the specified timer to the value in "
1442 #| "I<new_value>.  If I<old_value> is non-NULL, the old value of the timer is "
1443 #| "stored there."
1444 msgid ""
1445 "The function B<setitimer>()  sets the specified timer to the value in "
1446 "I<new_value>.  If I<old_value> is non-NULL, the old value of the timer (i."
1447 "e., the same information as returned by B<getitimer>())  is stored there."
1448 msgstr ""
1449 "B<setitimer>()  関数は指定されたタイマーに I<new_value> の値を設定する。 "
1450 "I<old_value> が NULL 以外の場合、タイマーの古い値が I<old_value> に格納され"
1451 "る。"
1452
1453 #. type: Plain text
1454 #: build/C/man2/getitimer.2:111
1455 msgid ""
1456 "Timers decrement from I<it_value> to zero, generate a signal, and reset to "
1457 "I<it_interval>.  A timer which is set to zero (I<it_value> is zero or the "
1458 "timer expires and I<it_interval> is zero) stops."
1459 msgstr ""
1460 "タイマーは I<it_value> からゼロへ向けて減っていき、シグナルを生成し、 "
1461 "I<it_interval> に初期化される。 タイマーがゼロに設定された場合 (I<it_value> "
1462 "がゼロか、タイマーが満了した時に I<it_interval> がゼロの場合) は停止する。"
1463
1464 #. type: Plain text
1465 #: build/C/man2/getitimer.2:117
1466 msgid ""
1467 "Both I<tv_sec> and I<tv_usec> are significant in determining the duration of "
1468 "a timer."
1469 msgstr "タイマーの期間は I<tv_sec> と I<tv_usec> の両方により決定される。"
1470
1471 #. type: Plain text
1472 #: build/C/man2/getitimer.2:129
1473 msgid ""
1474 "Timers will never expire before the requested time, but may expire some "
1475 "(short) time afterward, which depends on the system timer resolution and on "
1476 "the system load; see B<time>(7).  (But see BUGS below.)  Upon expiration, a "
1477 "signal will be generated and the timer reset.  If the timer expires while "
1478 "the process is active (always true for B<ITIMER_VIRTUAL>), the signal will "
1479 "be delivered immediately when generated.  Otherwise, the delivery will be "
1480 "offset by a small time dependent on the system loading."
1481 msgstr ""
1482 "要求した時間がくる前にタイマーが満了することはないが、 逆にある (短い) 時間だ"
1483 "け満了が遅れることはある。 どれだけ遅れるかはシステムの時間分解能とシステムの"
1484 "負荷に依存する (B<time>(7)  参照; 但し、バグの項も参照のこと)。 タイマーが満"
1485 "了するとシグナルが生成され、タイマーは初期化される。 プロセスがアクティブな"
1486 "時 (B<ITIMER_VIRTUAL> の場合には常にそうである) にタイマーが満了した場合、生"
1487 "成されたシグナルは すぐに配送される。それ以外の場合は、システムの負荷により少"
1488 "しの時間だけ 遅れて配送される。"
1489
1490 #. type: Plain text
1491 #: build/C/man2/getitimer.2:134 build/C/man2/killpg.2:94
1492 #: build/C/man2/tkill.2:92
1493 msgid ""
1494 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1495 "appropriately."
1496 msgstr ""
1497 "成功した場合、0 が返される。エラーが発生した場合、-1 が返され、 I<errno> が適"
1498 "切に設定される。"
1499
1500 #. type: TP
1501 #: build/C/man2/getitimer.2:135 build/C/man2/prctl.2:825
1502 #: build/C/man2/sigaction.2:677 build/C/man2/sigaltstack.2:138
1503 #: build/C/man2/sigpending.2:60 build/C/man2/sigprocmask.2:100
1504 #: build/C/man2/sigsuspend.2:77 build/C/man2/timer_settime.2:184
1505 #: build/C/man2/timerfd_create.2:349
1506 #, no-wrap
1507 msgid "B<EFAULT>"
1508 msgstr "B<EFAULT>"
1509
1510 #. type: Plain text
1511 #: build/C/man2/getitimer.2:142 build/C/man2/timerfd_create.2:356
1512 msgid "I<new_value>, I<old_value>, or I<curr_value> is not valid a pointer."
1513 msgstr "I<new_value>, I<old_value>, I<curr_value> が有効なポインタではない。"
1514
1515 #. type: Plain text
1516 #: build/C/man2/getitimer.2:155
1517 msgid ""
1518 "I<which> is not one of B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>; "
1519 "or (since Linux 2.6.22) one of the I<tv_usec> fields in the structure "
1520 "pointed to by I<new_value> contains a value outside the range 0 to 999999."
1521 msgstr ""
1522 "I<which> が B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれでもな"
1523 "い。 または (Linux 2.6.22 以降で)  I<new_value> で指定された構造体の "
1524 "I<tv_usec> フィールドの一つが 0 以上 999999 以下の範囲に入らない値である。"
1525
1526 #. type: Plain text
1527 #: build/C/man2/getitimer.2:165
1528 msgid ""
1529 "POSIX.1-2001, SVr4, 4.4BSD (this call first appeared in 4.2BSD).  "
1530 "POSIX.1-2008 marks B<getitimer>()  and B<setitimer>()  obsolete, "
1531 "recommending the use of the POSIX timers API (B<timer_gettime>(2), "
1532 "B<timer_settime>(2), etc.) instead."
1533 msgstr ""
1534 "POSIX.1-2001, SVr4, 4.4BSD (このコールは 4.2BSD で始めて現われた).  "
1535 "POSIX.1-2008 では、 B<getitimer>()  と B<setitimer>()  は廃止予定とされてお"
1536 "り、 代わりに POSIX タイマー API (B<timer_gettime>(2), B<timer_settime>(2)  "
1537 "など) を使うことが推奨されている。"
1538
1539 #. type: Plain text
1540 #: build/C/man2/getitimer.2:171
1541 msgid ""
1542 "A child created via B<fork>(2)  does not inherit its parent's interval "
1543 "timers.  Interval timers are preserved across an B<execve>(2)."
1544 msgstr ""
1545 "B<fork>(2)  で作成された子プロセスは、 親プロセスのインターバル・タイマーを継"
1546 "承しない。 B<execve>(2)  の前後ではインターバル・タイマーは保存される。"
1547
1548 #. type: Plain text
1549 #: build/C/man2/getitimer.2:181
1550 msgid ""
1551 "POSIX.1 leaves the interaction between B<setitimer>()  and the three "
1552 "interfaces B<alarm>(2), B<sleep>(3), and B<usleep>(3)  unspecified."
1553 msgstr ""
1554 "POSIX.1 では、 B<setitimer>()  と、 B<alarm>(2), B<sleep>(3), B<usleep>(3)  "
1555 "という 3 つのインタフェースとの相互の影響については規定していない。"
1556
1557 #. type: Plain text
1558 #: build/C/man2/getitimer.2:183
1559 msgid "The standards are silent on the meaning of the call:"
1560 msgstr "標準では、次の呼び出しの意味については規定されていない。"
1561
1562 #. type: Plain text
1563 #: build/C/man2/getitimer.2:185
1564 #, no-wrap
1565 msgid "    setitimer(which, NULL, &old_value);\n"
1566 msgstr "    setitimer(which, NULL, &old_value);\n"
1567
1568 #. type: Plain text
1569 #: build/C/man2/getitimer.2:188
1570 msgid ""
1571 "Many systems (Solaris, the BSDs, and perhaps others)  treat this as "
1572 "equivalent to:"
1573 msgstr ""
1574 "(Solaris, BSD 系やおそらく他のシステムもそうだが) 多くのシステムでは、この呼"
1575 "び出しは以下と等価である。"
1576
1577 #. type: Plain text
1578 #: build/C/man2/getitimer.2:190
1579 #, no-wrap
1580 msgid "    getitimer(which, &old_value);\n"
1581 msgstr "    getitimer(which, &old_value);\n"
1582
1583 #. type: Plain text
1584 #: build/C/man2/getitimer.2:196
1585 msgid ""
1586 "In Linux, this is treated as being equivalent to a call in which the "
1587 "I<new_value> fields are zero; that is, the timer is disabled.  I<Don't use "
1588 "this Linux misfeature>: it is nonportable and unnecessary."
1589 msgstr ""
1590 "Linux では、この呼び出しは I<new_value> フィールドが 0 の呼び出しと等価なもの"
1591 "と扱われる。 つまり、タイマーが無効になる。 I<Linux のこの間違った機能を使用"
1592 "しないこと>。移植性もなく、不必要な機能である。"
1593
1594 #. type: SH
1595 #: build/C/man2/getitimer.2:196 build/C/man2/kill.2:161
1596 #: build/C/man3/profil.3:72 build/C/man3/psignal.3:101
1597 #: build/C/man2/sigaction.2:792 build/C/man2/signalfd.2:352
1598 #: build/C/man2/sigpending.2:85 build/C/man3/sigset.3:232
1599 #: build/C/man2/timer_getoverrun.2:115 build/C/man2/timerfd_create.2:380
1600 #: build/C/man2/wait.2:537
1601 #, no-wrap
1602 msgid "BUGS"
1603 msgstr "バグ"
1604
1605 #. type: Plain text
1606 #: build/C/man2/getitimer.2:205
1607 msgid ""
1608 "The generation and delivery of a signal are distinct, and only one instance "
1609 "of each of the signals listed above may be pending for a process.  Under "
1610 "very heavy loading, an B<ITIMER_REAL> timer may expire before the signal "
1611 "from a previous expiration has been delivered.  The second signal in such an "
1612 "event will be lost."
1613 msgstr ""
1614 "シグナルの生成と配送は別個のものであり、 前述のシグナルのそれぞれについて一つ"
1615 "だけがプロセスのために 待機する。 非常に重い負荷の下では、 B<ITIMER_REAL> タ"
1616 "イマーでは、時間切れにより生成された一つ前のシグナルが配送される前に、 次の時"
1617 "間切れが起こる場合がある。 そのような場合、 2 個めのイベントに対するシグナル"
1618 "は失われてしまう。"
1619
1620 #. type: Plain text
1621 #: build/C/man2/getitimer.2:220
1622 msgid ""
1623 "On Linux kernels before 2.6.16, timer values are represented in jiffies.  If "
1624 "a request is made set a timer with a value whose jiffies representation "
1625 "exceeds B<MAX_SEC_IN_JIFFIES> (defined in I<include/linux/jiffies.h>), then "
1626 "the timer is silently truncated to this ceiling value.  On Linux/i386 "
1627 "(where, since Linux 2.6.13, the default jiffy is 0.004 seconds), this means "
1628 "that the ceiling value for a timer is approximately 99.42 days.  Since Linux "
1629 "2.6.16, the kernel uses a different internal representation for times, and "
1630 "this ceiling is removed."
1631 msgstr ""
1632 "バージョン 2.6.16 より前の Linux カーネルでは、 タイマーの値は jiffy で表現さ"
1633 "れる。 要求が jiffy 表現で (I<include/linux/jiffies.h> で定義されている)  "
1634 "B<MAX_SEC_IN_JIFFIES> を越える値をタイマーに設定しようとするものの場合、 タイ"
1635 "マーは暗黙にこの上限値に切り詰められる。 Linux/i386 の場合 (Linux 2.6.13 以降"
1636 "では jiffy は 0.004 秒) の場合、 これはタイマーの上限値がおよそ 99.42 日にな"
1637 "ることを意味する。 Linux 2.6.16 以降では、カーネルは時間に関する内部表現とし"
1638 "て 異なる表現を使うようになっており、この上限はなくなった。"
1639
1640 #.  4 Jul 2005: It looks like this bug may remain in 2.4.x.
1641 #.      http://lkml.org/lkml/2005/7/1/165
1642 #. type: Plain text
1643 #: build/C/man2/getitimer.2:227
1644 msgid ""
1645 "On certain systems (including i386), Linux kernels before version 2.6.12 "
1646 "have a bug which will produce premature timer expirations of up to one jiffy "
1647 "under some circumstances.  This bug is fixed in kernel 2.6.12."
1648 msgstr ""
1649 "(i386 を含む) いくつかのシステムでは、 バージョン 2.6.12 以前の Linux カーネ"
1650 "ルは ある種の状況では 1 jiffy 早くタイマーが終了してしまうというバグがあっ"
1651 "た。 このバグはカーネル 2.6.12 で修正された。"
1652
1653 #.  Bugzilla report 25 Apr 2006:
1654 #.  http://bugzilla.kernel.org/show_bug.cgi?id=6443
1655 #.  "setitimer() should reject noncanonical arguments"
1656 #. type: Plain text
1657 #: build/C/man2/getitimer.2:246
1658 msgid ""
1659 "POSIX.1-2001 says that B<setitimer>()  should fail if a I<tv_usec> value is "
1660 "specified that is outside of the range 0 to 999999.  However, in kernels up "
1661 "to and including 2.6.21, Linux does not give an error, but instead silently "
1662 "adjusts the corresponding seconds value for the timer.  From kernel 2.6.22 "
1663 "onward, this nonconformance has been repaired: an improper I<tv_usec> value "
1664 "results in an B<EINVAL> error."
1665 msgstr ""
1666 "POSIX.1-2001 では B<setitimer>()  は I<tv_usec> の値が 0 から 999999 の範囲外"
1667 "である場合には失敗するべきだとしている。 しかし、2.6.21 以前のカーネルの "
1668 "Linux ではエラーにならず、 対応する秒数の分だけそのタイマーの秒の値が暗黙に調"
1669 "整される。 カーネル 2.6.22 以降では、この標準非準拠の動作は修正され、 "
1670 "I<tv_usec> の値が不適切な場合には B<EINVAL> エラーとなる。"
1671
1672 #. type: Plain text
1673 #: build/C/man2/getitimer.2:253
1674 msgid ""
1675 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1676 "B<timerfd_create>(2), B<time>(7)"
1677 msgstr ""
1678 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1679 "B<timerfd_create>(2), B<time>(7)"
1680
1681 #. type: TH
1682 #: build/C/man3/gsignal.3:27
1683 #, no-wrap
1684 msgid "GSIGNAL"
1685 msgstr "GSIGNAL"
1686
1687 #. type: TH
1688 #: build/C/man3/gsignal.3:27
1689 #, no-wrap
1690 msgid "2007-07-26"
1691 msgstr "2007-07-26"
1692
1693 #. type: Plain text
1694 #: build/C/man3/gsignal.3:30
1695 msgid "gsignal, ssignal - software signal facility"
1696 msgstr "gsignal, ssignal - ソフトウェア・シグナル機能"
1697
1698 #. type: Plain text
1699 #: build/C/man3/gsignal.3:33 build/C/man2/kill.2:52 build/C/man3/psignal.3:36
1700 #: build/C/man3/raise.3:35 build/C/man2/sigaction.2:53
1701 #: build/C/man3/siginterrupt.3:37 build/C/man3/sigpause.3:31
1702 #: build/C/man3/sigwait.3:32 build/C/man2/sigwaitinfo.2:31
1703 #, no-wrap
1704 msgid "B<#include E<lt>signal.hE<gt>>\n"
1705 msgstr "B<#include E<lt>signal.hE<gt>>\n"
1706
1707 #. type: Plain text
1708 #: build/C/man3/gsignal.3:35
1709 #, no-wrap
1710 msgid "B<typedef void (*sighandler_t)(int);>\n"
1711 msgstr "B<typedef void (*sighandler_t)(int);>\n"
1712
1713 #. type: Plain text
1714 #: build/C/man3/gsignal.3:37
1715 #, no-wrap
1716 msgid "B<int gsignal(int >I<signum>B<);>\n"
1717 msgstr "B<int gsignal(int >I<signum>B<);>\n"
1718
1719 #. type: Plain text
1720 #: build/C/man3/gsignal.3:39
1721 #, no-wrap
1722 msgid "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1723 msgstr "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1724
1725 #. type: Plain text
1726 #: build/C/man3/gsignal.3:44 build/C/man2/kill.2:59 build/C/man2/killpg.2:53
1727 #: build/C/man3/profil.3:42 build/C/man3/psignal.3:46
1728 #: build/C/man2/sigaction.2:61 build/C/man2/sigaltstack.2:38
1729 #: build/C/man3/siginterrupt.3:44 build/C/man2/sigpending.2:40
1730 #: build/C/man2/sigprocmask.2:41 build/C/man3/sigqueue.3:39
1731 #: build/C/man3/sigset.3:45 build/C/man3/sigsetops.3:51
1732 #: build/C/man2/sigsuspend.2:40 build/C/man3/sigvec.3:45
1733 #: build/C/man3/sigwait.3:39 build/C/man2/sigwaitinfo.2:41
1734 #: build/C/man2/timer_create.2:50 build/C/man2/timer_delete.2:41
1735 #: build/C/man2/timer_getoverrun.2:41 build/C/man2/timer_settime.2:45
1736 #: build/C/man2/wait.2:69 build/C/man2/wait4.2:53
1737 msgid ""
1738 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
1739 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7)  参照):"
1740
1741 #. type: Plain text
1742 #: build/C/man3/gsignal.3:49
1743 msgid "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1744 msgstr "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1745
1746 #. type: Plain text
1747 #: build/C/man3/gsignal.3:57
1748 msgid ""
1749 "Don't use these functions under Linux.  Due to a historical mistake, under "
1750 "Linux these functions are aliases for B<raise>(3)  and B<signal>(2), "
1751 "respectively."
1752 msgstr ""
1753 "Linux ではこれらの関数を使用しないこと。 過去に間違いがあり、Linux では "
1754 "B<gsignal>()  と B<ssignal>()  はそれぞれ B<raise>(3)  と B<signal>(2)  の別"
1755 "名になっている。"
1756
1757 #. type: Plain text
1758 #: build/C/man3/gsignal.3:95
1759 msgid ""
1760 "Elsewhere, on System V-like systems, these functions implement software "
1761 "signaling, entirely independent of the classical B<signal>(2)  and "
1762 "B<kill>(2)  functions.  The function B<ssignal>()  defines the action to "
1763 "take when the software signal with number I<signum> is raised using the "
1764 "function B<gsignal>(), and returns the previous such action or B<SIG_DFL>.  "
1765 "The function B<gsignal>()  does the following: if no action (or the action "
1766 "B<SIG_DFL>)  was specified for I<signum>, then it does nothing and returns "
1767 "0.  If the action B<SIG_IGN> was specified for I<signum>, then it does "
1768 "nothing and returns 1.  Otherwise, it resets the action to B<SIG_DFL> and "
1769 "calls the action function with argument I<signum>, and returns the value "
1770 "returned by that function.  The range of possible values I<signum> varies "
1771 "(often 1-15 or 1-17)."
1772 msgstr ""
1773 "一方、System V 風のシステムでは、これらの関数で、 従来の B<signal>(2)  や "
1774 "B<kill>(2)  の関数群とは完全に独立な、 ソフトウェア・シグナリングを実現してい"
1775 "る。 B<ssignal>()  関数は、番号 I<signum> のソフトウェア・シグナルが "
1776 "B<gsignal>()  関数を使って発生された時にとるべきアクションを定義する。 "
1777 "B<gsignal>()  の返り値は、一つ前に指定されていたアクション、もしくは "
1778 "B<SIG_DFL> である。 B<gsignal>()  は以下のような動作を行う: I<signum> に対し"
1779 "てアクションが指定されていないか、アクション B<SIG_DFL> が指定されていた場"
1780 "合、何もせずに 0 を返す。 I<signum> に対して アクション B<SIG_IGN> が指定され"
1781 "ていた場合、何もせずに 1 を返す。 それ以外の場合、アクションを B<SIG_DFL> に"
1782 "リセットし、引き数に I<signum> を指定してアクション関数を呼び出して、アクショ"
1783 "ン関数の返り値を返す。 I<signum> がとり得る値の範囲は実装により異なる (多くの"
1784 "場合 1〜15 か 1〜17 である)。"
1785
1786 #. type: Plain text
1787 #: build/C/man3/gsignal.3:103
1788 msgid ""
1789 "These functions are available under AIX, DG/UX, HP-UX, SCO, Solaris, Tru64.  "
1790 "They are called obsolete under most of these systems, and are broken under "
1791 "Linux libc and glibc.  Some systems also have B<gsignal_r>()  and "
1792 "B<ssignal_r>()."
1793 msgstr ""
1794 "これらの関数は、AIX, DG/UX, HP-UX, SCO, Solaris, Tru64 で使用可能である。 こ"
1795 "れらのシステムのほとんどで廃止されたことになっており、 Linux の libc および "
1796 "glibc では正しく実装されていない。 B<gsignal_r>()  と B<ssignal_r>()  が実装"
1797 "されているシステムもある。"
1798
1799 #. type: Plain text
1800 #: build/C/man3/gsignal.3:107
1801 msgid "B<kill>(2), B<signal>(2), B<raise>(3)"
1802 msgstr "B<kill>(2), B<signal>(2), B<raise>(3)"
1803
1804 #. type: TH
1805 #: build/C/man2/kill.2:44
1806 #, no-wrap
1807 msgid "KILL"
1808 msgstr "KILL"
1809
1810 #. type: TH
1811 #: build/C/man2/kill.2:44
1812 #, no-wrap
1813 msgid "2013-09-17"
1814 msgstr "2013-09-17"
1815
1816 #. type: Plain text
1817 #: build/C/man2/kill.2:47
1818 msgid "kill - send signal to a process"
1819 msgstr "kill - プロセスにシグナルを送る"
1820
1821 #. type: Plain text
1822 #: build/C/man2/kill.2:50
1823 #, no-wrap
1824 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
1825 msgstr "B<#include E<lt>sys/types.hE<gt>>\n"
1826
1827 #. type: Plain text
1828 #: build/C/man2/kill.2:54
1829 #, no-wrap
1830 msgid "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1831 msgstr "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1832
1833 #. type: Plain text
1834 #: build/C/man2/kill.2:64
1835 msgid ""
1836 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1837 msgstr ""
1838 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1839
1840 #. type: Plain text
1841 #: build/C/man2/kill.2:70
1842 msgid ""
1843 "The B<kill>()  system call can be used to send any signal to any process "
1844 "group or process."
1845 msgstr ""
1846 "システムコールの B<kill>()  は、任意のプロセス・グループもしくはプロセスにシ"
1847 "グナルを 送るのに使われる。"
1848
1849 #. type: Plain text
1850 #: build/C/man2/kill.2:73
1851 msgid ""
1852 "If I<pid> is positive, then signal I<sig> is sent to the process with the ID "
1853 "specified by I<pid>."
1854 msgstr ""
1855 "I<pid> に正の値を指定した場合、シグナル I<sig> が I<pid> で指定された ID を持"
1856 "つプロセスに送られる。"
1857
1858 #. type: Plain text
1859 #: build/C/man2/kill.2:76
1860 msgid ""
1861 "If I<pid> equals 0, then I<sig> is sent to every process in the process "
1862 "group of the calling process."
1863 msgstr ""
1864 "I<pid> に 0 を指定した場合、 呼び出し元のプロセスのプロセス・グループに属する"
1865 "すべてのプロセスに I<sig> で指定したシグナルが送られる。"
1866
1867 #. type: Plain text
1868 #: build/C/man2/kill.2:80
1869 msgid ""
1870 "If I<pid> equals -1, then I<sig> is sent to every process for which the "
1871 "calling process has permission to send signals, except for process 1 "
1872 "(I<init>), but see below."
1873 msgstr ""
1874 "I<pid> に -1 を指定した場合、 I<sig> で指定したシグナルが、 呼び出し元のプロ"
1875 "セスがシグナルを送る許可を持つ全てのプロセスに 送られる。但し、プロセス番号 "
1876 "1 (I<init>) へはシグナルは送られない。 以下の関連部分も参照のこと。"
1877
1878 #. type: Plain text
1879 #: build/C/man2/kill.2:83
1880 msgid ""
1881 "If I<pid> is less than -1, then I<sig> is sent to every process in the "
1882 "process group whose ID is I<-pid>."
1883 msgstr ""
1884 "I<pid> に -1 より小さな値を指定した場合、 ID が I<-pid> のプロセス・グループ"
1885 "に属するすべてのプロセスに I<sig> で指定したシグナルが送られる。"
1886
1887 #. type: Plain text
1888 #: build/C/man2/kill.2:88
1889 msgid ""
1890 "If I<sig> is 0, then no signal is sent, but error checking is still "
1891 "performed; this can be used to check for the existence of a process ID or "
1892 "process group ID."
1893 msgstr ""
1894 "I<sig> に 0 を指定した場合、シグナルは送られないが、 エラーのチェックは行われ"
1895 "る。これを使って、プロセス ID や プロセスグループ ID の存在確認を行うことがで"
1896 "きる。"
1897
1898 #. type: Plain text
1899 #: build/C/man2/kill.2:100
1900 msgid ""
1901 "For a process to have permission to send a signal it must either be "
1902 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
1903 "effective user ID of the sending process must equal the real or saved set-"
1904 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
1905 "the sending and receiving processes belong to the same session.  "
1906 "(Historically, the rules were different; see NOTES.)"
1907 msgstr ""
1908 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
1909 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
1910 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
1911 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
1912 "プロセスが 同じセッションに属していれば十分である。 (過去には、 ルールは違っ"
1913 "ていた; 「注意」の節を参照。)"
1914
1915 #. type: Plain text
1916 #: build/C/man2/kill.2:105
1917 msgid ""
1918 "On success (at least one signal was sent), zero is returned.  On error, -1 "
1919 "is returned, and I<errno> is set appropriately."
1920 msgstr ""
1921 "成功した場合 (少なくとも一つのシグナルが送信された場合)、 0 が返される。エ"
1922 "ラーの場合 -1 が返され、 I<errno> が適切に設定される。"
1923
1924 #. type: Plain text
1925 #: build/C/man2/kill.2:109
1926 msgid "An invalid signal was specified."
1927 msgstr "無効なシグナルを指定した。"
1928
1929 #. type: TP
1930 #: build/C/man2/kill.2:109 build/C/man2/killpg.2:99 build/C/man2/prctl.2:987
1931 #: build/C/man2/prctl.2:999 build/C/man2/prctl.2:1009
1932 #: build/C/man2/prctl.2:1017 build/C/man2/rt_sigqueueinfo.2:148
1933 #: build/C/man2/sigaltstack.2:153 build/C/man3/sigqueue.3:102
1934 #: build/C/man2/tkill.2:96
1935 #, no-wrap
1936 msgid "B<EPERM>"
1937 msgstr "B<EPERM>"
1938
1939 #. type: Plain text
1940 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103
1941 msgid ""
1942 "The process does not have permission to send the signal to any of the target "
1943 "processes."
1944 msgstr ""
1945 "プロセスが、受信するプロセスのいずれに対しても シグナルを送る許可を持っていな"
1946 "い。"
1947
1948 #. type: TP
1949 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103 build/C/man2/killpg.2:107
1950 #: build/C/man2/rt_sigqueueinfo.2:156 build/C/man3/sigqueue.3:108
1951 #: build/C/man2/tkill.2:101
1952 #, no-wrap
1953 msgid "B<ESRCH>"
1954 msgstr "B<ESRCH>"
1955
1956 #. type: Plain text
1957 #: build/C/man2/kill.2:121
1958 msgid ""
1959 "The pid or process group does not exist.  Note that an existing process "
1960 "might be a zombie, a process which already committed termination, but has "
1961 "not yet been B<wait>(2)ed for."
1962 msgstr ""
1963 "指定したプロセスまたはプロセス・グループが存在しなかった。 ゾンビプロセスは存"
1964 "在するプロセスとしてみなされる。 ゾンビプロセスとはすでに処理は終了している"
1965 "が、親プロセスによる B<wait>()  処理が行われていないプロセスのことである。"
1966
1967 #. type: Plain text
1968 #: build/C/man2/kill.2:123 build/C/man2/pause.2:59 build/C/man2/wait.2:425
1969 msgid "SVr4, 4.3BSD, POSIX.1-2001."
1970 msgstr "SVr4, 4.3BSD, POSIX.1-2001."
1971
1972 #. type: Plain text
1973 #: build/C/man2/kill.2:131
1974 msgid ""
1975 "The only signals that can be sent to process ID 1, the I<init> process, are "
1976 "those for which I<init> has explicitly installed signal handlers.  This is "
1977 "done to assure the system is not brought down accidentally."
1978 msgstr ""
1979 "プロセス番号 1 の I<init> プロセスに送ることができるシグナルは、 I<init> が明"
1980 "示的にシグナルハンドラを設定したシグナルだけである。 こうなっているのは、誤っ"
1981 "てシステムをダウンさせないようにするためである。"
1982
1983 #. type: Plain text
1984 #: build/C/man2/kill.2:137
1985 msgid ""
1986 "POSIX.1-2001 requires that I<kill(-1,sig)> send I<sig> to all processes that "
1987 "the calling process may send signals to, except possibly for some "
1988 "implementation-defined system processes.  Linux allows a process to signal "
1989 "itself, but on Linux the call I<kill(-1,sig)> does not signal the calling "
1990 "process."
1991 msgstr ""
1992 "POSIX.1-2001 では、 I<kill(-1,sig)> が 呼び出し元のプロセスがシグナルを送るこ"
1993 "とが出来るプロセス全てに I<sig> を送ることを要求している。 但し、システム実装"
1994 "時に定められたシステムプロセスは シグナルの送信対象から除外される。 Linux で"
1995 "は、プロセスが自分自身にシグナルを送れるようになっているが、 Linux の "
1996 "I<kill(-1,sig)> は呼び出し元のプロセスにはシグナルを送らない。"
1997
1998 #. type: Plain text
1999 #: build/C/man2/kill.2:147
2000 msgid ""
2001 "POSIX.1-2001 requires that if a process sends a signal to itself, and the "
2002 "sending thread does not have the signal blocked, and no other thread has it "
2003 "unblocked or is waiting for it in B<sigwait>(3), at least one unblocked "
2004 "signal must be delivered to the sending thread before the B<kill>()  returns."
2005 msgstr ""
2006 "POSIX.1-2001 では以下の動作になることを要求している。 自分自身にシグナルを送"
2007 "ると、シグナルを送ったスレッドがそのシグナルをブロック しておらず、他のどのス"
2008 "レッドもそのシグナルを受ける状態にもなく B<sigwait>(3)  でそのシグナルを待っ"
2009 "てもいない場合、 B<kill>()  が返る前に少なくとも一つのブロックされていない シ"
2010 "グナルがシグナルを送ったスレッドに配送されなければならない。"
2011
2012 #. type: SS
2013 #: build/C/man2/kill.2:147 build/C/man3/sigpause.3:82 build/C/man2/wait.2:480
2014 #, no-wrap
2015 msgid "Linux notes"
2016 msgstr "Linux での注意"
2017
2018 #.  In the 0.* kernels things chopped and changed quite
2019 #.  a bit - MTK, 24 Jul 02
2020 #. type: Plain text
2021 #: build/C/man2/kill.2:161
2022 msgid ""
2023 "Across different kernel versions, Linux has enforced different rules for the "
2024 "permissions required for an unprivileged process to send a signal to another "
2025 "process.  In kernels 1.0 to 1.2.2, a signal could be sent if the effective "
2026 "user ID of the sender matched effective user ID of the target, or the real "
2027 "user ID of the sender matched the real user ID of the target.  From kernel "
2028 "1.2.3 until 1.3.77, a signal could be sent if the effective user ID of the "
2029 "sender matched either the real or effective user ID of the target.  The "
2030 "current rules, which conform to POSIX.1-2001, were adopted in kernel 1.3.78."
2031 msgstr ""
2032 "Linux では、特権のないプロセスが他のプロセスにシグナルを送信するために必要な"
2033 "権限についてのルールが、カーネルバージョンにより違っている。 カーネル 1.0 か"
2034 "ら 1.2.2 では、送信側の実効ユーザー ID が送信対象の実効ユーザー ID と一致する"
2035 "か、 送信側の実ユーザー ID が送信対象の実ユーザー ID と一致すれば、 シグナル"
2036 "を送信できた。 カーネル 1.2.3 から 1.3.77では、送信側の実効ユーザー ID が送信"
2037 "対象の実ユーザー ID か実効ユーザー ID のいずれかと一致すればシグナルを送信で"
2038 "きた。 現在のルールは、POSIX.1-2001 に準拠しており、カーネル 1.3.78 以降で 適"
2039 "用されている。"
2040
2041 #. type: Plain text
2042 #: build/C/man2/kill.2:171
2043 msgid ""
2044 "In 2.6 kernels up to and including 2.6.7, there was a bug that meant that "
2045 "when sending signals to a process group, B<kill>()  failed with the error "
2046 "B<EPERM> if the caller did not have permission to send the signal to I<any> "
2047 "(rather than I<all>) of the members of the process group.  Notwithstanding "
2048 "this error return, the signal was still delivered to all of the processes "
2049 "for which the caller had permission to signal."
2050 msgstr ""
2051 "バージョン 2.6.7 以前の 2.6 系のカーネルには、 プロセスグループにシグナルを"
2052 "送ったときに、 呼び出し元のプロセスがプロセスグループの (全メンバーではなく) "
2053 "一部のメンバーに対してのみシグナルを送る許可を持っていない場合に、 "
2054 "B<kill>()  がエラー B<EPERM> で失敗するというバグがある。 このエラーが返るに"
2055 "もかかわらず、そのシグナルは呼び出し元が シグナルを送る許可を持つ全てのプロセ"
2056 "スへ送られる。"
2057
2058 #. type: Plain text
2059 #: build/C/man2/kill.2:181
2060 msgid ""
2061 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), "
2062 "B<sigqueue>(3), B<capabilities>(7), B<credentials>(7), B<signal>(7)"
2063 msgstr ""
2064 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), "
2065 "B<sigqueue>(3), B<credentials>(7), B<capabilities>(7), B<signal>(7)"
2066
2067 #. type: TH
2068 #: build/C/man2/killpg.2:42
2069 #, no-wrap
2070 msgid "KILLPG"
2071 msgstr "KILLPG"
2072
2073 #. type: TH
2074 #: build/C/man2/killpg.2:42 build/C/man3/sigset.3:26
2075 #, no-wrap
2076 msgid "2010-09-20"
2077 msgstr "2010-09-20"
2078
2079 #. type: Plain text
2080 #: build/C/man2/killpg.2:45
2081 msgid "killpg - send signal to a process group"
2082 msgstr "killpg - シグナルをプロセス・グループに送る"
2083
2084 #. type: Plain text
2085 #: build/C/man2/killpg.2:49
2086 msgid "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2087 msgstr "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2088
2089 #. type: TP
2090 #: build/C/man2/killpg.2:55
2091 #, no-wrap
2092 msgid "B<killpg>():"
2093 msgstr "B<killpg>():"
2094
2095 #. type: Plain text
2096 #: build/C/man2/killpg.2:59 build/C/man2/sigaltstack.2:46
2097 #: build/C/man3/siginterrupt.3:51 build/C/man2/wait4.2:60
2098 msgid ""
2099 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2100 "_XOPEN_SOURCE_EXTENDED"
2101 msgstr ""
2102 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2103 "_XOPEN_SOURCE_EXTENDED"
2104
2105 #. type: Plain text
2106 #: build/C/man2/killpg.2:69
2107 msgid ""
2108 "B<killpg>()  sends the signal I<sig> to the process group I<pgrp>.  See "
2109 "B<signal>(7)  for a list of signals."
2110 msgstr ""
2111 "B<killpg>()  は I<sig> で指定したシグナルを I<pgrp> で指定したプロセス・グ"
2112 "ループに送る。 シグナルの定義の一覧は B<signal>(7)  を参照のこと。"
2113
2114 #. type: Plain text
2115 #: build/C/man2/killpg.2:78
2116 msgid ""
2117 "If I<pgrp> is 0, B<killpg>()  sends the signal to the calling process's "
2118 "process group.  (POSIX says: If I<pgrp> is less than or equal to 1, the "
2119 "behavior is undefined.)"
2120 msgstr ""
2121 "引き数 I<pgrp> に 0 を指定した場合には B<killpg>()  は呼び出し元のプロセスが"
2122 "属しているプロセス・グループに対してシグナルを送る。 (POSIX では以下のように"
2123 "記述されている: I<pgrp> が 1 以下である場合、動作は未定義である。)"
2124
2125 #. type: Plain text
2126 #: build/C/man2/killpg.2:89
2127 msgid ""
2128 "For a process to have permission to send a signal it must either be "
2129 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
2130 "effective user ID of the sending process must equal the real or saved set-"
2131 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
2132 "the sending and receiving processes belong to the same session."
2133 msgstr ""
2134 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
2135 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
2136 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
2137 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
2138 "プロセスが 同じセッションに属していれば十分である。"
2139
2140 #. type: Plain text
2141 #: build/C/man2/killpg.2:99
2142 msgid "I<sig> is not a valid signal number."
2143 msgstr "I<sig> で指定された値は無効なシグナル番号である。"
2144
2145 #. type: Plain text
2146 #: build/C/man2/killpg.2:107
2147 msgid "No process can be found in the process group specified by I<pgrp>."
2148 msgstr ""
2149 "I<pgrp> で指定されたプロセス・グループに属するプロセスが存在しなかった。"
2150
2151 #. type: Plain text
2152 #: build/C/man2/killpg.2:111
2153 msgid ""
2154 "The process group was given as 0 but the sending process does not have a "
2155 "process group."
2156 msgstr ""
2157 "プロセス・グループとして 0 が指定されたが、送信プロセスは プロセス・グループ"
2158 "を持っていない。"
2159
2160 #. type: Plain text
2161 #: build/C/man2/killpg.2:115
2162 msgid ""
2163 "SVr4, 4.4BSD (the B<killpg>()  function call first appeared in 4BSD), "
2164 "POSIX.1-2001."
2165 msgstr "SVr4, 4.4BSD (B<killpg>()  は 4BSD で初めて追加された), POSIX.1-2001。"
2166
2167 #. type: Plain text
2168 #: build/C/man2/killpg.2:129
2169 msgid ""
2170 "There are various differences between the permission checking in BSD-type "
2171 "systems and System\\ V-type systems.  See the POSIX rationale for "
2172 "B<kill>().  A difference not mentioned by POSIX concerns the return value "
2173 "B<EPERM>: BSD documents that no signal is sent and B<EPERM> returned when "
2174 "the permission check failed for at least one target process, while POSIX "
2175 "documents B<EPERM> only when the permission check failed for all target "
2176 "processes."
2177 msgstr ""
2178 "BSD 系システムと System\\ V 系システムでは、 許可のチェックに様々な違いがあ"
2179 "る。 B<kill>(2)  についての POSIX の原理 (rationale) を参照すること。 POSIX "
2180 "で記述されていない違いとしては、返り値 B<EPERM> がある。 BSD では「送信先プロ"
2181 "セスの許可のチェックが 1 つでも失敗した場合は、 シグナルが送信されず、 "
2182 "B<EPERM> が返される」と記述されている。 POSIX では「送信先プロセスの許可の"
2183 "チェックが全て失敗した場合にのみ、 B<EPERM> が返される」と記述されている。"
2184
2185 #. type: Plain text
2186 #: build/C/man2/killpg.2:134
2187 msgid ""
2188 "On Linux, B<killpg>()  is implemented as a library function that makes the "
2189 "call I<kill(-pgrp,\\ sig)>."
2190 msgstr ""
2191 "Linux では、 B<killpg>()  はライブラリ関数として実装されており、 I<kill(-"
2192 "pgrp,\\ sig)> の呼び出しが行われる。"
2193
2194 #. type: Plain text
2195 #: build/C/man2/killpg.2:140
2196 msgid ""
2197 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<capabilities>(7), "
2198 "B<credentials>(7)"
2199 msgstr ""
2200 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<credentials>(7), "
2201 "B<capabilities>(7)"
2202
2203 #. type: TH
2204 #: build/C/man2/pause.2:30
2205 #, no-wrap
2206 msgid "PAUSE"
2207 msgstr "PAUSE"
2208
2209 #. type: TH
2210 #: build/C/man2/pause.2:30
2211 #, no-wrap
2212 msgid "2008-10-06"
2213 msgstr "2008-10-06"
2214
2215 #. type: Plain text
2216 #: build/C/man2/pause.2:33
2217 msgid "pause - wait for signal"
2218 msgstr "pause - シグナルを待つ"
2219
2220 #. type: Plain text
2221 #: build/C/man2/pause.2:35
2222 msgid "B<#include E<lt>unistd.hE<gt>>"
2223 msgstr "B<#include E<lt>unistd.hE<gt>>"
2224
2225 #. type: Plain text
2226 #: build/C/man2/pause.2:37
2227 msgid "B<int pause(void);>"
2228 msgstr "B<int pause(void);>"
2229
2230 #. type: Plain text
2231 #: build/C/man2/pause.2:42
2232 msgid ""
2233 "B<pause>()  causes the calling process (or thread) to sleep until a signal "
2234 "is delivered that either terminates the process or causes the invocation of "
2235 "a signal-catching function."
2236 msgstr ""
2237 "B<pause>()  は、呼び出したプロセス (またはスレッド) を、 そのプロセスを終了さ"
2238 "せたり、シグナル捕捉関数が起動されるような シグナルが配送されるまで、スリープ"
2239 "させる。"
2240
2241 #.  .BR ERESTARTNOHAND .
2242 #. type: Plain text
2243 #: build/C/man2/pause.2:53
2244 msgid ""
2245 "B<pause>()  returns only when a signal was caught and the signal-catching "
2246 "function returned.  In this case, B<pause>()  returns -1, and I<errno> is "
2247 "set to B<EINTR>."
2248 msgstr ""
2249 "B<pause>()  が返るのは、シグナルを受け取りシグナル捕獲関数から返った場合だけ"
2250 "である。 この場合は B<pause>()  は -1 を返し、 I<errno> に B<EINTR> が設定さ"
2251 "れる。"
2252
2253 #. type: TP
2254 #: build/C/man2/pause.2:54 build/C/man2/sigsuspend.2:81
2255 #: build/C/man2/sigwaitinfo.2:123 build/C/man2/wait.2:411
2256 #, no-wrap
2257 msgid "B<EINTR>"
2258 msgstr "B<EINTR>"
2259
2260 #. type: Plain text
2261 #: build/C/man2/pause.2:57
2262 msgid "a signal was caught and the signal-catching function returned."
2263 msgstr "シグナルを受け取り、シグナル捕獲関数から帰ってきた。"
2264
2265 #. type: Plain text
2266 #: build/C/man2/pause.2:64
2267 msgid "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2268 msgstr "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2269
2270 #. type: TH
2271 #: build/C/man2/prctl.2:52
2272 #, no-wrap
2273 msgid "PRCTL"
2274 msgstr "PRCTL"
2275
2276 #. type: TH
2277 #: build/C/man2/prctl.2:52 build/C/man2/restart_syscall.2:33
2278 #: build/C/man2/sgetmask.2:26 build/C/man2/sigaction.2:47
2279 #: build/C/man7/signal.7:46 build/C/man2/sigreturn.2:30
2280 #: build/C/man3/sigvec.3:26 build/C/man2/tkill.2:29
2281 #, no-wrap
2282 msgid "2014-12-31"
2283 msgstr "2014-12-31"
2284
2285 #. type: Plain text
2286 #: build/C/man2/prctl.2:55
2287 msgid "prctl - operations on a process"
2288 msgstr "prctl - プロセスの操作を行なう"
2289
2290 #. type: Plain text
2291 #: build/C/man2/prctl.2:58
2292 #, no-wrap
2293 msgid "B<#include E<lt>sys/prctl.hE<gt>>\n"
2294 msgstr "B<#include E<lt>sys/prctl.hE<gt>>\n"
2295
2296 #. type: Plain text
2297 #: build/C/man2/prctl.2:61
2298 #, no-wrap
2299 msgid ""
2300 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2301 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2302 msgstr ""
2303 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2304 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2305
2306 #. type: Plain text
2307 #: build/C/man2/prctl.2:68
2308 msgid ""
2309 "B<prctl>()  is called with a first argument describing what to do (with "
2310 "values defined in I<E<lt>linux/prctl.hE<gt>>), and further arguments with a "
2311 "significance depending on the first one.  The first argument can be:"
2312 msgstr ""
2313 "B<prctl>()  の動作は最初の引き数によって決定される (この値は I<E<lt>linux/"
2314 "prctl.hE<gt>> に定義されている)。 残りの引き数は最初の引き数によって変化す"
2315 "る。 一番目の引き数として以下のものを指定できる:"
2316
2317 #. type: TP
2318 #: build/C/man2/prctl.2:68
2319 #, no-wrap
2320 msgid "B<PR_CAPBSET_READ> (since Linux 2.6.25)"
2321 msgstr "B<PR_CAPBSET_READ> (Linux 2.6.25 以降)"
2322
2323 #. type: Plain text
2324 #: build/C/man2/prctl.2:80
2325 msgid ""
2326 "Return (as the function result) 1 if the capability specified in I<arg2> is "
2327 "in the calling thread's capability bounding set, or 0 if it is not.  (The "
2328 "capability constants are defined in I<E<lt>linux/capability.hE<gt>>.)  The "
2329 "capability bounding set dictates whether the process can receive the "
2330 "capability through a file's permitted capability set on a subsequent call to "
2331 "B<execve>(2)."
2332 msgstr ""
2333 "で指定されたケーパビリティが呼び出したスレッドのケーパビリティ バインディング"
2334 "セット (capability bounding set) に含まれている場合、 (関数の結果として) 1 を"
2335 "返し、そうでない場合 0 を返す (ケーパビリティ定数は I<E<lt>linux/capability."
2336 "hE<gt>> で定義されている)。 ケーパビリティバウンディングセットは、 "
2337 "B<execve>(2)  を呼び出した際に、ファイルの許可 (permitted) ケーパビリティの中"
2338 "で そのプロセスが獲得できるケーパビリティを指示するものである。"
2339
2340 #. type: Plain text
2341 #: build/C/man2/prctl.2:85
2342 msgid ""
2343 "If the capability specified in I<arg2> is not valid, then the call fails "
2344 "with the error B<EINVAL>."
2345 msgstr ""
2346 "I<arg2> に指定されたケーパビリティが有効でない場合、 呼び出しはエラー "
2347 "B<EINVAL> で失敗する。"
2348
2349 #. type: TP
2350 #: build/C/man2/prctl.2:85
2351 #, no-wrap
2352 msgid "B<PR_CAPBSET_DROP> (since Linux 2.6.25)"
2353 msgstr "B<PR_CAPBSET_DROP> (Linux 2.6.25 以降)"
2354
2355 #. type: Plain text
2356 #: build/C/man2/prctl.2:94
2357 msgid ""
2358 "If the calling thread has the B<CAP_SETPCAP> capability, then drop the "
2359 "capability specified by I<arg2> from the calling thread's capability "
2360 "bounding set.  Any children of the calling thread will inherit the newly "
2361 "reduced bounding set."
2362 msgstr ""
2363 "呼び出したスレッドがケーパビリティ B<CAP_SETPCAP> を持っている場合、 呼び出し"
2364 "たスレッドのケーパビリティバウンディングセットから I<arg2> で指定されたケーパ"
2365 "ビリティを外す。 呼び出したスレッドの子プロセスは変更後のバウンディングセット"
2366 "を 継承する。"
2367
2368 #. type: Plain text
2369 #: build/C/man2/prctl.2:106
2370 msgid ""
2371 "The call fails with the error: B<EPERM> if the calling thread does not have "
2372 "the B<CAP_SETPCAP>; B<EINVAL> if I<arg2> does not represent a valid "
2373 "capability; or B<EINVAL> if file capabilities are not enabled in the kernel, "
2374 "in which case bounding sets are not supported."
2375 msgstr ""
2376 "呼び出したスレッドが B<CAP_SETPCAP> を持っていない場合、呼び出しはエラー "
2377 "B<EPERM> で失敗する。 I<arg2> に指定されたケーパビリティが有効でない場合、 "
2378 "B<EINVAL> で失敗する。 ファイルケーパビリティがカーネルで有効になっていない場"
2379 "合 (この場合にはバウンディングセットがサポートされない)、 B<EINVAL> で失敗す"
2380 "る。"
2381
2382 #. type: TP
2383 #: build/C/man2/prctl.2:106
2384 #, no-wrap
2385 msgid "B<PR_SET_CHILD_SUBREAPER> (since Linux 3.4)"
2386 msgstr "B<PR_SET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2387
2388 #.  commit ebec18a6d3aa1e7d84aab16225e87fd25170ec2b
2389 #. type: Plain text
2390 #: build/C/man2/prctl.2:131
2391 msgid ""
2392 "If I<arg2> is nonzero, set the \"child subreaper\" attribute of the calling "
2393 "process; if I<arg2> is zero, unset the attribute.  When a process is marked "
2394 "as a child subreaper, all of the children that it creates, and their "
2395 "descendants, will be marked as having a subreaper.  In effect, a subreaper "
2396 "fulfills the role of B<init>(1)  for its descendant processes.  Upon "
2397 "termination of a process that is orphaned (i.e., its immediate parent has "
2398 "already terminated)  and marked as having a subreaper, the nearest still "
2399 "living ancestor subreaper will receive a B<SIGCHLD> signal and be able to "
2400 "B<wait>(2)  on the process to discover its termination status."
2401 msgstr ""
2402
2403 #. type: TP
2404 #: build/C/man2/prctl.2:131
2405 #, no-wrap
2406 msgid "B<PR_GET_CHILD_SUBREAPER> (since Linux 3.4)"
2407 msgstr "B<PR_GET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2408
2409 #. type: Plain text
2410 #: build/C/man2/prctl.2:136
2411 msgid ""
2412 "Return the \"child subreaper\" setting of the caller, in the location "
2413 "pointed to by I<(int\\ *) arg2>."
2414 msgstr ""
2415
2416 #. type: TP
2417 #: build/C/man2/prctl.2:136
2418 #, no-wrap
2419 msgid "B<PR_SET_DUMPABLE> (since Linux 2.3.20)"
2420 msgstr "B<PR_SET_DUMPABLE> (Linux 2.3.20 以降)"
2421
2422 #.  See http://marc.theaimsgroup.com/?l=linux-kernel&m=115270289030630&w=2
2423 #.  Subject:    Fix prctl privilege escalation (CVE-2006-2451)
2424 #.  From:       Marcel Holtmann <marcel () holtmann ! org>
2425 #.  Date:       2006-07-12 11:12:00
2426 #. type: Plain text
2427 #: build/C/man2/prctl.2:162
2428 msgid ""
2429 "Set the state of the flag determining whether core dumps are produced for "
2430 "the calling process upon delivery of a signal whose default behavior is to "
2431 "produce a core dump.  (Normally, this flag is set for a process by default, "
2432 "but it is cleared when a set-user-ID or set-group-ID program is executed and "
2433 "also by various system calls that manipulate process UIDs and GIDs).  In "
2434 "kernels up to and including 2.6.12, I<arg2> must be either 0 (process is not "
2435 "dumpable) or 1 (process is dumpable).  Between kernels 2.6.13 and 2.6.17, "
2436 "the value 2 was also permitted, which caused any binary which normally would "
2437 "not be dumped to be dumped readable by root only; for security reasons, this "
2438 "feature has been removed.  (See also the description of I</proc/sys/fs/"
2439 "suid_dumpable> in B<proc>(5).)  Processes that are not dumpable can not be "
2440 "attached via B<ptrace>(2)  B<PTRACE_ATTACH>."
2441 msgstr ""
2442 "(Linux 2.3.20 以降) デフォルトの振る舞いではコアダンプを引き起こすようなシグ"
2443 "ナルを受信したときに、呼び出し元のプロセスでコアダンプを生成するかどうかを決"
2444 "定するフラグを設定する (通常このフラグは、デフォルトではセットされているが、 "
2445 "set-user-ID あるいは set-group-ID プログラムが実行されたり、 さまざまなシステ"
2446 "ムコールによってプロセスの UID や GID が操作されたときに クリアされる)。 "
2447 "2.6.12 以前のカーネルでは、 I<arg2> は 0 (プロセスはダンプ不可) あるいは 1 "
2448 "(プロセスはダンプ可能) の どちらかでなければならない。 2.6.13 から 2.6.17 ま"
2449 "でのカーネルでは、値 2 も認められていた。 この値を指定すると、通常はダンプさ"
2450 "れないバイナリが root だけが 読み込み可能な形でダンプされた。 セキュリティ上"
2451 "の理由から、この機能は削除された (B<proc>(5) の I</proc/sys/fs/"
2452 "suid_dumpable> の説明も参照)。 ダンプ不可のプロセスを B<ptrace>(2) "
2453 "B<PTRACE_ATTACH> 経由で接続することはできない。"
2454
2455 #. type: TP
2456 #: build/C/man2/prctl.2:162
2457 #, no-wrap
2458 msgid "B<PR_GET_DUMPABLE> (since Linux 2.3.20)"
2459 msgstr "B<PR_GET_DUMPABLE> (Linux 2.3.20 以降)"
2460
2461 #.  Since Linux 2.6.13, the dumpable flag can have the value 2,
2462 #.  but in 2.6.13 PR_GET_DUMPABLE simply returns 1 if the dumpable
2463 #.  flags has a nonzero value.  This was fixed in 2.6.14.
2464 #. type: Plain text
2465 #: build/C/man2/prctl.2:169
2466 msgid ""
2467 "Return (as the function result) the current state of the calling process's "
2468 "dumpable flag."
2469 msgstr ""
2470 "(Linux 2.3.20 以降)  呼び出し元プロセスにおけるダンプ可能フラグの 現在の状態"
2471 "を (関数の結果として) 返す。"
2472
2473 #. type: TP
2474 #: build/C/man2/prctl.2:169
2475 #, no-wrap
2476 msgid "B<PR_SET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2477 msgstr "B<PR_SET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2478
2479 #.  Respectively 0, 1, 2
2480 #. type: Plain text
2481 #: build/C/man2/prctl.2:179
2482 msgid ""
2483 "Set the endian-ness of the calling process to the value given in I<arg2>, "
2484 "which should be one of the following: B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2485 "or B<PR_ENDIAN_PPC_LITTLE> (PowerPC pseudo little endian)."
2486 msgstr ""
2487 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<arg2> で指定された値"
2488 "に設定する。 指定できる値は B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2489 "B<PR_ENDIAN_PPC_LITTLE> (PowerPC 擬似リトルエンディアン)  のいずれか一つであ"
2490 "る。"
2491
2492 #. type: TP
2493 #: build/C/man2/prctl.2:179
2494 #, no-wrap
2495 msgid "B<PR_GET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2496 msgstr "B<PR_GET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2497
2498 #. type: Plain text
2499 #: build/C/man2/prctl.2:184
2500 msgid ""
2501 "Return the endian-ness of the calling process, in the location pointed to by "
2502 "I<(int\\ *) arg2>."
2503 msgstr ""
2504 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<(int\\ *) arg2> が指"
2505 "す場所に格納して返す。"
2506
2507 #. type: TP
2508 #: build/C/man2/prctl.2:184
2509 #, no-wrap
2510 msgid "B<PR_SET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2511 msgstr "B<PR_SET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2512
2513 #. type: Plain text
2514 #: build/C/man2/prctl.2:191
2515 msgid ""
2516 "Set floating-point emulation control bits to I<arg2>.  Pass "
2517 "B<PR_FPEMU_NOPRINT> to silently emulate fp operations accesses, or "
2518 "B<PR_FPEMU_SIGFPE> to not emulate fp operations and send B<SIGFPE> instead."
2519 msgstr ""
2520 "浮動小数点エミュレーション (floating-point emulation) 制御ビットを I<arg2> で"
2521 "指定された値に設定する。 指定できる値は B<PR_FPEMU_NOPRINT> (浮動小数点命令ア"
2522 "クセスを黙って エミュレートする) か B<PR_FPEMU_SIGFPE> (浮動小数点命令をエ"
2523 "ミュレートせず、 代わりに B<SIGFPE> を送る) である。"
2524
2525 #. type: TP
2526 #: build/C/man2/prctl.2:191
2527 #, no-wrap
2528 msgid "B<PR_GET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2529 msgstr "B<PR_GET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2530
2531 #. type: Plain text
2532 #: build/C/man2/prctl.2:196
2533 msgid ""
2534 "Return floating-point emulation control bits, in the location pointed to by "
2535 "I<(int\\ *) arg2>."
2536 msgstr ""
2537 "浮動小数点エミュレーション制御ビットの値を I<(int\\ *) arg2> が指す場所に格納"
2538 "して返す。"
2539
2540 #. type: TP
2541 #: build/C/man2/prctl.2:196
2542 #, no-wrap
2543 msgid "B<PR_SET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2544 msgstr "B<PR_SET_FPEXC> (Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2545
2546 #. type: Plain text
2547 #: build/C/man2/prctl.2:209
2548 msgid ""
2549 "Set floating-point exception mode to I<arg2>.  Pass B<PR_FP_EXC_SW_ENABLE> "
2550 "to use FPEXC for FP exception enables, B<PR_FP_EXC_DIV> for floating-point "
2551 "divide by zero, B<PR_FP_EXC_OVF> for floating-point overflow, "
2552 "B<PR_FP_EXC_UND> for floating-point underflow, B<PR_FP_EXC_RES> for floating-"
2553 "point inexact result, B<PR_FP_EXC_INV> for floating-point invalid operation, "
2554 "B<PR_FP_EXC_DISABLED> for FP exceptions disabled, B<PR_FP_EXC_NONRECOV> for "
2555 "async nonrecoverable exception mode, B<PR_FP_EXC_ASYNC> for async "
2556 "recoverable exception mode, B<PR_FP_EXC_PRECISE> for precise exception mode."
2557 msgstr ""
2558 "浮動小数点例外モード (floating-point exception mode) を I<arg2> で指定された"
2559 "値に設定する。 指定できるのは以下の値である: B<PR_FP_EXC_SW_ENABLE> (FPEXC で"
2560 "浮動小数点例外を有効にする)、 B<PR_FP_EXC_DIV> (0 除算)、 B<PR_FP_EXC_OVF> "
2561 "(オーバーフロー)、 B<PR_FP_EXC_UND> (アンダーフロー)、 B<PR_FP_EXC_RES> (不正"
2562 "確な結果 (inexact result))、 B<PR_FP_EXC_INV> (不正な命令 (invalid "
2563 "operation))、 B<PR_FP_EXC_DISABLED> (浮動小数点例外を無効にする)、 "
2564 "B<PR_FP_EXC_NONRECOV> (async nonrecoverable exception mode)、 "
2565 "B<PR_FP_EXC_ASYNC> (async recoverable exception mode)、 B<PR_FP_EXC_PRECISE> "
2566 "(precise exception mode)。"
2567
2568 #. type: TP
2569 #: build/C/man2/prctl.2:209
2570 #, no-wrap
2571 msgid "B<PR_GET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2572 msgstr "B<PR_GET_FPEXC>(Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2573
2574 #. type: Plain text
2575 #: build/C/man2/prctl.2:214
2576 msgid ""
2577 "Return floating-point exception mode, in the location pointed to by I<(int\\ "
2578 "*) arg2>."
2579 msgstr ""
2580 "浮動小数点例外モードの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
2581
2582 #. type: TP
2583 #: build/C/man2/prctl.2:214
2584 #, no-wrap
2585 msgid "B<PR_SET_KEEPCAPS> (since Linux 2.2.18)"
2586 msgstr "B<PR_SET_KEEPCAPS> (Linux 2.2.18 以降)"
2587
2588 #. type: Plain text
2589 #: build/C/man2/prctl.2:232
2590 msgid ""
2591 "Set the state of the thread's \"keep capabilities\" flag, which determines "
2592 "whether the threads's permitted capability set is cleared when a change is "
2593 "made to the threads's user IDs such that the threads's real UID, effective "
2594 "UID, and saved set-user-ID all become nonzero when at least one of them "
2595 "previously had the value 0.  By default, the permitted capability set is "
2596 "cleared when such a change is made; setting the \"keep capabilities\" flag "
2597 "prevents it from being cleared.  I<arg2> must be either 0 (permitted "
2598 "capabilities are cleared)  or 1 (permitted capabilities are kept).  (A "
2599 "thread's I<effective> capability set is always cleared when such a "
2600 "credential change is made, regardless of the setting of the \"keep "
2601 "capabilities\" flag.)  The \"keep capabilities\" value will be reset to 0 on "
2602 "subsequent calls to B<execve>(2)."
2603 msgstr ""
2604 "スレッドの「ケーパビリティ保持」フラグを設定する。 このフラグは、スレッドの"
2605 "実 UID、実効 UID、保存 set-user-ID のうち少なくとも一つが 0 であった状態か"
2606 "ら、これら全てが 0 以外に変更されたとき、 スレッドの許可ケーパビリティ集合が"
2607 "クリアされるかどうかを決定する。 デフォルトでは、このような変更が行われた場"
2608 "合、許可ケーパビリティセットはクリアされる。「ケーパビリティ保持」フラグを設"
2609 "定すると、許可ケーパビリティセットはクリアされなくなる。 I<arg2> は 0 (許可"
2610 "ケーパビリティをクリアする) か 1 (許可ケーパビリティを保持する) の どちらかで"
2611 "なければならない。 (このような ID の変更が行われた場合、「ケーパビリティ保"
2612 "持」フラグの設定に関わらず、スレッドのI<実効>ケーパビリティセットは常にクリア"
2613 "される。) B<execve>(2) が呼び出されると、「ケーパビリティ保持」フラグは 0 に"
2614 "リセットされる。"
2615
2616 #. type: TP
2617 #: build/C/man2/prctl.2:232
2618 #, no-wrap
2619 msgid "B<PR_GET_KEEPCAPS> (since Linux 2.2.18)"
2620 msgstr "B<PR_GET_KEEPCAPS> (Linux 2.2.18 以降)"
2621
2622 #. type: Plain text
2623 #: build/C/man2/prctl.2:236
2624 msgid ""
2625 "Return (as the function result) the current state of the calling threads's "
2626 "\"keep capabilities\" flag."
2627 msgstr ""
2628 "呼び出し元スレッドにおける「ケーパビリティ保持」フラグの 現在の状態を (関数の"
2629 "結果として) 返す。"
2630
2631 #. type: TP
2632 #: build/C/man2/prctl.2:236
2633 #, no-wrap
2634 msgid "B<PR_SET_NAME> (since Linux 2.6.9)"
2635 msgstr "B<PR_SET_NAME> (Linux 2.6.9 以降)"
2636
2637 #.  TASK_COMM_LEN in include/linux/sched.h
2638 #. type: Plain text
2639 #: build/C/man2/prctl.2:255
2640 #, fuzzy
2641 #| msgid ""
2642 #| "Set the name of the calling thread, using the value in the location "
2643 #| "pointed to by I<(char\\ *) arg2>.  The name can be up to 16 bytes long, "
2644 #| "and should be null-terminated if it contains fewer bytes.  This is the "
2645 #| "same attribute that can be set via B<pthread_setname_np>(3)  and "
2646 #| "retrieved using B<pthread_getname_np>(3).  The attribute is likewise "
2647 #| "accessible via I</proc/self/task/[tid]/comm>, where I<tid> is the name of "
2648 #| "the calling thread."
2649 msgid ""
2650 "Set the name of the calling thread, using the value in the location pointed "
2651 "to by I<(char\\ *) arg2>.  The name can be up to 16 bytes long, including "
2652 "the terminating null byte.  (If the length of the string, including the "
2653 "terminating null byte, exceeds 16 bytes, the string is silently truncated.)  "
2654 "This is the same attribute that can be set via B<pthread_setname_np>(3)  and "
2655 "retrieved using B<pthread_getname_np>(3).  The attribute is likewise "
2656 "accessible via I</proc/self/task/[tid]/comm>, where I<tid> is the name of "
2657 "the calling thread."
2658 msgstr ""
2659 "呼び出し元スレッドのプロセス名を I<(char\\ *) arg2> が指す場所に格納された値"
2660 "を使って設定する。 名前は最大で 16 バイトであり、 それより少ないバイト数の場"
2661 "合はヌルで終端すべきである。 これは、 B<pthread_setname_np>(3) で設定でき、 "
2662 "B<pthread_getname_np>(3) で取得できるのと同じ属性である。 同様に、 I<tid> が"
2663 "呼び出し元スレッドの ID の場合、 この属性は I</proc/self/task/[tid]/comm> 経"
2664 "由でもアクセス可能である。"
2665
2666 #. type: TP
2667 #: build/C/man2/prctl.2:255
2668 #, no-wrap
2669 msgid "B<PR_GET_NAME> (since Linux 2.6.11)"
2670 msgstr "B<PR_GET_NAME> (Linux 2.6.11 以降)"
2671
2672 #. type: Plain text
2673 #: build/C/man2/prctl.2:262
2674 msgid ""
2675 "Return the name of the calling thread, in the buffer pointed to by I<(char\\ "
2676 "*) arg2>.  The buffer should allow space for up to 16 bytes; the returned "
2677 "string will be null-terminated."
2678 msgstr "呼び出し元スレッドの名前を I<(char\\ *) arg2> が指す場所に格納して返す。 バッファは最大で 16 バイトを格納できるようにすべきである。 返される文字列はヌル終端される。"
2679
2680 #. type: TP
2681 #: build/C/man2/prctl.2:262
2682 #, no-wrap
2683 msgid "B<PR_SET_NO_NEW_PRIVS> (since Linux 3.5)"
2684 msgstr "B<PR_SET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2685
2686 #. type: Plain text
2687 #: build/C/man2/prctl.2:285
2688 msgid ""
2689 "Set the calling process's I<no_new_privs> bit to the value in I<arg2>.  With "
2690 "I<no_new_privs> set to 1, B<execve>(2)  promises not to grant privileges to "
2691 "do anything that could not have been done without the B<execve>(2)  call "
2692 "(for example, rendering the set-user-ID and set-group-ID permission bits, "
2693 "and file capabilities non-functional).  Once set, this bit cannot be unset.  "
2694 "The setting of this bit is inherited by children created by B<fork>(2)  and "
2695 "B<clone>(2), and preserved across B<execve>(2)."
2696 msgstr ""
2697
2698 #. type: Plain text
2699 #: build/C/man2/prctl.2:288
2700 msgid ""
2701 "For more information, see the kernel source file I<Documentation/prctl/"
2702 "no_new_privs.txt>."
2703 msgstr ""
2704 "詳しい情報は、カーネルソースファイル I<Documentation/prctl/no_new_privs.txt> "
2705 "を参照。"
2706
2707 #. type: TP
2708 #: build/C/man2/prctl.2:288
2709 #, no-wrap
2710 msgid "B<PR_GET_NO_NEW_PRIVS> (since Linux 3.5)"
2711 msgstr "B<PR_GET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2712
2713 #. type: Plain text
2714 #: build/C/man2/prctl.2:299
2715 msgid ""
2716 "Return (as the function result) the value of the I<no_new_privs> bit for the "
2717 "current process.  A value of 0 indicates the regular B<execve>(2)  "
2718 "behavior.  A value of 1 indicates B<execve>(2)  will operate in the "
2719 "privilege-restricting mode described above."
2720 msgstr ""
2721
2722 #. type: TP
2723 #: build/C/man2/prctl.2:299
2724 #, no-wrap
2725 msgid "B<PR_SET_PDEATHSIG> (since Linux 2.1.57)"
2726 msgstr "B<PR_SET_PDEATHSIG> (Linux 2.1.57 以降)"
2727
2728 #. type: Plain text
2729 #: build/C/man2/prctl.2:312
2730 msgid ""
2731 "Set the parent process death signal of the calling process to I<arg2> "
2732 "(either a signal value in the range 1..maxsig, or 0 to clear).  This is the "
2733 "signal that the calling process will get when its parent dies.  This value "
2734 "is cleared for the child of a B<fork>(2)  and (since Linux 2.4.36 / 2.6.23)  "
2735 "when executing a set-user-ID or set-group-ID binary.  This value is "
2736 "preserved across B<execve>(2)."
2737 msgstr ""
2738 "親プロセス死亡シグナル (parent process death signal) を I<arg2> に設定する "
2739 "(設定できるシグナル値の範囲は 1..maxsig であり、0 は通知の解除である)。 呼び"
2740 "出し元プロセスの親プロセスが死んだ際に、ここで設定した値が シグナルとして通知"
2741 "される。この値は B<fork>(2) の子プロセスでは解除される。 (Linux 2.4.36 以降お"
2742 "よび 2.6.23 以降では) set-user-ID もしくは set-group-ID されたバイナリを実行"
2743 "した場合にも、このフラグは解除される。この値は B<execve>(2) の前後で保持され"
2744 "る。"
2745
2746 #. type: TP
2747 #: build/C/man2/prctl.2:312
2748 #, no-wrap
2749 msgid "B<PR_GET_PDEATHSIG> (since Linux 2.3.15)"
2750 msgstr "B<PR_GET_PDEATHSIG> (Linux 2.3.15 以降)"
2751
2752 #. type: Plain text
2753 #: build/C/man2/prctl.2:317
2754 msgid ""
2755 "Return the current value of the parent process death signal, in the location "
2756 "pointed to by I<(int\\ *) arg2>."
2757 msgstr ""
2758 "親プロセス死亡シグナルの現在の値を I<(int\\ *) arg2> が指す場所に格納して返"
2759 "す。"
2760
2761 #. type: TP
2762 #: build/C/man2/prctl.2:317
2763 #, no-wrap
2764 msgid "B<PR_SET_PTRACER> (since Linux 3.4)"
2765 msgstr "B<PR_SET_PTRACER> (Linux 3.4 以降)"
2766
2767 #.  commit 2d514487faf188938a4ee4fb3464eeecfbdcf8eb
2768 #.  commit bf06189e4d14641c0148bea16e9dd24943862215
2769 #. type: Plain text
2770 #: build/C/man2/prctl.2:342
2771 msgid ""
2772 "This is meaningful only when the Yama LSM is enabled and in mode 1 "
2773 "(\"restricted ptrace\", visible via I</proc/sys/kernel/yama/ptrace_scope>).  "
2774 "When a \"ptracer process ID\" is passed in I<arg2>, the caller is declaring "
2775 "that the ptracer process can B<ptrace>(2)  the calling process as if it were "
2776 "a direct process ancestor.  Each B<PR_SET_PTRACER> operation replaces the "
2777 "previous \"ptracer process ID\".  Employing B<PR_SET_PTRACER> with I<arg2> "
2778 "set to 0 clears the caller's \"ptracer process ID\".  If I<arg2> is "
2779 "B<PR_SET_PTRACER_ANY>, the ptrace restrictions introduced by Yama are "
2780 "effectively disabled for the calling process."
2781 msgstr ""
2782
2783 #. type: Plain text
2784 #: build/C/man2/prctl.2:345
2785 msgid ""
2786 "For further information, see the kernel source file I<Documentation/security/"
2787 "Yama.txt>."
2788 msgstr ""
2789 "詳しい情報は、カーネルソースファイル I<Documentation/security/Yama.txt> を参"
2790 "照。"
2791
2792 #. type: TP
2793 #: build/C/man2/prctl.2:345
2794 #, no-wrap
2795 msgid "B<PR_SET_SECCOMP> (since Linux 2.6.23)"
2796 msgstr "B<PR_SET_SECCOMP> (Linux 2.6.23 以降)"
2797
2798 #.  See http://thread.gmane.org/gmane.linux.kernel/542632
2799 #.  [PATCH 0 of 2] seccomp updates
2800 #.  andrea@cpushare.com
2801 #. type: Plain text
2802 #: build/C/man2/prctl.2:356
2803 msgid ""
2804 "Set the secure computing (seccomp) mode for the calling thread, to limit the "
2805 "available system calls.  The seccomp mode is selected via I<arg2>.  (The "
2806 "seccomp constants are defined in I<E<lt>linux/seccomp.hE<gt>>.)"
2807 msgstr ""
2808 "呼び出したスレッドのセキュアコンピューティング (seccomp) モードを設定する。 "
2809 "seccomp モードは利用できるシステムコールを制限するものである。 seccomp モード"
2810 "は I<arg2> で指定できる (seccomp 定数は I<E<lt>linux/seccomp.hE<gt>> で定義さ"
2811 "れている)。"
2812
2813 #. type: Plain text
2814 #: build/C/man2/prctl.2:377
2815 msgid ""
2816 "With I<arg2> set to B<SECCOMP_MODE_STRICT> the only system calls that the "
2817 "thread is permitted to make are B<read>(2), B<write>(2), B<_exit>(2), and "
2818 "B<sigreturn>(2).  Other system calls result in the delivery of a B<SIGKILL> "
2819 "signal.  Strict secure computing mode is useful for number-crunching "
2820 "applications that may need to execute untrusted byte code, perhaps obtained "
2821 "by reading from a pipe or socket.  This operation is available only if the "
2822 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2823 msgstr ""
2824 "I<arg2> を B<SECCOMP_MODE_STRICT> に設定すると、 そのスレッドが呼び出しを許可"
2825 "されるシステムコールは B<read>(2), B<write>(2), B<_exit>(2), B<sigreturn>(2) "
2826 "だけになる。 それ以外のシステムコールを呼び出すと、シグナル B<SIGKILL> が配送"
2827 "される。 パイプやソケットから読み込んだ、 信頼できないバイトコードを実行する"
2828 "必要がある大量の演算を行うアプリケーションにおいて、 strict secure computing "
2829 "モードは役立つ。 この操作は利用できるのは、 カーネルが B<CONFIG_SECCOMP> を有"
2830 "効にして作成されている場合だけである。"
2831
2832 #. type: Plain text
2833 #: build/C/man2/prctl.2:392
2834 msgid ""
2835 "With I<arg2> set to B<SECCOMP_MODE_FILTER> (since Linux 3.5)  the system "
2836 "calls allowed are defined by a pointer to a Berkeley Packet Filter passed in "
2837 "I<arg3>.  This argument is a pointer to I<struct sock_fprog>; it can be "
2838 "designed to filter arbitrary system calls and system call arguments.  This "
2839 "mode is available only if the kernel is configured with "
2840 "B<CONFIG_SECCOMP_FILTER> enabled."
2841 msgstr ""
2842 "I<arg2> を B<SECCOMP_MODE_FILTER> (Linux 3.5 以降) に設定すると、 許可される"
2843 "システムコールは I<arg3> で渡された Berkeley Packet Filter へのポインターで定"
2844 "義される。 この引き数は I<struct sock_fprog> へのポインターである。 これは任"
2845 "意のシステムコールやシステムコール引き数をフィルタリングするために設計され"
2846 "た。 このモードはカーネルで B<CONFIG_SECCOMP_FILTER> が有効になっている場合に"
2847 "のみ利用可能である。"
2848
2849 #. type: Plain text
2850 #: build/C/man2/prctl.2:407
2851 msgid ""
2852 "If B<SECCOMP_MODE_FILTER> filters permit B<fork>(2), then the seccomp mode "
2853 "is inherited by children created by B<fork>(2); if B<execve>(2)  is "
2854 "permitted, then the seccomp mode is preserved across B<execve>(2).  If the "
2855 "filters permit B<prctl>()  calls, then additional filters can be added; they "
2856 "are run in order until the first non-allow result is seen."
2857 msgstr ""
2858 "B<SECCOMP_MODE_FILTER> フィルターで B<fork>(2) が許可されている場合、 "
2859 "seccomp モードは B<fork>(2) で作成された子プロセスに継承される。 "
2860 "B<execve>(2) が許可されている場合、 seccomp モードは B<execve>(2) の前後で維"
2861 "持される。 フィルターで B<prctl>() コールが許可されている場合、 追加でフィル"
2862 "ターが定義され、 これらのフィルターは許可されないものが見つかるまで指定された"
2863 "順序で実行される。"
2864
2865 #. type: Plain text
2866 #: build/C/man2/prctl.2:410
2867 msgid ""
2868 "For further information, see the kernel source file I<Documentation/prctl/"
2869 "seccomp_filter.txt>."
2870 msgstr ""
2871 "詳しい情報は、カーネルソースファイル I<Documentation/prctl/seccomp_filter."
2872 "txt> を参照。"
2873
2874 #. type: TP
2875 #: build/C/man2/prctl.2:410
2876 #, no-wrap
2877 msgid "B<PR_GET_SECCOMP> (since Linux 2.6.23)"
2878 msgstr "B<PR_GET_SECCOMP> (Linux 2.6.23 以降)"
2879
2880 #. type: Plain text
2881 #: build/C/man2/prctl.2:426
2882 msgid ""
2883 "Return (as the function result)  the secure computing mode of the calling "
2884 "thread.  If the caller is not in secure computing mode, this operation "
2885 "returns 0; if the caller is in strict secure computing mode, then the "
2886 "B<prctl>()  call will cause a B<SIGKILL> signal to be sent to the process.  "
2887 "If the caller is in filter mode, and this system call is allowed by the "
2888 "seccomp filters, it returns 2.  This operation is available only if the "
2889 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2890 msgstr ""
2891 "呼び出したスレッドの secure computing モードを (関数の結果として) 返す。 呼び"
2892 "出したスレッドが secure computing モードでなかった場合、 この操作は 0 を返"
2893 "す。 呼び出したスレッドが secure computing モードの場合、 B<prctl>()  を呼び"
2894 "出すとシグナル B<SIGKILL> がそのプロセスに送信される。 呼び出したスレッドが"
2895 "フィルタモードで、 このシステムコールが seccomp フィルタにより許可されている"
2896 "場合、 2 を返す。 この操作が利用できるのは、カーネルが B<CONFIG_SECCOMP> を有"
2897 "効にして作成されている場合だけである。"
2898
2899 #. type: TP
2900 #: build/C/man2/prctl.2:426
2901 #, no-wrap
2902 msgid "B<PR_SET_SECUREBITS> (since Linux 2.6.26)"
2903 msgstr "B<PR_SET_SECUREBITS> (Linux 2.6.26 以降)"
2904
2905 #. type: Plain text
2906 #: build/C/man2/prctl.2:432
2907 msgid ""
2908 "Set the \"securebits\" flags of the calling thread to the value supplied in "
2909 "I<arg2>.  See B<capabilities>(7)."
2910 msgstr ""
2911 "呼び出したスレッドの \"securebits\" フラグを I<arg2> で渡された値に設定す"
2912 "る。 B<capabilities>(7)  参照。"
2913
2914 #. type: TP
2915 #: build/C/man2/prctl.2:432
2916 #, no-wrap
2917 msgid "B<PR_GET_SECUREBITS> (since Linux 2.6.26)"
2918 msgstr "B<PR_GET_SECUREBITS> (Linux 2.6.26 以降)"
2919
2920 #. type: Plain text
2921 #: build/C/man2/prctl.2:438
2922 msgid ""
2923 "Return (as the function result)  the \"securebits\" flags of the calling "
2924 "thread.  See B<capabilities>(7)."
2925 msgstr ""
2926 "呼び出したスレッドの \"securebits\" フラグを (関数の結果として) 返す。 "
2927 "B<capabilities>(7)  参照。"
2928
2929 #. type: TP
2930 #: build/C/man2/prctl.2:438
2931 #, no-wrap
2932 msgid "B<PR_SET_THP_DISABLE> (since Linux 3.15)"
2933 msgstr "B<PR_SET_THP_DISABLE> (Linux 3.15 以降)"
2934
2935 #.  commit a0715cc22601e8830ace98366c0c2bd8da52af52
2936 #. type: Plain text
2937 #: build/C/man2/prctl.2:454
2938 msgid ""
2939 "Set the state of the \"THP disable\" flag for the calling thread.  If "
2940 "I<arg2> has a nonzero value, the flag is set, otherwise it is cleared.  "
2941 "Setting this flag provides a method for disabling transparent huge pages for "
2942 "jobs where the code cannot be modified, and using a malloc hook with "
2943 "B<madvise>(2)  is not an option (i.e., statically allocated data).  The "
2944 "setting of the \"THP disable\" flag is inherited by a child created via "
2945 "B<fork>(2)  and is preserved across B<execve>(2)."
2946 msgstr ""
2947 "呼び出したスレッドの \"THP disable\" (THP 無効) フラグの状態を設定する。 "
2948 "I<arg2> が 0 以外の場合、フラグは有効になり、そうでない場合はクリーンされ"
2949 "る。 このフラグを設定する方法により、 コードを変更できなかったり "
2950 "B<madvise>(2) の malloc hook をが有効ではないジョブ (この方法は静的に割り当て"
2951 "られたデータには有効ではない)に対して、 transparent huge pages を無効にする手"
2952 "段が提供される。 \"THP disable\" フラグの設定は B<fork>(2) で作成された子プロ"
2953 "セスに継承され、 B<execve> の前後で維持される。"
2954
2955 #. type: TP
2956 #: build/C/man2/prctl.2:454
2957 #, no-wrap
2958 msgid "B<PR_GET_THP_DISABLE> (since Linux 3.15)"
2959 msgstr "B<PR_GET_THP_DISABLE> (Linux 3.15 以降)"
2960
2961 #. type: Plain text
2962 #: build/C/man2/prctl.2:459
2963 msgid ""
2964 "Return (via the function result) the current setting of the \"THP disable\" "
2965 "flag for the calling thread: either 1, if the flag is set, or 0, if it is "
2966 "not."
2967 msgstr ""
2968 "呼び出し元スレッドの \"THP disable\" フラグの現在の設定を (関数の結果として) "
2969 "返す。フラグがセットされている場合は 1 が、セットされていない場合は 0 が返"
2970 "る。"
2971
2972 #. type: TP
2973 #: build/C/man2/prctl.2:459
2974 #, no-wrap
2975 msgid "B<PR_GET_TID_ADDRESS> (since Linux 3.5)"
2976 msgstr "B<PR_GET_TID_ADDRESS> (Linux 3.5 以降)"
2977
2978 #.  commit 300f786b2683f8bb1ec0afb6e1851183a479c86d
2979 #. type: Plain text
2980 #: build/C/man2/prctl.2:474
2981 msgid ""
2982 "Retrieve the I<clear_child_tid> address set by B<set_tid_address>(2)  and "
2983 "the B<clone>(2)  B<CLONE_CHILD_CLEARTID> flag, in the location pointed to by "
2984 "I<(int\\ **)\\ arg2>.  This feature is available only if the kernel is built "
2985 "with the B<CONFIG_CHECKPOINT_RESTORE> option enabled."
2986 msgstr ""
2987 "B<set_tid_address>(2) や B<clone>(2) B<CLONE_CHILD_CLEARTID> フラグで設定され"
2988 "た I<clear_child_tid> を取得し、 I<(int\\ **)\\ arg2> が指す場所に格納して返"
2989 "す。 この機能はカーネルが B<CONFIG_CHECKPOINT_RESTORE> オプションを有効にして"
2990 "作成されている場合にのみ利用できる。"
2991
2992 #. type: TP
2993 #: build/C/man2/prctl.2:474
2994 #, no-wrap
2995 msgid "B<PR_SET_TIMERSLACK> (since Linux 2.6.28)"
2996 msgstr "B<PR_SET_TIMERSLACK> (Linux 2.6.28 以降)"
2997
2998 #.  See https://lwn.net/Articles/369549/
2999 #.  commit 6976675d94042fbd446231d1bd8b7de71a980ada
3000 #.  It seems that it's not possible to set the timer slack to zero;
3001 #.  The minimum value is 1? Seems a little strange.
3002 #. type: Plain text
3003 #: build/C/man2/prctl.2:493
3004 msgid ""
3005 "Set the current timer slack for the calling thread to the nanosecond value "
3006 "supplied in I<arg2>.  If I<arg2> is less than or equal to zero, reset the "
3007 "current timer slack to the thread's default timer slack value.  The timer "
3008 "slack is used by the kernel to group timer expirations for the calling "
3009 "thread that are close to one another; as a consequence, timer expirations "
3010 "for the thread may be up to the specified number of nanoseconds late (but "
3011 "will never expire early).  Grouping timer expirations can help reduce system "
3012 "power consumption by minimizing CPU wake-ups."
3013 msgstr ""
3014
3015 #.  List obtained by grepping for futex usage in glibc source
3016 #. type: Plain text
3017 #: build/C/man2/prctl.2:513
3018 msgid ""
3019 "The timer expirations affected by timer slack are those set by B<select>(2), "
3020 "B<pselect>(2), B<poll>(2), B<ppoll>(2), B<epoll_wait>(2), B<epoll_pwait>(2), "
3021 "B<clock_nanosleep>(2), B<nanosleep>(2), and B<futex>(2)  (and thus the "
3022 "library functions implemented via futexes, including "
3023 "B<pthread_cond_timedwait>(3), B<pthread_mutex_timedlock>(3), "
3024 "B<pthread_rwlock_timedrdlock>(3), B<pthread_rwlock_timedwrlock>(3), and "
3025 "B<sem_timedwait>(3))."
3026 msgstr ""
3027
3028 #. type: Plain text
3029 #: build/C/man2/prctl.2:517
3030 msgid ""
3031 "Timer slack is not applied to threads that are scheduled under a real-time "
3032 "scheduling policy (see B<sched_setscheduler>(2))."
3033 msgstr ""
3034
3035 #. type: Plain text
3036 #: build/C/man2/prctl.2:534
3037 msgid ""
3038 "Each thread has two associated timer slack values: a \"default\" value, and "
3039 "a \"current\" value.  The current value is the one that governs grouping of "
3040 "timer expirations.  When a new thread is created, the two timer slack values "
3041 "are made the same as the current value of the creating thread.  Thereafter, "
3042 "a thread can adjust its current timer slack value via B<PR_SET_TIMERSLACK> "
3043 "(the default value can't be changed).  The timer slack values of I<init> "
3044 "(PID 1), the ancestor of all processes, are 50,000 nanoseconds (50 "
3045 "microseconds).  The timer slack values are preserved across B<execve>(2)."
3046 msgstr ""
3047
3048 #. type: TP
3049 #: build/C/man2/prctl.2:534
3050 #, no-wrap
3051 msgid "B<PR_GET_TIMERSLACK> (since Linux 2.6.28)"
3052 msgstr "B<PR_GET_TIMERSLACK> (Linux 2.6.28 以降)"
3053
3054 #. type: Plain text
3055 #: build/C/man2/prctl.2:538
3056 msgid ""
3057 "Return (as the function result)  the current timer slack value of the "
3058 "calling thread."
3059 msgstr ""
3060 "呼び出し元スレッドの現在のタイマーのスラック値を (関数の結果として) 返す。"
3061
3062 #. type: TP
3063 #: build/C/man2/prctl.2:538
3064 #, no-wrap
3065 msgid "B<PR_SET_TIMING> (since Linux 2.6.0-test4)"
3066 msgstr "B<PR_SET_TIMING> (Linux 2.6.0-test4 以降)"
3067
3068 #.  0
3069 #.  1
3070 #.  PR_TIMING_TIMESTAMP doesn't do anything in 2.6.26-rc8,
3071 #.  and looking at the patch history, it appears
3072 #.  that it never did anything.
3073 #. type: Plain text
3074 #: build/C/man2/prctl.2:555
3075 msgid ""
3076 "Set whether to use (normal, traditional) statistical process timing or "
3077 "accurate timestamp-based process timing, by passing B<PR_TIMING_STATISTICAL> "
3078 "or B<PR_TIMING_TIMESTAMP> to I<arg2>.  B<PR_TIMING_TIMESTAMP> is not "
3079 "currently implemented (attempting to set this mode will yield the error "
3080 "B<EINVAL>)."
3081 msgstr ""
3082 "(通常の、伝統的に使われてきた) 統計的なプロセスタイミングを使用するか、 正確"
3083 "なタイムスタンプに基づくプロセスタイミングを使用するかを設定する。 I<arg2> に"
3084 "指定できる値は B<PR_TIMING_STATISTICAL> か B<PR_TIMING_TIMESTAMP> である。 "
3085 "B<PR_TIMING_TIMESTAMP> は現在のところ実装されていない (このモードに設定しよう"
3086 "とするとエラー B<EINVAL> が起こることだろう)。"
3087
3088 #. type: TP
3089 #: build/C/man2/prctl.2:555
3090 #, no-wrap
3091 msgid "B<PR_GET_TIMING> (since Linux 2.6.0-test4)"
3092 msgstr "B<PR_GET_TIMING> (Linux 2.6.0-test4 以降)"
3093
3094 #. type: Plain text
3095 #: build/C/man2/prctl.2:559
3096 msgid ""
3097 "Return (as the function result) which process timing method is currently in "
3098 "use."
3099 msgstr "現在使用中のプロセスタイミングを決める方法を (関数の結果として) 返す。"
3100
3101 #. type: TP
3102 #: build/C/man2/prctl.2:559
3103 #, no-wrap
3104 msgid "B<PR_TASK_PERF_EVENTS_DISABLE> (since Linux 2.6.31)"
3105 msgstr "B<PR_TASK_PERF_EVENTS_DISABLE> (Linux 2.6.31 以降)"
3106
3107 #. type: Plain text
3108 #: build/C/man2/prctl.2:568
3109 msgid ""
3110 "Disable all performance counters attached to the calling process, regardless "
3111 "of whether the counters were created by this process or another process.  "
3112 "Performance counters created by the calling process for other processes are "
3113 "unaffected.  For more information on performance counters, see the Linux "
3114 "kernel source file I<tools/perf/design.txt>."
3115 msgstr ""
3116 "呼び出したプロセスに接続されたすべての性能カウンターを無効にする。 カウンター"
3117 "がこのプロセスにより作成されたか他のプロセスにより作成されたかは関係ない。 呼"
3118 "び出したプロセスが他のプロセス用に作成した性能カウンターは影響を受けない。 性"
3119 "能カウンターの詳細については Linux カーネルソースの I<tools/perf/design.txt> "
3120 "を参照。"
3121
3122 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3123 #. type: Plain text
3124 #: build/C/man2/prctl.2:574
3125 msgid ""
3126 "Originally called B<PR_TASK_PERF_COUNTERS_DISABLE>; renamed (with same "
3127 "numerical value)  in Linux 2.6.32."
3128 msgstr ""
3129 "以前は B<PR_TASK_PERF_COUNTERS_DISABLE> と呼ばれていた。 Linux 2.6.32 で名前"
3130 "が変更された (数値は同じままである)。"
3131
3132 #. type: TP
3133 #: build/C/man2/prctl.2:574
3134 #, no-wrap
3135 msgid "B<PR_TASK_PERF_EVENTS_ENABLE> (since Linux 2.6.31)"
3136 msgstr "B<PR_TASK_PERF_EVENTS_ENABLE> (Linux 2.6.31 以降)"
3137
3138 #. type: Plain text
3139 #: build/C/man2/prctl.2:579
3140 msgid ""
3141 "The converse of B<PR_TASK_PERF_EVENTS_DISABLE>; enable performance counters "
3142 "attached to the calling process."
3143 msgstr ""
3144 "B<PR_TASK_PERF_EVENTS_DISABLE> の逆。 呼び出したプロセスに接続された性能カウ"
3145 "ンターを有効にする。"
3146
3147 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3148 #.  commit cdd6c482c9ff9c55475ee7392ec8f672eddb7be6
3149 #. type: Plain text
3150 #: build/C/man2/prctl.2:586
3151 msgid ""
3152 "Originally called B<PR_TASK_PERF_COUNTERS_ENABLE>; renamed in Linux 2.6.32."
3153 msgstr ""
3154 "以前は B<PR_TASK_PERF_COUNTERS_ENABLE> と呼ばれていた。 Linux 2.6.32 で名前が"
3155 "変更された。"
3156
3157 #. type: TP
3158 #: build/C/man2/prctl.2:586
3159 #, no-wrap
3160 msgid "B<PR_SET_TSC> (since Linux 2.6.26, x86 only)"
3161 msgstr "B<PR_SET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3162
3163 #. type: Plain text
3164 #: build/C/man2/prctl.2:599
3165 msgid ""
3166 "Set the state of the flag determining whether the timestamp counter can be "
3167 "read by the process.  Pass B<PR_TSC_ENABLE> to I<arg2> to allow it to be "
3168 "read, or B<PR_TSC_SIGSEGV> to generate a B<SIGSEGV> when the process tries "
3169 "to read the timestamp counter."
3170 msgstr ""
3171 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態を"
3172 "設定する。 読み出しを許可する場合は I<arg2> に B<PR_TSC_ENABLE> を、そのプロ"
3173 "セスがタイムスタンプ・カウンタを読み出そうとした際に B<SIGSEGV> を発生させる"
3174 "場合には B<PR_TSC_SIGSEGV> を渡す。"
3175
3176 #. type: TP
3177 #: build/C/man2/prctl.2:599
3178 #, no-wrap
3179 msgid "B<PR_GET_TSC> (since Linux 2.6.26, x86 only)"
3180 msgstr "B<PR_GET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3181
3182 #. type: Plain text
3183 #: build/C/man2/prctl.2:605
3184 msgid ""
3185 "Return the state of the flag determining whether the timestamp counter can "
3186 "be read, in the location pointed to by I<(int\\ *) arg2>."
3187 msgstr ""
3188 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態"
3189 "を I<(int\\ *) arg2> が指す場所に格納して返す。"
3190
3191 #. type: TP
3192 #: build/C/man2/prctl.2:605
3193 #, no-wrap
3194 msgid "B<PR_SET_UNALIGN>"
3195 msgstr "B<PR_SET_UNALIGN>"
3196
3197 #. type: Plain text
3198 #: build/C/man2/prctl.2:615
3199 msgid ""
3200 "(Only on: ia64, since Linux 2.3.48; parisc, since Linux 2.6.15; PowerPC, "
3201 "since Linux 2.6.18; Alpha, since Linux 2.6.22)  Set unaligned access control "
3202 "bits to I<arg2>.  Pass B<PR_UNALIGN_NOPRINT> to silently fix up unaligned "
3203 "user accesses, or B<PR_UNALIGN_SIGBUS> to generate B<SIGBUS> on unaligned "
3204 "user access."
3205 msgstr ""
3206 "(ia64 では Linux 2.3.48 以降; parisc では Linux 2.6.15 以降; PowerPC では "
3207 "Linux 2.6.18 以降; Alpha では Linux 2.6.22 以降; これらのアーキテクチャの"
3208 "み)  unaligned アクセス制御ビットを I<arg2> で指定された値に設定する。 指定で"
3209 "きる値は B<PR_UNALIGN_NOPRINT> (unaligned なユーザアクセスを黙って 修正する) "
3210 "か B<PR_UNALIGN_SIGBUS> (unaligned なユーザアクセスがあった場合 B<SIGBUS> を"
3211 "生成する) である。"
3212
3213 #. type: TP
3214 #: build/C/man2/prctl.2:615
3215 #, no-wrap
3216 msgid "B<PR_GET_UNALIGN>"
3217 msgstr "B<PR_GET_UNALIGN>"
3218
3219 #. type: Plain text
3220 #: build/C/man2/prctl.2:622
3221 msgid ""
3222 "(see B<PR_SET_UNALIGN> for information on versions and architectures)  "
3223 "Return unaligned access control bits, in the location pointed to by I<(int\\ "
3224 "*) arg2>."
3225 msgstr ""
3226 "(バージョンとアーキテクチャの情報は B<PR_SET_UNALIGN> 参照)  unaligned アクセ"
3227 "ス制御ビットの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
3228
3229 #. type: TP
3230 #: build/C/man2/prctl.2:622
3231 #, no-wrap
3232 msgid "B<PR_MCE_KILL> (since Linux 2.6.32)"
3233 msgstr "B<PR_MCE_KILL> (Linux 2.6.32 以降)"
3234
3235 #. type: Plain text
3236 #: build/C/man2/prctl.2:662
3237 msgid ""
3238 "Set the machine check memory corruption kill policy for the current thread.  "
3239 "If I<arg2> is B<PR_MCE_KILL_CLEAR>, clear the thread memory corruption kill "
3240 "policy and use the system-wide default.  (The system-wide default is defined "
3241 "by I</proc/sys/vm/memory_failure_early_kill>; see B<proc>(5).)  If I<arg2> "
3242 "is B<PR_MCE_KILL_SET>, use a thread-specific memory corruption kill policy.  "
3243 "In this case, I<arg3> defines whether the policy is I<early kill> "
3244 "(B<PR_MCE_KILL_EARLY>), I<late kill> (B<PR_MCE_KILL_LATE>), or the system-"
3245 "wide default (B<PR_MCE_KILL_DEFAULT>).  Early kill means that the thread "
3246 "receives a B<SIGBUS> signal as soon as hardware memory corruption is "
3247 "detected inside its address space.  In late kill mode, the process is killed "
3248 "only when it accesses a corrupted page.  See B<sigaction>(2)  for more "
3249 "information on the B<SIGBUS> signal.  The policy is inherited by children.  "
3250 "The remaining unused B<prctl>()  arguments must be zero for future "
3251 "compatibility."
3252 msgstr ""
3253
3254 #. type: TP
3255 #: build/C/man2/prctl.2:662
3256 #, no-wrap
3257 msgid "B<PR_MCE_KILL_GET> (since Linux 2.6.32)"
3258 msgstr "B<PR_MCE_KILL_GET> (Linux 2.6.32 以降)"
3259
3260 #. type: Plain text
3261 #: build/C/man2/prctl.2:668
3262 msgid ""
3263 "Return the current per-process machine check kill policy.  All unused "
3264 "B<prctl>()  arguments must be zero."
3265 msgstr ""
3266
3267 #. type: TP
3268 #: build/C/man2/prctl.2:668
3269 #, no-wrap
3270 msgid "B<PR_SET_MM> (since Linux 3.3)"
3271 msgstr "B<PR_SET_MM> (Linux 3.3 以降)"
3272
3273 #.  commit 028ee4be34a09a6d48bdf30ab991ae933a7bc036
3274 #. type: Plain text
3275 #: build/C/man2/prctl.2:689
3276 msgid ""
3277 "Modify certain kernel memory map descriptor fields of the calling process.  "
3278 "Usually these fields are set by the kernel and dynamic loader (see B<ld."
3279 "so>(8)  for more information) and a regular application should not use this "
3280 "feature.  However, there are cases, such as self-modifying programs, where a "
3281 "program might find it useful to change its own memory map.  This feature is "
3282 "available only if the kernel is built with the B<CONFIG_CHECKPOINT_RESTORE> "
3283 "option enabled.  The calling process must have the B<CAP_SYS_RESOURCE> "
3284 "capability.  The value in I<arg2> is one of the options below, while I<arg3> "
3285 "provides a new value for the option."
3286 msgstr ""
3287 "呼び出したプロセスのカーネルメモリマップディスクリプタのフィールドを変更す"
3288 "る。 これらのフィールドは通常カーネルと動的リンカーにより設定される (詳しい情"
3289 "報は B<ld.so> を参照)。 通常のアプリケーションはこの機能を利用すべきではな"
3290 "い。 しかしながら、自分を書き換えるプログラムなど、 プログラムが自分自身のメ"
3291 "モリマップを変更するのが有用な場面もある。 この機能はカーネルが "
3292 "B<CONFIG_CHECKPOINT_RESTORE> オプションを有効にして作成されている場合にのみ利"
3293 "用できる。 呼び出したプロセスは B<CAP_SYS_RESOURCE> ケーパビリティを持ってい"
3294 "なければならない。 I<arg2> の値には以下のいずれかを指定し、 I<arg3> でそのオ"
3295 "プションの新しい値を指定する。"
3296
3297 #. type: TP
3298 #: build/C/man2/prctl.2:690
3299 #, no-wrap
3300 msgid "B<PR_SET_MM_START_CODE>"
3301 msgstr "B<PR_SET_MM_START_CODE>"
3302
3303 #. type: Plain text
3304 #: build/C/man2/prctl.2:699
3305 msgid ""
3306 "Set the address above which the program text can run.  The corresponding "
3307 "memory area must be readable and executable, but not writable or sharable "
3308 "(see B<mprotect>(2)  and B<mmap>(2)  for more information)."
3309 msgstr ""
3310 "プログラムテキストを実行できるアドレスの上限を設定する。 対応するメモリ領域は"
3311 "読み出し可能で実行可能でなければならないが、 書き込み可能だったり共有可能だっ"
3312 "たりしてはならない (詳しい情報は B<mprotect>(2) と B<mmap>(2) 参照)。"
3313
3314 #. type: TP
3315 #: build/C/man2/prctl.2:699
3316 #, no-wrap
3317 msgid "B<PR_SET_MM_END_CODE>"
3318 msgstr "B<PR_SET_MM_END_CODE>"
3319
3320 #. type: Plain text
3321 #: build/C/man2/prctl.2:704
3322 msgid ""
3323 "Set the address below which the program text can run.  The corresponding "
3324 "memory area must be readable and executable, but not writable or sharable."
3325 msgstr ""
3326 "プログラムテキストを実行できるアドレスの下限を設定する。 対応するメモリ領域は"
3327 "読み出し可能で実行可能でなければならないが、 書き込み可能だったり共有可能だっ"
3328 "たりしてはならない。"
3329
3330 #. type: TP
3331 #: build/C/man2/prctl.2:704
3332 #, no-wrap
3333 msgid "B<PR_SET_MM_START_DATA>"
3334 msgstr "B<PR_SET_MM_START_DATA>"
3335
3336 #. type: Plain text
3337 #: build/C/man2/prctl.2:710
3338 msgid ""
3339 "Set the address above which initialized and uninitialized (bss) data are "
3340 "placed.  The corresponding memory area must be readable and writable, but "
3341 "not executable or sharable."
3342 msgstr ""
3343 "初期化済データや未初期化 (bss) データを配置する領域のアドレス上限を指定す"
3344 "る。 対応するメモリ領域は読み書き可能でなければならないが、 実行可能だったり"
3345 "共有可能だったりしてはならない。"
3346
3347 #. type: TP
3348 #: build/C/man2/prctl.2:710
3349 #, no-wrap
3350 msgid "B<PR_SET_MM_END_DATA>"
3351 msgstr "B<PR_SET_MM_END_DATA>"
3352
3353 #. type: Plain text
3354 #: build/C/man2/prctl.2:716
3355 msgid ""
3356 "Set the address below which initialized and uninitialized (bss) data are "
3357 "placed.  The corresponding memory area must be readable and writable, but "
3358 "not executable or sharable."
3359 msgstr ""
3360 "初期化済データや未初期化 (bss) データを配置する領域のアドレス下限を指定す"
3361 "る。 対応するメモリ領域は読み書き可能でなければならないが、 実行可能だったり"
3362 "共有可能だったりしてはならない。"
3363
3364 #. type: TP
3365 #: build/C/man2/prctl.2:716
3366 #, no-wrap
3367 msgid "B<PR_SET_MM_START_STACK>"
3368 msgstr "B<PR_SET_MM_START_STACK>"
3369
3370 #. type: Plain text
3371 #: build/C/man2/prctl.2:720
3372 msgid ""
3373 "Set the start address of the stack.  The corresponding memory area must be "
3374 "readable and writable."
3375 msgstr ""
3376 "スタックの開始アドレスを設定する。 対応するメモリ領域は読み書き可能でなければ"
3377 "ならない。"
3378
3379 #. type: TP
3380 #: build/C/man2/prctl.2:720
3381 #, no-wrap
3382 msgid "B<PR_SET_MM_START_BRK>"
3383 msgstr "B<PR_SET_MM_START_BRK>"
3384
3385 #. type: Plain text
3386 #: build/C/man2/prctl.2:732
3387 msgid ""
3388 "Set the address above which the program heap can be expanded with B<brk>(2)  "
3389 "call.  The address must be greater than the ending address of the current "
3390 "program data segment.  In addition, the combined size of the resulting heap "
3391 "and the size of the data segment can't exceed the B<RLIMIT_DATA> resource "
3392 "limit (see B<setrlimit>(2))."
3393 msgstr ""
3394 "B<brk>(2) コールで拡張できるプログラムのヒープ領域のアドレス上限を設定する。 "
3395 "このアドレスは、プログラムの現在のデータセグメントの最終アドレスより大きくな"
3396 "ければならない。 また、 変更後のヒープとデータセグメントのサイズを合わせたサ"
3397 "イズが B<RLIMIT_DATA> リソースリミットを超えることはできない "
3398 "(B<setrlimit>(2) 参照)。"
3399
3400 #. type: TP
3401 #: build/C/man2/prctl.2:732
3402 #, no-wrap
3403 msgid "B<PR_SET_MM_BRK>"
3404 msgstr "B<PR_SET_MM_BRK>"
3405
3406 #. type: Plain text
3407 #: build/C/man2/prctl.2:740
3408 msgid ""
3409 "Set the current B<brk>(2)  value.  The requirements for the address are the "
3410 "same as for the B<PR_SET_MM_START_BRK> option."
3411 msgstr ""
3412 "現在の B<brk>(2) 値を設定する。 このアドレスの要件は B<PR_SET_MM_START_BRK> "
3413 "オプションと同じである。"
3414
3415 #.  commit fe8c7f5cbf91124987106faa3bdf0c8b955c4cf7
3416 #. type: Plain text
3417 #: build/C/man2/prctl.2:743
3418 msgid "The following options are available since Linux 3.5."
3419 msgstr "以下のオプションは Linux 3.5 以降で利用できる。"
3420
3421 #. type: TP
3422 #: build/C/man2/prctl.2:743
3423 #, no-wrap
3424 msgid "B<PR_SET_MM_ARG_START>"
3425 msgstr "B<PR_SET_MM_ARG_START>"
3426
3427 #. type: Plain text
3428 #: build/C/man2/prctl.2:746
3429 msgid "Set the address above which the program command line is placed."
3430 msgstr "プログラムのコマンドラインを配置するアドレスの上限を設定する。"
3431
3432 #. type: TP
3433 #: build/C/man2/prctl.2:746
3434 #, no-wrap
3435 msgid "B<PR_SET_MM_ARG_END>"
3436 msgstr "B<PR_SET_MM_ARG_END>"
3437
3438 #. type: Plain text
3439 #: build/C/man2/prctl.2:749
3440 msgid "Set the address below which the program command line is placed."
3441 msgstr "プログラムのコマンドラインを配置するアドレスの下限を設定する。"
3442
3443 #. type: TP
3444 #: build/C/man2/prctl.2:749
3445 #, no-wrap
3446 msgid "B<PR_SET_MM_ENV_START>"
3447 msgstr "B<PR_SET_MM_ENV_START>"
3448
3449 #. type: Plain text
3450 #: build/C/man2/prctl.2:752
3451 msgid "Set the address above which the program environment is placed."
3452 msgstr ""
3453 "プログラムの環境情報 (environment) を配置するアドレスの上限を設定する。"
3454
3455 #. type: TP
3456 #: build/C/man2/prctl.2:752
3457 #, no-wrap
3458 msgid "B<PR_SET_MM_ENV_END>"
3459 msgstr "B<PR_SET_MM_ENV_END>"
3460
3461 #. type: Plain text
3462 #: build/C/man2/prctl.2:755
3463 msgid "Set the address below which the program environment is placed."
3464 msgstr ""
3465 "プログラムの環境情報 (environment) を配置するアドレスの下限を設定する。"
3466
3467 #. type: Plain text
3468 #: build/C/man2/prctl.2:768
3469 msgid ""
3470 "The address passed with B<PR_SET_MM_ARG_START>, B<PR_SET_MM_ARG_END>, "
3471 "B<PR_SET_MM_ENV_START>, and B<PR_SET_MM_ENV_END> should belong to a process "
3472 "stack area.  Thus, the corresponding memory area must be readable, writable, "
3473 "and (depending on the kernel configuration) have the B<MAP_GROWSDOWN> "
3474 "attribute set (see B<mmap>(2))."
3475 msgstr ""
3476 "B<PR_SET_MM_ARG_START>, B<PR_SET_MM_ARG_END>, B<PR_SET_MM_ENV_START>, "
3477 "B<PR_SET_MM_ENV_END> で指定されるアドレスはプロセスのスタック領域に属している"
3478 "必要がある。 したがって、これらのメモリ領域は読み書き可能でなければならな"
3479 "い。 また、 (カーネル設定によっては) B<MAP_GROWSDOWN> 属性がセットされていな"
3480 "ければならない (B<mmap>(2) 参照)。"
3481
3482 #. type: TP
3483 #: build/C/man2/prctl.2:768
3484 #, no-wrap
3485 msgid "B<PR_SET_MM_AUXV>"
3486 msgstr "B<PR_SET_MM_AUXV>"
3487
3488 #. type: Plain text
3489 #: build/C/man2/prctl.2:777
3490 msgid ""
3491 "Set a new auxiliary vector.  The I<arg3> argument should provide the address "
3492 "of the vector.  The I<arg4> is the size of the vector."
3493 msgstr ""
3494 "新しい補助ベクトル (auxiliary vector) を設定する。 I<arg3> 引き数はベクトルの"
3495 "アドレスを指定し、 I<arg4> はベクトルのサイズを指定する。"
3496
3497 #. type: TP
3498 #: build/C/man2/prctl.2:777
3499 #, no-wrap
3500 msgid "B<PR_SET_MM_EXE_FILE>"
3501 msgstr "B<PR_SET_MM_EXE_FILE>"
3502
3503 #.  commit b32dfe377102ce668775f8b6b1461f7ad428f8b6
3504 #. type: Plain text
3505 #: build/C/man2/prctl.2:789
3506 msgid ""
3507 "Supersede the I</proc/pid/exe> symbolic link with a new one pointing to a "
3508 "new executable file identified by the file descriptor provided in I<arg3> "
3509 "argument.  The file descriptor should be obtained with a regular B<open>(2)  "
3510 "call."
3511 msgstr ""
3512 "I</proc/pid/exe> シンボリックリンクを I<arg3> 引き数で渡された新しい実行可能"
3513 "なファイルディスクリプタを指すシンボリックリンクで置き換える。 ファイルディス"
3514 "クリプタは通常の B<open>(2) コールで取得すべきである。"
3515
3516 #. type: Plain text
3517 #: build/C/man2/prctl.2:796
3518 msgid ""
3519 "To change the symbolic link, one needs to unmap all existing executable "
3520 "memory areas, including those created by the kernel itself (for example the "
3521 "kernel usually creates at least one executable memory area for the ELF I<."
3522 "text> section)."
3523 msgstr ""
3524 "シンボリックリンクを変更するには、 既存の実行可能なメモリ領域のすべてをアン"
3525 "マップする必要がある。これにはカーネル自身が作成した領域も含まれる (例えば、"
3526 "カーネルは通常 ELF I<.text> セクションに少なくとも一つの実行可能なメモリ領域"
3527 "を作成する)。"
3528
3529 #. type: Plain text
3530 #: build/C/man2/prctl.2:802
3531 msgid ""
3532 "The second limitation is that such transitions can be done only once in a "
3533 "process life time.  Any further attempts will be rejected.  This should help "
3534 "system administrators monitor unusual symbolic-link transitions over all "
3535 "processes running on a system."
3536 msgstr ""
3537 "二つ目の制限は、このような変更はプロセスの生存期間で一度だけ行うことができる"
3538 "という点である。 一度変更を行った後で変更を行おうとすると拒否される。 この動"
3539 "作は、 システム管理者が、 システムで動作するすべてのプロセスが行う、 普通でな"
3540 "いシンボリックリンクの変更を監視するのを楽にする。"
3541
3542 #. type: Plain text
3543 #: build/C/man2/prctl.2:824
3544 msgid ""
3545 "On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3546 "B<PR_GET_THP_DISABLE>, B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, "
3547 "B<PR_GET_TIMERSLACK>, B<PR_GET_SECUREBITS>, B<PR_MCE_KILL_GET>, and (if it "
3548 "returns)  B<PR_GET_SECCOMP> return the nonnegative values described above.  "
3549 "All other I<option> values return 0 on success.  On error, -1 is returned, "
3550 "and I<errno> is set appropriately."
3551 msgstr ""
3552 "成功すると、 B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3553 "B<PR_GET_THP_DISABLE>, B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, "
3554 "B<PR_GET_TIMERSLACK>, B<PR_GET_SECUREBITS>, B<PR_MCE_KILL_GET>, "
3555 "B<PR_GET_SECCOMP> は上述の負でない値を返す (なお、B<PR_GET_SECCOMP> は返らな"
3556 "い場合もある)。 I<option> が他の値の場合は成功時に 0 を返す。 エラーの場"
3557 "合、-1 を返し、 I<errno> に適切な値を設定する。"
3558
3559 #. type: Plain text
3560 #: build/C/man2/prctl.2:829
3561 msgid "I<arg2> is an invalid address."
3562 msgstr "I<arg2> が不正なアドレスである。"
3563
3564 #. type: Plain text
3565 #: build/C/man2/prctl.2:834
3566 msgid "The value of I<option> is not recognized."
3567 msgstr "I<option> の値が理解できない。"
3568
3569 #. type: Plain text
3570 #: build/C/man2/prctl.2:846
3571 msgid ""
3572 "I<option> is B<PR_MCE_KILL> or B<PR_MCE_KILL_GET> or B<PR_SET_MM>, and "
3573 "unused B<prctl>()  arguments were not specified as zero."
3574 msgstr ""
3575 "I<option> が B<PR_MCE_KILL>, B<PR_MCE_KILL_GET>, B<PR_SET_MM> のいずれかで、"
3576 "かつ未使用の B<prctl>() 引き数に 0 が指定されていなかった。"
3577
3578 #. type: Plain text
3579 #: build/C/man2/prctl.2:851
3580 msgid "I<arg2> is not valid value for this I<option>."
3581 msgstr "I<arg2> が指定された I<option> で有効な値ではない。"
3582
3583 #. type: Plain text
3584 #: build/C/man2/prctl.2:860
3585 msgid ""
3586 "I<option> is B<PR_SET_SECCOMP> or B<PR_GET_SECCOMP>, and the kernel was not "
3587 "configured with B<CONFIG_SECCOMP>."
3588 msgstr ""
3589 "I<option> が B<PR_SET_SECCOMP> か B<PR_GET_SECCOMP> だが、カーネルが "
3590 "B<CONFIG_SECCOMP> を有効にして作成されていなかった。"
3591
3592 #. type: Plain text
3593 #: build/C/man2/prctl.2:866
3594 msgid "I<option> is B<PR_SET_MM>, and one of the following is true"
3595 msgstr "I<option> が B<PR_SET_MM> で、以下のいずれかが真である。"
3596
3597 #. type: Plain text
3598 #: build/C/man2/prctl.2:872
3599 msgid "I<arg4> or I<arg5> is nonzero;"
3600 msgstr "I<arg4> が I<arg5> で 0 以外である。"
3601
3602 #. type: Plain text
3603 #: build/C/man2/prctl.2:877
3604 msgid ""
3605 "I<arg3> is greater than B<TASK_SIZE> (the limit on the size of the user "
3606 "address space for this architecture);"
3607 msgstr ""
3608 "I<arg3> が B<TASK_SIZE> よりも大きい  (B<TASK_SIZE> はこのアーキテクチャーで"
3609 "ユーザー空間アドレススペースの最大サイズである)。"
3610
3611 #. type: Plain text
3612 #: build/C/man2/prctl.2:887
3613 msgid ""
3614 "I<arg2> is B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3615 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, or B<PR_SET_MM_START_STACK>, "
3616 "and the permissions of the corresponding memory area are not as required;"
3617 msgstr ""
3618 "I<arg2> が B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3619 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, B<PR_SET_MM_START_STACK> のど"
3620 "れかで、対応するメモリ領域のアクセス許可が要件を満たしていない。"
3621
3622 #. type: Plain text
3623 #: build/C/man2/prctl.2:899
3624 msgid ""
3625 "I<arg2> is B<PR_SET_MM_START_BRK> or B<PR_SET_MM_BRK>, and I<arg3> is less "
3626 "than or equal to the end of the data segment or specifies a value that would "
3627 "cause the B<RLIMIT_DATA> resource limit to be exceeded."
3628 msgstr ""
3629 "I<arg2> が B<PR_SET_MM_START_BRK> か B<PR_SET_MM_BRK> で、 I<arg3> データセグ"
3630 "メントの末尾と同じかそれより前か、 I<arg3> に B<RLIMIT_DATA> リソースリミット"
3631 "を超えてしまうような値が指定されている。"
3632
3633 #. type: Plain text
3634 #: build/C/man2/prctl.2:910
3635 msgid ""
3636 "I<option> is B<PR_SET_PTRACER> and I<arg2> is not 0, B<PR_SET_PTRACER_ANY>, "
3637 "or the PID of an existing process."
3638 msgstr ""
3639 "I<option> が B<PR_SET_PTRACER> で I<arg2> が 0, B<PR_SET_PTRACER_ANY>, 既存プ"
3640 "ロセスの PID のいずれでもない。"
3641
3642 #. type: Plain text
3643 #: build/C/man2/prctl.2:918
3644 msgid ""
3645 "I<option> is B<PR_SET_PDEATHSIG> and I<arg2> is not a valid signal number."
3646 msgstr ""
3647 "I<option> が B<PR_SET_PDEATHSIG> で、 I<arg2> で指定された値は無効なシグナル"
3648 "番号である。"
3649
3650 #. type: Plain text
3651 #: build/C/man2/prctl.2:929
3652 msgid ""
3653 "I<option> is B<PR_SET_DUMPABLE> and I<arg2> is neither B<SUID_DUMP_DISABLE> "
3654 "nor B<SUID_DUMP_USER>."
3655 msgstr ""
3656 "I<option> が B<PR_SET_DUMPABLE> で、 I<arg2> が B<SUID_DUMP_DISABLE> でも "
3657 "B<SUID_DUMP_USER> でもない。"
3658
3659 #. type: Plain text
3660 #: build/C/man2/prctl.2:938
3661 msgid ""
3662 "I<option> is B<PR_SET_TIMING> and I<arg2> is not B<PR_TIMING_STATISTICAL>."
3663 msgstr ""
3664 "I<option> が B<PR_SET_TIMING> で、 I<arg2> が B<PR_TIMING_STATISTICAL> ではな"
3665 "い。"
3666
3667 #. type: Plain text
3668 #: build/C/man2/prctl.2:952
3669 msgid ""
3670 "I<option> is B<PR_SET_NO_NEW_PRIVS> and I<arg2> is not equal to 1 or "
3671 "I<arg3>, I<arg4>, or I<arg5> is nonzero."
3672 msgstr ""
3673 "I<option> が B<PR_SET_NO_NEW_PRIVS> で、 I<arg2> が 1 以外か、 I<arg3>, "
3674 "I<arg4>, I<arg5> のどれかが 0 ではない。"
3675
3676 #. type: Plain text
3677 #: build/C/man2/prctl.2:964
3678 msgid ""
3679 "I<option> is B<PR_GET_NO_NEW_PRIVS> and I<arg2>, I<arg3>, I<arg4>, or "
3680 "I<arg5> is nonzero."
3681 msgstr ""
3682 "I<option> が B<PR_GET_NO_NEW_PRIVS> で、 I<arg2>, I<arg3>, I<arg4>, I<arg5> "
3683 "のどれかが 0 ではない。"
3684
3685 #. type: Plain text
3686 #: build/C/man2/prctl.2:975
3687 msgid ""
3688 "I<option> is B<PR_SET_THP_DISABLE> and I<arg3>, I<arg4>, or I<arg5> is "
3689 "nonzero."
3690 msgstr ""
3691 "I<option> が B<PR_SET_THP_DISABLE> で I<arg3>, I<arg4>, I<arg5> のどれかが 0 "
3692 "ではない。"
3693
3694 #. type: Plain text
3695 #: build/C/man2/prctl.2:987
3696 msgid ""
3697 "I<option> is B<PR_GET_THP_DISABLE> and I<arg2>, I<arg3>, I<arg4>, or I<arg5> "
3698 "is nonzero."
3699 msgstr ""
3700 "I<option> が B<PR_GET_THP_DISABLE> で I<arg2>, I<arg3>, I<arg4>, I<arg5> のい"
3701 "ずれが 0 ではない。"
3702
3703 #. type: Plain text
3704 #: build/C/man2/prctl.2:999
3705 msgid ""
3706 "I<option> is B<PR_SET_SECUREBITS>, and the caller does not have the "
3707 "B<CAP_SETPCAP> capability, or tried to unset a \"locked\" flag, or tried to "
3708 "set a flag whose corresponding locked flag was set (see B<capabilities>(7))."
3709 msgstr ""
3710 "I<option> が B<PR_SET_SECUREBITS> で、呼び出し元がケーパビリティ "
3711 "B<CAP_SETPCAP> を持っていない。 または、\"locked\" フラグを解除しようとし"
3712 "た。 または、locked フラグがセットされているフラグをセットしようとした "
3713 "(B<capabilities>(7)  参照)。"
3714
3715 #. type: Plain text
3716 #: build/C/man2/prctl.2:1009
3717 msgid ""
3718 "I<option> is B<PR_SET_KEEPCAPS>, and the callers's "
3719 "B<SECURE_KEEP_CAPS_LOCKED> flag is set (see B<capabilities>(7))."
3720 msgstr ""
3721 "I<option> が B<PR_SET_KEEPCAPS> で、呼び出し元のフラグ "
3722 "B<SECURE_KEEP_CAPS_LOCKED> がセットされている (B<capabilities>(7)  参照)。"
3723
3724 #. type: Plain text
3725 #: build/C/man2/prctl.2:1017
3726 msgid ""
3727 "I<option> is B<PR_CAPBSET_DROP>, and the caller does not have the "
3728 "B<CAP_SETPCAP> capability."
3729 msgstr ""
3730 "I<option> が B<PR_CAPBSET_DROP> で、呼び出し元がケーパビリティ "
3731 "B<CAP_SETPCAP> を持っていない。"
3732
3733 #. type: Plain text
3734 #: build/C/man2/prctl.2:1025
3735 msgid ""
3736 "I<option> is B<PR_SET_MM>, and the caller does not have the "
3737 "B<CAP_SYS_RESOURCE> capability."
3738 msgstr ""
3739 "I<option> が B<PR_SET_MM> で、呼び出し元がケーパビリティ B<CAP_SYS_RESOURCE> "
3740 "を持っていない。"
3741
3742 #. type: TP
3743 #: build/C/man2/prctl.2:1025
3744 #, no-wrap
3745 msgid "B<EACCES>"
3746 msgstr "B<EACCES>"
3747
3748 #. type: Plain text
3749 #: build/C/man2/prctl.2:1035
3750 msgid ""
3751 "I<option> is B<PR_SET_MM>, and I<arg3> is B<PR_SET_MM_EXE_FILE>, the file is "
3752 "not executable."
3753 msgstr ""
3754 "I<option> が B<PR_SET_MM>、かつ I<arg3> が B<PR_SET_MM_EXE_FILE> で、ファイル"
3755 "が実行可能ではない。"
3756
3757 #. type: TP
3758 #: build/C/man2/prctl.2:1035
3759 #, no-wrap
3760 msgid "B<EBUSY>"
3761 msgstr "B<EBUSY>"
3762
3763 #. type: Plain text
3764 #: build/C/man2/prctl.2:1046
3765 msgid ""
3766 "I<option> is B<PR_SET_MM>, I<arg3> is B<PR_SET_MM_EXE_FILE>, and this the "
3767 "second attempt to change the I</proc/pid/exe> symbolic link, which is "
3768 "prohibited."
3769 msgstr ""
3770 "I<option> が B<PR_SET_MM> で、 I<arg3> が B<PR_SET_MM_EXE_FILE> で、 I</proc/"
3771 "pid/exe> シンボリックリンクを変更しようとしたが、 禁止されている。"
3772
3773 #. type: TP
3774 #: build/C/man2/prctl.2:1046 build/C/man2/signalfd.2:266
3775 #: build/C/man2/timerfd_create.2:345
3776 #, no-wrap
3777 msgid "B<EBADF>"
3778 msgstr "B<EBADF>"
3779
3780 #.  The following can't actually happen, because prctl() in
3781 #.  seccomp mode will cause SIGKILL.
3782 #.  .TP
3783 #.  .B EPERM
3784 #.  .I option
3785 #.  is
3786 #.  .BR PR_SET_SECCOMP ,
3787 #.  and secure computing mode is already 1.
3788 #. type: Plain text
3789 #: build/C/man2/prctl.2:1065
3790 msgid ""
3791 "I<option> is B<PR_SET_MM>, I<arg3> is B<PR_SET_MM_EXE_FILE>, and the file "
3792 "descriptor passed in I<arg4> is not valid."
3793 msgstr ""
3794 "I<option> が B<PR_SET_MM> で、 I<arg3> が B<PR_SET_MM_EXE_FILE> で、 I<arg4> "
3795 "で渡されたファイルディスクリプタが有効ではない。"
3796
3797 #.  The library interface was added in glibc 2.0.6
3798 #. type: Plain text
3799 #: build/C/man2/prctl.2:1070
3800 msgid "The B<prctl>()  system call was introduced in Linux 2.1.57."
3801 msgstr "B<prctl>()  システムコールは Linux 2.1.57 で導入された。"
3802
3803 #. type: Plain text
3804 #: build/C/man2/prctl.2:1077
3805 msgid ""
3806 "This call is Linux-specific.  IRIX has a B<prctl>()  system call (also "
3807 "introduced in Linux 2.1.44 as irix_prctl on the MIPS architecture), with "
3808 "prototype"
3809 msgstr ""
3810 "このコールは Linux 特有である。 IRIX には B<prctl>()  システム・コールがある"
3811 "が (MIPS アーキテクチャにおいて irix_prctl として Linux 2.1.44 で同様に導入さ"
3812 "れた)、 そのプロトタイプは"
3813
3814 #. type: Plain text
3815 #: build/C/man2/prctl.2:1079
3816 msgid "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3817 msgstr "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3818
3819 #. type: Plain text
3820 #: build/C/man2/prctl.2:1084
3821 msgid ""
3822 "and options to get the maximum number of processes per user, get the maximum "
3823 "number of processors the calling process can use, find out whether a "
3824 "specified process is currently blocked, get or set the maximum stack size, "
3825 "and so on."
3826 msgstr ""
3827 "である。ユーザー当りのプロセス最大数を取得するオプション、 プロセスの使用でき"
3828 "る最大プロッサー数を取得するオプション、 現在特定のプロセスが停止(block)させ"
3829 "られているかどうか調べるオプション、 スタックサイズの最大値の取得や設定を行な"
3830 "うオプションなどがある。"
3831
3832 #. type: Plain text
3833 #: build/C/man2/prctl.2:1087
3834 msgid "B<signal>(2), B<core>(5)"
3835 msgstr "B<signal>(2), B<core>(5)"
3836
3837 #. type: TH
3838 #: build/C/man3/profil.3:28
3839 #, no-wrap
3840 msgid "PROFIL"
3841 msgstr "PROFIL"
3842
3843 #. type: Plain text
3844 #: build/C/man3/profil.3:31
3845 msgid "profil - execution time profile"
3846 msgstr "profil - 実行時間プロファイル (profile)"
3847
3848 #. type: Plain text
3849 #: build/C/man3/profil.3:34
3850 #, no-wrap
3851 msgid "B<#include E<lt>unistd.hE<gt>>\n"
3852 msgstr "B<#include E<lt>unistd.hE<gt>>\n"
3853
3854 #. type: Plain text
3855 #: build/C/man3/profil.3:37
3856 #, no-wrap
3857 msgid ""
3858 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3859 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3860 msgstr ""
3861 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3862 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3863
3864 #. type: Plain text
3865 #: build/C/man3/profil.3:46
3866 msgid ""
3867 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3868 msgstr ""
3869 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3870
3871 #. type: Plain text
3872 #: build/C/man3/profil.3:68
3873 msgid ""
3874 "This routine provides a means to find out in what areas your program spends "
3875 "most of its time.  The argument I<buf> points to I<bufsiz> bytes of core.  "
3876 "Every virtual 10 milliseconds, the user's program counter (PC)  is examined: "
3877 "I<offset> is subtracted and the result is multiplied by I<scale> and divided "
3878 "by 65536.  If the resulting value is less than I<bufsiz>, then the "
3879 "corresponding entry in I<buf> is incremented.  If I<buf> is NULL, profiling "
3880 "is disabled."
3881 msgstr ""
3882 "このルーティンはプログラムのどこの部分で時間を費やしているかを調べる 手段を提"
3883 "供する。引き数 I<buf> は I<bufsiz> バイトのメモリを指している。仮想の 10 ミリ"
3884 "秒ごとに、ユーザーの プログラム・カウンター (PC) が検査される: I<offset> が引"
3885 "かれ、その結果が I<scale> 倍され 65536 で割られる。 結果が I<bufsiz> より小さ"
3886 "い場合は I<buf> の対応するエントリがインクリメントされる。 I<buf> が NULL な"
3887 "らば、プロファイル (profile) は無効にされる。"
3888
3889 #. type: Plain text
3890 #: build/C/man3/profil.3:70
3891 msgid "Zero is always returned."
3892 msgstr "常に 0 が返される。"
3893
3894 #. type: Plain text
3895 #: build/C/man3/profil.3:72
3896 msgid "Similar to a call in SVr4 (but not POSIX.1-2001)."
3897 msgstr "SVr4 のコールに似ている (しかし POSIX.1-2001 ではない)。"
3898
3899 #. type: Plain text
3900 #: build/C/man3/profil.3:78
3901 msgid ""
3902 "B<profil>()  cannot be used on a program that also uses B<ITIMER_PROF> "
3903 "interval timers (see B<setitimer>(2))."
3904 msgstr ""
3905 "B<profil>()  は B<ITIMER_PROF> インターバル・タイマーも使用しているプログラム"
3906 "では使用できない (B<setitimer>(2)  参照)。"
3907
3908 #. type: Plain text
3909 #: build/C/man3/profil.3:81
3910 msgid ""
3911 "True kernel profiling provides more accurate results.  Libc 4.4 contained a "
3912 "kernel patch providing a system call profil."
3913 msgstr ""
3914 "本当のカーネル・プロファイルはより正確な結果を与える。 libc 4.4 にはシステム"
3915 "コール profil を提供するための カーネルパッチが含まれていた。"
3916
3917 #. type: Plain text
3918 #: build/C/man3/profil.3:87
3919 msgid ""
3920 "B<gprof>(1), B<sprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3921 msgstr ""
3922 "B<gprof>(1), B<sprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3923
3924 #. type: TH
3925 #: build/C/man3/psignal.3:30
3926 #, no-wrap
3927 msgid "PSIGNAL"
3928 msgstr "PSIGNAL"
3929
3930 #. type: TH
3931 #: build/C/man3/psignal.3:30
3932 #, no-wrap
3933 msgid "2010-10-06"
3934 msgstr "2010-10-06"
3935
3936 #. type: TH
3937 #: build/C/man3/psignal.3:30 build/C/man3/raise.3:29
3938 #: build/C/man7/sigevent.7:26
3939 #, no-wrap
3940 msgid "GNU"
3941 msgstr "GNU"
3942
3943 #. type: Plain text
3944 #: build/C/man3/psignal.3:33
3945 msgid "psignal, psiginfo - print signal message"
3946 msgstr "psignal, psiginfo - シグナルメッセージを表示"
3947
3948 #. type: Plain text
3949 #: build/C/man3/psignal.3:39
3950 #, no-wrap
3951 msgid ""
3952 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3953 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3954 msgstr ""
3955 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3956 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3957
3958 #. type: Plain text
3959 #: build/C/man3/psignal.3:41
3960 #, no-wrap
3961 msgid "B<extern const char *const >I<sys_siglist>B<[];>\n"
3962 msgstr "B<extern const char *const >I<sys_siglist>B<[];>\n"
3963
3964 #. type: Plain text
3965 #: build/C/man3/psignal.3:50
3966 msgid "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3967 msgstr "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3968
3969 #. type: Plain text
3970 #: build/C/man3/psignal.3:53
3971 msgid ""
3972 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3973 "200809L"
3974 msgstr ""
3975 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3976 "200809L"
3977
3978 #. type: Plain text
3979 #: build/C/man3/psignal.3:56
3980 msgid "I<sys_siglist>: _BSD_SOURCE"
3981 msgstr "I<sys_siglist>: _BSD_SOURCE"
3982
3983 #. type: Plain text
3984 #: build/C/man3/psignal.3:65
3985 msgid ""
3986 "The B<psignal>()  function displays a message on I<stderr> consisting of the "
3987 "string I<s>, a colon, a space, a string describing the signal number I<sig>, "
3988 "and a trailing newline.  If the string I<s> is NULL or empty, the colon and "
3989 "space are omitted.  If I<sig> is invalid, the message displayed will "
3990 "indicate an unknown signal."
3991 msgstr ""
3992 "B<psignal>() 関数は、文字列 I<s>、コロン、スペース、シグナル番号 I<sig> を説"
3993 "明する文字列、終端の改行から構成されるメッセージを I<stderr> に表示する。 文"
3994 "字列 I<s> が NULL か空の場合、コロンとスペースは省略される。 I<sig> が不正な"
3995 "らば、表示される メッセージは未知のシグナルを示す。"
3996
3997 #. type: Plain text
3998 #: build/C/man3/psignal.3:86
3999 msgid ""
4000 "The B<psiginfo>()  function is like B<psignal>(), except that it displays "
4001 "information about the signal described by I<pinfo>, which should point to a "
4002 "valid I<siginfo_t> structure.  As well as the signal description, "
4003 "B<psiginfo>()  displays information about the origin of the signal, and "
4004 "other information relevant to the signal (e.g., the relevant memory address "
4005 "for hardware-generated signals, the child process ID for B<SIGCHLD>, and the "
4006 "user ID and process ID of the sender, for signals set using B<kill>(2)  or "
4007 "B<sigqueue>(3))."
4008 msgstr ""
4009 "B<psiginfo>() 関数は B<psignal>() と同じだが、 I<pinfo> に書かれたシグナルの"
4010 "情報を表示する点が異なる。 I<pinfo> は有効な I<siginfo_t> 構造体を指している"
4011 "必要がある。 B<psiginfo>() は、 シグナルの説明だけでなく、 シグナルの送信元や"
4012 "そのシグナルに関連するその他の情報も表示する (例えば、ハードウェアが発生した"
4013 "シグナルの関連メモリアドレス、 B<SIGCHLD> の子プロセス ID、 I<kill>(2) や "
4014 "B<sigqueue>(3) を使って送信されたシグナルの送信元プロセスのユーザ ID とプロセ"
4015 "ス ID など)。"
4016
4017 #. type: Plain text
4018 #: build/C/man3/psignal.3:89
4019 msgid ""
4020 "The array I<sys_siglist> holds the signal description strings indexed by "
4021 "signal number."
4022 msgstr ""
4023 "配列 I<sys_siglist> はシグナルを説明する文字列を保持しており、 配列へのアクセ"
4024 "スにはシグナル番号を添え字として用いる事ができる。"
4025
4026 #. type: Plain text
4027 #: build/C/man3/psignal.3:95
4028 msgid "The B<psignal>()  and B<psiginfo>()  functions return no value."
4029 msgstr "関数 B<psignal>() と B<psiginfo>() は、値を返さない。"
4030
4031 #. type: Plain text
4032 #: build/C/man3/psignal.3:99
4033 msgid "The B<psiginfo>()  function was added to glibc in version 2.10."
4034 msgstr "B<psiginfo>() 関数は glibc バージョン 2.10 で追加された。"
4035
4036 #. type: Plain text
4037 #: build/C/man3/psignal.3:101
4038 msgid "POSIX.1-2008, 4.3BSD."
4039 msgstr "POSIX.1-2008, 4.3BSD."
4040
4041 #. type: Plain text
4042 #: build/C/man3/psignal.3:105
4043 msgid "In glibc versions up to 2.12, B<psiginfo>()  had the following bugs:"
4044 msgstr ""
4045 "バージョン 2.12 までの glibc では B<psiginfo>() には以下のバグがあった。"
4046
4047 #.  FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=12107
4048 #.  Reportedly now fixed; check glibc 2.13
4049 #. type: Plain text
4050 #: build/C/man3/psignal.3:109
4051 msgid "In some circumstances, a trailing newline is not printed."
4052 msgstr "特定の状況で、末尾の改行が出力されない。"
4053
4054 #.  FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=12108
4055 #.  Reportedly now fixed; check glibc 2.13
4056 #. type: Plain text
4057 #: build/C/man3/psignal.3:113
4058 msgid "Additional details are not displayed for real-time signals."
4059 msgstr "リアルタイムシグナルの場合に、追加の詳細情報が表示されない。"
4060
4061 #. type: Plain text
4062 #: build/C/man3/psignal.3:118
4063 msgid "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
4064 msgstr "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
4065
4066 #. type: TH
4067 #: build/C/man3/raise.3:29
4068 #, no-wrap
4069 msgid "RAISE"
4070 msgstr "RAISE"
4071
4072 #. type: TH
4073 #: build/C/man3/raise.3:29
4074 #, no-wrap
4075 msgid "2014-03-10"
4076 msgstr "2014-03-10"
4077
4078 #. type: Plain text
4079 #: build/C/man3/raise.3:32
4080 msgid "raise - send a signal to the caller"
4081 msgstr "raise - 呼び出し元にシグナルを送る"
4082
4083 #. type: Plain text
4084 #: build/C/man3/raise.3:37
4085 #, no-wrap
4086 msgid "B<int raise(int >I<sig>B<);>\n"
4087 msgstr "B<int raise(int >I<sig>B<);>\n"
4088
4089 #. type: Plain text
4090 #: build/C/man3/raise.3:43
4091 msgid ""
4092 "The B<raise>()  function sends a signal to the calling process or thread.  "
4093 "In a single-threaded program it is equivalent to"
4094 msgstr ""
4095 "B<raise>()  関数は、呼び出し元のプロセスもしくはスレッドにシグナルを送る。 シ"
4096 "ングルスレッドのプログラムでは、以下と等価である。"
4097
4098 #. type: Plain text
4099 #: build/C/man3/raise.3:47
4100 #, no-wrap
4101 msgid "kill(getpid(), sig);\n"
4102 msgstr "kill(getpid(), sig);\n"
4103
4104 #. type: Plain text
4105 #: build/C/man3/raise.3:51
4106 msgid "In a multithreaded program it is equivalent to"
4107 msgstr "マルチスレッドのプログラムでは、以下と等価である。"
4108
4109 #. type: Plain text
4110 #: build/C/man3/raise.3:55
4111 #, no-wrap
4112 msgid "pthread_kill(pthread_self(), sig);\n"
4113 msgstr "pthread_kill(pthread_self(), sig);\n"
4114
4115 #. type: Plain text
4116 #: build/C/man3/raise.3:61
4117 msgid ""
4118 "If the signal causes a handler to be called, B<raise>()  will return only "
4119 "after the signal handler has returned."
4120 msgstr ""
4121 "シグナルに起因してシグナル・ハンドラが呼び出される場合には、 B<raise>()  が返"
4122 "るのは必ずシグナル・ハンドラが返った後になる。"
4123
4124 #. type: Plain text
4125 #: build/C/man3/raise.3:64
4126 msgid "B<raise>()  returns 0 on success, and nonzero for failure."
4127 msgstr "成功した場合は 0 を、失敗した場合は 0 以外の値を返す。"
4128
4129 #. type: Plain text
4130 #: build/C/man3/raise.3:69
4131 msgid "The B<raise>()  function is thread-safe."
4132 msgstr "B<raise>() 関数はスレッドセーフである。"
4133
4134 #. type: Plain text
4135 #: build/C/man3/raise.3:71 build/C/man2/signal.2:112
4136 msgid "C89, C99, POSIX.1-2001."
4137 msgstr "C89, C99, POSIX.1-2001."
4138
4139 #.  2.3.2 used the obsolete tkill(), if available.
4140 #. type: Plain text
4141 #: build/C/man3/raise.3:82
4142 msgid ""
4143 "Since version 2.3.3, glibc implements B<raise>()  by calling B<tgkill>(2), "
4144 "if the kernel supports that system call.  Older glibc versions implemented "
4145 "B<raise>()  using B<kill>(2)."
4146 msgstr ""
4147 "glibc バージョン 2.3.3 以降では、カーネルが B<tgkill>(2) システムコールをサ"
4148 "ポートしている場合はB<raise>() は B<tgkill>(2) を使って実装されている。古い"
4149 "バージョンの glibc では、B<raise>() は B<kill>(2) を使って実装されている。"
4150
4151 #. type: Plain text
4152 #: build/C/man3/raise.3:89
4153 msgid ""
4154 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
4155 "B<signal>(7)"
4156 msgstr ""
4157 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
4158 "B<signal>(7)"
4159
4160 #. type: TH
4161 #: build/C/man2/restart_syscall.2:33
4162 #, no-wrap
4163 msgid "RESTART_SYSCALL"
4164 msgstr ""
4165
4166 #. type: Plain text
4167 #: build/C/man2/restart_syscall.2:36
4168 msgid ""
4169 "restart_syscall - restart a system call after interruption by a stop signal"
4170 msgstr ""
4171 "restart_syscall - 一時停止シグナルによる割り込み後にシステムコールを再開する"
4172
4173 #. type: Plain text
4174 #: build/C/man2/restart_syscall.2:38
4175 msgid "B<int restart_syscall(void);>"
4176 msgstr "B<int restart_syscall(void);>"
4177
4178 #. type: Plain text
4179 #: build/C/man2/restart_syscall.2:41
4180 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
4181 msgstr ""
4182 "I<注>: このシステムコールには、glibc のラッパー関数はない。「注意」の節を参"
4183 "照。"
4184
4185 #. type: Plain text
4186 #: build/C/man2/restart_syscall.2:53
4187 msgid ""
4188 "The B<restart_syscall>()  system call is used to restart certain system "
4189 "calls after a process that was stopped by a signal (e.g., B<SIGSTOP> or "
4190 "B<SIGTSTP>)  is later resumed after receiving a B<SIGCONT> signal.  This "
4191 "system call is designed only for internal use by the kernel."
4192 msgstr ""
4193
4194 #.  These system calls correspond to the special internal errno value
4195 #.  ERESTART_RESTARTBLOCK. Each of the system calls has a "restart"
4196 #.  helper function that is invoked by restart_syscall().
4197 #.  Notable (as at Linux 3.17) is that poll() has such a "restart"
4198 #.  function, but ppoll(), select(), and pselect() do not.
4199 #.  This means that the latter system calls do not take account of the
4200 #.  time spent in the stopped state when restarting.
4201 #. type: Plain text
4202 #: build/C/man2/restart_syscall.2:88
4203 msgid ""
4204 "B<restart_syscall>()  is used for restarting only those system calls that, "
4205 "when restarted, should adjust their time-related parameters\\(emnamely "
4206 "B<poll>(2)  (since Linux 2.6.24), B<nanosleep>(2)  (since Linux 2.6), "
4207 "B<clock_nanosleep>(2)  (since Linux 2.6), and B<futex>(2), when employed "
4208 "with the B<FUTEX_WAIT> (since Linux 2.6.22)  and B<FUTEX_WAIT_BITSET> (since "
4209 "Linux 2.6.31)  operations.  B<restart_syscall>()  restarts the interrupted "
4210 "system call with a time argument that is suitably adjusted to account for "
4211 "the time that has already elapsed (including the time where the process was "
4212 "stopped by a signal).  Without the B<restart_syscall>()  mechanism, "
4213 "restarting these system calls would not correctly deduct the already elapsed "
4214 "time when the process continued execution."
4215 msgstr ""
4216
4217 #. type: Plain text
4218 #: build/C/man2/restart_syscall.2:92
4219 msgid ""
4220 "The return value of B<restart_syscall>()  is the return value of whatever "
4221 "system call is being restarted."
4222 msgstr ""
4223
4224 #. type: Plain text
4225 #: build/C/man2/restart_syscall.2:96
4226 msgid ""
4227 "I<errno> is set as per the errors for whatever system call is being "
4228 "restarted by B<restart_syscall>()."
4229 msgstr ""
4230
4231 #. type: Plain text
4232 #: build/C/man2/restart_syscall.2:100
4233 msgid "The B<restart_syscall>()  system call is present since Linux 2.6."
4234 msgstr "B<restart_syscall>() システムコールは Linux 2.6 以降に存在する。"
4235
4236 #. type: Plain text
4237 #: build/C/man2/restart_syscall.2:102
4238 msgid "This system call is Linux-specific."
4239 msgstr "このシステムコールは Linux 固有である。"
4240
4241 #. type: Plain text
4242 #: build/C/man2/restart_syscall.2:106
4243 msgid ""
4244 "There is no glibc wrapper for this system call, because it is intended for "
4245 "use only by the kernel and should never be called by applications."
4246 msgstr ""
4247
4248 #. type: Plain text
4249 #: build/C/man2/restart_syscall.2:128
4250 msgid ""
4251 "The kernel uses B<restart_syscall>()  to ensure that when a system call is "
4252 "restarted after a process has been stopped by a signal and then resumed by "
4253 "B<SIGCONT>, then the time that the process spent in the stopped state is "
4254 "counted against the timeout interval specified in the original system call.  "
4255 "In the case of system calls that take a timeout argument and automatically "
4256 "restart after a stop signal plus B<SIGCONT>, but which do not have the "
4257 "B<restart_syscall>(2)  mechanism built in, then, after the process resumes "
4258 "execution, the time that the process spent in the stop state is I<not> "
4259 "counted against the timeout value.  Notable examples of system calls that "
4260 "suffer this problem are B<ppoll>(2), B<select>(2), and B<pselect>(2)."
4261 msgstr ""
4262
4263 #
4264 #. type: Plain text
4265 #: build/C/man2/restart_syscall.2:135
4266 msgid ""
4267 "From user space, the operation of B<restart_syscall>(2)  is largely "
4268 "invisible: to the process that made the system call that is restarted, it "
4269 "appears as though that system call executed and returned in the usual "
4270 "fashion."
4271 msgstr ""
4272
4273 #.  FIXME . ppoll(2), select(2), and pselect(2)
4274 #.      should probably get the restart_syscall() treatment:
4275 #.      If a select() call is suspended by stop-sig+SIGCONT, the time
4276 #.      spent suspended is *not* deducted when the select() is restarted.
4277 #.  FIXME . check whether recvmmsg() handles stop-sig+SIGCONT properly.
4278 #. type: Plain text
4279 #: build/C/man2/restart_syscall.2:144
4280 msgid "B<sigaction>(2), B<sigreturn>(2), B<signal>(7)"
4281 msgstr "B<sigaction>(2), B<sigreturn>(2), B<signal>(7)"
4282
4283 #. type: TH
4284 #: build/C/man2/rt_sigqueueinfo.2:25
4285 #, no-wrap
4286 msgid "RT_SIGQUEUEINFO"
4287 msgstr "RT_SIGQUEUEINFO"
4288
4289 #. type: TH
4290 #: build/C/man2/rt_sigqueueinfo.2:25
4291 #, no-wrap
4292 msgid "2012-07-13"
4293 msgstr "2012-07-13"
4294
4295 #. type: Plain text
4296 #: build/C/man2/rt_sigqueueinfo.2:28
4297 msgid "rt_sigqueueinfo, rt_tgsigqueueinfo - queue a signal and data"
4298 msgstr ""
4299
4300 #. type: Plain text
4301 #: build/C/man2/rt_sigqueueinfo.2:31
4302 #, no-wrap
4303 msgid "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
4304 msgstr "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
4305
4306 #. type: Plain text
4307 #: build/C/man2/rt_sigqueueinfo.2:34
4308 #, no-wrap
4309 msgid ""
4310 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
4311 "B<                      siginfo_t *>I<uinfo>B<);>\n"
4312 msgstr ""
4313 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
4314 "B<                      siginfo_t *>I<uinfo>B<);>\n"
4315
4316 #. type: Plain text
4317 #: build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/sgetmask.2:36
4318 #: build/C/man2/tkill.2:41
4319 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
4320 msgstr ""
4321 "I<注>: これらのシステムコールには、glibc のラッパー関数はない。「注意」の節を"
4322 "参照。"
4323
4324 #. type: Plain text
4325 #: build/C/man2/rt_sigqueueinfo.2:50
4326 msgid ""
4327 "The B<rt_sigqueueinfo>()  and B<rt_tgsigqueueinfo>()  system calls are the "
4328 "low-level interfaces used to send a signal plus data to a process or "
4329 "thread.  The receiver of the signal can obtain the accompanying data by "
4330 "establishing a signal handler with the B<sigaction>(2)  B<SA_SIGINFO> flag."
4331 msgstr ""
4332
4333 #. type: Plain text
4334 #: build/C/man2/rt_sigqueueinfo.2:56
4335 msgid ""
4336 "These system calls are not intended for direct application use; they are "
4337 "provided to allow the implementation of B<sigqueue>(3)  and "
4338 "B<pthread_sigqueue>(3)."
4339 msgstr ""
4340
4341 #. type: Plain text
4342 #: build/C/man2/rt_sigqueueinfo.2:68
4343 msgid ""
4344 "The B<rt_sigqueueinfo>()  system call sends the signal I<sig> to the thread "
4345 "group with the ID I<tgid>.  (The term \"thread group\" is synonymous with "
4346 "\"process\", and I<tid> corresponds to the traditional UNIX process ID.)  "
4347 "The signal will be delivered to an arbitrary member of the thread group (i."
4348 "e., one of the threads that is not currently blocking the signal)."
4349 msgstr ""
4350
4351 #. type: Plain text
4352 #: build/C/man2/rt_sigqueueinfo.2:79
4353 msgid ""
4354 "The I<uinfo> argument specifies the data to accompany the signal.  This "
4355 "argument is a pointer to a structure of type I<siginfo_t>, described in "
4356 "B<sigaction>(2)  (and defined by including I<E<lt>sigaction.hE<gt>>).  The "
4357 "caller should set the following fields in this structure:"
4358 msgstr ""
4359
4360 #. type: TP
4361 #: build/C/man2/rt_sigqueueinfo.2:79 build/C/man7/sigevent.7:88
4362 #: build/C/man2/wait.2:316
4363 #, no-wrap
4364 msgid "I<si_code>"
4365 msgstr "I<si_code>"
4366
4367 #.  tkill(2) or
4368 #. type: Plain text
4369 #: build/C/man2/rt_sigqueueinfo.2:95
4370 msgid ""
4371 "This must be one of the B<SI_*> codes in the Linux kernel source file "
4372 "I<include/asm-generic/siginfo.h>, with the restriction that the code must be "
4373 "negative (i.e., cannot be B<SI_USER>, which is used by the kernel to "
4374 "indicate a signal sent by B<kill>(2))  and cannot (since Linux 2.6.39) be "
4375 "B<SI_TKILL> (which is used by the kernel to indicate a signal sent using "
4376 "B<tgkill>(2))."
4377 msgstr ""
4378
4379 #. type: TP
4380 #: build/C/man2/rt_sigqueueinfo.2:95 build/C/man2/wait.2:295
4381 #, no-wrap
4382 msgid "I<si_pid>"
4383 msgstr "I<si_pid>"
4384
4385 #. type: Plain text
4386 #: build/C/man2/rt_sigqueueinfo.2:99
4387 msgid ""
4388 "This should be set to a process ID, typically the process ID of the sender."
4389 msgstr ""
4390
4391 #. type: TP
4392 #: build/C/man2/rt_sigqueueinfo.2:99 build/C/man2/wait.2:298
4393 #, no-wrap
4394 msgid "I<si_uid>"
4395 msgstr "I<si_uid>"
4396
4397 #. type: Plain text
4398 #: build/C/man2/rt_sigqueueinfo.2:103
4399 msgid ""
4400 "This should be set to a user ID, typically the real user ID of the sender."
4401 msgstr ""
4402
4403 #. type: TP
4404 #: build/C/man2/rt_sigqueueinfo.2:103 build/C/man7/sigevent.7:96
4405 #, no-wrap
4406 msgid "I<si_value>"
4407 msgstr "I<si_value>"
4408
4409 #. type: Plain text
4410 #: build/C/man2/rt_sigqueueinfo.2:110
4411 msgid ""
4412 "This field contains the user data to accompany the signal.  For more "
4413 "information, see the description of the last (I<union sigval>)  argument of "
4414 "B<sigqueue>(3)."
4415 msgstr ""
4416
4417 #. type: Plain text
4418 #: build/C/man2/rt_sigqueueinfo.2:117
4419 msgid ""
4420 "Internally, the kernel sets the I<si_signo> field to the value specified in "
4421 "I<sig>, so that the receiver of the signal can also obtain the signal number "
4422 "via that field."
4423 msgstr ""
4424
4425 #. type: Plain text
4426 #: build/C/man2/rt_sigqueueinfo.2:129
4427 msgid ""
4428 "The B<rt_tgsigqueueinfo>()  system call is like B<rt_sigqueueinfo>(), but "
4429 "sends the signal and data to the single thread specified by the combination "
4430 "of I<tgid>, a thread group ID, and I<tid>, a thread in that thread group."
4431 msgstr ""
4432
4433 #. type: Plain text
4434 #: build/C/man2/rt_sigqueueinfo.2:134
4435 msgid ""
4436 "On success, these system calls return 0.  On error, they return -1 and "
4437 "I<errno> is set to indicate the error."
4438 msgstr ""
4439
4440 #. type: TP
4441 #: build/C/man2/rt_sigqueueinfo.2:135 build/C/man3/sigqueue.3:92
4442 #: build/C/man2/sigwaitinfo.2:115 build/C/man2/timer_create.2:178
4443 #, no-wrap
4444 msgid "B<EAGAIN>"
4445 msgstr "B<EAGAIN>"
4446
4447 #. type: Plain text
4448 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man3/sigqueue.3:98
4449 msgid ""
4450 "The limit of signals which may be queued has been reached.  (See "
4451 "B<signal>(7)  for further information.)"
4452 msgstr ""
4453 "待ち行列に入れられるシグナルの最大数に達した (より詳しい情報は B<signal>(7)  "
4454 "を参照すること)。"
4455
4456 #. type: Plain text
4457 #: build/C/man2/rt_sigqueueinfo.2:148
4458 msgid "I<sig>, I<tgid>, or I<tid> was invalid."
4459 msgstr ""
4460
4461 #. type: Plain text
4462 #: build/C/man2/rt_sigqueueinfo.2:156
4463 msgid ""
4464 "The caller does not have permission to send the signal to the target.  For "
4465 "the required permissions, see B<kill>(2).  Or: I<uinfo-E<gt>si_code> is "
4466 "invalid."
4467 msgstr ""
4468
4469 #. type: Plain text
4470 #: build/C/man2/rt_sigqueueinfo.2:162
4471 msgid "B<rt_sigqueueinfo>(): No thread group matching I<tgid> was found."
4472 msgstr ""
4473
4474 #. type: Plain text
4475 #: build/C/man2/rt_sigqueueinfo.2:169
4476 msgid "B<rt_tgsigqueinfo>(): No thread matching I<tgid> and I<tid> was found."
4477 msgstr ""
4478
4479 #. type: Plain text
4480 #: build/C/man2/rt_sigqueueinfo.2:176
4481 msgid ""
4482 "The B<rt_sigqueueinfo>()  system call was added to Linux in version 2.2.  "
4483 "The B<rt_tgsigqueueinfo>()  system call was added to Linux in version 2.6.31."
4484 msgstr ""
4485
4486 #. type: Plain text
4487 #: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/sgetmask.2:75
4488 #: build/C/man2/timerfd_create.2:380
4489 msgid "These system calls are Linux-specific."
4490 msgstr "これらのシステムコールは Linux 固有である。"
4491
4492 #. type: Plain text
4493 #: build/C/man2/rt_sigqueueinfo.2:183
4494 msgid ""
4495 "Since these system calls are not intended for application use, there are no "
4496 "glibc wrapper functions; use B<syscall>(2)  in the unlikely case that you "
4497 "want to call them directly."
4498 msgstr ""
4499 "これらのシステムコールはアプリケーションでの使用を目的として用意されたわけで"
4500 "はないので、 glibc のラッパー関数は存在しない。おそらくないと思うが、このシス"
4501 "テムコールを直接呼び出したい場合は B<syscall>(2) を使うこと。"
4502
4503 #. type: Plain text
4504 #: build/C/man2/rt_sigqueueinfo.2:188
4505 msgid ""
4506 "As with B<kill>(2), the null signal (0) can be used to check if the "
4507 "specified process or thread exists."
4508 msgstr ""
4509
4510 #. type: Plain text
4511 #: build/C/man2/rt_sigqueueinfo.2:196
4512 msgid ""
4513 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4514 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4515 msgstr ""
4516 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4517 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4518
4519 #. type: TH
4520 #: build/C/man2/s390_runtime_instr.2:25
4521 #, no-wrap
4522 msgid "S390_RUNTIME_INSTR"
4523 msgstr ""
4524
4525 #. type: TH
4526 #: build/C/man2/s390_runtime_instr.2:25
4527 #, no-wrap
4528 msgid "2012-12-17"
4529 msgstr "2012-12-17"
4530
4531 #. type: Plain text
4532 #: build/C/man2/s390_runtime_instr.2:28
4533 msgid "s390_runtime_instr - enable/disable s390 CPU run-time instrumentation"
4534 msgstr ""
4535
4536 #. type: Plain text
4537 #: build/C/man2/s390_runtime_instr.2:31
4538 #, no-wrap
4539 msgid "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4540 msgstr "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4541
4542 #. type: Plain text
4543 #: build/C/man2/s390_runtime_instr.2:33
4544 #, no-wrap
4545 msgid "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4546 msgstr "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4547
4548 #. type: Plain text
4549 #: build/C/man2/s390_runtime_instr.2:39
4550 msgid ""
4551 "The B<s390_runtime_instr>()  system call starts or stops CPU run-time "
4552 "instrumentation for the calling thread."
4553 msgstr ""
4554
4555 #. type: Plain text
4556 #: build/C/man2/s390_runtime_instr.2:47
4557 msgid ""
4558 "The I<command> argument controls whether run-time instrumentation is started "
4559 "(B<S390_RUNTIME_INSTR_START>, 1) or stopped (B<S390_RUNTIME_INSTR_STOP>, 2) "
4560 "for the calling thread."
4561 msgstr ""
4562
4563 #. type: Plain text
4564 #: build/C/man2/s390_runtime_instr.2:54
4565 msgid ""
4566 "The I<signum> argument specifies the number of a real-time signal.  The real-"
4567 "time signal is sent to the thread if the run-time instrumentation buffer is "
4568 "full or if the run-time-instrumentation-halted interrupt occurred."
4569 msgstr ""
4570
4571 #. type: Plain text
4572 #: build/C/man2/s390_runtime_instr.2:65
4573 msgid ""
4574 "On success, B<s390_runtime_instr>()  returns 0 and enables the thread for "
4575 "run-time instrumentation by assigning the thread a default run-time "
4576 "instrumentation control block.  The caller can then read and modify the "
4577 "control block and start the run-time instrumentation.  On error, -1 is "
4578 "returned and I<errno> is set to one of the error codes listed below."
4579 msgstr ""
4580
4581 #. type: Plain text
4582 #: build/C/man2/s390_runtime_instr.2:73
4583 msgid ""
4584 "The value specified in I<command> is not a valid command or the value "
4585 "specified in I<signum> is not a real-time signal number."
4586 msgstr ""
4587
4588 #. type: Plain text
4589 #: build/C/man2/s390_runtime_instr.2:76
4590 msgid ""
4591 "Allocating memory for the run-time instrumentation control block failed."
4592 msgstr ""
4593
4594 #. type: TP
4595 #: build/C/man2/s390_runtime_instr.2:76
4596 #, no-wrap
4597 msgid "B<EOPNOTSUPP>"
4598 msgstr ""
4599
4600 #. type: Plain text
4601 #: build/C/man2/s390_runtime_instr.2:79
4602 msgid "The run-time instrumentation facility is not available."
4603 msgstr ""
4604
4605 #. type: Plain text
4606 #: build/C/man2/s390_runtime_instr.2:81
4607 msgid "This system call is available since Linux 3.7."
4608 msgstr "このシステムコールは Linux 3.7 で初めて登場した。"
4609
4610 #. type: Plain text
4611 #: build/C/man2/s390_runtime_instr.2:84
4612 msgid ""
4613 "This Linux-specific system call is available only on the s390 architecture.  "
4614 "The run-time instrumentation facility is available beginning with System z "
4615 "EC12."
4616 msgstr ""
4617
4618 #. type: Plain text
4619 #: build/C/man2/s390_runtime_instr.2:88
4620 msgid ""
4621 "Glibc does not provide a wrapper for this system call, use B<syscall>(2)  to "
4622 "call it."
4623 msgstr ""
4624 "glibc はこのシステムコールに対するラッパー関数を提供していない。 "
4625 "B<syscall>(2) を使用すること。"
4626
4627 #. type: Plain text
4628 #: build/C/man2/s390_runtime_instr.2:91
4629 msgid "B<syscall>(2), B<signal>(7)"
4630 msgstr "B<syscall>(2), B<signal>(7)"
4631
4632 #. type: TH
4633 #: build/C/man2/sgetmask.2:26
4634 #, no-wrap
4635 msgid "SGETMASK"
4636 msgstr "SGETMASK"
4637
4638 #. type: Plain text
4639 #: build/C/man2/sgetmask.2:29
4640 msgid "sgetmask, ssetmask - manipulation of signal mask (obsolete)"
4641 msgstr "sgetmask, ssetmask - シグナルマスクの操作 (廃止予定)"
4642
4643 #. type: Plain text
4644 #: build/C/man2/sgetmask.2:31
4645 msgid "B<long sgetmask(void);>"
4646 msgstr "B<long sgetmask(void);>"
4647
4648 #. type: Plain text
4649 #: build/C/man2/sgetmask.2:33
4650 msgid "B<long ssetmask(long >I<newmask>B<);>"
4651 msgstr "B<long ssetmask(long >I<newmask>B<);>"
4652
4653 #. type: Plain text
4654 #: build/C/man2/sgetmask.2:42
4655 msgid ""
4656 "These system calls are obsolete.  I<Do not use them>; use B<sigprocmask>(2)  "
4657 "instead."
4658 msgstr ""
4659 "これらのシステムコールは廃止予定であり、 「使用しないこと」。 代わりに "
4660 "B<sigprocmask>(2)  を使用すること。"
4661
4662 #. type: Plain text
4663 #: build/C/man2/sgetmask.2:45
4664 msgid "B<sgetmask>()  returns the signal mask of the calling process."
4665 msgstr "B<sgetmask>()  は、呼び出し元プロセスのシグナルマスクを返す。"
4666
4667 #. type: Plain text
4668 #: build/C/man2/sgetmask.2:50
4669 msgid ""
4670 "B<ssetmask>()  sets the signal mask of the calling process to the value "
4671 "given in I<newmask>.  The previous signal mask is returned."
4672 msgstr ""
4673 "B<ssetmask>()  は、呼び出し元プロセスのシグナルマスクを I<newmask> で指定され"
4674 "た値に設定し、変更前のシグナルマスクを返す。"
4675
4676 #. type: Plain text
4677 #: build/C/man2/sgetmask.2:59
4678 msgid ""
4679 "The signal masks dealt with by these two system calls are plain bit masks "
4680 "(unlike the I<sigset_t> used by B<sigprocmask>(2)); use B<sigmask>(3)  to "
4681 "create and inspect these masks."
4682 msgstr ""
4683 "これら二つのシステムコールが扱うシグナルマスクは、 単純なビットマスクである "
4684 "(この点が B<sigprocmask>(2)  で使用される I<sigset_t> と異なる)。 これらのマ"
4685 "スクを作成したり検査するには B<sigmask>(3)  を使用すること。"
4686
4687 #. type: Plain text
4688 #: build/C/man2/sgetmask.2:64
4689 msgid ""
4690 "B<sgetmask>()  always successfully returns the signal mask.  B<ssetmask>()  "
4691 "always succeeds, and returns the previous signal mask."
4692 msgstr ""
4693 "B<sgetmask>()  は常に成功し、シグナルマスクを返す。 B<ssetmask>()  は常に成功"
4694 "し、直前のシグナルマスクを返す。"
4695
4696 #. type: Plain text
4697 #: build/C/man2/sgetmask.2:66
4698 msgid "These system calls always succeed."
4699 msgstr "これらのシステムコールは常に成功する。"
4700
4701 #.  f6187769dae48234f3877df3c4d99294cc2254fa
4702 #. type: Plain text
4703 #: build/C/man2/sgetmask.2:73
4704 msgid ""
4705 "Since Linux 3.16, support for these system calls is optional, depending on "
4706 "whether the kernel was built with the B<CONFIG_SGETMASK_SYSCALL> option."
4707 msgstr ""
4708
4709 #. type: Plain text
4710 #: build/C/man2/sgetmask.2:79
4711 msgid ""
4712 "Glibc does not provide wrappers for these obsolete system calls; in the "
4713 "unlikely event that you want to call them, use B<syscall>(2)."
4714 msgstr ""
4715 "glibc はこれらの古いシステムコールに対するラッパー関数を提供していない。 あま"
4716 "りないと思うが、これらを呼び出したい場合には B<syscall>(2) を使うこと。"
4717
4718 #. type: Plain text
4719 #: build/C/man2/sgetmask.2:82
4720 msgid ""
4721 "These system calls are unaware of signal numbers greater than 31 (i.e., real-"
4722 "time signals)."
4723 msgstr ""
4724 "これらのシステムコールは、 31 より大きいシグナル番号 (つまり、リアルタイムシ"
4725 "グナル) を扱えない。"
4726
4727 #. type: Plain text
4728 #: build/C/man2/sgetmask.2:84
4729 msgid "These system calls do not exist on x86-64."
4730 msgstr "これらのシステムコールは x86-64 には存在しない。"
4731
4732 #. type: Plain text
4733 #: build/C/man2/sgetmask.2:89
4734 msgid "It is not possible to block B<SIGSTOP> or B<SIGKILL>."
4735 msgstr "B<SIGSTOP> や B<SIGKILL> をブロックすることはできない。"
4736
4737 #. type: Plain text
4738 #: build/C/man2/sgetmask.2:92
4739 msgid "B<sigprocmask>(2), B<signal>(7)"
4740 msgstr "B<sigprocmask>(2), B<signal>(7)"
4741
4742 #. type: TH
4743 #: build/C/man2/sigaction.2:47
4744 #, no-wrap
4745 msgid "SIGACTION"
4746 msgstr "SIGACTION"
4747
4748 #. type: Plain text
4749 #: build/C/man2/sigaction.2:50
4750 msgid "sigaction - examine and change a signal action"
4751 msgstr "sigaction - シグナルの動作の確認と変更"
4752
4753 #. type: Plain text
4754 #: build/C/man2/sigaction.2:56
4755 #, no-wrap
4756 msgid ""
4757 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4758 "B<              struct sigaction *>I<oldact>B<);>\n"
4759 msgstr ""
4760 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4761 "B<              struct sigaction *>I<oldact>B<);>\n"
4762
4763 #. type: Plain text
4764 #: build/C/man2/sigaction.2:66
4765 msgid ""
4766 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4767 "_POSIX_SOURCE"
4768 msgstr ""
4769 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4770 "_POSIX_SOURCE"
4771
4772 #. type: Plain text
4773 #: build/C/man2/sigaction.2:69
4774 msgid "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4775 msgstr "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4776
4777 #. type: Plain text
4778 #: build/C/man2/sigaction.2:78
4779 msgid ""
4780 "The B<sigaction>()  system call is used to change the action taken by a "
4781 "process on receipt of a specific signal.  (See B<signal>(7)  for an overview "
4782 "of signals.)"
4783 msgstr ""
4784 "B<sigaction>()  システムコールは、特定のシグナルを受信した際の プロセスの動作"
4785 "を変更するのに使用される (シグナルの概要については B<signal>(7)  を参照)。"
4786
4787 #. type: Plain text
4788 #: build/C/man2/sigaction.2:84
4789 msgid ""
4790 "I<signum> specifies the signal and can be any valid signal except B<SIGKILL> "
4791 "and B<SIGSTOP>."
4792 msgstr ""
4793 "I<signum> には、 B<SIGKILL> と B<SIGSTOP> 以外の有効なシグナルをどれでも指定"
4794 "できる。"
4795
4796 #. type: Plain text
4797 #: build/C/man2/sigaction.2:95
4798 msgid ""
4799 "If I<act> is non-NULL, the new action for signal I<signum> is installed from "
4800 "I<act>.  If I<oldact> is non-NULL, the previous action is saved in I<oldact>."
4801 msgstr ""
4802 "I<act> が NULL 以外であれば、シグナル I<signum> の新しい動作 (action) として "
4803 "I<act> が設定される。 I<oldact> が NULL でなければ、今までの動作が I<oldact> "
4804 "に格納される。"
4805
4806 #. type: Plain text
4807 #: build/C/man2/sigaction.2:99
4808 msgid "The I<sigaction> structure is defined as something like:"
4809 msgstr "I<sigaction> 構造体は以下のような感じに定義される。"
4810
4811 #. type: Plain text
4812 #: build/C/man2/sigaction.2:109
4813 #, no-wrap
4814 msgid ""
4815 "struct sigaction {\n"
4816 "    void     (*sa_handler)(int);\n"
4817 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4818 "    sigset_t   sa_mask;\n"
4819 "    int        sa_flags;\n"
4820 "    void     (*sa_restorer)(void);\n"
4821 "};\n"
4822 msgstr ""
4823 "struct sigaction {\n"
4824 "    void     (*sa_handler)(int);\n"
4825 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4826 "    sigset_t   sa_mask;\n"
4827 "    int        sa_flags;\n"
4828 "    void     (*sa_restorer)(void);\n"
4829 "};\n"
4830
4831 #. type: Plain text
4832 #: build/C/man2/sigaction.2:116
4833 msgid ""
4834 "On some architectures a union is involved: do not assign to both "
4835 "I<sa_handler> and I<sa_sigaction>."
4836 msgstr ""
4837 "アーキテクチャによっては共用体 (union) が用いられており、その場合には "
4838 "I<sa_handler> と I<sa_sigaction> の両方を同時に割り当てることはできない。"
4839
4840 #. type: Plain text
4841 #: build/C/man2/sigaction.2:125
4842 msgid ""
4843 "The I<sa_restorer> field is not intended for application use.  (POSIX does "
4844 "not specify a I<sa_restorer> field.)  Some further details of purpose of "
4845 "this field can be found in B<sigreturn>(2)."
4846 msgstr ""
4847
4848 #. type: Plain text
4849 #: build/C/man2/sigaction.2:135
4850 msgid ""
4851 "I<sa_handler> specifies the action to be associated with I<signum> and may "
4852 "be B<SIG_DFL> for the default action, B<SIG_IGN> to ignore this signal, or a "
4853 "pointer to a signal handling function.  This function receives the signal "
4854 "number as its only argument."
4855 msgstr ""
4856 "I<sa_handler> は I<signum> に対応する動作を指定するもので、 デフォルトの動作"
4857 "を行う B<SIG_DFL>、 そのシグナルを無視する B<SIG_IGN>、 シグナルハンドラ関数"
4858 "へのポインタが設定できる。 シグナルハンドラ関数の引き数は一つであり、シグナル"
4859 "番号が引き数として 渡される。"
4860
4861 #. type: Plain text
4862 #: build/C/man2/sigaction.2:157
4863 msgid ""
4864 "If B<SA_SIGINFO> is specified in I<sa_flags>, then I<sa_sigaction> (instead "
4865 "of I<sa_handler>)  specifies the signal-handling function for I<signum>.  "
4866 "This function receives the signal number as its first argument, a pointer to "
4867 "a I<siginfo_t> as its second argument and a pointer to a I<ucontext_t> (cast "
4868 "to I<void\\ *>) as its third argument.  (Commonly, the handler function "
4869 "doesn't make any use of the third argument.  See B<getcontext>(3)  for "
4870 "further information about I<ucontext_t>.)"
4871 msgstr ""
4872 "I<sa_flags> に B<SA_SIGINFO> が指定された場合、 (I<sa_handler> ではなく) "
4873 "I<sa_sigaction> により I<signum> に対応するシグナルハンドラ関数が指定される。"
4874 "指定される関数は、最初の引き数としてシグナル番号を、二番目の引き数として "
4875 "I<siginfo_t> へのポインタを、三番目の引き数として (I<void\\ *> にキャストし"
4876 "た) I<ucontext_t> へのポインタを受けとる。 (一般的には、ハンドラ関数の三番目"
4877 "の引き数が使用されない。I<ucontext_t> についての詳しい情報は "
4878 "B<getcontext>(3) を参照。)"
4879
4880 #. type: Plain text
4881 #: build/C/man2/sigaction.2:167
4882 msgid ""
4883 "I<sa_mask> specifies a mask of signals which should be blocked (i.e., added "
4884 "to the signal mask of the thread in which the signal handler is invoked)  "
4885 "during execution of the signal handler.  In addition, the signal which "
4886 "triggered the handler will be blocked, unless the B<SA_NODEFER> flag is used."
4887 msgstr ""
4888 "I<sa_mask> は、シグナル・ハンドラ実行中に禁止 (block) すべきシグナルのマスク"
4889 "を指定する (ハンドラ実行中のシグナルの禁止は、シグナル・ハンドラが起動された"
4890 "スレッド のシグナルのマスクに追加することで行われる)。 さらに、 "
4891 "B<SA_NODEFER> フラグが指定されていない場合は、ハンドラを起動するきっかけとな"
4892 "る シグナルにも I<sa_mask> が適用される。"
4893
4894 #. type: Plain text
4895 #: build/C/man2/sigaction.2:171
4896 msgid ""
4897 "I<sa_flags> specifies a set of flags which modify the behavior of the "
4898 "signal.  It is formed by the bitwise OR of zero or more of the following:"
4899 msgstr ""
4900 "I<sa_flags> はシグナル・ハンドラの動作を変更するためのフラグの集合を指定す"
4901 "る。 I<sa_flags> には、以下に示すフラグの (0 個以上の) 論理和をとったものを指"
4902 "定する。"
4903
4904 #. type: TP
4905 #: build/C/man2/sigaction.2:172
4906 #, no-wrap
4907 msgid "B<SA_NOCLDSTOP>"
4908 msgstr "B<SA_NOCLDSTOP>"
4909
4910 #. type: Plain text
4911 #: build/C/man2/sigaction.2:189
4912 msgid ""
4913 "If I<signum> is B<SIGCHLD>, do not receive notification when child processes "
4914 "stop (i.e., when they receive one of B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, or "
4915 "B<SIGTTOU>)  or resume (i.e., they receive B<SIGCONT>)  (see B<wait>(2)).  "
4916 "This flag is meaningful only when establishing a handler for B<SIGCHLD>."
4917 msgstr ""
4918 "I<signum> が B<SIGCHLD> の場合、 子プロセスが停止したり (子プロセスが "
4919 "B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, B<SIGTTOU> を受けたとき) 再開したり (子プ"
4920 "ロセスが B<SIGCONT> を受けたとき) したときに B<SIGCHLD> の通知を受けない。 こ"
4921 "のフラグは、 B<SIGCHLD> に対してハンドラを設定する際にのみ意味を持つ。"
4922
4923 #. type: TP
4924 #: build/C/man2/sigaction.2:189
4925 #, no-wrap
4926 msgid "B<SA_NOCLDWAIT> (since Linux 2.6)"
4927 msgstr "B<SA_NOCLDWAIT> (Linux 2.6 以降)"
4928
4929 #.  To be precise: Linux 2.5.60 -- MTK
4930 #. type: Plain text
4931 #: build/C/man2/sigaction.2:203
4932 msgid ""
4933 "If I<signum> is B<SIGCHLD>, do not transform children into zombies when they "
4934 "terminate.  See also B<waitpid>(2).  This flag is meaningful only when "
4935 "establishing a handler for B<SIGCHLD>, or when setting that signal's "
4936 "disposition to B<SIG_DFL>."
4937 msgstr ""
4938 "(Linux 2.6 以降)  I<signum> が B<SIGCHLD> の場合、子プロセスが終了したときに "
4939 "子プロセスをゾンビプロセスに変化させない (B<waitpid>(2)  も参照)。 このフラグ"
4940 "は、 B<SIGCHLD> に対してハンドラを設定する際、もしくはそのシグナルの処理方法"
4941 "を B<SIG_DFL> に設定する際にのみ意味を持つ。"
4942
4943 #. type: Plain text
4944 #: build/C/man2/sigaction.2:215
4945 msgid ""
4946 "If the B<SA_NOCLDWAIT> flag is set when establishing a handler for "
4947 "B<SIGCHLD>, POSIX.1 leaves it unspecified whether a B<SIGCHLD> signal is "
4948 "generated when a child process terminates.  On Linux, a B<SIGCHLD> signal is "
4949 "generated in this case; on some other implementations, it is not."
4950 msgstr ""
4951 "B<SIGCHLD> に対してハンドラを設定する際に B<SA_NOCLDWAIT> フラグをセットした"
4952 "場合、 子プロセスが終了した際に B<SIGCHLD> シグナルが生成されるかどうかは、 "
4953 "POSIX.1 では規定されていない。 Linux では、この状況で B<SIGCHLD> シグナルは生"
4954 "成される。 いくつかの他の実装では生成されない。"
4955
4956 #. type: TP
4957 #: build/C/man2/sigaction.2:215
4958 #, no-wrap
4959 msgid "B<SA_NODEFER>"
4960 msgstr "B<SA_NODEFER>"
4961
4962 #. type: Plain text
4963 #: build/C/man2/sigaction.2:222
4964 msgid ""
4965 "Do not prevent the signal from being received from within its own signal "
4966 "handler.  This flag is meaningful only when establishing a signal handler.  "
4967 "B<SA_NOMASK> is an obsolete, nonstandard synonym for this flag."
4968 msgstr ""
4969 "それ自身のシグナル・ハンドラーの内部にいる時でも そのシグナルをマスクしないよ"
4970 "うにする。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 "
4971 "B<SA_NOMASK> はこのフラグと同じ意味だが、廃止されており、非標準である。"
4972
4973 #. type: TP
4974 #: build/C/man2/sigaction.2:222
4975 #, no-wrap
4976 msgid "B<SA_ONSTACK>"
4977 msgstr "B<SA_ONSTACK>"
4978
4979 #. type: Plain text
4980 #: build/C/man2/sigaction.2:228
4981 msgid ""
4982 "Call the signal handler on an alternate signal stack provided by "
4983 "B<sigaltstack>(2).  If an alternate stack is not available, the default "
4984 "stack will be used.  This flag is meaningful only when establishing a signal "
4985 "handler."
4986 msgstr ""
4987 "B<sigaltstack>(2)  で提供される別のシグナル・スタックでシグナルハンドラを呼び"
4988 "出す。 別のシグナル・スタックが利用可能でなければ、デフォルトのスタックが 使"
4989 "用される。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。"
4990
4991 #. type: TP
4992 #: build/C/man2/sigaction.2:228
4993 #, no-wrap
4994 msgid "B<SA_RESETHAND>"
4995 msgstr "B<SA_RESETHAND>"
4996
4997 #. type: Plain text
4998 #: build/C/man2/sigaction.2:234
4999 msgid ""
5000 "Restore the signal action to the default upon entry to the signal handler.  "
5001 "This flag is meaningful only when establishing a signal handler.  "
5002 "B<SA_ONESHOT> is an obsolete, nonstandard synonym for this flag."
5003 msgstr ""
5004 "シグナルハンドラを設定する際に、シグナルの動作をデフォルトに戻す。 このフラグ"
5005 "はシグナルハンドラを設定する際にのみ意味を持つ。 B<SA_ONESHOT> はこのフラグと"
5006 "同じ意味だが、廃止されており、非標準である。"
5007
5008 #. type: TP
5009 #: build/C/man2/sigaction.2:234
5010 #, no-wrap
5011 msgid "B<SA_RESTART>"
5012 msgstr "B<SA_RESTART>"
5013
5014 #. type: Plain text
5015 #: build/C/man2/sigaction.2:242
5016 msgid ""
5017 "Provide behavior compatible with BSD signal semantics by making certain "
5018 "system calls restartable across signals.  This flag is meaningful only when "
5019 "establishing a signal handler.  See B<signal>(7)  for a discussion of system "
5020 "call restarting."
5021 msgstr ""
5022 "いくつかのシステムコールをシグナルの通知の前後で再開できるようにして、 BSD シ"
5023 "グナル方式 (semantics) と互換性のある動作を提供する。 このフラグはシグナルハ"
5024 "ンドラを設定する際にのみ意味を持つ。 B<signal>(7)  に書かれているシステムコー"
5025 "ルの再開に関する議論を参照のこと。"
5026
5027 #. type: TP
5028 #: build/C/man2/sigaction.2:242
5029 #, no-wrap
5030 msgid "B<SA_RESTORER>"
5031 msgstr "B<SA_RESTORER>"
5032
5033 #. type: Plain text
5034 #: build/C/man2/sigaction.2:251
5035 msgid ""
5036 "I<Not intended for application use>.  This flag is used by C libraries to "
5037 "indicate that the I<sa_restorer> field contains the address of a \"signal "
5038 "trampoline\".  See B<sigreturn>(2)  for more details."
5039 msgstr ""
5040
5041 #. type: TP
5042 #: build/C/man2/sigaction.2:251
5043 #, no-wrap
5044 msgid "B<SA_SIGINFO> (since Linux 2.2)"
5045 msgstr "B<SA_SIGINFO> (Linux 2.2 以降)"
5046
5047 #.  (The
5048 #.  .I sa_sigaction
5049 #.  field was added in Linux 2.1.86.)
5050 #. type: Plain text
5051 #: build/C/man2/sigaction.2:262
5052 msgid ""
5053 "The signal handler takes three arguments, not one.  In this case, "
5054 "I<sa_sigaction> should be set instead of I<sa_handler>.  This flag is "
5055 "meaningful only when establishing a signal handler."
5056 msgstr ""
5057 "シグナルハンドラは一つではなく、三つの引き数を持つ。この場合は I<sa_handler> "
5058 "のかわりに I<sa_sigaction> を設定しなければならない このフラグはシグナルハン"
5059 "ドラを設定する際にのみ意味を持つ。"
5060
5061 #. type: Plain text
5062 #: build/C/man2/sigaction.2:269
5063 msgid ""
5064 "The I<siginfo_t> argument to I<sa_sigaction> is a struct with the following "
5065 "fields:"
5066 msgstr "I<sa_sigaction> のパラメータ I<siginfo_t> は以下のフィールドを持つ構造体である:"
5067
5068 #.  FIXME
5069 #.  The siginfo_t 'si_trapno' field seems to be used only on SPARC and Alpha;
5070 #.  this page could use a little more detail on its purpose there.
5071 #.  In the kernel: si_tid
5072 #. type: Plain text
5073 #: build/C/man2/sigaction.2:300
5074 #, no-wrap
5075 msgid ""
5076 "siginfo_t {\n"
5077 "    int      si_signo;    /* Signal number */\n"
5078 "    int      si_errno;    /* An errno value */\n"
5079 "    int      si_code;     /* Signal code */\n"
5080 "    int      si_trapno;   /* Trap number that caused\n"
5081 "                             hardware-generated signal\n"
5082 "                             (unused on most architectures) */\n"
5083 "    pid_t    si_pid;      /* Sending process ID */\n"
5084 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
5085 "    int      si_status;   /* Exit value or signal */\n"
5086 "    clock_t  si_utime;    /* User time consumed */\n"
5087 "    clock_t  si_stime;    /* System time consumed */\n"
5088 "    sigval_t si_value;    /* Signal value */\n"
5089 "    int      si_int;      /* POSIX.1b signal */\n"
5090 "    void    *si_ptr;      /* POSIX.1b signal */\n"
5091 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
5092 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
5093 "    void    *si_addr;     /* Memory location which caused fault */\n"
5094 "    long     si_band;     /* Band event (was I<int> in\n"
5095 "                             glibc 2.3.2 and earlier) */\n"
5096 "    int      si_fd;       /* File descriptor */\n"
5097 "    short    si_addr_lsb; /* Least significant bit of address\n"
5098 "                             (since Linux 2.6.32) */\n"
5099 "}\n"
5100 msgstr ""
5101 "siginfo_t {\n"
5102 "    int      si_signo;    /* Signal number */\n"
5103 "    int      si_errno;    /* An errno value */\n"
5104 "    int      si_code;     /* Signal code */\n"
5105 "    int      si_trapno;   /* Trap number that caused\n"
5106 "                             hardware-generated signal\n"
5107 "                             (unused on most architectures) */\n"
5108 "    pid_t    si_pid;      /* Sending process ID */\n"
5109 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
5110 "    int      si_status;   /* Exit value or signal */\n"
5111 "    clock_t  si_utime;    /* User time consumed */\n"
5112 "    clock_t  si_stime;    /* System time consumed */\n"
5113 "    sigval_t si_value;    /* Signal value */\n"
5114 "    int      si_int;      /* POSIX.1b signal */\n"
5115 "    void    *si_ptr;      /* POSIX.1b signal */\n"
5116 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
5117 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
5118 "    void    *si_addr;     /* Memory location which caused fault */\n"
5119 "    long     si_band;     /* Band event (was I<int> in\n"
5120 "                             glibc 2.3.2 and earlier) */\n"
5121 "    int      si_fd;       /* File descriptor */\n"
5122 "    short    si_addr_lsb; /* Least significant bit of address\n"
5123 "                             (since Linux 2.6.32) */\n"
5124 "}\n"
5125
5126 #. type: Plain text
5127 #: build/C/man2/sigaction.2:309
5128 msgid ""
5129 "I<si_signo>, I<si_errno> and I<si_code> are defined for all signals.  "
5130 "(I<si_errno> is generally unused on Linux.)  The rest of the struct may be a "
5131 "union, so that one should read only the fields that are meaningful for the "
5132 "given signal:"
5133 msgstr ""
5134 "I<si_signo>, I<si_errno>, I<si_code> は全てのシグナルに対して定義されている "
5135 "(I<si_errno> は Linux では一般的には使用されない)。 構造体の残りの部分は、共"
5136 "用体 (union) になっているかもしれない。 その場合は該当するシグナルにおいて意"
5137 "味のあるフィールドのみを読み込む ことができる。"
5138
5139 #. type: Plain text
5140 #: build/C/man2/sigaction.2:324
5141 msgid ""
5142 "Signals sent with B<kill>(2)  and B<sigqueue>(3)  fill in I<si_pid> and "
5143 "I<si_uid>.  In addition, signals sent with B<sigqueue>(3)  fill in I<si_int> "
5144 "and I<si_ptr> with the values specified by the sender of the signal; see "
5145 "B<sigqueue>(3)  for more details."
5146 msgstr ""
5147 "B<kill>(2) や B<sigqueue>(3) で送信されたシグナルでは I<si_pid> と I<si_uid> "
5148 "が設定される。 さらに、 B<sigqueue>(3) で送信されたシグナルでは I<si_int> と "
5149 "I<si_pid> にシグナルの送信者により指定された値が設定される。詳細は "
5150 "B<sigqueue>(3) を参照。"
5151
5152 #. type: Plain text
5153 #: build/C/man2/sigaction.2:340
5154 msgid ""
5155 "Signals sent by POSIX.1b timers (since Linux 2.6) fill in I<si_overrun> and "
5156 "I<si_timerid>.  The I<si_timerid> field is an internal ID used by the kernel "
5157 "to identify the timer; it is not the same as the timer ID returned by "
5158 "B<timer_create>(2).  The I<si_overrun> field is the timer overrun count; "
5159 "this is the same information as is obtained by a call to "
5160 "B<timer_getoverrun>(2).  These fields are nonstandard Linux extensions."
5161 msgstr ""
5162 "POSIX.1b タイマ (Linux 2.6 以降) は I<si_overrun> と I<si_timerid> を設定す"
5163 "る。 I<si_timerid> フィールドはカーネルがタイマを特定するのに使用する内部 ID "
5164 "であり、 B<timer_create>(2) が返すタイマ ID と同じではない。 I<si_overrun> "
5165 "フィールドはタイマが回り切った回数である。 これは B<timer_getoverrun>(2) の呼"
5166 "び出しで取得できる情報と同じである。 これらのフィールドは非標準で Linux によ"
5167 "る拡張である。"
5168
5169 #. type: Plain text
5170 #: build/C/man2/sigaction.2:355
5171 msgid ""
5172 "Signals sent for message queue notification (see the description of "
5173 "B<SIGEV_SIGNAL> in B<mq_notify>(3))  fill in I<si_int>/I<si_ptr>, with the "
5174 "I<sigev_value> supplied to B<mq_notify>(3); I<si_pid>, with the process ID "
5175 "of the message sender; and I<si_uid>, with the real user ID of the message "
5176 "sender."
5177 msgstr ""
5178 "メッセージキューの通知用に送信されたシグナル (B<mq_notify>(3) の "
5179 "B<SIGEV_SIGNAL> の説明を参照) では、 I<si_int>/I<si_ptr> に B<mq_notify>(3) "
5180 "に渡された I<sigev_value> が設定される。 I<si_pid> にはメッセージ送信者のプロ"
5181 "セス ID が設定され、 I<si_uid> にはメッセージ送信者の実ユーザ ID が設定され"
5182 "る。"
5183
5184 #.  FIXME .
5185 #.  When si_utime and si_stime where originally implemented, the
5186 #.  measurement unit was HZ, which was the same as clock ticks
5187 #.  (sysconf(_SC_CLK_TCK)).  In 2.6, HZ became configurable, and
5188 #.  was *still* used as the unit to return the info these fields,
5189 #.  with the result that the field values depended on the the
5190 #.  configured HZ.  Of course, the should have been measured in
5191 #.  USER_HZ instead, so that sysconf(_SC_CLK_TCK) could be used to
5192 #.  convert to seconds.  I have a queued patch to fix this:
5193 #.  http://thread.gmane.org/gmane.linux.kernel/698061/ .
5194 #.  This patch made it into 2.6.27.
5195 #.  But note that these fields still don't return the times of
5196 #.  waited-for children (as is done by getrusage() and times()
5197 #.  and wait4()).  Solaris 8 does include child times.
5198 #. type: Plain text
5199 #: build/C/man2/sigaction.2:402
5200 msgid ""
5201 "B<SIGCHLD> fills in I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>, and "
5202 "I<si_stime>, providing information about the child.  The I<si_pid> field is "
5203 "the process ID of the child; I<si_uid> is the child's real user ID.  The "
5204 "I<si_status> field contains the exit status of the child (if I<si_code> is "
5205 "B<CLD_EXITED>), or the signal number that caused the process to change "
5206 "state.  The I<si_utime> and I<si_stime> contain the user and system CPU time "
5207 "used by the child process; these fields do not include the times used by "
5208 "waited-for children (unlike B<getrusage>(2)  and B<times>(2)).  In kernels "
5209 "up to 2.6, and since 2.6.27, these fields report CPU time in units of "
5210 "I<sysconf(_SC_CLK_TCK)>.  In 2.6 kernels before 2.6.27, a bug meant that "
5211 "these fields reported time in units of the (configurable) system jiffy (see "
5212 "B<time>(7))."
5213 msgstr ""
5214 "B<SIGCHLD> は I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>, I<si_stime> を"
5215 "設定し、子プロセスに関する情報を提供する。 I<si_pid> フィールドは子プロセスの"
5216 "プロセス ID で、 I<si_uid> フィールドは子プロセスの実ユーザ ID である。 "
5217 "I<si_stime> フィールドには、 (I<si_code> が B<CLD_EXITED> の場合は) 子プロセ"
5218 "スの終了ステータスが、それ以外の場合は状態が変化する原因となったシグナル番号"
5219 "が格納される。 I<si_utime> と I<si_stime> には子プロセスが使用したユーザ CPU "
5220 "時間とシステム CPU 時間がそれぞれ格納される。(B<getrusage>(2) や B<times>(2) "
5221 "と異なり) これらのフィールドには wait 待ちの子プロセスにより使用された時間は"
5222 "含まれない。 2.6 より前と 2.6.27 以降のカーネルでは、 これらのフィールドに格"
5223 "納される CPU 時間の単位は I<sysconf(_SC_CLK_TCK)> である。 2.6.27 より前の "
5224 "2.6 系のカーネルでは、バグがあり、 これらのフィールドの CPU 時間の単位が "
5225 "(カーネルのコンフィグで指定される) システムの jiffy であった (B<time>(7) 参"
5226 "照)。"
5227
5228 #.  FIXME . SIGTRAP also sets the following for ptrace_notify() ?
5229 #.      info.si_code = exit_code;
5230 #.      info.si_pid = task_pid_vnr(current);
5231 #.      info.si_uid = current_uid();  /* Real UID */
5232 #. type: Plain text
5233 #: build/C/man2/sigaction.2:438
5234 msgid ""
5235 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, and B<SIGTRAP> fill in "
5236 "I<si_addr> with the address of the fault.  On some architectures, these "
5237 "signals also fill in the I<si_trapno> field.  Some suberrors of B<SIGBUS>, "
5238 "in particular B<BUS_MCEERR_AO> and B<BUS_MCEERR_AR>, also fill in "
5239 "I<si_addr_lsb>.  This field indicates the least significant bit of the "
5240 "reported address and therefore the extent of the corruption.  For example, "
5241 "if a full page was corrupted, I<si_addr_lsb> contains "
5242 "I<log2(sysconf(_SC_PAGESIZE))>.  B<BUS_MCERR_*> and I<si_addr_lsb> are Linux-"
5243 "specific extensions."
5244 msgstr ""
5245 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, B<SIGTRAP> では、 I<si_addr> に "
5246 "fault が発生したアドレスが設定される。 いくつかのアーキテクチャでは、 これら"
5247 "のシグナルは I<si_trapno> フィールドにも設定される。 B<SIGBUS> が発生するエ"
5248 "ラーのいくつか、特に B<BUS_MCEERR_AO> と B<BUS_MCEERR_AR> では、 "
5249 "I<si_addr_lsb> も設定される。 このフィールドは報告されるアドレスの最下位ビッ"
5250 "トを示し、 これによりメモリ破壊の程度を知ることができる。 例えば、ページ全体"
5251 "が壊れている場合には I<si_addr_lsb> には I<log2(sysconf(_SC_PAGESIZE))> が入"
5252 "る。 B<BUS_MCERR_*> と I<si_addr_lsb> は Linux 固有の拡張である。"
5253
5254 #. type: Plain text
5255 #: build/C/man2/sigaction.2:452
5256 msgid ""
5257 "B<SIGIO>/B<SIGPOLL> (the two names are synonyms on Linux)  fills in "
5258 "I<si_band> and I<si_fd>.  The I<si_band> event is a bit mask containing the "
5259 "same values as are filled in the I<revents> field by B<poll>(2).  The "
5260 "I<si_fd> field indicates the file descriptor for which the I/O event "
5261 "occurred."
5262 msgstr ""
5263 "B<SIGIO>/B<SIGPOLL> (2 つの名前は Linux では同義語) では I<si_band> と "
5264 "I<si_fd> が設定される。 I<si_band> イベントは、 B<poll>(2) が I<revents> "
5265 "フィールドに設定するのと同じ値が入ったビットマスクである。 I<si_fd> フィール"
5266 "ドは I/O イベントが発生したファイルディスクリプタを示す。"
5267
5268 #. type: Plain text
5269 #: build/C/man2/sigaction.2:459
5270 msgid ""
5271 "I<si_code> is a value (not a bit mask)  indicating why this signal was "
5272 "sent.  The following list shows the values which can be placed in I<si_code> "
5273 "for any signal, along with reason that the signal was generated."
5274 msgstr ""
5275 "I<si_code> は、そのシグナルが送信された理由を示す値である (ビットマスクではな"
5276 "い)。 以下は、どのシグナルの場合でも I<si_code> に入りうる値のリストである。"
5277 "シグナルが生成された理由も記載している。"
5278
5279 #. type: TP
5280 #: build/C/man2/sigaction.2:460
5281 #, no-wrap
5282 msgid "B<SI_USER>"
5283 msgstr "B<SI_USER>"
5284
5285 #. type: TP
5286 #: build/C/man2/sigaction.2:463 build/C/man7/signal.7:111
5287 #, no-wrap
5288 msgid "B<kill>(2)"
5289 msgstr "B<kill>(2)"
5290
5291 #. type: TP
5292 #: build/C/man2/sigaction.2:463
5293 #, no-wrap
5294 msgid "B<SI_KERNEL>"
5295 msgstr "B<SI_KERNEL>"
5296
5297 #. type: Plain text
5298 #: build/C/man2/sigaction.2:466
5299 msgid "Sent by the kernel."
5300 msgstr "カーネルにより送信された"
5301
5302 #. type: TP
5303 #: build/C/man2/sigaction.2:466
5304 #, no-wrap
5305 msgid "B<SI_QUEUE>"
5306 msgstr "B<SI_QUEUE>"
5307
5308 #. type: TP
5309 #: build/C/man2/sigaction.2:469 build/C/man7/signal.7:128
5310 #, no-wrap
5311 msgid "B<sigqueue>(3)"
5312 msgstr "B<sigqueue>(3)"
5313
5314 #. type: TP
5315 #: build/C/man2/sigaction.2:469
5316 #, no-wrap
5317 msgid "B<SI_TIMER>"
5318 msgstr "B<SI_TIMER>"
5319
5320 #. type: Plain text
5321 #: build/C/man2/sigaction.2:472
5322 msgid "POSIX timer expired"
5323 msgstr "POSIX タイマが満了した"
5324
5325 #. type: TP
5326 #: build/C/man2/sigaction.2:472
5327 #, no-wrap
5328 msgid "B<SI_MESGQ>"
5329 msgstr "B<SI_MESGQ>"
5330
5331 #. type: Plain text
5332 #: build/C/man2/sigaction.2:476
5333 msgid ""
5334 "POSIX message queue state changed (since Linux 2.6.6); see B<mq_notify>(3)"
5335 msgstr ""
5336 "POSIX メッセージキューの状態が変化した (Linux 2.6.6 以降)。 B<mq_notify>(3)B<"
5337 "参照。>"
5338
5339 #. type: TP
5340 #: build/C/man2/sigaction.2:476
5341 #, no-wrap
5342 msgid "B<SI_ASYNCIO>"
5343 msgstr "B<SI_ASYNCIO>"
5344
5345 #. type: Plain text
5346 #: build/C/man2/sigaction.2:479
5347 msgid "AIO completed"
5348 msgstr "非同期 IO (AIO) が完了した"
5349
5350 #. type: TP
5351 #: build/C/man2/sigaction.2:479
5352 #, no-wrap
5353 msgid "B<SI_SIGIO>"
5354 msgstr "B<SI_SIGIO>"
5355
5356 #. type: Plain text
5357 #: build/C/man2/sigaction.2:488
5358 msgid ""
5359 "Queued B<SIGIO> (only in kernels up to Linux 2.2; from Linux 2.4 onward "
5360 "B<SIGIO>/B<SIGPOLL> fills in I<si_code> as described below)."
5361 msgstr ""
5362 "B<SIGIO> がキューイングされた (Linux 2.2 以下のカーネルのみ; Linux 2.4 以降で"
5363 "は以下で説明する B<SIGIO>/B<SIGPOLL> の I<si_code> が入る)。"
5364
5365 #. type: TP
5366 #: build/C/man2/sigaction.2:488
5367 #, no-wrap
5368 msgid "B<SI_TKILL>"
5369 msgstr "B<SI_TKILL>"
5370
5371 #.  SI_DETHREAD is defined in 2.6.9 sources, but isn't implemented
5372 #.  It appears to have been an idea that was tried during 2.5.6
5373 #.  through to 2.5.24 and then was backed out.
5374 #. type: Plain text
5375 #: build/C/man2/sigaction.2:497
5376 msgid "B<tkill>(2)  or B<tgkill>(2)  (since Linux 2.4.19)"
5377 msgstr "B<tkill>(2)  または B<tgkill>(2)  (Linux 2.4.19 以降)"
5378
5379 #. type: Plain text
5380 #: build/C/man2/sigaction.2:504
5381 msgid ""
5382 "The following values can be placed in I<si_code> for a B<SIGILL> signal:"
5383 msgstr "B<SIGILL> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5384
5385 #. type: TP
5386 #: build/C/man2/sigaction.2:505
5387 #, no-wrap
5388 msgid "B<ILL_ILLOPC>"
5389 msgstr "B<ILL_ILLOPC>"
5390
5391 #. type: Plain text
5392 #: build/C/man2/sigaction.2:508
5393 msgid "illegal opcode"
5394 msgstr "不正な命令コード (opcode)"
5395
5396 #. type: TP
5397 #: build/C/man2/sigaction.2:508
5398 #, no-wrap
5399 msgid "B<ILL_ILLOPN>"
5400 msgstr "B<ILL_ILLOPN>"
5401
5402 #. type: Plain text
5403 #: build/C/man2/sigaction.2:511
5404 msgid "illegal operand"
5405 msgstr "不正なオペランド"
5406
5407 #. type: TP
5408 #: build/C/man2/sigaction.2:511
5409 #, no-wrap
5410 msgid "B<ILL_ILLADR>"
5411 msgstr "B<ILL_ILLADR>"
5412
5413 #. type: Plain text
5414 #: build/C/man2/sigaction.2:514
5415 msgid "illegal addressing mode"
5416 msgstr "不正なアドレッシングモード"
5417
5418 #. type: TP
5419 #: build/C/man2/sigaction.2:514
5420 #, no-wrap
5421 msgid "B<ILL_ILLTRP>"
5422 msgstr "B<ILL_ILLTRP>"
5423
5424 #. type: Plain text
5425 #: build/C/man2/sigaction.2:517
5426 msgid "illegal trap"
5427 msgstr "不正なトラップ"
5428
5429 #. type: TP
5430 #: build/C/man2/sigaction.2:517
5431 #, no-wrap
5432 msgid "B<ILL_PRVOPC>"
5433 msgstr "B<ILL_PRVOPC>"
5434
5435 #. type: Plain text
5436 #: build/C/man2/sigaction.2:520
5437 msgid "privileged opcode"
5438 msgstr "特権が必要な命令コード (opcode)"
5439
5440 #. type: TP
5441 #: build/C/man2/sigaction.2:520
5442 #, no-wrap
5443 msgid "B<ILL_PRVREG>"
5444 msgstr "B<ILL_PRVREG>"
5445
5446 #. type: Plain text
5447 #: build/C/man2/sigaction.2:523
5448 msgid "privileged register"
5449 msgstr "特権が必要なレジスタ"
5450
5451 #. type: TP
5452 #: build/C/man2/sigaction.2:523
5453 #, no-wrap
5454 msgid "B<ILL_COPROC>"
5455 msgstr "B<ILL_COPROC>"
5456
5457 #. type: Plain text
5458 #: build/C/man2/sigaction.2:526
5459 msgid "coprocessor error"
5460 msgstr "コプロセッサのエラー"
5461
5462 #. type: TP
5463 #: build/C/man2/sigaction.2:526
5464 #, no-wrap
5465 msgid "B<ILL_BADSTK>"
5466 msgstr "B<ILL_BADSTK>"
5467
5468 #. type: Plain text
5469 #: build/C/man2/sigaction.2:529
5470 msgid "internal stack error"
5471 msgstr "内部スタックエラー"
5472
5473 #. type: Plain text
5474 #: build/C/man2/sigaction.2:536
5475 msgid ""
5476 "The following values can be placed in I<si_code> for a B<SIGFPE> signal:"
5477 msgstr "B<SIGFPE> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5478
5479 #. type: TP
5480 #: build/C/man2/sigaction.2:537
5481 #, no-wrap
5482 msgid "B<FPE_INTDIV>"
5483 msgstr "B<FPE_INTDIV>"
5484
5485 #. type: Plain text
5486 #: build/C/man2/sigaction.2:540
5487 msgid "integer divide by zero"
5488 msgstr "整数の 0 による除算"
5489
5490 #. type: TP
5491 #: build/C/man2/sigaction.2:540
5492 #, no-wrap
5493 msgid "B<FPE_INTOVF>"
5494 msgstr "B<FPE_INTOVF>"
5495
5496 #. type: Plain text
5497 #: build/C/man2/sigaction.2:543
5498 msgid "integer overflow"
5499 msgstr "整数のオーバーフロー"
5500
5501 #. type: TP
5502 #: build/C/man2/sigaction.2:543
5503 #, no-wrap
5504 msgid "B<FPE_FLTDIV>"
5505 msgstr "B<FPE_FLTDIV>"
5506
5507 #. type: Plain text
5508 #: build/C/man2/sigaction.2:546
5509 msgid "floating-point divide by zero"
5510 msgstr "浮動小数点の 0 による除算"
5511
5512 #. type: TP
5513 #: build/C/man2/sigaction.2:546
5514 #, no-wrap
5515 msgid "B<FPE_FLTOVF>"
5516 msgstr "B<FPE_FLTOVF>"
5517
5518 #. type: Plain text
5519 #: build/C/man2/sigaction.2:549
5520 msgid "floating-point overflow"
5521 msgstr "浮動小数点のオーバーフロー"
5522
5523 #. type: TP
5524 #: build/C/man2/sigaction.2:549
5525 #, no-wrap
5526 msgid "B<FPE_FLTUND>"
5527 msgstr "B<FPE_FLTUND>"
5528
5529 #. type: Plain text
5530 #: build/C/man2/sigaction.2:552
5531 msgid "floating-point underflow"
5532 msgstr "浮動小数点のアンダーフロー"
5533
5534 #. type: TP
5535 #: build/C/man2/sigaction.2:552
5536 #, no-wrap
5537 msgid "B<FPE_FLTRES>"
5538 msgstr "B<FPE_FLTRES>"
5539
5540 #. type: Plain text
5541 #: build/C/man2/sigaction.2:555
5542 msgid "floating-point inexact result"
5543 msgstr "浮動小数点の不正確な演算結果 (inexact result)"
5544
5545 #. type: TP
5546 #: build/C/man2/sigaction.2:555
5547 #, no-wrap
5548 msgid "B<FPE_FLTINV>"
5549 msgstr "B<FPE_FLTINV>"
5550
5551 #. type: Plain text
5552 #: build/C/man2/sigaction.2:558
5553 msgid "floating-point invalid operation"
5554 msgstr "浮動小数点の不正な操作"
5555
5556 #. type: TP
5557 #: build/C/man2/sigaction.2:558
5558 #, no-wrap
5559 msgid "B<FPE_FLTSUB>"
5560 msgstr "B<FPE_FLTSUB>"
5561
5562 #. type: Plain text
5563 #: build/C/man2/sigaction.2:561
5564 msgid "subscript out of range"
5565 msgstr "範囲外の添字 (subscript)"
5566
5567 #. type: Plain text
5568 #: build/C/man2/sigaction.2:568
5569 msgid ""
5570 "The following values can be placed in I<si_code> for a B<SIGSEGV> signal:"
5571 msgstr "B<SIGSEGV> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5572
5573 #. type: TP
5574 #: build/C/man2/sigaction.2:569
5575 #, no-wrap
5576 msgid "B<SEGV_MAPERR>"
5577 msgstr "B<SEGV_MAPERR>"
5578
5579 #. type: Plain text
5580 #: build/C/man2/sigaction.2:572
5581 msgid "address not mapped to object"
5582 msgstr "オブジェクトにマッピングされていないアドレス"
5583
5584 #. type: TP
5585 #: build/C/man2/sigaction.2:572
5586 #, no-wrap
5587 msgid "B<SEGV_ACCERR>"
5588 msgstr "B<SEGV_ACCERR>"
5589
5590 #. type: Plain text
5591 #: build/C/man2/sigaction.2:575
5592 msgid "invalid permissions for mapped object"
5593 msgstr "マッピングされたオブジェクトに対するアクセス許可がない"
5594
5595 #. type: Plain text
5596 #: build/C/man2/sigaction.2:582
5597 msgid ""
5598 "The following values can be placed in I<si_code> for a B<SIGBUS> signal:"
5599 msgstr "B<SIGBUS> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5600
5601 #. type: TP
5602 #: build/C/man2/sigaction.2:583
5603 #, no-wrap
5604 msgid "B<BUS_ADRALN>"
5605 msgstr "B<BUS_ADRALN>"
5606
5607 #. type: Plain text
5608 #: build/C/man2/sigaction.2:586
5609 msgid "invalid address alignment"
5610 msgstr "不正なアドレス・アライメント (alignment)"
5611
5612 #. type: TP
5613 #: build/C/man2/sigaction.2:586
5614 #, no-wrap
5615 msgid "B<BUS_ADRERR>"
5616 msgstr "B<BUS_ADRERR>"
5617
5618 #. type: Plain text
5619 #: build/C/man2/sigaction.2:589
5620 msgid "nonexistent physical address"
5621 msgstr "存在しない物理アドレス"
5622
5623 #. type: TP
5624 #: build/C/man2/sigaction.2:589
5625 #, no-wrap
5626 msgid "B<BUS_OBJERR>"
5627 msgstr "B<BUS_OBJERR>"
5628
5629 #. type: Plain text
5630 #: build/C/man2/sigaction.2:592
5631 msgid "object-specific hardware error"
5632 msgstr "オブジェクト固有のハードウェアエラー"
5633
5634 #. type: TP
5635 #: build/C/man2/sigaction.2:592
5636 #, no-wrap
5637 msgid "B<BUS_MCEERR_AR> (since Linux 2.6.32)"
5638 msgstr "B<BUS_MCEERR_AR> (Linux 2.6.32 以降)"
5639
5640 #. type: Plain text
5641 #: build/C/man2/sigaction.2:595
5642 msgid "Hardware memory error consumed on a machine check; action required."
5643 msgstr ""
5644 "マシンチェックで使用中のハードウェアメモリのエラーが検出された。対応が必須。"
5645
5646 #. type: TP
5647 #: build/C/man2/sigaction.2:595
5648 #, no-wrap
5649 msgid "B<BUS_MCEERR_AO> (since Linux 2.6.32)"
5650 msgstr "B<BUS_MCEERR_AO> (Linux 2.6.32  以降)"
5651
5652 #. type: Plain text
5653 #: build/C/man2/sigaction.2:598
5654 msgid ""
5655 "Hardware memory error detected in process but not consumed; action optional."
5656 msgstr ""
5657 "実行中にハードウェアメモリエラーが検出されたが、使用中のメモリではない。対応"
5658 "は必須ではない。"
5659
5660 #. type: Plain text
5661 #: build/C/man2/sigaction.2:605
5662 msgid ""
5663 "The following values can be placed in I<si_code> for a B<SIGTRAP> signal:"
5664 msgstr "B<SIGTRAP> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5665
5666 #. type: TP
5667 #: build/C/man2/sigaction.2:606
5668 #, no-wrap
5669 msgid "B<TRAP_BRKPT>"
5670 msgstr "B<TRAP_BRKPT>"
5671
5672 #. type: Plain text
5673 #: build/C/man2/sigaction.2:609
5674 msgid "process breakpoint"
5675 msgstr "プロセスのブレークポイント"
5676
5677 #. type: TP
5678 #: build/C/man2/sigaction.2:609
5679 #, no-wrap
5680 msgid "B<TRAP_TRACE>"
5681 msgstr "B<TRAP_TRACE>"
5682
5683 #. type: Plain text
5684 #: build/C/man2/sigaction.2:612
5685 msgid "process trace trap"
5686 msgstr "プロセスのトレース・トラップ"
5687
5688 #. type: TP
5689 #: build/C/man2/sigaction.2:612
5690 #, no-wrap
5691 msgid "B<TRAP_BRANCH> (since Linux 2.4)"
5692 msgstr "B<TRAP_BRANCH> (Linux 2.4 以降)"
5693
5694 #. type: Plain text
5695 #: build/C/man2/sigaction.2:615
5696 msgid "process taken branch trap"
5697 msgstr "プロセスのブランチ・トラップ"
5698
5699 #. type: TP
5700 #: build/C/man2/sigaction.2:615
5701 #, no-wrap
5702 msgid "B<TRAP_HWBKPT> (since Linux 2.4)"
5703 msgstr "B<TRAP_HWBKPT> (Linux 2.4 以降)"
5704
5705 #. type: Plain text
5706 #: build/C/man2/sigaction.2:618
5707 msgid "hardware breakpoint/watchpoint"
5708 msgstr "ハードウェア・ブレークポイント/ウォッチポイント"
5709
5710 #. type: Plain text
5711 #: build/C/man2/sigaction.2:625
5712 msgid ""
5713 "The following values can be placed in I<si_code> for a B<SIGCHLD> signal:"
5714 msgstr "B<SIGCHLD> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5715
5716 #. type: TP
5717 #: build/C/man2/sigaction.2:626
5718 #, no-wrap
5719 msgid "B<CLD_EXITED>"
5720 msgstr "B<CLD_EXITED>"
5721
5722 #. type: Plain text
5723 #: build/C/man2/sigaction.2:629
5724 msgid "child has exited"
5725 msgstr "子プロセスが終了した (exited)"
5726
5727 #. type: TP
5728 #: build/C/man2/sigaction.2:629
5729 #, no-wrap
5730 msgid "B<CLD_KILLED>"
5731 msgstr "B<CLD_KILLED>"
5732
5733 #. type: Plain text
5734 #: build/C/man2/sigaction.2:632
5735 msgid "child was killed"
5736 msgstr "子プロセスが kill された"
5737
5738 #. type: TP
5739 #: build/C/man2/sigaction.2:632
5740 #, no-wrap
5741 msgid "B<CLD_DUMPED>"
5742 msgstr "B<CLD_DUMPED>"
5743
5744 #. type: Plain text
5745 #: build/C/man2/sigaction.2:635
5746 msgid "child terminated abnormally"
5747 msgstr "子プロセスが異常終了した"
5748
5749 #. type: TP
5750 #: build/C/man2/sigaction.2:635
5751 #, no-wrap
5752 msgid "B<CLD_TRAPPED>"
5753 msgstr "B<CLD_TRAPPED>"
5754
5755 #. type: Plain text
5756 #: build/C/man2/sigaction.2:638
5757 msgid "traced child has trapped"
5758 msgstr "トレース対象の子プロセスがトラップを上げた"
5759
5760 #. type: TP
5761 #: build/C/man2/sigaction.2:638
5762 #, no-wrap
5763 msgid "B<CLD_STOPPED>"
5764 msgstr "B<CLD_STOPPED>"
5765
5766 #. type: Plain text
5767 #: build/C/man2/sigaction.2:641
5768 msgid "child has stopped"
5769 msgstr "子プロセスが停止 (stop) した"
5770
5771 #. type: TP
5772 #: build/C/man2/sigaction.2:641
5773 #, no-wrap
5774 msgid "B<CLD_CONTINUED>"
5775 msgstr "B<CLD_CONTINUED>"
5776
5777 #. type: Plain text
5778 #: build/C/man2/sigaction.2:644
5779 msgid "stopped child has continued (since Linux 2.6.9)"
5780 msgstr "停止していた子プロセスが再開した (Linux 2.6.9 以降)"
5781
5782 #. type: Plain text
5783 #: build/C/man2/sigaction.2:651
5784 msgid ""
5785 "The following values can be placed in I<si_code> for a B<SIGIO>/B<SIGPOLL> "
5786 "signal:"
5787 msgstr ""
5788 "B<SIGIO>/B<SIGPOLL> シグナルの場合、 I<si_code> には以下の値が入る可能性があ"
5789 "る:"
5790
5791 #. type: TP
5792 #: build/C/man2/sigaction.2:652
5793 #, no-wrap
5794 msgid "B<POLL_IN>"
5795 msgstr "B<POLL_IN>"
5796
5797 #. type: Plain text
5798 #: build/C/man2/sigaction.2:655
5799 msgid "data input available"
5800 msgstr "入力データが利用可能"
5801
5802 #. type: TP
5803 #: build/C/man2/sigaction.2:655
5804 #, no-wrap
5805 msgid "B<POLL_OUT>"
5806 msgstr "B<POLL_OUT>"
5807
5808 #. type: Plain text
5809 #: build/C/man2/sigaction.2:658
5810 msgid "output buffers available"
5811 msgstr "出力バッファが利用可能"
5812
5813 #. type: TP
5814 #: build/C/man2/sigaction.2:658
5815 #, no-wrap
5816 msgid "B<POLL_MSG>"
5817 msgstr "B<POLL_MSG>"
5818
5819 #. type: Plain text
5820 #: build/C/man2/sigaction.2:661
5821 msgid "input message available"
5822 msgstr "入力メッセージが利用可能"
5823
5824 #. type: TP
5825 #: build/C/man2/sigaction.2:661
5826 #, no-wrap
5827 msgid "B<POLL_ERR>"
5828 msgstr "B<POLL_ERR>"
5829
5830 #. type: Plain text
5831 #: build/C/man2/sigaction.2:664
5832 msgid "I/O error"
5833 msgstr "I/O エラー"
5834
5835 #. type: TP
5836 #: build/C/man2/sigaction.2:664
5837 #, no-wrap
5838 msgid "B<POLL_PRI>"
5839 msgstr "B<POLL_PRI>"
5840
5841 #. type: Plain text
5842 #: build/C/man2/sigaction.2:667
5843 msgid "high priority input available"
5844 msgstr "高優先の入力が利用可能"
5845
5846 #. type: TP
5847 #: build/C/man2/sigaction.2:667
5848 #, no-wrap
5849 msgid "B<POLL_HUP>"
5850 msgstr "B<POLL_HUP>"
5851
5852 #. type: Plain text
5853 #: build/C/man2/sigaction.2:670
5854 msgid "device disconnected"
5855 msgstr "デバイスが接続されていない"
5856
5857 #. type: Plain text
5858 #: build/C/man2/sigaction.2:676
5859 msgid ""
5860 "B<sigaction>()  returns 0 on success; on error, -1 is returned, and I<errno> "
5861 "is set to indicate the error."
5862 msgstr ""
5863 "B<sigaction>() 関数は成功すると 0 を返す。 エラーの場合、-1 を返し、 "
5864 "I<errno> にエラーを示す値をセットする。"
5865
5866 #. type: Plain text
5867 #: build/C/man2/sigaction.2:681
5868 msgid ""
5869 "I<act> or I<oldact> points to memory which is not a valid part of the "
5870 "process address space."
5871 msgstr ""
5872 "I<act> か I<oldact> が指しているメモリが正しいプロセスのアドレス空間にない。"
5873
5874 #. type: Plain text
5875 #: build/C/man2/sigaction.2:688
5876 msgid ""
5877 "An invalid signal was specified.  This will also be generated if an attempt "
5878 "is made to change the action for B<SIGKILL> or B<SIGSTOP>, which cannot be "
5879 "caught or ignored."
5880 msgstr ""
5881 "無効なシグナルが指定された。補足 (catch) したり無視したりできない シグナルで"
5882 "ある B<SIGKILL> や B<SIGSTOP> に対する動作を変更しようとした場合にも発生す"
5883 "る。"
5884
5885 #.  SVr4 does not document the EINTR condition.
5886 #. type: Plain text
5887 #: build/C/man2/sigaction.2:691
5888 msgid "POSIX.1-2001, SVr4."
5889 msgstr "POSIX.1-2001, SVr4."
5890
5891 #. type: Plain text
5892 #: build/C/man2/sigaction.2:699 build/C/man7/signal.7:105
5893 msgid ""
5894 "A child created via B<fork>(2)  inherits a copy of its parent's signal "
5895 "dispositions.  During an B<execve>(2), the dispositions of handled signals "
5896 "are reset to the default; the dispositions of ignored signals are left "
5897 "unchanged."
5898 msgstr ""
5899 "B<fork>(2) 経由で作成された子プロセスは、親プロセスのシグナルの処理方法の コ"
5900 "ピーを継承する。 B<execve>(2) の前後で、ハンドラが設定されているシグナルの処"
5901 "理方法はデフォルトにリセットされ、 無視が設定されているシグナルの処理方法は変"
5902 "更されずそのままとなる。"
5903
5904 #. type: Plain text
5905 #: build/C/man2/sigaction.2:717 build/C/man2/signal.2:134
5906 msgid ""
5907 "According to POSIX, the behavior of a process is undefined after it ignores "
5908 "a B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> signal that was not generated by "
5909 "B<kill>(2)  or B<raise>(3).  Integer division by zero has undefined result.  "
5910 "On some architectures it will generate a B<SIGFPE> signal.  (Also dividing "
5911 "the most negative integer by -1 may generate B<SIGFPE>.)  Ignoring this "
5912 "signal might lead to an endless loop."
5913 msgstr ""
5914 "POSIX では、 B<kill>(2)  や B<raise>(3)  で生成できないシグナル B<SIGFPE>, "
5915 "B<SIGILL>, B<SIGSEGV> を無視 (ignore) した場合、その後の動作は未定義である。 "
5916 "ゼロによる整数割り算の結果は未定義となる。 アーキテクチャーによっては、このと"
5917 "き B<SIGFPE> シグナルが生成される。 (同様に負の最大整数を -1 で割ると "
5918 "B<SIGFPE> が生成されるかもしれない)  このシグナルを無視すると無限ループに陥る"
5919 "かもしれない。"
5920
5921 #. type: Plain text
5922 #: build/C/man2/sigaction.2:734
5923 msgid ""
5924 "POSIX.1-1990 disallowed setting the action for B<SIGCHLD> to B<SIG_IGN>.  "
5925 "POSIX.1-2001 allows this possibility, so that ignoring B<SIGCHLD> can be "
5926 "used to prevent the creation of zombies (see B<wait>(2)).  Nevertheless, the "
5927 "historical BSD and System\\ V behaviors for ignoring B<SIGCHLD> differ, so "
5928 "that the only completely portable method of ensuring that terminated "
5929 "children do not become zombies is to catch the B<SIGCHLD> signal and perform "
5930 "a B<wait>(2)  or similar."
5931 msgstr ""
5932 "POSIX.1-1990 では B<SIGCHLD> に B<SIG_IGN> を設定することを認めていない。 "
5933 "POSIX.1-2001 では認められており、 B<SIGCHLD> を無視することでゾンビプロセスの"
5934 "生成を防止することができる (B<wait>(2)  を参照)。 さらに、BSD と System\\ V "
5935 "では B<SIGCHLD> を無視した際の動作が異なっている。 そのため、完全に移植性があ"
5936 "る方法で、終了した子プロセスがゾンビにならないこと を保証するには、 "
5937 "B<SIGCHLD> シグナルを補足し、 B<wait>(2)  などを実行するしかない。"
5938
5939 #. type: Plain text
5940 #: build/C/man2/sigaction.2:747
5941 msgid ""
5942 "POSIX.1-1990 specified only B<SA_NOCLDSTOP>.  POSIX.1-2001 added "
5943 "B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, and B<SA_SIGINFO>.  Use of "
5944 "these latter values in I<sa_flags> may be less portable in applications "
5945 "intended for older UNIX implementations."
5946 msgstr ""
5947 "POSIX.1-1990 の仕様では B<SA_NOCLDSTOP> のみが定義されている。 POSIX.1-2001 "
5948 "では B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, B<SA_SIGINFO> が追加さ"
5949 "れた。 UNIX の古い実装で動かすアプリケーションで、 他の I<sa_flags> フラグを"
5950 "使用すると移植性が下がる。"
5951
5952 #. type: Plain text
5953 #: build/C/man2/sigaction.2:751
5954 msgid ""
5955 "The B<SA_RESETHAND> flag is compatible with the SVr4 flag of the same name."
5956 msgstr "B<SA_RESETHAND> フラグは SVr4 の同じ名前のフラグと互換性がある。"
5957
5958 #. type: Plain text
5959 #: build/C/man2/sigaction.2:761
5960 msgid ""
5961 "The B<SA_NODEFER> flag is compatible with the SVr4 flag of the same name "
5962 "under kernels 1.3.9 and newer.  On older kernels the Linux implementation "
5963 "allowed the receipt of any signal, not just the one we are installing "
5964 "(effectively overriding any I<sa_mask> settings)."
5965 msgstr ""
5966 "B<SA_NODEFER> フラグは 1.3.9 以降のカーネルでは同じ名前の SVr4 のフラグと互換"
5967 "性がある。 ぞれ以前の Linux カーネルの実装では、このフラグを設定しているシグ"
5968 "ナル だけでなく、どのシグナルでも受けることを許していた (実際には I<sa_mask> "
5969 "の設定により無効にできる)。"
5970
5971 #. type: Plain text
5972 #: build/C/man2/sigaction.2:767
5973 msgid ""
5974 "B<sigaction>()  can be called with a NULL second argument to query the "
5975 "current signal handler.  It can also be used to check whether a given signal "
5976 "is valid for the current machine by calling it with NULL second and third "
5977 "arguments."
5978 msgstr ""
5979 "B<sigaction>()  の二番目の引き数に NULL を指定して呼び出すと、現在のシグナル"
5980 "ハンドラを確認する ことができる。また、二番目と三番目の引き数を NULL にて呼び"
5981 "出すことで、 指定されたシグナルが現在のマシンで使えるかどうかチェックできる。"
5982
5983 #. type: Plain text
5984 #: build/C/man2/sigaction.2:773
5985 msgid ""
5986 "It is not possible to block B<SIGKILL> or B<SIGSTOP> (by specifying them in "
5987 "I<sa_mask>).  Attempts to do so are silently ignored."
5988 msgstr ""
5989 "B<SIGKILL> や B<SIGSTOP> を (I<sa_mask> に指定して) 禁止することはできない。 "
5990 "禁止しようとしても黙って無視される。"
5991
5992 #. type: Plain text
5993 #: build/C/man2/sigaction.2:777 build/C/man2/sigpending.2:70
5994 #: build/C/man2/sigprocmask.2:144 build/C/man2/sigsuspend.2:108
5995 msgid "See B<sigsetops>(3)  for details on manipulating signal sets."
5996 msgstr "シグナル集合の操作に関する詳細は B<sigsetops>(3)  を参照のこと。"
5997
5998 #. type: Plain text
5999 #: build/C/man2/sigaction.2:782
6000 msgid ""
6001 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
6002 "safely called inside from inside a signal handler."
6003 msgstr ""
6004 "シグナルハンドラ内から安全に呼び出すことができる、 async-signal-safe "
6005 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
6006 "照。"
6007
6008 #. type: SS
6009 #: build/C/man2/sigaction.2:782
6010 #, no-wrap
6011 msgid "Undocumented"
6012 msgstr "非公式"
6013
6014 #. type: Plain text
6015 #: build/C/man2/sigaction.2:792
6016 msgid ""
6017 "Before the introduction of B<SA_SIGINFO> it was also possible to get some "
6018 "additional information, namely by using a I<sa_handler> with second argument "
6019 "of type I<struct sigcontext>.  See the relevant Linux kernel sources for "
6020 "details.  This use is obsolete now."
6021 msgstr ""
6022 "B<SA_SIGINFO> が導入される前は、 I<struct sigcontext> 型の二番目の引き数と一"
6023 "緒に I<sa_handler> を使用することで、 いくつかの追加の情報を入手することがで"
6024 "きた。 詳細については Linux カーネルソースの関連部分を見てほしい。 現在はこの"
6025 "使用法は廃止されている。"
6026
6027 #. type: Plain text
6028 #: build/C/man2/sigaction.2:801
6029 msgid ""
6030 "In kernels up to and including 2.6.13, specifying B<SA_NODEFER> in "
6031 "I<sa_flags> prevents not only the delivered signal from being masked during "
6032 "execution of the handler, but also the signals specified in I<sa_mask>.  "
6033 "This bug was fixed in kernel 2.6.14."
6034 msgstr ""
6035 "2.6.13 以前のカーネルでは、 I<sa_flags> に B<SA_NODEFER> を指定した場合、 ハ"
6036 "ンドラが実行中に配送されたシグナル自身がマスクされなくなるだけでなく、 "
6037 "I<sa_mask> に指定されたシグナルもマスクされなくなる。 このバグは、カーネル "
6038 "2.6.14 で修正された。"
6039
6040 #. type: Plain text
6041 #: build/C/man2/sigaction.2:804
6042 msgid "See B<mprotect>(2)."
6043 msgstr "B<mprotect>(2)  参照。"
6044
6045 #. type: Plain text
6046 #: build/C/man2/sigaction.2:825
6047 msgid ""
6048 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
6049 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
6050 "B<sigreturn>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<wait>(2), "
6051 "B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), B<sigsetops>(3), "
6052 "B<sigvec>(3), B<core>(5), B<signal>(7)"
6053 msgstr "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigreturn>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<wait>(2), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
6054
6055 #. type: TH
6056 #: build/C/man2/sigaltstack.2:27
6057 #, no-wrap
6058 msgid "SIGALTSTACK"
6059 msgstr "SIGALTSTACK"
6060
6061 #. type: TH
6062 #: build/C/man2/sigaltstack.2:27
6063 #, no-wrap
6064 msgid "2010-09-26"
6065 msgstr "2010-09-26"
6066
6067 #. type: Plain text
6068 #: build/C/man2/sigaltstack.2:30
6069 msgid "sigaltstack - set and/or get signal stack context"
6070 msgstr "sigaltstack - シグナルスタックのコンテキストを設定・取得する"
6071
6072 #. type: Plain text
6073 #: build/C/man2/sigaltstack.2:34
6074 msgid "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
6075 msgstr "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
6076
6077 #. type: Plain text
6078 #: build/C/man2/sigaltstack.2:41
6079 msgid "B<sigaltstack>():"
6080 msgstr "B<sigaltstack>():"
6081
6082 #. type: Plain text
6083 #: build/C/man2/sigaltstack.2:48 build/C/man3/siginterrupt.3:53
6084 #: build/C/man2/wait.2:80
6085 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
6086 msgstr "|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
6087
6088 #. type: Plain text
6089 #: build/C/man2/sigaltstack.2:60
6090 msgid ""
6091 "B<sigaltstack>()  allows a process to define a new alternate signal stack "
6092 "and/or retrieve the state of an existing alternate signal stack.  An "
6093 "alternate signal stack is used during the execution of a signal handler if "
6094 "the establishment of that handler (see B<sigaction>(2))  requested it."
6095 msgstr ""
6096 "B<sigaltstack>()  を使うと、 プロセスは新しい代替シグナルスタックを定義した"
6097 "り、 既存の代替シグナルスタックの状態を取得できる。 シグナルハンドラが代替シ"
6098 "グナルスタックを要求するように設定されていると (B<sigaction>(2)  参照)、ハン"
6099 "ドラの実行中はそのシグナルスタックが使われる。"
6100
6101 #. type: Plain text
6102 #: build/C/man2/sigaltstack.2:63
6103 msgid ""
6104 "The normal sequence of events for using an alternate signal stack is the "
6105 "following:"
6106 msgstr "代替シグナルスタックを使う際の一般的な手順は、以下の通りである:"
6107
6108 #. type: IP
6109 #: build/C/man2/sigaltstack.2:63 build/C/man7/signal.7:387
6110 #, no-wrap
6111 msgid "1."
6112 msgstr "1."
6113
6114 #. type: Plain text
6115 #: build/C/man2/sigaltstack.2:67
6116 msgid "Allocate an area of memory to be used for the alternate signal stack."
6117 msgstr "代替シグナルスタックで使うメモリ領域を確保する。"
6118
6119 #. type: IP
6120 #: build/C/man2/sigaltstack.2:67 build/C/man7/signal.7:391
6121 #, no-wrap
6122 msgid "2."
6123 msgstr "2."
6124
6125 #. type: Plain text
6126 #: build/C/man2/sigaltstack.2:73
6127 msgid ""
6128 "Use B<sigaltstack>()  to inform the system of the existence and location of "
6129 "the alternate signal stack."
6130 msgstr ""
6131 "B<sigaltstack>()  を使って、 代替シグナルスタックの存在と場所をシステムに知ら"
6132 "せる。"
6133
6134 #. type: IP
6135 #: build/C/man2/sigaltstack.2:73 build/C/man7/signal.7:411
6136 #, no-wrap
6137 msgid "3."
6138 msgstr "3."
6139
6140 #. type: Plain text
6141 #: build/C/man2/sigaltstack.2:80
6142 msgid ""
6143 "When establishing a signal handler using B<sigaction>(2), inform the system "
6144 "that the signal handler should be executed on the alternate signal stack by "
6145 "specifying the B<SA_ONSTACK> flag."
6146 msgstr ""
6147 "B<sigaction>(2)  を使ってシグナルハンドラを確立する際、 B<SA_ONSTACK> フラグ"
6148 "を指定することにより、 そのシグナルハンドラを代替シグナルスタック上で実行する"
6149 "ことを システムに知らせる。"
6150
6151 #. type: Plain text
6152 #: build/C/man2/sigaltstack.2:88
6153 msgid ""
6154 "The I<ss> argument is used to specify a new alternate signal stack, while "
6155 "the I<oss> argument is used to retrieve information about the currently "
6156 "established signal stack.  If we are interested in performing just one of "
6157 "these tasks, then the other argument can be specified as NULL.  Each of "
6158 "these arguments is a structure of the following type:"
6159 msgstr ""
6160 "I<ss> 引き数は、新しいシグナルスタックを指定するために使う。 また I<oss> 引き"
6161 "数は、現在確立されている シグナルスタックの情報を取得するために使う。 この操"
6162 "作のうち 1 つだけを実行させるには、 使用しない引き数を NULL に指定すればよ"
6163 "い。 引き数となる構造体は、以下のような型である:"
6164
6165 #. type: Plain text
6166 #: build/C/man2/sigaltstack.2:96
6167 #, no-wrap
6168 msgid ""
6169 "typedef struct {\n"
6170 "    void  *ss_sp;     /* Base address of stack */\n"
6171 "    int    ss_flags;  /* Flags */\n"
6172 "    size_t ss_size;   /* Number of bytes in stack */\n"
6173 "} stack_t;\n"
6174 msgstr ""
6175 "typedef struct {\n"
6176 "    void  *ss_sp;     /* スタックのベースアドレス */\n"
6177 "    int    ss_flags;  /* フラグ */\n"
6178 "    size_t ss_size;   /* スタックのバイト数 */\n"
6179 "} stack_t;\n"
6180
6181 #. type: Plain text
6182 #: build/C/man2/sigaltstack.2:107
6183 msgid ""
6184 "To establish a new alternate signal stack, I<ss.ss_flags> is set to zero, "
6185 "and I<ss.ss_sp> and I<ss.ss_size> specify the starting address and size of "
6186 "the stack.  The constant B<SIGSTKSZ> is defined to be large enough to cover "
6187 "the usual size requirements for an alternate signal stack, and the constant "
6188 "B<MINSIGSTKSZ> defines the minimum size required to execute a signal handler."
6189 msgstr ""
6190 "新規の代替シグナルスタックを確立するには、 I<ss.ss_flags> を 0 に設定し、 "
6191 "I<ss.ss_sp> と I<ss.ss_size> に スタックの開始アドレスとスタックサイズを指定"
6192 "する。 定数 B<SIGSTKSZ> は、代替シグナルスタックが通常必要する サイズよりも充"
6193 "分大きく定義されている。 また定数 B<MINSIGSTKSZ> は、 シグナルハンドラの実行"
6194 "に必要な最小サイズに定義されている。"
6195
6196 #. type: Plain text
6197 #: build/C/man2/sigaltstack.2:111
6198 msgid ""
6199 "When a signal handler is invoked on the alternate stack, the kernel "
6200 "automatically aligns the address given in I<ss.ss_sp> to a suitable address "
6201 "boundary for the underlying hardware architecture."
6202 msgstr ""
6203 "代替スタックでシグナルハンドラが起動された場合には、 カーネルにより自動的に、"
6204 "I<ss.ss_sp> で指定されたアドレスは 動作しているハードウェアアーキテクチャに適"
6205 "したアドレス境界に 調整される。"
6206
6207 #. type: Plain text
6208 #: build/C/man2/sigaltstack.2:116
6209 msgid ""
6210 "To disable an existing stack, specify I<ss.ss_flags> as B<SS_DISABLE>.  In "
6211 "this case, the remaining fields in I<ss> are ignored."
6212 msgstr ""
6213 "既存のスタックを無効にするには、 I<ss.ss_flags> を B<SS_DISABLE> に指定す"
6214 "る。 この場合、I<ss> の他のフィールドは無視される。"
6215
6216 #. type: Plain text
6217 #: build/C/man2/sigaltstack.2:124
6218 msgid ""
6219 "If I<oss> is not NULL, then it is used to return information about the "
6220 "alternate signal stack which was in effect prior to the call to "
6221 "B<sigaltstack>().  The I<oss.ss_sp> and I<oss.ss_size> fields return the "
6222 "starting address and size of that stack.  The I<oss.ss_flags> may return "
6223 "either of the following values:"
6224 msgstr ""
6225 "I<oss> が NULL 以外の場合、 I<oss> に代替シグナルスタックの情報が返される。 "
6226 "これは (実質的に)  B<sigaltstack>()  の呼び出しより先に行われる。 I<oss."
6227 "ss_sp> と I<oss.ss_size> フィールドに スタックの開始アドレスとスタックサイズ"
6228 "が返される。 I<oss.ss_flags> には以下のどちらかの値が返される:"
6229
6230 #. type: TP
6231 #: build/C/man2/sigaltstack.2:124
6232 #, no-wrap
6233 msgid "B<SS_ONSTACK>"
6234 msgstr "B<SS_ONSTACK>"
6235
6236 #. type: Plain text
6237 #: build/C/man2/sigaltstack.2:130
6238 msgid ""
6239 "The process is currently executing on the alternate signal stack.  (Note "
6240 "that it is not possible to change the alternate signal stack if the process "
6241 "is currently executing on it.)"
6242 msgstr ""
6243 "プロセスが代替シグナルスタック上で実行されている (プロセスが既にそのシグナル"
6244 "スタック上で実行されている場合は、 それと同じシグナルスタックには変更できない"
6245 "点に注意すること)。"
6246
6247 #. type: TP
6248 #: build/C/man2/sigaltstack.2:130
6249 #, no-wrap
6250 msgid "B<SS_DISABLE>"
6251 msgstr "B<SS_DISABLE>"
6252
6253 #. type: Plain text
6254 #: build/C/man2/sigaltstack.2:133
6255 msgid "The alternate signal stack is currently disabled."
6256 msgstr "代替シグナルスタックが現在無効になっている。"
6257
6258 #. type: Plain text
6259 #: build/C/man2/sigaltstack.2:137
6260 msgid ""
6261 "B<sigaltstack>()  returns 0 on success, or -1 on failure with I<errno> set "
6262 "to indicate the error."
6263 msgstr ""
6264 "B<sigaltstack>()  は成功した場合 0 を返す。 失敗した場合は -1 を返して、 エ"
6265 "ラーを示す値に I<errno> を設定する。"
6266
6267 #. type: Plain text
6268 #: build/C/man2/sigaltstack.2:142
6269 msgid ""
6270 "Either I<ss> or I<oss> is not NULL and points to an area outside of the "
6271 "process's address space."
6272 msgstr ""
6273 "I<ss> または I<oss> のどちらが、NULL 以外で、 かつプロセスのアドレス空間の外"
6274 "を指している。"
6275
6276 #. type: Plain text
6277 #: build/C/man2/sigaltstack.2:147
6278 msgid ""
6279 "I<ss> is not NULL and the I<ss_flags> field contains a nonzero value other "
6280 "than B<SS_DISABLE>."
6281 msgstr ""
6282 "I<ss> が NULL 以外で、I<ss_flags> フィールドが B<SS_DISABLE> 以外の 0 でない"
6283 "値になっている。"
6284
6285 #. type: Plain text
6286 #: build/C/man2/sigaltstack.2:153
6287 msgid ""
6288 "The specified size of the new alternate signal stack I<ss.ss_size> was less "
6289 "than B<MINSTKSZ>."
6290 msgstr ""
6291 "新しい代替シグナルスタック (I<ss.ss_size>) に指定したサイズが B<MINSTKSZ> よ"
6292 "り小さかった。"
6293
6294 #. type: Plain text
6295 #: build/C/man2/sigaltstack.2:158
6296 msgid ""
6297 "An attempt was made to change the alternate signal stack while it was active "
6298 "(i.e., the process was already executing on the current alternate signal "
6299 "stack)."
6300 msgstr ""
6301 "代替シグナルスタックが有効であるときに変更を行おうとした (つまり、プロセスが"
6302 "既に現在の代替シグナルスタック上で実行されていた)。"
6303
6304 #. type: Plain text
6305 #: build/C/man2/sigaltstack.2:160
6306 msgid "SUSv2, SVr4, POSIX.1-2001."
6307 msgstr "SUSv2, SVr4, POSIX.1-2001."
6308
6309 #. type: Plain text
6310 #: build/C/man2/sigaltstack.2:168
6311 msgid ""
6312 "The most common usage of an alternate signal stack is to handle the "
6313 "B<SIGSEGV> signal that is generated if the space available for the normal "
6314 "process stack is exhausted: in this case, a signal handler for B<SIGSEGV> "
6315 "cannot be invoked on the process stack; if we wish to handle it, we must use "
6316 "an alternate signal stack."
6317 msgstr ""
6318 "代替シグナルスタックを使用する最もよくある場面は、 B<SIGSEGV> シグナルを扱う"
6319 "ときである。 B<SIGSEGV> はプロセスの通常のスタックが利用できる空間が使い果た"
6320 "された際に 生成されるシグナルである。この場合には、 B<SIGSEGV> 用のシグナルハ"
6321 "ンドラをプロセスのスタック上では起動することができない。 そのため、このシグナ"
6322 "ルを扱おうとする場合には、 代替シグナルスタックを使用しなければならない。"
6323
6324 #. type: Plain text
6325 #: build/C/man2/sigaltstack.2:178
6326 msgid ""
6327 "Establishing an alternate signal stack is useful if a process expects that "
6328 "it may exhaust its standard stack.  This may occur, for example, because the "
6329 "stack grows so large that it encounters the upwardly growing heap, or it "
6330 "reaches a limit established by a call to B<setrlimit(RLIMIT_STACK, &rlim)>.  "
6331 "If the standard stack is exhausted, the kernel sends the process a "
6332 "B<SIGSEGV> signal.  In these circumstances the only way to catch this signal "
6333 "is on an alternate signal stack."
6334 msgstr ""
6335 "プロセスが標準のシグナルスタックを使い果たすことが予想される場合は、 代替シグ"
6336 "ナルスタックを確立すると便利である。 例えば、スタックが最上位アドレスから 下"
6337 "位アドレス方向に非常にたくさん積まれてしまうことで、 最下位アドレスから上位ア"
6338 "ドレス方向に積まれるヒープとぶつかってしまう場合や、 "
6339 "B<setrlimit(RLIMIT_STACK, &rlim)> の呼び出しで確立された 制限に達してしまった"
6340 "場合に、この様な事が起こる。 標準のスタックを使い果たしてしまうと、 カーネル"
6341 "はプロセスに B<SIGSEGV> シグナルを送る。 このような状況では、代替シグナルス"
6342 "タック上でしかシグナルをキャッチできない。"
6343
6344 #. type: Plain text
6345 #: build/C/man2/sigaltstack.2:184
6346 msgid ""
6347 "On most hardware architectures supported by Linux, stacks grow downward.  "
6348 "B<sigaltstack>()  automatically takes account of the direction of stack "
6349 "growth."
6350 msgstr ""
6351 "Linux がサポートする多くのハードウェアアーキテクチャでは、 スタックは下位アド"
6352 "レス方向に積まれる。 B<sigaltstack>()  はスタックが積まれる方向を自動的に決定"
6353 "する。"
6354
6355 #. type: Plain text
6356 #: build/C/man2/sigaltstack.2:193
6357 msgid ""
6358 "Functions called from a signal handler executing on an alternate signal "
6359 "stack will also use the alternate signal stack.  (This also applies to any "
6360 "handlers invoked for other signals while the process is executing on the "
6361 "alternate signal stack.)  Unlike the standard stack, the system does not "
6362 "automatically extend the alternate signal stack.  Exceeding the allocated "
6363 "size of the alternate signal stack will lead to unpredictable results."
6364 msgstr ""
6365 "代替シグナルスタック上で実行されている シグナルハンドラから呼ばれる関数も、代"
6366 "替シグナルハンドラを使う (プロセスが代替シグナルスタック上で実行されている場"
6367 "合、 他のシグナルで呼び出されるハンドラもこの代替シグナルハンドラを使う)。 標"
6368 "準のスタックとは異なり、 システムは代替シグナルスタックを自動的に拡張しな"
6369 "い。 代替シグナルスタック用に確保したサイズを越えた場合、 結果は予想できな"
6370 "い。"
6371
6372 #. type: Plain text
6373 #: build/C/man2/sigaltstack.2:201
6374 msgid ""
6375 "A successful call to B<execve>(2)  removes any existing alternate signal "
6376 "stack.  A child process created via B<fork>(2)  inherits a copy of its "
6377 "parent's alternate signal stack settings."
6378 msgstr ""
6379 "B<execve>(2)  の呼び出しが成功すると、 既存の全ての代替シグナルスタックが削除"
6380 "される。 B<fork>(2)  経由で作成された子プロセスは、親プロセスの代替シグナルス"
6381 "タックの 設定のコピーを継承する。"
6382
6383 #. type: Plain text
6384 #: build/C/man2/sigaltstack.2:210
6385 msgid ""
6386 "B<sigaltstack>()  supersedes the older B<sigstack>()  call.  For backward "
6387 "compatibility, glibc also provides B<sigstack>().  All new applications "
6388 "should be written using B<sigaltstack>()."
6389 msgstr ""
6390 "B<sigaltstack>()  は以前の B<sigstack>()  を置き換えるものである。 過去プログ"
6391 "ラムとの互換性のため、glibc では B<sigstack>()  も提供している。 新しいのアプ"
6392 "リケーションは全て B<sigaltstack>()  を使って書くべきである。"
6393
6394 #. type: SS
6395 #: build/C/man2/sigaltstack.2:210 build/C/man3/sigpause.3:66
6396 #, no-wrap
6397 msgid "History"
6398 msgstr "歴史"
6399
6400 #. type: Plain text
6401 #: build/C/man2/sigaltstack.2:217
6402 msgid ""
6403 "4.2BSD had a B<sigstack>()  system call.  It used a slightly different "
6404 "struct, and had the major disadvantage that the caller had to know the "
6405 "direction of stack growth."
6406 msgstr ""
6407 "4.2BSD には B<sigstack>()  システムコールがあった。 この関数は少し異なった構"
6408 "造体を使っており、 呼び出した側がスタックの積まれる方向を知っていなければなら"
6409 "ないという 大きな欠点があった。"
6410
6411 #. type: Plain text
6412 #: build/C/man2/sigaltstack.2:220
6413 msgid "The following code segment demonstrates the use of B<sigaltstack>():"
6414 msgstr "以下のコードで B<sigaltstack>()  の使用法の一部を示す:"
6415
6416 #. type: Plain text
6417 #: build/C/man2/sigaltstack.2:224
6418 #, no-wrap
6419 msgid "stack_t ss;\n"
6420 msgstr "stack_t ss;\n"
6421
6422 #. type: Plain text
6423 #: build/C/man2/sigaltstack.2:232
6424 #, no-wrap
6425 msgid ""
6426 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6427 "if (ss.ss_sp == NULL)\n"
6428 "    /* Handle error */;\n"
6429 "ss.ss_size = SIGSTKSZ;\n"
6430 "ss.ss_flags = 0;\n"
6431 "if (sigaltstack(&ss, NULL) == -1)\n"
6432 "    /* Handle error */;\n"
6433 msgstr ""
6434 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6435 "if (ss.ss_sp == NULL)\n"
6436 "    /* ハンドルエラー */;\n"
6437 "ss.ss_size = SIGSTKSZ;\n"
6438 "ss.ss_flags = 0;\n"
6439 "if (sigaltstack(&ss, NULL) == -1)\n"
6440 "    /* ハンドルエラー */;\n"
6441
6442 #. type: Plain text
6443 #: build/C/man2/sigaltstack.2:241
6444 msgid ""
6445 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6446 "B<sigsetjmp>(3), B<signal>(7)"
6447 msgstr ""
6448 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6449 "B<sigsetjmp>(3), B<signal>(7)"
6450
6451 #. type: TH
6452 #: build/C/man7/sigevent.7:26
6453 #, no-wrap
6454 msgid "SIGEVENT"
6455 msgstr "SIGEVENT"
6456
6457 #. type: TH
6458 #: build/C/man7/sigevent.7:26
6459 #, no-wrap
6460 msgid "2011-09-09"
6461 msgstr "2011-09-09"
6462
6463 #. type: Plain text
6464 #: build/C/man7/sigevent.7:29
6465 msgid "sigevent - structure for notification from asynchronous routines"
6466 msgstr "sigevent - 非同期ルーチンからの通知用の構造体"
6467
6468 #. type: Plain text
6469 #: build/C/man7/sigevent.7:36
6470 #, no-wrap
6471 msgid ""
6472 "union sigval {          /* Data passed with notification */\n"
6473 "    int     sival_int;         /* Integer value */\n"
6474 "    void   *sival_ptr;         /* Pointer value */\n"
6475 "};\n"
6476 msgstr ""
6477 "union sigval {          /* Data passed with notification */\n"
6478 "    int     sival_int;         /* Integer value */\n"
6479 "    void   *sival_ptr;         /* Pointer value */\n"
6480 "};\n"
6481
6482 #. type: Plain text
6483 #: build/C/man7/sigevent.7:51
6484 #, no-wrap
6485 msgid ""
6486 "struct sigevent {\n"
6487 "    int          sigev_notify; /* Notification method */\n"
6488 "    int          sigev_signo;  /* Notification signal */\n"
6489 "    union sigval sigev_value;  /* Data passed with\n"
6490 "                                  notification */\n"
6491 "    void       (*sigev_notify_function) (union sigval);\n"
6492 "                     /* Function used for thread\n"
6493 "                        notification (SIGEV_THREAD) */\n"
6494 "    void        *sigev_notify_attributes;\n"
6495 "                     /* Attributes for notification thread\n"
6496 "                        (SIGEV_THREAD) */\n"
6497 "    pid_t        sigev_notify_thread_id;\n"
6498 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6499 "};\n"
6500 msgstr ""
6501 "struct sigevent {\n"
6502 "    int          sigev_notify; /* Notification method */\n"
6503 "    int          sigev_signo;  /* Notification signal */\n"
6504 "    union sigval sigev_value;  /* Data passed with\n"
6505 "                                  notification */\n"
6506 "    void       (*sigev_notify_function) (union sigval);\n"
6507 "                     /* Function used for thread\n"
6508 "                        notification (SIGEV_THREAD) */\n"
6509 "    void        *sigev_notify_attributes;\n"
6510 "                     /* Attributes for notification thread\n"
6511 "                        (SIGEV_THREAD) */\n"
6512 "    pid_t        sigev_notify_thread_id;\n"
6513 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6514 "};\n"
6515
6516 #. type: Plain text
6517 #: build/C/man7/sigevent.7:60
6518 msgid ""
6519 "The I<sigevent> structure is used by various APIs to describe the way a "
6520 "process is to be notified about an event (e.g., completion of an "
6521 "asynchronous request, expiration of a timer, or the arrival of a message)."
6522 msgstr ""
6523 "I<sigevent> 構造体は、イベントに関する情報をプロセスに通知するために様々な "
6524 "API で使用される (イベントの例としては、 非同期処理要求の完了、 タイマーの満"
6525 "了、 メッセージの到着など)。"
6526
6527 #. type: Plain text
6528 #: build/C/man7/sigevent.7:68
6529 msgid ""
6530 "The definition shown in the SYNOPSIS is approximate: some of the fields in "
6531 "the I<sigevent> structure may be defined as part of a union.  Programs "
6532 "should employ only those fields relevant to the value specified in "
6533 "I<sigev_notify>."
6534 msgstr ""
6535 "「書式」に記載されている定義はおおよそのものである。 I<sigevent> 構造体のいく"
6536 "つかのフィールドは、 共用体の一部として定義されているものもある。 プログラム"
6537 "は、 I<sigev_notify> で指定された値に応じたフィールドだけを利用すべきである。"
6538
6539 #. type: Plain text
6540 #: build/C/man7/sigevent.7:73
6541 msgid ""
6542 "The I<sigev_notify> field specifies how notification is to be performed.  "
6543 "This field can have one of the following values:"
6544 msgstr ""
6545 "I<sigev_notify> フィールドは、通知をどのように処理すべきかを指定する。 この"
6546 "フィールドは、以下のいずれかの値である。"
6547
6548 #. type: TP
6549 #: build/C/man7/sigevent.7:73 build/C/man2/timer_create.2:109
6550 #, no-wrap
6551 msgid "B<SIGEV_NONE>"
6552 msgstr "B<SIGEV_NONE>"
6553
6554 #. type: Plain text
6555 #: build/C/man7/sigevent.7:76
6556 msgid "A \"null\" notification: don't do anything when the event occurs."
6557 msgstr "「空 (null)」の通知。 イベントが発生時には何もしないこと。"
6558
6559 #. type: TP
6560 #: build/C/man7/sigevent.7:76 build/C/man2/timer_create.2:114
6561 #, no-wrap
6562 msgid "B<SIGEV_SIGNAL>"
6563 msgstr "B<SIGEV_SIGNAL>"
6564
6565 #. type: Plain text
6566 #: build/C/man7/sigevent.7:80
6567 msgid "Notify the process by sending the signal specified in I<sigev_signo>."
6568 msgstr ""
6569 "I<sigev_signo> で指定されたシグナルを送信することで、プロセスへの通知を行う。"
6570
6571 #. type: Plain text
6572 #: build/C/man7/sigevent.7:87
6573 msgid ""
6574 "If the signal is caught with a signal handler that was registered using the "
6575 "B<sigaction>(2)  B<SA_SIGINFO> flag, then the following fields are set in "
6576 "the I<siginfo_t> structure that is passed as the second argument of the "
6577 "handler:"
6578 msgstr ""
6579 "B<sigaction>(2) の B<SA_SIGINFO> フラグを使った登録されたシグナルハンドラによ"
6580 "りシグナルが捕捉されると、 シグナルハンドラの 2 番目の引き数として渡された "
6581 "I<siginfo_t> 構造体の以下のフィールドが設定される。"
6582
6583 #. type: Plain text
6584 #: build/C/man7/sigevent.7:92
6585 msgid ""
6586 "This field is set to a value that depends on the API delivering the "
6587 "notification."
6588 msgstr "このフィールドには通知を配送した API に応じた決まる値が設定される。"
6589
6590 #. type: TP
6591 #: build/C/man7/sigevent.7:92 build/C/man2/wait.2:302
6592 #, no-wrap
6593 msgid "I<si_signo>"
6594 msgstr "I<si_signo>"
6595
6596 #. type: Plain text
6597 #: build/C/man7/sigevent.7:96
6598 msgid ""
6599 "This field is set to the signal number (i.e., the same value as in "
6600 "I<sigev_signo>)."
6601 msgstr ""
6602 "このフィールドにはシグナル番号 (すなわち I<sigev_signo> と同じ値) が設定され"
6603 "る。"
6604
6605 #. type: Plain text
6606 #: build/C/man7/sigevent.7:100
6607 msgid "This field is set to the value specified in I<sigev_value>."
6608 msgstr "このフィールドには I<sigev_value> で指定された値が設定される。"
6609
6610 #. type: Plain text
6611 #: build/C/man7/sigevent.7:105
6612 msgid ""
6613 "Depending on the API, other fields may also be set in the I<siginfo_t> "
6614 "structure."
6615 msgstr ""
6616 "API によっては I<siginfo_t> 構造体の他のフィールドが設定される場合もある。"
6617
6618 #. type: Plain text
6619 #: build/C/man7/sigevent.7:108
6620 msgid ""
6621 "The same information is also available if the signal is accepted using "
6622 "B<sigwaitinfo>(2)."
6623 msgstr ""
6624 "シグナルを受け取ったときには B<sigwaitinfo>(2) でも同じ情報が得られる。"
6625
6626 #. type: TP
6627 #: build/C/man7/sigevent.7:108 build/C/man2/timer_create.2:132
6628 #, no-wrap
6629 msgid "B<SIGEV_THREAD>"
6630 msgstr "B<SIGEV_THREAD>"
6631
6632 #. type: Plain text
6633 #: build/C/man7/sigevent.7:125
6634 msgid ""
6635 "Notify the process by invoking I<sigev_notify_function> \"as if\" it were "
6636 "the start function of a new thread.  (Among the implementation possibilities "
6637 "here are that each timer notification could result in the creation of a new "
6638 "thread, or that a single thread is created to receive all notifications.)  "
6639 "The function is invoked with I<sigev_value> as its sole argument.  If "
6640 "I<sigev_notify_attributes> is not NULL, it should point to a "
6641 "I<pthread_attr_t> structure that defines attributes for the new thread (see "
6642 "B<pthread_attr_init>(3))."
6643 msgstr ""
6644 "「あたかも」新しいスレッドセーフの開始関数であるかのように "
6645 "I<sigev_notify_function> を起動することで、 プロセスへの通知を行う (実装の可"
6646 "能性としては、 タイマー通知の度に新しいスレッドセーフが作成される場合も、 一"
6647 "つのスレッドを作成してすべての通知を受信する場合もある)。 この関数は "
6648 "I<sigev_value> を唯一の引き数として起動される。 I<sigev_notify_attributes> "
6649 "は、 NULL 以外の場合は、 新しいスレッドセーフの属性を定義する "
6650 "I<pthread_attr_t> 構造体を指していなければならない (B<pthread_attr_init>(3) "
6651 "参照)。"
6652
6653 #. type: TP
6654 #: build/C/man7/sigevent.7:125 build/C/man2/timer_create.2:140
6655 #, no-wrap
6656 msgid "B<SIGEV_THREAD_ID> (Linux-specific)"
6657 msgstr "B<SIGEV_THREAD_ID> (Linux 固有)"
6658
6659 #.  | SIGEV_SIGNAL vs not?
6660 #. type: Plain text
6661 #: build/C/man7/sigevent.7:130
6662 msgid "Currently used only by POSIX timers; see B<timer_create>(2)."
6663 msgstr "現在のところ POSIX でのみ使用されている。 B<timer_create>(2) 参照。"
6664
6665 #. type: Plain text
6666 #: build/C/man7/sigevent.7:132 build/C/man2/sigpending.2:66
6667 #: build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:121
6668 #: build/C/man3/sigsetops.3:147 build/C/man2/sigsuspend.2:86
6669 #: build/C/man3/sigwait.3:87 build/C/man2/sigwaitinfo.2:135
6670 #: build/C/man2/timer_create.2:197 build/C/man2/timer_delete.2:69
6671 #: build/C/man2/timer_getoverrun.2:99 build/C/man2/timer_settime.2:209
6672 msgid "POSIX.1-2001."
6673 msgstr "POSIX.1-2001."
6674
6675 #. type: Plain text
6676 #: build/C/man7/sigevent.7:142
6677 msgid ""
6678 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6679 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6680 "B<pthreads>(7)"
6681 msgstr ""
6682 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6683 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6684 "B<pthreads>(7)"
6685
6686 #. type: TH
6687 #: build/C/man3/siginterrupt.3:31
6688 #, no-wrap
6689 msgid "SIGINTERRUPT"
6690 msgstr "SIGINTERRUPT"
6691
6692 #. type: TH
6693 #: build/C/man3/siginterrupt.3:31
6694 #, no-wrap
6695 msgid "2014-06-13"
6696 msgstr "2014-06-13"
6697
6698 #. type: Plain text
6699 #: build/C/man3/siginterrupt.3:34
6700 msgid "siginterrupt - allow signals to interrupt system calls"
6701 msgstr "siginterrupt - シグナルでシステム・コールに割り込むことを許す"
6702
6703 #. type: Plain text
6704 #: build/C/man3/siginterrupt.3:39
6705 #, no-wrap
6706 msgid "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6707 msgstr "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6708
6709 #. type: Plain text
6710 #: build/C/man3/siginterrupt.3:47
6711 msgid "B<siginterrupt>():"
6712 msgstr "B<siginterrupt>():"
6713
6714 #. type: Plain text
6715 #: build/C/man3/siginterrupt.3:64
6716 msgid ""
6717 "The B<siginterrupt>()  function changes the restart behavior when a system "
6718 "call is interrupted by the signal I<sig>.  If the I<flag> argument is false "
6719 "(0), then system calls will be restarted if interrupted by the specified "
6720 "signal I<sig>.  This is the default behavior in Linux."
6721 msgstr ""
6722 "B<siginterrupt>()  関数は、システム・コールがシグナル I<sig> によって割り込ま"
6723 "れた後、再実行の際の振る舞いを変更する。 I<flag> 引き数が偽 (0) ならば、シス"
6724 "テム・コールが指定した シグナル I<sig> によって割り込まれた後に、そのシステ"
6725 "ム・コールは 再実行される。これは Linux においてデフォルトの動作である。"
6726
6727 #. type: Plain text
6728 #: build/C/man3/siginterrupt.3:69
6729 msgid ""
6730 "If the I<flag> argument is true (1) and no data has been transferred, then a "
6731 "system call interrupted by the signal I<sig> will return -1 and I<errno> "
6732 "will be set to B<EINTR>."
6733 msgstr ""
6734 "I<flag> 引き数が真 (1) でデータの転送が全く行なわれていないならば、 シグナル "
6735 "I<sig> でシステム・コールは中断されて、-1 が返され、 I<errno> に B<EINTR> が"
6736 "設定される。"
6737
6738 #. type: Plain text
6739 #: build/C/man3/siginterrupt.3:73
6740 msgid ""
6741 "If the I<flag> argument is true (1) and data transfer has started, then the "
6742 "system call will be interrupted and will return the actual amount of data "
6743 "transferred."
6744 msgstr ""
6745 "I<flag> 引き数が真 (1) でデータの転送が開始されていれば、 システム・コールは"
6746 "中断され、それまでに実際に転送されたデータ の量が返される。"
6747
6748 #. type: Plain text
6749 #: build/C/man3/siginterrupt.3:83
6750 msgid ""
6751 "The B<siginterrupt>()  function returns 0 on success.  It returns -1 if the "
6752 "signal number I<sig> is invalid, with I<errno> set to indicate the cause of "
6753 "the error."
6754 msgstr ""
6755 "B<siginterrupt>()  関数は成功した場合 0 を返す。 シグナル番号 I<sig> が不正な"
6756 "場合、 -1 を返し、 I<errno> にエラーの原因を示す値を設定する。"
6757
6758 #. type: Plain text
6759 #: build/C/man3/siginterrupt.3:87
6760 msgid "The specified signal number is invalid."
6761 msgstr "指定したシグナル番号が不正である。"
6762
6763 #. type: Plain text
6764 #: build/C/man3/siginterrupt.3:93
6765 msgid ""
6766 "The B<siginterrupt>()  function uses a global variable that is not "
6767 "protected, so it is not thread-safe."
6768 msgstr ""
6769
6770 #. type: Plain text
6771 #: build/C/man3/siginterrupt.3:102
6772 msgid ""
6773 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 marks B<siginterrupt>()  as obsolete, "
6774 "recommending the use of B<sigaction>(2)  with the B<SA_RESTART> flag instead."
6775 msgstr ""
6776 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 は、 B<siginterrupt>()  を廃止予定として"
6777 "いる。 代わりに、 B<sigaction>(2)  に B<SA_RESTART> フラグを指定して使うこと"
6778 "を推奨している。"
6779
6780 #. type: Plain text
6781 #: build/C/man3/siginterrupt.3:104
6782 msgid "B<signal>(2)"
6783 msgstr "B<signal>(2)"
6784
6785 #. type: TH
6786 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
6787 #, no-wrap
6788 msgid "SIGNAL"
6789 msgstr "SIGNAL"
6790
6791 #. type: TH
6792 #: build/C/man2/signal.2:36 build/C/man3/sigpause.3:25
6793 #: build/C/man2/sigwaitinfo.2:25 build/C/man2/timer_create.2:33
6794 #: build/C/man2/wait.2:49
6795 #, no-wrap
6796 msgid "2014-08-19"
6797 msgstr "2014-08-19"
6798
6799 #. type: Plain text
6800 #: build/C/man2/signal.2:39
6801 msgid "signal - ANSI C signal handling"
6802 msgstr "signal - ANSI C シグナル操作"
6803
6804 #. type: Plain text
6805 #: build/C/man2/signal.2:45
6806 msgid "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
6807 msgstr ""
6808 "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<sighandler>B<);>"
6809
6810 #. type: Plain text
6811 #: build/C/man2/signal.2:54
6812 msgid ""
6813 "The behavior of B<signal>()  varies across UNIX versions, and has also "
6814 "varied historically across different versions of Linux.  B<Avoid its use>: "
6815 "use B<sigaction>(2)  instead.  See I<Portability> below."
6816 msgstr ""
6817 "B<signal>()  の動作は UNIX のバージョンにより異なる。 また、歴史的に見て "
6818 "Linux のバージョンによっても異なっている。 B<このシステムコールの使用は避け、"
6819 "> 代わりに B<sigaction>(2)  を使用すること。 下記の「移植性」を参照。"
6820
6821 #. type: Plain text
6822 #: build/C/man2/signal.2:64
6823 msgid ""
6824 "B<signal>()  sets the disposition of the signal I<signum> to I<handler>, "
6825 "which is either B<SIG_IGN>, B<SIG_DFL>, or the address of a programmer-"
6826 "defined function (a \"signal handler\")."
6827 msgstr ""
6828 "B<signal>()  はシグナル I<signum> の処理方法を I<handler> に設定する。 "
6829 "I<handler> には、 B<SIG_IGN>、 B<SIG_DFL>、 プログラマが定義した関数 (「シグ"
6830 "ナル・ハンドラ」) のアドレスの いずれかを指定する。"
6831
6832 #. type: Plain text
6833 #: build/C/man2/signal.2:68
6834 msgid ""
6835 "If the signal I<signum> is delivered to the process, then one of the "
6836 "following happens:"
6837 msgstr ""
6838 "シグナル I<signum> がプロセスに配送されると、以下のいずれかが発生する。"
6839
6840 #. type: Plain text
6841 #: build/C/man2/signal.2:73
6842 msgid "If the disposition is set to B<SIG_IGN>, then the signal is ignored."
6843 msgstr "処理方法が B<SIG_IGN> に設定されている場合、そのシグナルは無視される。"
6844
6845 #. type: Plain text
6846 #: build/C/man2/signal.2:80
6847 msgid ""
6848 "If the disposition is set to B<SIG_DFL>, then the default action associated "
6849 "with the signal (see B<signal>(7))  occurs."
6850 msgstr ""
6851 "処理方法が B<SIG_DFL> に設定されている場合、シグナルに関連づけられた デフォル"
6852 "トの動作が行われる (B<signal>(7)  参照)。"
6853
6854 #. type: Plain text
6855 #: build/C/man2/signal.2:91
6856 msgid ""
6857 "If the disposition is set to a function, then first either the disposition "
6858 "is reset to B<SIG_DFL>, or the signal is blocked (see I<Portability> below), "
6859 "and then I<handler> is called with argument I<signum>.  If invocation of the "
6860 "handler caused the signal to be blocked, then the signal is unblocked upon "
6861 "return from the handler."
6862 msgstr ""
6863 "処理方法として関数が設定されている場合、 まず最初に処理方法が B<SIG_DFL> にリ"
6864 "セットされるかそのシグナルのブロックが実行された後、 I<signum> を引き数とし"
6865 "て I<handler> が呼び出される。 ハンドラが起動される際にシグナルがブロックされ"
6866 "た場合、 ハンドラが返る際にそのシグナルのブロックが解除される。"
6867
6868 #. type: Plain text
6869 #: build/C/man2/signal.2:97
6870 msgid "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught or ignored."
6871 msgstr ""
6872 "シグナル B<SIGKILL> と B<SIGSTOP> は捕捉できず、無視することもできない。"
6873
6874 #. type: Plain text
6875 #: build/C/man2/signal.2:105
6876 msgid ""
6877 "B<signal>()  returns the previous value of the signal handler, or B<SIG_ERR> "
6878 "on error.  In the event of an error, I<errno> is set to indicate the cause."
6879 msgstr ""
6880 "B<signal>()  は、今までのシグナル・ハンドラの値を返す。 エラーの場合は "
6881 "B<SIG_ERR> を返し、 I<errno> にエラーの原因を示す値を設定する。"
6882
6883 #. type: Plain text
6884 #: build/C/man2/signal.2:110
6885 msgid "I<signum> is invalid."
6886 msgstr "I<signum> が不正である。"
6887
6888 #. type: Plain text
6889 #: build/C/man2/signal.2:116
6890 msgid "The effects of B<signal>()  in a multithreaded process are unspecified."
6891 msgstr ""
6892 "マルチスレッドプロセスにおける B<signal>()  の結果は、指定されていない。"
6893
6894 #. type: Plain text
6895 #: build/C/man2/signal.2:141
6896 msgid ""
6897 "See B<sigaction>(2)  for details on what happens when B<SIGCHLD> is set to "
6898 "B<SIG_IGN>."
6899 msgstr ""
6900 "B<SIGCHLD> の動作として B<SIG_IGN> を設定した場合の詳細な動作については、 "
6901 "B<sigaction>(2)  を参照すること。"
6902
6903 #. type: Plain text
6904 #: build/C/man2/signal.2:146
6905 msgid ""
6906 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
6907 "safely called from inside a signal handler."
6908 msgstr ""
6909 "シグナル・ハンドラ内から安全に呼び出すことができる、 async-signal-safe "
6910 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
6911 "照。"
6912
6913 #.  libc4 and libc5 define
6914 #.  .IR SignalHandler ;
6915 #. type: Plain text
6916 #: build/C/man2/signal.2:162
6917 msgid ""
6918 "The use of I<sighandler_t> is a GNU extension, exposed if B<_GNU_SOURCE> is "
6919 "defined; glibc also defines (the BSD-derived)  I<sig_t> if B<_BSD_SOURCE> is "
6920 "defined.  Without use of such a type, the declaration of B<signal>()  is the "
6921 "somewhat harder to read:"
6922 msgstr ""
6923 "I<sighandler_t> の使用は GNU 拡張であり、 B<_GNU_SOURCE> が定義された場合に公"
6924 "開される。glibc では B<_BSD_SOURCE> が定義された場合には (BSD 由来の) "
6925 "I<sig_t> も定義される。このような型を使用しないと、 B<signal>() の宣言は読み"
6926 "にくいものとなる。"
6927
6928 #. type: Plain text
6929 #: build/C/man2/signal.2:166
6930 #, no-wrap
6931 msgid "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6932 msgstr "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6933
6934 #. type: SS
6935 #: build/C/man2/signal.2:168
6936 #, no-wrap
6937 msgid "Portability"
6938 msgstr "移植性"
6939
6940 #. type: Plain text
6941 #: build/C/man2/signal.2:180
6942 msgid ""
6943 "The only portable use of B<signal>()  is to set a signal's disposition to "
6944 "B<SIG_DFL> or B<SIG_IGN>.  The semantics when using B<signal>()  to "
6945 "establish a signal handler vary across systems (and POSIX.1 explicitly "
6946 "permits this variation); B<do not use it for this purpose.>"
6947 msgstr ""
6948 "移植性のある B<signal>()  の使い方は、シグナルの処理方法を B<SIG_DFL> か "
6949 "B<SIG_IGN> に設定する方法だけである。 シグナル・ハンドラを設定するのに "
6950 "B<signal>()  を使ったときの動作はシステムにより異なる (POSIX.1 は明示的にこの"
6951 "違いを認めている)。 B<移植性が必要なときはこのシステムコールを使用しないこ"
6952 "と。>"
6953
6954 #. type: Plain text
6955 #: build/C/man2/signal.2:186
6956 msgid ""
6957 "POSIX.1 solved the portability mess by specifying B<sigaction>(2), which "
6958 "provides explicit control of the semantics when a signal handler is invoked; "
6959 "use that interface instead of B<signal>()."
6960 msgstr ""
6961 "POSIX.1 は、 B<sigaction>(2)  を規定することで移植性に関する混乱を解決した。 "
6962 "B<sigaction>(2)  はシグナル・ハンドラが起動される際の挙動を明示的に制御でき"
6963 "る。 B<signal>()  の代わりにこのインターフェイスを使うこと。"
6964
6965 #. type: Plain text
6966 #: build/C/man2/signal.2:196
6967 msgid ""
6968 "In the original UNIX systems, when a handler that was established using "
6969 "B<signal>()  was invoked by the delivery of a signal, the disposition of the "
6970 "signal would be reset to B<SIG_DFL>, and the system did not block delivery "
6971 "of further instances of the signal.  This is equivalent to calling "
6972 "B<sigaction>(2)  with the following flags:"
6973 msgstr ""
6974 "オリジナルの UNIX システムでは、 B<signal>()  を使って設定されたハンドラがシ"
6975 "グナルの配送により起動されると、 そのシグナルの処理方法は B<SIG_DFL> にリセッ"
6976 "トされ、システムは同じシグナルがさらに生成されても シグナルの配送をブロックし"
6977 "なかった。これは、以下のフラグで B<sigaction>(2) を呼び出すのと等価である。"
6978
6979 #. type: Plain text
6980 #: build/C/man2/signal.2:198
6981 #, no-wrap
6982 msgid "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6983 msgstr "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6984
6985 #. type: Plain text
6986 #: build/C/man2/signal.2:205
6987 msgid ""
6988 "System\\ V also provides these semantics for B<signal>().  This was bad "
6989 "because the signal might be delivered again before the handler had a chance "
6990 "to reestablish itself.  Furthermore, rapid deliveries of the same signal "
6991 "could result in recursive invocations of the handler."
6992 msgstr ""
6993 "System\\ V でも、 B<signal>()  に対してこれらの挙動を規定している。 こうした"
6994 "挙動はまずく、ハンドラがハンドラ自身を再設定する機会が 来るより前に、同じシグ"
6995 "ナルがまた配送される可能性がある。 さらに、同じシグナルが立て続けに配送される"
6996 "と、同じシグナルが ハンドラを繰り返し起動されることになる。"
6997
6998 #. type: Plain text
6999 #: build/C/man2/signal.2:220
7000 msgid ""
7001 "BSD improved on this situation, but unfortunately also changed the semantics "
7002 "of the existing B<signal>()  interface while doing so.  On BSD, when a "
7003 "signal handler is invoked, the signal disposition is not reset, and further "
7004 "instances of the signal are blocked from being delivered while the handler "
7005 "is executing.  Furthermore, certain blocking system calls are automatically "
7006 "restarted if interrupted by a signal handler (see B<signal>(7)).  The BSD "
7007 "semantics are equivalent to calling B<sigaction>(2)  with the following "
7008 "flags:"
7009 msgstr ""
7010 "BSD はこの状況が改善したが、残念なことに、その過程で既存の B<signal>() の挙動"
7011 "も変更された。 BSD では、シグナルハンドラが起動された際、 シグナルの処理方法"
7012 "はリセットされず、 ハンドラの実行中は、同じシグナルのさらなる生成は配送がブ"
7013 "ロックされる。 また、 シグナルハンドラが中断された場合、 停止中のシステムコー"
7014 "ルのいくつかは自動的に再スタートされる。 BSD の挙動は、 以下のフラグを指定し"
7015 "た B<sigaction>(2) の呼び出しと等価である。"
7016
7017 #. type: Plain text
7018 #: build/C/man2/signal.2:222
7019 #, no-wrap
7020 msgid "    sa.sa_flags = SA_RESTART;\n"
7021 msgstr "    sa.sa_flags = SA_RESTART;\n"
7022
7023 #. type: Plain text
7024 #: build/C/man2/signal.2:224
7025 msgid "The situation on Linux is as follows:"
7026 msgstr "Linux での状況は以下の通りである。"
7027
7028 #. type: Plain text
7029 #: build/C/man2/signal.2:228
7030 msgid "The kernel's B<signal>()  system call provides System\\ V semantics."
7031 msgstr ""
7032 "カーネルの B<signal>()  システムコールは System\\ V 方式を提供している。"
7033
7034 #. type: Plain text
7035 #: build/C/man2/signal.2:244
7036 msgid ""
7037 "By default, in glibc 2 and later, the B<signal>()  wrapper function does not "
7038 "invoke the kernel system call.  Instead, it calls B<sigaction>(2)  using "
7039 "flags that supply BSD semantics.  This default behavior is provided as long "
7040 "as the B<_BSD_SOURCE> feature test macro is defined.  By default, "
7041 "B<_BSD_SOURCE> is defined; it is also implicitly defined if one defines "
7042 "B<_GNU_SOURCE>, and can of course be explicitly defined."
7043 msgstr ""
7044 "デフォルトでは、glibc 2 以降では、 B<signal>()  ラッパー関数はカーネルのシス"
7045 "テムコールを起動しない。 代わりに、ラッパー関数は BSD 方式を示すフラグを使っ"
7046 "て B<sigaction>(2)  を呼び出す。 機能検査マクロ B<_BSD_SOURCE> を定義していれ"
7047 "ば、このデフォルトの動作となる。 デフォルトでは、 B<_BSD_SOURCE> が定義され"
7048 "る。 B<_BSD_SOURCE> は B<_GNU_SOURCE> が定義された場合には暗黙のうちに定義さ"
7049 "れ、 もちろん明示的に定義することもできる。"
7050
7051 #.  System V semantics are also provided if one uses the separate
7052 #.  .BR sysv_signal (3)
7053 #.  function.
7054 #.  .IP *
7055 #.  The
7056 #.  .BR signal ()
7057 #.  function in Linux libc4 and libc5 provide System\ V semantics.
7058 #.  If one on a libc5 system includes
7059 #.  .I <bsd/signal.h>
7060 #.  instead of
7061 #.  .IR <signal.h> ,
7062 #.  then
7063 #.  .BR signal ()
7064 #.  provides BSD semantics.
7065 #. type: Plain text
7066 #: build/C/man2/signal.2:278
7067 msgid ""
7068 "On glibc 2 and later, if the B<_BSD_SOURCE> feature test macro is not "
7069 "defined, then B<signal>()  provides System\\ V semantics.  (The default "
7070 "implicit definition of B<_BSD_SOURCE> is not provided if one invokes "
7071 "B<gcc>(1)  in one of its standard modes (I<-std=xxx> or I<-ansi>)  or "
7072 "defines various other feature test macros such as B<_POSIX_SOURCE>, "
7073 "B<_XOPEN_SOURCE>, or B<_SVID_SOURCE>; see B<feature_test_macros>(7).)"
7074 msgstr ""
7075 "glibc 2 以降では、機能検査マクロ B<_BSD_SOURCE> が定義されていなければ、 "
7076 "B<signal>()  は System\\ V 方式となる。 (B<gcc>(1)  が標準指定モード (I<-"
7077 "std=xxx> or I<-ansi>)  で起動された場合、もしくは B<_POSIX_SOURCE>, "
7078 "B<_XOPEN_SOURCE>, B<_SVID_SOURCE> といった他の様々な機能検査マクロが定義され"
7079 "た場合、 デフォルトの B<_BSD_SOURCE> の暗黙の定義は行われない。 "
7080 "B<feature_test_macros>(7)  を参照のこと。)"
7081
7082 #. type: Plain text
7083 #: build/C/man2/signal.2:297
7084 msgid ""
7085 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), "
7086 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
7087 "B<sigsuspend>(2), B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), "
7088 "B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), "
7089 "B<signal>(7)"
7090 msgstr ""
7091 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), "
7092 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
7093 "B<sigsuspend>(2), B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), "
7094 "B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), "
7095 "B<signal>(7)"
7096
7097 #. type: Plain text
7098 #: build/C/man7/signal.7:49
7099 msgid "signal - overview of signals"
7100 msgstr "signal - シグナルの概要"
7101
7102 #. type: Plain text
7103 #: build/C/man7/signal.7:52
7104 msgid ""
7105 "Linux supports both POSIX reliable signals (hereinafter \"standard signals"
7106 "\") and POSIX real-time signals."
7107 msgstr ""
7108 "Linux は POSIX 信頼シグナル (reliable signal; 以後 \"標準シグナル\"と表記)  "
7109 "と POSIX リアルタイムシグナルの両方に対応している。"
7110
7111 #. type: SS
7112 #: build/C/man7/signal.7:52
7113 #, no-wrap
7114 msgid "Signal dispositions"
7115 msgstr "シグナル処理方法"
7116
7117 #. type: Plain text
7118 #: build/C/man7/signal.7:57
7119 msgid ""
7120 "Each signal has a current I<disposition>, which determines how the process "
7121 "behaves when it is delivered the signal."
7122 msgstr ""
7123 "シグナルはそれぞれ現在の「処理方法 (disposition)」を保持しており、 この処理方"
7124 "法によりシグナルが配送された際にプロセスが どのような振舞いをするかが決まる。"
7125
7126 #. type: Plain text
7127 #: build/C/man7/signal.7:60
7128 msgid ""
7129 "The entries in the \"Action\" column of the tables below specify the default "
7130 "disposition for each signal, as follows:"
7131 msgstr ""
7132 "後述の表の \"動作\" の欄のエントリは各シグナルのデフォルトの 処理方法を示して"
7133 "おり、以下のような意味を持つ。"
7134
7135 #. type: IP
7136 #: build/C/man7/signal.7:60
7137 #, no-wrap
7138 msgid "Term"
7139 msgstr "Term"
7140
7141 #. type: Plain text
7142 #: build/C/man7/signal.7:62
7143 msgid "Default action is to terminate the process."
7144 msgstr "デフォルトの動作はプロセス終了。"
7145
7146 #. type: IP
7147 #: build/C/man7/signal.7:62
7148 #, no-wrap
7149 msgid "Ign"
7150 msgstr "Ign"
7151
7152 #. type: Plain text
7153 #: build/C/man7/signal.7:64
7154 msgid "Default action is to ignore the signal."
7155 msgstr "デフォルトの動作はこのシグナルの無視。"
7156
7157 #. type: IP
7158 #: build/C/man7/signal.7:64
7159 #, no-wrap
7160 msgid "Core"
7161 msgstr "Core"
7162
7163 #. type: Plain text
7164 #: build/C/man7/signal.7:67
7165 msgid ""
7166 "Default action is to terminate the process and dump core (see B<core>(5))."
7167 msgstr "デフォルトの動作はプロセス終了とコアダンプ出力 (B<core>(5)  参照)。"
7168
7169 #. type: IP
7170 #: build/C/man7/signal.7:67
7171 #, no-wrap
7172 msgid "Stop"
7173 msgstr "Stop"
7174
7175 #. type: Plain text
7176 #: build/C/man7/signal.7:69
7177 msgid "Default action is to stop the process."
7178 msgstr "デフォルトの動作はプロセスの一時停止。"
7179
7180 #. type: IP
7181 #: build/C/man7/signal.7:69
7182 #, no-wrap
7183 msgid "Cont"
7184 msgstr "Cont"
7185
7186 #. type: Plain text
7187 #: build/C/man7/signal.7:71
7188 msgid "Default action is to continue the process if it is currently stopped."
7189 msgstr "デフォルトの動作は、プロセスが停止中の場合にその実行の再開。"
7190
7191 #. type: Plain text
7192 #: build/C/man7/signal.7:93
7193 msgid ""
7194 "A process can change the disposition of a signal using B<sigaction>(2)  or "
7195 "B<signal>(2).  (The latter is less portable when establishing a signal "
7196 "handler; see B<signal>(2)  for details.)  Using these system calls, a "
7197 "process can elect one of the following behaviors to occur on delivery of the "
7198 "signal: perform the default action; ignore the signal; or catch the signal "
7199 "with a I<signal handler>, a programmer-defined function that is "
7200 "automatically invoked when the signal is delivered.  (By default, the signal "
7201 "handler is invoked on the normal process stack.  It is possible to arrange "
7202 "that the signal handler uses an alternate stack; see B<sigaltstack>(2)  for "
7203 "a discussion of how to do this and when it might be useful.)"
7204 msgstr ""
7205 "プロセスは、 B<sigaction>(2)  や B<signal>(2)  を使って、シグナルの処理方法を"
7206 "変更することができる (B<signal>(2)  の方がシグナルハンドラを設定する際の移植"
7207 "性が低い; 詳細は B<signal>(2)  を参照)。 シグナルの配送時に起こる動作として "
7208 "プロセスが選択できるのは、次のいずれか一つである。 デフォルトの動作を実行す"
7209 "る、シグナルを無視する、 I<シグナルハンドラ (signal handler)> でシグナルを捕"
7210 "捉する。シグナルハンドラとは、シグナル配送時に 自動的に起動されるプログラマ定"
7211 "義の関数である。 (デフォルトでは、シグナルハンドラは通常のプロセスのスタック"
7212 "上で起動される。 シグナルハンドラが代替スタック (alternate stack) を使用する"
7213 "ように設定する こともできる。代替スタックを使用するように設定する方法と、どの"
7214 "ような際に 代替スタックが役に立つかについての議論については "
7215 "B<sigaltstack>(2)  を参照のこと。"
7216
7217 #. type: Plain text
7218 #: build/C/man7/signal.7:97
7219 msgid ""
7220 "The signal disposition is a per-process attribute: in a multithreaded "
7221 "application, the disposition of a particular signal is the same for all "
7222 "threads."
7223 msgstr ""
7224 "シグナルの処理方法はプロセス単位の属性である。 マルチスレッドのアプリケーショ"
7225 "ンでは、あるシグナルの処理方法は 全てのスレッドで同じである。"
7226
7227 #. type: SS
7228 #: build/C/man7/signal.7:105
7229 #, no-wrap
7230 msgid "Sending a signal"
7231 msgstr "シグナルの送信"
7232
7233 #. type: Plain text
7234 #: build/C/man7/signal.7:108
7235 msgid ""
7236 "The following system calls and library functions allow the caller to send a "
7237 "signal:"
7238 msgstr ""
7239 "以下のシステムコールとライブラリ関数を使って、 呼び出し者はシグナルを送信する"
7240 "ことができる。"
7241
7242 #. type: TP
7243 #: build/C/man7/signal.7:108
7244 #, no-wrap
7245 msgid "B<raise>(3)"
7246 msgstr "B<raise>(3)"
7247
7248 #. type: Plain text
7249 #: build/C/man7/signal.7:111
7250 msgid "Sends a signal to the calling thread."
7251 msgstr "呼び出したスレッドにシグナルを送る。"
7252
7253 #. type: Plain text
7254 #: build/C/man7/signal.7:116
7255 msgid ""
7256 "Sends a signal to a specified process, to all members of a specified process "
7257 "group, or to all processes on the system."
7258 msgstr ""
7259 "指定されたプロセスや、指定されたプロセスグループの全メンバー、 システムの全プ"
7260 "ロセスにシグナルを送る。"
7261
7262 #. type: TP
7263 #: build/C/man7/signal.7:116
7264 #, no-wrap
7265 msgid "B<killpg>(2)"
7266 msgstr "B<killpg>(2)"
7267
7268 #. type: Plain text
7269 #: build/C/man7/signal.7:119
7270 msgid "Sends a signal to all of the members of a specified process group."
7271 msgstr "指定されたプロセスグループの全メンバーにシグナルを送る。"
7272
7273 #. type: TP
7274 #: build/C/man7/signal.7:119
7275 #, no-wrap
7276 msgid "B<pthread_kill>(3)"
7277 msgstr "B<pthread_kill>(3)"
7278
7279 #. type: Plain text
7280 #: build/C/man7/signal.7:123
7281 msgid ""
7282 "Sends a signal to a specified POSIX thread in the same process as the caller."
7283 msgstr ""
7284 "呼び出し者と同じプロセス内の指定された POSIX スレッドにシグナルを送る。"
7285
7286 #. type: TP
7287 #: build/C/man7/signal.7:123
7288 #, no-wrap
7289 msgid "B<tgkill>(2)"
7290 msgstr "B<tgkill>(2)"
7291
7292 #. type: Plain text
7293 #: build/C/man7/signal.7:128
7294 msgid ""
7295 "Sends a signal to a specified thread within a specific process.  (This is "
7296 "the system call used to implement B<pthread_kill>(3).)"
7297 msgstr ""
7298 "指定されたプロセス内の指定されたスレッドにシグナルを送る (このシステムコール"
7299 "を使って B<pthread_kill>(3)  は実装されている)。"
7300
7301 #. type: Plain text
7302 #: build/C/man7/signal.7:131
7303 msgid "Sends a real-time signal with accompanying data to a specified process."
7304 msgstr "指定されたプロセスに付属データとともにリアルタイムシグナルを送る。"
7305
7306 #. type: SS
7307 #: build/C/man7/signal.7:131
7308 #, no-wrap
7309 msgid "Waiting for a signal to be caught"
7310 msgstr "シグナルが捕捉されるのを待つ"
7311
7312 #. type: Plain text
7313 #: build/C/man7/signal.7:135
7314 msgid ""
7315 "The following system calls suspend execution of the calling process or "
7316 "thread until a signal is caught (or an unhandled signal terminates the "
7317 "process):"
7318 msgstr ""
7319 "以下のシステムコールを使って、シグナルが捕捉されるまで 呼び出したプロセスやス"
7320 "レッドの実行を中断 (suspend) することができる (ハンドラが設定されていないシグ"
7321 "ナルによりそのプロセスが終了した 場合にも実行の停止は終了する)。"
7322
7323 #. type: TP
7324 #: build/C/man7/signal.7:135
7325 #, no-wrap
7326 msgid "B<pause>(2)"
7327 msgstr "B<pause>(2)"
7328
7329 #. type: Plain text
7330 #: build/C/man7/signal.7:138
7331 msgid "Suspends execution until any signal is caught."
7332 msgstr "何かシグナルが捕捉されるまで実行を停止する。"
7333
7334 #. type: TP
7335 #: build/C/man7/signal.7:138
7336 #, no-wrap
7337 msgid "B<sigsuspend>(2)"
7338 msgstr "B<sigsuspend>(2)"
7339
7340 #. type: Plain text
7341 #: build/C/man7/signal.7:142
7342 msgid ""
7343 "Temporarily changes the signal mask (see below) and suspends execution until "
7344 "one of the unmasked signals is caught."
7345 msgstr ""
7346 "一時的にシグナルマスク (下記参照) を変更し、 マスクされていないシグナルのいず"
7347 "れかが捕捉されるまで 実行を中断する。"
7348
7349 #. type: SS
7350 #: build/C/man7/signal.7:142
7351 #, no-wrap
7352 msgid "Synchronously accepting a signal"
7353 msgstr "シグナルの同期受信"
7354
7355 #. type: Plain text
7356 #: build/C/man7/signal.7:149
7357 msgid ""
7358 "Rather than asynchronously catching a signal via a signal handler, it is "
7359 "possible to synchronously accept the signal, that is, to block execution "
7360 "until the signal is delivered, at which point the kernel returns information "
7361 "about the signal to the caller.  There are two general ways to do this:"
7362 msgstr ""
7363 "シグナルハンドラ経由でシグナルを非同期 (asynchronously) で捕捉する以外にも、 "
7364 "シグナルを同期 (synchronously) して受け付けることもできる。 同期して受け付け"
7365 "るとは、シグナルが配送されるまで実行を停止 (block)  するということである。シ"
7366 "グナルを受け付けた際に、カーネルは そのシグナルに関する情報を呼び出し者に返"
7367 "す。 これを行う一般的な方法が二つある。"
7368
7369 #. type: Plain text
7370 #: build/C/man7/signal.7:157
7371 msgid ""
7372 "B<sigwaitinfo>(2), B<sigtimedwait>(2), and B<sigwait>(3)  suspend execution "
7373 "until one of the signals in a specified set is delivered.  Each of these "
7374 "calls returns information about the delivered signal."
7375 msgstr ""
7376 "B<sigwaitinfo>(2), B<sigtimedwait>(2), B<sigwait>(3)  は、指定されたシグナル"
7377 "集合のシグナルの一つが配送されるまで実行を中断する。 どのシステムコールや関数"
7378 "でも、配送されたシグナルに関する情報が返される。"
7379
7380 #. type: Plain text
7381 #: build/C/man7/signal.7:170
7382 msgid ""
7383 "B<signalfd>(2)  returns a file descriptor that can be used to read "
7384 "information about signals that are delivered to the caller.  Each "
7385 "B<read>(2)  from this file descriptor blocks until one of the signals in the "
7386 "set specified in the B<signalfd>(2)  call is delivered to the caller.  The "
7387 "buffer returned by B<read>(2)  contains a structure describing the signal."
7388 msgstr ""
7389 "B<signalfd>(2)  が返すファイルディスクリプタを使うと、呼び出し元に配送された "
7390 "シグナルに関する情報を読み出すことができる。 このファイルディスクリプタから"
7391 "の B<read>(2)  は、 B<signalfd>(2)  の呼び出し時に指定されたシグナル集合のシ"
7392 "グナルの一つが呼び出し元に 配送されるまで停止 (block) する。 B<read>(2)  が返"
7393 "すバッファにはシグナルに関する情報を格納した構造体が入っている。"
7394
7395 #. type: SS
7396 #: build/C/man7/signal.7:170
7397 #, no-wrap
7398 msgid "Signal mask and pending signals"
7399 msgstr "シグナルマスクと処理待ちシグナル"
7400
7401 #. type: Plain text
7402 #: build/C/man7/signal.7:177
7403 msgid ""
7404 "A signal may be I<blocked>, which means that it will not be delivered until "
7405 "it is later unblocked.  Between the time when it is generated and when it is "
7406 "delivered a signal is said to be I<pending>."
7407 msgstr ""
7408 "シグナルは I<ブロック (block)> されることがある。ブロックされると、そのシグナ"
7409 "ルは その後ブロックを解除されるまで配送されなくなる。 シグナルが生成されてか"
7410 "ら配送されるまでの間、そのシグナルは I<処理待ち (pending)> であると呼ばれる。"
7411
7412 #. type: Plain text
7413 #: build/C/man7/signal.7:186
7414 msgid ""
7415 "Each thread in a process has an independent I<signal mask>, which indicates "
7416 "the set of signals that the thread is currently blocking.  A thread can "
7417 "manipulate its signal mask using B<pthread_sigmask>(3).  In a traditional "
7418 "single-threaded application, B<sigprocmask>(2)  can be used to manipulate "
7419 "the signal mask."
7420 msgstr ""
7421 "プロセス内の各スレッドは、それぞれ独立な I<シグナルマスク (signal mask)> を持"
7422 "つ。シグナルマスクはそのスレッドが現在ブロックしている シグナル集合を示すもの"
7423 "である。 スレッドは、 B<pthread_sigmask>(3)  を使って自分のシグナルマスクを操"
7424 "作できる。 伝統的なシングルスレッドのアプリケーションでは、 "
7425 "B<sigprocmask>(2)  を使って、シグナルマスクを操作できる。"
7426
7427 #. type: Plain text
7428 #: build/C/man7/signal.7:192 build/C/man2/sigprocmask.2:126
7429 msgid ""
7430 "A child created via B<fork>(2)  inherits a copy of its parent's signal mask; "
7431 "the signal mask is preserved across B<execve>(2)."
7432 msgstr ""
7433 "B<fork>(2)  経由で作成された子プロセスは親プロセスのシグナルマスクのコピーを"
7434 "継承する。 B<execve>(2)  の前後でシグナルマスクは保持される。"
7435
7436 #. type: Plain text
7437 #: build/C/man7/signal.7:209
7438 msgid ""
7439 "A signal may be generated (and thus pending)  for a process as a whole (e."
7440 "g., when sent using B<kill>(2))  or for a specific thread (e.g., certain "
7441 "signals, such as B<SIGSEGV> and B<SIGFPE>, generated as a consequence of "
7442 "executing a specific machine-language instruction are thread directed, as "
7443 "are signals targeted at a specific thread using B<pthread_kill>(3)).  A "
7444 "process-directed signal may be delivered to any one of the threads that does "
7445 "not currently have the signal blocked.  If more than one of the threads has "
7446 "the signal unblocked, then the kernel chooses an arbitrary thread to which "
7447 "to deliver the signal."
7448 msgstr ""
7449 "生成されるシグナル (したがって処理待ちとなるシグナル) には、 プロセス全体宛て"
7450 "と特定のスレッド宛てがある。 例えば、プロセス全体宛てのシグナルは "
7451 "B<kill>(2)  を使って送信される。 特定のマシン語の命令の実行の結果として生成さ"
7452 "れる、 B<SIGSEGV> や B<SIGFPE> などのシグナルは、スレッド宛てとなる。 また、 "
7453 "B<pthread_kill>(3)  を使って特定のスレッド宛てに生成されたシグナルも スレッド"
7454 "宛てとなる。 プロセス宛てのシグナルは、そのシグナルをブロックしていないスレッ"
7455 "ドのうち いずれかの一つに配送することができる。そのシグナルをブロックしていな"
7456 "い スレッドが複数ある場合、シグナルを配送するスレッドはカーネルが 無作為に選"
7457 "択する。"
7458
7459 #. type: Plain text
7460 #: build/C/man7/signal.7:216
7461 msgid ""
7462 "A thread can obtain the set of signals that it currently has pending using "
7463 "B<sigpending>(2).  This set will consist of the union of the set of pending "
7464 "process-directed signals and the set of signals pending for the calling "
7465 "thread."
7466 msgstr ""
7467 "スレッドは、 B<sigpending>(2)  を使って、現在処理待ちのシグナル集合を取得する"
7468 "ことができる。 この集合は、プロセス宛ての処理待ちシグナルと 呼び出したスレッ"
7469 "ド宛てのシグナルの両方から構成される。"
7470
7471 #. type: Plain text
7472 #: build/C/man7/signal.7:222 build/C/man2/sigpending.2:85
7473 msgid ""
7474 "A child created via B<fork>(2)  initially has an empty pending signal set; "
7475 "the pending signal set is preserved across an B<execve>(2)."
7476 msgstr ""
7477 "B<fork>(2)  経由で作成された子プロセスでは、処理待ちのシグナル集合は空の集合"
7478 "で初期化される。 B<execve>(2)  の前後で、処理待ちのシグナル集合は保持される。"
7479
7480 #. type: SS
7481 #: build/C/man7/signal.7:222
7482 #, no-wrap
7483 msgid "Standard signals"
7484 msgstr "標準シグナル"
7485
7486 #. type: Plain text
7487 #: build/C/man7/signal.7:234
7488 msgid ""
7489 "Linux supports the standard signals listed below.  Several signal numbers "
7490 "are architecture-dependent, as indicated in the \"Value\" column.  (Where "
7491 "three values are given, the first one is usually valid for alpha and sparc, "
7492 "the middle one for x86, arm, and most other architectures, and the last one "
7493 "for mips.  (Values for parisc are I<not> shown; see the Linux kernel source "
7494 "for signal numbering on that architecture.)  A - denotes that a signal is "
7495 "absent on the corresponding architecture.)"
7496 msgstr ""
7497 "Linux は以下に示す標準シグナルに対応している。シグナル番号の一部はアーキテク"
7498 "チャ依存であり、\"値\" 欄に示す通りである。 (3つの値が書かれているものは、 1"
7499 "つ目が alpha と sparc で通常有効な値、 真ん中が x86, arm や他のほとんどのアー"
7500 "キテクチャでの有効な値、最後が mips での値である。 (parisc での値は記載されて"
7501 "I<いない>。 parisc でのシグナル番号は Linux カーネルソースを参照してほし"
7502 "い)。 - はそのアーキテクチャにおいて対応するシグナルがないことを示す。)"
7503
7504 #. type: Plain text
7505 #: build/C/man7/signal.7:236
7506 msgid "First the signals described in the original POSIX.1-1990 standard."
7507 msgstr "最初に、POSIX.1-1990 に定義されているシグナルを示す。"
7508
7509 #. type: tbl table
7510 #: build/C/man7/signal.7:240 build/C/man7/signal.7:276
7511 #: build/C/man7/signal.7:305
7512 #, no-wrap
7513 msgid "Signal\tValue\tAction\tComment\n"
7514 msgstr "シグナル\t値\t動作\tコメント\n"
7515
7516 #. type: tbl table
7517 #: build/C/man7/signal.7:241
7518 #, no-wrap
7519 msgid "SIGHUP\t\\01\tTerm\tHangup detected on controlling terminal\n"
7520 msgstr "SIGHUP\t\\01\tTerm\t制御端末(controlling terminal)のハングアップ検出、\n"
7521
7522 #. type: tbl table
7523 #: build/C/man7/signal.7:242
7524 #, no-wrap
7525 msgid "\t\t\tor death of controlling process\n"
7526 msgstr "\t\t\tまたは制御しているプロセスの死\n"
7527
7528 #. type: tbl table
7529 #: build/C/man7/signal.7:243
7530 #, no-wrap
7531 msgid "SIGINT\t\\02\tTerm\tInterrupt from keyboard\n"
7532 msgstr "SIGINT\t\\02\tTerm\tキーボードからの割り込み (Interrupt)\n"
7533
7534 #. type: tbl table
7535 #: build/C/man7/signal.7:244
7536 #, no-wrap
7537 msgid "SIGQUIT\t\\03\tCore\tQuit from keyboard\n"
7538 msgstr "SIGQUIT\t\\03\tCore\tキーボードによる中止 (Quit)\n"
7539
7540 #. type: tbl table
7541 #: build/C/man7/signal.7:245
7542 #, no-wrap
7543 msgid "SIGILL\t\\04\tCore\tIllegal Instruction\n"
7544 msgstr "SIGILL\t\\04\tCore\t不正な命令\n"
7545
7546 #. type: tbl table
7547 #: build/C/man7/signal.7:246
7548 #, no-wrap
7549 msgid "SIGABRT\t\\06\tCore\tAbort signal from B<abort>(3)\n"
7550 msgstr "SIGABRT\t\\06\tCore\tB<abort>(3) からの中断 (Abort) シグナル\n"
7551
7552 #. type: tbl table
7553 #: build/C/man7/signal.7:247
7554 #, no-wrap
7555 msgid "SIGFPE\t\\08\tCore\tFloating point exception\n"
7556 msgstr "SIGFPE\t\\08\tCore\t浮動小数点例外\n"
7557
7558 #. type: tbl table
7559 #: build/C/man7/signal.7:248
7560 #, no-wrap
7561 msgid "SIGKILL\t\\09\tTerm\tKill signal\n"
7562 msgstr "SIGKILL\t\\09\tTerm\tKill シグナル\n"
7563
7564 #. type: tbl table
7565 #: build/C/man7/signal.7:249
7566 #, no-wrap
7567 msgid "SIGSEGV\t11\tCore\tInvalid memory reference\n"
7568 msgstr "SIGSEGV\t11\tCore\t不正なメモリ参照\n"
7569
7570 #. type: tbl table
7571 #: build/C/man7/signal.7:250
7572 #, no-wrap
7573 msgid "SIGPIPE\t13\tTerm\tBroken pipe: write to pipe with no\n"
7574 msgstr "SIGPIPE\t13\tTerm\tパイプ破壊:\n"
7575
7576 #. type: tbl table
7577 #: build/C/man7/signal.7:251
7578 #, no-wrap
7579 msgid "\t\t\treaders\n"
7580 msgstr "\t\t\t読み手の無いパイプへの書き出し\n"
7581
7582 #. type: tbl table
7583 #: build/C/man7/signal.7:252
7584 #, no-wrap
7585 msgid "SIGALRM\t14\tTerm\tTimer signal from B<alarm>(2)\n"
7586 msgstr "SIGALRM\t14\tTerm\tB<alarm>(2) からのタイマーシグナル\n"
7587
7588 #. type: tbl table
7589 #: build/C/man7/signal.7:253
7590 #, no-wrap
7591 msgid "SIGTERM\t15\tTerm\tTermination signal\n"
7592 msgstr "SIGTERM\t15\tTerm\t終了 (termination) シグナル\n"
7593
7594 #. type: tbl table
7595 #: build/C/man7/signal.7:254
7596 #, no-wrap
7597 msgid "SIGUSR1\t30,10,16\tTerm\tUser-defined signal 1\n"
7598 msgstr "SIGUSR1\t30,10,16\tTerm\tユーザ定義シグナル 1\n"
7599
7600 #. type: tbl table
7601 #: build/C/man7/signal.7:255
7602 #, no-wrap
7603 msgid "SIGUSR2\t31,12,17\tTerm\tUser-defined signal 2\n"
7604 msgstr "SIGUSR2\t31,12,17\tTerm\tユーザ定義シグナル 2\n"
7605
7606 #. type: tbl table
7607 #: build/C/man7/signal.7:256
7608 #, no-wrap
7609 msgid "SIGCHLD\t20,17,18\tIgn\tChild stopped or terminated\n"
7610 msgstr "SIGCHLD\t20,17,18\tIgn\t子プロセスの一時停止 (stop) または終了\n"
7611
7612 #. type: tbl table
7613 #: build/C/man7/signal.7:257
7614 #, no-wrap
7615 msgid "SIGCONT\t19,18,25\tCont\tContinue if stopped\n"
7616 msgstr "SIGCONT\t19,18,25\tCont\t一時停止 (stop) からの再開\n"
7617
7618 #. type: tbl table
7619 #: build/C/man7/signal.7:258
7620 #, no-wrap
7621 msgid "SIGSTOP\t17,19,23\tStop\tStop process\n"
7622 msgstr "SIGSTOP\t17,19,23\tStop\tプロセスの一時停止 (stop)\n"
7623
7624 #. type: tbl table
7625 #: build/C/man7/signal.7:259
7626 #, no-wrap
7627 msgid "SIGTSTP\t18,20,24\tStop\tStop typed at terminal\n"
7628 msgstr "SIGTSTP\t18,20,24\tStop\t端末より入力された一時停止 (stop)\n"
7629
7630 #. type: tbl table
7631 #: build/C/man7/signal.7:260
7632 #, no-wrap
7633 msgid "SIGTTIN\t21,21,26\tStop\tTerminal input for background process\n"
7634 msgstr "SIGTTIN\t21,21,26\tStop\tバックグランドプロセスの端末入力\n"
7635
7636 #. type: tbl table
7637 #: build/C/man7/signal.7:261
7638 #, no-wrap
7639 msgid "SIGTTOU\t22,22,27\tStop\tTerminal output for background process\n"
7640 msgstr "SIGTTOU\t22,22,27\tStop\tバックグランドプロセスの端末出力\n"
7641
7642 #. type: Plain text
7643 #: build/C/man7/signal.7:269
7644 msgid ""
7645 "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught, blocked, or ignored."
7646 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> はキャッチ、ブロック、無視できない。"
7647
7648 #. type: Plain text
7649 #: build/C/man7/signal.7:272
7650 msgid ""
7651 "Next the signals not in the POSIX.1-1990 standard but described in SUSv2 and "
7652 "POSIX.1-2001."
7653 msgstr ""
7654 "次に、 POSIX.1-1990 標準にはないが、 SUSv2 と POSIX.1-2001 に記述されているシ"
7655 "グナルを示す。"
7656
7657 #. type: tbl table
7658 #: build/C/man7/signal.7:277
7659 #, no-wrap
7660 msgid "SIGBUS\t10,7,10\tCore\tBus error (bad memory access)\n"
7661 msgstr "SIGBUS\t10,7,10\tCore\tバスエラー (不正なメモリアクセス)\n"
7662
7663 #. type: tbl table
7664 #: build/C/man7/signal.7:278
7665 #, no-wrap
7666 msgid "SIGPOLL\t\tTerm\tPollable event (Sys V).\n"
7667 msgstr "SIGPOLL\t\tTerm\tポーリング可能なイベント (Sys V)。\n"
7668
7669 #. type: tbl table
7670 #: build/C/man7/signal.7:279
7671 #, no-wrap
7672 msgid "\t\t\tSynonym for B<SIGIO>\n"
7673 msgstr "\t\t\tB<SIGIO> と同義\n"
7674
7675 #. type: tbl table
7676 #: build/C/man7/signal.7:280
7677 #, no-wrap
7678 msgid "SIGPROF\t27,27,29\tTerm\tProfiling timer expired\n"
7679 msgstr "SIGPROF\t27,27,29\tTerm\tprofiling タイマの時間切れ\n"
7680
7681 #. type: tbl table
7682 #: build/C/man7/signal.7:281
7683 #, no-wrap
7684 msgid "SIGSYS\t12,31,12\tCore\tBad argument to routine (SVr4)\n"
7685 msgstr "SIGSYS\t12,31,12\tCore\tルーチンへの引き数が不正 (SVr4)\n"
7686
7687 #. type: tbl table
7688 #: build/C/man7/signal.7:282
7689 #, no-wrap
7690 msgid "SIGTRAP\t5\tCore\tTrace/breakpoint trap\n"
7691 msgstr "SIGTRAP\t5\tCore\tトレース/ブレークポイント トラップ\n"
7692
7693 #. type: tbl table
7694 #: build/C/man7/signal.7:283
7695 #, no-wrap
7696 msgid "SIGURG\t16,23,21\tIgn\tUrgent condition on socket (4.2BSD)\n"
7697 msgstr "SIGURG\t16,23,21\tIgn\tソケットの緊急事態 (urgent condition) (4.2BSD)\n"
7698
7699 #. type: tbl table
7700 #: build/C/man7/signal.7:284
7701 #, no-wrap
7702 msgid "SIGVTALRM\t26,26,28\tTerm\tVirtual alarm clock (4.2BSD)\n"
7703 msgstr "SIGVTALRM\t26,26,28\tTerm\t仮想アラームクロック (4.2BSD)\n"
7704
7705 #. type: tbl table
7706 #: build/C/man7/signal.7:285
7707 #, no-wrap
7708 msgid "SIGXCPU\t24,24,30\tCore\tCPU time limit exceeded (4.2BSD)\n"
7709 msgstr "SIGXCPU\t24,24,30\tCore\tCPU時間制限超過 (4.2BSD)\n"
7710
7711 #. type: tbl table
7712 #: build/C/man7/signal.7:286
7713 #, no-wrap
7714 msgid "SIGXFSZ\t25,25,31\tCore\tFile size limit exceeded (4.2BSD)\n"
7715 msgstr "SIGXFSZ\t25,25,31\tCore\tファイルサイズ制限の超過 (4.2BSD)\n"
7716
7717 #. type: Plain text
7718 #: build/C/man7/signal.7:299
7719 msgid ""
7720 "Up to and including Linux 2.2, the default behavior for B<SIGSYS>, "
7721 "B<SIGXCPU>, B<SIGXFSZ>, and (on architectures other than SPARC and MIPS)  "
7722 "B<SIGBUS> was to terminate the process (without a core dump).  (On some "
7723 "other UNIX systems the default action for B<SIGXCPU> and B<SIGXFSZ> is to "
7724 "terminate the process without a core dump.)  Linux 2.4 conforms to the "
7725 "POSIX.1-2001 requirements for these signals, terminating the process with a "
7726 "core dump."
7727 msgstr ""
7728 "Linux 2.2 以前では、 B<SIGSYS>, B<SIGXCPU>, B<SIGXFSZ> および SPARC と MIPS "
7729 "以外のアーキテクチャでの B<SIGBUS> のデフォルトの振る舞いは (コアダンプ出力な"
7730 "しの) プロセス終了であった。 (他の UNIX システムにも B<SIGXCPU> と "
7731 "B<SIGXFSZ> のデフォルトの動作がコアダンプなしのプロセス終了のものがある。)  "
7732 "Linux 2.4 では、POSIX.1-2001 での要求仕様に準拠して、 これらのシグナルで、プ"
7733 "ロセスを終了させ、コアダンプを出力する ようになっている。"
7734
7735 #. type: Plain text
7736 #: build/C/man7/signal.7:301
7737 msgid "Next various other signals."
7738 msgstr "次にその他の各種シグナルを示す。"
7739
7740 #. type: tbl table
7741 #: build/C/man7/signal.7:306
7742 #, no-wrap
7743 msgid "SIGIOT\t6\tCore\tIOT trap. A synonym for B<SIGABRT>\n"
7744 msgstr "SIGIOT\t6\tCore\tIOT トラップ。B<SIGABRT> と同義\n"
7745
7746 #. type: tbl table
7747 #: build/C/man7/signal.7:307
7748 #, no-wrap
7749 msgid "SIGEMT\t7,-,7\tTerm\n"
7750 msgstr "SIGEMT\t7,-,7\tTerm\n"
7751
7752 #. type: tbl table
7753 #: build/C/man7/signal.7:308
7754 #, no-wrap
7755 msgid "SIGSTKFLT\t-,16,-\tTerm\tStack fault on coprocessor (unused)\n"
7756 msgstr "SIGSTKFLT\t-,16,-\tA\t数値演算プロセッサにおけるスタックフォルト (未使用)\n"
7757
7758 #. type: tbl table
7759 #: build/C/man7/signal.7:309
7760 #, no-wrap
7761 msgid "SIGIO\t23,29,22\tTerm\tI/O now possible (4.2BSD)\n"
7762 msgstr "SIGIO\t23,29,22\tTerm\t入出力が可能になった (4.2BSD)\n"
7763
7764 #. type: tbl table
7765 #: build/C/man7/signal.7:310
7766 #, no-wrap
7767 msgid "SIGCLD\t-,-,18\tIgn\tA synonym for B<SIGCHLD>\n"
7768 msgstr "SIGCLD\t-,-,18\tIgn\tB<SIGCHLD> と同義\n"
7769
7770 #. type: tbl table
7771 #: build/C/man7/signal.7:311
7772 #, no-wrap
7773 msgid "SIGPWR\t29,30,19\tTerm\tPower failure (System V)\n"
7774 msgstr "SIGPWR\t29,30,19\tTerm\t電源喪失 (Power failure) (System V)\n"
7775
7776 #. type: tbl table
7777 #: build/C/man7/signal.7:312
7778 #, no-wrap
7779 msgid "SIGINFO\t29,-,-\t\tA synonym for B<SIGPWR>\n"
7780 msgstr "SIGINFO\t29,-,-\t \tB<SIGPWR> と同義\n"
7781
7782 #. type: tbl table
7783 #: build/C/man7/signal.7:313
7784 #, no-wrap
7785 msgid "SIGLOST\t-,-,-\tTerm\tFile lock lost (unused)\n"
7786 msgstr "SIGLOST\t-,-,-\tTerm\tファイルロックが失われた (未使用)\n"
7787
7788 #. type: tbl table
7789 #: build/C/man7/signal.7:314
7790 #, no-wrap
7791 msgid "SIGWINCH\t28,28,20\tIgn\tWindow resize signal (4.3BSD, Sun)\n"
7792 msgstr "SIGWINCH\t28,28,20\tIgn\tウィンドウ リサイズ シグナル (4.3BSD, Sun)\n"
7793
7794 #. type: tbl table
7795 #: build/C/man7/signal.7:315
7796 #, no-wrap
7797 msgid "SIGUNUSED\t-,31,-\tCore\tSynonymous with B<SIGSYS>\n"
7798 msgstr "SIGUNUSED\t-,31,-\tCore\tB<SIGSYS> と同義\n"
7799
7800 #. type: Plain text
7801 #: build/C/man7/signal.7:325
7802 msgid ""
7803 "(Signal 29 is B<SIGINFO> / B<SIGPWR> on an alpha but B<SIGLOST> on a sparc.)"
7804 msgstr ""
7805 "(シグナル 29 は alpha では B<SIGINFO> / B<SIGPWR> だが、sparc では "
7806 "B<SIGLOST> である。)"
7807
7808 #. type: Plain text
7809 #: build/C/man7/signal.7:331
7810 msgid ""
7811 "B<SIGEMT> is not specified in POSIX.1-2001, but nevertheless appears on most "
7812 "other UNIX systems, where its default action is typically to terminate the "
7813 "process with a core dump."
7814 msgstr ""
7815 "B<SIGEMT> は POSIX.1-2001 に規定されていないが、 その他の多くの UNIX システム"
7816 "に存在する。 デフォルトの動作は多くの場合、コアダンプ出力を伴うプロセスの終了"
7817 "である。"
7818
7819 #. type: Plain text
7820 #: build/C/man7/signal.7:335
7821 msgid ""
7822 "B<SIGPWR> (which is not specified in POSIX.1-2001) is typically ignored by "
7823 "default on those other UNIX systems where it appears."
7824 msgstr ""
7825 "B<SIGPWR> は (POSIX.1-2001 に規定されていないが) このシグナルが存在する 他の "
7826 "UNIX システムでは多くの場合、デフォルト動作は無視である。"
7827
7828 #. type: Plain text
7829 #: build/C/man7/signal.7:339
7830 msgid ""
7831 "B<SIGIO> (which is not specified in POSIX.1-2001) is ignored by default on "
7832 "several other UNIX systems."
7833 msgstr ""
7834 "B<SIGIO> は (POSIX.1-2001 に規定されていないが) いくつかの他の UNIX システム"
7835 "では デフォルト動作は無視である。"
7836
7837 #.  parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31
7838 #. type: Plain text
7839 #: build/C/man7/signal.7:346
7840 msgid ""
7841 "Where defined, B<SIGUNUSED> is synonymous with B<SIGSYS> on most "
7842 "architectures."
7843 msgstr ""
7844 "B<SIGUNUSED> が定義されている場合には、ほとんどのアーキテクチャで B<SIGSYS> "
7845 "の同義語となっている。"
7846
7847 #. type: SS
7848 #: build/C/man7/signal.7:346
7849 #, no-wrap
7850 msgid "Real-time signals"
7851 msgstr "リアルタイムシグナル"
7852
7853 #. type: Plain text
7854 #: build/C/man7/signal.7:356
7855 msgid ""
7856 "Linux supports real-time signals as originally defined in the POSIX.1b real-"
7857 "time extensions (and now included in POSIX.1-2001).  The range of supported "
7858 "real-time signals is defined by the macros B<SIGRTMIN> and B<SIGRTMAX>.  "
7859 "POSIX.1-2001 requires that an implementation support at least "
7860 "B<_POSIX_RTSIG_MAX> (8) real-time signals."
7861 msgstr ""
7862 "Linux はリアルタイムシグナルをサポートしている。 リアルタイムシグナルは元々 "
7863 "POSIX.1b のリアルタイム拡張で定義されて いるものであり、現在では "
7864 "POSIX.1-2001 に含まれている。 対応しているリアルタイムシグナルの範囲は、マク"
7865 "ロ B<SIGRTMIN> と B<SIGRTMAX> で定義される。 POSIX.1-2001 では、少なくとも "
7866 "B<_POSIX_RTSIG_MAX> (8) 個のリアルタイムシグナルに対応した実装が要求されてい"
7867 "る。"
7868
7869 #. type: Plain text
7870 #: build/C/man7/signal.7:378
7871 msgid ""
7872 "The Linux kernel supports a range of 32 different real-time signals, "
7873 "numbered 33 to 64.  However, the glibc POSIX threads implementation "
7874 "internally uses two (for NPTL) or three (for LinuxThreads) real-time signals "
7875 "(see B<pthreads>(7)), and adjusts the value of B<SIGRTMIN> suitably (to 34 "
7876 "or 35).  Because the range of available real-time signals varies according "
7877 "to the glibc threading implementation (and this variation can occur at run "
7878 "time according to the available kernel and glibc), and indeed the range of "
7879 "real-time signals varies across UNIX systems, programs should I<never refer "
7880 "to real-time signals using hard-coded numbers>, but instead should always "
7881 "refer to real-time signals using the notation B<SIGRTMIN>+n, and include "
7882 "suitable (run-time) checks that B<SIGRTMIN>+n does not exceed B<SIGRTMAX>."
7883 msgstr ""
7884 "Linux は、32 個の異なるリアルタイムシグナルに対応しており、 その番号は 33 か"
7885 "ら 64 である。 しかしながら、glibc の POSIX スレッド実装は、 内部で 2個 "
7886 "(NPTL の場合) か 3個 (LinuxThreads の場合) の リアルタイムシグナルを使用して"
7887 "おり (B<pthreads>(7)  参照)、 B<SIGRTMIN> の値を適切に (34 か 35 に) 調整す"
7888 "る。 利用可能なリアルタイムシグナルの範囲は glibc のスレッド実装により 異なる"
7889 "し (使用するカーネルと glibc により実行時にも変化する)、 UNIX システムの種類"
7890 "によっても異なる。したがって、 プログラムでは「ハードコーディングした数字を"
7891 "使ってのリアルタイムシグナルの 参照は決してすべきではなく」、代わりに "
7892 "B<SIGRTMIN>+n の形で参照すべきである。また、 B<SIGRTMIN>+n が B<SIGRTMAX> を"
7893 "超えていないかのチェックを (実行時に) 適切に行うべきである。"
7894
7895 #. type: Plain text
7896 #: build/C/man7/signal.7:382
7897 msgid ""
7898 "Unlike standard signals, real-time signals have no predefined meanings: the "
7899 "entire set of real-time signals can be used for application-defined purposes."
7900 msgstr ""
7901 "標準シグナルと異なり、リアルタイムシグナルには 事前に定義された意味はない。 "
7902 "リアルタイムシグナルの全部をアプリケーションで定義した用途に使える。"
7903
7904 #. type: Plain text
7905 #: build/C/man7/signal.7:385
7906 msgid ""
7907 "The default action for an unhandled real-time signal is to terminate the "
7908 "receiving process."
7909 msgstr ""
7910 "ハンドリングしないリアルタイムシグナルのデフォルトの動作は 受信したプロセスの"
7911 "終了である。"
7912
7913 #. type: Plain text
7914 #: build/C/man7/signal.7:387
7915 msgid "Real-time signals are distinguished by the following:"
7916 msgstr "リアルタイムシグナルは以下の特徴がある:"
7917
7918 #. type: Plain text
7919 #: build/C/man7/signal.7:391
7920 msgid ""
7921 "Multiple instances of real-time signals can be queued.  By contrast, if "
7922 "multiple instances of a standard signal are delivered while that signal is "
7923 "currently blocked, then only one instance is queued."
7924 msgstr ""
7925 "リアルタイムシグナルは複数の実体をキューに入れることができる。 一方、標準シグ"
7926 "ナルの場合、そのシグナルがブロックされている間に 同じシグナルの複数のインスタ"
7927 "ンスが配送されても、 1 つだけがキューに入れられる。"
7928
7929 #. type: Plain text
7930 #: build/C/man7/signal.7:411
7931 msgid ""
7932 "If the signal is sent using B<sigqueue>(3), an accompanying value (either an "
7933 "integer or a pointer) can be sent with the signal.  If the receiving process "
7934 "establishes a handler for this signal using the B<SA_SIGINFO> flag to "
7935 "B<sigaction>(2), then it can obtain this data via the I<si_value> field of "
7936 "the I<siginfo_t> structure passed as the second argument to the handler.  "
7937 "Furthermore, the I<si_pid> and I<si_uid> fields of this structure can be "
7938 "used to obtain the PID and real user ID of the process sending the signal."
7939 msgstr ""
7940 "シグナルが B<sigqueue>(3)  を用いて送信された場合、 付属データ (整数かポイン"
7941 "タ) をシグナルと共に送信できる。 受信側プロセスが B<sigaction>(2)  に "
7942 "B<SA_SIGINFO> フラグを指定してシグナルハンドラを設定した場合、 このデータは "
7943 "I<siginfo_t> 構造体の I<si_value> フィールド経由でハンドラの第 2 引き数として"
7944 "渡され、 利用することができる。 さらに、この構造体の I<si_pid> と I<si_uid> "
7945 "フィールドでシグナルを送信したプロセスの PID と実ユーザ ID を 得ることができ"
7946 "る。"
7947
7948 #. type: Plain text
7949 #: build/C/man7/signal.7:420
7950 msgid ""
7951 "Real-time signals are delivered in a guaranteed order.  Multiple real-time "
7952 "signals of the same type are delivered in the order they were sent.  If "
7953 "different real-time signals are sent to a process, they are delivered "
7954 "starting with the lowest-numbered signal.  (I.e., low-numbered signals have "
7955 "highest priority.)  By contrast, if multiple standard signals are pending "
7956 "for a process, the order in which they are delivered is unspecified."
7957 msgstr ""
7958 "リアルタイムシグナルでは配送される順序が保証される。 同じタイプのリアルタイム"
7959 "シグナルは送信された順番に到着する。 異なるリアルタイムシグナルが一つのプロセ"
7960 "スに送信された場合、 番号の小さいシグナルから先に到着する。 (つまり小さい番号"
7961 "のシグナルが高い優先順位を持つ。)  対照的に、一つのプロセスに対して複数の標準"
7962 "シグナルが処理待ちとなった場合、 これらのシグナルが配送される順序は不定であ"
7963 "る。"
7964
7965 #. type: Plain text
7966 #: build/C/man7/signal.7:425
7967 msgid ""
7968 "If both standard and real-time signals are pending for a process, POSIX "
7969 "leaves it unspecified which is delivered first.  Linux, like many other "
7970 "implementations, gives priority to standard signals in this case."
7971 msgstr ""
7972 "一つのプロセスに対して標準シグナルとリアルタイムシグナルの両方が 処理待ちの場"
7973 "合、POSIX はどちらが先に配送されるかを規定していない。 Linux では、他の多くの"
7974 "実装と同様、このような場合には 標準シグナルが優先される。"
7975
7976 #. type: Plain text
7977 #: build/C/man7/signal.7:448
7978 msgid ""
7979 "According to POSIX, an implementation should permit at least "
7980 "B<_POSIX_SIGQUEUE_MAX> (32) real-time signals to be queued to a process.  "
7981 "However, Linux does things differently.  In kernels up to and including "
7982 "2.6.7, Linux imposes a system-wide limit on the number of queued real-time "
7983 "signals for all processes.  This limit can be viewed and (with privilege) "
7984 "changed via the I</proc/sys/kernel/rtsig-max> file.  A related file, I</proc/"
7985 "sys/kernel/rtsig-nr>, can be used to find out how many real-time signals are "
7986 "currently queued.  In Linux 2.6.8, these I</proc> interfaces were replaced "
7987 "by the B<RLIMIT_SIGPENDING> resource limit, which specifies a per-user limit "
7988 "for queued signals; see B<setrlimit>(2)  for further details."
7989 msgstr ""
7990 "POSIX によれば、1 プロセス毎に最低 B<_POSIX_SIGQUEUE_MAX> (32) 個のリアルタイ"
7991 "ムシグナルをキューに入れられるべきとしている。 しかし、 Linux では違った実装"
7992 "になっている。カーネル 2.6.7 までは (2.6.7 を含む)、全プロセスでキューに入っ"
7993 "ているリアルタイムシグナル の数の合計についてシステム全体での制限がある。 こ"
7994 "の制限は I</proc/sys/kernel/rtsig-max> ファイルで見ることができ、 (権限があれ"
7995 "ば) 変更もできる。 関係するファイルとして、 I</proc/sys/kernel/rtsig-nr> を見"
7996 "ることで、いくつのリアルタイムシグナルが現在キューに入っているかを 知ることが"
7997 "できる。 Linux 2.6.8 で、これらの I</proc> 経由のインターフェースは、 "
7998 "B<RLIMIT_SIGPENDING> リソース制限に置き換えられた。 これは、キューに入るシグ"
7999 "ナル数に関してユーザ単位に 上限を指定するものである。 詳しくは "
8000 "B<setrlimit>(2)  を参照。"
8001
8002 #. type: SS
8003 #: build/C/man7/signal.7:448
8004 #, no-wrap
8005 msgid "Async-signal-safe functions"
8006 msgstr "非同期シグナルで安全な関数 (async-signal-safe functions)"
8007
8008 #. type: Plain text
8009 #: build/C/man7/signal.7:457
8010 msgid ""
8011 "A signal handler function must be very careful, since processing elsewhere "
8012 "may be interrupted at some arbitrary point in the execution of the program.  "
8013 "POSIX has the concept of \"safe function\".  If a signal interrupts the "
8014 "execution of an unsafe function, and I<handler> calls an unsafe function, "
8015 "then the behavior of the program is undefined."
8016 msgstr ""
8017 "シグナルハンドラ関数には非常に注意しなければならない。 他の場所の処理はプログ"
8018 "ラム実行の任意の箇所で中断される可能性があるためである。 POSIX には「安全な関"
8019 "数 (safe function)」という概念がある。 シグナルが安全でない関数の実行を中断"
8020 "し、かつ I<handler> が安全でない関数を呼び出した場合、プログラムの挙動は未定"
8021 "義である。"
8022
8023 #. type: Plain text
8024 #: build/C/man7/signal.7:461
8025 msgid ""
8026 "POSIX.1-2004 (also known as POSIX.1-2001 Technical Corrigendum 2)  requires "
8027 "an implementation to guarantee that the following functions can be safely "
8028 "called inside a signal handler:"
8029 msgstr ""
8030 "POSIX.1-2004 (POSIX.1-2001 Technical Corrigendum (正誤表) 2 とも言う) では、 "
8031 "シグナルハンドラ内での安全な呼び出しを保証することが必須の関数として 以下が規"
8032 "定されている。"
8033
8034 #. type: Plain text
8035 #: build/C/man7/signal.7:582
8036 #, no-wrap
8037 msgid ""
8038 "_Exit()\n"
8039 "_exit()\n"
8040 "abort()\n"
8041 "accept()\n"
8042 "access()\n"
8043 "aio_error()\n"
8044 "aio_return()\n"
8045 "aio_suspend()\n"
8046 "alarm()\n"
8047 "bind()\n"
8048 "cfgetispeed()\n"
8049 "cfgetospeed()\n"
8050 "cfsetispeed()\n"
8051 "cfsetospeed()\n"
8052 "chdir()\n"
8053 "chmod()\n"
8054 "chown()\n"
8055 "clock_gettime()\n"
8056 "close()\n"
8057 "connect()\n"
8058 "creat()\n"
8059 "dup()\n"
8060 "dup2()\n"
8061 "execle()\n"
8062 "execve()\n"
8063 "fchmod()\n"
8064 "fchown()\n"
8065 "fcntl()\n"
8066 "fdatasync()\n"
8067 "fork()\n"
8068 "fpathconf()\n"
8069 "fstat()\n"
8070 "fsync()\n"
8071 "ftruncate()\n"
8072 "getegid()\n"
8073 "geteuid()\n"
8074 "getgid()\n"
8075 "getgroups()\n"
8076 "getpeername()\n"
8077 "getpgrp()\n"
8078 "getpid()\n"
8079 "getppid()\n"
8080 "getsockname()\n"
8081 "getsockopt()\n"
8082 "getuid()\n"
8083 "kill()\n"
8084 "link()\n"
8085 "listen()\n"
8086 "lseek()\n"
8087 "lstat()\n"
8088 "mkdir()\n"
8089 "mkfifo()\n"
8090 "open()\n"
8091 "pathconf()\n"
8092 "pause()\n"
8093 "pipe()\n"
8094 "poll()\n"
8095 "posix_trace_event()\n"
8096 "pselect()\n"
8097 "raise()\n"
8098 "read()\n"
8099 "readlink()\n"
8100 "recv()\n"
8101 "recvfrom()\n"
8102 "recvmsg()\n"
8103 "rename()\n"
8104 "rmdir()\n"
8105 "select()\n"
8106 "sem_post()\n"
8107 "send()\n"
8108 "sendmsg()\n"
8109 "sendto()\n"
8110 "setgid()\n"
8111 "setpgid()\n"
8112 "setsid()\n"
8113 "setsockopt()\n"
8114 "setuid()\n"
8115 "shutdown()\n"
8116 "sigaction()\n"
8117 "sigaddset()\n"
8118 "sigdelset()\n"
8119 "sigemptyset()\n"
8120 "sigfillset()\n"
8121 "sigismember()\n"
8122 "signal()\n"
8123 "sigpause()\n"
8124 "sigpending()\n"
8125 "sigprocmask()\n"
8126 "sigqueue()\n"
8127 "sigset()\n"
8128 "sigsuspend()\n"
8129 "sleep()\n"
8130 "sockatmark()\n"
8131 "socket()\n"
8132 "socketpair()\n"
8133 "stat()\n"
8134 "symlink()\n"
8135 "sysconf()\n"
8136 "tcdrain()\n"
8137 "tcflow()\n"
8138 "tcflush()\n"
8139 "tcgetattr()\n"
8140 "tcgetpgrp()\n"
8141 "tcsendbreak()\n"
8142 "tcsetattr()\n"
8143 "tcsetpgrp()\n"
8144 "time()\n"
8145 "timer_getoverrun()\n"
8146 "timer_gettime()\n"
8147 "timer_settime()\n"
8148 "times()\n"
8149 "umask()\n"
8150 "uname()\n"
8151 "unlink()\n"
8152 "utime()\n"
8153 "wait()\n"
8154 "waitpid()\n"
8155 "write()\n"
8156 msgstr ""
8157 "_Exit()\n"
8158 "_exit()\n"
8159 "abort()\n"
8160 "accept()\n"
8161 "access()\n"
8162 "aio_error()\n"
8163 "aio_return()\n"
8164 "aio_suspend()\n"
8165 "alarm()\n"
8166 "bind()\n"
8167 "cfgetispeed()\n"
8168 "cfgetospeed()\n"
8169 "cfsetispeed()\n"
8170 "cfsetospeed()\n"
8171 "chdir()\n"
8172 "chmod()\n"
8173 "chown()\n"
8174 "clock_gettime()\n"
8175 "close()\n"
8176 "connect()\n"
8177 "creat()\n"
8178 "dup()\n"
8179 "dup2()\n"
8180 "execle()\n"
8181 "execve()\n"
8182 "fchmod()\n"
8183 "fchown()\n"
8184 "fcntl()\n"
8185 "fdatasync()\n"
8186 "fork()\n"
8187 "fpathconf()\n"
8188 "fstat()\n"
8189 "fsync()\n"
8190 "ftruncate()\n"
8191 "getegid()\n"
8192 "geteuid()\n"
8193 "getgid()\n"
8194 "getgroups()\n"
8195 "getpeername()\n"
8196 "getpgrp()\n"
8197 "getpid()\n"
8198 "getppid()\n"
8199 "getsockname()\n"
8200 "getsockopt()\n"
8201 "getuid()\n"
8202 "kill()\n"
8203 "link()\n"
8204 "listen()\n"
8205 "lseek()\n"
8206 "lstat()\n"
8207 "mkdir()\n"
8208 "mkfifo()\n"
8209 "open()\n"
8210 "pathconf()\n"
8211 "pause()\n"
8212 "pipe()\n"
8213 "poll()\n"
8214 "posix_trace_event()\n"
8215 "pselect()\n"
8216 "raise()\n"
8217 "read()\n"
8218 "readlink()\n"
8219 "recv()\n"
8220 "recvfrom()\n"
8221 "recvmsg()\n"
8222 "rename()\n"
8223 "rmdir()\n"
8224 "select()\n"
8225 "sem_post()\n"
8226 "send()\n"
8227 "sendmsg()\n"
8228 "sendto()\n"
8229 "setgid()\n"
8230 "setpgid()\n"
8231 "setsid()\n"
8232 "setsockopt()\n"
8233 "setuid()\n"
8234 "shutdown()\n"
8235 "sigaction()\n"
8236 "sigaddset()\n"
8237 "sigdelset()\n"
8238 "sigemptyset()\n"
8239 "sigfillset()\n"
8240 "sigismember()\n"
8241 "signal()\n"
8242 "sigpause()\n"
8243 "sigpending()\n"
8244 "sigprocmask()\n"
8245 "sigqueue()\n"
8246 "sigset()\n"
8247 "sigsuspend()\n"
8248 "sleep()\n"
8249 "sockatmark()\n"
8250 "socket()\n"
8251 "socketpair()\n"
8252 "stat()\n"
8253 "symlink()\n"
8254 "sysconf()\n"
8255 "tcdrain()\n"
8256 "tcflow()\n"
8257 "tcflush()\n"
8258 "tcgetattr()\n"
8259 "tcgetpgrp()\n"
8260 "tcsendbreak()\n"
8261 "tcsetattr()\n"
8262 "tcsetpgrp()\n"
8263 "time()\n"
8264 "timer_getoverrun()\n"
8265 "timer_gettime()\n"
8266 "timer_settime()\n"
8267 "times()\n"
8268 "umask()\n"
8269 "uname()\n"
8270 "unlink()\n"
8271 "utime()\n"
8272 "wait()\n"
8273 "waitpid()\n"
8274 "write()\n"
8275
8276 #. type: Plain text
8277 #: build/C/man7/signal.7:587
8278 msgid ""
8279 "POSIX.1-2008 removes fpathconf(), pathconf(), and sysconf()  from the above "
8280 "list, and adds the following functions:"
8281 msgstr ""
8282 "POSIX.1-2008 では、上記のリストのうち fpathconf(), pathconf(), sysconf()  が"
8283 "削除され、以下の関数が追加された。"
8284
8285 #. type: Plain text
8286 #: build/C/man7/signal.7:610
8287 #, no-wrap
8288 msgid ""
8289 "execl()\n"
8290 "execv()\n"
8291 "faccessat()\n"
8292 "fchmodat()\n"
8293 "fchownat()\n"
8294 "fexecve()\n"
8295 "fstatat()\n"
8296 "futimens()\n"
8297 "linkat()\n"
8298 "mkdirat()\n"
8299 "mkfifoat()\n"
8300 "mknod()\n"
8301 "mknodat()\n"
8302 "openat()\n"
8303 "readlinkat()\n"
8304 "renameat()\n"
8305 "symlinkat()\n"
8306 "unlinkat()\n"
8307 "utimensat()\n"
8308 "utimes()\n"
8309 msgstr ""
8310 "execl()\n"
8311 "execv()\n"
8312 "faccessat()\n"
8313 "fchmodat()\n"
8314 "fchownat()\n"
8315 "fexecve()\n"
8316 "fstatat()\n"
8317 "futimens()\n"
8318 "linkat()\n"
8319 "mkdirat()\n"
8320 "mkfifoat()\n"
8321 "mknod()\n"
8322 "mknodat()\n"
8323 "openat()\n"
8324 "readlinkat()\n"
8325 "renameat()\n"
8326 "symlinkat()\n"
8327 "unlinkat()\n"
8328 "utimensat()\n"
8329 "utimes()\n"
8330
8331 #. type: SS
8332 #: build/C/man7/signal.7:612
8333 #, no-wrap
8334 msgid "Interruption of system calls and library functions by signal handlers"
8335 msgstr "シグナルハンドラによるシステムコールやライブラリ関数への割り込み"
8336
8337 #. type: Plain text
8338 #: build/C/man7/signal.7:615
8339 msgid ""
8340 "If a signal handler is invoked while a system call or library function call "
8341 "is blocked, then either:"
8342 msgstr ""
8343 "システムコールやライブラリが停止 (block) している間にシグナルハンドラが 起動"
8344 "されると、以下のどちらかとなる。"
8345
8346 #. type: Plain text
8347 #: build/C/man7/signal.7:617
8348 msgid ""
8349 "the call is automatically restarted after the signal handler returns; or"
8350 msgstr "シグナルが返った後、呼び出しは自動的に再スタートされる。"
8351
8352 #. type: Plain text
8353 #: build/C/man7/signal.7:620
8354 msgid "the call fails with the error B<EINTR>."
8355 msgstr "呼び出しはエラー B<EINTR> で失敗する。"
8356
8357 #. type: Plain text
8358 #: build/C/man7/signal.7:628
8359 msgid ""
8360 "Which of these two behaviors occurs depends on the interface and whether or "
8361 "not the signal handler was established using the B<SA_RESTART> flag (see "
8362 "B<sigaction>(2)).  The details vary across UNIX systems; below, the details "
8363 "for Linux."
8364 msgstr ""
8365 "これらの二つの挙動のうちどちらが起こるかは、インターフェイスにより依存し、 シ"
8366 "グナルハンドラが B<SA_RESTART> フラグ (B<sigaction>(2)  参照) を使って設定さ"
8367 "れていたかにも依存する。 詳細は UNIX システムによって異なる。 Linux における"
8368 "詳細を以下で説明する。"
8369
8370 #.  The following system calls use ERESTARTSYS,
8371 #.  so that they are restartable
8372 #. type: Plain text
8373 #: build/C/man7/signal.7:637
8374 msgid ""
8375 "If a blocked call to one of the following interfaces is interrupted by a "
8376 "signal handler, then the call will be automatically restarted after the "
8377 "signal handler returns if the B<SA_RESTART> flag was used; otherwise the "
8378 "call will fail with the error B<EINTR>:"
8379 msgstr ""
8380 "以下のインターフェイスのいずれかの呼び出しが停止している間に シグナルハンドラ"
8381 "により割り込まれた場合、 B<SA_RESTART> フラグが使用されていれば、シグナルハン"
8382 "ドラが返った後に その呼び出しは自動的に再スタートされることになる。 それ以外"
8383 "の場合は、その呼び出しはエラー B<EINTR> で失敗することになる。"
8384
8385 #.  commit 1ca39ab9d21ac93f94b9e3eb364ea9a5cf2aba06
8386 #. type: Plain text
8387 #: build/C/man7/signal.7:672
8388 #, fuzzy
8389 #| msgid ""
8390 #| "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), and B<ioctl>(2)  "
8391 #| "calls on \"slow\" devices.  A \"slow\" device is one where the I/O call "
8392 #| "may block for an indefinite time, for example, a terminal, pipe, or "
8393 #| "socket.  (A disk is not a slow device according to this definition.)  If "
8394 #| "an I/O call on a slow device has already transferred some data by the "
8395 #| "time it is interrupted by a signal handler, then the call will return a "
8396 #| "success status (normally, the number of bytes transferred)."
8397 msgid ""
8398 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), and B<ioctl>(2)  calls "
8399 "on \"slow\" devices.  A \"slow\" device is one where the I/O call may block "
8400 "for an indefinite time, for example, a terminal, pipe, or socket.  (A disk "
8401 "is not a slow device according to this definition.)  A B<read>(2)  on an "
8402 "B<eventfd>(2), B<signalfd>(2), B<timerfd>(2), B<fanotify>(7), or "
8403 "B<inotify>(7)  file descriptor is also considered to be a \"slow\" "
8404 "operation.  (Before Linux 3.8, reads from an B<inotify>(7)  file descriptor "
8405 "were not restartable; when interrupted by a signal handler, B<read>(2)  "
8406 "always failed with the error B<EINTR>.)  If an I/O call on a slow device has "
8407 "already transferred some data by the time it is interrupted by a signal "
8408 "handler, then the call will return a success status (normally, the number of "
8409 "bytes transferred)."
8410 msgstr ""
8411 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), B<ioctl>(2)  の「遅い "
8412 "(slow)」デバイスに対する呼び出し。 ここでいう「遅い」デバイスとは、I/O 呼び出"
8413 "しが無期限に停止 (block) する 可能性のあるデバイスのことで、例としては端末、"
8414 "パイプ、ソケットがある (この定義では、ディスクは遅いデバイスではない)。 遅い"
8415 "デバイスに対する I/O 呼び出しが、 シグナルハンドラにより割り込まれた時点まで"
8416 "に何らかのデータを すでに転送していれば、呼び出しは成功ステータス (通常は、転"
8417 "送されたバイト数) を返すことだろう。"
8418
8419 #. type: Plain text
8420 #: build/C/man7/signal.7:676
8421 msgid ""
8422 "B<open>(2), if it can block (e.g., when opening a FIFO; see B<fifo>(7))."
8423 msgstr ""
8424 "停止 (block) する可能性のある B<open>(2)  (例えば、FIFO のオープン時; "
8425 "B<fifo>(7)  参照)。"
8426
8427 #. type: Plain text
8428 #: build/C/man7/signal.7:683
8429 msgid "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), and B<waitpid>(2)."
8430 msgstr "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), B<waitpid>(2)."
8431
8432 #.  If a timeout (setsockopt()) is in effect on the socket, then these
8433 #.  system calls switch to using EINTR.  Consequently, they and are not
8434 #.  automatically restarted, and they show the stop/cont behavior
8435 #.  described below.  (Verified from 2.6.26 source, and by experiment; mtk)
8436 #.  FIXME . What about sendmmsg()?
8437 #. type: Plain text
8438 #: build/C/man7/signal.7:701
8439 msgid ""
8440 "Socket interfaces: B<accept>(2), B<connect>(2), B<recv>(2), B<recvfrom>(2), "
8441 "B<recvmmsg>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), "
8442 "unless a timeout has been set on the socket (see below)."
8443 msgstr ""
8444 "ソケットインターフェイス: B<accept>(2), B<connect>(2), B<recv>(2), "
8445 "B<recvfrom>(2), B<recvmmsg>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), "
8446 "B<sendmsg>(2).  但し、ソケットにタイムアウトが設定されていない場合 (下記参"
8447 "照)。"
8448
8449 #. type: Plain text
8450 #: build/C/man7/signal.7:707
8451 msgid "File locking interfaces: B<flock>(2)  and B<fcntl>(2)  B<F_SETLKW>."
8452 msgstr ""
8453 "ファイルロック用インターフェイス: B<flock>(2), B<fcntl>(2)  B<F_SETLKW>."
8454
8455 #. type: Plain text
8456 #: build/C/man7/signal.7:714
8457 msgid ""
8458 "POSIX message queue interfaces: B<mq_receive>(3), B<mq_timedreceive>(3), "
8459 "B<mq_send>(3), and B<mq_timedsend>(3)."
8460 msgstr ""
8461 "POSIX メッセージキューインターフェイス: B<mq_receive>(3), "
8462 "B<mq_timedreceive>(3), B<mq_send>(3), B<mq_timedsend>(3)."
8463
8464 #. type: Plain text
8465 #: build/C/man7/signal.7:719
8466 msgid ""
8467 "B<futex>(2)  B<FUTEX_WAIT> (since Linux 2.6.22; beforehand, always failed "
8468 "with B<EINTR>)."
8469 msgstr ""
8470 "B<futex>(2)  B<FUTEX_WAIT> (Linux 2.6.22 以降; それ以前は常に B<EINTR> で失敗"
8471 "していた)。"
8472
8473 #. type: Plain text
8474 #: build/C/man7/signal.7:723
8475 msgid "B<pthread_mutex_lock>(3), B<pthread_cond_wait>(3), and related APIs."
8476 msgstr ""
8477
8478 #. type: Plain text
8479 #: build/C/man7/signal.7:730
8480 msgid ""
8481 "POSIX semaphore interfaces: B<sem_wait>(3)  and B<sem_timedwait>(3)  (since "
8482 "Linux 2.6.22; beforehand, always failed with B<EINTR>)."
8483 msgstr ""
8484 "POSIX セマフォインターフェイス: B<sem_wait>(3), B<sem_timedwait>(3)  (Linux "
8485 "2.6.22 以降; それ以前は常に B<EINTR> で失敗していた)。"
8486
8487 #.  These are the system calls that give EINTR or ERESTARTNOHAND
8488 #.  on interruption by a signal handler.
8489 #. type: Plain text
8490 #: build/C/man7/signal.7:741
8491 msgid ""
8492 "The following interfaces are never restarted after being interrupted by a "
8493 "signal handler, regardless of the use of B<SA_RESTART>; they always fail "
8494 "with the error B<EINTR> when interrupted by a signal handler:"
8495 msgstr ""
8496 "以下のインターフェイスは、 B<SA_RESTART> を使っているどうかに関わらず、シグナ"
8497 "ルハンドラにより割り込まれた後、 再スタートすることは決してない。 これらは、"
8498 "シグナルハンドラにより割り込まれると、常にエラー B<EINTR> で失敗する。"
8499
8500 #. type: Plain text
8501 #: build/C/man7/signal.7:756 build/C/man7/signal.7:831
8502 #, fuzzy
8503 #| msgid ""
8504 #| "Socket interfaces, when a timeout has been set on the socket using "
8505 #| "B<setsockopt>(2): B<accept>(2), B<recv>(2), B<recvfrom>(2), and "
8506 #| "B<recvmsg>(2), if a receive timeout (B<SO_RCVTIMEO>)  has been set; "
8507 #| "B<connect>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), if a send "
8508 #| "timeout (B<SO_SNDTIMEO>)  has been set."
8509 msgid ""
8510 "\"Input\" socket interfaces, when a timeout (B<SO_RCVTIMEO>)  has been set "
8511 "on the socket using B<setsockopt>(2): B<accept>(2), B<recv>(2), "
8512 "B<recvfrom>(2), B<recvmmsg>(2)  (also with a non-NULL I<timeout> argument), "
8513 "and B<recvmsg>(2)."
8514 msgstr ""
8515 "B<setsockopt>(2)  を使ってタイムアウトが設定されているソケットインターフェー"
8516 "ス: B<accept>(2), B<recv>(2), B<recvfrom>(2), B<recvmsg>(2)  で受信タイムアウ"
8517 "ト (B<SO_RCVTIMEO>)  が設定されている場合と、 B<connect>(2), B<send>(2), "
8518 "B<sendto>(2), B<sendmsg>(2)  で送信タイムアウト (B<SO_SNDTIMEO>)  が設定され"
8519 "ている場合。"
8520
8521 #.  FIXME . What about sendmmsg()?
8522 #. type: Plain text
8523 #: build/C/man7/signal.7:767 build/C/man7/signal.7:842
8524 #, fuzzy
8525 #| msgid ""
8526 #| "Socket interfaces, when a timeout has been set on the socket using "
8527 #| "B<setsockopt>(2): B<accept>(2), B<recv>(2), B<recvfrom>(2), and "
8528 #| "B<recvmsg>(2), if a receive timeout (B<SO_RCVTIMEO>)  has been set; "
8529 #| "B<connect>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), if a send "
8530 #| "timeout (B<SO_SNDTIMEO>)  has been set."
8531 msgid ""
8532 "\"Output\" socket interfaces, when a timeout (B<SO_SNDTIMEO>)  has been set "
8533 "on the socket using B<setsockopt>(2): B<connect>(2), B<send>(2), "
8534 "B<sendto>(2), and B<sendmsg>(2)."
8535 msgstr ""
8536 "B<setsockopt>(2)  を使ってタイムアウトが設定されているソケットインターフェー"
8537 "ス: B<accept>(2), B<recv>(2), B<recvfrom>(2), B<recvmsg>(2)  で受信タイムアウ"
8538 "ト (B<SO_RCVTIMEO>)  が設定されている場合と、 B<connect>(2), B<send>(2), "
8539 "B<sendto>(2), B<sendmsg>(2)  で送信タイムアウト (B<SO_SNDTIMEO>)  が設定され"
8540 "ている場合。"
8541
8542 #. type: Plain text
8543 #: build/C/man7/signal.7:774
8544 msgid ""
8545 "Interfaces used to wait for signals: B<pause>(2), B<sigsuspend>(2), "
8546 "B<sigtimedwait>(2), and B<sigwaitinfo>(2)."
8547 msgstr ""
8548 "シグナル待ちに使われるインターフェイス: B<pause>(2), B<sigsuspend>(2), "
8549 "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8550
8551 #. type: Plain text
8552 #: build/C/man7/signal.7:783
8553 msgid ""
8554 "File descriptor multiplexing interfaces: B<epoll_wait>(2), "
8555 "B<epoll_pwait>(2), B<poll>(2), B<ppoll>(2), B<select>(2), and B<pselect>(2)."
8556 msgstr ""
8557 "ファイルディスクリプタ多重インターフェイス: B<epoll_wait>(2), "
8558 "B<epoll_pwait>(2), B<poll>(2), B<ppoll>(2), B<select>(2), B<pselect>(2)."
8559
8560 #.  On some other systems, SA_RESTART does restart these system calls
8561 #. type: Plain text
8562 #: build/C/man7/signal.7:791
8563 msgid ""
8564 "System V IPC interfaces: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), and "
8565 "B<semtimedop>(2)."
8566 msgstr ""
8567 "System V IPC インターフェイス: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), "
8568 "B<semtimedop>(2)."
8569
8570 #. type: Plain text
8571 #: build/C/man7/signal.7:797
8572 msgid ""
8573 "Sleep interfaces: B<clock_nanosleep>(2), B<nanosleep>(2), and B<usleep>(3)."
8574 msgstr ""
8575 "スリープ用のインターフェイス: B<clock_nanosleep>(2), B<nanosleep>(2), "
8576 "B<usleep>(3)."
8577
8578 #. type: Plain text
8579 #: build/C/man7/signal.7:799
8580 msgid "B<io_getevents>(2)."
8581 msgstr "B<io_getevents>(2)."
8582
8583 #. type: Plain text
8584 #: build/C/man7/signal.7:805
8585 msgid ""
8586 "The B<sleep>(3)  function is also never restarted if interrupted by a "
8587 "handler, but gives a success return: the number of seconds remaining to "
8588 "sleep."
8589 msgstr ""
8590 "B<sleep>(3)  関数も、ハンドラにより割り込まれた場合、決して再スタートされるこ"
8591 "とはない。 しかし、成功となり、残っている停止時間を返す。"
8592
8593 #. type: SS
8594 #: build/C/man7/signal.7:805
8595 #, no-wrap
8596 msgid "Interruption of system calls and library functions by stop signals"
8597 msgstr "一時停止シグナルによるシステムコールやライブラリ関数への割り込み"
8598
8599 #. type: Plain text
8600 #: build/C/man7/signal.7:814
8601 msgid ""
8602 "On Linux, even in the absence of signal handlers, certain blocking "
8603 "interfaces can fail with the error B<EINTR> after the process is stopped by "
8604 "one of the stop signals and then resumed via B<SIGCONT>.  This behavior is "
8605 "not sanctioned by POSIX.1, and doesn't occur on other systems."
8606 msgstr ""
8607 "Linux では、シグナルハンドラが設定されていない場合でも、 いくつかのブロッキン"
8608 "グ型のインターフェイスは、 プロセスが一時停止 (stop) シグナルの一つにより停止"
8609 "され、 B<SIGCONT> により再開された後に、エラー B<EINTR> で失敗する可能性があ"
8610 "る。 この挙動は POSIX.1 で認められておらず、他のシステムでは起こらない。"
8611
8612 #. type: Plain text
8613 #: build/C/man7/signal.7:816
8614 msgid "The Linux interfaces that display this behavior are:"
8615 msgstr "この挙動を示す Linux のインターフェイスは以下の通りである。"
8616
8617 #. type: Plain text
8618 #: build/C/man7/signal.7:845
8619 msgid "B<epoll_wait>(2), B<epoll_pwait>(2)."
8620 msgstr "B<epoll_wait>(2), B<epoll_pwait>(2)."
8621
8622 #. type: Plain text
8623 #: build/C/man7/signal.7:848
8624 msgid "B<semop>(2), B<semtimedop>(2)."
8625 msgstr "B<semop>(2), B<semtimedop>(2)."
8626
8627 #. type: Plain text
8628 #: build/C/man7/signal.7:851
8629 msgid "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8630 msgstr "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8631
8632 #.  commit 1ca39ab9d21ac93f94b9e3eb364ea9a5cf2aba06
8633 #. type: Plain text
8634 #: build/C/man7/signal.7:858
8635 msgid ""
8636 "Linux 3.7 and earlier: B<read>(2)  from an B<inotify>(7)  file descriptor."
8637 msgstr "Linux 3.7 以前: B<inotify>(7)  ファイルディスクリプタからの B<read>(2)."
8638
8639 #. type: Plain text
8640 #: build/C/man7/signal.7:864
8641 msgid ""
8642 "Linux 2.6.21 and earlier: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8643 "B<sem_wait>(3)."
8644 msgstr ""
8645 "Linux 2.6.21 以前: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8646 "B<sem_wait>(3)."
8647
8648 #. type: Plain text
8649 #: build/C/man7/signal.7:868
8650 msgid "Linux 2.6.8 and earlier: B<msgrcv>(2), B<msgsnd>(2)."
8651 msgstr "Linux 2.6.8 以前: B<msgrcv>(2), B<msgsnd>(2)."
8652
8653 #. type: Plain text
8654 #: build/C/man7/signal.7:871
8655 msgid "Linux 2.4 and earlier: B<nanosleep>(2)."
8656 msgstr "Linux 2.4 以前: B<nanosleep>(2)."
8657
8658 #.  It must be a *very* long time since this was true:
8659 #.  .SH BUGS
8660 #.  .B SIGIO
8661 #.  and
8662 #.  .B SIGLOST
8663 #.  have the same value.
8664 #.  The latter is commented out in the kernel source, but
8665 #.  the build process of some software still thinks that
8666 #.  signal 29 is
8667 #.  .BR SIGLOST .
8668 #. type: Plain text
8669 #: build/C/man7/signal.7:884
8670 msgid "POSIX.1, except as noted."
8671 msgstr "POSIX.1 (注記した内容以外)。"
8672
8673 #. type: Plain text
8674 #: build/C/man7/signal.7:919
8675 msgid ""
8676 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), "
8677 "B<restart_syscall>(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), "
8678 "B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), B<sigaltstack>(2), "
8679 "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
8680 "B<sigreturn>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), "
8681 "B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), "
8682 "B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), "
8683 "B<strsignal>(3), B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), "
8684 "B<sigevent>(7)"
8685 msgstr "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), B<restart_syscall>(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigreturn>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), B<strsignal>(3), B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), B<sigevent>(7)"
8686
8687 #. type: TH
8688 #: build/C/man2/signalfd.2:20
8689 #, no-wrap
8690 msgid "SIGNALFD"
8691 msgstr "SIGNALFD"
8692
8693 #. type: Plain text
8694 #: build/C/man2/signalfd.2:23
8695 msgid "signalfd - create a file descriptor for accepting signals"
8696 msgstr "signalfd - シグナル受け付け用のファイルディスクリプタを生成する"
8697
8698 #. type: Plain text
8699 #: build/C/man2/signalfd.2:25
8700 msgid "B<#include E<lt>sys/signalfd.hE<gt>>"
8701 msgstr "B<#include E<lt>sys/signalfd.hE<gt>>"
8702
8703 #. type: Plain text
8704 #: build/C/man2/signalfd.2:27
8705 msgid ""
8706 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8707 msgstr ""
8708 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8709
8710 #. type: Plain text
8711 #: build/C/man2/signalfd.2:38
8712 msgid ""
8713 "B<signalfd>()  creates a file descriptor that can be used to accept signals "
8714 "targeted at the caller.  This provides an alternative to the use of a signal "
8715 "handler or B<sigwaitinfo>(2), and has the advantage that the file descriptor "
8716 "may be monitored by B<select>(2), B<poll>(2), and B<epoll>(7)."
8717 msgstr ""
8718 "B<signalfd>()  は、呼び出し元宛てのシグナルを受け付けるために使用されるファイ"
8719 "ル ディスクリプタを生成する。 この方法はシグナルハンドラや "
8720 "B<sigwaitinfo>(2)  を用いる方法の代わりとなるものであり、このファイルディスク"
8721 "リプタを B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点があ"
8722 "る。"
8723
8724 #. type: Plain text
8725 #: build/C/man2/signalfd.2:58
8726 msgid ""
8727 "The I<mask> argument specifies the set of signals that the caller wishes to "
8728 "accept via the file descriptor.  This argument is a signal set whose "
8729 "contents can be initialized using the macros described in B<sigsetops>(3).  "
8730 "Normally, the set of signals to be received via the file descriptor should "
8731 "be blocked using B<sigprocmask>(2), to prevent the signals being handled "
8732 "according to their default dispositions.  It is not possible to receive "
8733 "B<SIGKILL> or B<SIGSTOP> signals via a signalfd file descriptor; these "
8734 "signals are silently ignored if specified in I<mask>."
8735 msgstr ""
8736 "I<mask> 引き数には、呼び出し元がこのファイルディスクリプタ経由で受け付けたい "
8737 "シグナル集合を指定する。この引き数で指定するシグナル集合の内容は、 "
8738 "B<sigsetops>(3)  で説明されているマクロを使って初期化することができる。 通"
8739 "常、ファイルディスクリプタ経由で受信するシグナル集合は、 そのシグナルがデフォ"
8740 "ルトの配送方法に基いて処理されるのを防ぐために、 B<sigprocmask>(2)  を使って"
8741 "ブロックしておくべきである。 シグナル B<SIGKILL> と B<SIGSTOP> を signalfd "
8742 "ファイルディスクリプタ経由で受信することはできない。 これらのシグナルが "
8743 "I<mask> で指定された場合には黙って無視される。"
8744
8745 #. type: Plain text
8746 #: build/C/man2/signalfd.2:72
8747 msgid ""
8748 "If the I<fd> argument is -1, then the call creates a new file descriptor and "
8749 "associates the signal set specified in I<mask> with that descriptor.  If "
8750 "I<fd> is not -1, then it must specify a valid existing signalfd file "
8751 "descriptor, and I<mask> is used to replace the signal set associated with "
8752 "that descriptor."
8753 msgstr ""
8754 "I<fd> 引き数が -1 の場合、 B<signalfd>()  は新しいファイルディスクリプタを生"
8755 "成し、 I<mask> で指定されたシグナル集合をそのファイルディスクリプタに関連付け"
8756 "る。 I<fd> 引き数が -1 以外の場合、 I<fd> には有効な既存の signalfd ファイル"
8757 "ディスクリプタを指定しなければならず、 そのディスクリプタに関連付けられている"
8758 "シグナル集合は I<mask> を使って置き換えられる。"
8759
8760 #. type: Plain text
8761 #: build/C/man2/signalfd.2:77
8762 msgid ""
8763 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
8764 "I<flags> to change the behavior of B<signalfd>():"
8765 msgstr ""
8766 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
8767 "ることで、 B<signalfd>()  の振舞いを変更することができる。"
8768
8769 #. type: TP
8770 #: build/C/man2/signalfd.2:77
8771 #, no-wrap
8772 msgid "B<SFD_NONBLOCK>"
8773 msgstr "B<SFD_NONBLOCK>"
8774
8775 #. type: TP
8776 #: build/C/man2/signalfd.2:85
8777 #, no-wrap
8778 msgid "B<SFD_CLOEXEC>"
8779 msgstr "B<SFD_CLOEXEC>"
8780
8781 #. type: Plain text
8782 #: build/C/man2/signalfd.2:102
8783 msgid ""
8784 "B<signalfd>()  returns a file descriptor that supports the following "
8785 "operations:"
8786 msgstr ""
8787 "B<signalfd>()  が返すファイルディスクリプタは以下の操作をサポートしている。"
8788
8789 #. type: Plain text
8790 #: build/C/man2/signalfd.2:121
8791 msgid ""
8792 "If one or more of the signals specified in I<mask> is pending for the "
8793 "process, then the buffer supplied to B<read>(2)  is used to return one or "
8794 "more I<signalfd_siginfo> structures (see below) that describe the signals.  "
8795 "The B<read>(2)  returns information for as many signals as are pending and "
8796 "will fit in the supplied buffer.  The buffer must be at least "
8797 "I<sizeof(struct signalfd_siginfo)> bytes.  The return value of the "
8798 "B<read>(2)  is the total number of bytes read."
8799 msgstr ""
8800 "I<mask> に指定されているシグナルのうち一つ以上がそのプロセスに対して 処理待"
8801 "ち (pending) であれば、それらのシグナルの情報が B<read>(2)  に渡されたバッ"
8802 "ファを使って、 I<signalfd_siginfo> 構造体に格納されて返される。 B<read>(2)  "
8803 "は、バッファに格納可能な範囲でできるだけ多くの処理待ちのシグナルに ついての情"
8804 "報を返す。 バッファは最低でも I<sizeof(struct signalfd_siginfo)> バイトの大き"
8805 "さがなければならない。 B<read>(2)  の返り値は読み出されたトータルのバイト数で"
8806 "ある。"
8807
8808 #. type: Plain text
8809 #: build/C/man2/signalfd.2:129
8810 msgid ""
8811 "As a consequence of the B<read>(2), the signals are consumed, so that they "
8812 "are no longer pending for the process (i.e., will not be caught by signal "
8813 "handlers, and cannot be accepted using B<sigwaitinfo>(2))."
8814 msgstr ""
8815 "B<read>(2)  が行われた結果、シグナルは消費され、 これらのシグナルはそのプロセ"
8816 "スに対しては処理待ちではなくなる (つまり、シグナルハンドラで捕捉されることも"
8817 "なく、 B<sigwaitinfo>(2)  を使って受け取ることもできなくなる)。"
8818
8819 #. type: Plain text
8820 #: build/C/man2/signalfd.2:140
8821 msgid ""
8822 "If none of the signals in I<mask> is pending for the process, then the "
8823 "B<read>(2)  either blocks until one of the signals in I<mask> is generated "
8824 "for the process, or fails with the error B<EAGAIN> if the file descriptor "
8825 "has been made nonblocking."
8826 msgstr ""
8827 "I<mask> に指定されているシグナルがそのプロセスに対して一つも処理待ちでなけれ"
8828 "ば、 B<read>(2)  は、 I<mask> で指定されたシグナルのうちいずれか一つがそのプ"
8829 "ロセスに対して発生するまで 停止 (block) する、もしくはファイルディスクリプタ"
8830 "が非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗する。"
8831
8832 #. type: Plain text
8833 #: build/C/man2/signalfd.2:153
8834 msgid ""
8835 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
8836 "B<poll>(2)  B<POLLIN> flag)  if one or more of the signals in I<mask> is "
8837 "pending for the process."
8838 msgstr ""
8839 "I<mask> に指定されたシグナルのうち一つ以上がそのプロセスに対して処理待ちであ"
8840 "れば、 ファイルディスクリプタは読み出し可能となる (B<select>(2)  の "
8841 "I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
8842
8843 #. type: Plain text
8844 #: build/C/man2/signalfd.2:160
8845 msgid ""
8846 "The signalfd file descriptor also supports the other file-descriptor "
8847 "multiplexing APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
8848 msgstr ""
8849 "signalfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
8850 "である B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
8851
8852 #. type: Plain text
8853 #: build/C/man2/signalfd.2:165
8854 msgid ""
8855 "When the file descriptor is no longer required it should be closed.  When "
8856 "all file descriptors associated with the same signalfd object have been "
8857 "closed, the resources for object are freed by the kernel."
8858 msgstr ""
8859 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
8860 "る。 同じ signalfd オブジェクトに関連付けられたファイルディスクリプタが全て "
8861 "クローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
8862
8863 #. type: SS
8864 #: build/C/man2/signalfd.2:165
8865 #, no-wrap
8866 msgid "The signalfd_siginfo structure"
8867 msgstr "signalfd_siginfo 構造体"
8868
8869 #. type: Plain text
8870 #: build/C/man2/signalfd.2:171
8871 msgid ""
8872 "The format of the I<signalfd_siginfo> structure(s) returned by B<read>(2)s "
8873 "from a signalfd file descriptor is as follows:"
8874 msgstr ""
8875 "signalfd ファイルディスクリプタからの B<read>(2)  で返される "
8876 "I<signalfd_siginfo> 構造体のフォーマットは以下の通りである。"
8877
8878 #.  ssi_trapno is unused on most arches
8879 #.  FIXME Since Linux 2.6.37 there is 'uint16_t ssi_addr_lsb'
8880 #.  in the signalfd_siginfo structure. This needs to be documented.
8881 #. type: Plain text
8882 #: build/C/man2/signalfd.2:198
8883 #, no-wrap
8884 msgid ""
8885 "struct signalfd_siginfo {\n"
8886 "    uint32_t ssi_signo;   /* Signal number */\n"
8887 "    int32_t  ssi_errno;   /* Error number (unused) */\n"
8888 "    int32_t  ssi_code;    /* Signal code */\n"
8889 "    uint32_t ssi_pid;     /* PID of sender */\n"
8890 "    uint32_t ssi_uid;     /* Real UID of sender */\n"
8891 "    int32_t  ssi_fd;      /* File descriptor (SIGIO) */\n"
8892 "    uint32_t ssi_tid;     /* Kernel timer ID (POSIX timers)\n"
8893 "    uint32_t ssi_band;    /* Band event (SIGIO) */\n"
8894 "    uint32_t ssi_overrun; /* POSIX timer overrun count */\n"
8895 "    uint32_t ssi_trapno;  /* Trap number that caused signal */\n"
8896 "    int32_t  ssi_status;  /* Exit status or signal (SIGCHLD) */\n"
8897 "    int32_t  ssi_int;     /* Integer sent by sigqueue(3) */\n"
8898 "    uint64_t ssi_ptr;     /* Pointer sent by sigqueue(3) */\n"
8899 "    uint64_t ssi_utime;   /* User CPU time consumed (SIGCHLD) */\n"
8900 "    uint64_t ssi_stime;   /* System CPU time consumed (SIGCHLD) */\n"
8901 "    uint64_t ssi_addr;    /* Address that generated signal\n"
8902 "                             (for hardware-generated signals) */\n"
8903 "    uint8_t  pad[I<X>];      /* Pad size to 128 bytes (allow for\n"
8904 "                              additional fields in the future) */\n"
8905 "};\n"
8906 msgstr ""
8907 "struct signalfd_siginfo {\n"
8908 "struct signalfd_siginfo {\n"
8909 "    uint32_t ssi_signo;   /* シグナル番号 */\n"
8910 "    int32_t  ssi_errno;   /* エラー番号 (未使用) */\n"
8911 "    int32_t  ssi_code;    /* シグナルコード */\n"
8912 "    uint32_t ssi_pid;     /* 送信元の PID */\n"
8913 "    uint32_t ssi_uid;     /* 送信元の実 UID */\n"
8914 "    int32_t  ssi_fd;      /* ファイルディスクリプタ (SIGIO) */\n"
8915 "    uint32_t ssi_tid;     /* カーネルタイマ ID (POSIX タイマ)\n"
8916 "    uint32_t ssi_band;    /* Band イベント (SIGIO) */\n"
8917 "    uint32_t ssi_overrun; /* POSIX タイマのオーバーラン回数 */\n"
8918 "    uint32_t ssi_trapno;  /* シグナルの原因となったトラップ番号 */\n"
8919 "    int32_t  ssi_status;  /* 終了ステータスかシグナル (SIGCHLD) */\n"
8920 "    int32_t  ssi_int;     /* sigqueue(3) から送られた整数 */\n"
8921 "    uint64_t ssi_ptr;     /* sigqueue(3) から送られたポインタ */\n"
8922 "    uint64_t ssi_utime;   /* 消費したユーザ CPU 時間 (SIGCHLD) */\n"
8923 "    uint64_t ssi_stime;   /* 消費したシステム CPU 時間 (SIGCHLD) */\n"
8924 "    uint64_t ssi_addr;    /* シグナルを生成したアドレス\n"
8925 "                             (ハードウェアが生成したシグナルの場合) */\n"
8926 "    uint8_t  pad[I<X>];      /* pad の大きさは 128 バイト\n"
8927 "                             (将来のフィールド追加用の場所の確保) */\n"
8928 "};\n"
8929
8930 #. type: Plain text
8931 #: build/C/man2/signalfd.2:221
8932 msgid ""
8933 "Each of the fields in this structure is analogous to the similarly named "
8934 "field in the I<siginfo_t> structure.  The I<siginfo_t> structure is "
8935 "described in B<sigaction>(2).  Not all fields in the returned "
8936 "I<signalfd_siginfo> structure will be valid for a specific signal; the set "
8937 "of valid fields can be determined from the value returned in the I<ssi_code> "
8938 "field.  This field is the analog of the I<siginfo_t> I<si_code> field; see "
8939 "B<sigaction>(2)  for details."
8940 msgstr ""
8941 "I<signalfd_siginfo> 構造体の各フィールドは、 I<siginfo_t> 構造体の同じような"
8942 "名前のフィールドと同様である。 I<siginfo_t> 構造体については "
8943 "B<sigaction>(2)  に説明がある。 返された I<signalfd_siginfo> 構造体の全ての"
8944 "フィールドがあるシグナルに対して有効なわけではない。 どのフィールドが有効か"
8945 "は、 I<ssi_code> フィールドで返される値から判定することができる。 このフィー"
8946 "ルドは I<siginfo_t> の I<si_code> フィールドと同様である。詳細は "
8947 "B<sigaction>(2)  を参照。"
8948
8949 #. type: SS
8950 #: build/C/man2/signalfd.2:221 build/C/man2/timerfd_create.2:276
8951 #, no-wrap
8952 msgid "fork(2) semantics"
8953 msgstr "fork(2) での扱い"
8954
8955 #. type: Plain text
8956 #: build/C/man2/signalfd.2:229
8957 msgid ""
8958 "After a B<fork>(2), the child inherits a copy of the signalfd file "
8959 "descriptor.  A B<read>(2)  from the file descriptor in the child will return "
8960 "information about signals queued to the child."
8961 msgstr ""
8962 "B<fork>(2)  が行われると、子プロセスは signalfd ファイルディスクリプタのコ"
8963 "ピーを 継承する。 子プロセスでこのファイルディスクリプタから B<read>(2)  を行"
8964 "うと、子プロセスに対するキューに入っているシグナルに関する 情報が返される。"
8965
8966 #. type: SS
8967 #: build/C/man2/signalfd.2:229 build/C/man2/timerfd_create.2:288
8968 #, no-wrap
8969 msgid "execve(2) semantics"
8970 msgstr "execve(2) での扱い"
8971
8972 #. type: Plain text
8973 #: build/C/man2/signalfd.2:241
8974 msgid ""
8975 "Just like any other file descriptor, a signalfd file descriptor remains open "
8976 "across an B<execve>(2), unless it has been marked for close-on-exec (see "
8977 "B<fcntl>(2)).  Any signals that were available for reading before the "
8978 "B<execve>(2)  remain available to the newly loaded program.  (This is "
8979 "analogous to traditional signal semantics, where a blocked signal that is "
8980 "pending remains pending across an B<execve>(2).)"
8981 msgstr ""
8982 "他のファイルディスクリプタと全く同様に、 signalfd ファイルディスクリプタも "
8983 "B<execve>(2)  の前後でオープンされたままとなる。但し、そのファイルディスクリ"
8984 "プタに close-on-exec のマーク (B<fcntl>(2)  参照) が付いている場合はクローズ"
8985 "される。 B<execve>(2)  の前に読み出し可能となっていた全てのシグナルは新しく起"
8986 "動されたプログラム でも引き続き読み出し可能である (これは伝統的なシグナルの扱"
8987 "いと同じであり、 処理待ちのブロックされたシグナルは B<execve>(2)  の前後で処"
8988 "理待ちのままとなる)。"
8989
8990 #. type: SS
8991 #: build/C/man2/signalfd.2:241
8992 #, no-wrap
8993 msgid "Thread semantics"
8994 msgstr "スレッドでの扱い"
8995
8996 #. type: Plain text
8997 #: build/C/man2/signalfd.2:251
8998 msgid ""
8999 "The semantics of signalfd file descriptors in a multithreaded program mirror "
9000 "the standard semantics for signals.  In other words, when a thread reads "
9001 "from a signalfd file descriptor, it will read the signals that are directed "
9002 "to the thread itself and the signals that are directed to the process (i.e., "
9003 "the entire thread group).  (A thread will not be able to read signals that "
9004 "are directed to other threads in the process.)"
9005 msgstr ""
9006 "マルチスレッドプログラムにおける signalfd ファイルディスクリプタの扱いは シグ"
9007 "ナルの標準的な扱いと全く同じである。 言い換えると、あるスレッドが signalfd "
9008 "ファイルディスクリプタから 読み出しを行うと、そのスレッド自身宛てのシグナルと"
9009 "プロセス (すなわち スレッドグループ全体) 宛てのシグナルが読み出される。 (ス"
9010 "レッドは同じプロセスの他のスレッド宛てのシグナルを読み出すことはできない。)"
9011
9012 #. type: Plain text
9013 #: build/C/man2/signalfd.2:265
9014 msgid ""
9015 "On success, B<signalfd>()  returns a signalfd file descriptor; this is "
9016 "either a new file descriptor (if I<fd> was -1), or I<fd> if I<fd> was a "
9017 "valid signalfd file descriptor.  On error, -1 is returned and I<errno> is "
9018 "set to indicate the error."
9019 msgstr ""
9020 "成功すると、 B<signalfd>()  は signalfd ファイルディスクリプタを返す。 返され"
9021 "るファイルディスクリプタは、 I<fd> が -1 の場合は新規のファイルディスクリプタ"
9022 "であり、 I<fd> が有効な signalfd ファイルディスクリプタだった場合は I<fd> 自"
9023 "身である。 エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
9024
9025 #. type: Plain text
9026 #: build/C/man2/signalfd.2:271
9027 msgid "The I<fd> file descriptor is not a valid file descriptor."
9028 msgstr "ファイルディスクリプタ I<fd> が有効なファイルディスクリプタでない。"
9029
9030 #.  or, the
9031 #.  .I sizemask
9032 #.  argument is not equal to
9033 #.  .IR sizeof(sigset_t) ;
9034 #. type: Plain text
9035 #: build/C/man2/signalfd.2:279
9036 msgid "I<fd> is not a valid signalfd file descriptor."
9037 msgstr "I<fd> が有効な signalfd ファイルディスクリプタではない。"
9038
9039 #. type: Plain text
9040 #: build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:327
9041 msgid ""
9042 "I<flags> is invalid; or, in Linux 2.6.26 or earlier, I<flags> is nonzero."
9043 msgstr ""
9044 "I<flags> が無効である。もしくは、Linux 2.6.26 以前の場合には I<flags> が 0 以"
9045 "外である。"
9046
9047 #. type: Plain text
9048 #: build/C/man2/signalfd.2:289 build/C/man2/timerfd_create.2:330
9049 msgid "The per-process limit of open file descriptors has been reached."
9050 msgstr ""
9051 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
9052
9053 #. type: Plain text
9054 #: build/C/man2/signalfd.2:299
9055 msgid "There was insufficient memory to create a new signalfd file descriptor."
9056 msgstr ""
9057 "新しい signalfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
9058
9059 #.  signalfd() is in glibc 2.7, but reportedly does not build
9060 #. type: Plain text
9061 #: build/C/man2/signalfd.2:307
9062 msgid ""
9063 "B<signalfd>()  is available on Linux since kernel 2.6.22.  Working support "
9064 "is provided in glibc since version 2.8.  The B<signalfd4>()  system call "
9065 "(see NOTES) is available on Linux since kernel 2.6.27."
9066 msgstr ""
9067 "B<signalfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
9068 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<signalfd4>()  "
9069 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
9070 "る。"
9071
9072 #. type: Plain text
9073 #: build/C/man2/signalfd.2:312
9074 msgid "B<signalfd>()  and B<signalfd4>()  are Linux-specific."
9075 msgstr "B<signalfd>()  と B<signalfd4>()  は Linux 固有である。"
9076
9077 #. type: Plain text
9078 #: build/C/man2/signalfd.2:326
9079 msgid ""
9080 "A process can create multiple signalfd file descriptors.  This makes it "
9081 "possible to accept different signals on different file descriptors.  (This "
9082 "may be useful if monitoring the file descriptors using B<select>(2), "
9083 "B<poll>(2), or B<epoll>(7): the arrival of different signals will make "
9084 "different descriptors ready.)  If a signal appears in the I<mask> of more "
9085 "than one of the file descriptors, then occurrences of that signal can be "
9086 "read (once) from any one of the descriptors."
9087 msgstr ""
9088 "一つのプロセスは複数の signalfd ファイルディスクリプタを生成することができ"
9089 "る。 これにより、異なるファイルディスクリプタで異なるシグナルを受け取ること"
9090 "が できる (この機能は B<select>(2), B<poll>(2), B<epoll>(7)  を使ってファイル"
9091 "ディスクリプタを監視する場合に有用かもしれない。 異なるシグナルが到着すると、"
9092 "異なるファイルディスクリプタが利用可能に なるからだ)。 一つのシグナルが二つ以"
9093 "上のファイルディスクリプタの I<mask> に含まれている場合、そのシグナルの発生は"
9094 "そのシグナルを I<mask> に含むファイルディスクリプタのうちいずれか一つから読み"
9095 "出すことができる。"
9096
9097 #. type: Plain text
9098 #: build/C/man2/signalfd.2:336
9099 msgid ""
9100 "The underlying Linux system call requires an additional argument, I<size_t "
9101 "sizemask>, which specifies the size of the I<mask> argument.  The glibc "
9102 "B<signalfd>()  wrapper function does not include this argument, since it "
9103 "provides the required value for the underlying system call."
9104 msgstr ""
9105 "実際の Linux のシステムコールでは I<size_t sizemask> という引き数が追加で必要"
9106 "である。この引き数で I<mask> のサイズを指定する。 glibc の B<signalfd>()  "
9107 "ラッパー関数にはこの引き数は含まれず、 ラッパー関数が必要な値を計算して内部で"
9108 "呼び出すシステムコールに提供する。"
9109
9110 #. type: Plain text
9111 #: build/C/man2/signalfd.2:352
9112 msgid ""
9113 "There are two underlying Linux system calls: B<signalfd>()  and the more "
9114 "recent B<signalfd4>().  The former system call does not implement a I<flags> "
9115 "argument.  The latter system call implements the I<flags> values described "
9116 "above.  Starting with glibc 2.9, the B<signalfd>()  wrapper function will "
9117 "use B<signalfd4>()  where it is available."
9118 msgstr ""
9119 "下層にある Linux システムコールは二種類あり、 B<signalfd>()  と、もっと新し"
9120 "い B<signalfd4>()  である。 B<signalfd>()  は I<flags> 引き数を実装していな"
9121 "い。 B<signalfd4>()  では上記の値の I<flags> が実装されている。 glibc 2.9 以"
9122 "降では、 B<signalfd>()  のラッパー関数は、 B<signalfd4>()  が利用可能であれ"
9123 "ば、これを使用する。"
9124
9125 #.  The fix also was put into 2.6.24.5
9126 #. type: Plain text
9127 #: build/C/man2/signalfd.2:360
9128 msgid ""
9129 "In kernels before 2.6.25, the I<ssi_ptr> and I<ssi_int> fields are not "
9130 "filled in with the data accompanying a signal sent by B<sigqueue>(3)."
9131 msgstr ""
9132 "カーネル 2.6.25 より前では、 B<sigqueue>(3)  により送信されたシグナルと一緒に"
9133 "渡されるデータでは、フィールド I<ssi_ptr> と I<ssi_int> は設定されない。"
9134
9135 #. type: Plain text
9136 #: build/C/man2/signalfd.2:370
9137 msgid ""
9138 "The program below accepts the signals B<SIGINT> and B<SIGQUIT> via a "
9139 "signalfd file descriptor.  The program terminates after accepting a "
9140 "B<SIGQUIT> signal.  The following shell session demonstrates the use of the "
9141 "program:"
9142 msgstr ""
9143 "下記のプログラムは、シグナル B<SIGINT> と B<SIGQUIT> を signalfd ファイルディ"
9144 "スクリプタ経由で受信する。 シグナル B<SIGQUIT> 受信後にプログラムは終了す"
9145 "る。 以下に示すシェルセッションにこのプログラムの使い方を示す。"
9146
9147 #. type: Plain text
9148 #: build/C/man2/signalfd.2:381
9149 #, no-wrap
9150 msgid ""
9151 "$B< ./signalfd_demo>\n"
9152 "B<^C>                   # Control-C generates SIGINT\n"
9153 "Got SIGINT\n"
9154 "B<^C>\n"
9155 "Got SIGINT\n"
9156 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
9157 "Got SIGQUIT\n"
9158 "$\n"
9159 msgstr ""
9160 "$B< ./signalfd_demo>\n"
9161 "B<^C>                   # Control-C generates SIGINT\n"
9162 "Got SIGINT\n"
9163 "B<^C>\n"
9164 "Got SIGINT\n"
9165 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
9166 "Got SIGQUIT\n"
9167 "$\n"
9168
9169 #. type: Plain text
9170 #: build/C/man2/signalfd.2:391
9171 #, no-wrap
9172 msgid ""
9173 "#include E<lt>sys/signalfd.hE<gt>\n"
9174 "#include E<lt>signal.hE<gt>\n"
9175 "#include E<lt>unistd.hE<gt>\n"
9176 "#include E<lt>stdlib.hE<gt>\n"
9177 "#include E<lt>stdio.hE<gt>\n"
9178 msgstr ""
9179 "#include E<lt>sys/signalfd.hE<gt>\n"
9180 "#include E<lt>signal.hE<gt>\n"
9181 "#include E<lt>unistd.hE<gt>\n"
9182 "#include E<lt>stdlib.hE<gt>\n"
9183 "#include E<lt>stdio.hE<gt>\n"
9184
9185 #. type: Plain text
9186 #: build/C/man2/signalfd.2:402
9187 #, no-wrap
9188 msgid ""
9189 "int\n"
9190 "main(int argc, char *argv[])\n"
9191 "{\n"
9192 "    sigset_t mask;\n"
9193 "    int sfd;\n"
9194 "    struct signalfd_siginfo fdsi;\n"
9195 "    ssize_t s;\n"
9196 msgstr ""
9197 "int\n"
9198 "main(int argc, char *argv[])\n"
9199 "{\n"
9200 "    sigset_t mask;\n"
9201 "    int sfd;\n"
9202 "    struct signalfd_siginfo fdsi;\n"
9203 "    ssize_t s;\n"
9204
9205 #. type: Plain text
9206 #: build/C/man2/signalfd.2:406
9207 #, no-wrap
9208 msgid ""
9209 "    sigemptyset(&mask);\n"
9210 "    sigaddset(&mask, SIGINT);\n"
9211 "    sigaddset(&mask, SIGQUIT);\n"
9212 msgstr ""
9213 "    sigemptyset(&mask);\n"
9214 "    sigaddset(&mask, SIGINT);\n"
9215 "    sigaddset(&mask, SIGQUIT);\n"
9216
9217 #. type: Plain text
9218 #: build/C/man2/signalfd.2:409
9219 #, no-wrap
9220 msgid ""
9221 "    /* Block signals so that they aren\\(aqt handled\n"
9222 "       according to their default dispositions */\n"
9223 msgstr ""
9224 "    /* Block signals so that they aren\\(aqt handled\n"
9225 "       according to their default dispositions */\n"
9226
9227 #. type: Plain text
9228 #: build/C/man2/signalfd.2:412
9229 #, no-wrap
9230 msgid ""
9231 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
9232 "        handle_error(\"sigprocmask\");\n"
9233 msgstr ""
9234 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
9235 "        handle_error(\"sigprocmask\");\n"
9236
9237 #. type: Plain text
9238 #: build/C/man2/signalfd.2:416
9239 #, no-wrap
9240 msgid ""
9241 "    sfd = signalfd(-1, &mask, 0);\n"
9242 "    if (sfd == -1)\n"
9243 "        handle_error(\"signalfd\");\n"
9244 msgstr ""
9245 "    sfd = signalfd(-1, &mask, 0);\n"
9246 "    if (sfd == -1)\n"
9247 "        handle_error(\"signalfd\");\n"
9248
9249 #. type: Plain text
9250 #: build/C/man2/signalfd.2:421
9251 #, no-wrap
9252 msgid ""
9253 "    for (;;) {\n"
9254 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
9255 "        if (s != sizeof(struct signalfd_siginfo))\n"
9256 "            handle_error(\"read\");\n"
9257 msgstr ""
9258 "    for (;;) {\n"
9259 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
9260 "        if (s != sizeof(struct signalfd_siginfo))\n"
9261 "            handle_error(\"read\");\n"
9262
9263 #. type: Plain text
9264 #: build/C/man2/signalfd.2:432
9265 #, no-wrap
9266 msgid ""
9267 "        if (fdsi.ssi_signo == SIGINT) {\n"
9268 "            printf(\"Got SIGINT\\en\");\n"
9269 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
9270 "            printf(\"Got SIGQUIT\\en\");\n"
9271 "            exit(EXIT_SUCCESS);\n"
9272 "        } else {\n"
9273 "            printf(\"Read unexpected signal\\en\");\n"
9274 "        }\n"
9275 "    }\n"
9276 "}\n"
9277 msgstr ""
9278 "        if (fdsi.ssi_signo == SIGINT) {\n"
9279 "            printf(\"Got SIGINT\\en\");\n"
9280 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
9281 "            printf(\"Got SIGQUIT\\en\");\n"
9282 "            exit(EXIT_SUCCESS);\n"
9283 "        } else {\n"
9284 "            printf(\"Read unexpected signal\\en\");\n"
9285 "        }\n"
9286 "    }\n"
9287 "}\n"
9288
9289 #. type: Plain text
9290 #: build/C/man2/signalfd.2:446
9291 msgid ""
9292 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
9293 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
9294 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
9295 msgstr ""
9296 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
9297 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
9298 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
9299
9300 #. type: TH
9301 #: build/C/man3/sigpause.3:25
9302 #, no-wrap
9303 msgid "SIGPAUSE"
9304 msgstr "SIGPAUSE"
9305
9306 #. type: Plain text
9307 #: build/C/man3/sigpause.3:28
9308 msgid "sigpause - atomically release blocked signals and wait for interrupt"
9309 msgstr "sigpause - ブロックされたシグナルをアトミックに解放して割り込みを待つ"
9310
9311 #. type: Plain text
9312 #: build/C/man3/sigpause.3:33
9313 #, no-wrap
9314 msgid "B<int sigpause(int >I<sigmask>B<);  /* BSD (but see NOTES) */>\n"
9315 msgstr "B<int sigpause(int >I<sigmask>B<);  /* BSD (ただし「備考」を参照) */>\n"
9316
9317 #. type: Plain text
9318 #: build/C/man3/sigpause.3:35
9319 #, no-wrap
9320 msgid "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
9321 msgstr "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
9322
9323 #. type: Plain text
9324 #: build/C/man3/sigpause.3:41
9325 msgid "Don't use this function.  Use B<sigsuspend>(2)  instead."
9326 msgstr "この関数を使わないこと。 代わりに B<sigsuspend>(2)  を使うこと。"
9327
9328 #. type: Plain text
9329 #: build/C/man3/sigpause.3:48
9330 msgid ""
9331 "The function B<sigpause>()  is designed to wait for some signal.  It changes "
9332 "the process's signal mask (set of blocked signals), and then waits for a "
9333 "signal to arrive.  Upon arrival of a signal, the original signal mask is "
9334 "restored."
9335 msgstr ""
9336 "関数 B<sigpause>()  はシグナルを待つように設計されている。 この関数はプロセス"
9337 "のシグナルマスク (ブロックされたシグナルのセット) を変更し、 シグナルが到着す"
9338 "るのを待つ。 シグナルが到着すると、シグナルマスクは元に戻される。"
9339
9340 #. type: Plain text
9341 #: build/C/man3/sigpause.3:56
9342 msgid ""
9343 "If B<sigpause>()  returns, it was interrupted by a signal and the return "
9344 "value is -1 with I<errno> set to B<EINTR>."
9345 msgstr ""
9346 "B<sigpause>()  が返った場合、この関数はシグナルによって割り込まれている。 返"
9347 "り値は -1 で、 I<errno> は B<EINTR> に設定される。"
9348
9349 #. type: Plain text
9350 #: build/C/man3/sigpause.3:61
9351 msgid "The B<sigpause>()  function is thread-safe."
9352 msgstr "B<sigpause>() 関数はスレッドセーフである。"
9353
9354 #. type: Plain text
9355 #: build/C/man3/sigpause.3:65
9356 msgid "The System V version of B<sigpause>()  is standardized in POSIX.1-2001."
9357 msgstr "System V 版の B<sigpause>()  は POSIX.1-2001 で標準化されている。"
9358
9359 #.  __xpg_sigpause: UNIX 95, spec 1170, SVID, SVr4, XPG
9360 #. type: Plain text
9361 #: build/C/man3/sigpause.3:82
9362 msgid ""
9363 "The classical BSD version of this function appeared in 4.2BSD.  It sets the "
9364 "process's signal mask to I<sigmask>.  UNIX 95 standardized the incompatible "
9365 "System V version of this function, which removes only the specified signal "
9366 "I<sig> from the process's signal mask.  The unfortunate situation with two "
9367 "incompatible functions with the same name was solved by the B<\\"
9368 "%sigsuspend>(2)  function, that takes a I<sigset_t\\ *> argument (instead of "
9369 "an I<int>)."
9370 msgstr ""
9371 "この関数の古典的な BSD 版は 4.2BSD で登場した。 この関数はプロセスのシグナル"
9372 "マスクを I<sigmask> に設定する。 UNIX 95 では BSD 版と互換性のない System V "
9373 "版のこの関数が標準化された。 UNIX 95 版は、指定されたシグナル I<sig> をプロセ"
9374 "スのシグナルマスクから削除するだけである。 同じ名前で互換性のない 2 つの関数"
9375 "があるという不幸な事態は、 B<\\%sigsuspend>(2)  関数によって解消された。 この"
9376 "関数は (I<int> の代わりに)  B<sigset_t\\ *> 引き数をとる。"
9377
9378 #. type: Plain text
9379 #: build/C/man3/sigpause.3:85
9380 msgid ""
9381 "On Linux, this routine is a system call only on the Sparc (sparc64)  "
9382 "architecture."
9383 msgstr ""
9384 "Linux では、このルーチンは Sparc (sparc64) アーキテクチャでのみ システムコー"
9385 "ルとなっている。"
9386
9387 #.  Libc4 and libc5 know only about the BSD version.
9388 #.  For the BSD version, one usually uses a zero
9389 #.  .I sigmask
9390 #.  to indicate that no signals are to be blocked.
9391 #. type: Plain text
9392 #: build/C/man3/sigpause.3:111
9393 msgid ""
9394 "Glibc uses the BSD version if the B<_BSD_SOURCE> feature test macro is "
9395 "defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
9396 "B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined.  Otherwise, the System V "
9397 "version is used (and B<_XOPEN_SOURCE> must be defined to obtain the "
9398 "declaration).  Since glibc 2.19, only the System V version is exposed by "
9399 "I<E<lt>signal.hE<gt>>; applications that formerly used the BSD "
9400 "B<sigpause>()  should be amended to use B<sigsuspend>(2)."
9401 msgstr ""
9402 "機能検査マクロ B<_BSD_SOURCE> が定義され、 B<_POSIX_SOURCE>, "
9403 "B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, B<_GNU_SOURCE>, B<_SVID_SOURCE> のいず"
9404 "れも定義されていない場合、 glibc は BSD 版を使う。 それ以外の場合には、"
9405 "System V 版を使用する (宣言を得るためには B<_XOPEN_SOURCE> が定義されていなけ"
9406 "ればならない)。 glibc 2.19 以降では、 I<E<lt>signal.hE<gt>> では System V 版"
9407 "だけが公開される。 BSD 版の B<sigpause>() を使用していたアプリケーションは "
9408 "B<sigsuspend>(2) を使用するように修正すべきである。"
9409
9410 #. type: Plain text
9411 #: build/C/man3/sigpause.3:119
9412 msgid ""
9413 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
9414 "B<sigblock>(3), B<sigvec>(3), B<feature_test_macros>(7)"
9415 msgstr ""
9416 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
9417 "B<sigblock>(3), B<sigvec>(3), B<feature_test_macros>(7)"
9418
9419 #. type: TH
9420 #: build/C/man2/sigpending.2:29
9421 #, no-wrap
9422 msgid "SIGPENDING"
9423 msgstr "SIGPENDING"
9424
9425 #. type: TH
9426 #: build/C/man2/sigpending.2:29
9427 #, no-wrap
9428 msgid "2013-12-11"
9429 msgstr "2013-12-11"
9430
9431 #. type: Plain text
9432 #: build/C/man2/sigpending.2:32
9433 msgid "sigpending - examine pending signals"
9434 msgstr "sigpending - 処理待ちのシグナルの検査"
9435
9436 #. type: Plain text
9437 #: build/C/man2/sigpending.2:36
9438 msgid "B<int sigpending(sigset_t *>I<set>B<);>"
9439 msgstr "B<int sigpending(sigset_t *>I<set>B<);>"
9440
9441 #. type: Plain text
9442 #: build/C/man2/sigpending.2:45
9443 msgid ""
9444 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9445 "_POSIX_SOURCE"
9446 msgstr ""
9447 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9448 "_POSIX_SOURCE"
9449
9450 #. type: Plain text
9451 #: build/C/man2/sigpending.2:53
9452 msgid ""
9453 "B<sigpending>()  returns the set of signals that are pending for delivery to "
9454 "the calling thread (i.e., the signals which have been raised while "
9455 "blocked).  The mask of pending signals is returned in I<set>."
9456 msgstr ""
9457 "B<sigpending>()  は、呼び出し元のスレッドへの配送を待っている (pending) シグ"
9458 "ナル集合 (すなわち、禁止中に発生したシグナル) を返す。 処理待ちのシグナルのマ"
9459 "スクが I<set> に格納される。"
9460
9461 #. type: Plain text
9462 #: build/C/man2/sigpending.2:59
9463 msgid ""
9464 "B<sigpending>()  returns 0 on success and -1 on error.  In the event of an "
9465 "error, I<errno> is set to indicate the cause."
9466 msgstr ""
9467 "B<sigpending>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、I<errno> "
9468 "にエラーの原因を示す値を設定する。"
9469
9470 #. type: Plain text
9471 #: build/C/man2/sigpending.2:64
9472 msgid ""
9473 "I<set> points to memory which is not a valid part of the process address "
9474 "space."
9475 msgstr ""
9476 "I<set> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
9477
9478 #. type: Plain text
9479 #: build/C/man2/sigpending.2:74
9480 msgid ""
9481 "If a signal is both blocked and has a disposition of \"ignored\", it is "
9482 "I<not> added to the mask of pending signals when generated."
9483 msgstr ""
9484 "シグナルが禁止 (ブロック) されており、かつ配送方法が \"ignored\" (無視) に"
9485 "なっている場合、そのシグナルが発生した場合に処理待ちシグナルのマスクにそのシ"
9486 "グナルは追加I<されない>。"
9487
9488 #. type: Plain text
9489 #: build/C/man2/sigpending.2:79
9490 msgid ""
9491 "The set of signals that is pending for a thread is the union of the set of "
9492 "signals that is pending for that thread and the set of signals that is "
9493 "pending for the process as a whole; see B<signal>(7)."
9494 msgstr ""
9495 "あるスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体への処理待ち"
9496 "のシグナル集合と、プロセス全体への処理待ちの シグナル集合をあわせたものであ"
9497 "る。 B<signal>(7)  参照。"
9498
9499 #. type: Plain text
9500 #: build/C/man2/sigpending.2:91
9501 msgid ""
9502 "In versions of glibc up to and including 2.2.1, there is a bug in the "
9503 "wrapper function for B<sigpending>()  which means that information about "
9504 "pending real-time signals is not correctly returned."
9505 msgstr ""
9506 "バージョン 2.2.1 以前の glibc では、 B<sigpending>()  のラッパー関数に、処理"
9507 "待ちのリアルタイムシグナルに関する情報が 正しく返されないというバグがある。"
9508
9509 #. type: Plain text
9510 #: build/C/man2/sigpending.2:99
9511 msgid ""
9512 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9513 "B<sigsuspend>(2), B<sigsetops>(3), B<signal>(7)"
9514 msgstr ""
9515 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9516 "B<sigsuspend>(2), B<sigsetops>(3), B<signal>(7)"
9517
9518 #. type: TH
9519 #: build/C/man2/sigprocmask.2:29
9520 #, no-wrap
9521 msgid "SIGPROCMASK"
9522 msgstr "SIGPROCMASK"
9523
9524 #. type: TH
9525 #: build/C/man2/sigprocmask.2:29 build/C/man2/sigsuspend.2:29
9526 #, no-wrap
9527 msgid "2013-04-19"
9528 msgstr "2013-04-19"
9529
9530 #. type: Plain text
9531 #: build/C/man2/sigprocmask.2:32
9532 msgid "sigprocmask - examine and change blocked signals"
9533 msgstr "sigprocmask - 禁止するシグナルの確認と変更"
9534
9535 #. type: Plain text
9536 #: build/C/man2/sigprocmask.2:37
9537 msgid ""
9538 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9539 "*>I<oldset>B<);>"
9540 msgstr ""
9541 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9542 "*>I<oldset>B<);>"
9543
9544 #. type: Plain text
9545 #: build/C/man2/sigprocmask.2:46
9546 msgid ""
9547 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9548 "_POSIX_SOURCE"
9549 msgstr ""
9550 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9551 "_POSIX_SOURCE"
9552
9553 #. type: Plain text
9554 #: build/C/man2/sigprocmask.2:55
9555 msgid ""
9556 "B<sigprocmask>()  is used to fetch and/or change the signal mask of the "
9557 "calling thread.  The signal mask is the set of signals whose delivery is "
9558 "currently blocked for the caller (see also B<signal>(7)  for more details)."
9559 msgstr ""
9560 "B<sigprocmask>()  を使うと、呼び出したスレッドのシグナルマスクの取得/変更がで"
9561 "きる。 シグナルマスクは、呼び出し元に対して現在配送が禁止されているシグナル"
9562 "の 集合のことである (詳細については B<signal>(7)  も参照のこと)。"
9563
9564 #. type: Plain text
9565 #: build/C/man2/sigprocmask.2:59
9566 msgid ""
9567 "The behavior of the call is dependent on the value of I<how>, as follows."
9568 msgstr "このコールの動作は I<how> の値によって決まる:"
9569
9570 #. type: TP
9571 #: build/C/man2/sigprocmask.2:59
9572 #, no-wrap
9573 msgid "B<SIG_BLOCK>"
9574 msgstr "B<SIG_BLOCK>"
9575
9576 #. type: Plain text
9577 #: build/C/man2/sigprocmask.2:64
9578 msgid ""
9579 "The set of blocked signals is the union of the current set and the I<set> "
9580 "argument."
9581 msgstr ""
9582 "禁止されたシグナルの集合は現在の値と I<set> 引き数を結合したものとなる。"
9583
9584 #. type: TP
9585 #: build/C/man2/sigprocmask.2:64
9586 #, no-wrap
9587 msgid "B<SIG_UNBLOCK>"
9588 msgstr "B<SIG_UNBLOCK>"
9589
9590 #. type: Plain text
9591 #: build/C/man2/sigprocmask.2:70
9592 msgid ""
9593 "The signals in I<set> are removed from the current set of blocked signals.  "
9594 "It is permissible to attempt to unblock a signal which is not blocked."
9595 msgstr ""
9596 "現在禁止されているシグナルの集合から I<set> にあるシグナルを取り除く。禁止さ"
9597 "れていないシグナルを取り除こうと することも認められている。"
9598
9599 #. type: TP
9600 #: build/C/man2/sigprocmask.2:70
9601 #, no-wrap
9602 msgid "B<SIG_SETMASK>"
9603 msgstr "B<SIG_SETMASK>"
9604
9605 #. type: Plain text
9606 #: build/C/man2/sigprocmask.2:74
9607 msgid "The set of blocked signals is set to the argument I<set>."
9608 msgstr "禁止されているシグナルの集合に I<set> 引き数を設定する。"
9609
9610 #. type: Plain text
9611 #: build/C/man2/sigprocmask.2:79
9612 msgid ""
9613 "If I<oldset> is non-NULL, the previous value of the signal mask is stored in "
9614 "I<oldset>."
9615 msgstr ""
9616 "I<oldset> が NULL でなければ、シグナルマスクの今までの値を I<oldset> に格納す"
9617 "る。"
9618
9619 #. type: Plain text
9620 #: build/C/man2/sigprocmask.2:88
9621 msgid ""
9622 "If I<set> is NULL, then the signal mask is unchanged (i.e., I<how> is "
9623 "ignored), but the current value of the signal mask is nevertheless returned "
9624 "in I<oldset> (if it is not NULL)."
9625 msgstr ""
9626 "I<set> が NULL であれば、シグナルマスクは変更されない (すなわち、 I<how> は無"
9627 "視される)。 I<set> の値にかかわらず、現在のシグナルマスクの値は I<oldset> に"
9628 "入れて返される (但し、 I<oldset> が NULL でない場合)。"
9629
9630 #. type: Plain text
9631 #: build/C/man2/sigprocmask.2:93
9632 msgid ""
9633 "The use of B<sigprocmask>()  is unspecified in a multithreaded process; see "
9634 "B<pthread_sigmask>(3)."
9635 msgstr ""
9636 "マルチスレッドのプロセスで B<sigprocmask>()  を使用した場合の動作は規定されて"
9637 "いない。 B<pthread_sigmask>(3)  を参照のこと。"
9638
9639 #. type: Plain text
9640 #: build/C/man2/sigprocmask.2:99
9641 msgid ""
9642 "B<sigprocmask>()  returns 0 on success and -1 on error.  In the event of an "
9643 "error, I<errno> is set to indicate the cause."
9644 msgstr ""
9645 "B<sigprocmask>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、 "
9646 "I<errno> にエラーの原因を示す値を設定する。"
9647
9648 #. type: Plain text
9649 #: build/C/man2/sigprocmask.2:107
9650 msgid ""
9651 "the I<set> or I<oldset> argument points outside the process's allocated "
9652 "address space."
9653 msgstr ""
9654 "引き数 I<set> か I<oldset> がプロセスに割り当てられたアドレス空間の外を指して"
9655 "いる。"
9656
9657 #. type: Plain text
9658 #: build/C/man2/sigprocmask.2:112
9659 msgid "The value specified in I<how> was invalid."
9660 msgstr "I<how> に指定された値が有効ではない。"
9661
9662 #. type: Plain text
9663 #: build/C/man2/sigprocmask.2:118
9664 msgid ""
9665 "It is not possible to block B<SIGKILL> or B<SIGSTOP>.  Attempts to do so are "
9666 "silently ignored."
9667 msgstr ""
9668 "B<SIGKILL> や B<SIGSTOP> を禁止することはできない。 禁止しようとしても黙って"
9669 "無視される。"
9670
9671 #. type: Plain text
9672 #: build/C/man2/sigprocmask.2:120
9673 msgid "Each of the threads in a process has its own signal mask."
9674 msgstr "プロセス内の各スレッドはそれぞれ専用のシグナルマスクを持つ。"
9675
9676 #. type: Plain text
9677 #: build/C/man2/sigprocmask.2:140
9678 msgid ""
9679 "If B<SIGBUS>, B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> are generated while they "
9680 "are blocked, the result is undefined, unless the signal was generated by "
9681 "B<kill>(2), B<sigqueue>(3), or B<raise>(3)."
9682 msgstr ""
9683 "シグナル B<SIGBUS>, B<SIGFPE>, B<SIGILL>, B<SIGSEGV> が禁止されている間に生成"
9684 "された場合で、 そのシグナルが B<kill>(2), B<sigqueue>(3), B<raise>(3)  によっ"
9685 "て生成されたものでないときには、 その後の動作は未定義である。"
9686
9687 #. type: Plain text
9688 #: build/C/man2/sigprocmask.2:155
9689 msgid ""
9690 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9691 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9692 "B<signal>(7)"
9693 msgstr ""
9694 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9695 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9696 "B<signal>(7)"
9697
9698 #. type: TH
9699 #: build/C/man3/sigqueue.3:28
9700 #, no-wrap
9701 msgid "SIGQUEUE"
9702 msgstr "SIGQUEUE"
9703
9704 #. type: TH
9705 #: build/C/man3/sigqueue.3:28 build/C/man3/sigwait.3:26
9706 #, no-wrap
9707 msgid "2013-12-16"
9708 msgstr "2013-12-16"
9709
9710 #. type: Plain text
9711 #: build/C/man3/sigqueue.3:31
9712 msgid "sigqueue - queue a signal and data to a process"
9713 msgstr "sigqueue - シグナルとデータをプロセスに送る"
9714
9715 #. type: Plain text
9716 #: build/C/man3/sigqueue.3:35
9717 msgid ""
9718 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9719 ">I<value>B<);>"
9720 msgstr ""
9721 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9722 ">I<value>B<);>"
9723
9724 #. type: Plain text
9725 #: build/C/man3/sigqueue.3:43
9726 msgid "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9727 msgstr "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9728
9729 #. type: Plain text
9730 #: build/C/man3/sigqueue.3:55
9731 msgid ""
9732 "B<sigqueue>()  sends the signal specified in I<sig> to the process whose PID "
9733 "is given in I<pid>.  The permissions required to send a signal are the same "
9734 "as for B<kill>(2).  As with B<kill>(2), the null signal (0) can be used to "
9735 "check if a process with a given PID exists."
9736 msgstr ""
9737 "B<sigqueue>()  は I<sig> で指定されたシグナルを、PID が I<pid> であるプロセス"
9738 "に送る。 シグナルを送るのに必要な権限は B<kill>(2)  と同じである。 "
9739 "B<kill>(2)  と同様に、ヌル・シグナル (0) を使って 指定した PID のプロセスが存"
9740 "在するかをチェックすることができる。"
9741
9742 #. type: Plain text
9743 #: build/C/man3/sigqueue.3:60
9744 msgid ""
9745 "The I<value> argument is used to specify an accompanying item of data "
9746 "(either an integer or a pointer value) to be sent with the signal, and has "
9747 "the following type:"
9748 msgstr ""
9749 "I<value> 引き数はシグナルと一緒に送るデータの付属アイテムを指定する。 "
9750 "I<value> は (整数またはポインタの値であり) 以下のような型である。"
9751
9752 #. type: Plain text
9753 #: build/C/man3/sigqueue.3:67
9754 #, no-wrap
9755 msgid ""
9756 "union sigval {\n"
9757 "    int   sival_int;\n"
9758 "    void *sival_ptr;\n"
9759 "};\n"
9760 msgstr ""
9761 "union sigval {\n"
9762 "    int   sival_int;\n"
9763 "    void *sival_ptr;\n"
9764 "};\n"
9765
9766 #. type: Plain text
9767 #: build/C/man3/sigqueue.3:83
9768 msgid ""
9769 "If the receiving process has installed a handler for this signal using the "
9770 "B<SA_SIGINFO> flag to B<sigaction>(2), then it can obtain this data via the "
9771 "I<si_value> field of the I<siginfo_t> structure passed as the second "
9772 "argument to the handler.  Furthermore, the I<si_code> field of that "
9773 "structure will be set to B<SI_QUEUE>."
9774 msgstr ""
9775 "受取先のプロセスに、このシグナルに対するハンドラを (B<sigaction>(2)  に "
9776 "B<SA_SIGINFO> を指定して) インストールしておくと、 そのハンドラの第 2 引き数"
9777 "に渡される I<siginfo_t> 構造体の I<si_value> フィールドによって、このデータを"
9778 "取得できる。 さらに、この構造体の I<si_code> フィールドは B<SI_QUEUE> に設定"
9779 "される。"
9780
9781 #. type: Plain text
9782 #: build/C/man3/sigqueue.3:91
9783 msgid ""
9784 "On success, B<sigqueue>()  returns 0, indicating that the signal was "
9785 "successfully queued to the receiving process.  Otherwise, -1 is returned and "
9786 "I<errno> is set to indicate the error."
9787 msgstr ""
9788 "成功した場合、 B<sigqueue>()  は 0 を返す。 これは受け取り側プロセスの待ち行"
9789 "列に シグナルが正しく入れられたことを示す。 失敗した場合は -1 が返され、 "
9790 "I<errno> がエラーを表す値に設定される。"
9791
9792 #. type: Plain text
9793 #: build/C/man3/sigqueue.3:102
9794 msgid "I<sig> was invalid."
9795 msgstr "I<sig> が不正である。"
9796
9797 #. type: Plain text
9798 #: build/C/man3/sigqueue.3:108
9799 msgid ""
9800 "The process does not have permission to send the signal to the receiving "
9801 "process.  For the required permissions, see B<kill>(2)."
9802 msgstr ""
9803 "このプロセスには、受け取り側プロセスにシグナルを送る権限がない。 必要な権限に"
9804 "ついては、 B<kill>(2)  を参照すること。"
9805
9806 #. type: Plain text
9807 #: build/C/man3/sigqueue.3:112
9808 msgid "No process has a PID matching I<pid>."
9809 msgstr "I<pid> にマッチする PID のプロセスがない。"
9810
9811 #. type: Plain text
9812 #: build/C/man3/sigqueue.3:114
9813 msgid "This system call first appeared in Linux 2.2."
9814 msgstr "このシステムコールは Linux 2.2 で初めて登場した。"
9815
9816 #. type: Plain text
9817 #: build/C/man3/sigqueue.3:119
9818 msgid "The B<sigqueue>()  function is thread-safe."
9819 msgstr "B<sigqueue>() 関数はスレッドセーフである。"
9820
9821 #. type: Plain text
9822 #: build/C/man3/sigqueue.3:129
9823 msgid ""
9824 "If this function results in the sending of a signal to the process that "
9825 "invoked it, and that signal was not blocked by the calling thread, and no "
9826 "other threads were willing to handle this signal (either by having it "
9827 "unblocked, or by waiting for it using B<sigwait>(3)), then at least some "
9828 "signal must be delivered to this thread before this function returns."
9829 msgstr ""
9830 "この関数を呼び出したプロセスにこの関数がシグナルを送ったときに、 シグナルが呼"
9831 "び出し側スレッドにブロックされず、 かつ (シグナルがブロックされなかった、また"
9832 "は B<sigwait>(3)  を使用するのを待っていることにより)  このシグナルを扱うス"
9833 "レッドが何もない場合は、 この関数がリターンする前に、少なくとも そのスレッド"
9834 "に対してシグナルが配送されていなければならない。"
9835
9836 #. type: Plain text
9837 #: build/C/man3/sigqueue.3:144
9838 msgid ""
9839 "On Linux, this function is implemented using the B<rt_sigqueueinfo>(2)  "
9840 "system call.  The system call differs in its third argument, which is the "
9841 "I<siginfo_t> structure that will be supplied to the receiving process's "
9842 "signal handler or returned by the receiving process's B<sigtimedwait>(2)  "
9843 "call.  Inside the glibc B<sigqueue>()  wrapper, this argument, I<uinfo>, is "
9844 "initialized as follows:"
9845 msgstr ""
9846 "Linux では、この関数は B<rt_sigqueueinfo>(2)  システムコールを使って実装され"
9847 "ている。 両者には 3 番目の引き数に違いがあり、 B<rt_sigqueueinfo>(2)  では 3 "
9848 "番目の引き数は I<siginfo_t> 構造体である。 I<siginfo_t> 構造体は、シグナルを"
9849 "受信するプロセスのシグナルハンドラに渡されたり、 シグナル受信プロセスの "
9850 "B<sigtimedwait>(2)  システムコールから返されたりする。 glibc の "
9851 "B<sigqueue>()  ラッパー関数内部では、 この引き数 I<uinfo> は以下のように初期"
9852 "化される。"
9853
9854 #. type: Plain text
9855 #: build/C/man3/sigqueue.3:152
9856 #, no-wrap
9857 msgid ""
9858 "uinfo.si_signo = sig;      /* Argument supplied to sigqueue() */\n"
9859 "uinfo.si_code = SI_QUEUE;\n"
9860 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9861 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9862 "uinfo.si_value = val;      /* Argument supplied to sigqueue() */\n"
9863 msgstr ""
9864 "uinfo.si_signo = sig;      /* Argument supplied to sigqueue() */\n"
9865 "uinfo.si_code = SI_QUEUE;\n"
9866 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9867 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9868 "uinfo.si_value = val;      /* Argument supplied to sigqueue() */\n"
9869
9870 #. type: Plain text
9871 #: build/C/man3/sigqueue.3:162
9872 msgid ""
9873 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9874 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9875 msgstr ""
9876 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9877 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9878
9879 #. type: TH
9880 #: build/C/man2/sigreturn.2:30
9881 #, no-wrap
9882 msgid "SIGRETURN"
9883 msgstr "SIGRETURN"
9884
9885 #. type: Plain text
9886 #: build/C/man2/sigreturn.2:33
9887 msgid "sigreturn - return from signal handler and cleanup stack frame"
9888 msgstr "sigreturn - シグナル・ハンドラから返り、スタックを掃除する"
9889
9890 #. type: Plain text
9891 #: build/C/man2/sigreturn.2:35
9892 msgid "B<int sigreturn(...);>"
9893 msgstr "B<int sigreturn(...);>"
9894
9895 #.  See arch/x86/kernel/signal.c::__setup_frame() [in 3.17 source code]
9896 #. type: Plain text
9897 #: build/C/man2/sigreturn.2:45
9898 msgid ""
9899 "If the Linux kernel determines that an unblocked signal is pending for a "
9900 "process, then, at the next transition back to user mode in that process (e."
9901 "g., upon return from a system call or when the process is rescheduled onto "
9902 "the CPU), it saves various pieces of process context (processor status word, "
9903 "registers, signal mask, and signal stack settings)  into the user-space "
9904 "stack."
9905 msgstr ""
9906
9907 #. type: Plain text
9908 #: build/C/man2/sigreturn.2:52
9909 msgid ""
9910 "The kernel also arranges that, during the transition back to user mode, the "
9911 "signal handler is called, and that, upon return from the handler, control "
9912 "passes to a piece of user-space code commonly called the \"signal trampoline"
9913 "\".  The signal trampoline code in turn calls B<sigreturn>()."
9914 msgstr ""
9915
9916 #. type: Plain text
9917 #: build/C/man2/sigreturn.2:65
9918 #, fuzzy
9919 #| msgid ""
9920 #| "This B<sigreturn>()  call undoes everything that was done\\(emchanging "
9921 #| "the process's signal mask, switching stacks (see "
9922 #| "B<sigaltstack>(2))\\(emin order to invoke the signal handler: it restores "
9923 #| "the process's signal mask, switches stacks, and restores the process's "
9924 #| "context (registers, processor flags), so that the process directly "
9925 #| "resumes execution at the point where it was interrupted by the signal."
9926 msgid ""
9927 "This B<sigreturn>()  call undoes everything that was done\\(emchanging the "
9928 "process's signal mask, switching signal stacks (see "
9929 "B<sigaltstack>(2))\\(emin order to invoke the signal handler.  It restores "
9930 "the process's signal mask, switches stacks, and restores the process's "
9931 "context (processor flags and registers, including the stack pointer and "
9932 "instruction pointer), so that the process resumes execution at the point "
9933 "where it was interrupted by the signal."
9934 msgstr ""
9935 "B<sigreturn>()  は、シグナル・ハンドラを起動するために行ったことの全て \\(em "
9936 "プロセスのシグナルマスクの変更、スタックの切り替え (B<sigaltstack>(2)  参照) "
9937 "\\(em の取り消しを行う。 プロセスのシグナルマスクの復元、スタックの切り替"
9938 "え、 プロセスのコンテキスト (レジスタ、プロセッサ・フラグ) の復元を行い、 プ"
9939 "ロセスがシグナルにより割り込まれた場所からそのまま実行を 再開できるようにす"
9940 "る。"
9941
9942 #. type: Plain text
9943 #: build/C/man2/sigreturn.2:68
9944 msgid "B<sigreturn>()  never returns."
9945 msgstr "B<sigreturn>()  が返ることはない。"
9946
9947 #. type: Plain text
9948 #: build/C/man2/sigreturn.2:74
9949 msgid ""
9950 "Many UNIX-type systems have a B<sigreturn>()  system call or near "
9951 "equivalent.  However, this call is not specified in POSIX, and details of "
9952 "its behavior vary across systems."
9953 msgstr ""
9954
9955 #. type: Plain text
9956 #: build/C/man2/sigreturn.2:83
9957 #, fuzzy
9958 #| msgid ""
9959 #| "The B<sigreturn>()  call is used by the kernel to implement signal "
9960 #| "handlers.  It should B<never> be called directly.  Better yet, the "
9961 #| "specific use of the I<__unused> argument varies depending on the "
9962 #| "architecture."
9963 msgid ""
9964 "B<sigreturn>()  exists only to allow the implementation of signal handlers.  "
9965 "It should B<never> be called directly.  Details of the arguments (if any) "
9966 "passed to B<sigreturn>()  vary depending on the architecture."
9967 msgstr ""
9968 "B<sigreturn>()  コールは、シグナル・ハンドラを実装するためにカーネルにより使"
9969 "用される。 これを直接呼び出しては B<決して> いけない。さらに I<__unused> 引き"
9970 "数がどのように使われるかはそのアーキテクチャに依存して変化する。"
9971
9972 #.  See, for example, sysdeps/unix/sysv/linux/i386/sigaction.c and
9973 #.  sysdeps/unix/sysv/linux/x86_64/sigaction.c in the glibc (2.20) source.
9974 #. type: Plain text
9975 #: build/C/man2/sigreturn.2:106
9976 msgid ""
9977 "Once upon a time, UNIX systems placed the signal trampoline code onto the "
9978 "user stack.  Nowadays, pages of the user stack are protected so as to "
9979 "disallow code execution.  Thus, on contemporary Linux systems, depending on "
9980 "the architecture, the signal trampoline code lives either in the B<vdso>(7)  "
9981 "or in the C library.  In the latter case, the C library supplies the "
9982 "location of the trampoline code using the I<sa_restorer> field of the "
9983 "I<sigaction> structure that is passed to B<sigaction>(2), and sets the "
9984 "B<SA_RESTORER> flag in the I<sa_flags> field."
9985 msgstr ""
9986
9987 #. type: Plain text
9988 #: build/C/man2/sigreturn.2:115
9989 msgid ""
9990 "The saved process context information is placed in a I<ucontext_t> structure "
9991 "(see I<E<lt>sys/ucontext.hE<gt>>).  That structure is visible within the "
9992 "signal handler as the third argument of a handler established with the "
9993 "B<SA_SIGINFO> flag."
9994 msgstr ""
9995
9996 #. type: Plain text
9997 #: build/C/man2/sigreturn.2:123
9998 msgid ""
9999 "On some other UNIX systems, the operation of the signal trampoline differs a "
10000 "little.  In particular, on some systems, upon transitioning back to user "
10001 "mode, the kernel passes control to the trampoline (rather than the signal "
10002 "handler), and the trampoline code calls the signal handler (and then calls "
10003 "B<sigreturn>()  once the handler returns)."
10004 msgstr ""
10005
10006 #. type: Plain text
10007 #: build/C/man2/sigreturn.2:130
10008 msgid ""
10009 "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), "
10010 "B<getcontext>(3), B<signal>(7)"
10011 msgstr "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), B<getcontext>(3), B<signal>(7)"
10012
10013 #. type: TH
10014 #: build/C/man3/sigset.3:26
10015 #, no-wrap
10016 msgid "SIGSET"
10017 msgstr "SIGSET"
10018
10019 #. type: Plain text
10020 #: build/C/man3/sigset.3:29
10021 msgid "sigset, sighold, sigrelse, sigignore - System V signal API"
10022 msgstr "sigset, sighold, sigrelse, sigignore - System V 版シグナル API"
10023
10024 #. type: Plain text
10025 #: build/C/man3/sigset.3:35
10026 msgid "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
10027 msgstr "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
10028
10029 #. type: Plain text
10030 #: build/C/man3/sigset.3:37
10031 msgid "B<int sighold(int >I<sig>B<);>"
10032 msgstr "B<int sighold(int >I<sig>B<);>"
10033
10034 #. type: Plain text
10035 #: build/C/man3/sigset.3:39
10036 msgid "B<int sigrelse(int >I<sig>B<);>"
10037 msgstr "B<int sigrelse(int >I<sig>B<);>"
10038
10039 #. type: Plain text
10040 #: build/C/man3/sigset.3:41
10041 msgid "B<int sigignore(int >I<sig>B<);>"
10042 msgstr "B<int sigignore(int >I<sig>B<);>"
10043
10044 #. type: Plain text
10045 #: build/C/man3/sigset.3:52
10046 msgid "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
10047 msgstr "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
10048
10049 #. type: Plain text
10050 #: build/C/man3/sigset.3:56
10051 msgid ""
10052 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
10053 msgstr ""
10054 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
10055
10056 #. type: Plain text
10057 #: build/C/man3/sigset.3:65
10058 msgid ""
10059 "These functions are provided in glibc as a compatibility interface for "
10060 "programs that make use of the historical System V signal API.  This API is "
10061 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
10062 "B<sigprocmask>(2), etc.)"
10063 msgstr ""
10064 "これらの関数は、昔ながらの System V 版シグナル API を使用しているプログラム "
10065 "に対して互換性のあるインタフェースを glibc で提供するものである。 この API は"
10066 "過去のものであり、新しいアプリケーションでは POSIX シグナル API "
10067 "(B<sigaction>(2), B<sigprocmask>(2)  など) を使用すべきである。"
10068
10069 #. type: Plain text
10070 #: build/C/man3/sigset.3:74
10071 msgid ""
10072 "The B<sigset>()  function modifies the disposition of the signal I<sig>.  "
10073 "The I<disp> argument can be the address of a signal handler function, or one "
10074 "of the following constants:"
10075 msgstr ""
10076 "関数 B<sigset>()  はシグナル I<sig> のシグナルハンドラの動作を変更する。 "
10077 "I<disp> 引き数には、シグナルハンドラ関数のアドレスか、 以下の定数のいずれか一"
10078 "つを指定できる。"
10079
10080 #. type: TP
10081 #: build/C/man3/sigset.3:74
10082 #, no-wrap
10083 msgid "B<SIG_DFL>"
10084 msgstr "B<SIG_DFL>"
10085
10086 #. type: Plain text
10087 #: build/C/man3/sigset.3:79
10088 msgid "Reset the disposition of I<sig> to the default."
10089 msgstr "I<sig> の動作をデフォルトにリセットする。"
10090
10091 #. type: TP
10092 #: build/C/man3/sigset.3:79
10093 #, no-wrap
10094 msgid "B<SIG_IGN>"
10095 msgstr "B<SIG_IGN>"
10096
10097 #. type: Plain text
10098 #: build/C/man3/sigset.3:83
10099 msgid "Ignore I<sig>."
10100 msgstr "I<sig> を無視する。"
10101
10102 #. type: TP
10103 #: build/C/man3/sigset.3:83
10104 #, no-wrap
10105 msgid "B<SIG_HOLD>"
10106 msgstr "B<SIG_HOLD>"
10107
10108 #. type: Plain text
10109 #: build/C/man3/sigset.3:90
10110 msgid ""
10111 "Add I<sig> to the process's signal mask, but leave the disposition of I<sig> "
10112 "unchanged."
10113 msgstr ""
10114 "そのプロセスのシグナルマスクに I<sig> を追加するが、 I<sig> の動作は変更しな"
10115 "い。"
10116
10117 #. type: Plain text
10118 #: build/C/man3/sigset.3:96
10119 msgid ""
10120 "If I<disp> specifies the address of a signal handler, then I<sig> is added "
10121 "to the process's signal mask during execution of the handler."
10122 msgstr ""
10123 "I<disp> にシグナルハンドラのアドレスが指定された場合、 シグナルハンドラの実行"
10124 "中は、そのプロセスのシグナルマスクに I<sig> が追加される。"
10125
10126 #. type: Plain text
10127 #: build/C/man3/sigset.3:104
10128 msgid ""
10129 "If I<disp> was specified as a value other than B<SIG_HOLD>, then I<sig> is "
10130 "removed from the process's signal mask."
10131 msgstr ""
10132 "I<disp> に B<SIG_HOLD> 以外の値が指定された場合、 そのプロセスのシグナルマス"
10133 "クから I<sig> が削除される。"
10134
10135 #. type: Plain text
10136 #: build/C/man3/sigset.3:110 build/C/man3/sigvec.3:87
10137 msgid "The dispositions for B<SIGKILL> and B<SIGSTOP> cannot be changed."
10138 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> に対する動作は変更できない。"
10139
10140 #. type: Plain text
10141 #: build/C/man3/sigset.3:116
10142 msgid ""
10143 "The B<sighold>()  function adds I<sig> to the calling process's signal mask."
10144 msgstr ""
10145 "関数 B<sighold>()  は、呼び出し元プロセスのシグナルマスクに I<sig> を追加す"
10146 "る。"
10147
10148 #. type: Plain text
10149 #: build/C/man3/sigset.3:122
10150 msgid ""
10151 "The B<sigrelse>()  function removes I<sig> from the calling process's signal "
10152 "mask."
10153 msgstr ""
10154 "関数 B<sigrelse>()  は、呼び出し元プロセスのシグナルマスクから I<sig> を削除"
10155 "する。"
10156
10157 #. type: Plain text
10158 #: build/C/man3/sigset.3:129
10159 msgid ""
10160 "The B<sigignore>()  function sets the disposition of I<sig> to B<SIG_IGN>."
10161 msgstr "関数 B<sigignore>()  は、 I<sig> の動作を B<SIG_IGN> に設定する。"
10162
10163 #. type: Plain text
10164 #: build/C/man3/sigset.3:145
10165 msgid ""
10166 "On success, B<sigset>()  returns B<SIG_HOLD> if I<sig> was blocked before "
10167 "the call, or the signal's previous disposition if it was not blocked before "
10168 "the call.  On error, B<sigset>()  returns -1, with I<errno> set to indicate "
10169 "the error.  (But see BUGS below.)"
10170 msgstr ""
10171 "B<sigset>()  は成功すると、 呼び出し前に I<sig> がブロックされていた場合には "
10172 "B<SIG_HOLD> を返し、 ブロックされていなかった場合には 変更前のそのシグナルの"
10173 "動作を返す。 エラーの場合、 B<sigset>()  は -1 を返し、 I<errno> にエラーを示"
10174 "す値をセットする。 但し、以下の「バグ」の節も参照のこと。"
10175
10176 #. type: Plain text
10177 #: build/C/man3/sigset.3:154
10178 msgid ""
10179 "The B<sighold>(), B<sigrelse>(), and B<sigignore>()  functions return 0 on "
10180 "success; on error, these functions return -1 and set I<errno> to indicate "
10181 "the error."
10182 msgstr ""
10183 "関数 B<sighold>(), B<sigrelse>(), B<sigignore>()  は成功すると 0 を返す。エ"
10184 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値をセットする。"
10185
10186 #. type: Plain text
10187 #: build/C/man3/sigset.3:161
10188 msgid ""
10189 "For B<sigset>()  see the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
10190 msgstr ""
10191 "B<sigset>()  に関しては、 B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」"
10192 "の節を参照。"
10193
10194 #. type: Plain text
10195 #: build/C/man3/sigset.3:168
10196 msgid ""
10197 "For B<sighold>()  and B<sigrelse>()  see the ERRORS under B<sigprocmask>(2)."
10198 msgstr ""
10199 "B<sighold>()  と B<sigrelse>()  に関しては、 B<sigprocmask>(2)  の「エラー」"
10200 "の節を参照。"
10201
10202 #. type: Plain text
10203 #: build/C/man3/sigset.3:173
10204 msgid "For B<sigignore>(), see the errors under B<sigaction>(2)."
10205 msgstr "B<sigignore>()  に関しては、 B<sigaction>(2)  の「エラー」の節を参照。"
10206
10207 #. type: Plain text
10208 #: build/C/man3/sigset.3:190
10209 msgid ""
10210 "SVr4, POSIX.1-2001.  These functions are obsolete: do not use them in new "
10211 "programs.  POSIX.1-2008 marks B<sighold>(), B<sigignore>(), B<sigpause>(), "
10212 "B<sigrelse>(), and B<sigset>()  as obsolete, recommending the use of "
10213 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), and "
10214 "B<sigsuspend>(2)  instead."
10215 msgstr ""
10216 "SVr4, POSIX.1-2001.  これらの関数は廃止予定である。新しいプログラムでは使用し"
10217 "ないこと。 POSIX.1-2008 は、 B<sighold>(), B<sigignore>(), B<sigpause>(), "
10218 "B<sigrelse>(), B<sigset>()  を廃止予定としている。 代わりに、 "
10219 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), B<sigsuspend>(2)  "
10220 "の使用が推奨されている。"
10221
10222 #. type: Plain text
10223 #: build/C/man3/sigset.3:192
10224 msgid "These functions appeared in glibc version 2.1."
10225 msgstr "これらの関数は glibc 2.1 で登場した。"
10226
10227 #. type: Plain text
10228 #: build/C/man3/sigset.3:198
10229 msgid ""
10230 "The I<sighandler_t> type is a GNU extension; it is used on this page only to "
10231 "make the B<sigset>()  prototype more easily readable."
10232 msgstr ""
10233 "I<sighandler_t> 型は GNU による拡張であり、この man page で B<sigset>()  のプ"
10234 "ロトタイプをより読みやすくするために使われているだけである。"
10235
10236 #. type: Plain text
10237 #: build/C/man3/sigset.3:206
10238 msgid ""
10239 "The B<sigset>()  function provides reliable signal handling semantics (as "
10240 "when calling B<sigaction>(2)  with I<sa_mask> equal to 0)."
10241 msgstr ""
10242 "関数 B<sigset>()  は信頼性のあるシグナル処理機構を提供する (I<sa_mask> を 0 "
10243 "で B<sigaction>(2)  を呼び出したときと同様)。"
10244
10245 #. type: Plain text
10246 #: build/C/man3/sigset.3:224
10247 msgid ""
10248 "On System V, the B<signal>()  function provides unreliable semantics (as "
10249 "when calling B<sigaction>(2)  with I<sa_mask> equal to I<SA_RESETHAND | "
10250 "SA_NODEFER>).  On BSD, B<signal>()  provides reliable semantics.  "
10251 "POSIX.1-2001 leaves these aspects of B<signal>()  unspecified.  See "
10252 "B<signal>(2)  for further details."
10253 msgstr ""
10254 "System V では、関数 B<signal>()  が提供する処理機構は信頼性のないものである "
10255 "(I<sa_mask> を I<SA_RESETHAND | SA_NODEFER> として B<sigaction>(2)  を呼び出"
10256 "したときと同様)。 BSD では、 B<signal>()  は信頼性のある処理機構を提供する。 "
10257 "POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままとなっている。 さら"
10258 "なる詳細については B<signal>(2)  を参照。"
10259
10260 #. type: Plain text
10261 #: build/C/man3/sigset.3:232 build/C/man3/sigvec.3:272
10262 msgid ""
10263 "In order to wait for a signal, BSD and System V both provided a function "
10264 "named B<sigpause>(3), but this function has a different argument on the two "
10265 "systems.  See B<sigpause>(3)  for details."
10266 msgstr ""
10267 "BSD と System V のどちらのシステムでも シグナルを待つために、 "
10268 "B<sigpause>(3)  という名前の関数が提供されているが、 この関数の引き数は両方の"
10269 "システムで異なる。 詳細は B<sigpause>(3)  を参照。"
10270
10271 #. type: Plain text
10272 #: build/C/man3/sigset.3:241
10273 msgid ""
10274 "In versions of glibc before 2.2, B<sigset>()  did not unblock I<sig> if "
10275 "I<disp> was specified as a value other than B<SIG_HOLD>."
10276 msgstr ""
10277 "2.2 より前のバージョンの glibc では、 I<disp> に B<SIG_HOLD> 以外の値が指定さ"
10278 "れた場合、 I<sig> のブロック解除を行っていなかった。"
10279
10280 #.  See http://sourceware.org/bugzilla/show_bug.cgi?id=1951
10281 #. type: Plain text
10282 #: build/C/man3/sigset.3:266
10283 msgid ""
10284 "In versions of glibc before 2.5, B<sigset>()  does not correctly return the "
10285 "previous disposition of the signal in two cases.  First, if I<disp> is "
10286 "specified as B<SIG_HOLD>, then a successful B<sigset>()  always returns "
10287 "B<SIG_HOLD>.  Instead, it should return the previous disposition of the "
10288 "signal (unless the signal was blocked, in which case B<SIG_HOLD> should be "
10289 "returned).  Second, if the signal is currently blocked, then the return "
10290 "value of a successful B<sigset>()  should be B<SIG_HOLD>.  Instead, the "
10291 "previous disposition of the signal is returned.  These problems have been "
10292 "fixed since glibc 2.5."
10293 msgstr ""
10294 "2.3.5 以前の全てのバージョンの glibc では、 B<sigset>()  が変更前のシグナルの"
10295 "動作を正しく返さない場合が 2つある。 一つめは、 I<disp> に B<SIG_HOLD> が指定"
10296 "されると、成功した場合 B<sigset>()  は常に B<SIG_HOLD> を返すことである。 正"
10297 "しくは、(シグナルがブロックされていなかった場合には)  変更前のシグナルの動作"
10298 "を返すべきである (シグナルがブロックされていた場合には、 B<SIG_HOLD> が返され"
10299 "る)。 もう一つは、シグナルが現在ブロックされている場合には、 成功した場合の "
10300 "B<sigset>()  の返り値は B<SIG_HOLD> になるべきであるが、実際には 変更前のシグ"
10301 "ナルの動作が返されることである。 これらの問題は glibc 2.5 以降で修正されてい"
10302 "る。"
10303
10304 #. type: Plain text
10305 #: build/C/man3/sigset.3:276
10306 msgid ""
10307 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10308 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
10309 msgstr ""
10310 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10311 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
10312
10313 #. type: TH
10314 #: build/C/man3/sigsetops.3:31
10315 #, no-wrap
10316 msgid "SIGSETOPS"
10317 msgstr "SIGSETOPS"
10318
10319 #. type: TH
10320 #: build/C/man3/sigsetops.3:31
10321 #, no-wrap
10322 msgid "2014-04-14"
10323 msgstr "2014-04-14"
10324
10325 #. type: Plain text
10326 #: build/C/man3/sigsetops.3:35
10327 msgid ""
10328 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX signal "
10329 "set operations"
10330 msgstr ""
10331 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX シグナル集"
10332 "合の操作"
10333
10334 #. type: Plain text
10335 #: build/C/man3/sigsetops.3:39
10336 msgid "B<int sigemptyset(sigset_t *>I<set>B<);>"
10337 msgstr "B<int sigemptyset(sigset_t *>I<set>B<);>"
10338
10339 #. type: Plain text
10340 #: build/C/man3/sigsetops.3:41
10341 msgid "B<int sigfillset(sigset_t *>I<set>B<);>"
10342 msgstr "B<int sigfillset(sigset_t *>I<set>B<);>"
10343
10344 #. type: Plain text
10345 #: build/C/man3/sigsetops.3:43
10346 msgid "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10347 msgstr "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10348
10349 #. type: Plain text
10350 #: build/C/man3/sigsetops.3:45
10351 msgid "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10352 msgstr "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10353
10354 #. type: Plain text
10355 #: build/C/man3/sigsetops.3:47
10356 msgid "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
10357 msgstr "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
10358
10359 #. type: Plain text
10360 #: build/C/man3/sigsetops.3:59
10361 msgid ""
10362 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10363 "B<sigismember>():"
10364 msgstr ""
10365 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10366 "B<sigismember>():"
10367
10368 #. type: Plain text
10369 #: build/C/man3/sigsetops.3:61
10370 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10371 msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10372
10373 #. type: Plain text
10374 #: build/C/man3/sigsetops.3:65
10375 msgid "These functions allow the manipulation of POSIX signal sets."
10376 msgstr "これらの関数は POSIX シグナル集合(signal set)を操作するため使用する。"
10377
10378 #. type: Plain text
10379 #: build/C/man3/sigsetops.3:70
10380 msgid ""
10381 "B<sigemptyset>()  initializes the signal set given by I<set> to empty, with "
10382 "all signals excluded from the set."
10383 msgstr ""
10384 "B<sigemptyset>()  は I<set> で与えられたシグナル集合を空に初期化し、シグナル"
10385 "が一つも 含まれていない状態にする。"
10386
10387 #. type: Plain text
10388 #: build/C/man3/sigsetops.3:75
10389 msgid "B<sigfillset>()  initializes I<set> to full, including all signals."
10390 msgstr ""
10391 "B<sigfillset>()  は I<set> で与えられたシグナル集合が全てのシグナルを含むよう"
10392 "にする。"
10393
10394 #. type: Plain text
10395 #: build/C/man3/sigsetops.3:83
10396 msgid ""
10397 "B<sigaddset>()  and B<sigdelset>()  add and delete respectively signal "
10398 "I<signum> from I<set>."
10399 msgstr ""
10400 "B<sigaddset>()  と B<sigdelset>()  は I<set> に I<signum> シグナルをそれぞれ"
10401 "加えたり、削除したりする。"
10402
10403 #. type: Plain text
10404 #: build/C/man3/sigsetops.3:89
10405 msgid "B<sigismember>()  tests whether I<signum> is a member of I<set>."
10406 msgstr ""
10407 "B<sigismember>()  は I<signum> が I<set> に含まれているかどうかをテストする。"
10408
10409 #. type: Plain text
10410 #: build/C/man3/sigsetops.3:107
10411 msgid ""
10412 "Objects of type I<sigset_t> must be initialized by a call to either "
10413 "B<sigemptyset>()  or B<sigfillset>()  before being passed to the functions "
10414 "B<sigaddset>(), B<sigdelset>()  and B<sigismember>()  or the additional "
10415 "glibc functions described below (B<sigisemptyset>(), B<sigandset>(), and "
10416 "B<sigorset>()).  The results are undefined if this is not done."
10417 msgstr ""
10418 "I<sigset_t> 型のオブジェクトは、関数 B<sigaddset>(), B<sigdelset>(), "
10419 "B<sigismember>()  や後述の glibc の追加関数 (B<sigisemptyset>(), "
10420 "B<sigandset>(), B<sigorset>())  に渡す前に、 B<sigemptyset>()  か "
10421 "B<sigfillset>()  を呼び出して初期化しなければならない。 初期化しなかった場合"
10422 "の結果は未定義である。"
10423
10424 #. type: Plain text
10425 #: build/C/man3/sigsetops.3:114
10426 msgid ""
10427 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), and B<sigdelset>()  "
10428 "return 0 on success and -1 on error."
10429 msgstr ""
10430 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>()  は成功すれ"
10431 "ば 0 を、エラーの場合は -1 を返す。"
10432
10433 #. type: Plain text
10434 #: build/C/man3/sigsetops.3:123
10435 msgid ""
10436 "B<sigismember>()  returns 1 if I<signum> is a member of I<set>, 0 if "
10437 "I<signum> is not a member, and -1 on error."
10438 msgstr "B<sigismember>()  は I<signum> が I<set> のメンバの場合 1 を返し、メンバでない場合 0 を返す。 エラーの場合、-1 を返す。"
10439
10440 #. type: Plain text
10441 #: build/C/man3/sigsetops.3:127
10442 msgid ""
10443 "On error, these functions set I<errno> to indicate the cause of the error."
10444 msgstr "エラーの場合、 I<errno> にエラーの原因を示す値を設定する。"
10445
10446 #. type: Plain text
10447 #: build/C/man3/sigsetops.3:132
10448 msgid "I<sig> is not a valid signal."
10449 msgstr "I<sig> が有効なシグナルではない。"
10450
10451 #. type: Plain text
10452 #: build/C/man3/sigsetops.3:145
10453 msgid ""
10454 "The B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10455 "B<sigismember>(), B<sigisemptyset>(), B<sigorset>(), and B<sigandset>()  "
10456 "functions are thread-safe."
10457 msgstr ""
10458 "関数 B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10459 "B<sigismember>(), B<sigisemptyset>(), B<sigorset>(), B<sigandset>() はスレッ"
10460 "ドセーフである。"
10461
10462 #. type: SS
10463 #: build/C/man3/sigsetops.3:148
10464 #, no-wrap
10465 msgid "Glibc notes"
10466 msgstr "glibc での注意"
10467
10468 #. type: Plain text
10469 #: build/C/man3/sigsetops.3:154
10470 msgid ""
10471 "If the B<_GNU_SOURCE> feature test macro is defined, then I<E<lt>signal."
10472 "hE<gt>> exposes three other functions for manipulating signal sets:"
10473 msgstr ""
10474 "B<_GNU_SOURCE> 機能検査マクロが定義されていると、 I<E<lt>signal.hE<gt>> でシ"
10475 "グナル集合を操作する 3 つの関数が追加で公開される。"
10476
10477 #. type: Plain text
10478 #: build/C/man3/sigsetops.3:161
10479 #, no-wrap
10480 msgid ""
10481 "B<int sigisemptyset(const sigset_t *>I<set>B<);>\n"
10482 "B<int sigorset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10483 "B<              const sigset_t *>I<right>B<);>\n"
10484 "B<int sigandset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10485 "B<              const sigset_t *>I<right>B<);>\n"
10486 msgstr ""
10487 "B<int sigisemptyset(const sigset_t *>I<set>B<);>\n"
10488 "B<int sigorset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10489 "B<              const sigset_t *>I<right>B<);>\n"
10490 "B<int sigandset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10491 "B<              const sigset_t *>I<right>B<);>\n"
10492
10493 #. type: Plain text
10494 #: build/C/man3/sigsetops.3:167
10495 msgid ""
10496 "B<sigisemptyset>()  returns 1 if I<set> contains no signals, and 0 otherwise."
10497 msgstr ""
10498 "B<sigisemptyset>() は I<set> にシグナルが一つも含まれていなければ 1 を返し、 "
10499 "それ以外は 0 を返す。"
10500
10501 #. type: Plain text
10502 #: build/C/man3/sigsetops.3:183
10503 msgid ""
10504 "B<sigorset>()  places the union of the sets I<left> and I<right> in "
10505 "I<dest>.  B<sigandset>()  places the intersection of the sets I<left> and "
10506 "I<right> in I<dest>.  Both functions return 0 on success, and -1 on failure."
10507 msgstr ""
10508 "B<sigorset>() は集合 I<left> と I<right> の和集合を I<dest> に設定する。 "
10509 "B<sigandset>() は集合 I<left> と I<right> の積集合を I<dest> に設定する。 ど"
10510 "ちらの関数も成功すると 0 を返し、失敗時には -1 を返す。"
10511
10512 #. type: Plain text
10513 #: build/C/man3/sigsetops.3:186
10514 msgid ""
10515 "These functions are nonstandard (a few other systems provide similar "
10516 "functions) and their use should be avoided in portable applications."
10517 msgstr ""
10518 "これらの関数は非標準であり、(他にも同様の関数を提供しているシステムも いくつ"
10519 "かはあるが) 移植性を考慮したアプリケーションでは使用を避けるべき である。"
10520
10521 #. type: Plain text
10522 #: build/C/man3/sigsetops.3:191
10523 msgid "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10524 msgstr "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10525
10526 #. type: TH
10527 #: build/C/man2/sigsuspend.2:29
10528 #, no-wrap
10529 msgid "SIGSUSPEND"
10530 msgstr "SIGSUSPEND"
10531
10532 #. type: Plain text
10533 #: build/C/man2/sigsuspend.2:32
10534 msgid "sigsuspend - wait for a signal"
10535 msgstr "sigsuspend - シグナルを待つ"
10536
10537 #. type: Plain text
10538 #: build/C/man2/sigsuspend.2:36
10539 msgid "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10540 msgstr "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10541
10542 #. type: Plain text
10543 #: build/C/man2/sigsuspend.2:45
10544 msgid ""
10545 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10546 "_POSIX_SOURCE"
10547 msgstr ""
10548 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10549 "_POSIX_SOURCE"
10550
10551 #. type: Plain text
10552 #: build/C/man2/sigsuspend.2:53
10553 msgid ""
10554 "B<sigsuspend>()  temporarily replaces the signal mask of the calling process "
10555 "with the mask given by I<mask> and then suspends the process until delivery "
10556 "of a signal whose action is to invoke a signal handler or to terminate a "
10557 "process."
10558 msgstr ""
10559 "B<sigsuspend>()  は、呼び出し元プロセスのシグナルマスクを I<mask> で指定され"
10560 "たマスクに一時的に置き換え、 シグナルハンドラの起動もしくはプロセスの終了がア"
10561 "クションとして 設定されたシグナルが配送されるまで、そのプロセスを停止する。"
10562
10563 #. type: Plain text
10564 #: build/C/man2/sigsuspend.2:62
10565 msgid ""
10566 "If the signal terminates the process, then B<sigsuspend>()  does not "
10567 "return.  If the signal is caught, then B<sigsuspend>()  returns after the "
10568 "signal handler returns, and the signal mask is restored to the state before "
10569 "the call to B<sigsuspend>()."
10570 msgstr ""
10571 "シグナルがプロセスを終了させるものの場合、 B<sigsuspend>()  は返らない。シグ"
10572 "ナルが捕捉された場合、 シグナルハンドラの処理が終わった後に B<sigsuspend>()  "
10573 "は返り、シグナルマスクは B<sigsuspend>()  が呼び出される前の状態に復元され"
10574 "る。"
10575
10576 #. type: Plain text
10577 #: build/C/man2/sigsuspend.2:70
10578 msgid ""
10579 "It is not possible to block B<SIGKILL> or B<SIGSTOP>; specifying these "
10580 "signals in I<mask>, has no effect on the process's signal mask."
10581 msgstr ""
10582 "B<SIGKILL> と B<SIGSTOP> を禁止 (block) することはできない; これらのシグナル"
10583 "を I<mask> に指定しても、プロセスのシグナルマスクは影響を受けない。"
10584
10585 #. type: Plain text
10586 #: build/C/man2/sigsuspend.2:76
10587 msgid ""
10588 "B<sigsuspend>()  always returns -1, with I<errno> set to indicate the error "
10589 "(normally, B<EINTR>)."
10590 msgstr ""
10591 "B<sigsuspend>() は常に -1 を返し、 I<errno> にエラーの原因を示す値 (通常は "
10592 "B<EINTR>) を設定する。"
10593
10594 #. type: Plain text
10595 #: build/C/man2/sigsuspend.2:81
10596 msgid ""
10597 "I<mask> points to memory which is not a valid part of the process address "
10598 "space."
10599 msgstr ""
10600 "I<mask> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
10601
10602 #. type: Plain text
10603 #: build/C/man2/sigsuspend.2:84
10604 msgid "The call was interrupted by a signal."
10605 msgstr "システムコールはシグナルにより割り込まれた。"
10606
10607 #. type: Plain text
10608 #: build/C/man2/sigsuspend.2:104
10609 msgid ""
10610 "Normally, B<sigsuspend>()  is used in conjunction with B<sigprocmask>(2)  in "
10611 "order to prevent delivery of a signal during the execution of a critical "
10612 "code section.  The caller first blocks the signals with B<sigprocmask>(2).  "
10613 "When the critical code has completed, the caller then waits for the signals "
10614 "by calling B<sigsuspend>()  with the signal mask that was returned by "
10615 "B<sigprocmask>(2)  (in the I<oldset> argument)."
10616 msgstr ""
10617 "B<sigsuspend>()  は、通常、クリティカル・コード・セクション (critical code "
10618 "section) の 実行中にシグナルが配送されるのを防止するために、 "
10619 "B<sigprocmask>(2)  と組み合わせて使用される。 まず最初に、呼び出し元は "
10620 "B<sigprocmask>(2)  を使ってシグナルを禁止する。 クリティカル・コードが完了す"
10621 "ると、呼び出し元は B<sigprocmask>(2)  が (I<oldset> 引き数で) 返すシグナルマ"
10622 "スクを指定して B<sigsuspend>()  を呼び出すことで、クリティカル・コード実行中"
10623 "に発生した シグナルを待つことができる。"
10624
10625 #. type: Plain text
10626 #: build/C/man2/sigsuspend.2:118
10627 msgid ""
10628 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10629 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10630 msgstr ""
10631 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10632 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10633
10634 #. type: TH
10635 #: build/C/man3/sigvec.3:26
10636 #, no-wrap
10637 msgid "SIGVEC"
10638 msgstr "SIGVEC"
10639
10640 #. type: Plain text
10641 #: build/C/man3/sigvec.3:29
10642 msgid "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD signal API"
10643 msgstr "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD 版シグナル API"
10644
10645 #. type: Plain text
10646 #: build/C/man3/sigvec.3:33
10647 msgid ""
10648 "B<int sigvec(int >I<sig>B<, const struct sigvec *>I<vec>B<, struct sigvec "
10649 "*>I<ovec>B<);>"
10650 msgstr ""
10651 "B<int sigvec(int >I<sig>B<, const struct sigvec *>I<vec>B<, struct sigvec "
10652 "*>I<ovec>B<);>"
10653
10654 #. type: Plain text
10655 #: build/C/man3/sigvec.3:35
10656 msgid "B<int sigmask(int >I<signum>B<);>"
10657 msgstr "B<int sigmask(int >I<signum>B<);>"
10658
10659 #. type: Plain text
10660 #: build/C/man3/sigvec.3:37
10661 msgid "B<int sigblock(int >I<mask>B<);>"
10662 msgstr "B<int sigblock(int >I<mask>B<);>"
10663
10664 #. type: Plain text
10665 #: build/C/man3/sigvec.3:39
10666 msgid "B<int sigsetmask(int >I<mask>B<);>"
10667 msgstr "B<int sigsetmask(int >I<mask>B<);>"
10668
10669 #. type: Plain text
10670 #: build/C/man3/sigvec.3:41
10671 msgid "B<int siggetmask(void);>"
10672 msgstr "B<int siggetmask(void);>"
10673
10674 #. type: Plain text
10675 #: build/C/man3/sigvec.3:49
10676 msgid "All functions shown above: _BSD_SOURCE"
10677 msgstr "上記の全ての関数: _BSD_SOURCE"
10678
10679 #. type: Plain text
10680 #: build/C/man3/sigvec.3:56
10681 msgid ""
10682 "These functions are provided in glibc as a compatibility interface for "
10683 "programs that make use of the historical BSD signal API.  This API is "
10684 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
10685 "B<sigprocmask>(2), etc.)."
10686 msgstr ""
10687 "これらの関数は、昔ながらの BSD 版シグナル API を使用しているプログラム に対し"
10688 "て互換性のあるインタフェースを glibc で提供するものである。 この API は過去の"
10689 "ものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>(2), "
10690 "B<sigprocmask>(2)  など) を使用すべきである。"
10691
10692 #. type: Plain text
10693 #: build/C/man3/sigvec.3:81
10694 msgid ""
10695 "The B<sigvec>()  function sets and/or gets the disposition of the signal "
10696 "I<sig> (like the POSIX B<sigaction>(2)).  If I<vec> is not NULL, it points "
10697 "to a I<sigvec> structure that defines the new disposition for I<sig>.  If "
10698 "I<ovec> is not NULL, it points to a I<sigvec> structure that is used to "
10699 "return the previous disposition of I<sig>.  To obtain the current "
10700 "disposition of I<sig> without changing it, specify NULL for I<vec>, and a "
10701 "non-null pointer for I<ovec>."
10702 msgstr ""
10703 "関数 B<sigvec>()  は、(POSIX の B<sigaction>(2)  と同様に) シグナル I<sig> の"
10704 "動作の設定・取得を行う。 I<vec> は、NULL 以外の場合、 I<sig> の新しい動作を定"
10705 "義した I<sigvec> 構造体へのポインタである。 I<ovec> は、NULL 以外の場合、 "
10706 "I<sig> の変更前の動作を返すために使用される I<sigvec> 構造体へのポインタであ"
10707 "る。 I<sig> の動作を変更せずに現在の動作を取得するためには、 I<vec> に NULL "
10708 "を指定し、 I<ovec> に NULL でないポインタを指定すればよい。"
10709
10710 #. type: Plain text
10711 #: build/C/man3/sigvec.3:91
10712 msgid "The I<sigvec> structure has the following form:"
10713 msgstr "I<sigvec> 構造体は以下の通りである:"
10714
10715 #. type: Plain text
10716 #: build/C/man3/sigvec.3:99
10717 #, no-wrap
10718 msgid ""
10719 "struct sigvec {\n"
10720 "    void (*sv_handler)(int); /* Signal disposition */\n"
10721 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10722 "    int    sv_flags;         /* Flags */\n"
10723 "};\n"
10724 msgstr ""
10725 "struct sigvec {\n"
10726 "    void (*sv_handler)(int); /* Signal disposition */\n"
10727 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10728 "    int    sv_flags;         /* Flags */\n"
10729 "};\n"
10730
10731 #. type: Plain text
10732 #: build/C/man3/sigvec.3:110
10733 msgid ""
10734 "The I<sv_handler> field specifies the disposition of the signal, and is "
10735 "either: the address of a signal handler function; B<SIG_DFL>, meaning the "
10736 "default disposition applies for the signal; or B<SIG_IGN>, meaning that the "
10737 "signal is ignored."
10738 msgstr ""
10739 "I<sv_handler> フィールドはシグナルの動作を指定するもので、 シグナルハンドラ関"
10740 "数のアドレスか、 B<SIG_DFL> と B<SIG_IGN> のいずれかを指定できる。 "
10741 "B<SIG_DFL> はシグナルに適用されるデフォルトの動作を意味し、 B<SIG_IGN> はシグ"
10742 "ナルを無視することを意味する。"
10743
10744 #. type: Plain text
10745 #: build/C/man3/sigvec.3:124
10746 msgid ""
10747 "If I<sv_handler> specifies the address of a signal handler, then I<sv_mask> "
10748 "specifies a mask of signals that are to be blocked while the handler is "
10749 "executing.  In addition, the signal for which the handler is invoked is also "
10750 "blocked.  Attempts to block B<SIGKILL> or B<SIGSTOP> are silently ignored."
10751 msgstr ""
10752 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_mask> はハン"
10753 "ドラが実行中にブロックされるべきシグナルのマスクを指定する。 また、ハンドラを"
10754 "起動したシグナル自身はブロックされる。 B<SIGKILL> か B<SIGSTOP> をブロックし"
10755 "ようとした場合には、黙って無視される。"
10756
10757 #. type: Plain text
10758 #: build/C/man3/sigvec.3:131
10759 msgid ""
10760 "If I<sv_handler> specifies the address of a signal handler, then the "
10761 "I<sv_flags> field specifies flags controlling what happens when the handler "
10762 "is called.  This field may contain zero or more of the following flags:"
10763 msgstr ""
10764 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_flags> フィー"
10765 "ルドはハンドラが呼ばれた際の挙動を制御するフラグを指定する。 このフィールドに"
10766 "は、0 か、以下のフラグを 1個以上指定できる:"
10767
10768 #. type: TP
10769 #: build/C/man3/sigvec.3:131
10770 #, no-wrap
10771 msgid "B<SV_INTERRUPT>"
10772 msgstr "B<SV_INTERRUPT>"
10773
10774 #. type: Plain text
10775 #: build/C/man3/sigvec.3:139
10776 msgid ""
10777 "If the signal handler interrupts a blocking system call, then upon return "
10778 "from the handler the system call will not be restarted: instead it will fail "
10779 "with the error B<EINTR>.  If this flag is not specified, then system calls "
10780 "are restarted by default."
10781 msgstr ""
10782 "シグナルハンドラが停止中のシステムコールを中断した場合、 ハンドラから復帰して"
10783 "も、システムコールは再開されず、 エラー B<EINTR> で失敗する。 このフラグを指"
10784 "定しなかった場合、システムコールは デフォルトで再開される。"
10785
10786 #. type: TP
10787 #: build/C/man3/sigvec.3:139
10788 #, no-wrap
10789 msgid "B<SV_RESETHAND>"
10790 msgstr "B<SV_RESETHAND>"
10791
10792 #. type: Plain text
10793 #: build/C/man3/sigvec.3:148
10794 msgid ""
10795 "Reset the disposition of the signal to the default before calling the signal "
10796 "handler.  If this flag is not specified, then the handler remains "
10797 "established until explicitly removed by a later call to B<sigvec>()  or "
10798 "until the process performs an B<execve>(2)."
10799 msgstr ""
10800 "シグナルハンドラを呼び出す前にシグナルの動作を デフォルトにリセットする。 こ"
10801 "のフラグを指定しなかった場合、もう一度 B<sigvec>()  を呼び出して明示的に削除"
10802 "されるか、プロセスが B<execve>(2)  を実行するまで、ハンドラは設定されたままと"
10803 "なる。"
10804
10805 #. type: TP
10806 #: build/C/man3/sigvec.3:148
10807 #, no-wrap
10808 msgid "B<SV_ONSTACK>"
10809 msgstr "B<SV_ONSTACK>"
10810
10811 #. type: Plain text
10812 #: build/C/man3/sigvec.3:155
10813 msgid ""
10814 "Handle the signal on the alternate signal stack (historically established "
10815 "under BSD using the obsolete B<sigstack>()  function; the POSIX replacement "
10816 "is B<sigaltstack>(2))."
10817 msgstr ""
10818 "代替シグナルスタック上でシグナルハンドラを実行する (歴史的に、BSD では代替シ"
10819 "グナルスタックは廃止された関数 B<sigstack>()  を使って設定する。POSIX では、"
10820 "代わりに B<sigaltstack>(2)  を使用する)。"
10821
10822 #. type: Plain text
10823 #: build/C/man3/sigvec.3:165
10824 msgid ""
10825 "The B<sigmask>()  macro constructs and returns a \"signal mask\" for "
10826 "I<signum>.  For example, we can initialize the I<vec.sv_mask> field given to "
10827 "B<sigvec>()  using code such as the following:"
10828 msgstr ""
10829 "マクロ B<sigmask>()  は I<signum> に対する「シグナルマスク」を構成して返す。 "
10830 "例えば、以下のようなコードを使うと、 B<sigvec>()  に渡す I<vec.sv_mask> を初"
10831 "期化できる。"
10832
10833 #. type: Plain text
10834 #: build/C/man3/sigvec.3:170
10835 #, no-wrap
10836 msgid ""
10837 "    vec.sv_mask = sigmask(SIGQUIT) | sigmask(SIGABRT);\n"
10838 "                /* Block SIGQUIT and SIGABRT during\n"
10839 "                   handler execution */\n"
10840 msgstr ""
10841 "    vec.sv_mask = sigmask(SIGQUIT) | sigmask(SIGABRT);\n"
10842 "                /* Block SIGQUIT and SIGABRT during\n"
10843 "                   handler execution */\n"
10844
10845 #. type: Plain text
10846 #: build/C/man3/sigvec.3:185
10847 msgid ""
10848 "The B<sigblock>()  function adds the signals in I<mask> to the process's "
10849 "signal mask (like POSIX I<sigprocmask(SIG_BLOCK)>), and returns the "
10850 "process's previous signal mask.  Attempts to block B<SIGKILL> or B<SIGSTOP> "
10851 "are silently ignored."
10852 msgstr ""
10853 "B<sigblock>()  関数は、 I<mask> にあるシグナルをプロセスのシグナルマスクに追"
10854 "加し (POSIX の I<sigprocmask(SIG_BLOCK)> と同様)、変更前のプロセスのシグナル"
10855 "マスクを返す。 B<SIGKILL> や B<SIGSTOP> をブロックしようとした場合には、黙っ"
10856 "て無視される。"
10857
10858 #. type: Plain text
10859 #: build/C/man3/sigvec.3:193
10860 msgid ""
10861 "The B<sigsetmask>()  function sets the process's signal mask to the value "
10862 "given in I<mask> (like POSIX I<sigprocmask(SIG_SETMASK)>), and returns the "
10863 "process's previous signal mask."
10864 msgstr ""
10865 "B<sigsetmask>()  関数はプロセスのシグナルマスクを I<mask> で指定された値に設"
10866 "定し (POSIX の I<sigprocmask(SIG_SETMASK)> と同様)、変更前のプロセスのシグナ"
10867 "ルマスクを返す。"
10868
10869 #. type: Plain text
10870 #: build/C/man3/sigvec.3:199
10871 msgid ""
10872 "The B<siggetmask>()  function returns the process's current signal mask.  "
10873 "This call is equivalent to I<sigblock(0)>."
10874 msgstr ""
10875 "B<siggetmask>()  関数はプロセスの現在のシグナルマスクを返す。この関数は "
10876 "I<sigblock(0)> と等価である。"
10877
10878 #. type: Plain text
10879 #: build/C/man3/sigvec.3:205
10880 msgid ""
10881 "The B<sigvec>()  function returns 0 on success; on error, it returns -1 and "
10882 "sets I<errno> to indicate the error."
10883 msgstr ""
10884 "B<sigvec>()  関数は成功すると 0 を返す。エラーの場合、-1 を返し、 I<errno> に"
10885 "エラーを示す値をセットする。"
10886
10887 #. type: Plain text
10888 #: build/C/man3/sigvec.3:211
10889 msgid ""
10890 "The B<sigblock>()  and B<sigsetmask>()  functions return the previous signal "
10891 "mask."
10892 msgstr "B<sigblock>()  と B<sigsetmask>()  は変更前のシグナルマスクを返す。"
10893
10894 #. type: Plain text
10895 #: build/C/man3/sigvec.3:216
10896 msgid "The B<sigmask>()  macro returns the signal mask for I<signum>."
10897 msgstr "B<sigmask>() マクロは I<signum> のシグナルマスクを返す。"
10898
10899 #. type: Plain text
10900 #: build/C/man3/sigvec.3:221
10901 msgid "See the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
10902 msgstr "B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」の節を参照。"
10903
10904 #. type: Plain text
10905 #: build/C/man3/sigvec.3:230
10906 msgid ""
10907 "The B<sigvec>(), B<sigblock>(), B<sigsetmask>(), and B<siggetmask>()  "
10908 "functions are thread-safe."
10909 msgstr ""
10910 "関数 B<sigvec>(), B<sigblock>(), B<sigsetmask>(), B<siggetmask>() はスレッド"
10911 "セーフである。"
10912
10913 #. type: Plain text
10914 #: build/C/man3/sigvec.3:234
10915 msgid "The B<sigmask>()  macro is thread-safe."
10916 msgstr "B<sigmask>() マクロはスレッドセーフである。"
10917
10918 #. type: Plain text
10919 #: build/C/man3/sigvec.3:241
10920 msgid ""
10921 "Starting with version 2.21, the GNU C library no longer exports the "
10922 "B<sigvec>()  function as part of the ABI.  (To ensure backward "
10923 "compatibility, the glibc symbol versioning scheme continues to export the "
10924 "interface to binaries linked against older versions of the library.)"
10925 msgstr ""
10926
10927 #. type: Plain text
10928 #: build/C/man3/sigvec.3:247
10929 msgid ""
10930 "All of these functions were in 4.3BSD, except B<siggetmask>(), whose origin "
10931 "is unclear.  These functions are obsolete: do not use them in new programs."
10932 msgstr ""
10933 "これらの関数のうち B<siggetmask>()  以外の全ては 4.3BSD にあった。 "
10934 "B<siggetmask>()  の出自ははっきりしない。 これらの関数は廃止予定であり、新し"
10935 "いプログラムでは使用しないこと。"
10936
10937 #. type: Plain text
10938 #: build/C/man3/sigvec.3:264
10939 msgid ""
10940 "On 4.3BSD, the B<signal>()  function provided reliable semantics (as when "
10941 "calling B<sigvec>()  with I<vec.sv_mask> equal to 0).  On System V, "
10942 "B<signal>()  provides unreliable semantics.  POSIX.1-2001 leaves these "
10943 "aspects of B<signal>()  unspecified.  See B<signal>(2)  for further details."
10944 msgstr ""
10945 "4.3BSD では、信頼性のあるシグナル処理機構を提供する (I<vec.sv_mask> を 0 で "
10946 "B<sigvec>()  を呼び出したときと同様)。 System V が提供する処理機構は信頼性の"
10947 "ないものである。 POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままと"
10948 "なっている。 さらなる詳細については B<signal>(2)  を参照。"
10949
10950 #. type: Plain text
10951 #: build/C/man3/sigvec.3:282
10952 msgid ""
10953 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10954 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10955 msgstr ""
10956 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10957 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10958
10959 #. type: TH
10960 #: build/C/man3/sigwait.3:26
10961 #, no-wrap
10962 msgid "SIGWAIT"
10963 msgstr "SIGWAIT"
10964
10965 #. type: Plain text
10966 #: build/C/man3/sigwait.3:29
10967 msgid "sigwait - wait for a signal"
10968 msgstr "sigwait - シグナルを待つ"
10969
10970 #. type: Plain text
10971 #: build/C/man3/sigwait.3:34
10972 #, no-wrap
10973 msgid "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10974 msgstr "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10975
10976 #. type: Plain text
10977 #: build/C/man3/sigwait.3:44
10978 msgid ""
10979 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10980 msgstr ""
10981 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10982
10983 #. type: Plain text
10984 #: build/C/man3/sigwait.3:56
10985 msgid ""
10986 "The B<sigwait>()  function suspends execution of the calling thread until "
10987 "one of the signals specified in the signal set I<set> becomes pending.  The "
10988 "function accepts the signal (removes it from the pending list of signals), "
10989 "and returns the signal number in I<sig>."
10990 msgstr ""
10991 "B<sigwait>()  関数は、シグナル集合 I<set> で指定されたシグナルの一つが処理待"
10992 "ち (pending) になるまで、 呼び出したスレッドの実行を中断する。 この関数はその"
10993 "シグナルを受け取り (つまり、処理待ちのシグナルのリスト からそのシグナルを削除"
10994 "し)、そのシグナル番号を I<sig> に格納して返す。"
10995
10996 #. type: Plain text
10997 #: build/C/man3/sigwait.3:62
10998 msgid ""
10999 "The operation of B<sigwait>()  is the same as B<sigwaitinfo>(2), except that:"
11000 msgstr ""
11001 "B<sigwait>()  の動作は B<sigwaitinfo>(2)  と同じだが、以下の点が異なる。"
11002
11003 #. type: Plain text
11004 #: build/C/man3/sigwait.3:67
11005 msgid ""
11006 "B<sigwait>()  returns only the signal number, rather than a I<siginfo_t> "
11007 "structure describing the signal."
11008 msgstr ""
11009 "B<sigwait>()  は、シグナルの内容を表す I<siginfo_t> 構造体を返すのではなく、"
11010 "単にシグナル番号を返す。"
11011
11012 #. type: Plain text
11013 #: build/C/man3/sigwait.3:69
11014 msgid "The return values of the two functions are different."
11015 msgstr "返り値が B<sigwaitinfo>(2)  とは異なる。"
11016
11017 #. type: Plain text
11018 #: build/C/man3/sigwait.3:74
11019 msgid ""
11020 "On success, B<sigwait>()  returns 0.  On error, it returns a positive error "
11021 "number (listed in ERRORS)."
11022 msgstr ""
11023 "成功すると、 B<sigwait>()  は 0 を返す。 エラーの場合、(「エラー」の節のリス"
11024 "トにある) 正のエラー番号を返す。"
11025
11026 #.  Does not occur for glibc.
11027 #. type: Plain text
11028 #: build/C/man3/sigwait.3:80
11029 msgid "I<set> contains an invalid signal number."
11030 msgstr "I<set> に無効なシグナル番号が入っている。"
11031
11032 #. type: Plain text
11033 #: build/C/man3/sigwait.3:85
11034 msgid "The B<sigwait>()  function is thread-safe."
11035 msgstr "B<sigwait>() 関数はスレッドセーフである。"
11036
11037 #. type: Plain text
11038 #: build/C/man3/sigwait.3:91
11039 msgid "B<sigwait>()  is implemented using B<sigtimedwait>(2)."
11040 msgstr "B<sigwait>()  は B<sigtimedwait>(2)  を使って実装されている。"
11041
11042 #. type: Plain text
11043 #: build/C/man3/sigwait.3:94
11044 msgid "See B<pthread_sigmask>(3)."
11045 msgstr "B<pthread_sigmask>(3)  を参照。"
11046
11047 #. type: Plain text
11048 #: build/C/man3/sigwait.3:102
11049 msgid ""
11050 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
11051 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
11052 msgstr ""
11053 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
11054 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
11055
11056 #. type: TH
11057 #: build/C/man2/sigwaitinfo.2:25
11058 #, no-wrap
11059 msgid "SIGWAITINFO"
11060 msgstr "SIGWAITINFO"
11061
11062 #. type: Plain text
11063 #: build/C/man2/sigwaitinfo.2:28
11064 msgid "sigwaitinfo, sigtimedwait - synchronously wait for queued signals"
11065 msgstr "sigwaitinfo, sigtimedwait - キューに入れられたシグナルを同期して待つ"
11066
11067 #. type: Plain text
11068 #: build/C/man2/sigwaitinfo.2:33
11069 #, no-wrap
11070 msgid "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
11071 msgstr "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
11072
11073 #. type: Plain text
11074 #: build/C/man2/sigwaitinfo.2:36
11075 #, no-wrap
11076 msgid ""
11077 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
11078 "B<                 const struct timespec *>I<timeout>B<);>\n"
11079 msgstr ""
11080 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
11081 "B<                 const struct timespec *>I<timeout>B<);>\n"
11082
11083 #. type: Plain text
11084 #: build/C/man2/sigwaitinfo.2:46
11085 msgid "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11086 msgstr ""
11087 "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11088
11089 #. type: Plain text
11090 #: build/C/man2/sigwaitinfo.2:56
11091 msgid ""
11092 "B<sigwaitinfo>()  suspends execution of the calling thread until one of the "
11093 "signals in I<set> is pending (If one of the signals in I<set> is already "
11094 "pending for the calling thread, B<sigwaitinfo>()  will return immediately.)"
11095 msgstr ""
11096 "B<sigwaitinfo>()  は I<set> のうちのどれかのシグナルが処理待ちになるまで、 呼"
11097 "び出しスレッドの実行を一時停止する (呼び出しスレッドに対して I<set> のうちの"
11098 "どれかのシグナルが既に待機中 (pending) である場合、 B<sigwaitinfo>()  はすぐ"
11099 "に戻る)。"
11100
11101 #. type: Plain text
11102 #: build/C/man2/sigwaitinfo.2:68
11103 msgid ""
11104 "B<sigwaitinfo>()  removes the signal from the set of pending signals and "
11105 "returns the signal number as its function result.  If the I<info> argument "
11106 "is not NULL, then the buffer that it points to is used to return a structure "
11107 "of type I<siginfo_t> (see B<sigaction>(2))  containing information about the "
11108 "signal."
11109 msgstr ""
11110 "B<sigwaitinfo>()  はそのシグナルを待機中のシグナルの集合から削除し、関数の結"
11111 "果としてシグナル番号を返す。 I<info> 引き数が NULL でない場合、配送されたシグ"
11112 "ナルの情報が入った I<siginfo_t> 型 (B<sigaction>(2)  を参照) の構造体を "
11113 "I<info> が指すバッファに入れて返す。"
11114
11115 #. type: Plain text
11116 #: build/C/man2/sigwaitinfo.2:76
11117 msgid ""
11118 "If multiple signals in I<set> are pending for the caller, the signal that is "
11119 "retrieved by B<sigwaitinfo>()  is determined according to the usual ordering "
11120 "rules; see B<signal>(7)  for further details."
11121 msgstr ""
11122 "呼び出し元に対して I<set> の複数のシグナルが処理待ちの場合、 "
11123 "B<sigwaitinfo>() で取得するシグナルは通常の順序決定ルールに基づいて決定され"
11124 "る。 詳細は B<signal>(7) を参照のこと。"
11125
11126 #. type: Plain text
11127 #: build/C/man2/sigwaitinfo.2:88
11128 msgid ""
11129 "B<sigtimedwait>()  operates in exactly the same way as B<sigwaitinfo>()  "
11130 "except that it has an additional argument, I<timeout>, which specifies the "
11131 "interval for which the thread is suspended waiting for a signal.  (This "
11132 "interval will be rounded up to the system clock granularity, and kernel "
11133 "scheduling delays mean that the interval may overrun by a small amount.)  "
11134 "This argument is of the following type:"
11135 msgstr ""
11136 "B<sigtimedwait>() は、 B<sigwaitinfo>() と次の点を除いて全く同じように動作す"
11137 "る。この関数にはもう 1 つの引き数 I<timeout> があり、シグナル待ちでスレッドが"
11138 "一時停止する時間を指定することができる(この時間はシステムクロックの粒度に切り"
11139 "上げられ、カーネルのスケジューリング遅延により少しだけ長くなる可能性がある)。"
11140 "この引き数の型は以下のとおりである:"
11141
11142 #. type: Plain text
11143 #: build/C/man2/sigwaitinfo.2:95
11144 #, no-wrap
11145 msgid ""
11146 "struct timespec {\n"
11147 "    long    tv_sec;         /* seconds */\n"
11148 "    long    tv_nsec;        /* nanoseconds */\n"
11149 "}\n"
11150 msgstr ""
11151 "struct timespec {\n"
11152 "    long    tv_sec;         /* 秒 */\n"
11153 "    long    tv_nsec;        /* ナノ秒 */\n"
11154 "}\n"
11155
11156 #. type: Plain text
11157 #: build/C/man2/sigwaitinfo.2:105
11158 msgid ""
11159 "If both fields of this structure are specified as 0, a poll is performed: "
11160 "B<sigtimedwait>()  returns immediately, either with information about a "
11161 "signal that was pending for the caller, or with an error if none of the "
11162 "signals in I<set> was pending."
11163 msgstr ""
11164 "この構造体の 2 つのフィールドがともに 0 の場合、ポーリングが行われる: "
11165 "B<sigtimedwait>()  は、呼び出し側プロセスに対して 待機しているシグナルの情報"
11166 "を返して戻るか、 I<set> のうちのどのシグナルも待機していない場合はエラーを返"
11167 "して戻る。"
11168
11169 #. type: Plain text
11170 #: build/C/man2/sigwaitinfo.2:114
11171 msgid ""
11172 "On success, both B<sigwaitinfo>()  and B<sigtimedwait>()  return a signal "
11173 "number (i.e., a value greater than zero).  On failure both calls return -1, "
11174 "with I<errno> set to indicate the error."
11175 msgstr ""
11176 "成功した場合、 B<sigwaitinfo>()  と B<sigtimedwait>()  はシグナル番号 (すなわ"
11177 "ち 0 より大きい数) を返す。 失敗した場合、2 つの関数は -1 を返し、 I<errno> "
11178 "はエラーを表す値に設定される。"
11179
11180 #. type: Plain text
11181 #: build/C/man2/sigwaitinfo.2:123
11182 msgid ""
11183 "No signal in I<set> was became pending within the I<timeout> period "
11184 "specified to B<sigtimedwait>()."
11185 msgstr ""
11186 "I<set> のうちのどのシグナルも B<sigtimedwait>()  に指定された I<timeout> の期"
11187 "間内に処理待ちにならなかった。"
11188
11189 #. type: Plain text
11190 #: build/C/man2/sigwaitinfo.2:129
11191 msgid ""
11192 "The wait was interrupted by a signal handler; see B<signal>(7).  (This "
11193 "handler was for a signal other than one of those in I<set>.)"
11194 msgstr ""
11195 "シグナル待ちがシグナルハンドラによって中断 (interrupt) された (このハンドラ"
11196 "は I<set> にあるシグナル以外のものである)。 B<signal>(7)  参照。"
11197
11198 #. type: Plain text
11199 #: build/C/man2/sigwaitinfo.2:133
11200 msgid "I<timeout> was invalid."
11201 msgstr "I<timeout> が不正である。"
11202
11203 #. type: Plain text
11204 #: build/C/man2/sigwaitinfo.2:153
11205 msgid ""
11206 "In normal usage, the calling program blocks the signals in I<set> via a "
11207 "prior call to B<sigprocmask>(2)  (so that the default disposition for these "
11208 "signals does not occur if they become pending between successive calls to "
11209 "B<sigwaitinfo>()  or B<sigtimedwait>())  and does not establish handlers for "
11210 "these signals.  In a multithreaded program, the signal should be blocked in "
11211 "all threads, in order to prevent the signal being treated according to its "
11212 "default disposition in a thread other than the one calling B<sigwaitinfo>()  "
11213 "or B<sigtimedwait>())."
11214 msgstr ""
11215 "通常の使用法では、呼び出し側プロセスはこれらの関数より先に "
11216 "B<sigprocmask>(2)  の呼び出すことにより I<set> に含まれるシグナルをブロック"
11217 "し (そのためにこれらのシグナルがこの後に続く B<sigwaitinfo>()  や "
11218 "B<sigtimedwait>()  の呼び出しの間に処理待ちになった場合には、デフォルトの動作"
11219 "は行われず)、 これらのシグナルに対するハンドラは設定しない。 マルチスレッドプ"
11220 "ログラムでは、 B<sigwaitinfo>()  や B<sigtimedwait>() を呼び出したスレッド以"
11221 "外のスレッドで、そのシグナルがデフォルトの動作に基いて処理されないように、全"
11222 "てのスレッドで該当シグナルをブロックすべきである。"
11223
11224 #. type: Plain text
11225 #: build/C/man2/sigwaitinfo.2:158
11226 msgid ""
11227 "The set of signals that is pending for a given thread is the union of the "
11228 "set of signals that is pending specifically for that thread and the set of "
11229 "signals that is pending for the process as a whole (see B<signal>(7))."
11230 msgstr ""
11231 "指定されたスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体宛ての"
11232 "処理待ちのシグナル集合と、プロセス全体宛ての 処理待ちのシグナル集合をあわせた"
11233 "ものである (B<signal>(7)  参照)。"
11234
11235 #. type: Plain text
11236 #: build/C/man2/sigwaitinfo.2:164
11237 msgid "Attempts to wait for B<SIGKILL> and B<SIGSTOP> are silently ignored."
11238 msgstr "B<SIGKILL> と B<SIGSTOP> を待とうとした場合、黙って無視される。"
11239
11240 #. type: Plain text
11241 #: build/C/man2/sigwaitinfo.2:173
11242 msgid ""
11243 "If multiple threads of a process are blocked waiting for the same signal(s) "
11244 "in B<sigwaitinfo>()  or B<sigtimedwait>(), then exactly one of the threads "
11245 "will actually receive the signal if it becomes pending for the process as a "
11246 "whole; which of the threads receives the signal is indeterminate."
11247 msgstr ""
11248 "一つのプロセス内の複数のスレッドが B<sigwaitinfo>()  や B<sigtimedwait>()  で"
11249 "同じシグナルを待って停止した場合、 プロセス全体宛てのシグナルが処理待ちになる"
11250 "と、複数のスレッドのうち一つだけが 実際にそのシグナルを受信することになる。 "
11251 "どのスレッドがシグナルを受信するかは決まっていない。"
11252
11253 #. type: Plain text
11254 #: build/C/man2/sigwaitinfo.2:183
11255 msgid ""
11256 "POSIX leaves the meaning of a NULL value for the I<timeout> argument of "
11257 "B<sigtimedwait>()  unspecified, permitting the possibility that this has the "
11258 "same meaning as a call to B<sigwaitinfo>(), and indeed this is what is done "
11259 "on Linux."
11260 msgstr ""
11261 "POSIX では B<sigtimedwait>()  の引き数 I<timeout> の値を NULL にした場合の意"
11262 "味を未定義としている。 B<sigwaitinfo>()  を呼び出したのと同じ意味としてもよい"
11263 "ことになっており、 実際 Linux ではこのように動作する。"
11264
11265 #. type: Plain text
11266 #: build/C/man2/sigwaitinfo.2:188
11267 msgid ""
11268 "On Linux, B<sigwaitinfo>()  is a library function implemented on top of "
11269 "B<sigtimedwait>()."
11270 msgstr ""
11271 "Linux では、 B<sigwaitinfo>()  は B<sigtimedwait>()  を用いて実装されたライブ"
11272 "ラリ関数である。"
11273
11274 #. type: Plain text
11275 #: build/C/man2/sigwaitinfo.2:201
11276 #, fuzzy
11277 #| msgid ""
11278 #| "The underlying Linux system call requires an additional argument, "
11279 #| "I<size_t sizemask>, which specifies the size of the I<mask> argument.  "
11280 #| "The glibc B<signalfd>()  wrapper function does not include this argument, "
11281 #| "since it provides the required value for the underlying system call."
11282 msgid ""
11283 "The raw B<sigtimedwait>()  system call has a fifth argument, I<size_t "
11284 "sigsetsize>, which specifies the size in bytes of the I<set> argument.  The "
11285 "glibc B<sigtimedwait>()  wrapper function specifies this argument as a fixed "
11286 "value (equal to I<sizeof(sigset_t)>)."
11287 msgstr ""
11288 "実際の Linux のシステムコールでは I<size_t sizemask> という引き数が追加で必要"
11289 "である。この引き数で I<mask> のサイズを指定する。 glibc の B<signalfd>()  "
11290 "ラッパー関数にはこの引き数は含まれず、 ラッパー関数が必要な値を計算して内部で"
11291 "呼び出すシステムコールに提供する。"
11292
11293 #. type: Plain text
11294 #: build/C/man2/sigwaitinfo.2:213
11295 msgid ""
11296 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
11297 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), "
11298 "B<signal>(7), B<time>(7)"
11299 msgstr ""
11300 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
11301 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), "
11302 "B<signal>(7), B<time>(7)"
11303
11304 #. type: TH
11305 #: build/C/man3/sysv_signal.3:25
11306 #, no-wrap
11307 msgid "SYSV_SIGNAL"
11308 msgstr "SYSV_SIGNAL"
11309
11310 #. type: TH
11311 #: build/C/man3/sysv_signal.3:25
11312 #, no-wrap
11313 msgid "2014-01-06"
11314 msgstr "2014-01-06"
11315
11316 #. type: Plain text
11317 #: build/C/man3/sysv_signal.3:28
11318 msgid "sysv_signal - signal handling with System V semantics"
11319 msgstr "sysv_signal - System V 方式のシグナル処理"
11320
11321 #. type: Plain text
11322 #: build/C/man3/sysv_signal.3:30
11323 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
11324 msgstr "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */"
11325
11326 #. type: Plain text
11327 #: build/C/man3/sysv_signal.3:36
11328 msgid ""
11329 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
11330 msgstr ""
11331 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
11332
11333 #. type: Plain text
11334 #: build/C/man3/sysv_signal.3:41
11335 msgid ""
11336 "The B<sysv_signal>()  function takes the same arguments, and performs the "
11337 "same task, as B<signal>(2)."
11338 msgstr ""
11339 "B<sysv_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
11340 "る。"
11341
11342 #. type: Plain text
11343 #: build/C/man3/sysv_signal.3:51
11344 msgid ""
11345 "However B<sysv_signal>()  provides the System V unreliable signal semantics, "
11346 "that is: a) the disposition of the signal is reset to the default when the "
11347 "handler is invoked; b) delivery of further instances of the signal is not "
11348 "blocked while the signal handler is executing; and c) if the handler "
11349 "interrupts (certain) blocking system calls, then the system call is not "
11350 "automatically restarted."
11351 msgstr ""
11352 "しかしながら、 B<sysv_signal>()  は System V の信頼性に欠けるシグナル処理方式"
11353 "を提供している。 信頼性に欠けるシグナル処理方式は以下の特徴を持つ。 a) ハンド"
11354 "ラが起動されると、シグナルの処理方法 (disposition) が デフォルトにリセットさ"
11355 "れる、 b) シグナルハンドラの実行中は、それ以降に発生した同じシグナルの配送が "
11356 "ブロックされない、 c) ハンドラが停止中の (blocking している) システムコールを"
11357 "中断した場合、 自動的に再開されないシステムコールがある。"
11358
11359 #. type: Plain text
11360 #: build/C/man3/sysv_signal.3:57
11361 msgid ""
11362 "The B<sysv_signal>()  function returns the previous value of the signal "
11363 "handler, or B<SIG_ERR> on error."
11364 msgstr ""
11365 "B<sysv_signal>()  関数はシグナルハンドラの直前の値を返す。 エラーの場合、 "
11366 "B<SIG_ERR> を返す。"
11367
11368 #. type: Plain text
11369 #: build/C/man3/sysv_signal.3:65
11370 msgid "The B<sysv_signal>()  function is thread-safe."
11371 msgstr "B<sysv_signal>() 関数はスレッドセーフである。"
11372
11373 #. type: Plain text
11374 #: build/C/man3/sysv_signal.3:67
11375 msgid "This function is nonstandard."
11376 msgstr "この関数は非標準である。"
11377
11378 #. type: Plain text
11379 #: build/C/man3/sysv_signal.3:73
11380 msgid ""
11381 "Use of B<sysv_signal>()  should be avoided; use B<sigaction>(2)  instead."
11382 msgstr ""
11383 "B<sysv_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使う"
11384 "こと。"
11385
11386 #. type: Plain text
11387 #: build/C/man3/sysv_signal.3:84
11388 msgid ""
11389 "On older Linux systems, B<sysv_signal>()  and B<signal>(2)  were "
11390 "equivalent.  But on newer systems, B<signal>(2)  provides reliable signal "
11391 "semantics; see B<signal>(2)  for details."
11392 msgstr ""
11393 "以前の Linux システムでは、 B<sysv_signal>()  と B<signal>(2)  は等価であっ"
11394 "た。しかし、新しめのシステムでは、 B<signal>(2)  は信頼性のあるシグナル処理方"
11395 "式を提供している。 詳細は B<signal>(2)  を参照。"
11396
11397 #. type: Plain text
11398 #: build/C/man3/sysv_signal.3:97
11399 msgid "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
11400 msgstr "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
11401
11402 #. type: TH
11403 #: build/C/man2/timer_create.2:33
11404 #, no-wrap
11405 msgid "TIMER_CREATE"
11406 msgstr "TIMER_CREATE"
11407
11408 #. type: Plain text
11409 #: build/C/man2/timer_create.2:36
11410 msgid "timer_create - create a POSIX per-process timer"
11411 msgstr ""
11412
11413 #. type: Plain text
11414 #: build/C/man2/timer_create.2:40
11415 #, no-wrap
11416 msgid ""
11417 "B<#include E<lt>signal.hE<gt>>\n"
11418 "B<#include E<lt>time.hE<gt>>\n"
11419 msgstr ""
11420 "B<#include E<lt>signal.hE<gt>>\n"
11421 "B<#include E<lt>time.hE<gt>>\n"
11422
11423 #. type: Plain text
11424 #: build/C/man2/timer_create.2:43
11425 #, no-wrap
11426 msgid ""
11427 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
11428 "B<                 timer_t *>I<timerid>B<);>\n"
11429 msgstr ""
11430 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
11431 "B<                 timer_t *>I<timerid>B<);>\n"
11432
11433 #. type: Plain text
11434 #: build/C/man2/timer_create.2:46 build/C/man2/timer_delete.2:37
11435 #: build/C/man2/timer_getoverrun.2:37 build/C/man2/timer_settime.2:41
11436 msgid "Link with I<-lrt>."
11437 msgstr "I<-lrt> でリンクする。"
11438
11439 #. type: Plain text
11440 #: build/C/man2/timer_create.2:54
11441 msgid "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11442 msgstr "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11443
11444 #. type: Plain text
11445 #: build/C/man2/timer_create.2:62
11446 msgid ""
11447 "B<timer_create>()  creates a new per-process interval timer.  The ID of the "
11448 "new timer is returned in the buffer pointed to by I<timerid>, which must be "
11449 "a non-null pointer.  This ID is unique within the process, until the timer "
11450 "is deleted.  The new timer is initially disarmed."
11451 msgstr ""
11452
11453 #. type: Plain text
11454 #: build/C/man2/timer_create.2:67
11455 msgid ""
11456 "The I<clockid> argument specifies the clock that the new timer uses to "
11457 "measure time.  It can be specified as one of the following values:"
11458 msgstr ""
11459
11460 #. type: TP
11461 #: build/C/man2/timer_create.2:67
11462 #, no-wrap
11463 msgid "B<CLOCK_REALTIME>"
11464 msgstr "B<CLOCK_REALTIME>"
11465
11466 #. type: Plain text
11467 #: build/C/man2/timer_create.2:70
11468 msgid "A settable system-wide real-time clock."
11469 msgstr ""
11470
11471 #. type: TP
11472 #: build/C/man2/timer_create.2:70
11473 #, no-wrap
11474 msgid "B<CLOCK_MONOTONIC>"
11475 msgstr "B<CLOCK_MONOTONIC>"
11476
11477 #.  Note: the CLOCK_MONOTONIC_RAW clock added for clock_gettime()
11478 #.  in 2.6.28 is not supported for POSIX timers -- mtk, Feb 2009
11479 #. type: Plain text
11480 #: build/C/man2/timer_create.2:77
11481 msgid ""
11482 "A nonsettable monotonically increasing clock that measures time from some "
11483 "unspecified point in the past that does not change after system startup."
11484 msgstr ""
11485
11486 #. type: TP
11487 #: build/C/man2/timer_create.2:77
11488 #, no-wrap
11489 msgid "B<CLOCK_PROCESS_CPUTIME_ID> (since Linux 2.6.12)"
11490 msgstr ""
11491
11492 #. type: Plain text
11493 #: build/C/man2/timer_create.2:81
11494 msgid ""
11495 "A clock that measures (user and system) CPU time consumed by (all of the "
11496 "threads in) the calling process."
11497 msgstr ""
11498
11499 #. type: TP
11500 #: build/C/man2/timer_create.2:81
11501 #, no-wrap
11502 msgid "B<CLOCK_THREAD_CPUTIME_ID> (since Linux 2.6.12)"
11503 msgstr ""
11504
11505 #.  The CLOCK_MONOTONIC_RAW that was added in 2.6.28 can't be used
11506 #.  to create a timer -- mtk, Feb 2009
11507 #. type: Plain text
11508 #: build/C/man2/timer_create.2:87
11509 msgid ""
11510 "A clock that measures (user and system) CPU time consumed by the calling "
11511 "thread."
11512 msgstr ""
11513
11514 #. type: Plain text
11515 #: build/C/man2/timer_create.2:96
11516 msgid ""
11517 "As well as the above values, I<clockid> can be specified as the I<clockid> "
11518 "returned by a call to B<clock_getcpuclockid>(3)  or "
11519 "B<pthread_getcpuclockid>(3)."
11520 msgstr ""
11521
11522 #. type: Plain text
11523 #: build/C/man2/timer_create.2:105
11524 msgid ""
11525 "The I<sevp> argument points to a I<sigevent> structure that specifies how "
11526 "the caller should be notified when the timer expires.  For the definition "
11527 "and general details of this structure, see B<sigevent>(7)."
11528 msgstr ""
11529
11530 #. type: Plain text
11531 #: build/C/man2/timer_create.2:109
11532 msgid "The I<sevp.sigev_notify> field can have the following values:"
11533 msgstr ""
11534
11535 #. type: Plain text
11536 #: build/C/man2/timer_create.2:114
11537 msgid ""
11538 "Don't asynchronously notify when the timer expires.  Progress of the timer "
11539 "can be monitored using B<timer_gettime>(2)."
11540 msgstr ""
11541
11542 #. type: Plain text
11543 #: build/C/man2/timer_create.2:132
11544 msgid ""
11545 "Upon timer expiration, generate the signal I<sigev_signo> for the process.  "
11546 "See B<sigevent>(7)  for general details.  The I<si_code> field of the "
11547 "I<siginfo_t> structure will be set to B<SI_TIMER>.  At any point in time, at "
11548 "most one signal is queued to the process for a given timer; see "
11549 "B<timer_getoverrun>(2)  for more details."
11550 msgstr ""
11551
11552 #. type: Plain text
11553 #: build/C/man2/timer_create.2:140
11554 msgid ""
11555 "Upon timer expiration, invoke I<sigev_notify_function> as if it were the "
11556 "start function of a new thread.  See B<sigevent>(7)  for details."
11557 msgstr ""
11558
11559 #. type: Plain text
11560 #: build/C/man2/timer_create.2:154
11561 msgid ""
11562 "As for B<SIGEV_SIGNAL>, but the signal is targeted at the thread whose ID is "
11563 "given in I<sigev_notify_thread_id>, which must be a thread in the same "
11564 "process as the caller.  The I<sigev_notify_thread_id> field specifies a "
11565 "kernel thread ID, that is, the value returned by B<clone>(2)  or "
11566 "B<gettid>(2).  This flag is intended only for use by threading libraries."
11567 msgstr ""
11568
11569 #. type: Plain text
11570 #: build/C/man2/timer_create.2:169
11571 msgid ""
11572 "Specifying I<sevp> as NULL is equivalent to specifying a pointer to a "
11573 "I<sigevent> structure in which I<sigev_notify> is B<SIGEV_SIGNAL>, "
11574 "I<sigev_signo> is B<SIGALRM>, and I<sigev_value.sival_int> is the timer ID."
11575 msgstr ""
11576
11577 #. type: Plain text
11578 #: build/C/man2/timer_create.2:177
11579 msgid ""
11580 "On success, B<timer_create>()  returns 0, and the ID of the new timer is "
11581 "placed in I<*timerid>.  On failure, -1 is returned, and I<errno> is set to "
11582 "indicate the error."
11583 msgstr ""
11584
11585 #. type: Plain text
11586 #: build/C/man2/timer_create.2:181
11587 msgid "Temporary error during kernel allocation of timer structures."
11588 msgstr ""
11589
11590 #. type: Plain text
11591 #: build/C/man2/timer_create.2:189
11592 msgid ""
11593 "Clock ID, I<sigev_notify>, I<sigev_signo>, or I<sigev_notify_thread_id> is "
11594 "invalid."
11595 msgstr ""
11596
11597 #.  glibc layer: malloc()
11598 #. type: Plain text
11599 #: build/C/man2/timer_create.2:193
11600 msgid "Could not allocate memory."
11601 msgstr ""
11602
11603 #. type: Plain text
11604 #: build/C/man2/timer_create.2:195 build/C/man2/timer_delete.2:67
11605 #: build/C/man2/timer_getoverrun.2:97
11606 msgid "This system call is available since Linux 2.6."
11607 msgstr "このシステムコールは Linux 2.6 以降で利用できる。"
11608
11609 #. type: Plain text
11610 #: build/C/man2/timer_create.2:200
11611 msgid "A program may create multiple interval timers using B<timer_create>()."
11612 msgstr ""
11613
11614 #. type: Plain text
11615 #: build/C/man2/timer_create.2:205
11616 msgid ""
11617 "Timers are not inherited by the child of a B<fork>(2), and are disarmed and "
11618 "deleted during an B<execve>(2)."
11619 msgstr ""
11620
11621 #. type: Plain text
11622 #: build/C/man2/timer_create.2:213
11623 msgid ""
11624 "The kernel preallocates a \"queued real-time signal\" for each timer created "
11625 "using B<timer_create>().  Consequently, the number of timers is limited by "
11626 "the B<RLIMIT_SIGPENDING> resource limit (see B<setrlimit>(2))."
11627 msgstr ""
11628
11629 #. type: Plain text
11630 #: build/C/man2/timer_create.2:218
11631 msgid ""
11632 "The timers created by B<timer_create>()  are commonly known as \"POSIX "
11633 "(interval) timers\".  The POSIX timers API consists of the following "
11634 "interfaces:"
11635 msgstr ""
11636
11637 #. type: Plain text
11638 #: build/C/man2/timer_create.2:221
11639 msgid "B<timer_create>(): Create a timer."
11640 msgstr ""
11641
11642 #. type: Plain text
11643 #: build/C/man2/timer_create.2:224
11644 msgid "B<timer_settime>(2): Arm (start) or disarm (stop) a timer."
11645 msgstr ""
11646
11647 #. type: Plain text
11648 #: build/C/man2/timer_create.2:228
11649 msgid ""
11650 "B<timer_gettime>(2): Fetch the time remaining until the next expiration of a "
11651 "timer, along with the interval setting of the timer."
11652 msgstr ""
11653
11654 #. type: Plain text
11655 #: build/C/man2/timer_create.2:231
11656 msgid ""
11657 "B<timer_getoverrun>(2): Return the overrun count for the last timer "
11658 "expiration."
11659 msgstr ""
11660
11661 #. type: Plain text
11662 #: build/C/man2/timer_create.2:234
11663 msgid "B<timer_delete>(2): Disarm and delete a timer."
11664 msgstr ""
11665
11666 #. type: Plain text
11667 #: build/C/man2/timer_create.2:243
11668 msgid ""
11669 "Since Linux 3.10, the I</proc/[pid]/timers> file can be used to list the "
11670 "POSIX timers for the process with PID I<pid>.  See B<proc>(5)  for further "
11671 "information."
11672 msgstr ""
11673
11674 #. type: Plain text
11675 #: build/C/man2/timer_create.2:246
11676 msgid ""
11677 "Part of the implementation of the POSIX timers API is provided by glibc.  In "
11678 "particular:"
11679 msgstr ""
11680
11681 #. type: Plain text
11682 #: build/C/man2/timer_create.2:250
11683 msgid ""
11684 "The functionality for B<SIGEV_THREAD> is implemented within glibc, rather "
11685 "than the kernel."
11686 msgstr ""
11687
11688 #.  See the glibc source file kernel-posix-timers.h for the structure
11689 #.  that glibc uses to map user-space timer IDs to kernel timer IDs
11690 #.  The kernel-level timer ID is exposed via siginfo.si_tid.
11691 #. type: Plain text
11692 #: build/C/man2/timer_create.2:256
11693 msgid ""
11694 "The timer IDs presented at user level are maintained by glibc, which maps "
11695 "these IDs to the timer IDs employed by the kernel."
11696 msgstr ""
11697
11698 #. type: Plain text
11699 #: build/C/man2/timer_create.2:264
11700 msgid ""
11701 "The POSIX timers system calls first appeared in Linux 2.6.  Prior to this, "
11702 "glibc provided an incomplete user-space implementation (B<CLOCK_REALTIME> "
11703 "timers only) using POSIX threads, and current glibc falls back to this "
11704 "implementation on systems running pre-2.6 Linux kernels."
11705 msgstr ""
11706
11707 #. type: Plain text
11708 #: build/C/man2/timer_create.2:276
11709 msgid ""
11710 "The program below takes two arguments: a sleep period in seconds, and a "
11711 "timer frequency in nanoseconds.  The program establishes a handler for the "
11712 "signal it uses for the timer, blocks that signal, creates and arms a timer "
11713 "that expires with the given frequency, sleeps for the specified number of "
11714 "seconds, and then unblocks the timer signal.  Assuming that the timer "
11715 "expired at least once while the program slept, the signal handler will be "
11716 "invoked, and the handler displays some information about the timer "
11717 "notification.  The program terminates after one invocation of the signal "
11718 "handler."
11719 msgstr ""
11720
11721 #. type: Plain text
11722 #: build/C/man2/timer_create.2:281
11723 msgid ""
11724 "In the following example run, the program sleeps for 1 second, after "
11725 "creating a timer that has a frequency of 100 nanoseconds.  By the time the "
11726 "signal is unblocked and delivered, there have been around ten million "
11727 "overruns."
11728 msgstr ""
11729
11730 #. type: Plain text
11731 #: build/C/man2/timer_create.2:293
11732 #, no-wrap
11733 msgid ""
11734 "$ B<./a.out 1 100>\n"
11735 "Establishing handler for signal 34\n"
11736 "Blocking signal 34\n"
11737 "timer ID is 0x804c008\n"
11738 "Sleeping for 1 seconds\n"
11739 "Unblocking signal 34\n"
11740 "Caught signal 34\n"
11741 "    sival_ptr = 0xbfb174f4;     *sival_ptr = 0x804c008\n"
11742 "    overrun count = 10004886\n"
11743 msgstr ""
11744
11745 #. type: Plain text
11746 #: build/C/man2/timer_create.2:303
11747 #, no-wrap
11748 msgid ""
11749 "#include E<lt>stdlib.hE<gt>\n"
11750 "#include E<lt>unistd.hE<gt>\n"
11751 "#include E<lt>stdio.hE<gt>\n"
11752 "#include E<lt>signal.hE<gt>\n"
11753 "#include E<lt>time.hE<gt>\n"
11754 msgstr ""
11755 "#include E<lt>stdlib.hE<gt>\n"
11756 "#include E<lt>unistd.hE<gt>\n"
11757 "#include E<lt>stdio.hE<gt>\n"
11758 "#include E<lt>signal.hE<gt>\n"
11759 "#include E<lt>time.hE<gt>\n"
11760
11761 #. type: Plain text
11762 #: build/C/man2/timer_create.2:306
11763 #, no-wrap
11764 msgid ""
11765 "#define CLOCKID CLOCK_REALTIME\n"
11766 "#define SIG SIGRTMIN\n"
11767 msgstr ""
11768 "#define CLOCKID CLOCK_REALTIME\n"
11769 "#define SIG SIGRTMIN\n"
11770
11771 #. type: Plain text
11772 #: build/C/man2/timer_create.2:309
11773 #, no-wrap
11774 msgid ""
11775 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11776 "                        } while (0)\n"
11777 msgstr ""
11778 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11779 "                        } while (0)\n"
11780
11781 #. type: Plain text
11782 #: build/C/man2/timer_create.2:315
11783 #, no-wrap
11784 msgid ""
11785 "static void\n"
11786 "print_siginfo(siginfo_t *si)\n"
11787 "{\n"
11788 "    timer_t *tidp;\n"
11789 "    int or;\n"
11790 msgstr ""
11791 "static void\n"
11792 "print_siginfo(siginfo_t *si)\n"
11793 "{\n"
11794 "    timer_t *tidp;\n"
11795 "    int or;\n"
11796
11797 #. type: Plain text
11798 #: build/C/man2/timer_create.2:317
11799 #, no-wrap
11800 msgid "    tidp = si-E<gt>si_value.sival_ptr;\n"
11801 msgstr "    tidp = si-E<gt>si_value.sival_ptr;\n"
11802
11803 #. type: Plain text
11804 #: build/C/man2/timer_create.2:320
11805 #, no-wrap
11806 msgid ""
11807 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11808 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11809 msgstr ""
11810 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11811 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11812
11813 #. type: Plain text
11814 #: build/C/man2/timer_create.2:327
11815 #, no-wrap
11816 msgid ""
11817 "    or = timer_getoverrun(*tidp);\n"
11818 "    if (or == -1)\n"
11819 "        errExit(\"timer_getoverrun\");\n"
11820 "    else\n"
11821 "        printf(\"    overrun count = %d\\en\", or);\n"
11822 "}\n"
11823 msgstr ""
11824 "    or = timer_getoverrun(*tidp);\n"
11825 "    if (or == -1)\n"
11826 "        errExit(\"timer_getoverrun\");\n"
11827 "    else\n"
11828 "        printf(\"    overrun count = %d\\en\", or);\n"
11829 "}\n"
11830
11831 #. type: Plain text
11832 #: build/C/man2/timer_create.2:334
11833 #, no-wrap
11834 msgid ""
11835 "static void\n"
11836 "handler(int sig, siginfo_t *si, void *uc)\n"
11837 "{\n"
11838 "    /* Note: calling printf() from a signal handler is not\n"
11839 "       strictly correct, since printf() is not async-signal-safe;\n"
11840 "       see signal(7) */\n"
11841 msgstr ""
11842 "static void\n"
11843 "handler(int sig, siginfo_t *si, void *uc)\n"
11844 "{\n"
11845 "    /* Note: calling printf() from a signal handler is not\n"
11846 "       strictly correct, since printf() is not async-signal-safe;\n"
11847 "       see signal(7) */\n"
11848
11849 #. type: Plain text
11850 #: build/C/man2/timer_create.2:339
11851 #, no-wrap
11852 msgid ""
11853 "    printf(\"Caught signal %d\\en\", sig);\n"
11854 "    print_siginfo(si);\n"
11855 "    signal(sig, SIG_IGN);\n"
11856 "}\n"
11857 msgstr ""
11858 "    printf(\"Caught signal %d\\en\", sig);\n"
11859 "    print_siginfo(si);\n"
11860 "    signal(sig, SIG_IGN);\n"
11861 "}\n"
11862
11863 #. type: Plain text
11864 #: build/C/man2/timer_create.2:349
11865 #, no-wrap
11866 msgid ""
11867 "int\n"
11868 "main(int argc, char *argv[])\n"
11869 "{\n"
11870 "    timer_t timerid;\n"
11871 "    struct sigevent sev;\n"
11872 "    struct itimerspec its;\n"
11873 "    long long freq_nanosecs;\n"
11874 "    sigset_t mask;\n"
11875 "    struct sigaction sa;\n"
11876 msgstr ""
11877 "int\n"
11878 "main(int argc, char *argv[])\n"
11879 "{\n"
11880 "    timer_t timerid;\n"
11881 "    struct sigevent sev;\n"
11882 "    struct itimerspec its;\n"
11883 "    long long freq_nanosecs;\n"
11884 "    sigset_t mask;\n"
11885 "    struct sigaction sa;\n"
11886
11887 #. type: Plain text
11888 #: build/C/man2/timer_create.2:355
11889 #, no-wrap
11890 msgid ""
11891 "    if (argc != 3) {\n"
11892 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11893 "                argv[0]);\n"
11894 "        exit(EXIT_FAILURE);\n"
11895 "    }\n"
11896 msgstr ""
11897 "    if (argc != 3) {\n"
11898 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11899 "                argv[0]);\n"
11900 "        exit(EXIT_FAILURE);\n"
11901 "    }\n"
11902
11903 #. type: Plain text
11904 #: build/C/man2/timer_create.2:357
11905 #, no-wrap
11906 msgid "    /* Establish handler for timer signal */\n"
11907 msgstr "    /* Establish handler for timer signal */\n"
11908
11909 #. type: Plain text
11910 #: build/C/man2/timer_create.2:364
11911 #, no-wrap
11912 msgid ""
11913 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11914 "    sa.sa_flags = SA_SIGINFO;\n"
11915 "    sa.sa_sigaction = handler;\n"
11916 "    sigemptyset(&sa.sa_mask);\n"
11917 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11918 "        errExit(\"sigaction\");\n"
11919 msgstr ""
11920 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11921 "    sa.sa_flags = SA_SIGINFO;\n"
11922 "    sa.sa_sigaction = handler;\n"
11923 "    sigemptyset(&sa.sa_mask);\n"
11924 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11925 "        errExit(\"sigaction\");\n"
11926
11927 #. type: Plain text
11928 #: build/C/man2/timer_create.2:366
11929 #, no-wrap
11930 msgid "    /* Block timer signal temporarily */\n"
11931 msgstr "    /* Block timer signal temporarily */\n"
11932
11933 #. type: Plain text
11934 #: build/C/man2/timer_create.2:372
11935 #, no-wrap
11936 msgid ""
11937 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11938 "    sigemptyset(&mask);\n"
11939 "    sigaddset(&mask, SIG);\n"
11940 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11941 "        errExit(\"sigprocmask\");\n"
11942 msgstr ""
11943 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11944 "    sigemptyset(&mask);\n"
11945 "    sigaddset(&mask, SIG);\n"
11946 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11947 "        errExit(\"sigprocmask\");\n"
11948
11949 #. type: Plain text
11950 #: build/C/man2/timer_create.2:374
11951 #, no-wrap
11952 msgid "    /* Create the timer */\n"
11953 msgstr "    /* Create the timer */\n"
11954
11955 #. type: Plain text
11956 #: build/C/man2/timer_create.2:380
11957 #, no-wrap
11958 msgid ""
11959 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11960 "    sev.sigev_signo = SIG;\n"
11961 "    sev.sigev_value.sival_ptr = &timerid;\n"
11962 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11963 "        errExit(\"timer_create\");\n"
11964 msgstr ""
11965 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11966 "    sev.sigev_signo = SIG;\n"
11967 "    sev.sigev_value.sival_ptr = &timerid;\n"
11968 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11969 "        errExit(\"timer_create\");\n"
11970
11971 #. type: Plain text
11972 #: build/C/man2/timer_create.2:382
11973 #, no-wrap
11974 msgid "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11975 msgstr "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11976
11977 #. type: Plain text
11978 #: build/C/man2/timer_create.2:384
11979 #, no-wrap
11980 msgid "    /* Start the timer */\n"
11981 msgstr "    /* Start the timer */\n"
11982
11983 #. type: Plain text
11984 #: build/C/man2/timer_create.2:390
11985 #, no-wrap
11986 msgid ""
11987 "    freq_nanosecs = atoll(argv[2]);\n"
11988 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11989 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11990 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11991 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11992 msgstr ""
11993 "    freq_nanosecs = atoll(argv[2]);\n"
11994 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11995 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11996 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11997 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11998
11999 #. type: Plain text
12000 #: build/C/man2/timer_create.2:393
12001 #, no-wrap
12002 msgid ""
12003 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
12004 "         errExit(\"timer_settime\");\n"
12005 msgstr ""
12006 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
12007 "         errExit(\"timer_settime\");\n"
12008
12009 #. type: Plain text
12010 #: build/C/man2/timer_create.2:396
12011 #, no-wrap
12012 msgid ""
12013 "    /* Sleep for a while; meanwhile, the timer may expire\n"
12014 "       multiple times */\n"
12015 msgstr ""
12016 "    /* Sleep for a while; meanwhile, the timer may expire\n"
12017 "       multiple times */\n"
12018
12019 #. type: Plain text
12020 #: build/C/man2/timer_create.2:399
12021 #, no-wrap
12022 msgid ""
12023 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
12024 "    sleep(atoi(argv[1]));\n"
12025 msgstr ""
12026 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
12027 "    sleep(atoi(argv[1]));\n"
12028
12029 #. type: Plain text
12030 #: build/C/man2/timer_create.2:402
12031 #, no-wrap
12032 msgid ""
12033 "    /* Unlock the timer signal, so that timer notification\n"
12034 "       can be delivered */\n"
12035 msgstr ""
12036 "    /* Unlock the timer signal, so that timer notification\n"
12037 "       can be delivered */\n"
12038
12039 #. type: Plain text
12040 #: build/C/man2/timer_create.2:406
12041 #, no-wrap
12042 msgid ""
12043 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
12044 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
12045 "        errExit(\"sigprocmask\");\n"
12046 msgstr ""
12047 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
12048 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
12049 "        errExit(\"sigprocmask\");\n"
12050
12051 #. type: Plain text
12052 #: build/C/man2/timer_create.2:409 build/C/man2/timerfd_create.2:547
12053 #, no-wrap
12054 msgid ""
12055 "    exit(EXIT_SUCCESS);\n"
12056 "}\n"
12057 msgstr ""
12058 "    exit(EXIT_SUCCESS);\n"
12059 "}\n"
12060
12061 #. type: Plain text
12062 #: build/C/man2/timer_create.2:425
12063 msgid ""
12064 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), "
12065 "B<timer_getoverrun>(2), B<timer_settime>(2), B<timerfd_create>(2), "
12066 "B<clock_getcpuclockid>(3), B<pthread_getcpuclockid>(3), B<pthreads>(7), "
12067 "B<sigevent>(7), B<signal>(7), B<time>(7)"
12068 msgstr ""
12069 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), "
12070 "B<timer_getoverrun>(2), B<timer_settime>(2), B<timerfd_create>(2), "
12071 "B<clock_getcpuclockid>(3), B<pthread_getcpuclockid>(3), B<pthreads>(7), "
12072 "B<sigevent>(7), B<signal>(7), B<time>(7)"
12073
12074 #. type: TH
12075 #: build/C/man2/timer_delete.2:26
12076 #, no-wrap
12077 msgid "TIMER_DELETE"
12078 msgstr "TIMER_DELETE"
12079
12080 #. type: TH
12081 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
12082 #, no-wrap
12083 msgid "2009-02-20"
12084 msgstr "2009-02-20"
12085
12086 #. type: Plain text
12087 #: build/C/man2/timer_delete.2:29
12088 msgid "timer_delete - delete a POSIX per-process timer"
12089 msgstr "timer_delete - プロセス単位の POSIX タイマーを削除する"
12090
12091 #. type: Plain text
12092 #: build/C/man2/timer_delete.2:32 build/C/man2/timer_getoverrun.2:32
12093 #: build/C/man2/timer_settime.2:33
12094 #, no-wrap
12095 msgid "B<#include E<lt>time.hE<gt>>\n"
12096 msgstr "B<#include E<lt>time.hE<gt>>\n"
12097
12098 #. type: Plain text
12099 #: build/C/man2/timer_delete.2:34
12100 #, no-wrap
12101 msgid "B<int timer_delete(timer_t >I<timerid>B<);>\n"
12102 msgstr "B<int timer_delete(timer_t >I<timerid>B<);>\n"
12103
12104 #. type: Plain text
12105 #: build/C/man2/timer_delete.2:45
12106 msgid "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12107 msgstr "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12108
12109 #. type: Plain text
12110 #: build/C/man2/timer_delete.2:53
12111 msgid ""
12112 "B<timer_delete>()  deletes the timer whose ID is given in I<timerid>.  If "
12113 "the timer was armed at the time of this call, it is disarmed before being "
12114 "deleted.  The treatment of any pending signal generated by the deleted timer "
12115 "is unspecified."
12116 msgstr ""
12117 "B<timer_delete>() は I<timerid> で指定された ID のタイマーを削除する。 "
12118 "B<timer_delete>() が呼び出された時点でタイマーが開始されている場合は、 削除す"
12119 "る前にタイマーの解除が行われる。 削除されるタイマーにより生成された処理待ちシ"
12120 "グナルの扱いは不定 (unspecified) である。"
12121
12122 #. type: Plain text
12123 #: build/C/man2/timer_delete.2:60
12124 msgid ""
12125 "On success, B<timer_delete>()  returns 0.  On failure, -1 is returned, and "
12126 "I<errno> is set to indicate the error."
12127 msgstr ""
12128 "成功すると、 B<timer_delete>() は 0 を返す。 失敗すると、 -1 が返り、 "
12129 "I<errno> にエラーを示す値が設定される。"
12130
12131 #. type: Plain text
12132 #: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
12133 msgid "I<timerid> is not a valid timer ID."
12134 msgstr "I<timerid> が有効なタイマー ID ではない。"
12135
12136 #. type: Plain text
12137 #: build/C/man2/timer_delete.2:75
12138 msgid ""
12139 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
12140 "B<timer_settime>(2), B<time>(7)"
12141 msgstr ""
12142 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
12143 "B<timer_settime>(2), B<time>(7)"
12144
12145 #. type: TH
12146 #: build/C/man2/timer_getoverrun.2:26
12147 #, no-wrap
12148 msgid "TIMER_GETOVERRUN"
12149 msgstr "TIMER_GETOVERRUN"
12150
12151 #. type: Plain text
12152 #: build/C/man2/timer_getoverrun.2:29
12153 msgid "timer_getoverrun - get overrun count for a POSIX per-process timer"
12154 msgstr ""
12155
12156 #. type: Plain text
12157 #: build/C/man2/timer_getoverrun.2:34
12158 #, no-wrap
12159 msgid "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
12160 msgstr "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
12161
12162 #. type: Plain text
12163 #: build/C/man2/timer_getoverrun.2:45
12164 msgid "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12165 msgstr "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12166
12167 #. type: Plain text
12168 #: build/C/man2/timer_getoverrun.2:56
12169 msgid ""
12170 "B<timer_getoverrun>()  returns the \"overrun count\" for the timer referred "
12171 "to by I<timerid>.  An application can use the overrun count to accurately "
12172 "calculate the number of timer expirations that would have occurred over a "
12173 "given time interval.  Timer overruns can occur both when receiving "
12174 "expiration notifications via signals (B<SIGEV_SIGNAL>), and via threads "
12175 "(B<SIGEV_THREAD>)."
12176 msgstr ""
12177
12178 #. type: Plain text
12179 #: build/C/man2/timer_getoverrun.2:76
12180 msgid ""
12181 "When expiration notifications are delivered via a signal, overruns can occur "
12182 "as follows.  Regardless of whether or not a real-time signal is used for "
12183 "timer notifications, the system queues at most one signal per timer.  (This "
12184 "is the behavior specified by POSIX.1-2001.  The alternative, queuing one "
12185 "signal for each timer expiration, could easily result in overflowing the "
12186 "allowed limits for queued signals on the system.)  Because of system "
12187 "scheduling delays, or because the signal may be temporarily blocked, there "
12188 "can be a delay between the time when the notification signal is generated "
12189 "and the time when it is delivered (e.g., caught by a signal handler) or "
12190 "accepted (e.g., using B<sigwaitinfo>(2)).  In this interval, further timer "
12191 "expirations may occur.  The timer overrun count is the number of additional "
12192 "timer expirations that occurred between the time when the signal was "
12193 "generated and when it was delivered or accepted."
12194 msgstr ""
12195
12196 #. type: Plain text
12197 #: build/C/man2/timer_getoverrun.2:82
12198 msgid ""
12199 "Timer overruns can also occur when expiration notifications are delivered "
12200 "via invocation of a thread, since there may be an arbitrary delay between an "
12201 "expiration of the timer and the invocation of the notification thread, and "
12202 "in that delay interval, additional timer expirations may occur."
12203 msgstr ""
12204
12205 #. type: Plain text
12206 #: build/C/man2/timer_getoverrun.2:90
12207 msgid ""
12208 "On success, B<timer_getoverrun>()  returns the overrun count of the "
12209 "specified timer; this count may be 0 if no overruns have occurred.  On "
12210 "failure, -1 is returned, and I<errno> is set to indicate the error."
12211 msgstr ""
12212
12213 #. type: Plain text
12214 #: build/C/man2/timer_getoverrun.2:111
12215 msgid ""
12216 "When timer notifications are delivered via signals (B<SIGEV_SIGNAL>), on "
12217 "Linux it is also possible to obtain the overrun count via the I<si_overrun> "
12218 "field of the I<siginfo_t> structure (see B<sigaction>(2)).  This allows an "
12219 "application to avoid the overhead of making a system call to obtain the "
12220 "overrun count, but is a nonportable extension to POSIX.1-2001."
12221 msgstr ""
12222
12223 #.  FIXME . Austin bug filed, 11 Feb 09
12224 #. type: Plain text
12225 #: build/C/man2/timer_getoverrun.2:115
12226 msgid ""
12227 "POSIX.1-2001 discusses timer overruns only in the context of timer "
12228 "notifications using signals."
12229 msgstr ""
12230
12231 #.  Bug filed: http://bugzilla.kernel.org/show_bug.cgi?id=12665
12232 #.  http://thread.gmane.org/gmane.linux.kernel/113276/
12233 #. type: Plain text
12234 #: build/C/man2/timer_getoverrun.2:128
12235 msgid ""
12236 "POSIX.1-2001 specifies that if the timer overrun count is equal to or "
12237 "greater than an implementation-defined maximum, B<DELAYTIMER_MAX>, then "
12238 "B<timer_getoverrun>()  should return B<DELAYTIMER_MAX>.  However, Linux does "
12239 "not implement this feature: instead, if the timer overrun value exceeds the "
12240 "maximum representable integer, the counter cycles, starting once more from "
12241 "low values."
12242 msgstr ""
12243
12244 #. type: Plain text
12245 #: build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212
12246 msgid "See B<timer_create>(2)."
12247 msgstr ""
12248
12249 #. type: Plain text
12250 #: build/C/man2/timer_getoverrun.2:141
12251 msgid ""
12252 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
12253 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
12254 "B<time>(7)"
12255 msgstr ""
12256 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
12257 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
12258 "B<time>(7)"
12259
12260 #. type: TH
12261 #: build/C/man2/timer_settime.2:26
12262 #, no-wrap
12263 msgid "TIMER_SETTIME"
12264 msgstr "TIMER_SETTIME"
12265
12266 #. type: TH
12267 #: build/C/man2/timer_settime.2:26
12268 #, no-wrap
12269 msgid "2012-10-15"
12270 msgstr "2012-10-15"
12271
12272 #. type: Plain text
12273 #: build/C/man2/timer_settime.2:30
12274 msgid ""
12275 "timer_settime, timer_gettime - arm/disarm and fetch state of POSIX per-"
12276 "process timer"
12277 msgstr ""
12278
12279 #. type: Plain text
12280 #: build/C/man2/timer_settime.2:38
12281 #, no-wrap
12282 msgid ""
12283 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
12284 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
12285 "B<                  struct itimerspec *>I<old_value>B<);>\n"
12286 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
12287 msgstr ""
12288 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
12289 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
12290 "B<                  struct itimerspec *>I<old_value>B<);>\n"
12291 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
12292
12293 #. type: Plain text
12294 #: build/C/man2/timer_settime.2:50
12295 msgid ""
12296 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12297 msgstr ""
12298 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12299
12300 #. type: Plain text
12301 #: build/C/man2/timer_settime.2:63
12302 msgid ""
12303 "B<timer_settime>()  arms or disarms the timer identified by I<timerid>.  The "
12304 "I<new_value> argument is pointer to an I<itimerspec> structure that "
12305 "specifies the new initial value and the new interval for the timer.  The "
12306 "I<itimerspec> structure is defined as follows:"
12307 msgstr ""
12308
12309 #. type: Plain text
12310 #: build/C/man2/timer_settime.2:70 build/C/man2/timerfd_create.2:135
12311 #, no-wrap
12312 msgid ""
12313 "struct timespec {\n"
12314 "    time_t tv_sec;                /* Seconds */\n"
12315 "    long   tv_nsec;               /* Nanoseconds */\n"
12316 "};\n"
12317 msgstr ""
12318 "struct timespec {\n"
12319 "    time_t tv_sec;                /* Seconds */\n"
12320 "    long   tv_nsec;               /* Nanoseconds */\n"
12321 "};\n"
12322
12323 #. type: Plain text
12324 #: build/C/man2/timer_settime.2:75
12325 #, no-wrap
12326 msgid ""
12327 "struct itimerspec {\n"
12328 "    struct timespec it_interval;  /* Timer interval */\n"
12329 "    struct timespec it_value;     /* Initial expiration */\n"
12330 "};\n"
12331 msgstr ""
12332 "struct itimerspec {\n"
12333 "    struct timespec it_interval;  /* Timer interval */\n"
12334 "    struct timespec it_value;     /* Initial expiration */\n"
12335 "};\n"
12336
12337 #. type: Plain text
12338 #: build/C/man2/timer_settime.2:87
12339 msgid ""
12340 "Each of the substructures of the I<itimerspec> structure is a I<timespec> "
12341 "structure that allows a time value to be specified in seconds and "
12342 "nanoseconds.  These time values are measured according to the clock that was "
12343 "specified when the timer was created by B<timer_create>(2)."
12344 msgstr ""
12345
12346 #. type: Plain text
12347 #: build/C/man2/timer_settime.2:101
12348 msgid ""
12349 "If I<new_value-E<gt>it_value> specifies a nonzero value (i.e., either "
12350 "subfield is nonzero), then B<timer_settime>()  arms (starts) the timer, "
12351 "setting it to initially expire at the given time.  (If the timer was already "
12352 "armed, then the previous settings are overwritten.)  If I<new_value-"
12353 "E<gt>it_value> specifies a zero value (i.e., both subfields are zero), then "
12354 "the timer is disarmed."
12355 msgstr ""
12356
12357 #. type: Plain text
12358 #: build/C/man2/timer_settime.2:113
12359 msgid ""
12360 "The I<new_value-E<gt>it_interval> field specifies the period of the timer, "
12361 "in seconds and nanoseconds.  If this field is nonzero, then each time that "
12362 "an armed timer expires, the timer is reloaded from the value specified in "
12363 "I<new_value-E<gt>it_interval>.  If I<new_value-E<gt>it_interval> specifies a "
12364 "zero value, then the timer expires just once, at the time specified by "
12365 "I<it_value>."
12366 msgstr ""
12367
12368 #.  By experiment: the overrun count is set correctly, for CLOCK_REALTIME.
12369 #. type: Plain text
12370 #: build/C/man2/timer_settime.2:134
12371 msgid ""
12372 "By default, the initial expiration time specified in I<new_value-"
12373 "E<gt>it_value> is interpreted relative to the current time on the timer's "
12374 "clock at the time of the call.  This can be modified by specifying "
12375 "B<TIMER_ABSTIME> in I<flags>, in which case I<new_value-E<gt>it_value> is "
12376 "interpreted as an absolute value as measured on the timer's clock; that is, "
12377 "the timer will expire when the clock value reaches the value specified by "
12378 "I<new_value-E<gt>it_value>.  If the specified absolute time has already "
12379 "passed, then the timer expires immediately, and the overrun count (see "
12380 "B<timer_getoverrun>(2))  will be set correctly."
12381 msgstr ""
12382
12383 #.  Similar remarks might apply with respect to process and thread CPU time
12384 #.  clocks, but these clocks are not currently (2.6.28) settable on Linux.
12385 #. type: Plain text
12386 #: build/C/man2/timer_settime.2:144
12387 msgid ""
12388 "If the value of the B<CLOCK_REALTIME> clock is adjusted while an absolute "
12389 "timer based on that clock is armed, then the expiration of the timer will be "
12390 "appropriately adjusted.  Adjustments to the B<CLOCK_REALTIME> clock have no "
12391 "effect on relative timers based on that clock."
12392 msgstr ""
12393
12394 #. type: Plain text
12395 #: build/C/man2/timer_settime.2:153
12396 msgid ""
12397 "If I<old_value> is not NULL, then it points to a buffer that is used to "
12398 "return the previous interval of the timer (in I<old_value-"
12399 "E<gt>it_interval>)  and the amount of time until the timer would previously "
12400 "have next expired (in I<old_value-E<gt>it_value>)."
12401 msgstr ""
12402
12403 #. type: Plain text
12404 #: build/C/man2/timer_settime.2:173
12405 msgid ""
12406 "B<timer_gettime>()  returns the time until next expiration, and the "
12407 "interval, for the timer specified by I<timerid>, in the buffer pointed to by "
12408 "I<curr_value>.  The time remaining until the next timer expiration is "
12409 "returned in I<curr_value-E<gt>it_value>; this is always a relative value, "
12410 "regardless of whether the B<TIMER_ABSTIME> flag was used when arming the "
12411 "timer.  If the value returned in I<curr_value-E<gt>it_value> is zero, then "
12412 "the timer is currently disarmed.  The timer interval is returned in "
12413 "I<curr_value-E<gt>it_interval>.  If the value returned in I<curr_value-"
12414 "E<gt>it_interval> is zero, then this is a \"one-shot\" timer."
12415 msgstr ""
12416
12417 #. type: Plain text
12418 #: build/C/man2/timer_settime.2:182
12419 msgid ""
12420 "On success, B<timer_settime>()  and B<timer_gettime>()  return 0.  On error, "
12421 "-1 is returned, and I<errno> is set to indicate the error."
12422 msgstr ""
12423
12424 #. type: Plain text
12425 #: build/C/man2/timer_settime.2:184
12426 msgid "These functions may fail with the following errors:"
12427 msgstr ""
12428
12429 #. type: Plain text
12430 #: build/C/man2/timer_settime.2:191
12431 msgid "I<new_value>, I<old_value>, or I<curr_value> is not a valid pointer."
12432 msgstr ""
12433
12434 #.  FIXME . eventually: invalid value in flags
12435 #. type: Plain text
12436 #: build/C/man2/timer_settime.2:196
12437 msgid "I<timerid> is invalid."
12438 msgstr ""
12439
12440 #. type: Plain text
12441 #: build/C/man2/timer_settime.2:199
12442 msgid "B<timer_settime>()  may fail with the following errors:"
12443 msgstr ""
12444
12445 #. type: Plain text
12446 #: build/C/man2/timer_settime.2:205
12447 msgid ""
12448 "I<new_value.it_value> is negative; or I<new_value.it_value.tv_nsec> is "
12449 "negative or greater than 999,999,999."
12450 msgstr ""
12451
12452 #. type: Plain text
12453 #: build/C/man2/timer_settime.2:207
12454 msgid "These system calls are available since Linux 2.6."
12455 msgstr "これらのシステムコールは Linux 2.6 以降で利用可能である。"
12456
12457 #. type: Plain text
12458 #: build/C/man2/timer_settime.2:216
12459 msgid "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12460 msgstr "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12461
12462 #. type: TH
12463 #: build/C/man2/timerfd_create.2:22
12464 #, no-wrap
12465 msgid "TIMERFD_CREATE"
12466 msgstr "TIMERFD_CREATE"
12467
12468 #. type: TH
12469 #: build/C/man2/timerfd_create.2:22
12470 #, no-wrap
12471 msgid "2011-09-14"
12472 msgstr "2011-09-14"
12473
12474 #. type: Plain text
12475 #: build/C/man2/timerfd_create.2:26
12476 msgid ""
12477 "timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via "
12478 "file descriptors"
12479 msgstr ""
12480 "timerfd_create, timerfd_settime, timerfd_gettime - ファイルディスクリプタ経由"
12481 "で通知するタイマー"
12482
12483 #. type: Plain text
12484 #: build/C/man2/timerfd_create.2:29
12485 #, no-wrap
12486 msgid "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12487 msgstr "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12488
12489 #. type: Plain text
12490 #: build/C/man2/timerfd_create.2:31
12491 #, no-wrap
12492 msgid "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12493 msgstr "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12494
12495 #. type: Plain text
12496 #: build/C/man2/timerfd_create.2:35
12497 #, no-wrap
12498 msgid ""
12499 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12500 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12501 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12502 msgstr ""
12503 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12504 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12505 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12506
12507 #. type: Plain text
12508 #: build/C/man2/timerfd_create.2:37
12509 #, no-wrap
12510 msgid "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12511 msgstr "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12512
12513 #. type: Plain text
12514 #: build/C/man2/timerfd_create.2:50
12515 msgid ""
12516 "These system calls create and operate on a timer that delivers timer "
12517 "expiration notifications via a file descriptor.  They provide an alternative "
12518 "to the use of B<setitimer>(2)  or B<timer_create>(2), with the advantage "
12519 "that the file descriptor may be monitored by B<select>(2), B<poll>(2), and "
12520 "B<epoll>(7)."
12521 msgstr ""
12522 "これらのシステムコールは、満了通知をファイルディスクリプタ経由で配送する タイ"
12523 "マーの生成と操作を行う。 これらは、 B<setitimer>(2)  や B<timer_create>(2)  "
12524 "を用いる方法の代わりとなるものであり、このファイルディスクリプタを "
12525 "B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
12526
12527 #. type: Plain text
12528 #: build/C/man2/timerfd_create.2:62
12529 msgid ""
12530 "The use of these three system calls is analogous to the use of "
12531 "B<timer_create>(2), B<timer_settime>(2), and B<timer_gettime>(2).  (There is "
12532 "no analog of B<timer_getoverrun>(2), since that functionality is provided by "
12533 "B<read>(2), as described below.)"
12534 msgstr ""
12535 "これらのシステムコールを使うのは、それぞれ B<timer_create>(2), "
12536 "B<timer_settime>(2), B<timer_gettime>(2)  を使うのと同様である "
12537 "(B<timer_getoverrun>(2)  に対応するものはなく、以下で説明するように この機能"
12538 "は B<read>(2)  により提供される)。"
12539
12540 #. type: SS
12541 #: build/C/man2/timerfd_create.2:62
12542 #, no-wrap
12543 msgid "timerfd_create()"
12544 msgstr "timerfd_create()"
12545
12546 #.  FIXME
12547 #.  Additional clocks are now supported:
12548 #.  CLOCK_REALTIME_ALARM and CLOCK_BOOTTIME_ALARM
12549 #.     Since Linux 3.11, commit 11ffa9d6065f344a9bd769a2452f26f2f671e5f8
12550 #.  CLOCK_BOOTTIME
12551 #.     Since Linux 3.15, commit 4a2378a943f09907fb1ae35c15de917f60289c14
12552 #. type: Plain text
12553 #: build/C/man2/timerfd_create.2:87
12554 msgid ""
12555 "B<timerfd_create>()  creates a new timer object, and returns a file "
12556 "descriptor that refers to that timer.  The I<clockid> argument specifies the "
12557 "clock that is used to mark the progress of the timer, and must be either "
12558 "B<CLOCK_REALTIME> or B<CLOCK_MONOTONIC>.  B<CLOCK_REALTIME> is a settable "
12559 "system-wide clock.  B<CLOCK_MONOTONIC> is a nonsettable clock that is not "
12560 "affected by discontinuous changes in the system clock (e.g., manual changes "
12561 "to system time).  The current value of each of these clocks can be retrieved "
12562 "using B<clock_gettime>(2)."
12563 msgstr ""
12564 "B<timerfd_create>()  は新規のタイマーオブジェクトを生成し、そのタイマーを参照"
12565 "するファイル ディスクリプタを返す。 I<clockid> 引き数は、タイマーの進捗を管理"
12566 "するためのクロックを指定するもので、 B<CLOCK_REALTIME> か B<CLOCK_MONOTONIC> "
12567 "のいずれかでなければならない。 B<CLOCK_REALTIME> はシステム全体で使用されるク"
12568 "ロックで、このクロックは変更可能である。 B<CLOCK_MONOTONIC> は変更されること"
12569 "のないクロックで、(システム時刻の手動での変更などの)  システムクロックの不連"
12570 "続な変化の影響を受けない。 これらのクロックの現在の値は B<clock_gettime>(2)  "
12571 "を使って取得できる。"
12572
12573 #. type: Plain text
12574 #: build/C/man2/timerfd_create.2:92
12575 msgid ""
12576 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
12577 "I<flags> to change the behavior of B<timerfd_create>():"
12578 msgstr ""
12579 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
12580 "ることで、 B<timerfd_create>()  の振舞いを変更することができる。"
12581
12582 #. type: TP
12583 #: build/C/man2/timerfd_create.2:92
12584 #, no-wrap
12585 msgid "B<TFD_NONBLOCK>"
12586 msgstr "B<TFD_NONBLOCK>"
12587
12588 #. type: TP
12589 #: build/C/man2/timerfd_create.2:100
12590 #, no-wrap
12591 msgid "B<TFD_CLOEXEC>"
12592 msgstr "B<TFD_CLOEXEC>"
12593
12594 #. type: Plain text
12595 #: build/C/man2/timerfd_create.2:114
12596 msgid ""
12597 "In Linux versions up to and including 2.6.26, I<flags> must be specified as "
12598 "zero."
12599 msgstr ""
12600 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
12601 "しなければならない。"
12602
12603 #. type: SS
12604 #: build/C/man2/timerfd_create.2:114
12605 #, no-wrap
12606 msgid "timerfd_settime()"
12607 msgstr "timerfd_settime()"
12608
12609 #. type: Plain text
12610 #: build/C/man2/timerfd_create.2:119
12611 msgid ""
12612 "B<timerfd_settime>()  arms (starts) or disarms (stops)  the timer referred "
12613 "to by the file descriptor I<fd>."
12614 msgstr ""
12615 "B<timerfd_settime>()  は、ファイルディスクリプタ I<fd> により参照されるタイ"
12616 "マーを開始したり停止したりする。"
12617
12618 #. type: Plain text
12619 #: build/C/man2/timerfd_create.2:128
12620 msgid ""
12621 "The I<new_value> argument specifies the initial expiration and interval for "
12622 "the timer.  The I<itimer> structure used for this argument contains two "
12623 "fields, each of which is in turn a structure of type I<timespec>:"
12624 msgstr ""
12625 "I<new_value> 引き数は、タイマーの満了時間 (expiration) の初期値と間隔 "
12626 "(interval) を 指定する。この引き数で使用されている I<itimerspec> 構造体には "
12627 "2 つのフィールドがあり、各フィールドは I<timespec> 型の構造体である。"
12628
12629 #. type: Plain text
12630 #: build/C/man2/timerfd_create.2:140
12631 #, no-wrap
12632 msgid ""
12633 "struct itimerspec {\n"
12634 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12635 "    struct timespec it_value;     /* Initial expiration */\n"
12636 "};\n"
12637 msgstr ""
12638 "struct itimerspec {\n"
12639 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12640 "    struct timespec it_value;     /* Initial expiration */\n"
12641 "};\n"
12642
12643 #. type: Plain text
12644 #: build/C/man2/timerfd_create.2:152
12645 msgid ""
12646 "I<new_value.it_value> specifies the initial expiration of the timer, in "
12647 "seconds and nanoseconds.  Setting either field of I<new_value.it_value> to a "
12648 "nonzero value arms the timer.  Setting both fields of I<new_value.it_value> "
12649 "to zero disarms the timer."
12650 msgstr ""
12651 "I<new_value.it_value> はタイマーの満了時間の初期値を、秒とナノ秒で指定する。 "
12652 "I<new_value.it_value> のフィールドのうち少なくとも一方に 0 以外の値を設定する"
12653 "と、 タイマーが開始される。 両方のフィールドに 0 を設定すると、タイマーが停止"
12654 "する。"
12655
12656 #. type: Plain text
12657 #: build/C/man2/timerfd_create.2:161
12658 msgid ""
12659 "Setting one or both fields of I<new_value.it_interval> to nonzero values "
12660 "specifies the period, in seconds and nanoseconds, for repeated timer "
12661 "expirations after the initial expiration.  If both fields of I<new_value."
12662 "it_interval> are zero, the timer expires just once, at the time specified by "
12663 "I<new_value.it_value>."
12664 msgstr ""
12665 "I<new_value.it_interval> はタイマーの一回目の満了後に繰り返しタイマーの満了間"
12666 "隔を、秒とナノ秒で指定する。 I<new_value.it_interval> のフィールドのうち少な"
12667 "くとも一方に 0 以外の値を設定すると、 繰り返しタイマーが有効になる。 両方の"
12668 "フィールドに 0 を設定した場合、タイマーは I<new_value.it_value> で指定された"
12669 "時間後に、一回だけ満了して停止する。"
12670
12671 #. type: Plain text
12672 #: build/C/man2/timerfd_create.2:177
12673 msgid ""
12674 "The I<flags> argument is either 0, to start a relative timer (I<new_value."
12675 "it_value> specifies a time relative to the current value of the clock "
12676 "specified by I<clockid>), or B<TFD_TIMER_ABSTIME>, to start an absolute "
12677 "timer (I<new_value.it_value> specifies an absolute time for the clock "
12678 "specified by I<clockid>; that is, the timer will expire when the value of "
12679 "that clock reaches the value specified in I<new_value.it_value>)."
12680 msgstr ""
12681 "I<flags> 引き数には 0 か B<TFD_TIMER_ABSTIME> を指定する。 0 は相対時刻タイ"
12682 "マーを意味し、 I<new_value.it_value> では I<clockid> で指定されたクロックの現"
12683 "在の値からの相対的な時刻を指定する。 B<TFD_TIMER_ABSTIME> は絶対時刻タイマー"
12684 "を意味し、 I<new_value.it_interval> では I<clockid> で指定されたクロックの絶"
12685 "対時刻を指定する。 つまり、クロックの値が I<new_value.it_interval> で指定され"
12686 "た時刻に達したら、タイマーが満了する。"
12687
12688 #. type: Plain text
12689 #: build/C/man2/timerfd_create.2:188
12690 msgid ""
12691 "If the I<old_value> argument is not NULL, then the I<itimerspec> structure "
12692 "that it points to is used to return the setting of the timer that was "
12693 "current at the time of the call; see the description of "
12694 "B<timerfd_gettime>()  following."
12695 msgstr ""
12696 "I<old_value> 引き数が NULL でない場合、 I<old_value> 引き数が指す "
12697 "I<itimerspec> 構造体は、 B<timerfd_settime>() を呼び出した時点でのタイマーの"
12698 "設定を返すのに使用される。 下記の B<timerfd_gettime>() の説明を参照。"
12699
12700 #. type: SS
12701 #: build/C/man2/timerfd_create.2:188
12702 #, no-wrap
12703 msgid "timerfd_gettime()"
12704 msgstr "timerfd_gettime()"
12705
12706 #. type: Plain text
12707 #: build/C/man2/timerfd_create.2:197
12708 msgid ""
12709 "B<timerfd_gettime>()  returns, in I<curr_value>, an I<itimerspec> structure "
12710 "that contains the current setting of the timer referred to by the file "
12711 "descriptor I<fd>."
12712 msgstr ""
12713 "B<timerfd_gettime>()  は、ファイルディスクリプタ I<fd> で参照されるタイマーの"
12714 "現在の設定が入った I<itimerspec> 構造体を、 I<curr_value> に格納して返す。"
12715
12716 #. type: Plain text
12717 #: build/C/man2/timerfd_create.2:207
12718 msgid ""
12719 "The I<it_value> field returns the amount of time until the timer will next "
12720 "expire.  If both fields of this structure are zero, then the timer is "
12721 "currently disarmed.  This field always contains a relative value, regardless "
12722 "of whether the B<TFD_TIMER_ABSTIME> flag was specified when setting the "
12723 "timer."
12724 msgstr ""
12725 "I<it_value> フィールドは、タイマーが次に満了するまでの残り時間を返す。 この構"
12726 "造体の両方のフィールドが 0 であれば、タイマーは現在停止している。 タイマー設"
12727 "定時に B<TFD_TIMER_ABSTIME> フラグが指定されたかに関わらず、このフィールドは"
12728 "常に相対値が格納される。"
12729
12730 #. type: Plain text
12731 #: build/C/man2/timerfd_create.2:214
12732 msgid ""
12733 "The I<it_interval> field returns the interval of the timer.  If both fields "
12734 "of this structure are zero, then the timer is set to expire just once, at "
12735 "the time specified by I<curr_value.it_value>."
12736 msgstr ""
12737 "I<it_interval> フィールドは、タイマーの間隔を返す。 この構造体の両方のフィー"
12738 "ルドが 0 であれば、タイマーは I<new_value.it_value> で指定された時間後に一回"
12739 "だけ満了して停止するように設定されている。"
12740
12741 #. type: SS
12742 #: build/C/man2/timerfd_create.2:214
12743 #, no-wrap
12744 msgid "Operating on a timer file descriptor"
12745 msgstr "タイマー・ファイルディスクリプタに対する操作"
12746
12747 #. type: Plain text
12748 #: build/C/man2/timerfd_create.2:218
12749 msgid ""
12750 "The file descriptor returned by B<timerfd_create>()  supports the following "
12751 "operations:"
12752 msgstr ""
12753 "B<timerfd_create>()  が返すファイルディスクリプタは以下の操作をサポートしてい"
12754 "る。"
12755
12756 #. type: Plain text
12757 #: build/C/man2/timerfd_create.2:232
12758 msgid ""
12759 "If the timer has already expired one or more times since its settings were "
12760 "last modified using B<timerfd_settime>(), or since the last successful "
12761 "B<read>(2), then the buffer given to B<read>(2)  returns an unsigned 8-byte "
12762 "integer (I<uint64_t>)  containing the number of expirations that have "
12763 "occurred.  (The returned value is in host byte order\\(emthat is, the native "
12764 "byte order for integers on the host machine.)"
12765 msgstr ""
12766 "B<timerfd_settime>()  を使ってタイマーの設定が最後変更されて以降、または "
12767 "B<read>(2)  の呼び出しに最後に成功して以降に、タイマーの満了が一回以上発生し"
12768 "ていれば、 B<read>(2)  に渡されたバッファに、タイマー満了回数を示す 8 バイト"
12769 "の unsigned 型の整数 (I<uint64_t>)  が返される (返される値はホストバイトオー"
12770 "ダ、つまりそのホストマシンにおける 整数の通常のバイトオーダである)。"
12771
12772 #. type: Plain text
12773 #: build/C/man2/timerfd_create.2:245
12774 msgid ""
12775 "If no timer expirations have occurred at the time of the B<read>(2), then "
12776 "the call either blocks until the next timer expiration, or fails with the "
12777 "error B<EAGAIN> if the file descriptor has been made nonblocking (via the "
12778 "use of the B<fcntl>(2)  B<F_SETFL> operation to set the B<O_NONBLOCK> flag)."
12779 msgstr ""
12780 "B<read>(2)  を行った時点でタイマーの満了が発生していなければ、 B<read>(2)  は"
12781 "停止 (block) する、もしくはファイルディスクリプタが 非停止 (nonblocking) に設"
12782 "定されている場合はエラー B<EAGAIN> で失敗する (非停止モードにするには、 "
12783 "B<fcntl>(2)  の B<F_SETFL> 命令で B<O_NONBLOCK> フラグをセットする)。"
12784
12785 #. type: Plain text
12786 #: build/C/man2/timerfd_create.2:251
12787 msgid ""
12788 "A B<read>(2)  will fail with the error B<EINVAL> if the size of the supplied "
12789 "buffer is less than 8 bytes."
12790 msgstr ""
12791 "渡されたバッファの大きさが 8 バイト未満の場合、 B<read>(2)  はエラー "
12792 "B<EINVAL> で失敗する。"
12793
12794 #. type: Plain text
12795 #: build/C/man2/timerfd_create.2:262
12796 msgid ""
12797 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
12798 "B<poll>(2)  B<POLLIN> flag)  if one or more timer expirations have occurred."
12799 msgstr ""
12800 "一つ以上のタイマー満了が発生していれば、 ファイルディスクリプタは読み出し可能"
12801 "となる (B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラ"
12802 "グ)。"
12803
12804 #. type: Plain text
12805 #: build/C/man2/timerfd_create.2:269
12806 msgid ""
12807 "The file descriptor also supports the other file-descriptor multiplexing "
12808 "APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
12809 msgstr ""
12810 "このファイルディスクリプタは、他のファイルディスクリプタ多重 API である "
12811 "B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
12812
12813 #. type: Plain text
12814 #: build/C/man2/timerfd_create.2:276
12815 msgid ""
12816 "When the file descriptor is no longer required it should be closed.  When "
12817 "all file descriptors associated with the same timer object have been closed, "
12818 "the timer is disarmed and its resources are freed by the kernel."
12819 msgstr ""
12820 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
12821 "る。 同じ timer オブジェクトに関連付けられたファイルディスクリプタが全て ク"
12822 "ローズされると、そのタイマーは解除され、 そのオブジェクト用の資源がカーネルに"
12823 "より解放される。"
12824
12825 #. type: Plain text
12826 #: build/C/man2/timerfd_create.2:288
12827 msgid ""
12828 "After a B<fork>(2), the child inherits a copy of the file descriptor created "
12829 "by B<timerfd_create>().  The file descriptor refers to the same underlying "
12830 "timer object as the corresponding file descriptor in the parent, and "
12831 "B<read>(2)s in the child will return information about expirations of the "
12832 "timer."
12833 msgstr ""
12834 "B<fork>(2)  が行われると、子プロセスは B<timerfd_create>()  により生成された"
12835 "ファイルディスクリプタのコピーを 継承する。そのファイルディスクリプタは、親プ"
12836 "ロセスの対応する ファイルディスクリプタと同じタイマーオブジェクトを参照してお"
12837 "り、 子プロセスの B<read>(2)  でも同じタイマーの満了に関する情報が返される。"
12838
12839 #. type: Plain text
12840 #: build/C/man2/timerfd_create.2:294
12841 msgid ""
12842 "A file descriptor created by B<timerfd_create>()  is preserved across "
12843 "B<execve>(2), and continues to generate timer expirations if the timer was "
12844 "armed."
12845 msgstr ""
12846 "B<execve>(2)  の前後で B<timerfd_create>()  により生成されたファイルディスク"
12847 "リプタは保持され、 タイマーが開始されていた場合にはタイマーの満了が発生し続け"
12848 "る。"
12849
12850 #. type: Plain text
12851 #: build/C/man2/timerfd_create.2:301
12852 msgid ""
12853 "On success, B<timerfd_create>()  returns a new file descriptor.  On error, "
12854 "-1 is returned and I<errno> is set to indicate the error."
12855 msgstr ""
12856 "成功すると、 B<timerfd_create>()  は新しいファイルディスクリプタを返す。 エ"
12857 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12858
12859 #. type: Plain text
12860 #: build/C/man2/timerfd_create.2:309
12861 msgid ""
12862 "B<timerfd_settime>()  and B<timerfd_gettime>()  return 0 on success; on "
12863 "error they return -1, and set I<errno> to indicate the error."
12864 msgstr ""
12865 "B<timerfd_settime>()  と B<timerfd_gettime>()  は成功すると 0 を返す。 エラー"
12866 "の場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12867
12868 #. type: Plain text
12869 #: build/C/man2/timerfd_create.2:312
12870 msgid "B<timerfd_create>()  can fail with the following errors:"
12871 msgstr "B<timerfd_create>()  は以下のエラーで失敗する可能性がある。"
12872
12873 #. type: Plain text
12874 #: build/C/man2/timerfd_create.2:320
12875 msgid ""
12876 "The I<clockid> argument is neither B<CLOCK_MONOTONIC> nor B<CLOCK_REALTIME>;"
12877 msgstr ""
12878 "I<clockid> 引き数が B<CLOCK_MONOTONIC> でも B<CLOCK_REALTIME> でもない。"
12879
12880 #. type: Plain text
12881 #: build/C/man2/timerfd_create.2:340
12882 msgid "There was insufficient kernel memory to create the timer."
12883 msgstr "タイマーを作成するのに十分なカーネルメモリがなかった。"
12884
12885 #. type: Plain text
12886 #: build/C/man2/timerfd_create.2:345
12887 msgid ""
12888 "B<timerfd_settime>()  and B<timerfd_gettime>()  can fail with the following "
12889 "errors:"
12890 msgstr ""
12891 "B<timerfd_settime>()  と B<timerfd_gettime>()  は以下のエラーで失敗する可能性"
12892 "がある。"
12893
12894 #. type: Plain text
12895 #: build/C/man2/timerfd_create.2:349
12896 msgid "I<fd> is not a valid file descriptor."
12897 msgstr "I<fd> が有効なファイルディスクリプタでない。"
12898
12899 #. type: Plain text
12900 #: build/C/man2/timerfd_create.2:360
12901 msgid "I<fd> is not a valid timerfd file descriptor."
12902 msgstr "I<fd> が有効な timerfd ファイルディスクリプタでない。"
12903
12904 #. type: Plain text
12905 #: build/C/man2/timerfd_create.2:363
12906 msgid "B<timerfd_settime>()  can also fail with the following errors:"
12907 msgstr "B<timerfd_settime>()  は以下のエラーで失敗することもある。"
12908
12909 #. type: Plain text
12910 #: build/C/man2/timerfd_create.2:369
12911 msgid ""
12912 "I<new_value> is not properly initialized (one of the I<tv_nsec> falls "
12913 "outside the range zero to 999,999,999)."
12914 msgstr ""
12915 "I<new_value> が適切に初期化されていない (I<tv_nsec> の一つが 0 から "
12916 "999,999,999 までの範囲に入っていない)。"
12917
12918 #.  This case only checked since 2.6.29, and 2.2.2[78].some-stable-version.
12919 #.  In older kernel versions, no check was made for invalid flags.
12920 #. type: Plain text
12921 #: build/C/man2/timerfd_create.2:375
12922 msgid "I<flags> is invalid."
12923 msgstr "I<flags> が無効である。"
12924
12925 #. type: Plain text
12926 #: build/C/man2/timerfd_create.2:378
12927 msgid ""
12928 "These system calls are available on Linux since kernel 2.6.25.  Library "
12929 "support is provided by glibc since version 2.8."
12930 msgstr ""
12931 "これらのシステムコールはカーネル 2.6.25 以降の Linux で利用可能である。 ライ"
12932 "ブラリ側のサポートはバージョン 2.8 以降の glibc で提供されている。"
12933
12934 #.  2.6.29
12935 #. type: Plain text
12936 #: build/C/man2/timerfd_create.2:386
12937 msgid ""
12938 "Currently, B<timerfd_create>()  supports fewer types of clock IDs than "
12939 "B<timer_create>(2)."
12940 msgstr ""
12941 "現在のところ、 B<timerfd_create>()  が対応している clockid の種類は "
12942 "B<timer_create>(2)  よりも少ない。"
12943
12944 #. type: Plain text
12945 #: build/C/man2/timerfd_create.2:395
12946 msgid ""
12947 "The following program creates a timer and then monitors its progress.  The "
12948 "program accepts up to three command-line arguments.  The first argument "
12949 "specifies the number of seconds for the initial expiration of the timer.  "
12950 "The second argument specifies the interval for the timer, in seconds.  The "
12951 "third argument specifies the number of times the program should allow the "
12952 "timer to expire before terminating.  The second and third command-line "
12953 "arguments are optional."
12954 msgstr ""
12955 "以下のプログラムは、タイマーを作成し、その進捗をモニターするものである。 この"
12956 "プログラムは最大で 3 個のコマンドライン引き数を取り、 第一引き数ではタイマー"
12957 "の満了時間の初期値 (秒数単位) を、 第二引き数ではタイマーの間隔 (秒数単位) "
12958 "を、 第三引き数ではタイマーが何回満了したらプログラムが終了するかを指定す"
12959 "る。 第二引き数と第三引き数は省略可能である。"
12960
12961 #. type: Plain text
12962 #: build/C/man2/timerfd_create.2:397 build/C/man2/wait.2:571
12963 msgid "The following shell session demonstrates the use of the program:"
12964 msgstr "以下のシェルのセッションはこのプログラムの使用例を示したものである。"
12965
12966 #. type: Plain text
12967 #: build/C/man2/timerfd_create.2:412
12968 #, no-wrap
12969 msgid ""
12970 "$B< a.out 3 1 100>\n"
12971 "0.000: timer started\n"
12972 "3.000: read: 1; total=1\n"
12973 "4.000: read: 1; total=2\n"
12974 "B<^Z >                 # type control-Z to suspend the program\n"
12975 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12976 "$ B<fg>                # Resume execution after a few seconds\n"
12977 "a.out 3 1 100\n"
12978 "9.660: read: 5; total=7\n"
12979 "10.000: read: 1; total=8\n"
12980 "11.000: read: 1; total=9\n"
12981 "B<^C >                 # type control-C to suspend the program\n"
12982 msgstr ""
12983 "$B< a.out 3 1 100>\n"
12984 "0.000: timer started\n"
12985 "3.000: read: 1; total=1\n"
12986 "4.000: read: 1; total=2\n"
12987 "B<^Z >                 # type control-Z to suspend the program\n"
12988 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12989 "$ B<fg>                # Resume execution after a few seconds\n"
12990 "a.out 3 1 100\n"
12991 "9.660: read: 5; total=7\n"
12992 "10.000: read: 1; total=8\n"
12993 "11.000: read: 1; total=9\n"
12994 "B<^C >                 # type control-C to suspend the program\n"
12995
12996 #.  The commented out code here is what we currently need until
12997 #.  the required stuff is in glibc
12998 #. /* Link with -lrt */
12999 #. #define _GNU_SOURCE
13000 #. #include <sys/syscall.h>
13001 #. #include <unistd.h>
13002 #. #include <time.h>
13003 #. #if defined(__i386__)
13004 #. #define __NR_timerfd_create 322
13005 #. #define __NR_timerfd_settime 325
13006 #. #define __NR_timerfd_gettime 326
13007 #. #endif
13008 #. static int
13009 #. timerfd_create(int clockid, int flags)
13010 #. {
13011 #.     return syscall(__NR_timerfd_create, clockid, flags);
13012 #. }
13013 #. static int
13014 #. timerfd_settime(int fd, int flags, struct itimerspec *new_value,
13015 #.         struct itimerspec *curr_value)
13016 #. {
13017 #.     return syscall(__NR_timerfd_settime, fd, flags, new_value,
13018 #.                    curr_value);
13019 #. }
13020 #. static int
13021 #. timerfd_gettime(int fd, struct itimerspec *curr_value)
13022 #. {
13023 #.     return syscall(__NR_timerfd_gettime, fd, curr_value);
13024 #. }
13025 #. #define TFD_TIMER_ABSTIME (1 << 0)
13026 #. ////////////////////////////////////////////////////////////
13027 #. type: Plain text
13028 #: build/C/man2/timerfd_create.2:461
13029 #, no-wrap
13030 msgid ""
13031 "#include E<lt>sys/timerfd.hE<gt>\n"
13032 "#include E<lt>time.hE<gt>\n"
13033 "#include E<lt>unistd.hE<gt>\n"
13034 "#include E<lt>stdlib.hE<gt>\n"
13035 "#include E<lt>stdio.hE<gt>\n"
13036 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
13037 msgstr ""
13038 "#include E<lt>sys/timerfd.hE<gt>\n"
13039 "#include E<lt>time.hE<gt>\n"
13040 "#include E<lt>unistd.hE<gt>\n"
13041 "#include E<lt>stdlib.hE<gt>\n"
13042 "#include E<lt>stdio.hE<gt>\n"
13043 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
13044
13045 #. type: Plain text
13046 #: build/C/man2/timerfd_create.2:464
13047 #, no-wrap
13048 msgid ""
13049 "#define handle_error(msg) \\e\n"
13050 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
13051 msgstr ""
13052 "#define handle_error(msg) \\e\n"
13053 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
13054
13055 #. type: Plain text
13056 #: build/C/man2/timerfd_create.2:472
13057 #, no-wrap
13058 msgid ""
13059 "static void\n"
13060 "print_elapsed_time(void)\n"
13061 "{\n"
13062 "    static struct timespec start;\n"
13063 "    struct timespec curr;\n"
13064 "    static int first_call = 1;\n"
13065 "    int secs, nsecs;\n"
13066 msgstr ""
13067 "static void\n"
13068 "print_elapsed_time(void)\n"
13069 "{\n"
13070 "    static struct timespec start;\n"
13071 "    struct timespec curr;\n"
13072 "    static int first_call = 1;\n"
13073 "    int secs, nsecs;\n"
13074
13075 #. type: Plain text
13076 #: build/C/man2/timerfd_create.2:478
13077 #, no-wrap
13078 msgid ""
13079 "    if (first_call) {\n"
13080 "        first_call = 0;\n"
13081 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
13082 "            handle_error(\"clock_gettime\");\n"
13083 "    }\n"
13084 msgstr ""
13085 "    if (first_call) {\n"
13086 "        first_call = 0;\n"
13087 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
13088 "            handle_error(\"clock_gettime\");\n"
13089 "    }\n"
13090
13091 #. type: Plain text
13092 #: build/C/man2/timerfd_create.2:481
13093 #, no-wrap
13094 msgid ""
13095 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
13096 "        handle_error(\"clock_gettime\");\n"
13097 msgstr ""
13098 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
13099 "        handle_error(\"clock_gettime\");\n"
13100
13101 #. type: Plain text
13102 #: build/C/man2/timerfd_create.2:490
13103 #, no-wrap
13104 msgid ""
13105 "    secs = curr.tv_sec - start.tv_sec;\n"
13106 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
13107 "    if (nsecs E<lt> 0) {\n"
13108 "        secs--;\n"
13109 "        nsecs += 1000000000;\n"
13110 "    }\n"
13111 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
13112 "}\n"
13113 msgstr ""
13114 "    secs = curr.tv_sec - start.tv_sec;\n"
13115 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
13116 "    if (nsecs E<lt> 0) {\n"
13117 "        secs--;\n"
13118 "        nsecs += 1000000000;\n"
13119 "    }\n"
13120 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
13121 "}\n"
13122
13123 #. type: Plain text
13124 #: build/C/man2/timerfd_create.2:499
13125 #, no-wrap
13126 msgid ""
13127 "int\n"
13128 "main(int argc, char *argv[])\n"
13129 "{\n"
13130 "    struct itimerspec new_value;\n"
13131 "    int max_exp, fd;\n"
13132 "    struct timespec now;\n"
13133 "    uint64_t exp, tot_exp;\n"
13134 "    ssize_t s;\n"
13135 msgstr ""
13136 "int\n"
13137 "main(int argc, char *argv[])\n"
13138 "{\n"
13139 "    struct itimerspec new_value;\n"
13140 "    int max_exp, fd;\n"
13141 "    struct timespec now;\n"
13142 "    uint64_t exp, tot_exp;\n"
13143 "    ssize_t s;\n"
13144
13145 #. type: Plain text
13146 #: build/C/man2/timerfd_create.2:505
13147 #, no-wrap
13148 msgid ""
13149 "    if ((argc != 2) && (argc != 4)) {\n"
13150 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
13151 "                argv[0]);\n"
13152 "        exit(EXIT_FAILURE);\n"
13153 "    }\n"
13154 msgstr ""
13155 "    if ((argc != 2) && (argc != 4)) {\n"
13156 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
13157 "                argv[0]);\n"
13158 "        exit(EXIT_FAILURE);\n"
13159 "    }\n"
13160
13161 #. type: Plain text
13162 #: build/C/man2/timerfd_create.2:508
13163 #, no-wrap
13164 msgid ""
13165 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
13166 "        handle_error(\"clock_gettime\");\n"
13167 msgstr ""
13168 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
13169 "        handle_error(\"clock_gettime\");\n"
13170
13171 #. type: Plain text
13172 #: build/C/man2/timerfd_create.2:511
13173 #, no-wrap
13174 msgid ""
13175 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
13176 "       expiration and interval as specified in command line */\n"
13177 msgstr ""
13178 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
13179 "       expiration and interval as specified in command line */\n"
13180
13181 #. type: Plain text
13182 #: build/C/man2/timerfd_create.2:522
13183 #, no-wrap
13184 msgid ""
13185 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
13186 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
13187 "    if (argc == 2) {\n"
13188 "        new_value.it_interval.tv_sec = 0;\n"
13189 "        max_exp = 1;\n"
13190 "    } else {\n"
13191 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
13192 "        max_exp = atoi(argv[3]);\n"
13193 "    }\n"
13194 "    new_value.it_interval.tv_nsec = 0;\n"
13195 msgstr ""
13196 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
13197 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
13198 "    if (argc == 2) {\n"
13199 "        new_value.it_interval.tv_sec = 0;\n"
13200 "        max_exp = 1;\n"
13201 "    } else {\n"
13202 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
13203 "        max_exp = atoi(argv[3]);\n"
13204 "    }\n"
13205 "    new_value.it_interval.tv_nsec = 0;\n"
13206
13207 #. type: Plain text
13208 #: build/C/man2/timerfd_create.2:526
13209 #, no-wrap
13210 msgid ""
13211 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
13212 "    if (fd == -1)\n"
13213 "        handle_error(\"timerfd_create\");\n"
13214 msgstr ""
13215 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
13216 "    if (fd == -1)\n"
13217 "        handle_error(\"timerfd_create\");\n"
13218
13219 #. type: Plain text
13220 #: build/C/man2/timerfd_create.2:529
13221 #, no-wrap
13222 msgid ""
13223 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
13224 "        handle_error(\"timerfd_settime\");\n"
13225 msgstr ""
13226 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
13227 "        handle_error(\"timerfd_settime\");\n"
13228
13229 #. type: Plain text
13230 #: build/C/man2/timerfd_create.2:532
13231 #, no-wrap
13232 msgid ""
13233 "    print_elapsed_time();\n"
13234 "    printf(\"timer started\\en\");\n"
13235 msgstr ""
13236 "    print_elapsed_time();\n"
13237 "    printf(\"timer started\\en\");\n"
13238
13239 #. type: Plain text
13240 #: build/C/man2/timerfd_create.2:537
13241 #, no-wrap
13242 msgid ""
13243 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
13244 "        s = read(fd, &exp, sizeof(uint64_t));\n"
13245 "        if (s != sizeof(uint64_t))\n"
13246 "            handle_error(\"read\");\n"
13247 msgstr ""
13248 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
13249 "        s = read(fd, &exp, sizeof(uint64_t));\n"
13250 "        if (s != sizeof(uint64_t))\n"
13251 "            handle_error(\"read\");\n"
13252
13253 #. type: Plain text
13254 #: build/C/man2/timerfd_create.2:544
13255 #, no-wrap
13256 msgid ""
13257 "        tot_exp += exp;\n"
13258 "        print_elapsed_time();\n"
13259 "        printf(\"read: %llu; total=%llu\\en\",\n"
13260 "                (unsigned long long) exp,\n"
13261 "                (unsigned long long) tot_exp);\n"
13262 "    }\n"
13263 msgstr ""
13264 "        tot_exp += exp;\n"
13265 "        print_elapsed_time();\n"
13266 "        printf(\"read: %llu; total=%llu\\en\",\n"
13267 "                (unsigned long long) exp,\n"
13268 "                (unsigned long long) tot_exp);\n"
13269 "    }\n"
13270
13271 #. type: Plain text
13272 #: build/C/man2/timerfd_create.2:560
13273 msgid ""
13274 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
13275 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), "
13276 "B<timer_settime>(2), B<epoll>(7), B<time>(7)"
13277 msgstr ""
13278 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
13279 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), "
13280 "B<timer_settime>(2), B<epoll>(7), B<time>(7)"
13281
13282 #. type: TH
13283 #: build/C/man2/tkill.2:29
13284 #, no-wrap
13285 msgid "TKILL"
13286 msgstr "TKILL"
13287
13288 #. type: Plain text
13289 #: build/C/man2/tkill.2:32
13290 msgid "tkill, tgkill - send a signal to a thread"
13291 msgstr "tkill, tgkill - スレッドにシグナルを送る"
13292
13293 #. type: Plain text
13294 #: build/C/man2/tkill.2:35
13295 #, no-wrap
13296 msgid "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
13297 msgstr "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
13298
13299 #. type: Plain text
13300 #: build/C/man2/tkill.2:37
13301 #, no-wrap
13302 msgid "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
13303 msgstr "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
13304
13305 #. type: Plain text
13306 #: build/C/man2/tkill.2:54
13307 msgid ""
13308 "B<tgkill>()  sends the signal I<sig> to the thread with the thread ID I<tid> "
13309 "in the thread group I<tgid>.  (By contrast, B<kill>(2)  can be used to send "
13310 "a signal only to a process (i.e., thread group)  as a whole, and the signal "
13311 "will be delivered to an arbitrary thread within that process.)"
13312 msgstr ""
13313 "B<tgkill>()  はスレッド・グループ I<tgid> に属するスレッド ID が I<tid> のス"
13314 "レッドにシグナル I<sig> を送る。 (これに対し、 B<kill>(2)  は一つのプロセス "
13315 "(すなわち、スレッド・グループ) にまとめてシグナルを 送るのにだけ利用できる。 "
13316 "B<kill>(2)  で送信されたシグナルはプロセス内の任意のスレッドに配送される。)"
13317
13318 #.  FIXME Maybe say something about the following:
13319 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=12889
13320 #.      Rich Felker <bugdal@aerifal.cx>
13321 #.      There is a race condition in pthread_kill: it is possible that,
13322 #.      between the time pthread_kill reads the pid/tid from the target
13323 #.      thread descriptor and the time it makes the tgkill syscall,
13324 #.      the target thread terminates and the same tid gets assigned
13325 #.      to a new thread in the same process.
13326 #.      (The tgkill syscall was designed to eliminate a similar race
13327 #.      condition in tkill, but it only succeeded in eliminating races
13328 #.      where the tid gets reused in a different process, and does not
13329 #.      help if the same tid gets assigned to a new thread in the
13330 #.      same process.)
13331 #.      The only solution I can see is to introduce a mutex that ensures
13332 #.      that a thread cannot exit while pthread_kill is being called on it.
13333 #.      Note that in most real-world situations, like almost all race
13334 #.      conditions, this one will be extremely rare. To make it
13335 #.      measurable, one could exhaust all but 1-2 available pid values,
13336 #.      possibly by lowering the max pid parameter in /proc, forcing
13337 #.      the same tid to be reused rapidly.
13338 #. type: Plain text
13339 #: build/C/man2/tkill.2:85
13340 msgid ""
13341 "B<tkill>()  is an obsolete predecessor to B<tgkill>().  It allows only the "
13342 "target thread ID to be specified, which may result in the wrong thread being "
13343 "signaled if a thread terminates and its thread ID is recycled.  Avoid using "
13344 "this system call."
13345 msgstr ""
13346 "B<tkill>()  はもう使われなくなった B<tgkill>()  の先祖である。 B<tkill>()  で"
13347 "はシグナルの送り先のスレッド ID しか指定できない。 そのため、スレッドが終了し"
13348 "て、そのスレッド ID が再利用される場合に、 意図しないスレッドにシグナルが送ら"
13349 "れる可能性がある。 このシステムコールの使用は避けること。"
13350
13351 #. type: Plain text
13352 #: build/C/man2/tkill.2:88
13353 msgid ""
13354 "These are the raw system call interfaces, meant for internal thread library "
13355 "use."
13356 msgstr ""
13357 "これらはシステムコールへの直接のインターフェースであり、 スレッド・ライブラリ"
13358 "内部での使用を意図したものである。"
13359
13360 #. type: Plain text
13361 #: build/C/man2/tkill.2:96
13362 msgid "An invalid thread ID, thread group ID, or signal was specified."
13363 msgstr "指定されたスレッド ID、スレッドグループ ID、シグナルが不正であった。"
13364
13365 #. type: Plain text
13366 #: build/C/man2/tkill.2:101
13367 msgid "Permission denied.  For the required permissions, see B<kill>(2)."
13368 msgstr ""
13369 "許可がなかった。どのような許可が必要かについては、 B<kill>(2)  を参照のこと。"
13370
13371 #. type: Plain text
13372 #: build/C/man2/tkill.2:104
13373 msgid "No process with the specified thread ID (and thread group ID) exists."
13374 msgstr ""
13375 "指定されたスレッドID (とスレッド・グループID) を持つプロセスが存在しない。"
13376
13377 #. type: Plain text
13378 #: build/C/man2/tkill.2:109
13379 msgid ""
13380 "B<tkill>()  is supported since Linux 2.4.19 / 2.5.4.  B<tgkill>()  was added "
13381 "in Linux 2.5.75."
13382 msgstr ""
13383 "B<tkill>()  は Linux 2.4.19 / 2.5.4 以降でサポートされ、 B<tgkill>()  は "
13384 "Linux 2.5.75 で追加された。"
13385
13386 #. type: Plain text
13387 #: build/C/man2/tkill.2:115
13388 msgid ""
13389 "B<tkill>()  and B<tgkill>()  are Linux-specific and should not be used in "
13390 "programs that are intended to be portable."
13391 msgstr ""
13392 "B<tkill>()  と B<tgkill>()  は Linux 固有であり、 移植を想定したプログラムで"
13393 "は使用すべきではない。"
13394
13395 #. type: Plain text
13396 #: build/C/man2/tkill.2:121
13397 msgid ""
13398 "See the description of B<CLONE_THREAD> in B<clone>(2)  for an explanation of "
13399 "thread groups."
13400 msgstr ""
13401 "スレッド・グループの説明については B<clone>(2)  の B<CLONE_THREAD> の説明を参"
13402 "照のこと。"
13403
13404 #. type: Plain text
13405 #: build/C/man2/tkill.2:124
13406 msgid ""
13407 "Glibc does not provide wrappers for these system calls; call them using "
13408 "B<syscall>(2)."
13409 msgstr ""
13410 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
13411 "B<syscall>(2)  を使って呼び出すこと。"
13412
13413 #. type: Plain text
13414 #: build/C/man2/tkill.2:129
13415 msgid "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
13416 msgstr "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
13417
13418 #. type: TH
13419 #: build/C/man2/wait.2:49
13420 #, no-wrap
13421 msgid "WAIT"
13422 msgstr "WAIT"
13423
13424 #. type: Plain text
13425 #: build/C/man2/wait.2:52
13426 msgid "wait, waitpid, waitid - wait for process to change state"
13427 msgstr "wait, waitpid, waitid - プロセスの状態変化を待つ"
13428
13429 #. type: Plain text
13430 #: build/C/man2/wait.2:54
13431 msgid "B<#include E<lt>sys/types.hE<gt>>"
13432 msgstr "B<#include E<lt>sys/types.hE<gt>>"
13433
13434 #. type: Plain text
13435 #: build/C/man2/wait.2:56
13436 msgid "B<#include E<lt>sys/wait.hE<gt>>"
13437 msgstr "B<#include E<lt>sys/wait.hE<gt>>"
13438
13439 #. type: Plain text
13440 #: build/C/man2/wait.2:58
13441 msgid "B<pid_t wait(int *>I<status>B<);>"
13442 msgstr "B<pid_t wait(int *>I<status>B<);>"
13443
13444 #. type: Plain text
13445 #: build/C/man2/wait.2:60
13446 msgid ""
13447 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
13448 msgstr ""
13449 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
13450
13451 #. type: Plain text
13452 #: build/C/man2/wait.2:65
13453 #, no-wrap
13454 msgid ""
13455 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, int >I<options>B<);>\n"
13456 "                /* This is the glibc and POSIX interface; see\n"
13457 "                   NOTES for information on the raw system call. */\n"
13458 msgstr ""
13459 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, int >I<options>B<);>\n"
13460 "                /* これは glibc と POSIX のインターフェイスである。\n"
13461 "                   生のシステムコールについての情報は「注意」の節を参照。 */\n"
13462
13463 #. type: Plain text
13464 #: build/C/man2/wait.2:74
13465 msgid "B<waitid>():"
13466 msgstr "B<waitid>():"
13467
13468 #. type: Plain text
13469 #: build/C/man2/wait.2:78
13470 msgid ""
13471 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13472 "_XOPEN_SOURCE_EXTENDED"
13473 msgstr ""
13474 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13475 "_XOPEN_SOURCE_EXTENDED"
13476
13477 #. type: Plain text
13478 #: build/C/man2/wait.2:93
13479 msgid ""
13480 "All of these system calls are used to wait for state changes in a child of "
13481 "the calling process, and obtain information about the child whose state has "
13482 "changed.  A state change is considered to be: the child terminated; the "
13483 "child was stopped by a signal; or the child was resumed by a signal.  In the "
13484 "case of a terminated child, performing a wait allows the system to release "
13485 "the resources associated with the child; if a wait is not performed, then "
13486 "the terminated child remains in a \"zombie\" state (see NOTES below)."
13487 msgstr ""
13488 "これらのシステムコールはいずれも、呼び出し元プロセスの子プロセスの 状態変化を"
13489 "待ち、状態が変化したその子プロセスの情報を取得するのに 使用される。 状態変化"
13490 "とは以下のいずれかである: 子プロセスの終了、シグナルによる子プロセスの停止、 "
13491 "シグナルによる子プロセスの再開。 子プロセスが終了した場合は、wait を実行する"
13492 "ことで、 システムがその子プロセスに関連するリソースを解放できるようになる。 "
13493 "wait が実行されなかった場合には、終了した子プロセスは 「ゾンビ」状態で残り続"
13494 "ける (下記の注意の章を参照のこと)。"
13495
13496 #. type: Plain text
13497 #: build/C/man2/wait.2:105
13498 msgid ""
13499 "If a child has already changed state, then these calls return immediately.  "
13500 "Otherwise, they block until either a child changes state or a signal handler "
13501 "interrupts the call (assuming that system calls are not automatically "
13502 "restarted using the B<SA_RESTART> flag of B<sigaction>(2)).  In the "
13503 "remainder of this page, a child whose state has changed and which has not "
13504 "yet been waited upon by one of these system calls is termed I<waitable>."
13505 msgstr ""
13506 "子プロセスの状態変化がすでに発生していた場合、これらのコールは すぐに復帰す"
13507 "る。それ以外の場合は、子プロセスの状態変化が起こるか、 シグナルハンドラにより"
13508 "システムコールが中断されるまで、 停止 (block) する (後者は、 "
13509 "B<sigaction>(2)  の B<SA_RESTART> フラグによりシステムコールが自動的に再ス"
13510 "タートするようになっていない 場合の動作である)。 以下の説明では、状態変化が起"
13511 "こったがこれらのシステムコールのいずれかに よって待たれていない子プロセスを "
13512 "I<waitable> (待ち可能) と呼ぶ。"
13513
13514 #. type: SS
13515 #: build/C/man2/wait.2:105
13516 #, no-wrap
13517 msgid "wait() and waitpid()"
13518 msgstr "wait() と waitpid()"
13519
13520 #. type: Plain text
13521 #: build/C/man2/wait.2:113
13522 msgid ""
13523 "The B<wait>()  system call suspends execution of the calling process until "
13524 "one of its children terminates.  The call I<wait(&status)> is equivalent to:"
13525 msgstr ""
13526 "B<wait>()  システムコールは、子プロセスのいずれかが終了するまで 呼び出し元の"
13527 "プロセスの実行を一時停止する。 呼び出し I<wait(&status)> は以下と等価である:"
13528
13529 #. type: Plain text
13530 #: build/C/man2/wait.2:116
13531 #, no-wrap
13532 msgid "    waitpid(-1, &status, 0);\n"
13533 msgstr "    waitpid(-1, &status, 0);\n"
13534
13535 #. type: Plain text
13536 #: build/C/man2/wait.2:130
13537 msgid ""
13538 "The B<waitpid>()  system call suspends execution of the calling process "
13539 "until a child specified by I<pid> argument has changed state.  By default, "
13540 "B<waitpid>()  waits only for terminated children, but this behavior is "
13541 "modifiable via the I<options> argument, as described below."
13542 msgstr ""
13543 "B<waitpid>()  システムコールは、 I<pid> 引き数で指定した子プロセスの状態変化"
13544 "が起こるまで、 呼び出し元のプロセスの実行を一時停止する。デフォルトでは、 "
13545 "B<waitpid>()  は子プロセスの終了だけを待つが、この動作は I<options> 引き数に"
13546 "より変更可能である。"
13547
13548 #. type: Plain text
13549 #: build/C/man2/wait.2:134
13550 msgid "The value of I<pid> can be:"
13551 msgstr "I<pid> に指定できる値は以下の通り:"
13552
13553 #. type: IP
13554 #: build/C/man2/wait.2:134
13555 #, no-wrap
13556 msgid "E<lt> -1"
13557 msgstr "E<lt> -1"
13558
13559 #. type: Plain text
13560 #: build/C/man2/wait.2:138
13561 msgid ""
13562 "meaning wait for any child process whose process group ID is equal to the "
13563 "absolute value of I<pid>."
13564 msgstr ""
13565 "プロセスグループID が I<pid> の絶対値に等しい子プロセスのいずれかが終了するま"
13566 "でを待つ。"
13567
13568 #. type: IP
13569 #: build/C/man2/wait.2:138
13570 #, no-wrap
13571 msgid "-1"
13572 msgstr "-1"
13573
13574 #. type: Plain text
13575 #: build/C/man2/wait.2:140
13576 msgid "meaning wait for any child process."
13577 msgstr "子プロセスのどれかが終了するまで待つ。"
13578
13579 #. type: IP
13580 #: build/C/man2/wait.2:140
13581 #, no-wrap
13582 msgid "0"
13583 msgstr "0"
13584
13585 #. type: Plain text
13586 #: build/C/man2/wait.2:143
13587 msgid ""
13588 "meaning wait for any child process whose process group ID is equal to that "
13589 "of the calling process."
13590 msgstr ""
13591 "プロセスグループID が呼び出したプロセスのものと等しい 子プロセスを待つ。"
13592
13593 #. type: IP
13594 #: build/C/man2/wait.2:143
13595 #, no-wrap
13596 msgid "E<gt> 0"
13597 msgstr "E<gt> 0"
13598
13599 #. type: Plain text
13600 #: build/C/man2/wait.2:147
13601 msgid ""
13602 "meaning wait for the child whose process ID is equal to the value of I<pid>."
13603 msgstr "プロセスID が I<pid> に等しい子プロセスを待つ。"
13604
13605 #. type: Plain text
13606 #: build/C/man2/wait.2:151
13607 msgid ""
13608 "The value of I<options> is an OR of zero or more of the following constants:"
13609 msgstr "I<options> の値は次の定数の 0 個以上の論理和である:"
13610
13611 #. type: TP
13612 #: build/C/man2/wait.2:151 build/C/man2/wait.2:280
13613 #, no-wrap
13614 msgid "B<WNOHANG>"
13615 msgstr "B<WNOHANG>"
13616
13617 #. type: Plain text
13618 #: build/C/man2/wait.2:154
13619 msgid "return immediately if no child has exited."
13620 msgstr "状態変化が起こった子プロセスがない場合にすぐに復帰する。"
13621
13622 #. type: TP
13623 #: build/C/man2/wait.2:154
13624 #, no-wrap
13625 msgid "B<WUNTRACED>"
13626 msgstr "B<WUNTRACED>"
13627
13628 #. type: Plain text
13629 #: build/C/man2/wait.2:163
13630 msgid ""
13631 "also return if a child has stopped (but not traced via B<ptrace>(2)).  "
13632 "Status for I<traced> children which have stopped is provided even if this "
13633 "option is not specified."
13634 msgstr ""
13635 "子プロセスが停止した場合にも復帰する (子プロセスが B<ptrace>(2)  でトレースさ"
13636 "れている場合は除く)。 このオプションが指定されていない場合でも、停止したプロ"
13637 "セスが 「トレース (traced)」されていれば、子プロセスの状態が報告される。"
13638
13639 #. type: TP
13640 #: build/C/man2/wait.2:163
13641 #, no-wrap
13642 msgid "B<WCONTINUED> (since Linux 2.6.10)"
13643 msgstr "B<WCONTINUED> (Linux 2.6.10 以降)"
13644
13645 #. type: Plain text
13646 #: build/C/man2/wait.2:167
13647 msgid ""
13648 "also return if a stopped child has been resumed by delivery of B<SIGCONT>."
13649 msgstr "停止した子プロセスが B<SIGCONT> の配送により再開した場合にも復帰する。"
13650
13651 #. type: Plain text
13652 #: build/C/man2/wait.2:169
13653 msgid "(For Linux-only options, see below.)"
13654 msgstr "(Linux 専用オプションについては後述する)"
13655
13656 #. type: Plain text
13657 #: build/C/man2/wait.2:183
13658 msgid ""
13659 "If I<status> is not NULL, B<wait>()  and B<waitpid>()  store status "
13660 "information in the I<int> to which it points.  This integer can be inspected "
13661 "with the following macros (which take the integer itself as an argument, not "
13662 "a pointer to it, as is done in B<wait>()  and B<waitpid>()!):"
13663 msgstr ""
13664 "I<status> が NULL でなければ、 B<wait>()  や B<waitpid>()  は I<status> で指"
13665 "す I<int> に状態情報を格納する。 この整数は以下のマクロを使って検査できる。 "
13666 "(これらのマクロの引き数には、 B<wait>()  や B<waitpid>()  が書き込んだ整数そ"
13667 "のものを指定する。ポインタではない!)"
13668
13669 #. type: TP
13670 #: build/C/man2/wait.2:183
13671 #, no-wrap
13672 msgid "B<WIFEXITED(>I<status>B<)>"
13673 msgstr "B<WIFEXITED(>I<status>B<)>"
13674
13675 #. type: Plain text
13676 #: build/C/man2/wait.2:191
13677 msgid ""
13678 "returns true if the child terminated normally, that is, by calling "
13679 "B<exit>(3)  or B<_exit>(2), or by returning from main()."
13680 msgstr ""
13681 "子プロセスが正常に終了した場合に真を返す。 「正常に」とは、 B<exit>(3)  か "
13682 "B<_exit>(2)  が呼び出された場合、もしくは main() から復帰した場合である。"
13683
13684 #. type: TP
13685 #: build/C/man2/wait.2:191
13686 #, no-wrap
13687 msgid "B<WEXITSTATUS(>I<status>B<)>"
13688 msgstr "B<WEXITSTATUS(>I<status>B<)>"
13689
13690 #. type: Plain text
13691 #: build/C/man2/wait.2:204
13692 msgid ""
13693 "returns the exit status of the child.  This consists of the least "
13694 "significant 8 bits of the I<status> argument that the child specified in a "
13695 "call to B<exit>(3)  or B<_exit>(2)  or as the argument for a return "
13696 "statement in main().  This macro should be employed only if B<WIFEXITED> "
13697 "returned true."
13698 msgstr ""
13699 "子プロセスの終了ステータスを返す。 終了ステータスは I<status> 引き数の下位 8"
13700 "ビットで構成されており、 B<exit>(3)  や B<_exit>(2)  の呼び出し時に渡された"
13701 "値、もしくは main() の return 文の 引き数として指定された値である。 このマク"
13702 "ロを使用するのは B<WIFEXITED> が真を返した場合だけにすべきである。"
13703
13704 #. type: TP
13705 #: build/C/man2/wait.2:204
13706 #, no-wrap
13707 msgid "B<WIFSIGNALED(>I<status>B<)>"
13708 msgstr "B<WIFSIGNALED(>I<status>B<)>"
13709
13710 #. type: Plain text
13711 #: build/C/man2/wait.2:207
13712 msgid "returns true if the child process was terminated by a signal."
13713 msgstr "子プロセスがシグナルにより終了した場合に真を返す。"
13714
13715 #. type: TP
13716 #: build/C/man2/wait.2:207
13717 #, no-wrap
13718 msgid "B<WTERMSIG(>I<status>B<)>"
13719 msgstr "B<WTERMSIG(>I<status>B<)>"
13720
13721 #. type: Plain text
13722 #: build/C/man2/wait.2:214
13723 msgid ""
13724 "returns the number of the signal that caused the child process to "
13725 "terminate.  This macro should be employed only if B<WIFSIGNALED> returned "
13726 "true."
13727 msgstr ""
13728 "子プロセス終了の原因となったシグナルの番号を返す。 このマクロを使用するのは "
13729 "B<WIFSIGNALED> が真を返した場合だけにすべきである。"
13730
13731 #. type: TP
13732 #: build/C/man2/wait.2:214
13733 #, no-wrap
13734 msgid "B<WCOREDUMP(>I<status>B<)>"
13735 msgstr "B<WCOREDUMP(>I<status>B<)>"
13736
13737 #. type: Plain text
13738 #: build/C/man2/wait.2:223
13739 msgid ""
13740 "returns true if the child produced a core dump.  This macro should be "
13741 "employed only if B<WIFSIGNALED> returned true.  This macro is not specified "
13742 "in POSIX.1-2001 and is not available on some UNIX implementations (e.g., "
13743 "AIX, SunOS).  Only use this enclosed in #ifdef WCOREDUMP ... #endif."
13744 msgstr ""
13745 "子プロセスがコアダンプを生成した場合に真を返す。 このマクロを使用するのは "
13746 "B<WIFSIGNALED> が真を返した場合だけにすべきである。 このマクロは "
13747 "POSIX.1-2001 では規定されておらず、 (AIX, SunOS などの) いくつかの UNIX の実"
13748 "装では利用できない。 必ず #ifdef WCOREDUMP ... #endif で括って使用すること。"
13749
13750 #. type: TP
13751 #: build/C/man2/wait.2:223
13752 #, no-wrap
13753 msgid "B<WIFSTOPPED(>I<status>B<)>"
13754 msgstr "B<WIFSTOPPED(>I<status>B<)>"
13755
13756 #. type: Plain text
13757 #: build/C/man2/wait.2:230
13758 msgid ""
13759 "returns true if the child process was stopped by delivery of a signal; this "
13760 "is possible only if the call was done using B<WUNTRACED> or when the child "
13761 "is being traced (see B<ptrace>(2))."
13762 msgstr ""
13763 "子プロセスがシグナルの配送により停止した場合に真を返す。 これが真になるのは、"
13764 "システムコールが B<WUNTRACED> を指定して呼び出された場合か、子プロセスがト"
13765 "レースされている場合 (B<ptrace>(2)  参照) だけである。"
13766
13767 #. type: TP
13768 #: build/C/man2/wait.2:230
13769 #, no-wrap
13770 msgid "B<WSTOPSIG(>I<status>B<)>"
13771 msgstr "B<WSTOPSIG(>I<status>B<)>"
13772
13773 #. type: Plain text
13774 #: build/C/man2/wait.2:236
13775 msgid ""
13776 "returns the number of the signal which caused the child to stop.  This macro "
13777 "should be employed only if B<WIFSTOPPED> returned true."
13778 msgstr ""
13779 "子プロセスを停止させたシグナルの番号を返す。 このマクロを使用するのは "
13780 "B<WIFSTOPPED> が 0 以外を返した場合だけにすべきである。"
13781
13782 #. type: TP
13783 #: build/C/man2/wait.2:236
13784 #, no-wrap
13785 msgid "B<WIFCONTINUED(>I<status>B<)>"
13786 msgstr "B<WIFCONTINUED(>I<status>B<)>"
13787
13788 #. type: Plain text
13789 #: build/C/man2/wait.2:241
13790 msgid ""
13791 "(since Linux 2.6.10)  returns true if the child process was resumed by "
13792 "delivery of B<SIGCONT>."
13793 msgstr ""
13794 "(Linux 2.6.10 以降)  子プロセスが B<SIGCONT> の配送により再開した場合に真を返"
13795 "す。"
13796
13797 #. type: SS
13798 #: build/C/man2/wait.2:241
13799 #, no-wrap
13800 msgid "waitid()"
13801 msgstr "waitid()"
13802
13803 #. type: Plain text
13804 #: build/C/man2/wait.2:246
13805 msgid ""
13806 "The B<waitid>()  system call (available since Linux 2.6.9) provides more "
13807 "precise control over which child state changes to wait for."
13808 msgstr ""
13809 "B<waitid>()  システムコール (Linux 2.6.9 以降で利用可能) を使うと、 子プロセ"
13810 "スのどの状態変化を待つかについてより細かな制御ができる。"
13811
13812 #. type: Plain text
13813 #: build/C/man2/wait.2:252
13814 msgid ""
13815 "The I<idtype> and I<id> arguments select the child(ren) to wait for, as "
13816 "follows:"
13817 msgstr "引き数 I<idtype> と I<id> でどの子プロセスを待つかを選択する:"
13818
13819 #. type: IP
13820 #: build/C/man2/wait.2:252
13821 #, no-wrap
13822 msgid "I<idtype> == B<P_PID>"
13823 msgstr "I<idtype> == B<P_PID>"
13824
13825 #. type: Plain text
13826 #: build/C/man2/wait.2:255
13827 msgid "Wait for the child whose process ID matches I<id>."
13828 msgstr "プロセスID が I<id> と一致する子プロセスを待つ。"
13829
13830 #. type: IP
13831 #: build/C/man2/wait.2:255
13832 #, no-wrap
13833 msgid "I<idtype> == B<P_PGID>"
13834 msgstr "I<idtype> == B<P_PGID>"
13835
13836 #. type: Plain text
13837 #: build/C/man2/wait.2:258
13838 msgid "Wait for any child whose process group ID matches I<id>."
13839 msgstr "プロセスグループID が I<id> と一致する子プロセスを待つ。"
13840
13841 #. type: IP
13842 #: build/C/man2/wait.2:258
13843 #, no-wrap
13844 msgid "I<idtype> == B<P_ALL>"
13845 msgstr "I<idtype> == B<P_ALL>"
13846
13847 #. type: Plain text
13848 #: build/C/man2/wait.2:262
13849 msgid "Wait for any child; I<id> is ignored."
13850 msgstr "子プロセス全部を対象に待つ。 I<id> は無視される。"
13851
13852 #. type: Plain text
13853 #: build/C/man2/wait.2:266
13854 msgid ""
13855 "The child state changes to wait for are specified by ORing one or more of "
13856 "the following flags in I<options>:"
13857 msgstr ""
13858 "子プロセスのどの状態変化を待つかは以下のフラグで指定する (I<options> には 1個"
13859 "以上のフラグの論理和をとって指定する):"
13860
13861 #. type: TP
13862 #: build/C/man2/wait.2:266
13863 #, no-wrap
13864 msgid "B<WEXITED>"
13865 msgstr "B<WEXITED>"
13866
13867 #. type: Plain text
13868 #: build/C/man2/wait.2:269
13869 msgid "Wait for children that have terminated."
13870 msgstr "子プロセスの終了を待つ。"
13871
13872 #. type: TP
13873 #: build/C/man2/wait.2:269
13874 #, no-wrap
13875 msgid "B<WSTOPPED>"
13876 msgstr "B<WSTOPPED>"
13877
13878 #. type: Plain text
13879 #: build/C/man2/wait.2:272
13880 msgid "Wait for children that have been stopped by delivery of a signal."
13881 msgstr "子プロセスがシグナルの配送により停止するのを待つ。"
13882
13883 #. type: TP
13884 #: build/C/man2/wait.2:272
13885 #, no-wrap
13886 msgid "B<WCONTINUED>"
13887 msgstr "B<WCONTINUED>"
13888
13889 #. type: Plain text
13890 #: build/C/man2/wait.2:277
13891 msgid ""
13892 "Wait for (previously stopped) children that have been resumed by delivery of "
13893 "B<SIGCONT>."
13894 msgstr "(停止していた) 子プロセスが B<SIGCONT> が配送されて再開するのを待つ。"
13895
13896 #. type: Plain text
13897 #: build/C/man2/wait.2:280
13898 msgid "The following flags may additionally be ORed in I<options>:"
13899 msgstr "さらに以下のフラグを論理和の形で I<options> に指定できる:"
13900
13901 #. type: Plain text
13902 #: build/C/man2/wait.2:284
13903 msgid "As for B<waitpid>()."
13904 msgstr "B<waitpid>()  と同様。"
13905
13906 #. type: TP
13907 #: build/C/man2/wait.2:284
13908 #, no-wrap
13909 msgid "B<WNOWAIT>"
13910 msgstr "B<WNOWAIT>"
13911
13912 #. type: Plain text
13913 #: build/C/man2/wait.2:288
13914 msgid ""
13915 "Leave the child in a waitable state; a later wait call can be used to again "
13916 "retrieve the child status information."
13917 msgstr ""
13918 "waitable 状態のプロセスをそのままにする。この後で wait コールを 使って、同じ"
13919 "子プロセスの状態情報をもう一度取得することができる。"
13920
13921 #. type: Plain text
13922 #: build/C/man2/wait.2:295
13923 msgid ""
13924 "Upon successful return, B<waitid>()  fills in the following fields of the "
13925 "I<siginfo_t> structure pointed to by I<infop>:"
13926 msgstr ""
13927 "成功した場合には、 B<waitid>()  は I<infop> が指す I<siginfo_t> 構造体の以下"
13928 "のフィールドを設定する:"
13929
13930 #. type: Plain text
13931 #: build/C/man2/wait.2:298
13932 msgid "The process ID of the child."
13933 msgstr "子プロセスのプロセスID。"
13934
13935 #. type: Plain text
13936 #: build/C/man2/wait.2:302
13937 msgid ""
13938 "The real user ID of the child.  (This field is not set on most other "
13939 "implementations.)"
13940 msgstr ""
13941 "子プロセスの実ユーザID (このフィールドは他のほとんどの実装では設定されない)。"
13942
13943 #. type: Plain text
13944 #: build/C/man2/wait.2:306
13945 msgid "Always set to B<SIGCHLD>."
13946 msgstr "常に B<SIGCHLD> が設定される。"
13947
13948 #. type: TP
13949 #: build/C/man2/wait.2:306
13950 #, no-wrap
13951 msgid "I<si_status>"
13952 msgstr "I<si_status>"
13953
13954 #. type: Plain text
13955 #: build/C/man2/wait.2:316
13956 msgid ""
13957 "Either the exit status of the child, as given to B<_exit>(2)  (or "
13958 "B<exit>(3)), or the signal that caused the child to terminate, stop, or "
13959 "continue.  The I<si_code> field can be used to determine how to interpret "
13960 "this field."
13961 msgstr ""
13962 "B<_exit>(2)  (か B<exit>(3))  に指定された子プロセスの終了ステータス、もしく"
13963 "は 子プロセスの終了、停止、再開の原因となったシグナルが設定される。 この"
13964 "フィールドをどう解釈するかは、 I<si_code> フィールドを参照して決めることがで"
13965 "きる。"
13966
13967 #. type: Plain text
13968 #: build/C/man2/wait.2:333
13969 msgid ""
13970 "Set to one of: B<CLD_EXITED> (child called B<_exit>(2)); B<CLD_KILLED> "
13971 "(child killed by signal); B<CLD_DUMPED> (child killed by signal, and dumped "
13972 "core); B<CLD_STOPPED> (child stopped by signal); B<CLD_TRAPPED> (traced "
13973 "child has trapped); or B<CLD_CONTINUED> (child continued by B<SIGCONT>)."
13974 msgstr ""
13975 "以下のいずれかが設定される: B<CLD_EXITED> (子プロセスが B<_exit>(2)  を呼び出"
13976 "した); B<CLD_KILLED> (シグナルにより子プロセスが kill された); B<CLD_DUMPED> "
13977 "(シグナルにより子プロセスが kill され、コア・ダンプが行われた); "
13978 "B<CLD_STOPPED> (シグナルにより子プロセスが停止した); B<CLD_TRAPPED> (トレース"
13979 "されていた子プロセスがトラップを受信した); B<CLD_CONTINUED> (B<SIGCONT> によ"
13980 "り子プロセスが再開された)。"
13981
13982 #.  POSIX.1-2001 leaves this possibility unspecified; most
13983 #.  implementations (including Linux) zero out the structure
13984 #.  in this case, but at least one implementation (AIX 5.1)
13985 #.  does not -- MTK Nov 04
13986 #. type: Plain text
13987 #: build/C/man2/wait.2:355
13988 msgid ""
13989 "If B<WNOHANG> was specified in I<options> and there were no children in a "
13990 "waitable state, then B<waitid>()  returns 0 immediately and the state of the "
13991 "I<siginfo_t> structure pointed to by I<infop> is unspecified.  To "
13992 "distinguish this case from that where a child was in a waitable state, zero "
13993 "out the I<si_pid> field before the call and check for a nonzero value in "
13994 "this field after the call returns."
13995 msgstr ""
13996 "B<WNOHANG> が I<options> に指定されていて、 waitable 状態の子プロセスがなかっ"
13997 "た場合には、 B<waitid>()  はすぐに 0 を返す。このとき、 I<infop> が指す "
13998 "I<siginfo_t> 構造体の内容は不定である。 この場合を waitable 状態の子プロセス"
13999 "があった場合と区別するには、 B<waitid>()  を呼び出す前に I<si_pid> を 0 にし"
14000 "ておき、コールが復帰した後でこのフィールドが 0 以外の値かどうか をチェックす"
14001 "ればよい。"
14002
14003 #. type: Plain text
14004 #: build/C/man2/wait.2:359
14005 msgid ""
14006 "B<wait>(): on success, returns the process ID of the terminated child; on "
14007 "error, -1 is returned."
14008 msgstr ""
14009 "B<wait>(): 成功すると、終了した子プロセスのプロセスID を返す。 エラーの場合 "
14010 "-1 を返す。"
14011
14012 #. type: Plain text
14013 #: build/C/man2/wait.2:368
14014 msgid ""
14015 "B<waitpid>(): on success, returns the process ID of the child whose state "
14016 "has changed; if B<WNOHANG> was specified and one or more child(ren) "
14017 "specified by I<pid> exist, but have not yet changed state, then 0 is "
14018 "returned.  On error, -1 is returned."
14019 msgstr ""
14020 "B<waitpid>(): 成功すると、状態が変化した子プロセスのプロセスID を返す。 "
14021 "B<WNOHANG> が指定されていて、 I<pid> で指示された子プロセスが一つ以上存在する"
14022 "が、どの子プロセスでも 状態変化が起こっていなかった場合は、 0 を返す。 エラー"
14023 "の場合 -1 を返す。"
14024
14025 #.  FIXME As reported by Vegard Nossum, if infop is NULL, then waitid()
14026 #.  returns the PID of the child.  Either this is a bug, or it is intended
14027 #.  behavior that needs to be documented.  See my Jan 2009 LKML mail
14028 #.  "waitid() return value strangeness when infop is NULL".
14029 #. type: Plain text
14030 #: build/C/man2/wait.2:381
14031 msgid ""
14032 "B<waitid>(): returns 0 on success or if B<WNOHANG> was specified and no "
14033 "child(ren) specified by I<id> has yet changed state; on error, -1 is "
14034 "returned."
14035 msgstr ""
14036 "B<waitid>(): 成功すると 0 を返す。 B<WNOHANG> が指定されていて、 I<pid> で指"
14037 "示された子プロセスで状態変化が起こっていなかった場合にも 0 を返す。"
14038
14039 #. type: Plain text
14040 #: build/C/man2/wait.2:385
14041 msgid ""
14042 "Each of these calls sets I<errno> to an appropriate value in the case of an "
14043 "error."
14044 msgstr ""
14045 "エラーの場合 -1 を返す。 エラーの場合、これらのシステムコールはいずれも "
14046 "I<errno> に適切な値を設定する。"
14047
14048 #. type: TP
14049 #: build/C/man2/wait.2:386 build/C/man2/wait.2:391
14050 #, no-wrap
14051 msgid "B<ECHILD>"
14052 msgstr "B<ECHILD>"
14053
14054 #. type: Plain text
14055 #: build/C/man2/wait.2:391
14056 msgid ""
14057 "(for B<wait>())  The calling process does not have any unwaited-for children."
14058 msgstr ""
14059 "(B<wait>()  の場合)  呼び出し元プロセスには、wait を行っていない子プロセスは"
14060 "ない。"
14061
14062 #. type: Plain text
14063 #: build/C/man2/wait.2:411
14064 msgid ""
14065 "(for B<waitpid>()  or B<waitid>())  The process specified by I<pid> "
14066 "(B<waitpid>())  or I<idtype> and I<id> (B<waitid>())  does not exist or is "
14067 "not a child of the calling process.  (This can happen for one's own child if "
14068 "the action for B<SIGCHLD> is set to B<SIG_IGN>.  See also the I<Linux Notes> "
14069 "section about threads.)"
14070 msgstr ""
14071 "(B<waitpid>()  か B<waitid>()  の場合)  I<pid> (B<waitpid>())  か I<idtype> "
14072 "と I<id> (B<waitid>())  で指定したプロセスが存在しないか、呼び出し元プロセス"
14073 "の子プロセスでない (B<SIGCHLD> の動作に B<SIG_IGN> を設定した場合には、自分自"
14074 "身の子プロセスでも起こりうる。 スレッドに関しては「Linux での注意」の節も参照"
14075 "すること)。"
14076
14077 #. type: Plain text
14078 #: build/C/man2/wait.2:418
14079 msgid ""
14080 "B<WNOHANG> was not set and an unblocked signal or a B<SIGCHLD> was caught; "
14081 "see B<signal>(7)."
14082 msgstr ""
14083 "B<WNOHANG> が設定されておらず、禁止 (block) されていないシグナルや "
14084 "B<SIGCHLD> を受信した。 B<signal>(7)  参照。"
14085
14086 #. type: Plain text
14087 #: build/C/man2/wait.2:423
14088 msgid "The I<options> argument was invalid."
14089 msgstr "I<options> 引き数が不正である。"
14090
14091 #. type: Plain text
14092 #: build/C/man2/wait.2:438
14093 msgid ""
14094 "A child that terminates, but has not been waited for becomes a \"zombie\".  "
14095 "The kernel maintains a minimal set of information about the zombie process "
14096 "(PID, termination status, resource usage information)  in order to allow the "
14097 "parent to later perform a wait to obtain information about the child.  As "
14098 "long as a zombie is not removed from the system via a wait, it will consume "
14099 "a slot in the kernel process table, and if this table fills, it will not be "
14100 "possible to create further processes.  If a parent process terminates, then "
14101 "its \"zombie\" children (if any)  are adopted by B<init>(1), which "
14102 "automatically performs a wait to remove the zombies."
14103 msgstr ""
14104 "終了したが、wait されていない子プロセスは「ゾンビ」になる。 後で親プロセスが "
14105 "wait を実行して子プロセスについての情報を取得できるように、 カーネルはゾンビ"
14106 "プロセスについて最小限の情報 (PID、終了ステータス、 リソース使用状況) を保持"
14107 "する。 ゾンビプロセスは、 wait によってシステムから削除されない限り、 カーネ"
14108 "ルのプロセステーブルの 1 エントリを消費する。このプロセステーブルが 一杯にな"
14109 "ると、新たにプロセスを作ることができなくなる。 親プロセスが終了すると、その親"
14110 "プロセスの「ゾンビ」の 子プロセスは (もしあれば)  B<init>(1)  の養子となる。 "
14111 "B<init>(1)  は wait を自動的に実行し、ゾンビを削除する。"
14112
14113 #. type: Plain text
14114 #: build/C/man2/wait.2:467
14115 msgid ""
14116 "POSIX.1-2001 specifies that if the disposition of B<SIGCHLD> is set to "
14117 "B<SIG_IGN> or the B<SA_NOCLDWAIT> flag is set for B<SIGCHLD> (see "
14118 "B<sigaction>(2)), then children that terminate do not become zombies and a "
14119 "call to B<wait>()  or B<waitpid>()  will block until all children have "
14120 "terminated, and then fail with I<errno> set to B<ECHILD>.  (The original "
14121 "POSIX standard left the behavior of setting B<SIGCHLD> to B<SIG_IGN> "
14122 "unspecified.  Note that even though the default disposition of B<SIGCHLD> is "
14123 "\"ignore\", explicitly setting the disposition to B<SIG_IGN> results in "
14124 "different treatment of zombie process children.)"
14125 msgstr ""
14126 "POSIX.1-2001 では以下のように規定されている。 B<SIGCHLD> の動作が B<SIG_IGN> "
14127 "に設定されたか、 B<SIGCHLD> に対して B<SA_NOCLDWAIT> フラグが設定された場合 "
14128 "(B<sigaction>(2)  参照)、終了した子プロセスはゾンビにはならず、 B<wait>()  "
14129 "や B<waitpid>()  の呼び出しは全ての子プロセスが終了するまで停止し、 子プロセ"
14130 "スが全部終了した後 I<errno> に B<ECHILD> を設定して失敗する。 (もともとの "
14131 "POSIX 標準は B<SIGCHLD> に B<SIG_IGN> を設定した場合の振る舞いを未規定のまま"
14132 "にしている。 B<SIGCHLD> のデフォルトの動作が「無視」であるにもかかわらず、 "
14133 "B<SIGCHLD> の動作として B<SIG_IGN> を明示的に設定した場合にはゾンビプロセスの"
14134 "子プロセスの扱いが 異なる点に注意すること。)"
14135
14136 #. type: Plain text
14137 #: build/C/man2/wait.2:480
14138 msgid ""
14139 "Linux 2.6 conforms to the POSIX requirements.  However, Linux 2.4 (and "
14140 "earlier) does not: if a B<wait>()  or B<waitpid>()  call is made while "
14141 "B<SIGCHLD> is being ignored, the call behaves just as though B<SIGCHLD> were "
14142 "not being ignored, that is, the call blocks until the next child terminates "
14143 "and then returns the process ID and status of that child."
14144 msgstr ""
14145 "Linux 2.6 はこの仕様に準拠している。 しかし、Linux 2.4 (とそれ以前のバージョ"
14146 "ン) はそうではない: B<SIGCHLD> が無視される状態で B<wait>()  または "
14147 "B<waitpid>()  が呼び出された場合、 B<SIGCHLD> が無視されていないかのように振"
14148 "る舞う。 つまり、呼び出しによって次の子プロセスの終了までブロックされ、 終了"
14149 "した子プロセスの PID と状態が返される。"
14150
14151 #. type: Plain text
14152 #: build/C/man2/wait.2:496
14153 msgid ""
14154 "In the Linux kernel, a kernel-scheduled thread is not a distinct construct "
14155 "from a process.  Instead, a thread is simply a process that is created using "
14156 "the Linux-unique B<clone>(2)  system call; other routines such as the "
14157 "portable B<pthread_create>(3)  call are implemented using B<clone>(2).  "
14158 "Before Linux 2.4, a thread was just a special case of a process, and as a "
14159 "consequence one thread could not wait on the children of another thread, "
14160 "even when the latter belongs to the same thread group.  However, POSIX "
14161 "prescribes such functionality, and since Linux 2.4 a thread can, and by "
14162 "default will, wait on children of other threads in the same thread group."
14163 msgstr ""
14164 "Linux カーネルでは、カーネルによってスケジュールされるスレッドは プロセスと明"
14165 "確に区別できる構成要素ではない。スレッドは Linux 固有の B<clone>(2)  システム"
14166 "コールを使用して生成されるプロセスに過ぎない。 移植性のある "
14167 "B<pthread_create>(3)  コールのような他のルーチンは B<clone>(2)  を使用して実"
14168 "装されている; これらでは B<waitid>()  を使うことはできない。 Linux 2.4 より前"
14169 "では、スレッドは単に特殊なプロセスであったので、 例え同じスレッドグループで"
14170 "あっても、 あるスレッドが別のスレッドの子プロセスが終了するのを待つことは出来"
14171 "なかった。 しかし、POSIX ではこのような機能を規定しており、 Linux 2.4 以降で"
14172 "は、あるスレッドが同じスレッドグループの他のスレッドの 子プロセスが終了するの"
14173 "を待つことができるようになった。 そして将来はこれがデフォルトの動作になるであ"
14174 "ろう。"
14175
14176 #. type: Plain text
14177 #: build/C/man2/wait.2:503
14178 msgid ""
14179 "The following Linux-specific I<options> are for use with children created "
14180 "using B<clone>(2); they cannot be used with B<waitid>():"
14181 msgstr ""
14182 "B<clone>(2)  を用いて作られた子プロセスには、以下の Linux 固有の I<options> "
14183 "が使用できる。"
14184
14185 #. type: TP
14186 #: build/C/man2/wait.2:503
14187 #, no-wrap
14188 msgid "B<__WCLONE>"
14189 msgstr "B<__WCLONE>"
14190
14191 #.  since 0.99pl10
14192 #. type: Plain text
14193 #: build/C/man2/wait.2:514
14194 msgid ""
14195 "Wait for \"clone\" children only.  If omitted, then wait for \"non-clone\" "
14196 "children only.  (A \"clone\" child is one which delivers no signal, or a "
14197 "signal other than B<SIGCHLD> to its parent upon termination.)  This option "
14198 "is ignored if B<__WALL> is also specified."
14199 msgstr ""
14200 "\"clone\" な子プロセスだけを待つ。 指定されなかった場合は非 \"clone\" な子プ"
14201 "ロセスだけを待つ (\"clone\" な子プロセスは、終了時に親プロセスへ全くシグナル"
14202 "を送らないか、 B<SIGCHLD> 以外のシグナルを送る)。 このオプションは B<__WALL> "
14203 "も指定された場合は無視される。"
14204
14205 #. type: TP
14206 #: build/C/man2/wait.2:514
14207 #, no-wrap
14208 msgid "B<__WALL> (since Linux 2.4)"
14209 msgstr "B<__WALL> (Linux 2.4 以降)"
14210
14211 #.  since patch-2.3.48
14212 #. type: Plain text
14213 #: build/C/man2/wait.2:519
14214 msgid "Wait for all children, regardless of type (\"clone\" or \"non-clone\")."
14215 msgstr "\"clone\" であるかないかに関わらず、 全ての子プロセスを待つ。"
14216
14217 #. type: TP
14218 #: build/C/man2/wait.2:519
14219 #, no-wrap
14220 msgid "B<__WNOTHREAD> (since Linux 2.4)"
14221 msgstr "B<__WNOTHREAD> (Linux 2.4 以降)"
14222
14223 #.  since patch-2.4.0-test8
14224 #. type: Plain text
14225 #: build/C/man2/wait.2:525
14226 msgid ""
14227 "Do not wait for children of other threads in the same thread group.  This "
14228 "was the default before Linux 2.4."
14229 msgstr ""
14230 "同じスレッドグループの他のスレッドの子プロセスは待たない。 Linux 2.4 より前で"
14231 "はデフォルトであった。"
14232
14233 #. type: Plain text
14234 #: build/C/man2/wait.2:537
14235 msgid ""
14236 "The raw B<waitid>()  system call takes a fifth argument, of type I<struct "
14237 "rusage\\ *>.  If this argument is non-NULL, then it is used to return "
14238 "resource usage information about the child, in the same manner as "
14239 "B<wait4>(2).  See B<getrusage>(2)  for details."
14240 msgstr ""
14241 "生の B<waitid>() システムコールは I<struct rusage\\ *> 型の第 5 引数を取る。 "
14242 "この引数が NULL 以外の場合、 この引数が子プロセスのリソース使用状況を返すのに"
14243 "使用される。 これは B<wait4>(2) と同じ方法である。 詳細は B<getrusage>(2) を"
14244 "参照。"
14245
14246 #. type: Plain text
14247 #: build/C/man2/wait.2:552
14248 msgid ""
14249 "According to POSIX.1-2008, an application calling B<waitid>()  must ensure "
14250 "that I<infop> points to a I<siginfo_t> structure (i.e., that it is a non-"
14251 "null pointer).  On Linux, if I<infop> is NULL, B<waitid>()  succeeds, and "
14252 "returns the process ID of the waited-for child.  Applications should avoid "
14253 "relying on this inconsistent, nonstandard, and unnecessary feature."
14254 msgstr ""
14255 "POSIX.1-2008 によると、 B<waitid>() を呼び出すアプリケーションは、 I<infop> "
14256 "が I<siginfo_t> 構造体を指していること (つまり I<infop> が NULL でないポイン"
14257 "タであること) を保証しなければならない。 Linux では、 I<infop> が NULL の場"
14258 "合、 B<waitid>() は成功し、wait している子プロセスのプロセス ID を返す。 アプ"
14259 "リケーションは、この食い違った、非標準で、不必要な機能に依存しないようにすべ"
14260 "きである。"
14261
14262 #.  fork.2 refers to this example program.
14263 #. type: Plain text
14264 #: build/C/man2/wait.2:569
14265 msgid ""
14266 "The following program demonstrates the use of B<fork>(2)  and B<waitpid>().  "
14267 "The program creates a child process.  If no command-line argument is "
14268 "supplied to the program, then the child suspends its execution using "
14269 "B<pause>(2), to allow the user to send signals to the child.  Otherwise, if "
14270 "a command-line argument is supplied, then the child exits immediately, using "
14271 "the integer supplied on the command line as the exit status.  The parent "
14272 "process executes a loop that monitors the child using B<waitpid>(), and uses "
14273 "the W*() macros described above to analyze the wait status value."
14274 msgstr ""
14275 "以下のプログラムは、 B<fork>(2)  と B<waitpid>()  の使用方法の例を示してい"
14276 "る。 このプログラムでは子プロセスを生成する。 コマンドライン引き数が指定され"
14277 "なかったときは、 子プロセスは B<pause>(2)  を使ってその実行を一時停止し、ユー"
14278 "ザがその子プロセスに シグナルを送信できるようにする。 コマンドライン引き数が"
14279 "指定された場合は、 子プロセスは直ちに終了し、 コマンドラインで指定された整数"
14280 "を終了ステータスとして使用する。 親プロセスは、 B<waitpid>()  を使って子プロ"
14281 "セスを監視し、 wait のステータス値を上記の W*() マクロを使って解析するという "
14282 "ループを実行する。"
14283
14284 #. type: Plain text
14285 #: build/C/man2/wait.2:585
14286 #, no-wrap
14287 msgid ""
14288 "$B< ./a.out &>\n"
14289 "Child PID is 32360\n"
14290 "[1] 32359\n"
14291 "$B< kill -STOP 32360>\n"
14292 "stopped by signal 19\n"
14293 "$B< kill -CONT 32360>\n"
14294 "continued\n"
14295 "$B< kill -TERM 32360>\n"
14296 "killed by signal 15\n"
14297 "[1]+  Done                    ./a.out\n"
14298 "$\n"
14299 msgstr ""
14300 "$B< ./a.out &>\n"
14301 "Child PID is 32360\n"
14302 "[1] 32359\n"
14303 "$B< kill -STOP 32360>\n"
14304 "stopped by signal 19\n"
14305 "$B< kill -CONT 32360>\n"
14306 "continued\n"
14307 "$B< kill -TERM 32360>\n"
14308 "killed by signal 15\n"
14309 "[1]+  Done                    ./a.out\n"
14310 "$\n"
14311
14312 #. type: Plain text
14313 #: build/C/man2/wait.2:594
14314 #, no-wrap
14315 msgid ""
14316 "#include E<lt>sys/wait.hE<gt>\n"
14317 "#include E<lt>stdlib.hE<gt>\n"
14318 "#include E<lt>unistd.hE<gt>\n"
14319 "#include E<lt>stdio.hE<gt>\n"
14320 msgstr ""
14321 "#include E<lt>sys/wait.hE<gt>\n"
14322 "#include E<lt>stdlib.hE<gt>\n"
14323 "#include E<lt>unistd.hE<gt>\n"
14324 "#include E<lt>stdio.hE<gt>\n"
14325
14326 #. type: Plain text
14327 #: build/C/man2/wait.2:600
14328 #, no-wrap
14329 msgid ""
14330 "int\n"
14331 "main(int argc, char *argv[])\n"
14332 "{\n"
14333 "    pid_t cpid, w;\n"
14334 "    int status;\n"
14335 msgstr ""
14336 "int\n"
14337 "main(int argc, char *argv[])\n"
14338 "{\n"
14339 "    pid_t cpid, w;\n"
14340 "    int status;\n"
14341
14342 #. type: Plain text
14343 #: build/C/man2/wait.2:606
14344 #, no-wrap
14345 msgid ""
14346 "    cpid = fork();\n"
14347 "    if (cpid == -1) {\n"
14348 "        perror(\"fork\");\n"
14349 "        exit(EXIT_FAILURE);\n"
14350 "    }\n"
14351 msgstr ""
14352 "    cpid = fork();\n"
14353 "    if (cpid == -1) {\n"
14354 "        perror(\"fork\");\n"
14355 "        exit(EXIT_FAILURE);\n"
14356 "    }\n"
14357
14358 #. type: Plain text
14359 #: build/C/man2/wait.2:612
14360 #, no-wrap
14361 msgid ""
14362 "    if (cpid == 0) {            /* Code executed by child */\n"
14363 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
14364 "        if (argc == 1)\n"
14365 "            pause();                    /* Wait for signals */\n"
14366 "        _exit(atoi(argv[1]));\n"
14367 msgstr ""
14368 "    if (cpid == 0) {            /* Code executed by child */\n"
14369 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
14370 "        if (argc == 1)\n"
14371 "            pause();                    /* Wait for signals */\n"
14372 "        _exit(atoi(argv[1]));\n"
14373
14374 #. type: Plain text
14375 #: build/C/man2/wait.2:620
14376 #, no-wrap
14377 msgid ""
14378 "    } else {                    /* Code executed by parent */\n"
14379 "        do {\n"
14380 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
14381 "            if (w == -1) {\n"
14382 "                perror(\"waitpid\");\n"
14383 "                exit(EXIT_FAILURE);\n"
14384 "            }\n"
14385 msgstr ""
14386 "    } else {                    /* Code executed by parent */\n"
14387 "        do {\n"
14388 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
14389 "            if (w == -1) {\n"
14390 "                perror(\"waitpid\");\n"
14391 "                exit(EXIT_FAILURE);\n"
14392 "            }\n"
14393
14394 #. type: Plain text
14395 #: build/C/man2/wait.2:634
14396 #, no-wrap
14397 msgid ""
14398 "            if (WIFEXITED(status)) {\n"
14399 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
14400 "            } else if (WIFSIGNALED(status)) {\n"
14401 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
14402 "            } else if (WIFSTOPPED(status)) {\n"
14403 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
14404 "            } else if (WIFCONTINUED(status)) {\n"
14405 "                printf(\"continued\\en\");\n"
14406 "            }\n"
14407 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
14408 "        exit(EXIT_SUCCESS);\n"
14409 "    }\n"
14410 "}\n"
14411 msgstr ""
14412 "            if (WIFEXITED(status)) {\n"
14413 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
14414 "            } else if (WIFSIGNALED(status)) {\n"
14415 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
14416 "            } else if (WIFSTOPPED(status)) {\n"
14417 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
14418 "            } else if (WIFCONTINUED(status)) {\n"
14419 "                printf(\"continued\\en\");\n"
14420 "            }\n"
14421 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
14422 "        exit(EXIT_SUCCESS);\n"
14423 "    }\n"
14424 "}\n"
14425
14426 #. type: Plain text
14427 #: build/C/man2/wait.2:647
14428 msgid ""
14429 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), "
14430 "B<sigaction>(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), "
14431 "B<credentials>(7), B<signal>(7)"
14432 msgstr ""
14433 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), "
14434 "B<sigaction>(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), "
14435 "B<credentials>(7), B<signal>(7)"
14436
14437 #. type: TH
14438 #: build/C/man2/wait4.2:33
14439 #, no-wrap
14440 msgid "WAIT4"
14441 msgstr "WAIT4"
14442
14443 #. type: TH
14444 #: build/C/man2/wait4.2:33
14445 #, no-wrap
14446 msgid "2012-09-23"
14447 msgstr "2012-09-23"
14448
14449 #. type: Plain text
14450 #: build/C/man2/wait4.2:36
14451 msgid "wait3, wait4 - wait for process to change state, BSD style"
14452 msgstr "wait3, wait4 - BSD スタイルでプロセスの状態変化を待つ"
14453
14454 #. type: Plain text
14455 #: build/C/man2/wait4.2:42
14456 #, no-wrap
14457 msgid ""
14458 "B<#include E<lt>sys/types.hE<gt>>\n"
14459 "B<#include E<lt>sys/time.hE<gt>>\n"
14460 "B<#include E<lt>sys/resource.hE<gt>>\n"
14461 "B<#include E<lt>sys/wait.hE<gt>>\n"
14462 msgstr ""
14463 "B<#include E<lt>sys/types.hE<gt>>\n"
14464 "B<#include E<lt>sys/time.hE<gt>>\n"
14465 "B<#include E<lt>sys/resource.hE<gt>>\n"
14466 "B<#include E<lt>sys/wait.hE<gt>>\n"
14467
14468 #. type: Plain text
14469 #: build/C/man2/wait4.2:45
14470 #, no-wrap
14471 msgid ""
14472 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14473 "B<            struct rusage *>I<rusage>B<);>\n"
14474 msgstr ""
14475 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14476 "B<            struct rusage *>I<rusage>B<);>\n"
14477
14478 #. type: Plain text
14479 #: build/C/man2/wait4.2:48
14480 #, no-wrap
14481 msgid ""
14482 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14483 "B<            struct rusage *>I<rusage>B<);>\n"
14484 msgstr ""
14485 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14486 "B<            struct rusage *>I<rusage>B<);>\n"
14487
14488 #. type: Plain text
14489 #: build/C/man2/wait4.2:57
14490 msgid "B<wait3>():"
14491 msgstr "B<wait3>():"
14492
14493 #. type: Plain text
14494 #: build/C/man2/wait4.2:63
14495 msgid "B<wait4>():"
14496 msgstr "B<wait4>():"
14497
14498 #. type: Plain text
14499 #: build/C/man2/wait4.2:65
14500 msgid "_BSD_SOURCE"
14501 msgstr "_BSD_SOURCE"
14502
14503 #. type: Plain text
14504 #: build/C/man2/wait4.2:73
14505 msgid ""
14506 "These functions are obsolete; use B<waitpid>(2)  or B<waitid>(2)  in new "
14507 "programs."
14508 msgstr ""
14509 "これらの関数は廃止予定である。 新しいプログラムでは B<waitpid>(2) や "
14510 "B<waitid>(2) を使用すること。"
14511
14512 #. type: Plain text
14513 #: build/C/man2/wait4.2:83
14514 msgid ""
14515 "The B<wait3>()  and B<wait4>()  system calls are similar to B<waitpid>(2), "
14516 "but additionally return resource usage information about the child in the "
14517 "structure pointed to by I<rusage>."
14518 msgstr ""
14519 "システムコール B<wait3>()  と B<wait4>()  は B<waitpid>(2)  と同様の動作をす"
14520 "る。それに加え、子プロセスのリソース使用状況の情報を I<rusage> が指す構造体に"
14521 "入れて返す。"
14522
14523 #. type: Plain text
14524 #: build/C/man2/wait4.2:89
14525 msgid ""
14526 "Other than the use of the I<rusage> argument, the following B<wait3>()  call:"
14527 msgstr "I<rusage> を使用する点を除けば、次の B<wait3>()  の呼び出し"
14528
14529 #. type: Plain text
14530 #: build/C/man2/wait4.2:92
14531 #, no-wrap
14532 msgid "    wait3(status, options, rusage);\n"
14533 msgstr "    wait3(status, options, rusage);\n"
14534
14535 #. type: Plain text
14536 #: build/C/man2/wait4.2:95 build/C/man2/wait4.2:109
14537 msgid "is equivalent to:"
14538 msgstr "は以下と等価である。"
14539
14540 #. type: Plain text
14541 #: build/C/man2/wait4.2:98
14542 #, no-wrap
14543 msgid "    waitpid(-1, status, options);\n"
14544 msgstr "    waitpid(-1, status, options);\n"
14545
14546 #. type: Plain text
14547 #: build/C/man2/wait4.2:103
14548 msgid "Similarly, the following B<wait4>()  call:"
14549 msgstr "同様に、次の B<wait4>()  の呼び出し"
14550
14551 #. type: Plain text
14552 #: build/C/man2/wait4.2:106
14553 #, no-wrap
14554 msgid "    wait4(pid, status, options, rusage);\n"
14555 msgstr "    wait4(pid, status, options, rusage);\n"
14556
14557 #. type: Plain text
14558 #: build/C/man2/wait4.2:112
14559 #, no-wrap
14560 msgid "    waitpid(pid, status, options);\n"
14561 msgstr "    waitpid(pid, status, options);\n"
14562
14563 #. type: Plain text
14564 #: build/C/man2/wait4.2:122
14565 msgid ""
14566 "In other words, B<wait3>()  waits of any child, while B<wait4>()  can be "
14567 "used to select a specific child, or children, on which to wait.  See "
14568 "B<wait>(2)  for further details."
14569 msgstr ""
14570 "言い換えると、 B<wait3>()  は全ての子プロセスを対象に待つが、 B<wait4>()  で"
14571 "は特定の子プロセス (複数可) を選んで待つことができる。"
14572
14573 #. type: Plain text
14574 #: build/C/man2/wait4.2:132
14575 msgid ""
14576 "If I<rusage> is not NULL, the I<struct rusage> to which it points will be "
14577 "filled with accounting information about the child.  See B<getrusage>(2)  "
14578 "for details."
14579 msgstr ""
14580 "I<rusage> が NULL でない場合、 I<rusage> が指す I<rusage 構造体> には子プロセ"
14581 "スのアカウント情報が格納される。 詳しくは B<getrusage>(2)  を参照のこと。"
14582
14583 #. type: Plain text
14584 #: build/C/man2/wait4.2:135 build/C/man2/wait4.2:138
14585 msgid "As for B<waitpid>(2)."
14586 msgstr "B<waitpid>(2)  と同様。"
14587
14588 #. type: Plain text
14589 #: build/C/man2/wait4.2:140
14590 msgid "4.3BSD."
14591 msgstr "4.3BSD."
14592
14593 #. type: Plain text
14594 #: build/C/man2/wait4.2:147
14595 msgid ""
14596 "SUSv1 included a specification of B<wait3>(); SUSv2 included B<wait3>(), but "
14597 "marked it LEGACY; SUSv3 removed it."
14598 msgstr ""
14599 "SUSv1 には B<wait3>() の規定があった。 SUSv2 には B<wait3>() が含まれていた"
14600 "が、「過去の名残 (LEGACY)」となっていた。 SUSv3 では B<wait3>() は削除され"
14601 "た。"
14602
14603 #. type: Plain text
14604 #: build/C/man2/wait4.2:159
14605 msgid ""
14606 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
14607 "portability.  (Indeed, I<E<lt>sys/resource.hE<gt>> defines the I<rusage> "
14608 "structure with fields of type I<struct timeval> defined in I<E<lt>sys/time."
14609 "hE<gt>>.)"
14610 msgstr ""
14611 "現在では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、インクルード"
14612 "しておくと 移植性を高めることができる (実際には I<E<lt>sys/resource.hE<gt>> "
14613 "で I<rusage> 構造体が定義されているが、そのフィールドで使用されている "
14614 "I<struct timeval> 型は I<E<lt>sys/time.hE<gt>> で定義されている)。"
14615
14616 #. type: Plain text
14617 #: build/C/man2/wait4.2:165
14618 msgid ""
14619 "On Linux, B<wait3>()  is a library function implemented on top of the "
14620 "B<wait4>()  system call."
14621 msgstr ""
14622 "Linux では、 B<wait3>()  はライブラリ関数であり、 B<wait4>()  システムコール"
14623 "を使って実装されている。"
14624
14625 #. type: Plain text
14626 #: build/C/man2/wait4.2:172
14627 msgid ""
14628 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14629 "B<signal>(7)"
14630 msgstr ""
14631 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14632 "B<signal>(7)"
14633
14634 #~ msgid "2014-02-11"
14635 #~ msgstr "2014-02-11"
14636
14637 #~ msgid "2014-02-25"
14638 #~ msgstr "2014-02-25"
14639
14640 #~ msgid "2014-04-27"
14641 #~ msgstr "2014-04-27"
14642
14643 #~ msgid ""
14644 #~ "The I<sa_restorer> element is obsolete and should not be used.  POSIX "
14645 #~ "does not specify a I<sa_restorer> element."
14646 #~ msgstr ""
14647 #~ "I<sa_restorer> 要素は廃止予定であり使用すべきではない。 POSIX には "
14648 #~ "I<sa_restorer> 要素に関する規定はない。"
14649
14650 #~ msgid "2013-07-30"
14651 #~ msgstr "2013-07-30"
14652
14653 #~ msgid "B<int sigreturn(unsigned long >I<__unused>B<);>"
14654 #~ msgstr "B<int sigreturn(unsigned long >I<__unused>B<);>"
14655
14656 #~ msgid ""
14657 #~ "When the Linux kernel creates the stack frame for a signal handler, a "
14658 #~ "call to B<sigreturn>()  is inserted into the stack frame so that upon "
14659 #~ "return from the signal handler, B<sigreturn>()  will be called."
14660 #~ msgstr ""
14661 #~ "Linux カーネルは、 シグナル・ハンドラ用にスタック・フレームを作成する際、 "
14662 #~ "B<sigreturn>()  をスタック・フレームに挿入し、シグナル・ハンドラが返るとき"
14663 #~ "に B<sigreturn>()  が呼ばれるようにする。"
14664
14665 #~ msgid "FILES"
14666 #~ msgstr "ファイル"
14667
14668 #~ msgid "/usr/src/linux/arch/i386/kernel/signal.c"
14669 #~ msgstr "/usr/src/linux/arch/i386/kernel/signal.c"
14670
14671 #~ msgid "/usr/src/linux/arch/alpha/kernel/entry.S"
14672 #~ msgstr "/usr/src/linux/arch/alpha/kernel/entry.S"
14673
14674 #~ msgid ""
14675 #~ "B<sigreturn>()  is specific to Linux and should not be used in programs "
14676 #~ "intended to be portable."
14677 #~ msgstr ""
14678 #~ "B<sigreturn>()  は Linux 特有であり、移植を意図したプログラムでは使用して"
14679 #~ "はいけない。"
14680
14681 #~ msgid "2014-05-28"
14682 #~ msgstr "2014-05-28"
14683
14684 #~ msgid ""
14685 #~ "If I<tgid> is specified as -1, B<tgkill>()  is equivalent to B<tkill>()."
14686 #~ msgstr ""
14687 #~ "I<tgid> に -1 が指定された場合、 B<tgkill>()  は B<tkill>()  と等価であ"
14688 #~ "る。"
14689
14690 #~ msgid "2010-08-30"
14691 #~ msgstr "2010-08-30"
14692
14693 #~ msgid "Underlying Linux system calls"
14694 #~ msgstr "下層にある Linux のシステムコール"
14695
14696 #~ msgid "2012-10-01"
14697 #~ msgstr "2012-10-01"
14698
14699 #~ msgid ""
14700 #~ "struct itimerval {\n"
14701 #~ "    struct timeval it_interval; /* next value */\n"
14702 #~ "    struct timeval it_value;    /* current value */\n"
14703 #~ "};\n"
14704 #~ msgstr ""
14705 #~ "struct itimerval {\n"
14706 #~ "    struct timeval it_interval; /* next value */\n"
14707 #~ "    struct timeval it_value;    /* current value */\n"
14708 #~ "};\n"
14709
14710 #~ msgid ""
14711 #~ "The B<signal>()  function in Linux libc4 and libc5 provide System\\ V "
14712 #~ "semantics.  If one on a libc5 system includes I<E<lt>bsd/signal.hE<gt>> "
14713 #~ "instead of I<E<lt>signal.hE<gt>>, then B<signal>()  provides BSD "
14714 #~ "semantics."
14715 #~ msgstr ""
14716 #~ "Linux の libc4 と libc5 の B<signal>()  関数は System\\ V 方式である。 "
14717 #~ "libc5 システムにおいて I<E<lt>signal.hE<gt>> のかわりに I<E<lt>bsd/signal."
14718 #~ "hE<gt>> をインクルードすると、 B<signal>()  は B<__bsd_signal>()  に再定義"
14719 #~ "され、 B<signal>()  は BSD 方式となる。"
14720
14721 #~ msgid "2009-01-13"
14722 #~ msgstr "2009-01-13"
14723
14724 #~ msgid "2014-01-07"
14725 #~ msgstr "2014-01-07"
14726
14727 #~ msgid "Libc4 and libc5 know only about the BSD version."
14728 #~ msgstr "libc4 と libc5 には BSD 版しかない。"
14729
14730 #~ msgid "2013-09-04"
14731 #~ msgstr "2013-09-04"
14732
14733 #~ msgid "2014-01-20"
14734 #~ msgstr "2014-01-20"
14735
14736 #~ msgid "2014-03-24"
14737 #~ msgstr "2014-03-24"