OSDN Git Service

Apply perkamon local fixes
[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-25 19:48+0900\n"
10 "PO-Revision-Date: 2015-01-25 19:52+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:54 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:49
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:55 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:50
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:57 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:52
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:64 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:72
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:884
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:728 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:904
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:733 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:1182 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:745 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:748 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:1196 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:861 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:1199 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:883 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:1207 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:891 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.78 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 ""
438 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.78 の一部であ"
439 "る。 プロジェクトの説明とバグ報告に関する情報は \\%http://www.kernel.org/doc/"
440 "man-pages/ に書かれている。"
441
442 #. type: TH
443 #: build/C/man2/eventfd.2:22
444 #, no-wrap
445 msgid "EVENTFD"
446 msgstr "EVENTFD"
447
448 #. type: TH
449 #: build/C/man2/eventfd.2:22 build/C/man2/getitimer.2:12
450 #: build/C/man3/profil.3:28 build/C/man2/signalfd.2:20
451 #, no-wrap
452 msgid "2014-07-08"
453 msgstr "2014-07-08"
454
455 #. type: TH
456 #: build/C/man2/eventfd.2:22 build/C/man2/getitimer.2:12
457 #: build/C/man2/kill.2:44 build/C/man2/killpg.2:42 build/C/man2/pause.2:30
458 #: build/C/man2/prctl.2:54 build/C/man3/profil.3:28
459 #: build/C/man2/restart_syscall.2:33 build/C/man2/rt_sigqueueinfo.2:25
460 #: build/C/man2/sgetmask.2:26 build/C/man2/sigaction.2:49
461 #: build/C/man2/sigaltstack.2:27 build/C/man2/signal.2:36
462 #: build/C/man7/signal.7:46 build/C/man2/signalfd.2:20
463 #: build/C/man3/sigpause.3:25 build/C/man2/sigpending.2:29
464 #: build/C/man2/sigprocmask.2:29 build/C/man3/sigqueue.3:28
465 #: build/C/man2/sigreturn.2:30 build/C/man3/sigset.3:26
466 #: build/C/man3/sigsetops.3:31 build/C/man2/sigsuspend.2:29
467 #: build/C/man3/sigvec.3:26 build/C/man3/sigwait.3:26
468 #: build/C/man2/sigwaitinfo.2:25 build/C/man2/timer_create.2:33
469 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
470 #: build/C/man2/timer_settime.2:26 build/C/man2/timerfd_create.2:22
471 #: build/C/man2/tkill.2:29 build/C/man2/wait.2:49 build/C/man2/wait4.2:33
472 #, no-wrap
473 msgid "Linux"
474 msgstr "Linux"
475
476 #. type: Plain text
477 #: build/C/man2/eventfd.2:25
478 msgid "eventfd - create a file descriptor for event notification"
479 msgstr "eventfd - イベント通知用のファイルディスクリプターを生成する"
480
481 #. type: Plain text
482 #: build/C/man2/eventfd.2:27
483 msgid "B<#include E<lt>sys/eventfd.hE<gt>>"
484 msgstr "B<#include E<lt>sys/eventfd.hE<gt>>"
485
486 #. type: Plain text
487 #: build/C/man2/eventfd.2:29
488 msgid "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
489 msgstr "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
490
491 #. type: Plain text
492 #: build/C/man2/eventfd.2:39
493 msgid ""
494 "B<eventfd>()  creates an \"eventfd object\" that can be used as an event "
495 "wait/notify mechanism by user-space applications, and by the kernel to "
496 "notify user-space applications of events.  The object contains an unsigned "
497 "64-bit integer (I<uint64_t>)  counter that is maintained by the kernel.  "
498 "This counter is initialized with the value specified in the argument "
499 "I<initval>."
500 msgstr ""
501 "B<eventfd>()  は \"eventfd オブジェクト\" を生成する。 eventfd オブジェクトは"
502 "ユーザー空間アプリケーションがイベント待ち受け/通知用の 仕組みとして使うこと"
503 "ができる。また、カーネルがユーザー空間アプリケーションに イベントを通知するた"
504 "めにも使うことができる。 このオブジェクトには、unsigned の 64 ビット整数 "
505 "(I<uint64_t>)  型のカウンターが含まれており、このカウンターはカーネルにより管"
506 "理される。 このカウンターは I<initval> 引き数で指定された値で初期化される。"
507
508 #. type: Plain text
509 #: build/C/man2/eventfd.2:44
510 msgid ""
511 "The following values may be bitwise ORed in I<flags> to change the behavior "
512 "of B<eventfd>():"
513 msgstr ""
514 "以下の値のいくつかをビット単位の論理和 (OR) で指定することで、 B<eventfd>() "
515 "の振舞いを変更することができる。"
516
517 #. type: TP
518 #: build/C/man2/eventfd.2:44
519 #, no-wrap
520 msgid "B<EFD_CLOEXEC> (since Linux 2.6.27)"
521 msgstr "B<EFD_CLOEXEC> (Linux 2.6.27 以降)"
522
523 #. type: Plain text
524 #: build/C/man2/eventfd.2:54 build/C/man2/signalfd.2:95
525 #: build/C/man2/timerfd_create.2:110
526 msgid ""
527 "Set the close-on-exec (B<FD_CLOEXEC>)  flag on the new file descriptor.  See "
528 "the description of the B<O_CLOEXEC> flag in B<open>(2)  for reasons why this "
529 "may be useful."
530 msgstr ""
531 "新しいファイルディスクリプターに対して close-on-exec (B<FD_CLOEXEC>)  フラグ"
532 "をセットする。 このフラグが役に立つ理由については、 B<open>(2)  の "
533 "B<O_CLOEXEC> フラグの説明を参照のこと。"
534
535 #. type: TP
536 #: build/C/man2/eventfd.2:54
537 #, no-wrap
538 msgid "B<EFD_NONBLOCK> (since Linux 2.6.27)"
539 msgstr "B<EFD_NONBLOCK> (Linux 2.6.27 以降)"
540
541 #. type: Plain text
542 #: build/C/man2/eventfd.2:62 build/C/man2/signalfd.2:85
543 #: build/C/man2/timerfd_create.2:100
544 msgid ""
545 "Set the B<O_NONBLOCK> file status flag on the new open file description.  "
546 "Using this flag saves extra calls to B<fcntl>(2)  to achieve the same result."
547 msgstr ""
548 "新しく生成されるオープンファイル記述 (open file description) の "
549 "B<O_NONBLOCK> ファイルステータスフラグをセットする。 このフラグを使うこと"
550 "で、 B<O_NONBLOCK> をセットするために B<fcntl>(2)  を追加で呼び出す必要がなく"
551 "なる。"
552
553 #. type: TP
554 #: build/C/man2/eventfd.2:62
555 #, no-wrap
556 msgid "B<EFD_SEMAPHORE> (since Linux 2.6.30)"
557 msgstr "B<EFD_SEMAPHORE> (Linux 2.6.30 以降)"
558
559 #. type: Plain text
560 #: build/C/man2/eventfd.2:66
561 msgid ""
562 "Provide semaphore-like semantics for reads from the new file descriptor.  "
563 "See below."
564 msgstr ""
565 "新しいファイルディスクリプターからの読み出しにおいて、セマフォ風の動作を行"
566 "う。 下記参照。"
567
568 #. type: Plain text
569 #: build/C/man2/eventfd.2:70 build/C/man2/signalfd.2:99
570 msgid ""
571 "In Linux up to version 2.6.26, the I<flags> argument is unused, and must be "
572 "specified as zero."
573 msgstr ""
574 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
575 "しなければならない。"
576
577 #. type: Plain text
578 #: build/C/man2/eventfd.2:76
579 msgid ""
580 "As its return value, B<eventfd>()  returns a new file descriptor that can be "
581 "used to refer to the eventfd object.  The following operations can be "
582 "performed on the file descriptor:"
583 msgstr ""
584 "B<eventfd>()  は eventfd オブジェクトを参照するのに使用できる新しいファイル"
585 "ディスクリプター を返す。返されたファイルディスクリプターに対しては以下の操作"
586 "を実行できる。"
587
588 #. type: TP
589 #: build/C/man2/eventfd.2:76 build/C/man2/signalfd.2:102
590 #: build/C/man2/timerfd_create.2:218
591 #, no-wrap
592 msgid "B<read>(2)"
593 msgstr "B<read>(2)"
594
595 #. type: Plain text
596 #: build/C/man2/eventfd.2:86
597 msgid ""
598 "Each successful B<read>(2)  returns an 8-byte integer.  A B<read>(2)  will "
599 "fail with the error B<EINVAL> if the size of the supplied buffer is less "
600 "than 8 bytes."
601 msgstr ""
602 "B<read>(2) は成功すると、8 バイトの整数を返す。 渡されたバッファーの大きさが "
603 "8 バイト未満の場合、 B<read>(2)  はエラー B<EINVAL> で失敗する。"
604
605 #. type: Plain text
606 #: build/C/man2/eventfd.2:91
607 msgid ""
608 "The value returned by B<read>(2)  is in host byte order\\(emthat is, the "
609 "native byte order for integers on the host machine."
610 msgstr ""
611 "B<read>(2) が返す値は、ホストバイトオーダ、つまり、そのホストマシンにおける整"
612 "数の通常のバイトオーダである。"
613
614 #. type: Plain text
615 #: build/C/man2/eventfd.2:98
616 msgid ""
617 "The semantics of B<read>(2)  depend on whether the eventfd counter currently "
618 "has a nonzero value and whether the B<EFD_SEMAPHORE> flag was specified when "
619 "creating the eventfd file descriptor:"
620 msgstr ""
621 "B<read>(2) の動作は、 eventfd カウンターの現在の値が 0 以外であるかと、 "
622 "eventfd ファイルディスクリプターを作成する際に B<EFD_SEMAPHORE> フラグが指定"
623 "されたか、により変化する。"
624
625 #. type: IP
626 #: build/C/man2/eventfd.2:99 build/C/man2/eventfd.2:106
627 #: build/C/man2/eventfd.2:113 build/C/man2/eventfd.2:158
628 #: build/C/man2/eventfd.2:168 build/C/man2/eventfd.2:178
629 #: build/C/man2/prctl.2:970 build/C/man2/prctl.2:975 build/C/man2/prctl.2:980
630 #: build/C/man2/prctl.2:990 build/C/man3/psignal.3:105
631 #: build/C/man3/psignal.3:109 build/C/man2/sigaction.2:318
632 #: build/C/man2/sigaction.2:333 build/C/man2/sigaction.2:349
633 #: build/C/man2/sigaction.2:364 build/C/man2/sigaction.2:411
634 #: build/C/man2/sigaction.2:458 build/C/man2/sigaction.2:472
635 #: build/C/man2/signal.2:68 build/C/man2/signal.2:73 build/C/man2/signal.2:80
636 #: build/C/man2/signal.2:224 build/C/man2/signal.2:228
637 #: build/C/man2/signal.2:244 build/C/man7/signal.7:149
638 #: build/C/man7/signal.7:157 build/C/man7/signal.7:615
639 #: build/C/man7/signal.7:617 build/C/man7/signal.7:638
640 #: build/C/man7/signal.7:672 build/C/man7/signal.7:676
641 #: build/C/man7/signal.7:683 build/C/man7/signal.7:701
642 #: build/C/man7/signal.7:707 build/C/man7/signal.7:714
643 #: build/C/man7/signal.7:719 build/C/man7/signal.7:723
644 #: build/C/man7/signal.7:742 build/C/man7/signal.7:756
645 #: build/C/man7/signal.7:767 build/C/man7/signal.7:774
646 #: build/C/man7/signal.7:783 build/C/man7/signal.7:791
647 #: build/C/man7/signal.7:797 build/C/man7/signal.7:817
648 #: build/C/man7/signal.7:831 build/C/man7/signal.7:842
649 #: build/C/man7/signal.7:845 build/C/man7/signal.7:848
650 #: build/C/man7/signal.7:851 build/C/man7/signal.7:858
651 #: build/C/man7/signal.7:864 build/C/man7/signal.7:868
652 #: build/C/man3/sigwait.3:62 build/C/man3/sigwait.3:67
653 #: build/C/man2/timer_create.2:218 build/C/man2/timer_create.2:221
654 #: build/C/man2/timer_create.2:224 build/C/man2/timer_create.2:228
655 #: build/C/man2/timer_create.2:231 build/C/man2/timer_create.2:246
656 #: build/C/man2/timer_create.2:250
657 #, no-wrap
658 msgid "*"
659 msgstr "*"
660
661 #. type: Plain text
662 #: build/C/man2/eventfd.2:106
663 msgid ""
664 "If B<EFD_SEMAPHORE> was not specified and the eventfd counter has a nonzero "
665 "value, then a B<read>(2)  returns 8 bytes containing that value, and the "
666 "counter's value is reset to zero."
667 msgstr ""
668 "B<EFD_SEMAPHORE> が指定されておらず、eventfd カウンターが 0 以外の値の場合、 "
669 "B<read>(2) はカウンター値を格納した 8 バイトの値を返し、 カウンター値は 0 に"
670 "リセットされる。"
671
672 #. type: Plain text
673 #: build/C/man2/eventfd.2:113
674 msgid ""
675 "If B<EFD_SEMAPHORE> was specified and the eventfd counter has a nonzero "
676 "value, then a B<read>(2)  returns 8 bytes containing the value 1, and the "
677 "counter's value is decremented by 1."
678 msgstr ""
679 "B<EFD_SEMAPHORE> が指定されていて eventfd カウンターが 0 以外の値の場合、 "
680 "B<read>(2) は値 1 の 8 バイト値を返し、カウンター値は 1 減算される。"
681
682 #. type: Plain text
683 #: build/C/man2/eventfd.2:123
684 msgid ""
685 "If the eventfd counter is zero at the time of the call to B<read>(2), then "
686 "the call either blocks until the counter becomes nonzero (at which time, the "
687 "B<read>(2)  proceeds as described above)  or fails with the error B<EAGAIN> "
688 "if the file descriptor has been made nonblocking."
689 msgstr ""
690 "B<read>(2) を呼び出した時点で eventfd カウンターが 0 の場合、 B<read>(2) はカ"
691 "ウンターが 0 以外になるまで停止 (block) する (0 以外になった時点で "
692 "B<read>(2) は上記で述べた通り実行を再開する)、 もしくはファイルディスクリプ"
693 "ターが非停止 (nonblocking) に設定されている場合はエラー B<EAGAIN> で失敗す"
694 "る。"
695
696 #. type: TP
697 #: build/C/man2/eventfd.2:124
698 #, no-wrap
699 msgid "B<write>(2)"
700 msgstr "B<write>(2)"
701
702 #. type: Plain text
703 #: build/C/man2/eventfd.2:141
704 msgid ""
705 "A B<write>(2)  call adds the 8-byte integer value supplied in its buffer to "
706 "the counter.  The maximum value that may be stored in the counter is the "
707 "largest unsigned 64-bit value minus 1 (i.e., 0xfffffffffffffffe).  If the "
708 "addition would cause the counter's value to exceed the maximum, then the "
709 "B<write>(2)  either blocks until a B<read>(2)  is performed on the file "
710 "descriptor, or fails with the error B<EAGAIN> if the file descriptor has "
711 "been made nonblocking."
712 msgstr ""
713 "B<write>(2)  は、引き数のバッファーで渡された 8 バイトの整数値をカウンターに"
714 "加算する。 カウンターに格納可能な最大値は unsigned の 64 ビット整数の最大値か"
715 "ら 1 を引いた値 (すなわち 0xfffffffffffffffe) である。 加算を行うとカウンター"
716 "値が最大値を超過する場合には、 そのファイルディスクリプターに対して "
717 "B<read>(2)  が実行されるまで、 B<write>(2)  は停止 (block) する、 もしくは"
718 "ファイルディスクリプターが非停止 (nonblocking)  に設定されている場合はエラー "
719 "B<EAGAIN> で失敗する。"
720
721 #. type: Plain text
722 #: build/C/man2/eventfd.2:148
723 msgid ""
724 "A B<write>(2)  will fail with the error B<EINVAL> if the size of the "
725 "supplied buffer is less than 8 bytes, or if an attempt is made to write the "
726 "value 0xffffffffffffffff."
727 msgstr ""
728 "渡されたバッファーの大きさが 8 バイト未満の場合、もしくは 値 "
729 "0xffffffffffffffff を書き込もうとした場合、 B<write>(2)  はエラー B<EINVAL> "
730 "で失敗する。"
731
732 #. type: TP
733 #: build/C/man2/eventfd.2:148 build/C/man2/signalfd.2:140
734 #: build/C/man2/timerfd_create.2:251
735 #, no-wrap
736 msgid "B<poll>(2), B<select>(2) (and similar)"
737 msgstr "B<poll>(2), B<select>(2) (と同様の操作)"
738
739 #. type: Plain text
740 #: build/C/man2/eventfd.2:157
741 msgid ""
742 "The returned file descriptor supports B<poll>(2)  (and analogously "
743 "B<epoll>(7))  and B<select>(2), as follows:"
744 msgstr ""
745 "返されたファイルディスクリプターは、 B<poll>(2)  (B<epoll>(7)  も同じ) や "
746 "B<select>(2)  をサポートしており、以下のような動作をする。"
747
748 #. type: Plain text
749 #: build/C/man2/eventfd.2:168
750 msgid ""
751 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
752 "B<poll>(2)  B<POLLIN> flag)  if the counter has a value greater than 0."
753 msgstr ""
754 "カウンターが 0 より大きい値の場合、 ファイルディスクリプターは読み出し可能と"
755 "なる (B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
756
757 #. type: Plain text
758 #: build/C/man2/eventfd.2:178
759 msgid ""
760 "The file descriptor is writable (the B<select>(2)  I<writefds> argument; the "
761 "B<poll>(2)  B<POLLOUT> flag)  if it is possible to write a value of at least "
762 "\"1\" without blocking."
763 msgstr ""
764 "少なくとも値 \"1\" を、停止 (block) を伴わずに書き込める場合、 ファイルディス"
765 "クリプターは書き込み可能となる (B<select>(2)  の I<writefds> 引き数や "
766 "B<poll>(2)  の B<POLLOUT> フラグ)。"
767
768 #. type: Plain text
769 #: build/C/man2/eventfd.2:198
770 msgid ""
771 "If an overflow of the counter value was detected, then B<select>(2)  "
772 "indicates the file descriptor as being both readable and writable, and "
773 "B<poll>(2)  returns a B<POLLERR> event.  As noted above, B<write>(2)  can "
774 "never overflow the counter.  However an overflow can occur if 2^64 eventfd "
775 "\"signal posts\" were performed by the KAIO subsystem (theoretically "
776 "possible, but practically unlikely).  If an overflow has occurred, then "
777 "B<read>(2)  will return that maximum I<uint64_t> value (i.e., "
778 "0xffffffffffffffff)."
779 msgstr ""
780 "カウンター値のオーバーフローが検出された場合、 B<select>(2)  はファイルディス"
781 "クリプターは読み出し可能と書き込み可能の両方を通知し、 B<poll>(2)  は "
782 "B<POLLERR> イベントを返す。 上述の通り、 B<write>(2)  でカウンターがオーバー"
783 "フローすることは決してない。 しかしながら、 KAIO サブシステムによって 2^64 回"
784 "の eventfd \"signal posts\" が 実行された場合にはオーバーフローが起こり得る "
785 "(理論的にはあり得るが、実用的にはあり得ない)。 オーバーフローが発生した場"
786 "合、 B<read>(2)  は I<uint64_t> の最大値 (すなわち 0xffffffffffffffff) を返"
787 "す。"
788
789 #. type: Plain text
790 #: build/C/man2/eventfd.2:205
791 msgid ""
792 "The eventfd file descriptor also supports the other file-descriptor "
793 "multiplexing APIs: B<pselect>(2)  and B<ppoll>(2)."
794 msgstr ""
795 "eventfd ファイルディスクリプターは、これ以外のファイルディスクリプター 多重 "
796 "API である B<pselect>(2) と B<ppoll>(2) もサポートしている。"
797
798 #. type: TP
799 #: build/C/man2/eventfd.2:205 build/C/man2/signalfd.2:160
800 #: build/C/man2/timerfd_create.2:269
801 #, no-wrap
802 msgid "B<close>(2)"
803 msgstr "B<close>(2)"
804
805 #. type: Plain text
806 #: build/C/man2/eventfd.2:210
807 msgid ""
808 "When the file descriptor is no longer required it should be closed.  When "
809 "all file descriptors associated with the same eventfd object have been "
810 "closed, the resources for object are freed by the kernel."
811 msgstr ""
812 "ファイルディスクリプターがそれ以降は必要なくなった際には、クローズすべきであ"
813 "る。 同じ eventfd オブジェクトに関連付けられたファイルディスクリプターが全て "
814 "クローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
815
816 #. type: Plain text
817 #: build/C/man2/eventfd.2:222
818 msgid ""
819 "A copy of the file descriptor created by B<eventfd>()  is inherited by the "
820 "child produced by B<fork>(2).  The duplicate file descriptor is associated "
821 "with the same eventfd object.  File descriptors created by B<eventfd>()  are "
822 "preserved across B<execve>(2), unless the close-on-exec flag has been set."
823 msgstr ""
824 "B<fork>(2) で生成された子プロセスは、 B<eventfd>() で生成されたファイルディス"
825 "クリプターのコピーを継承する。 複製されたファイルディスクリプターは同じ "
826 "eventfd オブジェクトに関連付けられる。 close-on-exec フラグが設定されていない"
827 "場合、 B<execve>(2) の前後で B<eventfd>() で生成されたファイルディスクリプ"
828 "ターは保持される。"
829
830 #. type: Plain text
831 #: build/C/man2/eventfd.2:229
832 msgid ""
833 "On success, B<eventfd>()  returns a new eventfd file descriptor.  On error, "
834 "-1 is returned and I<errno> is set to indicate the error."
835 msgstr ""
836 "成功すると、 B<eventfd>()  は新規の eventfd ファイルディスクリプターを返す。 "
837 "エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
838
839 #. type: TP
840 #: build/C/man2/eventfd.2:230 build/C/man2/getitimer.2:142
841 #: build/C/man2/kill.2:106 build/C/man2/killpg.2:95 build/C/man2/prctl.2:922
842 #: build/C/man2/prctl.2:927 build/C/man2/prctl.2:939 build/C/man2/prctl.2:944
843 #: build/C/man2/prctl.2:953 build/C/man2/prctl.2:963 build/C/man2/prctl.2:1003
844 #: build/C/man2/prctl.2:1013 build/C/man2/prctl.2:1021
845 #: build/C/man2/prctl.2:1032 build/C/man2/prctl.2:1041
846 #: build/C/man2/prctl.2:1055 build/C/man2/prctl.2:1067
847 #: build/C/man2/prctl.2:1078 build/C/man2/rt_sigqueueinfo.2:141
848 #: build/C/man2/s390_runtime_instr.2:66 build/C/man2/sigaction.2:738
849 #: build/C/man2/sigaltstack.2:142 build/C/man3/siginterrupt.3:84
850 #: build/C/man2/signal.2:106 build/C/man2/signalfd.2:271
851 #: build/C/man2/signalfd.2:279 build/C/man2/sigprocmask.2:107
852 #: build/C/man3/sigqueue.3:98 build/C/man3/sigsetops.3:128
853 #: build/C/man3/sigwait.3:75 build/C/man2/sigwaitinfo.2:129
854 #: build/C/man2/timer_create.2:181 build/C/man2/timer_delete.2:61
855 #: build/C/man2/timer_getoverrun.2:91 build/C/man2/timer_settime.2:191
856 #: build/C/man2/timer_settime.2:199 build/C/man2/timerfd_create.2:312
857 #: build/C/man2/timerfd_create.2:320 build/C/man2/timerfd_create.2:356
858 #: build/C/man2/timerfd_create.2:363 build/C/man2/timerfd_create.2:369
859 #: build/C/man2/tkill.2:93 build/C/man2/wait.2:418
860 #, no-wrap
861 msgid "B<EINVAL>"
862 msgstr "B<EINVAL>"
863
864 #. type: Plain text
865 #: build/C/man2/eventfd.2:234
866 msgid "An unsupported value was specified in I<flags>."
867 msgstr "I<flags> にサポートされていない値が指定された。"
868
869 #. type: TP
870 #: build/C/man2/eventfd.2:234 build/C/man2/signalfd.2:286
871 #: build/C/man2/timerfd_create.2:327
872 #, no-wrap
873 msgid "B<EMFILE>"
874 msgstr "B<EMFILE>"
875
876 #. type: Plain text
877 #: build/C/man2/eventfd.2:237
878 msgid "The per-process limit on open file descriptors has been reached."
879 msgstr ""
880 "オープン済みのファイルディスクリプターの数がプロセスあたりの上限に 達してい"
881 "た。"
882
883 #. type: TP
884 #: build/C/man2/eventfd.2:237 build/C/man2/signalfd.2:289
885 #: build/C/man2/timerfd_create.2:330
886 #, no-wrap
887 msgid "B<ENFILE>"
888 msgstr "B<ENFILE>"
889
890 #. type: Plain text
891 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
892 #: build/C/man2/timerfd_create.2:334
893 msgid ""
894 "The system-wide limit on the total number of open files has been reached."
895 msgstr "オープン済みのファイル総数がシステム全体の上限に達していた。"
896
897 #. type: TP
898 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
899 #: build/C/man2/timerfd_create.2:334
900 #, no-wrap
901 msgid "B<ENODEV>"
902 msgstr "B<ENODEV>"
903
904 #. type: Plain text
905 #: build/C/man2/eventfd.2:249 build/C/man2/signalfd.2:296
906 #: build/C/man2/timerfd_create.2:337
907 msgid "Could not mount (internal) anonymous inode device."
908 msgstr "(カーネル内の) 無名 inode デバイスをマウントできなかった。"
909
910 #. type: TP
911 #: build/C/man2/eventfd.2:249 build/C/man2/s390_runtime_instr.2:73
912 #: build/C/man2/sigaltstack.2:147 build/C/man2/signalfd.2:296
913 #: build/C/man2/timer_create.2:189 build/C/man2/timerfd_create.2:337
914 #, no-wrap
915 msgid "B<ENOMEM>"
916 msgstr "B<ENOMEM>"
917
918 #. type: Plain text
919 #: build/C/man2/eventfd.2:253
920 msgid "There was insufficient memory to create a new eventfd file descriptor."
921 msgstr ""
922 "新しい eventfd ファイルディスクリプターを生成するのに十分なメモリーがなかっ"
923 "た。"
924
925 #. type: SH
926 #: build/C/man2/eventfd.2:253 build/C/man2/prctl.2:1177
927 #: build/C/man3/psignal.3:95 build/C/man2/restart_syscall.2:96
928 #: build/C/man2/rt_sigqueueinfo.2:169 build/C/man2/s390_runtime_instr.2:79
929 #: build/C/man2/sgetmask.2:66 build/C/man2/signalfd.2:299
930 #: build/C/man3/sigqueue.3:112 build/C/man3/sigvec.3:234
931 #: build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:65
932 #: build/C/man2/timer_getoverrun.2:95 build/C/man2/timer_settime.2:205
933 #: build/C/man2/timerfd_create.2:375 build/C/man2/tkill.2:104
934 #, no-wrap
935 msgid "VERSIONS"
936 msgstr "バージョン"
937
938 #.  eventfd() is in glibc 2.7, but reportedly does not build
939 #. type: Plain text
940 #: build/C/man2/eventfd.2:266
941 msgid ""
942 "B<eventfd>()  is available on Linux since kernel 2.6.22.  Working support is "
943 "provided in glibc since version 2.8.  The B<eventfd2>()  system call (see "
944 "NOTES) is available on Linux since kernel 2.6.27.  Since version 2.9, the "
945 "glibc B<eventfd>()  wrapper will employ the B<eventfd2>()  system call, if "
946 "it is supported by the kernel."
947 msgstr ""
948 "B<eventfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
949 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<eventfd2>()  "
950 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
951 "る。 バージョン 2.9 以降では、glibc の B<eventfd>()  のラッパー関数は、カーネ"
952 "ルが対応していれば B<eventfd2>()  システムコールを利用する。"
953
954 #. type: Plain text
955 #: build/C/man2/eventfd.2:271
956 msgid "B<eventfd>()  and B<eventfd2>()  are Linux-specific."
957 msgstr "B<eventfd>()  と B<eventfd2>()  は Linux 固有である。"
958
959 #. type: Plain text
960 #: build/C/man2/eventfd.2:279
961 msgid ""
962 "Applications can use an eventfd file descriptor instead of a pipe (see "
963 "B<pipe>(2))  in all cases where a pipe is used simply to signal events.  The "
964 "kernel overhead of an eventfd file descriptor is much lower than that of a "
965 "pipe, and only one file descriptor is required (versus the two required for "
966 "a pipe)."
967 msgstr ""
968 "アプリケーションは、パイプをイベントを通知するためだけに使用している 全ての場"
969 "面において、パイプの代わりに eventfd ファイルディスクリプターを 使用すること"
970 "ができる。 eventfd ファイルディスクリプターを使う方が、パイプを使う場合に比べ"
971 "て カーネルでのオーバヘッドは比べるとずっと小さく、ファイルディスクリプター"
972 "も 一つしか必要としない (パイプの場合は二つ必要である)。"
973
974 #.  or eventually syslets/threadlets
975 #. type: Plain text
976 #: build/C/man2/eventfd.2:285
977 msgid ""
978 "When used in the kernel, an eventfd file descriptor can provide a bridge "
979 "from kernel to user space, allowing, for example, functionalities like KAIO "
980 "(kernel AIO)  to signal to a file descriptor that some operation is complete."
981 msgstr ""
982 "カーネル内で使用すると、eventfd ファイルディスクリプターはカーネル空間から"
983 "ユーザー空間へのブリッジ機能を提供することができ、 例えば KAIO (kernel AIO)  "
984 "のような機能が、あるファイルディスクリプターに何らかの操作が完了したことを 通"
985 "知することができる。"
986
987 #. type: Plain text
988 #: build/C/man2/eventfd.2:302
989 msgid ""
990 "A key point about an eventfd file descriptor is that it can be monitored "
991 "just like any other file descriptor using B<select>(2), B<poll>(2), or "
992 "B<epoll>(7).  This means that an application can simultaneously monitor the "
993 "readiness of \"traditional\" files and the readiness of other kernel "
994 "mechanisms that support the eventfd interface.  (Without the B<eventfd>()  "
995 "interface, these mechanisms could not be multiplexed via B<select>(2), "
996 "B<poll>(2), or B<epoll>(7).)"
997 msgstr ""
998 "eventfd ファイルディスクリプターの重要な点は、 eventfd ファイルディスクリプ"
999 "ターが B<select>(2), B<poll>(2), B<epoll>(7)  を使って他のファイルディスクリ"
1000 "プターと全く同様に監視できる点である。 このことは、アプリケーションは「従来"
1001 "の (traditional)」 ファイルの状態変化と eventfd インターフェースをサポートす"
1002 "る他のカーネル機構の状態変化を同時に監視 できることを意味する (B<eventfd>()  "
1003 "インターフェースがない時には、これらのカーネル機構は B<select>(2), "
1004 "B<poll>(2), B<epoll>(7)  経由で多重することはできなかった)。"
1005
1006 #. type: SS
1007 #: build/C/man2/eventfd.2:302 build/C/man2/signalfd.2:326
1008 #: build/C/man2/sigwaitinfo.2:183 build/C/man2/timer_create.2:243
1009 #: build/C/man2/wait.2:525
1010 #, no-wrap
1011 msgid "C library/kernel ABI differences"
1012 msgstr "C ライブラリとカーネル ABI の違い"
1013
1014 #. type: Plain text
1015 #: build/C/man2/eventfd.2:316
1016 msgid ""
1017 "There are two underlying Linux system calls: B<eventfd>()  and the more "
1018 "recent B<eventfd2>().  The former system call does not implement a I<flags> "
1019 "argument.  The latter system call implements the I<flags> values described "
1020 "above.  The glibc wrapper function will use B<eventfd2>()  where it is "
1021 "available."
1022 msgstr ""
1023 "下層にある Linux システムコールは二種類あり、 B<eventfd>()  と、もっと新しい "
1024 "B<eventfd2>()  である。 B<eventfd>()  は I<flags> 引き数を実装していない。 "
1025 "B<eventfd2>()  では上記の値の I<flags> が実装されている。 glibc のラッパー関"
1026 "数は、 B<eventfd2>()  が利用可能であれば、これを使用する。"
1027
1028 #. type: SS
1029 #: build/C/man2/eventfd.2:316
1030 #, no-wrap
1031 msgid "Additional glibc features"
1032 msgstr "glibc の追加機能"
1033
1034 #. type: Plain text
1035 #: build/C/man2/eventfd.2:320
1036 msgid ""
1037 "The GNU C library defines an additional type, and two functions that attempt "
1038 "to abstract some of the details of reading and writing on an eventfd file "
1039 "descriptor:"
1040 msgstr ""
1041 "GNU C ライブラリは、eventfd ファイルディスクリプターの読み出しと書き込みに を"
1042 "関する詳細のいくつか抽象化するために、一つの型と、二つの関数を追加で 定義して"
1043 "いる。"
1044
1045 #. type: Plain text
1046 #: build/C/man2/eventfd.2:324
1047 #, no-wrap
1048 msgid "typedef uint64_t eventfd_t;\n"
1049 msgstr "typedef uint64_t eventfd_t;\n"
1050
1051 #. type: Plain text
1052 #: build/C/man2/eventfd.2:327
1053 #, no-wrap
1054 msgid ""
1055 "int eventfd_read(int fd, eventfd_t *value);\n"
1056 "int eventfd_write(int fd, eventfd_t value);\n"
1057 msgstr ""
1058 "int eventfd_read(int fd, eventfd_t *value);\n"
1059 "int eventfd_write(int fd, eventfd_t value);\n"
1060
1061 #. type: Plain text
1062 #: build/C/man2/eventfd.2:334
1063 msgid ""
1064 "The functions perform the read and write operations on an eventfd file "
1065 "descriptor, returning 0 if the correct number of bytes was transferred, or "
1066 "-1 otherwise."
1067 msgstr ""
1068 "これらの関数は、eventfd ファイルディスクリプターに対する読み出しと 書き込みの"
1069 "操作を実行し、正しいバイト数が転送された場合には 0 を返し、そうでない場合は "
1070 "-1 を返す。"
1071
1072 #. type: SH
1073 #: build/C/man2/eventfd.2:334 build/C/man2/sigaction.2:858
1074 #: build/C/man2/sigaltstack.2:217 build/C/man2/signalfd.2:360
1075 #: build/C/man3/sigwait.3:91 build/C/man2/timer_create.2:264
1076 #: build/C/man2/timer_getoverrun.2:128 build/C/man2/timer_settime.2:209
1077 #: build/C/man2/timerfd_create.2:386 build/C/man2/wait.2:552
1078 #, no-wrap
1079 msgid "EXAMPLE"
1080 msgstr "例"
1081
1082 #. type: Plain text
1083 #: build/C/man2/eventfd.2:343
1084 msgid ""
1085 "The following program creates an eventfd file descriptor and then forks to "
1086 "create a child process.  While the parent briefly sleeps, the child writes "
1087 "each of the integers supplied in the program's command-line arguments to the "
1088 "eventfd file descriptor.  When the parent has finished sleeping, it reads "
1089 "from the eventfd file descriptor."
1090 msgstr ""
1091 "以下のプログラムは eventfd ファイルディスクリプターを生成し、 その後 fork を"
1092 "実行して子プロセスを生成する。 親プロセスが少しの間 sleep する間に、子プロセ"
1093 "スは プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ eventfd "
1094 "ファイルディスクリプターに書き込む。 親プロセスは sleep を完了すると eventfd "
1095 "ファイルディスクリプターから 読み出しを行う。"
1096
1097 #. type: Plain text
1098 #: build/C/man2/eventfd.2:345
1099 msgid "The following shell session shows a sample run of the program:"
1100 msgstr "以下に示すシェルセッションにこのプログラムの使い方を示す。"
1101
1102 #. type: Plain text
1103 #: build/C/man2/eventfd.2:357
1104 #, no-wrap
1105 msgid ""
1106 "$B< ./a.out 1 2 4 7 14>\n"
1107 "Child writing 1 to efd\n"
1108 "Child writing 2 to efd\n"
1109 "Child writing 4 to efd\n"
1110 "Child writing 7 to efd\n"
1111 "Child writing 14 to efd\n"
1112 "Child completed write loop\n"
1113 "Parent about to read\n"
1114 "Parent read 28 (0x1c) from efd\n"
1115 msgstr ""
1116 "$B< ./a.out 1 2 4 7 14>\n"
1117 "Child writing 1 to efd\n"
1118 "Child writing 2 to efd\n"
1119 "Child writing 4 to efd\n"
1120 "Child writing 7 to efd\n"
1121 "Child writing 14 to efd\n"
1122 "Child completed write loop\n"
1123 "Parent about to read\n"
1124 "Parent read 28 (0x1c) from efd\n"
1125
1126 #. type: SS
1127 #: build/C/man2/eventfd.2:359 build/C/man2/signalfd.2:383
1128 #: build/C/man2/timer_create.2:295 build/C/man2/timerfd_create.2:414
1129 #: build/C/man2/wait.2:587
1130 #, no-wrap
1131 msgid "Program source"
1132 msgstr "プログラムのソース"
1133
1134 #. type: Plain text
1135 #: build/C/man2/eventfd.2:367
1136 #, no-wrap
1137 msgid ""
1138 "#include E<lt>sys/eventfd.hE<gt>\n"
1139 "#include E<lt>unistd.hE<gt>\n"
1140 "#include E<lt>stdlib.hE<gt>\n"
1141 "#include E<lt>stdio.hE<gt>\n"
1142 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1143 msgstr ""
1144 "#include E<lt>sys/eventfd.hE<gt>\n"
1145 "#include E<lt>unistd.hE<gt>\n"
1146 "#include E<lt>stdlib.hE<gt>\n"
1147 "#include E<lt>stdio.hE<gt>\n"
1148 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1149
1150 #. type: Plain text
1151 #: build/C/man2/eventfd.2:370 build/C/man2/signalfd.2:394
1152 #, no-wrap
1153 msgid ""
1154 "#define handle_error(msg) \\e\n"
1155 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1156 msgstr ""
1157 "#define handle_error(msg) \\e\n"
1158 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1159
1160 #. type: Plain text
1161 #: build/C/man2/eventfd.2:377
1162 #, no-wrap
1163 msgid ""
1164 "int\n"
1165 "main(int argc, char *argv[])\n"
1166 "{\n"
1167 "    int efd, j;\n"
1168 "    uint64_t u;\n"
1169 "    ssize_t s;\n"
1170 msgstr ""
1171 "int\n"
1172 "main(int argc, char *argv[])\n"
1173 "{\n"
1174 "    int efd, j;\n"
1175 "    uint64_t u;\n"
1176 "    ssize_t s;\n"
1177
1178 #. type: Plain text
1179 #: build/C/man2/eventfd.2:382
1180 #, no-wrap
1181 msgid ""
1182 "    if (argc E<lt> 2) {\n"
1183 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1184 "        exit(EXIT_FAILURE);\n"
1185 "    }\n"
1186 msgstr ""
1187 "    if (argc E<lt> 2) {\n"
1188 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1189 "        exit(EXIT_FAILURE);\n"
1190 "    }\n"
1191
1192 #. type: Plain text
1193 #: build/C/man2/eventfd.2:386
1194 #, no-wrap
1195 msgid ""
1196 "    efd = eventfd(0, 0);\n"
1197 "    if (efd == -1)\n"
1198 "        handle_error(\"eventfd\");\n"
1199 msgstr ""
1200 "    efd = eventfd(0, 0);\n"
1201 "    if (efd == -1)\n"
1202 "        handle_error(\"eventfd\");\n"
1203
1204 #. type: Plain text
1205 #: build/C/man2/eventfd.2:398
1206 #, no-wrap
1207 msgid ""
1208 "    switch (fork()) {\n"
1209 "    case 0:\n"
1210 "        for (j = 1; j E<lt> argc; j++) {\n"
1211 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1212 "            u = strtoull(argv[j], NULL, 0);\n"
1213 "                    /* strtoull() allows various bases */\n"
1214 "            s = write(efd, &u, sizeof(uint64_t));\n"
1215 "            if (s != sizeof(uint64_t))\n"
1216 "                handle_error(\"write\");\n"
1217 "        }\n"
1218 "        printf(\"Child completed write loop\\en\");\n"
1219 msgstr ""
1220 "    switch (fork()) {\n"
1221 "    case 0:\n"
1222 "        for (j = 1; j E<lt> argc; j++) {\n"
1223 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1224 "            u = strtoull(argv[j], NULL, 0);\n"
1225 "                    /* strtoull() allows various bases */\n"
1226 "            s = write(efd, &u, sizeof(uint64_t));\n"
1227 "            if (s != sizeof(uint64_t))\n"
1228 "                handle_error(\"write\");\n"
1229 "        }\n"
1230 "        printf(\"Child completed write loop\\en\");\n"
1231
1232 #. type: Plain text
1233 #: build/C/man2/eventfd.2:400
1234 #, no-wrap
1235 msgid "        exit(EXIT_SUCCESS);\n"
1236 msgstr "        exit(EXIT_SUCCESS);\n"
1237
1238 #. type: Plain text
1239 #: build/C/man2/eventfd.2:403
1240 #, no-wrap
1241 msgid ""
1242 "    default:\n"
1243 "        sleep(2);\n"
1244 msgstr ""
1245 "    default:\n"
1246 "        sleep(2);\n"
1247
1248 #. type: Plain text
1249 #: build/C/man2/eventfd.2:411
1250 #, no-wrap
1251 msgid ""
1252 "        printf(\"Parent about to read\\en\");\n"
1253 "        s = read(efd, &u, sizeof(uint64_t));\n"
1254 "        if (s != sizeof(uint64_t))\n"
1255 "            handle_error(\"read\");\n"
1256 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1257 "                (unsigned long long) u, (unsigned long long) u);\n"
1258 "        exit(EXIT_SUCCESS);\n"
1259 msgstr ""
1260 "        printf(\"Parent about to read\\en\");\n"
1261 "        s = read(efd, &u, sizeof(uint64_t));\n"
1262 "        if (s != sizeof(uint64_t))\n"
1263 "            handle_error(\"read\");\n"
1264 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1265 "                (unsigned long long) u, (unsigned long long) u);\n"
1266 "        exit(EXIT_SUCCESS);\n"
1267
1268 #. type: Plain text
1269 #: build/C/man2/eventfd.2:416
1270 #, no-wrap
1271 msgid ""
1272 "    case -1:\n"
1273 "        handle_error(\"fork\");\n"
1274 "    }\n"
1275 "}\n"
1276 msgstr ""
1277 "    case -1:\n"
1278 "        handle_error(\"fork\");\n"
1279 "    }\n"
1280 "}\n"
1281
1282 #. type: Plain text
1283 #: build/C/man2/eventfd.2:428
1284 msgid ""
1285 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), "
1286 "B<signalfd>(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), "
1287 "B<sem_overview>(7)"
1288 msgstr ""
1289 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), "
1290 "B<signalfd>(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), "
1291 "B<sem_overview>(7)"
1292
1293 #. type: TH
1294 #: build/C/man2/getitimer.2:12
1295 #, no-wrap
1296 msgid "GETITIMER"
1297 msgstr "GETITIMER"
1298
1299 #. type: Plain text
1300 #: build/C/man2/getitimer.2:15
1301 msgid "getitimer, setitimer - get or set value of an interval timer"
1302 msgstr "getitimer, setitimer - インターバルタイマーの値を取得または設定する"
1303
1304 #. type: Plain text
1305 #: build/C/man2/getitimer.2:18
1306 #, no-wrap
1307 msgid "B<#include E<lt>sys/time.hE<gt>>\n"
1308 msgstr "B<#include E<lt>sys/time.hE<gt>>\n"
1309
1310 #. type: Plain text
1311 #: build/C/man2/getitimer.2:20
1312 #, no-wrap
1313 msgid "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1314 msgstr "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1315
1316 #. type: Plain text
1317 #: build/C/man2/getitimer.2:23
1318 #, no-wrap
1319 msgid ""
1320 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1321 "B<              struct itimerval *>I<old_value>B<);>\n"
1322 msgstr ""
1323 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1324 "B<              struct itimerval *>I<old_value>B<);>\n"
1325
1326 #. type: Plain text
1327 #: build/C/man2/getitimer.2:29
1328 msgid ""
1329 "The system provides each process with three interval timers, each "
1330 "decrementing in a distinct time domain.  When a timer expires, a signal is "
1331 "sent to the process, and the timer is reset to the specified interval (if "
1332 "nonzero)."
1333 msgstr ""
1334 "システムは 1 個のプロセスにつき 3 個のインターバルタイマーを提供する。 それぞ"
1335 "れのタイマーは別々の時間領域で減少する。 あるタイマーが満了すると、 プロセス"
1336 "にシグナルが送られ、 タイマーは (0 でなければ) 指定されたインターバルに再設定"
1337 "される。"
1338
1339 #. type: TP
1340 #: build/C/man2/getitimer.2:29
1341 #, no-wrap
1342 msgid "B<ITIMER_REAL>"
1343 msgstr "B<ITIMER_REAL>"
1344
1345 #. type: Plain text
1346 #: build/C/man2/getitimer.2:34
1347 msgid "decrements in real time, and delivers B<SIGALRM> upon expiration."
1348 msgstr "実時間 (real time) で減少し、満了すると B<SIGALRM> が送られる。"
1349
1350 #. type: TP
1351 #: build/C/man2/getitimer.2:34
1352 #, no-wrap
1353 msgid "B<ITIMER_VIRTUAL>"
1354 msgstr "B<ITIMER_VIRTUAL>"
1355
1356 #. type: Plain text
1357 #: build/C/man2/getitimer.2:39
1358 msgid ""
1359 "decrements only when the process is executing, and delivers B<SIGVTALRM> "
1360 "upon expiration."
1361 msgstr ""
1362 "プロセスが実行されている間のみ減少し、満了すると B<SIGVTALRM> が送られる。"
1363
1364 #. type: TP
1365 #: build/C/man2/getitimer.2:39
1366 #, no-wrap
1367 msgid "B<ITIMER_PROF>"
1368 msgstr "B<ITIMER_PROF>"
1369
1370 #. type: Plain text
1371 #: build/C/man2/getitimer.2:49
1372 msgid ""
1373 "decrements both when the process executes and when the system is executing "
1374 "on behalf of the process.  Coupled with B<ITIMER_VIRTUAL>, this timer is "
1375 "usually used to profile the time spent by the application in user and kernel "
1376 "space.  B<SIGPROF> is delivered upon expiration."
1377 msgstr ""
1378 "プロセスが実行されていて、 かつシステムがそのプロセスのために処理を行なってい"
1379 "る間に減少する。 多くの場合、このタイマーは B<ITIMER_VIRTUAL> と組み合わされ"
1380 "て、アプリケーションがカーネル空間とユーザー空間で どれだけの時間を過ごしたか"
1381 "をプロファイルするのに使用される。 満了すると B<SIGPROF> が送られる。"
1382
1383 #. type: Plain text
1384 #: build/C/man2/getitimer.2:51
1385 msgid "Timer values are defined by the following structures:"
1386 msgstr "タイマーの値は以下の構造体によって定義される:"
1387
1388 #. type: Plain text
1389 #: build/C/man2/getitimer.2:59
1390 #, no-wrap
1391 msgid ""
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 msgstr ""
1397 "struct itimerval {\n"
1398 "    struct timeval it_interval; /* Interval for periodic timer */\n"
1399 "    struct timeval it_value;    /* Time until next expiration */\n"
1400 "};\n"
1401
1402 #. type: Plain text
1403 #: build/C/man2/getitimer.2:64
1404 #, no-wrap
1405 msgid ""
1406 "struct timeval {\n"
1407 "    time_t      tv_sec;         /* seconds */\n"
1408 "    suseconds_t tv_usec;        /* microseconds */\n"
1409 "};\n"
1410 msgstr ""
1411 "struct timeval {\n"
1412 "    time_t      tv_sec;         /* seconds */\n"
1413 "    suseconds_t tv_usec;        /* microseconds */\n"
1414 "};\n"
1415
1416 #. type: Plain text
1417 #: build/C/man2/getitimer.2:90
1418 msgid ""
1419 "The function B<getitimer>()  fills the structure pointed to by I<curr_value> "
1420 "with the current value (i.e., the amount of time remaining until the next "
1421 "expiration)  of the timer specified by I<which> (one of B<ITIMER_REAL>, "
1422 "B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>).  The subfields of the field "
1423 "I<it_value> are set to the amount of time remaining on the timer, or zero if "
1424 "the timer is disabled.  The I<it_interval> field is set to the timer "
1425 "interval (period); a value of zero returned in (both subfields of) this "
1426 "field indicates that this is a single-shot timer."
1427 msgstr ""
1428 "B<getitimer>()  関数は、 I<which> で指定されたタイマー (B<ITIMER_REAL>, "
1429 "B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれか) の現在の値 (すなわち、次のタイ"
1430 "マー満了までの残り時間) を、 I<curr_value> で指定された構造体に格納する。 "
1431 "I<it_value> フィールドのサブフィールドにはタイマーの残り時間が設定される。 タ"
1432 "イマーが無効になっている場合は ゼロが設定される。 I<it_interval> フィールドに"
1433 "はタイマーのインターバル (期間) が設定される。 I<it_interval> (の両方のサブ"
1434 "フィールド) で値 0 が返された場合は、 このタイマーが 1 回限りのタイマーである"
1435 "ことを示している。"
1436
1437 #. type: Plain text
1438 #: build/C/man2/getitimer.2:101
1439 msgid ""
1440 "The function B<setitimer>()  sets the specified timer to the value in "
1441 "I<new_value>.  If I<old_value> is non-NULL, the old value of the timer (i."
1442 "e., the same information as returned by B<getitimer>())  is stored there."
1443 msgstr ""
1444 "B<setitimer>()  関数は指定されたタイマーに I<new_value> の値を設定する。 "
1445 "I<old_value> が NULL 以外の場合、タイマーの古い値 (すなわち B<getitimer>() で"
1446 "返されるのと同じ情報) が I<old_value> に格納される。"
1447
1448 #. type: Plain text
1449 #: build/C/man2/getitimer.2:111
1450 msgid ""
1451 "Timers decrement from I<it_value> to zero, generate a signal, and reset to "
1452 "I<it_interval>.  A timer which is set to zero (I<it_value> is zero or the "
1453 "timer expires and I<it_interval> is zero) stops."
1454 msgstr ""
1455 "タイマーは I<it_value> からゼロへ向けて減っていき、シグナルを生成し、 "
1456 "I<it_interval> に初期化される。 タイマーがゼロに設定された場合 (I<it_value> "
1457 "がゼロか、タイマーが満了した時に I<it_interval> がゼロの場合) は停止する。"
1458
1459 #. type: Plain text
1460 #: build/C/man2/getitimer.2:117
1461 msgid ""
1462 "Both I<tv_sec> and I<tv_usec> are significant in determining the duration of "
1463 "a timer."
1464 msgstr "タイマーの期間は I<tv_sec> と I<tv_usec> の両方により決定される。"
1465
1466 #. type: Plain text
1467 #: build/C/man2/getitimer.2:129
1468 msgid ""
1469 "Timers will never expire before the requested time, but may expire some "
1470 "(short) time afterward, which depends on the system timer resolution and on "
1471 "the system load; see B<time>(7).  (But see BUGS below.)  Upon expiration, a "
1472 "signal will be generated and the timer reset.  If the timer expires while "
1473 "the process is active (always true for B<ITIMER_VIRTUAL>), the signal will "
1474 "be delivered immediately when generated.  Otherwise, the delivery will be "
1475 "offset by a small time dependent on the system loading."
1476 msgstr ""
1477 "要求した時間がくる前にタイマーが満了することはないが、 逆にある (短い) 時間だ"
1478 "け満了が遅れることはある。 どれだけ遅れるかはシステムの時間分解能とシステムの"
1479 "負荷に依存する (B<time>(7)  参照; 但し、バグの項も参照のこと)。 タイマーが満"
1480 "了するとシグナルが生成され、タイマーは初期化される。 プロセスがアクティブな"
1481 "時 (B<ITIMER_VIRTUAL> の場合には常にそうである) にタイマーが満了した場合、生"
1482 "成されたシグナルは すぐに配送される。それ以外の場合は、システムの負荷により少"
1483 "しの時間だけ 遅れて配送される。"
1484
1485 #. type: Plain text
1486 #: build/C/man2/getitimer.2:134 build/C/man2/killpg.2:94
1487 #: build/C/man2/tkill.2:92
1488 msgid ""
1489 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1490 "appropriately."
1491 msgstr ""
1492 "成功した場合、0 が返される。エラーが発生した場合、-1 が返され、 I<errno> が適"
1493 "切に設定される。"
1494
1495 #. type: TP
1496 #: build/C/man2/getitimer.2:135 build/C/man2/prctl.2:905
1497 #: build/C/man2/prctl.2:909 build/C/man2/sigaction.2:734
1498 #: build/C/man2/sigaltstack.2:138 build/C/man2/sigpending.2:60
1499 #: build/C/man2/sigprocmask.2:100 build/C/man2/sigsuspend.2:77
1500 #: build/C/man2/timer_settime.2:184 build/C/man2/timerfd_create.2:349
1501 #, no-wrap
1502 msgid "B<EFAULT>"
1503 msgstr "B<EFAULT>"
1504
1505 #. type: Plain text
1506 #: build/C/man2/getitimer.2:142 build/C/man2/timerfd_create.2:356
1507 msgid "I<new_value>, I<old_value>, or I<curr_value> is not valid a pointer."
1508 msgstr "I<new_value>, I<old_value>, I<curr_value> が有効なポインターではない。"
1509
1510 #. type: Plain text
1511 #: build/C/man2/getitimer.2:155
1512 msgid ""
1513 "I<which> is not one of B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>; "
1514 "or (since Linux 2.6.22) one of the I<tv_usec> fields in the structure "
1515 "pointed to by I<new_value> contains a value outside the range 0 to 999999."
1516 msgstr ""
1517 "I<which> が B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれでもな"
1518 "い。 または (Linux 2.6.22 以降で)  I<new_value> で指定された構造体の "
1519 "I<tv_usec> フィールドの一つが 0 以上 999999 以下の範囲に入らない値である。"
1520
1521 #. type: Plain text
1522 #: build/C/man2/getitimer.2:165
1523 msgid ""
1524 "POSIX.1-2001, SVr4, 4.4BSD (this call first appeared in 4.2BSD).  "
1525 "POSIX.1-2008 marks B<getitimer>()  and B<setitimer>()  obsolete, "
1526 "recommending the use of the POSIX timers API (B<timer_gettime>(2), "
1527 "B<timer_settime>(2), etc.) instead."
1528 msgstr ""
1529 "POSIX.1-2001, SVr4, 4.4BSD (このコールは 4.2BSD で始めて現われた).  "
1530 "POSIX.1-2008 では、 B<getitimer>()  と B<setitimer>()  は廃止予定とされてお"
1531 "り、 代わりに POSIX タイマー API (B<timer_gettime>(2), B<timer_settime>(2)  "
1532 "など) を使うことが推奨されている。"
1533
1534 #. type: Plain text
1535 #: build/C/man2/getitimer.2:171
1536 msgid ""
1537 "A child created via B<fork>(2)  does not inherit its parent's interval "
1538 "timers.  Interval timers are preserved across an B<execve>(2)."
1539 msgstr ""
1540 "B<fork>(2)  で作成された子プロセスは、 親プロセスのインターバルタイマーを継承"
1541 "しない。 B<execve>(2)  の前後ではインターバルタイマーは保存される。"
1542
1543 #. type: Plain text
1544 #: build/C/man2/getitimer.2:181
1545 msgid ""
1546 "POSIX.1 leaves the interaction between B<setitimer>()  and the three "
1547 "interfaces B<alarm>(2), B<sleep>(3), and B<usleep>(3)  unspecified."
1548 msgstr ""
1549 "POSIX.1 では、 B<setitimer>()  と、 B<alarm>(2), B<sleep>(3), B<usleep>(3)  "
1550 "という 3 つのインターフェースとの相互の影響については規定していない。"
1551
1552 #. type: Plain text
1553 #: build/C/man2/getitimer.2:183
1554 msgid "The standards are silent on the meaning of the call:"
1555 msgstr "標準では、次の呼び出しの意味については規定されていない。"
1556
1557 #. type: Plain text
1558 #: build/C/man2/getitimer.2:185
1559 #, no-wrap
1560 msgid "    setitimer(which, NULL, &old_value);\n"
1561 msgstr "    setitimer(which, NULL, &old_value);\n"
1562
1563 #. type: Plain text
1564 #: build/C/man2/getitimer.2:188
1565 msgid ""
1566 "Many systems (Solaris, the BSDs, and perhaps others)  treat this as "
1567 "equivalent to:"
1568 msgstr ""
1569 "(Solaris, BSD 系やおそらく他のシステムもそうだが) 多くのシステムでは、この呼"
1570 "び出しは以下と等価である。"
1571
1572 #. type: Plain text
1573 #: build/C/man2/getitimer.2:190
1574 #, no-wrap
1575 msgid "    getitimer(which, &old_value);\n"
1576 msgstr "    getitimer(which, &old_value);\n"
1577
1578 #. type: Plain text
1579 #: build/C/man2/getitimer.2:196
1580 msgid ""
1581 "In Linux, this is treated as being equivalent to a call in which the "
1582 "I<new_value> fields are zero; that is, the timer is disabled.  I<Don't use "
1583 "this Linux misfeature>: it is nonportable and unnecessary."
1584 msgstr ""
1585 "Linux では、この呼び出しは I<new_value> フィールドが 0 の呼び出しと等価なもの"
1586 "と扱われる。 つまり、タイマーが無効になる。 I<Linux のこの間違った機能を使用"
1587 "しないこと>。移植性もなく、不必要な機能である。"
1588
1589 #. type: SH
1590 #: build/C/man2/getitimer.2:196 build/C/man2/kill.2:161
1591 #: build/C/man3/profil.3:72 build/C/man3/psignal.3:101
1592 #: build/C/man2/sigaction.2:849 build/C/man2/signalfd.2:352
1593 #: build/C/man2/sigpending.2:85 build/C/man3/sigset.3:232
1594 #: build/C/man2/timer_getoverrun.2:115 build/C/man2/timerfd_create.2:380
1595 #: build/C/man2/wait.2:537
1596 #, no-wrap
1597 msgid "BUGS"
1598 msgstr "バグ"
1599
1600 #. type: Plain text
1601 #: build/C/man2/getitimer.2:205
1602 msgid ""
1603 "The generation and delivery of a signal are distinct, and only one instance "
1604 "of each of the signals listed above may be pending for a process.  Under "
1605 "very heavy loading, an B<ITIMER_REAL> timer may expire before the signal "
1606 "from a previous expiration has been delivered.  The second signal in such an "
1607 "event will be lost."
1608 msgstr ""
1609 "シグナルの生成と配送は別個のものであり、 前述のシグナルのそれぞれについて一つ"
1610 "だけがプロセスのために 待機する。 非常に重い負荷の下では、 B<ITIMER_REAL> タ"
1611 "イマーでは、時間切れにより生成された一つ前のシグナルが配送される前に、 次の時"
1612 "間切れが起こる場合がある。 そのような場合、 2 個めのイベントに対するシグナル"
1613 "は失われてしまう。"
1614
1615 #. type: Plain text
1616 #: build/C/man2/getitimer.2:220
1617 msgid ""
1618 "On Linux kernels before 2.6.16, timer values are represented in jiffies.  If "
1619 "a request is made set a timer with a value whose jiffies representation "
1620 "exceeds B<MAX_SEC_IN_JIFFIES> (defined in I<include/linux/jiffies.h>), then "
1621 "the timer is silently truncated to this ceiling value.  On Linux/i386 "
1622 "(where, since Linux 2.6.13, the default jiffy is 0.004 seconds), this means "
1623 "that the ceiling value for a timer is approximately 99.42 days.  Since Linux "
1624 "2.6.16, the kernel uses a different internal representation for times, and "
1625 "this ceiling is removed."
1626 msgstr ""
1627 "バージョン 2.6.16 より前の Linux カーネルでは、 タイマーの値は jiffy で表現さ"
1628 "れる。 要求が jiffy 表現で (I<include/linux/jiffies.h> で定義されている)  "
1629 "B<MAX_SEC_IN_JIFFIES> を越える値をタイマーに設定しようとするものの場合、 タイ"
1630 "マーは暗黙にこの上限値に切り詰められる。 Linux/i386 の場合 (Linux 2.6.13 以降"
1631 "では jiffy は 0.004 秒) の場合、 これはタイマーの上限値がおよそ 99.42 日にな"
1632 "ることを意味する。 Linux 2.6.16 以降では、カーネルは時間に関する内部表現とし"
1633 "て 異なる表現を使うようになっており、この上限はなくなった。"
1634
1635 #.  4 Jul 2005: It looks like this bug may remain in 2.4.x.
1636 #.      http://lkml.org/lkml/2005/7/1/165
1637 #. type: Plain text
1638 #: build/C/man2/getitimer.2:227
1639 msgid ""
1640 "On certain systems (including i386), Linux kernels before version 2.6.12 "
1641 "have a bug which will produce premature timer expirations of up to one jiffy "
1642 "under some circumstances.  This bug is fixed in kernel 2.6.12."
1643 msgstr ""
1644 "(i386 を含む) いくつかのシステムでは、 バージョン 2.6.12 以前の Linux カーネ"
1645 "ルは ある種の状況では 1 jiffy 早くタイマーが終了してしまうというバグがあっ"
1646 "た。 このバグはカーネル 2.6.12 で修正された。"
1647
1648 #.  Bugzilla report 25 Apr 2006:
1649 #.  http://bugzilla.kernel.org/show_bug.cgi?id=6443
1650 #.  "setitimer() should reject noncanonical arguments"
1651 #. type: Plain text
1652 #: build/C/man2/getitimer.2:246
1653 msgid ""
1654 "POSIX.1-2001 says that B<setitimer>()  should fail if a I<tv_usec> value is "
1655 "specified that is outside of the range 0 to 999999.  However, in kernels up "
1656 "to and including 2.6.21, Linux does not give an error, but instead silently "
1657 "adjusts the corresponding seconds value for the timer.  From kernel 2.6.22 "
1658 "onward, this nonconformance has been repaired: an improper I<tv_usec> value "
1659 "results in an B<EINVAL> error."
1660 msgstr ""
1661 "POSIX.1-2001 では B<setitimer>()  は I<tv_usec> の値が 0 から 999999 の範囲外"
1662 "である場合には失敗するべきだとしている。 しかし、2.6.21 以前のカーネルの "
1663 "Linux ではエラーにならず、 対応する秒数の分だけそのタイマーの秒の値が暗黙に調"
1664 "整される。 カーネル 2.6.22 以降では、この標準非準拠の動作は修正され、 "
1665 "I<tv_usec> の値が不適切な場合には B<EINVAL> エラーとなる。"
1666
1667 #. type: Plain text
1668 #: build/C/man2/getitimer.2:253
1669 msgid ""
1670 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1671 "B<timerfd_create>(2), B<time>(7)"
1672 msgstr ""
1673 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1674 "B<timerfd_create>(2), B<time>(7)"
1675
1676 #. type: TH
1677 #: build/C/man3/gsignal.3:27
1678 #, no-wrap
1679 msgid "GSIGNAL"
1680 msgstr "GSIGNAL"
1681
1682 #. type: TH
1683 #: build/C/man3/gsignal.3:27
1684 #, no-wrap
1685 msgid "2007-07-26"
1686 msgstr "2007-07-26"
1687
1688 #. type: Plain text
1689 #: build/C/man3/gsignal.3:30
1690 msgid "gsignal, ssignal - software signal facility"
1691 msgstr "gsignal, ssignal - ソフトウェアシグナル機能"
1692
1693 #. type: Plain text
1694 #: build/C/man3/gsignal.3:33 build/C/man2/kill.2:52 build/C/man3/psignal.3:36
1695 #: build/C/man3/raise.3:35 build/C/man2/sigaction.2:55
1696 #: build/C/man3/siginterrupt.3:37 build/C/man3/sigpause.3:31
1697 #: build/C/man3/sigwait.3:32 build/C/man2/sigwaitinfo.2:31
1698 #, no-wrap
1699 msgid "B<#include E<lt>signal.hE<gt>>\n"
1700 msgstr "B<#include E<lt>signal.hE<gt>>\n"
1701
1702 #. type: Plain text
1703 #: build/C/man3/gsignal.3:35
1704 #, no-wrap
1705 msgid "B<typedef void (*sighandler_t)(int);>\n"
1706 msgstr "B<typedef void (*sighandler_t)(int);>\n"
1707
1708 #. type: Plain text
1709 #: build/C/man3/gsignal.3:37
1710 #, no-wrap
1711 msgid "B<int gsignal(int >I<signum>B<);>\n"
1712 msgstr "B<int gsignal(int >I<signum>B<);>\n"
1713
1714 #. type: Plain text
1715 #: build/C/man3/gsignal.3:39
1716 #, no-wrap
1717 msgid "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1718 msgstr "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1719
1720 #. type: Plain text
1721 #: build/C/man3/gsignal.3:44 build/C/man2/kill.2:59 build/C/man2/killpg.2:53
1722 #: build/C/man3/profil.3:42 build/C/man3/psignal.3:46
1723 #: build/C/man2/sigaction.2:63 build/C/man2/sigaltstack.2:38
1724 #: build/C/man3/siginterrupt.3:44 build/C/man2/sigpending.2:40
1725 #: build/C/man2/sigprocmask.2:41 build/C/man3/sigqueue.3:39
1726 #: build/C/man3/sigset.3:45 build/C/man3/sigsetops.3:51
1727 #: build/C/man2/sigsuspend.2:40 build/C/man3/sigvec.3:45
1728 #: build/C/man3/sigwait.3:39 build/C/man2/sigwaitinfo.2:41
1729 #: build/C/man2/timer_create.2:50 build/C/man2/timer_delete.2:41
1730 #: build/C/man2/timer_getoverrun.2:41 build/C/man2/timer_settime.2:45
1731 #: build/C/man2/wait.2:69 build/C/man2/wait4.2:53
1732 msgid ""
1733 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
1734 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7)  参照):"
1735
1736 #. type: Plain text
1737 #: build/C/man3/gsignal.3:49
1738 msgid "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1739 msgstr "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1740
1741 #. type: Plain text
1742 #: build/C/man3/gsignal.3:57
1743 msgid ""
1744 "Don't use these functions under Linux.  Due to a historical mistake, under "
1745 "Linux these functions are aliases for B<raise>(3)  and B<signal>(2), "
1746 "respectively."
1747 msgstr ""
1748 "Linux ではこれらの関数を使用しないこと。 過去に間違いがあり、Linux では "
1749 "B<gsignal>()  と B<ssignal>()  はそれぞれ B<raise>(3)  と B<signal>(2)  の別"
1750 "名になっている。"
1751
1752 #. type: Plain text
1753 #: build/C/man3/gsignal.3:95
1754 msgid ""
1755 "Elsewhere, on System V-like systems, these functions implement software "
1756 "signaling, entirely independent of the classical B<signal>(2)  and "
1757 "B<kill>(2)  functions.  The function B<ssignal>()  defines the action to "
1758 "take when the software signal with number I<signum> is raised using the "
1759 "function B<gsignal>(), and returns the previous such action or B<SIG_DFL>.  "
1760 "The function B<gsignal>()  does the following: if no action (or the action "
1761 "B<SIG_DFL>)  was specified for I<signum>, then it does nothing and returns "
1762 "0.  If the action B<SIG_IGN> was specified for I<signum>, then it does "
1763 "nothing and returns 1.  Otherwise, it resets the action to B<SIG_DFL> and "
1764 "calls the action function with argument I<signum>, and returns the value "
1765 "returned by that function.  The range of possible values I<signum> varies "
1766 "(often 1-15 or 1-17)."
1767 msgstr ""
1768 "一方、System V 風のシステムでは、これらの関数で、 従来の B<signal>(2)  や "
1769 "B<kill>(2)  の関数群とは完全に独立な、 ソフトウェアシグナリングを実現してい"
1770 "る。 B<ssignal>()  関数は、番号 I<signum> のソフトウェアシグナルが "
1771 "B<gsignal>()  関数を使って発生された時にとるべきアクションを定義する。 "
1772 "B<gsignal>()  の返り値は、一つ前に指定されていたアクション、もしくは "
1773 "B<SIG_DFL> である。 B<gsignal>()  は以下のような動作を行う: I<signum> に対し"
1774 "てアクションが指定されていないか、アクション B<SIG_DFL> が指定されていた場"
1775 "合、何もせずに 0 を返す。 I<signum> に対して アクション B<SIG_IGN> が指定され"
1776 "ていた場合、何もせずに 1 を返す。 それ以外の場合、アクションを B<SIG_DFL> に"
1777 "リセットし、引き数に I<signum> を指定してアクション関数を呼び出して、アクショ"
1778 "ン関数の返り値を返す。 I<signum> がとり得る値の範囲は実装により異なる (多くの"
1779 "場合 1〜15 か 1〜17 である)。"
1780
1781 #. type: Plain text
1782 #: build/C/man3/gsignal.3:103
1783 msgid ""
1784 "These functions are available under AIX, DG/UX, HP-UX, SCO, Solaris, Tru64.  "
1785 "They are called obsolete under most of these systems, and are broken under "
1786 "Linux libc and glibc.  Some systems also have B<gsignal_r>()  and "
1787 "B<ssignal_r>()."
1788 msgstr ""
1789 "これらの関数は、AIX, DG/UX, HP-UX, SCO, Solaris, Tru64 で使用可能である。 こ"
1790 "れらのシステムのほとんどで廃止されたことになっており、 Linux の libc および "
1791 "glibc では正しく実装されていない。 B<gsignal_r>()  と B<ssignal_r>()  が実装"
1792 "されているシステムもある。"
1793
1794 #. type: Plain text
1795 #: build/C/man3/gsignal.3:107
1796 msgid "B<kill>(2), B<signal>(2), B<raise>(3)"
1797 msgstr "B<kill>(2), B<signal>(2), B<raise>(3)"
1798
1799 #. type: TH
1800 #: build/C/man2/kill.2:44
1801 #, no-wrap
1802 msgid "KILL"
1803 msgstr "KILL"
1804
1805 #. type: TH
1806 #: build/C/man2/kill.2:44
1807 #, no-wrap
1808 msgid "2013-09-17"
1809 msgstr "2013-09-17"
1810
1811 #. type: Plain text
1812 #: build/C/man2/kill.2:47
1813 msgid "kill - send signal to a process"
1814 msgstr "kill - プロセスにシグナルを送る"
1815
1816 #. type: Plain text
1817 #: build/C/man2/kill.2:50
1818 #, no-wrap
1819 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
1820 msgstr "B<#include E<lt>sys/types.hE<gt>>\n"
1821
1822 #. type: Plain text
1823 #: build/C/man2/kill.2:54
1824 #, no-wrap
1825 msgid "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1826 msgstr "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1827
1828 #. type: Plain text
1829 #: build/C/man2/kill.2:64
1830 msgid ""
1831 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1832 msgstr ""
1833 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1834
1835 #. type: Plain text
1836 #: build/C/man2/kill.2:70
1837 msgid ""
1838 "The B<kill>()  system call can be used to send any signal to any process "
1839 "group or process."
1840 msgstr ""
1841 "システムコールの B<kill>()  は、任意のプロセスグループもしくはプロセスにシグ"
1842 "ナルを 送るのに使われる。"
1843
1844 #. type: Plain text
1845 #: build/C/man2/kill.2:73
1846 msgid ""
1847 "If I<pid> is positive, then signal I<sig> is sent to the process with the ID "
1848 "specified by I<pid>."
1849 msgstr ""
1850 "I<pid> に正の値を指定した場合、シグナル I<sig> が I<pid> で指定された ID を持"
1851 "つプロセスに送られる。"
1852
1853 #. type: Plain text
1854 #: build/C/man2/kill.2:76
1855 msgid ""
1856 "If I<pid> equals 0, then I<sig> is sent to every process in the process "
1857 "group of the calling process."
1858 msgstr ""
1859 "I<pid> に 0 を指定した場合、 呼び出し元のプロセスのプロセスグループに属するす"
1860 "べてのプロセスに I<sig> で指定したシグナルが送られる。"
1861
1862 #. type: Plain text
1863 #: build/C/man2/kill.2:80
1864 msgid ""
1865 "If I<pid> equals -1, then I<sig> is sent to every process for which the "
1866 "calling process has permission to send signals, except for process 1 "
1867 "(I<init>), but see below."
1868 msgstr ""
1869 "I<pid> に -1 を指定した場合、 I<sig> で指定したシグナルが、 呼び出し元のプロ"
1870 "セスがシグナルを送る許可を持つ全てのプロセスに 送られる。但し、プロセス番号 "
1871 "1 (I<init>) へはシグナルは送られない。 以下の関連部分も参照のこと。"
1872
1873 #. type: Plain text
1874 #: build/C/man2/kill.2:83
1875 msgid ""
1876 "If I<pid> is less than -1, then I<sig> is sent to every process in the "
1877 "process group whose ID is I<-pid>."
1878 msgstr ""
1879 "I<pid> に -1 より小さな値を指定した場合、 ID が I<-pid> のプロセスグループに"
1880 "属するすべてのプロセスに I<sig> で指定したシグナルが送られる。"
1881
1882 #. type: Plain text
1883 #: build/C/man2/kill.2:88
1884 msgid ""
1885 "If I<sig> is 0, then no signal is sent, but error checking is still "
1886 "performed; this can be used to check for the existence of a process ID or "
1887 "process group ID."
1888 msgstr ""
1889 "I<sig> に 0 を指定した場合、シグナルは送られないが、 エラーのチェックは行われ"
1890 "る。これを使って、プロセス ID や プロセスグループ ID の存在確認を行うことがで"
1891 "きる。"
1892
1893 #. type: Plain text
1894 #: build/C/man2/kill.2:100
1895 msgid ""
1896 "For a process to have permission to send a signal it must either be "
1897 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
1898 "effective user ID of the sending process must equal the real or saved set-"
1899 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
1900 "the sending and receiving processes belong to the same session.  "
1901 "(Historically, the rules were different; see NOTES.)"
1902 msgstr ""
1903 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
1904 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
1905 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
1906 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
1907 "プロセスが 同じセッションに属していれば十分である。 (過去には、 ルールは違っ"
1908 "ていた; 「注意」の節を参照。)"
1909
1910 #. type: Plain text
1911 #: build/C/man2/kill.2:105
1912 msgid ""
1913 "On success (at least one signal was sent), zero is returned.  On error, -1 "
1914 "is returned, and I<errno> is set appropriately."
1915 msgstr ""
1916 "成功した場合 (少なくとも一つのシグナルが送信された場合)、 0 が返される。エ"
1917 "ラーの場合 -1 が返され、 I<errno> が適切に設定される。"
1918
1919 #. type: Plain text
1920 #: build/C/man2/kill.2:109
1921 msgid "An invalid signal was specified."
1922 msgstr "無効なシグナルを指定した。"
1923
1924 #. type: TP
1925 #: build/C/man2/kill.2:109 build/C/man2/killpg.2:99 build/C/man2/prctl.2:1090
1926 #: build/C/man2/prctl.2:1102 build/C/man2/prctl.2:1112
1927 #: build/C/man2/prctl.2:1120 build/C/man2/rt_sigqueueinfo.2:148
1928 #: build/C/man2/sigaltstack.2:153 build/C/man3/sigqueue.3:102
1929 #: build/C/man2/tkill.2:96
1930 #, no-wrap
1931 msgid "B<EPERM>"
1932 msgstr "B<EPERM>"
1933
1934 #. type: Plain text
1935 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103
1936 msgid ""
1937 "The process does not have permission to send the signal to any of the target "
1938 "processes."
1939 msgstr ""
1940 "プロセスが、受信するプロセスのいずれに対しても シグナルを送る許可を持っていな"
1941 "い。"
1942
1943 #. type: TP
1944 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103 build/C/man2/killpg.2:107
1945 #: build/C/man2/rt_sigqueueinfo.2:156 build/C/man3/sigqueue.3:108
1946 #: build/C/man2/tkill.2:101
1947 #, no-wrap
1948 msgid "B<ESRCH>"
1949 msgstr "B<ESRCH>"
1950
1951 #. type: Plain text
1952 #: build/C/man2/kill.2:121
1953 msgid ""
1954 "The pid or process group does not exist.  Note that an existing process "
1955 "might be a zombie, a process which already committed termination, but has "
1956 "not yet been B<wait>(2)ed for."
1957 msgstr ""
1958 "指定したプロセスまたはプロセスグループが存在しなかった。 ゾンビプロセスは存在"
1959 "するプロセスとしてみなされる。 ゾンビプロセスとはすでに処理は終了しているが、"
1960 "親プロセスによる B<wait>()  処理が行われていないプロセスのことである。"
1961
1962 #. type: Plain text
1963 #: build/C/man2/kill.2:123 build/C/man2/pause.2:59 build/C/man2/wait.2:425
1964 msgid "SVr4, 4.3BSD, POSIX.1-2001."
1965 msgstr "SVr4, 4.3BSD, POSIX.1-2001."
1966
1967 #. type: Plain text
1968 #: build/C/man2/kill.2:131
1969 msgid ""
1970 "The only signals that can be sent to process ID 1, the I<init> process, are "
1971 "those for which I<init> has explicitly installed signal handlers.  This is "
1972 "done to assure the system is not brought down accidentally."
1973 msgstr ""
1974 "プロセス番号 1 の I<init> プロセスに送ることができるシグナルは、 I<init> が明"
1975 "示的にシグナルハンドラーを設定したシグナルだけである。 こうなっているのは、"
1976 "誤ってシステムをダウンさせないようにするためである。"
1977
1978 #. type: Plain text
1979 #: build/C/man2/kill.2:137
1980 msgid ""
1981 "POSIX.1-2001 requires that I<kill(-1,sig)> send I<sig> to all processes that "
1982 "the calling process may send signals to, except possibly for some "
1983 "implementation-defined system processes.  Linux allows a process to signal "
1984 "itself, but on Linux the call I<kill(-1,sig)> does not signal the calling "
1985 "process."
1986 msgstr ""
1987 "POSIX.1-2001 では、 I<kill(-1,sig)> が 呼び出し元のプロセスがシグナルを送るこ"
1988 "とが出来るプロセス全てに I<sig> を送ることを要求している。 但し、システム実装"
1989 "時に定められたシステムプロセスは シグナルの送信対象から除外される。 Linux で"
1990 "は、プロセスが自分自身にシグナルを送れるようになっているが、 Linux の "
1991 "I<kill(-1,sig)> は呼び出し元のプロセスにはシグナルを送らない。"
1992
1993 #. type: Plain text
1994 #: build/C/man2/kill.2:147
1995 msgid ""
1996 "POSIX.1-2001 requires that if a process sends a signal to itself, and the "
1997 "sending thread does not have the signal blocked, and no other thread has it "
1998 "unblocked or is waiting for it in B<sigwait>(3), at least one unblocked "
1999 "signal must be delivered to the sending thread before the B<kill>()  returns."
2000 msgstr ""
2001 "POSIX.1-2001 では以下の動作になることを要求している。 自分自身にシグナルを送"
2002 "ると、シグナルを送ったスレッドがそのシグナルをブロック しておらず、他のどのス"
2003 "レッドもそのシグナルを受ける状態にもなく B<sigwait>(3)  でそのシグナルを待っ"
2004 "てもいない場合、 B<kill>()  が返る前に少なくとも一つのブロックされていない シ"
2005 "グナルがシグナルを送ったスレッドに配送されなければならない。"
2006
2007 #. type: SS
2008 #: build/C/man2/kill.2:147 build/C/man3/sigpause.3:82 build/C/man2/wait.2:480
2009 #, no-wrap
2010 msgid "Linux notes"
2011 msgstr "Linux での注意"
2012
2013 #.  In the 0.* kernels things chopped and changed quite
2014 #.  a bit - MTK, 24 Jul 02
2015 #. type: Plain text
2016 #: build/C/man2/kill.2:161
2017 msgid ""
2018 "Across different kernel versions, Linux has enforced different rules for the "
2019 "permissions required for an unprivileged process to send a signal to another "
2020 "process.  In kernels 1.0 to 1.2.2, a signal could be sent if the effective "
2021 "user ID of the sender matched effective user ID of the target, or the real "
2022 "user ID of the sender matched the real user ID of the target.  From kernel "
2023 "1.2.3 until 1.3.77, a signal could be sent if the effective user ID of the "
2024 "sender matched either the real or effective user ID of the target.  The "
2025 "current rules, which conform to POSIX.1-2001, were adopted in kernel 1.3.78."
2026 msgstr ""
2027 "Linux では、特権のないプロセスが他のプロセスにシグナルを送信するために必要な"
2028 "権限についてのルールが、カーネルバージョンにより違っている。 カーネル 1.0 か"
2029 "ら 1.2.2 では、送信側の実効ユーザー ID が送信対象の実効ユーザー ID と一致する"
2030 "か、 送信側の実ユーザー ID が送信対象の実ユーザー ID と一致すれば、 シグナル"
2031 "を送信できた。 カーネル 1.2.3 から 1.3.77では、送信側の実効ユーザー ID が送信"
2032 "対象の実ユーザー ID か実効ユーザー ID のいずれかと一致すればシグナルを送信で"
2033 "きた。 現在のルールは、POSIX.1-2001 に準拠しており、カーネル 1.3.78 以降で 適"
2034 "用されている。"
2035
2036 #. type: Plain text
2037 #: build/C/man2/kill.2:171
2038 msgid ""
2039 "In 2.6 kernels up to and including 2.6.7, there was a bug that meant that "
2040 "when sending signals to a process group, B<kill>()  failed with the error "
2041 "B<EPERM> if the caller did not have permission to send the signal to I<any> "
2042 "(rather than I<all>) of the members of the process group.  Notwithstanding "
2043 "this error return, the signal was still delivered to all of the processes "
2044 "for which the caller had permission to signal."
2045 msgstr ""
2046 "バージョン 2.6.7 以前の 2.6 系のカーネルには、 プロセスグループにシグナルを"
2047 "送ったときに、 呼び出し元のプロセスがプロセスグループの (全メンバーではなく) "
2048 "一部のメンバーに対してのみシグナルを送る許可を持っていない場合に、 "
2049 "B<kill>()  がエラー B<EPERM> で失敗するというバグがある。 このエラーが返るに"
2050 "もかかわらず、そのシグナルは呼び出し元が シグナルを送る許可を持つ全てのプロセ"
2051 "スへ送られる。"
2052
2053 #. type: Plain text
2054 #: build/C/man2/kill.2:181
2055 msgid ""
2056 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), "
2057 "B<sigqueue>(3), B<capabilities>(7), B<credentials>(7), B<signal>(7)"
2058 msgstr ""
2059 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), "
2060 "B<sigqueue>(3), B<credentials>(7), B<capabilities>(7), B<signal>(7)"
2061
2062 #. type: TH
2063 #: build/C/man2/killpg.2:42
2064 #, no-wrap
2065 msgid "KILLPG"
2066 msgstr "KILLPG"
2067
2068 #. type: TH
2069 #: build/C/man2/killpg.2:42 build/C/man3/sigset.3:26
2070 #, no-wrap
2071 msgid "2010-09-20"
2072 msgstr "2010-09-20"
2073
2074 #. type: Plain text
2075 #: build/C/man2/killpg.2:45
2076 msgid "killpg - send signal to a process group"
2077 msgstr "killpg - シグナルをプロセスグループに送る"
2078
2079 #. type: Plain text
2080 #: build/C/man2/killpg.2:49
2081 msgid "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2082 msgstr "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2083
2084 #. type: TP
2085 #: build/C/man2/killpg.2:55
2086 #, no-wrap
2087 msgid "B<killpg>():"
2088 msgstr "B<killpg>():"
2089
2090 #. type: Plain text
2091 #: build/C/man2/killpg.2:59 build/C/man2/sigaltstack.2:46
2092 #: build/C/man3/siginterrupt.3:51 build/C/man2/wait4.2:60
2093 msgid ""
2094 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2095 "_XOPEN_SOURCE_EXTENDED"
2096 msgstr ""
2097 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2098 "_XOPEN_SOURCE_EXTENDED"
2099
2100 #. type: Plain text
2101 #: build/C/man2/killpg.2:69
2102 msgid ""
2103 "B<killpg>()  sends the signal I<sig> to the process group I<pgrp>.  See "
2104 "B<signal>(7)  for a list of signals."
2105 msgstr ""
2106 "B<killpg>()  は I<sig> で指定したシグナルを I<pgrp> で指定したプロセスグルー"
2107 "プに送る。 シグナルの定義の一覧は B<signal>(7)  を参照のこと。"
2108
2109 #. type: Plain text
2110 #: build/C/man2/killpg.2:78
2111 msgid ""
2112 "If I<pgrp> is 0, B<killpg>()  sends the signal to the calling process's "
2113 "process group.  (POSIX says: If I<pgrp> is less than or equal to 1, the "
2114 "behavior is undefined.)"
2115 msgstr ""
2116 "引き数 I<pgrp> に 0 を指定した場合には B<killpg>()  は呼び出し元のプロセスが"
2117 "属しているプロセスグループに対してシグナルを送る。 (POSIX では以下のように記"
2118 "述されている: I<pgrp> が 1 以下である場合、動作は未定義である。)"
2119
2120 #. type: Plain text
2121 #: build/C/man2/killpg.2:89
2122 msgid ""
2123 "For a process to have permission to send a signal it must either be "
2124 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
2125 "effective user ID of the sending process must equal the real or saved set-"
2126 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
2127 "the sending and receiving processes belong to the same session."
2128 msgstr ""
2129 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
2130 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
2131 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
2132 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
2133 "プロセスが 同じセッションに属していれば十分である。"
2134
2135 #. type: Plain text
2136 #: build/C/man2/killpg.2:99
2137 msgid "I<sig> is not a valid signal number."
2138 msgstr "I<sig> で指定された値は無効なシグナル番号である。"
2139
2140 #. type: Plain text
2141 #: build/C/man2/killpg.2:107
2142 msgid "No process can be found in the process group specified by I<pgrp>."
2143 msgstr "I<pgrp> で指定されたプロセスグループに属するプロセスが存在しなかった。"
2144
2145 #. type: Plain text
2146 #: build/C/man2/killpg.2:111
2147 msgid ""
2148 "The process group was given as 0 but the sending process does not have a "
2149 "process group."
2150 msgstr ""
2151 "プロセスグループとして 0 が指定されたが、送信プロセスは プロセスグループを"
2152 "持っていない。"
2153
2154 #. type: Plain text
2155 #: build/C/man2/killpg.2:115
2156 msgid ""
2157 "SVr4, 4.4BSD (the B<killpg>()  function call first appeared in 4BSD), "
2158 "POSIX.1-2001."
2159 msgstr "SVr4, 4.4BSD (B<killpg>()  は 4BSD で初めて追加された), POSIX.1-2001。"
2160
2161 #. type: Plain text
2162 #: build/C/man2/killpg.2:129
2163 msgid ""
2164 "There are various differences between the permission checking in BSD-type "
2165 "systems and System\\ V-type systems.  See the POSIX rationale for "
2166 "B<kill>().  A difference not mentioned by POSIX concerns the return value "
2167 "B<EPERM>: BSD documents that no signal is sent and B<EPERM> returned when "
2168 "the permission check failed for at least one target process, while POSIX "
2169 "documents B<EPERM> only when the permission check failed for all target "
2170 "processes."
2171 msgstr ""
2172 "BSD 系システムと System\\ V 系システムでは、 許可のチェックに様々な違いがあ"
2173 "る。 B<kill>(2)  についての POSIX の原理 (rationale) を参照すること。 POSIX "
2174 "で記述されていない違いとしては、返り値 B<EPERM> がある。 BSD では「送信先プロ"
2175 "セスの許可のチェックが 1 つでも失敗した場合は、 シグナルが送信されず、 "
2176 "B<EPERM> が返される」と記述されている。 POSIX では「送信先プロセスの許可の"
2177 "チェックが全て失敗した場合にのみ、 B<EPERM> が返される」と記述されている。"
2178
2179 #. type: Plain text
2180 #: build/C/man2/killpg.2:134
2181 msgid ""
2182 "On Linux, B<killpg>()  is implemented as a library function that makes the "
2183 "call I<kill(-pgrp,\\ sig)>."
2184 msgstr ""
2185 "Linux では、 B<killpg>()  はライブラリ関数として実装されており、 I<kill(-"
2186 "pgrp,\\ sig)> の呼び出しが行われる。"
2187
2188 #. type: Plain text
2189 #: build/C/man2/killpg.2:140
2190 msgid ""
2191 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<capabilities>(7), "
2192 "B<credentials>(7)"
2193 msgstr ""
2194 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<credentials>(7), "
2195 "B<capabilities>(7)"
2196
2197 #. type: TH
2198 #: build/C/man2/pause.2:30
2199 #, no-wrap
2200 msgid "PAUSE"
2201 msgstr "PAUSE"
2202
2203 #. type: TH
2204 #: build/C/man2/pause.2:30
2205 #, no-wrap
2206 msgid "2008-10-06"
2207 msgstr "2008-10-06"
2208
2209 #. type: Plain text
2210 #: build/C/man2/pause.2:33
2211 msgid "pause - wait for signal"
2212 msgstr "pause - シグナルを待つ"
2213
2214 #. type: Plain text
2215 #: build/C/man2/pause.2:35
2216 msgid "B<#include E<lt>unistd.hE<gt>>"
2217 msgstr "B<#include E<lt>unistd.hE<gt>>"
2218
2219 #. type: Plain text
2220 #: build/C/man2/pause.2:37
2221 msgid "B<int pause(void);>"
2222 msgstr "B<int pause(void);>"
2223
2224 #. type: Plain text
2225 #: build/C/man2/pause.2:42
2226 msgid ""
2227 "B<pause>()  causes the calling process (or thread) to sleep until a signal "
2228 "is delivered that either terminates the process or causes the invocation of "
2229 "a signal-catching function."
2230 msgstr ""
2231 "B<pause>()  は、呼び出したプロセス (またはスレッド) を、 そのプロセスを終了さ"
2232 "せたり、シグナル捕捉関数が起動されるような シグナルが配送されるまで、スリープ"
2233 "させる。"
2234
2235 #.  .BR ERESTARTNOHAND .
2236 #. type: Plain text
2237 #: build/C/man2/pause.2:53
2238 msgid ""
2239 "B<pause>()  returns only when a signal was caught and the signal-catching "
2240 "function returned.  In this case, B<pause>()  returns -1, and I<errno> is "
2241 "set to B<EINTR>."
2242 msgstr ""
2243 "B<pause>()  が返るのは、シグナルを受け取りシグナル捕獲関数から返った場合だけ"
2244 "である。 この場合は B<pause>()  は -1 を返し、 I<errno> に B<EINTR> が設定さ"
2245 "れる。"
2246
2247 #. type: TP
2248 #: build/C/man2/pause.2:54 build/C/man2/sigsuspend.2:81
2249 #: build/C/man2/sigwaitinfo.2:123 build/C/man2/wait.2:411
2250 #, no-wrap
2251 msgid "B<EINTR>"
2252 msgstr "B<EINTR>"
2253
2254 #. type: Plain text
2255 #: build/C/man2/pause.2:57
2256 msgid "a signal was caught and the signal-catching function returned."
2257 msgstr "シグナルを受け取り、シグナル捕獲関数から帰ってきた。"
2258
2259 #. type: Plain text
2260 #: build/C/man2/pause.2:64
2261 msgid "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2262 msgstr "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2263
2264 #. type: TH
2265 #: build/C/man2/prctl.2:54
2266 #, no-wrap
2267 msgid "PRCTL"
2268 msgstr "PRCTL"
2269
2270 #. type: TH
2271 #: build/C/man2/prctl.2:54 build/C/man2/restart_syscall.2:33
2272 #: build/C/man2/sgetmask.2:26 build/C/man7/signal.7:46
2273 #: build/C/man2/sigreturn.2:30 build/C/man3/sigvec.3:26
2274 #: build/C/man2/tkill.2:29
2275 #, no-wrap
2276 msgid "2014-12-31"
2277 msgstr "2014-12-31"
2278
2279 #. type: Plain text
2280 #: build/C/man2/prctl.2:57
2281 msgid "prctl - operations on a process"
2282 msgstr "prctl - プロセスの操作を行なう"
2283
2284 #. type: Plain text
2285 #: build/C/man2/prctl.2:60
2286 #, no-wrap
2287 msgid "B<#include E<lt>sys/prctl.hE<gt>>\n"
2288 msgstr "B<#include E<lt>sys/prctl.hE<gt>>\n"
2289
2290 #. type: Plain text
2291 #: build/C/man2/prctl.2:63
2292 #, no-wrap
2293 msgid ""
2294 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2295 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2296 msgstr ""
2297 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2298 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2299
2300 #. type: Plain text
2301 #: build/C/man2/prctl.2:70
2302 msgid ""
2303 "B<prctl>()  is called with a first argument describing what to do (with "
2304 "values defined in I<E<lt>linux/prctl.hE<gt>>), and further arguments with a "
2305 "significance depending on the first one.  The first argument can be:"
2306 msgstr ""
2307 "B<prctl>()  の動作は最初の引き数によって決定される (この値は I<E<lt>linux/"
2308 "prctl.hE<gt>> に定義されている)。 残りの引き数は最初の引き数によって変化す"
2309 "る。 一番目の引き数として以下のものを指定できる:"
2310
2311 #. type: TP
2312 #: build/C/man2/prctl.2:70
2313 #, no-wrap
2314 msgid "B<PR_CAPBSET_READ> (since Linux 2.6.25)"
2315 msgstr "B<PR_CAPBSET_READ> (Linux 2.6.25 以降)"
2316
2317 #. type: Plain text
2318 #: build/C/man2/prctl.2:82
2319 msgid ""
2320 "Return (as the function result) 1 if the capability specified in I<arg2> is "
2321 "in the calling thread's capability bounding set, or 0 if it is not.  (The "
2322 "capability constants are defined in I<E<lt>linux/capability.hE<gt>>.)  The "
2323 "capability bounding set dictates whether the process can receive the "
2324 "capability through a file's permitted capability set on a subsequent call to "
2325 "B<execve>(2)."
2326 msgstr ""
2327 "で指定されたケーパビリティが呼び出したスレッドのケーパビリティ バインディング"
2328 "セット (capability bounding set) に含まれている場合、 (関数の結果として) 1 を"
2329 "返し、そうでない場合 0 を返す (ケーパビリティ定数は I<E<lt>linux/capability."
2330 "hE<gt>> で定義されている)。 ケーパビリティバウンディングセットは、 "
2331 "B<execve>(2)  を呼び出した際に、ファイルの許可 (permitted) ケーパビリティの中"
2332 "で そのプロセスが獲得できるケーパビリティを指示するものである。"
2333
2334 #. type: Plain text
2335 #: build/C/man2/prctl.2:87
2336 msgid ""
2337 "If the capability specified in I<arg2> is not valid, then the call fails "
2338 "with the error B<EINVAL>."
2339 msgstr ""
2340 "I<arg2> に指定されたケーパビリティが有効でない場合、 呼び出しはエラー "
2341 "B<EINVAL> で失敗する。"
2342
2343 #. type: TP
2344 #: build/C/man2/prctl.2:87
2345 #, no-wrap
2346 msgid "B<PR_CAPBSET_DROP> (since Linux 2.6.25)"
2347 msgstr "B<PR_CAPBSET_DROP> (Linux 2.6.25 以降)"
2348
2349 #. type: Plain text
2350 #: build/C/man2/prctl.2:96
2351 msgid ""
2352 "If the calling thread has the B<CAP_SETPCAP> capability, then drop the "
2353 "capability specified by I<arg2> from the calling thread's capability "
2354 "bounding set.  Any children of the calling thread will inherit the newly "
2355 "reduced bounding set."
2356 msgstr ""
2357 "呼び出したスレッドがケーパビリティ B<CAP_SETPCAP> を持っている場合、 呼び出し"
2358 "たスレッドのケーパビリティバウンディングセットから I<arg2> で指定されたケーパ"
2359 "ビリティを外す。 呼び出したスレッドの子プロセスは変更後のバウンディングセット"
2360 "を 継承する。"
2361
2362 #. type: Plain text
2363 #: build/C/man2/prctl.2:108
2364 msgid ""
2365 "The call fails with the error: B<EPERM> if the calling thread does not have "
2366 "the B<CAP_SETPCAP>; B<EINVAL> if I<arg2> does not represent a valid "
2367 "capability; or B<EINVAL> if file capabilities are not enabled in the kernel, "
2368 "in which case bounding sets are not supported."
2369 msgstr ""
2370 "呼び出したスレッドが B<CAP_SETPCAP> を持っていない場合、呼び出しはエラー "
2371 "B<EPERM> で失敗する。 I<arg2> に指定されたケーパビリティが有効でない場合、 "
2372 "B<EINVAL> で失敗する。 ファイルケーパビリティがカーネルで有効になっていない場"
2373 "合 (この場合にはバウンディングセットがサポートされない)、 B<EINVAL> で失敗す"
2374 "る。"
2375
2376 #. type: TP
2377 #: build/C/man2/prctl.2:108
2378 #, no-wrap
2379 msgid "B<PR_SET_CHILD_SUBREAPER> (since Linux 3.4)"
2380 msgstr "B<PR_SET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2381
2382 #.  commit ebec18a6d3aa1e7d84aab16225e87fd25170ec2b
2383 #. type: Plain text
2384 #: build/C/man2/prctl.2:133
2385 msgid ""
2386 "If I<arg2> is nonzero, set the \"child subreaper\" attribute of the calling "
2387 "process; if I<arg2> is zero, unset the attribute.  When a process is marked "
2388 "as a child subreaper, all of the children that it creates, and their "
2389 "descendants, will be marked as having a subreaper.  In effect, a subreaper "
2390 "fulfills the role of B<init>(1)  for its descendant processes.  Upon "
2391 "termination of a process that is orphaned (i.e., its immediate parent has "
2392 "already terminated)  and marked as having a subreaper, the nearest still "
2393 "living ancestor subreaper will receive a B<SIGCHLD> signal and be able to "
2394 "B<wait>(2)  on the process to discover its termination status."
2395 msgstr ""
2396
2397 #. type: TP
2398 #: build/C/man2/prctl.2:133
2399 #, no-wrap
2400 msgid "B<PR_GET_CHILD_SUBREAPER> (since Linux 3.4)"
2401 msgstr "B<PR_GET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2402
2403 #. type: Plain text
2404 #: build/C/man2/prctl.2:138
2405 msgid ""
2406 "Return the \"child subreaper\" setting of the caller, in the location "
2407 "pointed to by I<(int\\ *) arg2>."
2408 msgstr ""
2409
2410 #. type: TP
2411 #: build/C/man2/prctl.2:138
2412 #, no-wrap
2413 msgid "B<PR_SET_DUMPABLE> (since Linux 2.3.20)"
2414 msgstr "B<PR_SET_DUMPABLE> (Linux 2.3.20 以降)"
2415
2416 #.  See http://marc.theaimsgroup.com/?l=linux-kernel&m=115270289030630&w=2
2417 #.  Subject:    Fix prctl privilege escalation (CVE-2006-2451)
2418 #.  From:       Marcel Holtmann <marcel () holtmann ! org>
2419 #.  Date:       2006-07-12 11:12:00
2420 #. type: Plain text
2421 #: build/C/man2/prctl.2:164
2422 msgid ""
2423 "Set the state of the flag determining whether core dumps are produced for "
2424 "the calling process upon delivery of a signal whose default behavior is to "
2425 "produce a core dump.  (Normally, this flag is set for a process by default, "
2426 "but it is cleared when a set-user-ID or set-group-ID program is executed and "
2427 "also by various system calls that manipulate process UIDs and GIDs).  In "
2428 "kernels up to and including 2.6.12, I<arg2> must be either 0 (process is not "
2429 "dumpable) or 1 (process is dumpable).  Between kernels 2.6.13 and 2.6.17, "
2430 "the value 2 was also permitted, which caused any binary which normally would "
2431 "not be dumped to be dumped readable by root only; for security reasons, this "
2432 "feature has been removed.  (See also the description of I</proc/sys/fs/"
2433 "suid_dumpable> in B<proc>(5).)  Processes that are not dumpable can not be "
2434 "attached via B<ptrace>(2)  B<PTRACE_ATTACH>."
2435 msgstr ""
2436 "(Linux 2.3.20 以降) デフォルトの振る舞いではコアダンプを引き起こすようなシグ"
2437 "ナルを受信したときに、呼び出し元のプロセスでコアダンプを生成するかどうかを決"
2438 "定するフラグを設定する (通常このフラグは、デフォルトではセットされているが、 "
2439 "set-user-ID あるいは set-group-ID プログラムが実行されたり、 さまざまなシステ"
2440 "ムコールによってプロセスの UID や GID が操作されたときに クリアされる)。 "
2441 "2.6.12 以前のカーネルでは、 I<arg2> は 0 (プロセスはダンプ不可) あるいは 1 "
2442 "(プロセスはダンプ可能) の どちらかでなければならない。 2.6.13 から 2.6.17 ま"
2443 "でのカーネルでは、値 2 も認められていた。 この値を指定すると、通常はダンプさ"
2444 "れないバイナリが root だけが 読み込み可能な形でダンプされた。 セキュリティ上"
2445 "の理由から、この機能は削除された (B<proc>(5) の I</proc/sys/fs/"
2446 "suid_dumpable> の説明も参照)。 ダンプ不可のプロセスを B<ptrace>(2) "
2447 "B<PTRACE_ATTACH> 経由で接続することはできない。"
2448
2449 #. type: TP
2450 #: build/C/man2/prctl.2:164
2451 #, no-wrap
2452 msgid "B<PR_GET_DUMPABLE> (since Linux 2.3.20)"
2453 msgstr "B<PR_GET_DUMPABLE> (Linux 2.3.20 以降)"
2454
2455 #.  Since Linux 2.6.13, the dumpable flag can have the value 2,
2456 #.  but in 2.6.13 PR_GET_DUMPABLE simply returns 1 if the dumpable
2457 #.  flags has a nonzero value.  This was fixed in 2.6.14.
2458 #. type: Plain text
2459 #: build/C/man2/prctl.2:171
2460 msgid ""
2461 "Return (as the function result) the current state of the calling process's "
2462 "dumpable flag."
2463 msgstr ""
2464 "(Linux 2.3.20 以降)  呼び出し元プロセスにおけるダンプ可能フラグの 現在の状態"
2465 "を (関数の結果として) 返す。"
2466
2467 #. type: TP
2468 #: build/C/man2/prctl.2:171
2469 #, no-wrap
2470 msgid "B<PR_SET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2471 msgstr "B<PR_SET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2472
2473 #.  Respectively 0, 1, 2
2474 #. type: Plain text
2475 #: build/C/man2/prctl.2:181
2476 msgid ""
2477 "Set the endian-ness of the calling process to the value given in I<arg2>, "
2478 "which should be one of the following: B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2479 "or B<PR_ENDIAN_PPC_LITTLE> (PowerPC pseudo little endian)."
2480 msgstr ""
2481 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<arg2> で指定された値"
2482 "に設定する。 指定できる値は B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2483 "B<PR_ENDIAN_PPC_LITTLE> (PowerPC 擬似リトルエンディアン)  のいずれか一つであ"
2484 "る。"
2485
2486 #. type: TP
2487 #: build/C/man2/prctl.2:181
2488 #, no-wrap
2489 msgid "B<PR_GET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2490 msgstr "B<PR_GET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2491
2492 #. type: Plain text
2493 #: build/C/man2/prctl.2:186
2494 msgid ""
2495 "Return the endian-ness of the calling process, in the location pointed to by "
2496 "I<(int\\ *) arg2>."
2497 msgstr ""
2498 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<(int\\ *) arg2> が指"
2499 "す場所に格納して返す。"
2500
2501 #. type: TP
2502 #: build/C/man2/prctl.2:186
2503 #, no-wrap
2504 msgid "B<PR_SET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2505 msgstr "B<PR_SET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2506
2507 #. type: Plain text
2508 #: build/C/man2/prctl.2:193
2509 msgid ""
2510 "Set floating-point emulation control bits to I<arg2>.  Pass "
2511 "B<PR_FPEMU_NOPRINT> to silently emulate fp operations accesses, or "
2512 "B<PR_FPEMU_SIGFPE> to not emulate fp operations and send B<SIGFPE> instead."
2513 msgstr ""
2514 "浮動小数点エミュレーション (floating-point emulation) 制御ビットを I<arg2> で"
2515 "指定された値に設定する。 指定できる値は B<PR_FPEMU_NOPRINT> (浮動小数点命令ア"
2516 "クセスを黙って エミュレートする) か B<PR_FPEMU_SIGFPE> (浮動小数点命令をエ"
2517 "ミュレートせず、 代わりに B<SIGFPE> を送る) である。"
2518
2519 #. type: TP
2520 #: build/C/man2/prctl.2:193
2521 #, no-wrap
2522 msgid "B<PR_GET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2523 msgstr "B<PR_GET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2524
2525 #. type: Plain text
2526 #: build/C/man2/prctl.2:198
2527 msgid ""
2528 "Return floating-point emulation control bits, in the location pointed to by "
2529 "I<(int\\ *) arg2>."
2530 msgstr ""
2531 "浮動小数点エミュレーション制御ビットの値を I<(int\\ *) arg2> が指す場所に格納"
2532 "して返す。"
2533
2534 #. type: TP
2535 #: build/C/man2/prctl.2:198
2536 #, no-wrap
2537 msgid "B<PR_SET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2538 msgstr "B<PR_SET_FPEXC> (Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2539
2540 #. type: Plain text
2541 #: build/C/man2/prctl.2:211
2542 msgid ""
2543 "Set floating-point exception mode to I<arg2>.  Pass B<PR_FP_EXC_SW_ENABLE> "
2544 "to use FPEXC for FP exception enables, B<PR_FP_EXC_DIV> for floating-point "
2545 "divide by zero, B<PR_FP_EXC_OVF> for floating-point overflow, "
2546 "B<PR_FP_EXC_UND> for floating-point underflow, B<PR_FP_EXC_RES> for floating-"
2547 "point inexact result, B<PR_FP_EXC_INV> for floating-point invalid operation, "
2548 "B<PR_FP_EXC_DISABLED> for FP exceptions disabled, B<PR_FP_EXC_NONRECOV> for "
2549 "async nonrecoverable exception mode, B<PR_FP_EXC_ASYNC> for async "
2550 "recoverable exception mode, B<PR_FP_EXC_PRECISE> for precise exception mode."
2551 msgstr ""
2552 "浮動小数点例外モード (floating-point exception mode) を I<arg2> で指定された"
2553 "値に設定する。 指定できるのは以下の値である: B<PR_FP_EXC_SW_ENABLE> (FPEXC で"
2554 "浮動小数点例外を有効にする)、 B<PR_FP_EXC_DIV> (0 除算)、 B<PR_FP_EXC_OVF> "
2555 "(オーバーフロー)、 B<PR_FP_EXC_UND> (アンダーフロー)、 B<PR_FP_EXC_RES> (不正"
2556 "確な結果 (inexact result))、 B<PR_FP_EXC_INV> (不正な命令 (invalid "
2557 "operation))、 B<PR_FP_EXC_DISABLED> (浮動小数点例外を無効にする)、 "
2558 "B<PR_FP_EXC_NONRECOV> (async nonrecoverable exception mode)、 "
2559 "B<PR_FP_EXC_ASYNC> (async recoverable exception mode)、 B<PR_FP_EXC_PRECISE> "
2560 "(precise exception mode)。"
2561
2562 #. type: TP
2563 #: build/C/man2/prctl.2:211
2564 #, no-wrap
2565 msgid "B<PR_GET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2566 msgstr "B<PR_GET_FPEXC>(Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2567
2568 #. type: Plain text
2569 #: build/C/man2/prctl.2:216
2570 msgid ""
2571 "Return floating-point exception mode, in the location pointed to by I<(int\\ "
2572 "*) arg2>."
2573 msgstr ""
2574 "浮動小数点例外モードの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
2575
2576 #. type: TP
2577 #: build/C/man2/prctl.2:216
2578 #, no-wrap
2579 msgid "B<PR_SET_KEEPCAPS> (since Linux 2.2.18)"
2580 msgstr "B<PR_SET_KEEPCAPS> (Linux 2.2.18 以降)"
2581
2582 #. type: Plain text
2583 #: build/C/man2/prctl.2:234
2584 msgid ""
2585 "Set the state of the thread's \"keep capabilities\" flag, which determines "
2586 "whether the threads's permitted capability set is cleared when a change is "
2587 "made to the threads's user IDs such that the threads's real UID, effective "
2588 "UID, and saved set-user-ID all become nonzero when at least one of them "
2589 "previously had the value 0.  By default, the permitted capability set is "
2590 "cleared when such a change is made; setting the \"keep capabilities\" flag "
2591 "prevents it from being cleared.  I<arg2> must be either 0 (permitted "
2592 "capabilities are cleared)  or 1 (permitted capabilities are kept).  (A "
2593 "thread's I<effective> capability set is always cleared when such a "
2594 "credential change is made, regardless of the setting of the \"keep "
2595 "capabilities\" flag.)  The \"keep capabilities\" value will be reset to 0 on "
2596 "subsequent calls to B<execve>(2)."
2597 msgstr ""
2598 "スレッドの「ケーパビリティ保持」フラグを設定する。 このフラグは、スレッドの"
2599 "実 UID、実効 UID、保存 set-user-ID のうち少なくとも一つが 0 であった状態か"
2600 "ら、これら全てが 0 以外に変更されたとき、 スレッドの許可ケーパビリティ集合が"
2601 "クリアされるかどうかを決定する。 デフォルトでは、このような変更が行われた場"
2602 "合、許可ケーパビリティセットはクリアされる。「ケーパビリティ保持」フラグを設"
2603 "定すると、許可ケーパビリティセットはクリアされなくなる。 I<arg2> は 0 (許可"
2604 "ケーパビリティをクリアする) か 1 (許可ケーパビリティを保持する) の どちらかで"
2605 "なければならない。 (このような ID の変更が行われた場合、「ケーパビリティ保"
2606 "持」フラグの設定に関わらず、スレッドのI<実効>ケーパビリティセットは常にクリア"
2607 "される。) B<execve>(2) が呼び出されると、「ケーパビリティ保持」フラグは 0 に"
2608 "リセットされる。"
2609
2610 #. type: TP
2611 #: build/C/man2/prctl.2:234
2612 #, no-wrap
2613 msgid "B<PR_GET_KEEPCAPS> (since Linux 2.2.18)"
2614 msgstr "B<PR_GET_KEEPCAPS> (Linux 2.2.18 以降)"
2615
2616 #. type: Plain text
2617 #: build/C/man2/prctl.2:238
2618 msgid ""
2619 "Return (as the function result) the current state of the calling threads's "
2620 "\"keep capabilities\" flag."
2621 msgstr ""
2622 "呼び出し元スレッドにおける「ケーパビリティ保持」フラグの 現在の状態を (関数の"
2623 "結果として) 返す。"
2624
2625 #. type: TP
2626 #: build/C/man2/prctl.2:238
2627 #, no-wrap
2628 msgid "B<PR_SET_NAME> (since Linux 2.6.9)"
2629 msgstr "B<PR_SET_NAME> (Linux 2.6.9 以降)"
2630
2631 #.  TASK_COMM_LEN in include/linux/sched.h
2632 #. type: Plain text
2633 #: build/C/man2/prctl.2:257
2634 msgid ""
2635 "Set the name of the calling thread, using the value in the location pointed "
2636 "to by I<(char\\ *) arg2>.  The name can be up to 16 bytes long, including "
2637 "the terminating null byte.  (If the length of the string, including the "
2638 "terminating null byte, exceeds 16 bytes, the string is silently truncated.)  "
2639 "This is the same attribute that can be set via B<pthread_setname_np>(3)  and "
2640 "retrieved using B<pthread_getname_np>(3).  The attribute is likewise "
2641 "accessible via I</proc/self/task/[tid]/comm>, where I<tid> is the name of "
2642 "the calling thread."
2643 msgstr ""
2644 "呼び出し元スレッドのプロセス名を I<(char\\ *) arg2> が指す場所に格納された値"
2645 "を使って設定する。 名前は終端の NULL バイトを含めて最大で 16 バイトである (終"
2646 "端の NULL バイトを含めた文字列の長さが 16 バイトを超える場合、 文字列は黙って"
2647 "切り詰められる)。 これは、 B<pthread_setname_np>(3) で設定でき、 "
2648 "B<pthread_getname_np>(3) で取得できるのと同じ属性である。 同様に、 I<tid> が"
2649 "呼び出し元スレッドの ID の場合、 この属性は I</proc/self/task/[tid]/comm> 経"
2650 "由でもアクセス可能である。"
2651
2652 #. type: TP
2653 #: build/C/man2/prctl.2:257
2654 #, no-wrap
2655 msgid "B<PR_GET_NAME> (since Linux 2.6.11)"
2656 msgstr "B<PR_GET_NAME> (Linux 2.6.11 以降)"
2657
2658 #. type: Plain text
2659 #: build/C/man2/prctl.2:264
2660 msgid ""
2661 "Return the name of the calling thread, in the buffer pointed to by I<(char\\ "
2662 "*) arg2>.  The buffer should allow space for up to 16 bytes; the returned "
2663 "string will be null-terminated."
2664 msgstr ""
2665 "呼び出し元スレッドの名前を I<(char\\ *) arg2> が指す場所に格納して返す。 バッ"
2666 "ファーは最大で 16 バイトを格納できるようにすべきである。 返される文字列はヌル"
2667 "終端される。"
2668
2669 #. type: TP
2670 #: build/C/man2/prctl.2:264
2671 #, no-wrap
2672 msgid "B<PR_SET_NO_NEW_PRIVS> (since Linux 3.5)"
2673 msgstr "B<PR_SET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2674
2675 #. type: Plain text
2676 #: build/C/man2/prctl.2:287
2677 msgid ""
2678 "Set the calling process's I<no_new_privs> bit to the value in I<arg2>.  With "
2679 "I<no_new_privs> set to 1, B<execve>(2)  promises not to grant privileges to "
2680 "do anything that could not have been done without the B<execve>(2)  call "
2681 "(for example, rendering the set-user-ID and set-group-ID permission bits, "
2682 "and file capabilities non-functional).  Once set, this bit cannot be unset.  "
2683 "The setting of this bit is inherited by children created by B<fork>(2)  and "
2684 "B<clone>(2), and preserved across B<execve>(2)."
2685 msgstr ""
2686
2687 #. type: Plain text
2688 #: build/C/man2/prctl.2:290
2689 msgid ""
2690 "For more information, see the kernel source file I<Documentation/prctl/"
2691 "no_new_privs.txt>."
2692 msgstr ""
2693 "詳しい情報は、カーネルソースファイル I<Documentation/prctl/no_new_privs.txt> "
2694 "を参照。"
2695
2696 #. type: TP
2697 #: build/C/man2/prctl.2:290
2698 #, no-wrap
2699 msgid "B<PR_GET_NO_NEW_PRIVS> (since Linux 3.5)"
2700 msgstr "B<PR_GET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2701
2702 #. type: Plain text
2703 #: build/C/man2/prctl.2:301
2704 msgid ""
2705 "Return (as the function result) the value of the I<no_new_privs> bit for the "
2706 "current process.  A value of 0 indicates the regular B<execve>(2)  "
2707 "behavior.  A value of 1 indicates B<execve>(2)  will operate in the "
2708 "privilege-restricting mode described above."
2709 msgstr ""
2710
2711 #. type: TP
2712 #: build/C/man2/prctl.2:301
2713 #, no-wrap
2714 msgid "B<PR_SET_PDEATHSIG> (since Linux 2.1.57)"
2715 msgstr "B<PR_SET_PDEATHSIG> (Linux 2.1.57 以降)"
2716
2717 #. type: Plain text
2718 #: build/C/man2/prctl.2:314
2719 msgid ""
2720 "Set the parent process death signal of the calling process to I<arg2> "
2721 "(either a signal value in the range 1..maxsig, or 0 to clear).  This is the "
2722 "signal that the calling process will get when its parent dies.  This value "
2723 "is cleared for the child of a B<fork>(2)  and (since Linux 2.4.36 / 2.6.23)  "
2724 "when executing a set-user-ID or set-group-ID binary.  This value is "
2725 "preserved across B<execve>(2)."
2726 msgstr ""
2727 "親プロセス死亡シグナル (parent process death signal) を I<arg2> に設定する "
2728 "(設定できるシグナル値の範囲は 1..maxsig であり、0 は通知の解除である)。 呼び"
2729 "出し元プロセスの親プロセスが死んだ際に、ここで設定した値が シグナルとして通知"
2730 "される。この値は B<fork>(2) の子プロセスでは解除される。 (Linux 2.4.36 以降お"
2731 "よび 2.6.23 以降では) set-user-ID もしくは set-group-ID されたバイナリを実行"
2732 "した場合にも、このフラグは解除される。この値は B<execve>(2) の前後で保持され"
2733 "る。"
2734
2735 #. type: TP
2736 #: build/C/man2/prctl.2:314
2737 #, no-wrap
2738 msgid "B<PR_GET_PDEATHSIG> (since Linux 2.3.15)"
2739 msgstr "B<PR_GET_PDEATHSIG> (Linux 2.3.15 以降)"
2740
2741 #. type: Plain text
2742 #: build/C/man2/prctl.2:319
2743 msgid ""
2744 "Return the current value of the parent process death signal, in the location "
2745 "pointed to by I<(int\\ *) arg2>."
2746 msgstr ""
2747 "親プロセス死亡シグナルの現在の値を I<(int\\ *) arg2> が指す場所に格納して返"
2748 "す。"
2749
2750 #. type: TP
2751 #: build/C/man2/prctl.2:319
2752 #, no-wrap
2753 msgid "B<PR_SET_PTRACER> (since Linux 3.4)"
2754 msgstr "B<PR_SET_PTRACER> (Linux 3.4 以降)"
2755
2756 #.  commit 2d514487faf188938a4ee4fb3464eeecfbdcf8eb
2757 #.  commit bf06189e4d14641c0148bea16e9dd24943862215
2758 #. type: Plain text
2759 #: build/C/man2/prctl.2:344
2760 msgid ""
2761 "This is meaningful only when the Yama LSM is enabled and in mode 1 "
2762 "(\"restricted ptrace\", visible via I</proc/sys/kernel/yama/ptrace_scope>).  "
2763 "When a \"ptracer process ID\" is passed in I<arg2>, the caller is declaring "
2764 "that the ptracer process can B<ptrace>(2)  the calling process as if it were "
2765 "a direct process ancestor.  Each B<PR_SET_PTRACER> operation replaces the "
2766 "previous \"ptracer process ID\".  Employing B<PR_SET_PTRACER> with I<arg2> "
2767 "set to 0 clears the caller's \"ptracer process ID\".  If I<arg2> is "
2768 "B<PR_SET_PTRACER_ANY>, the ptrace restrictions introduced by Yama are "
2769 "effectively disabled for the calling process."
2770 msgstr ""
2771
2772 #. type: Plain text
2773 #: build/C/man2/prctl.2:347
2774 msgid ""
2775 "For further information, see the kernel source file I<Documentation/security/"
2776 "Yama.txt>."
2777 msgstr ""
2778 "詳しい情報は、カーネルソースファイル I<Documentation/security/Yama.txt> を参"
2779 "照。"
2780
2781 #. type: TP
2782 #: build/C/man2/prctl.2:347
2783 #, no-wrap
2784 msgid "B<PR_SET_SECCOMP> (since Linux 2.6.23)"
2785 msgstr "B<PR_SET_SECCOMP> (Linux 2.6.23 以降)"
2786
2787 #.  See http://thread.gmane.org/gmane.linux.kernel/542632
2788 #.  [PATCH 0 of 2] seccomp updates
2789 #.  andrea@cpushare.com
2790 #. type: Plain text
2791 #: build/C/man2/prctl.2:358
2792 msgid ""
2793 "Set the secure computing (seccomp) mode for the calling thread, to limit the "
2794 "available system calls.  The more recent B<seccomp>(2)  system call provides "
2795 "a superset of the functionality of B<PR_SET_SECCOMP>."
2796 msgstr ""
2797 "呼び出したスレッドのセキュアコンピューティング (seccomp) モードを設定する。 "
2798 "最近の B<seccomp>(2) システムコールは B<PR_SET_SECCOMP> の上位互換の機能を提"
2799 "供する。"
2800
2801 #. type: Plain text
2802 #: build/C/man2/prctl.2:363
2803 msgid ""
2804 "The seccomp mode is selected via I<arg2>.  (The seccomp constants are "
2805 "defined in I<E<lt>linux/seccomp.hE<gt>>.)"
2806 msgstr ""
2807 "seccomp モードは I<arg2> で指定できる (seccomp 定数は I<E<lt>linux/seccomp."
2808 "hE<gt>> で定義されている)。"
2809
2810 #. type: Plain text
2811 #: build/C/man2/prctl.2:384
2812 msgid ""
2813 "With I<arg2> set to B<SECCOMP_MODE_STRICT>, the only system calls that the "
2814 "thread is permitted to make are B<read>(2), B<write>(2), B<_exit>(2), and "
2815 "B<sigreturn>(2).  Other system calls result in the delivery of a B<SIGKILL> "
2816 "signal.  Strict secure computing mode is useful for number-crunching "
2817 "applications that may need to execute untrusted byte code, perhaps obtained "
2818 "by reading from a pipe or socket.  This operation is available only if the "
2819 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2820 msgstr ""
2821 "I<arg2> を B<SECCOMP_MODE_STRICT> に設定すると、 そのスレッドが呼び出しを許可"
2822 "されるシステムコールは B<read>(2), B<write>(2), B<_exit>(2), B<sigreturn>(2) "
2823 "だけになる。 それ以外のシステムコールを呼び出すと、シグナル B<SIGKILL> が配送"
2824 "される。 パイプやソケットから読み込んだ、 信頼できないバイトコードを実行する"
2825 "必要がある大量の演算を行うアプリケーションにおいて、 strict secure computing "
2826 "モードは役立つ。 この操作は利用できるのは、 カーネルが B<CONFIG_SECCOMP> を有"
2827 "効にして作成されている場合だけである。"
2828
2829 #. type: Plain text
2830 #: build/C/man2/prctl.2:399
2831 msgid ""
2832 "With I<arg2> set to B<SECCOMP_MODE_FILTER> (since Linux 3.5), the system "
2833 "calls allowed are defined by a pointer to a Berkeley Packet Filter passed in "
2834 "I<arg3>.  This argument is a pointer to I<struct sock_fprog>; it can be "
2835 "designed to filter arbitrary system calls and system call arguments.  This "
2836 "mode is available only if the kernel is configured with "
2837 "B<CONFIG_SECCOMP_FILTER> enabled."
2838 msgstr ""
2839 "I<arg2> を B<SECCOMP_MODE_FILTER> (Linux 3.5 以降) に設定すると、 許可される"
2840 "システムコールは I<arg3> で渡された Berkeley Packet Filter へのポインターで定"
2841 "義される。 この引き数は I<struct sock_fprog> へのポインターである。 これは任"
2842 "意のシステムコールやシステムコール引き数をフィルタリングするために設計され"
2843 "た。 このモードはカーネルで B<CONFIG_SECCOMP_FILTER> が有効になっている場合に"
2844 "のみ利用可能である。"
2845
2846 #. type: Plain text
2847 #: build/C/man2/prctl.2:414
2848 msgid ""
2849 "If B<SECCOMP_MODE_FILTER> filters permit B<fork>(2), then the seccomp mode "
2850 "is inherited by children created by B<fork>(2); if B<execve>(2)  is "
2851 "permitted, then the seccomp mode is preserved across B<execve>(2).  If the "
2852 "filters permit B<prctl>()  calls, then additional filters can be added; they "
2853 "are run in order until the first non-allow result is seen."
2854 msgstr ""
2855 "B<SECCOMP_MODE_FILTER> フィルターで B<fork>(2) が許可されている場合、 "
2856 "seccomp モードは B<fork>(2) で作成された子プロセスに継承される。 "
2857 "B<execve>(2) が許可されている場合、 seccomp モードは B<execve>(2) の前後で維"
2858 "持される。 フィルターで B<prctl>() コールが許可されている場合、 追加でフィル"
2859 "ターが定義され、 これらのフィルターは許可されないものが見つかるまで指定された"
2860 "順序で実行される。"
2861
2862 #. type: Plain text
2863 #: build/C/man2/prctl.2:417
2864 msgid ""
2865 "For further information, see the kernel source file I<Documentation/prctl/"
2866 "seccomp_filter.txt>."
2867 msgstr ""
2868 "詳しい情報は、カーネルソースファイル I<Documentation/prctl/seccomp_filter."
2869 "txt> を参照。"
2870
2871 #. type: TP
2872 #: build/C/man2/prctl.2:417
2873 #, no-wrap
2874 msgid "B<PR_GET_SECCOMP> (since Linux 2.6.23)"
2875 msgstr "B<PR_GET_SECCOMP> (Linux 2.6.23 以降)"
2876
2877 #. type: Plain text
2878 #: build/C/man2/prctl.2:435
2879 msgid ""
2880 "Return (as the function result)  the secure computing mode of the calling "
2881 "thread.  If the caller is not in secure computing mode, this operation "
2882 "returns 0; if the caller is in strict secure computing mode, then the "
2883 "B<prctl>()  call will cause a B<SIGKILL> signal to be sent to the process.  "
2884 "If the caller is in filter mode, and this system call is allowed by the "
2885 "seccomp filters, it returns 2; otherwise, the process is killed with a "
2886 "B<SIGKILL> signal.  This operation is available only if the kernel is "
2887 "configured with B<CONFIG_SECCOMP> enabled."
2888 msgstr ""
2889 "呼び出したスレッドの secure computing モードを (関数の結果として) 返す。 呼び"
2890 "出したスレッドが secure computing モードでなかった場合、 この操作は 0 を返"
2891 "し、 呼び出したスレッドが strict secure computing モードの場合、 B<prctl>()  "
2892 "を呼び出すとシグナル B<SIGKILL> がそのプロセスに送信される。 呼び出したスレッ"
2893 "ドがフィルタモードで、 このシステムコールが seccomp フィルタにより許可されて"
2894 "いる場合、 2 を返し、 そうでない場合プロセスは B<SIGKILL> シグナルで kill さ"
2895 "れづ。 この操作が利用できるのは、カーネルが B<CONFIG_SECCOMP> を有効にして作"
2896 "成されている場合だけである。"
2897
2898 #. type: Plain text
2899 #: build/C/man2/prctl.2:443
2900 msgid ""
2901 "Since Linux 3.8, the I<Seccomp> field of the I</proc/[pid]/status> file "
2902 "provides a method of obtaining the same information, without the risk that "
2903 "the process is killed; see B<proc>(5)."
2904 msgstr ""
2905 "Linux 3.8 以降では、 I</proc/[pid]/status> の I<seccomp> フィールドからも同じ"
2906 "情報を取得できる。 この方法の場合はプロセスが kill される危険はない。 "
2907 "B<proc>(5) を参照。"
2908
2909 #. type: TP
2910 #: build/C/man2/prctl.2:443
2911 #, no-wrap
2912 msgid "B<PR_SET_SECUREBITS> (since Linux 2.6.26)"
2913 msgstr "B<PR_SET_SECUREBITS> (Linux 2.6.26 以降)"
2914
2915 #. type: Plain text
2916 #: build/C/man2/prctl.2:449
2917 msgid ""
2918 "Set the \"securebits\" flags of the calling thread to the value supplied in "
2919 "I<arg2>.  See B<capabilities>(7)."
2920 msgstr ""
2921 "呼び出したスレッドの \"securebits\" フラグを I<arg2> で渡された値に設定す"
2922 "る。 B<capabilities>(7)  参照。"
2923
2924 #. type: TP
2925 #: build/C/man2/prctl.2:449
2926 #, no-wrap
2927 msgid "B<PR_GET_SECUREBITS> (since Linux 2.6.26)"
2928 msgstr "B<PR_GET_SECUREBITS> (Linux 2.6.26 以降)"
2929
2930 #. type: Plain text
2931 #: build/C/man2/prctl.2:455
2932 msgid ""
2933 "Return (as the function result)  the \"securebits\" flags of the calling "
2934 "thread.  See B<capabilities>(7)."
2935 msgstr ""
2936 "呼び出したスレッドの \"securebits\" フラグを (関数の結果として) 返す。 "
2937 "B<capabilities>(7)  参照。"
2938
2939 #. type: TP
2940 #: build/C/man2/prctl.2:455
2941 #, no-wrap
2942 msgid "B<PR_SET_THP_DISABLE> (since Linux 3.15)"
2943 msgstr "B<PR_SET_THP_DISABLE> (Linux 3.15 以降)"
2944
2945 #.  commit a0715cc22601e8830ace98366c0c2bd8da52af52
2946 #. type: Plain text
2947 #: build/C/man2/prctl.2:471
2948 msgid ""
2949 "Set the state of the \"THP disable\" flag for the calling thread.  If "
2950 "I<arg2> has a nonzero value, the flag is set, otherwise it is cleared.  "
2951 "Setting this flag provides a method for disabling transparent huge pages for "
2952 "jobs where the code cannot be modified, and using a malloc hook with "
2953 "B<madvise>(2)  is not an option (i.e., statically allocated data).  The "
2954 "setting of the \"THP disable\" flag is inherited by a child created via "
2955 "B<fork>(2)  and is preserved across B<execve>(2)."
2956 msgstr ""
2957 "呼び出したスレッドの \"THP disable\" (THP 無効) フラグの状態を設定する。 "
2958 "I<arg2> が 0 以外の場合、フラグは有効になり、そうでない場合はクリーンされ"
2959 "る。 このフラグを設定する方法により、 コードを変更できなかったり "
2960 "B<madvise>(2) の malloc hook をが有効ではないジョブ (この方法は静的に割り当て"
2961 "られたデータには有効ではない)に対して、 transparent huge pages を無効にする手"
2962 "段が提供される。 \"THP disable\" フラグの設定は B<fork>(2) で作成された子プロ"
2963 "セスに継承され、 B<execve> の前後で維持される。"
2964
2965 #. type: TP
2966 #: build/C/man2/prctl.2:471
2967 #, no-wrap
2968 msgid "B<PR_GET_THP_DISABLE> (since Linux 3.15)"
2969 msgstr "B<PR_GET_THP_DISABLE> (Linux 3.15 以降)"
2970
2971 #. type: Plain text
2972 #: build/C/man2/prctl.2:476
2973 msgid ""
2974 "Return (via the function result) the current setting of the \"THP disable\" "
2975 "flag for the calling thread: either 1, if the flag is set, or 0, if it is "
2976 "not."
2977 msgstr ""
2978 "呼び出し元スレッドの \"THP disable\" フラグの現在の設定を (関数の結果として) "
2979 "返す。フラグがセットされている場合は 1 が、セットされていない場合は 0 が返"
2980 "る。"
2981
2982 #. type: TP
2983 #: build/C/man2/prctl.2:476
2984 #, no-wrap
2985 msgid "B<PR_GET_TID_ADDRESS> (since Linux 3.5)"
2986 msgstr "B<PR_GET_TID_ADDRESS> (Linux 3.5 以降)"
2987
2988 #.  commit 300f786b2683f8bb1ec0afb6e1851183a479c86d
2989 #. type: Plain text
2990 #: build/C/man2/prctl.2:491
2991 msgid ""
2992 "Retrieve the I<clear_child_tid> address set by B<set_tid_address>(2)  and "
2993 "the B<clone>(2)  B<CLONE_CHILD_CLEARTID> flag, in the location pointed to by "
2994 "I<(int\\ **)\\ arg2>.  This feature is available only if the kernel is built "
2995 "with the B<CONFIG_CHECKPOINT_RESTORE> option enabled."
2996 msgstr ""
2997 "B<set_tid_address>(2) や B<clone>(2) B<CLONE_CHILD_CLEARTID> フラグで設定され"
2998 "た I<clear_child_tid> を取得し、 I<(int\\ **)\\ arg2> が指す場所に格納して返"
2999 "す。 この機能はカーネルが B<CONFIG_CHECKPOINT_RESTORE> オプションを有効にして"
3000 "作成されている場合にのみ利用できる。"
3001
3002 #. type: TP
3003 #: build/C/man2/prctl.2:491
3004 #, no-wrap
3005 msgid "B<PR_SET_TIMERSLACK> (since Linux 2.6.28)"
3006 msgstr "B<PR_SET_TIMERSLACK> (Linux 2.6.28 以降)"
3007
3008 #.  See https://lwn.net/Articles/369549/
3009 #.  commit 6976675d94042fbd446231d1bd8b7de71a980ada
3010 #.  It seems that it's not possible to set the timer slack to zero;
3011 #.  The minimum value is 1? Seems a little strange.
3012 #. type: Plain text
3013 #: build/C/man2/prctl.2:510
3014 msgid ""
3015 "Set the current timer slack for the calling thread to the nanosecond value "
3016 "supplied in I<arg2>.  If I<arg2> is less than or equal to zero, reset the "
3017 "current timer slack to the thread's default timer slack value.  The timer "
3018 "slack is used by the kernel to group timer expirations for the calling "
3019 "thread that are close to one another; as a consequence, timer expirations "
3020 "for the thread may be up to the specified number of nanoseconds late (but "
3021 "will never expire early).  Grouping timer expirations can help reduce system "
3022 "power consumption by minimizing CPU wake-ups."
3023 msgstr ""
3024
3025 #.  List obtained by grepping for futex usage in glibc source
3026 #. type: Plain text
3027 #: build/C/man2/prctl.2:530
3028 msgid ""
3029 "The timer expirations affected by timer slack are those set by B<select>(2), "
3030 "B<pselect>(2), B<poll>(2), B<ppoll>(2), B<epoll_wait>(2), B<epoll_pwait>(2), "
3031 "B<clock_nanosleep>(2), B<nanosleep>(2), and B<futex>(2)  (and thus the "
3032 "library functions implemented via futexes, including "
3033 "B<pthread_cond_timedwait>(3), B<pthread_mutex_timedlock>(3), "
3034 "B<pthread_rwlock_timedrdlock>(3), B<pthread_rwlock_timedwrlock>(3), and "
3035 "B<sem_timedwait>(3))."
3036 msgstr ""
3037
3038 #. type: Plain text
3039 #: build/C/man2/prctl.2:534
3040 msgid ""
3041 "Timer slack is not applied to threads that are scheduled under a real-time "
3042 "scheduling policy (see B<sched_setscheduler>(2))."
3043 msgstr ""
3044
3045 #. type: Plain text
3046 #: build/C/man2/prctl.2:551
3047 msgid ""
3048 "Each thread has two associated timer slack values: a \"default\" value, and "
3049 "a \"current\" value.  The current value is the one that governs grouping of "
3050 "timer expirations.  When a new thread is created, the two timer slack values "
3051 "are made the same as the current value of the creating thread.  Thereafter, "
3052 "a thread can adjust its current timer slack value via B<PR_SET_TIMERSLACK> "
3053 "(the default value can't be changed).  The timer slack values of I<init> "
3054 "(PID 1), the ancestor of all processes, are 50,000 nanoseconds (50 "
3055 "microseconds).  The timer slack values are preserved across B<execve>(2)."
3056 msgstr ""
3057
3058 #. type: TP
3059 #: build/C/man2/prctl.2:551
3060 #, no-wrap
3061 msgid "B<PR_GET_TIMERSLACK> (since Linux 2.6.28)"
3062 msgstr "B<PR_GET_TIMERSLACK> (Linux 2.6.28 以降)"
3063
3064 #. type: Plain text
3065 #: build/C/man2/prctl.2:555
3066 msgid ""
3067 "Return (as the function result)  the current timer slack value of the "
3068 "calling thread."
3069 msgstr ""
3070 "呼び出し元スレッドの現在のタイマーのスラック値を (関数の結果として) 返す。"
3071
3072 #. type: TP
3073 #: build/C/man2/prctl.2:555
3074 #, no-wrap
3075 msgid "B<PR_SET_TIMING> (since Linux 2.6.0-test4)"
3076 msgstr "B<PR_SET_TIMING> (Linux 2.6.0-test4 以降)"
3077
3078 #.  0
3079 #.  1
3080 #.  PR_TIMING_TIMESTAMP doesn't do anything in 2.6.26-rc8,
3081 #.  and looking at the patch history, it appears
3082 #.  that it never did anything.
3083 #. type: Plain text
3084 #: build/C/man2/prctl.2:572
3085 msgid ""
3086 "Set whether to use (normal, traditional) statistical process timing or "
3087 "accurate timestamp-based process timing, by passing B<PR_TIMING_STATISTICAL> "
3088 "or B<PR_TIMING_TIMESTAMP> to I<arg2>.  B<PR_TIMING_TIMESTAMP> is not "
3089 "currently implemented (attempting to set this mode will yield the error "
3090 "B<EINVAL>)."
3091 msgstr ""
3092 "(通常の、伝統的に使われてきた) 統計的なプロセスタイミングを使用するか、 正確"
3093 "なタイムスタンプに基づくプロセスタイミングを使用するかを設定する。 I<arg2> に"
3094 "指定できる値は B<PR_TIMING_STATISTICAL> か B<PR_TIMING_TIMESTAMP> である。 "
3095 "B<PR_TIMING_TIMESTAMP> は現在のところ実装されていない (このモードに設定しよう"
3096 "とするとエラー B<EINVAL> が起こることだろう)。"
3097
3098 #. type: TP
3099 #: build/C/man2/prctl.2:572
3100 #, no-wrap
3101 msgid "B<PR_GET_TIMING> (since Linux 2.6.0-test4)"
3102 msgstr "B<PR_GET_TIMING> (Linux 2.6.0-test4 以降)"
3103
3104 #. type: Plain text
3105 #: build/C/man2/prctl.2:576
3106 msgid ""
3107 "Return (as the function result) which process timing method is currently in "
3108 "use."
3109 msgstr "現在使用中のプロセスタイミングを決める方法を (関数の結果として) 返す。"
3110
3111 #. type: TP
3112 #: build/C/man2/prctl.2:576
3113 #, no-wrap
3114 msgid "B<PR_TASK_PERF_EVENTS_DISABLE> (since Linux 2.6.31)"
3115 msgstr "B<PR_TASK_PERF_EVENTS_DISABLE> (Linux 2.6.31 以降)"
3116
3117 #. type: Plain text
3118 #: build/C/man2/prctl.2:585
3119 msgid ""
3120 "Disable all performance counters attached to the calling process, regardless "
3121 "of whether the counters were created by this process or another process.  "
3122 "Performance counters created by the calling process for other processes are "
3123 "unaffected.  For more information on performance counters, see the Linux "
3124 "kernel source file I<tools/perf/design.txt>."
3125 msgstr ""
3126 "呼び出したプロセスに接続されたすべての性能カウンターを無効にする。 カウンター"
3127 "がこのプロセスにより作成されたか他のプロセスにより作成されたかは関係ない。 呼"
3128 "び出したプロセスが他のプロセス用に作成した性能カウンターは影響を受けない。 性"
3129 "能カウンターの詳細については Linux カーネルソースの I<tools/perf/design.txt> "
3130 "を参照。"
3131
3132 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3133 #. type: Plain text
3134 #: build/C/man2/prctl.2:591
3135 msgid ""
3136 "Originally called B<PR_TASK_PERF_COUNTERS_DISABLE>; renamed (with same "
3137 "numerical value)  in Linux 2.6.32."
3138 msgstr ""
3139 "以前は B<PR_TASK_PERF_COUNTERS_DISABLE> と呼ばれていた。 Linux 2.6.32 で名前"
3140 "が変更された (数値は同じままである)。"
3141
3142 #. type: TP
3143 #: build/C/man2/prctl.2:591
3144 #, no-wrap
3145 msgid "B<PR_TASK_PERF_EVENTS_ENABLE> (since Linux 2.6.31)"
3146 msgstr "B<PR_TASK_PERF_EVENTS_ENABLE> (Linux 2.6.31 以降)"
3147
3148 #. type: Plain text
3149 #: build/C/man2/prctl.2:596
3150 msgid ""
3151 "The converse of B<PR_TASK_PERF_EVENTS_DISABLE>; enable performance counters "
3152 "attached to the calling process."
3153 msgstr ""
3154 "B<PR_TASK_PERF_EVENTS_DISABLE> の逆。 呼び出したプロセスに接続された性能カウ"
3155 "ンターを有効にする。"
3156
3157 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3158 #.  commit cdd6c482c9ff9c55475ee7392ec8f672eddb7be6
3159 #. type: Plain text
3160 #: build/C/man2/prctl.2:603
3161 msgid ""
3162 "Originally called B<PR_TASK_PERF_COUNTERS_ENABLE>; renamed in Linux 2.6.32."
3163 msgstr ""
3164 "以前は B<PR_TASK_PERF_COUNTERS_ENABLE> と呼ばれていた。 Linux 2.6.32 で名前が"
3165 "変更された。"
3166
3167 #. type: TP
3168 #: build/C/man2/prctl.2:603
3169 #, no-wrap
3170 msgid "B<PR_SET_TSC> (since Linux 2.6.26, x86 only)"
3171 msgstr "B<PR_SET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3172
3173 #. type: Plain text
3174 #: build/C/man2/prctl.2:616
3175 msgid ""
3176 "Set the state of the flag determining whether the timestamp counter can be "
3177 "read by the process.  Pass B<PR_TSC_ENABLE> to I<arg2> to allow it to be "
3178 "read, or B<PR_TSC_SIGSEGV> to generate a B<SIGSEGV> when the process tries "
3179 "to read the timestamp counter."
3180 msgstr ""
3181 "そのプロセスがタイムスタンプカウンターを読み出せるかを決定する フラグの状態を"
3182 "設定する。 読み出しを許可する場合は I<arg2> に B<PR_TSC_ENABLE> を、そのプロ"
3183 "セスがタイムスタンプカウンターを読み出そうとした際に B<SIGSEGV> を発生させる"
3184 "場合には B<PR_TSC_SIGSEGV> を渡す。"
3185
3186 #. type: TP
3187 #: build/C/man2/prctl.2:616
3188 #, no-wrap
3189 msgid "B<PR_GET_TSC> (since Linux 2.6.26, x86 only)"
3190 msgstr "B<PR_GET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3191
3192 #. type: Plain text
3193 #: build/C/man2/prctl.2:622
3194 msgid ""
3195 "Return the state of the flag determining whether the timestamp counter can "
3196 "be read, in the location pointed to by I<(int\\ *) arg2>."
3197 msgstr ""
3198 "そのプロセスがタイムスタンプカウンターを読み出せるかを決定する フラグの状態"
3199 "を I<(int\\ *) arg2> が指す場所に格納して返す。"
3200
3201 #. type: TP
3202 #: build/C/man2/prctl.2:622
3203 #, no-wrap
3204 msgid "B<PR_SET_UNALIGN>"
3205 msgstr "B<PR_SET_UNALIGN>"
3206
3207 #. type: Plain text
3208 #: build/C/man2/prctl.2:632
3209 msgid ""
3210 "(Only on: ia64, since Linux 2.3.48; parisc, since Linux 2.6.15; PowerPC, "
3211 "since Linux 2.6.18; Alpha, since Linux 2.6.22)  Set unaligned access control "
3212 "bits to I<arg2>.  Pass B<PR_UNALIGN_NOPRINT> to silently fix up unaligned "
3213 "user accesses, or B<PR_UNALIGN_SIGBUS> to generate B<SIGBUS> on unaligned "
3214 "user access."
3215 msgstr ""
3216 "(ia64 では Linux 2.3.48 以降; parisc では Linux 2.6.15 以降; PowerPC では "
3217 "Linux 2.6.18 以降; Alpha では Linux 2.6.22 以降; これらのアーキテクチャーの"
3218 "み)  unaligned アクセス制御ビットを I<arg2> で指定された値に設定する。 指定で"
3219 "きる値は B<PR_UNALIGN_NOPRINT> (unaligned なユーザーアクセスを黙って 修正す"
3220 "る) か B<PR_UNALIGN_SIGBUS> (unaligned なユーザーアクセスがあった場合 "
3221 "B<SIGBUS> を生成する) である。"
3222
3223 #. type: TP
3224 #: build/C/man2/prctl.2:632
3225 #, no-wrap
3226 msgid "B<PR_GET_UNALIGN>"
3227 msgstr "B<PR_GET_UNALIGN>"
3228
3229 #. type: Plain text
3230 #: build/C/man2/prctl.2:639
3231 msgid ""
3232 "(see B<PR_SET_UNALIGN> for information on versions and architectures)  "
3233 "Return unaligned access control bits, in the location pointed to by I<(int\\ "
3234 "*) arg2>."
3235 msgstr ""
3236 "(バージョンとアーキテクチャーの情報は B<PR_SET_UNALIGN> 参照)  unaligned アク"
3237 "セス制御ビットの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
3238
3239 #. type: TP
3240 #: build/C/man2/prctl.2:639
3241 #, no-wrap
3242 msgid "B<PR_MCE_KILL> (since Linux 2.6.32)"
3243 msgstr "B<PR_MCE_KILL> (Linux 2.6.32 以降)"
3244
3245 #. type: Plain text
3246 #: build/C/man2/prctl.2:679
3247 msgid ""
3248 "Set the machine check memory corruption kill policy for the current thread.  "
3249 "If I<arg2> is B<PR_MCE_KILL_CLEAR>, clear the thread memory corruption kill "
3250 "policy and use the system-wide default.  (The system-wide default is defined "
3251 "by I</proc/sys/vm/memory_failure_early_kill>; see B<proc>(5).)  If I<arg2> "
3252 "is B<PR_MCE_KILL_SET>, use a thread-specific memory corruption kill policy.  "
3253 "In this case, I<arg3> defines whether the policy is I<early kill> "
3254 "(B<PR_MCE_KILL_EARLY>), I<late kill> (B<PR_MCE_KILL_LATE>), or the system-"
3255 "wide default (B<PR_MCE_KILL_DEFAULT>).  Early kill means that the thread "
3256 "receives a B<SIGBUS> signal as soon as hardware memory corruption is "
3257 "detected inside its address space.  In late kill mode, the process is killed "
3258 "only when it accesses a corrupted page.  See B<sigaction>(2)  for more "
3259 "information on the B<SIGBUS> signal.  The policy is inherited by children.  "
3260 "The remaining unused B<prctl>()  arguments must be zero for future "
3261 "compatibility."
3262 msgstr ""
3263
3264 #. type: TP
3265 #: build/C/man2/prctl.2:679
3266 #, no-wrap
3267 msgid "B<PR_MCE_KILL_GET> (since Linux 2.6.32)"
3268 msgstr "B<PR_MCE_KILL_GET> (Linux 2.6.32 以降)"
3269
3270 #. type: Plain text
3271 #: build/C/man2/prctl.2:685
3272 msgid ""
3273 "Return the current per-process machine check kill policy.  All unused "
3274 "B<prctl>()  arguments must be zero."
3275 msgstr ""
3276
3277 #. type: TP
3278 #: build/C/man2/prctl.2:685
3279 #, no-wrap
3280 msgid "B<PR_SET_MM> (since Linux 3.3)"
3281 msgstr "B<PR_SET_MM> (Linux 3.3 以降)"
3282
3283 #.  commit 028ee4be34a09a6d48bdf30ab991ae933a7bc036
3284 #. type: Plain text
3285 #: build/C/man2/prctl.2:706
3286 msgid ""
3287 "Modify certain kernel memory map descriptor fields of the calling process.  "
3288 "Usually these fields are set by the kernel and dynamic loader (see B<ld."
3289 "so>(8)  for more information) and a regular application should not use this "
3290 "feature.  However, there are cases, such as self-modifying programs, where a "
3291 "program might find it useful to change its own memory map.  This feature is "
3292 "available only if the kernel is built with the B<CONFIG_CHECKPOINT_RESTORE> "
3293 "option enabled.  The calling process must have the B<CAP_SYS_RESOURCE> "
3294 "capability.  The value in I<arg2> is one of the options below, while I<arg3> "
3295 "provides a new value for the option."
3296 msgstr ""
3297 "呼び出したプロセスのカーネルメモリーマップディスクリプターのフィールドを変更"
3298 "する。 これらのフィールドは通常カーネルと動的リンカーにより設定される (詳しい"
3299 "情報は B<ld.so> を参照)。 通常のアプリケーションはこの機能を利用すべきではな"
3300 "い。 しかしながら、自分を書き換えるプログラムなど、 プログラムが自分自身のメ"
3301 "モリーマップを変更するのが有用な場面もある。 この機能はカーネルが "
3302 "B<CONFIG_CHECKPOINT_RESTORE> オプションを有効にして作成されている場合にのみ利"
3303 "用できる。 呼び出したプロセスは B<CAP_SYS_RESOURCE> ケーパビリティを持ってい"
3304 "なければならない。 I<arg2> の値には以下のいずれかを指定し、 I<arg3> でそのオ"
3305 "プションの新しい値を指定する。"
3306
3307 #. type: TP
3308 #: build/C/man2/prctl.2:707
3309 #, no-wrap
3310 msgid "B<PR_SET_MM_START_CODE>"
3311 msgstr "B<PR_SET_MM_START_CODE>"
3312
3313 #. type: Plain text
3314 #: build/C/man2/prctl.2:716
3315 msgid ""
3316 "Set the address above which the program text can run.  The corresponding "
3317 "memory area must be readable and executable, but not writable or sharable "
3318 "(see B<mprotect>(2)  and B<mmap>(2)  for more information)."
3319 msgstr ""
3320 "プログラムテキストを実行できるアドレスの上限を設定する。 対応するメモリー領域"
3321 "は読み出し可能で実行可能でなければならないが、 書き込み可能だったり共有可能"
3322 "だったりしてはならない (詳しい情報は B<mprotect>(2) と B<mmap>(2) 参照)。"
3323
3324 #. type: TP
3325 #: build/C/man2/prctl.2:716
3326 #, no-wrap
3327 msgid "B<PR_SET_MM_END_CODE>"
3328 msgstr "B<PR_SET_MM_END_CODE>"
3329
3330 #. type: Plain text
3331 #: build/C/man2/prctl.2:721
3332 msgid ""
3333 "Set the address below which the program text can run.  The corresponding "
3334 "memory area must be readable and executable, but not writable or sharable."
3335 msgstr ""
3336 "プログラムテキストを実行できるアドレスの下限を設定する。 対応するメモリー領域"
3337 "は読み出し可能で実行可能でなければならないが、 書き込み可能だったり共有可能"
3338 "だったりしてはならない。"
3339
3340 #. type: TP
3341 #: build/C/man2/prctl.2:721
3342 #, no-wrap
3343 msgid "B<PR_SET_MM_START_DATA>"
3344 msgstr "B<PR_SET_MM_START_DATA>"
3345
3346 #. type: Plain text
3347 #: build/C/man2/prctl.2:727
3348 msgid ""
3349 "Set the address above which initialized and uninitialized (bss) data are "
3350 "placed.  The corresponding memory area must be readable and writable, but "
3351 "not executable or sharable."
3352 msgstr ""
3353 "初期化済データや未初期化 (bss) データを配置する領域のアドレス上限を指定す"
3354 "る。 対応するメモリー領域は読み書き可能でなければならないが、 実行可能だった"
3355 "り共有可能だったりしてはならない。"
3356
3357 #. type: TP
3358 #: build/C/man2/prctl.2:727
3359 #, no-wrap
3360 msgid "B<PR_SET_MM_END_DATA>"
3361 msgstr "B<PR_SET_MM_END_DATA>"
3362
3363 #. type: Plain text
3364 #: build/C/man2/prctl.2:733
3365 msgid ""
3366 "Set the address below which initialized and uninitialized (bss) data are "
3367 "placed.  The corresponding memory area must be readable and writable, but "
3368 "not executable or sharable."
3369 msgstr ""
3370 "初期化済データや未初期化 (bss) データを配置する領域のアドレス下限を指定す"
3371 "る。 対応するメモリー領域は読み書き可能でなければならないが、 実行可能だった"
3372 "り共有可能だったりしてはならない。"
3373
3374 #. type: TP
3375 #: build/C/man2/prctl.2:733
3376 #, no-wrap
3377 msgid "B<PR_SET_MM_START_STACK>"
3378 msgstr "B<PR_SET_MM_START_STACK>"
3379
3380 #. type: Plain text
3381 #: build/C/man2/prctl.2:737
3382 msgid ""
3383 "Set the start address of the stack.  The corresponding memory area must be "
3384 "readable and writable."
3385 msgstr ""
3386 "スタックの開始アドレスを設定する。 対応するメモリー領域は読み書き可能でなけれ"
3387 "ばならない。"
3388
3389 #. type: TP
3390 #: build/C/man2/prctl.2:737
3391 #, no-wrap
3392 msgid "B<PR_SET_MM_START_BRK>"
3393 msgstr "B<PR_SET_MM_START_BRK>"
3394
3395 #. type: Plain text
3396 #: build/C/man2/prctl.2:749
3397 msgid ""
3398 "Set the address above which the program heap can be expanded with B<brk>(2)  "
3399 "call.  The address must be greater than the ending address of the current "
3400 "program data segment.  In addition, the combined size of the resulting heap "
3401 "and the size of the data segment can't exceed the B<RLIMIT_DATA> resource "
3402 "limit (see B<setrlimit>(2))."
3403 msgstr ""
3404 "B<brk>(2) コールで拡張できるプログラムのヒープ領域のアドレス上限を設定する。 "
3405 "このアドレスは、プログラムの現在のデータセグメントの最終アドレスより大きくな"
3406 "ければならない。 また、 変更後のヒープとデータセグメントのサイズを合わせたサ"
3407 "イズが B<RLIMIT_DATA> リソースリミットを超えることはできない "
3408 "(B<setrlimit>(2) 参照)。"
3409
3410 #. type: TP
3411 #: build/C/man2/prctl.2:749
3412 #, no-wrap
3413 msgid "B<PR_SET_MM_BRK>"
3414 msgstr "B<PR_SET_MM_BRK>"
3415
3416 #. type: Plain text
3417 #: build/C/man2/prctl.2:757
3418 msgid ""
3419 "Set the current B<brk>(2)  value.  The requirements for the address are the "
3420 "same as for the B<PR_SET_MM_START_BRK> option."
3421 msgstr ""
3422 "現在の B<brk>(2) 値を設定する。 このアドレスの要件は B<PR_SET_MM_START_BRK> "
3423 "オプションと同じである。"
3424
3425 #.  commit fe8c7f5cbf91124987106faa3bdf0c8b955c4cf7
3426 #. type: Plain text
3427 #: build/C/man2/prctl.2:760
3428 msgid "The following options are available since Linux 3.5."
3429 msgstr "以下のオプションは Linux 3.5 以降で利用できる。"
3430
3431 #. type: TP
3432 #: build/C/man2/prctl.2:760
3433 #, no-wrap
3434 msgid "B<PR_SET_MM_ARG_START>"
3435 msgstr "B<PR_SET_MM_ARG_START>"
3436
3437 #. type: Plain text
3438 #: build/C/man2/prctl.2:763
3439 msgid "Set the address above which the program command line is placed."
3440 msgstr "プログラムのコマンドラインを配置するアドレスの上限を設定する。"
3441
3442 #. type: TP
3443 #: build/C/man2/prctl.2:763
3444 #, no-wrap
3445 msgid "B<PR_SET_MM_ARG_END>"
3446 msgstr "B<PR_SET_MM_ARG_END>"
3447
3448 #. type: Plain text
3449 #: build/C/man2/prctl.2:766
3450 msgid "Set the address below which the program command line is placed."
3451 msgstr "プログラムのコマンドラインを配置するアドレスの下限を設定する。"
3452
3453 #. type: TP
3454 #: build/C/man2/prctl.2:766
3455 #, no-wrap
3456 msgid "B<PR_SET_MM_ENV_START>"
3457 msgstr "B<PR_SET_MM_ENV_START>"
3458
3459 #. type: Plain text
3460 #: build/C/man2/prctl.2:769
3461 msgid "Set the address above which the program environment is placed."
3462 msgstr ""
3463 "プログラムの環境情報 (environment) を配置するアドレスの上限を設定する。"
3464
3465 #. type: TP
3466 #: build/C/man2/prctl.2:769
3467 #, no-wrap
3468 msgid "B<PR_SET_MM_ENV_END>"
3469 msgstr "B<PR_SET_MM_ENV_END>"
3470
3471 #. type: Plain text
3472 #: build/C/man2/prctl.2:772
3473 msgid "Set the address below which the program environment is placed."
3474 msgstr ""
3475 "プログラムの環境情報 (environment) を配置するアドレスの下限を設定する。"
3476
3477 #. type: Plain text
3478 #: build/C/man2/prctl.2:785
3479 msgid ""
3480 "The address passed with B<PR_SET_MM_ARG_START>, B<PR_SET_MM_ARG_END>, "
3481 "B<PR_SET_MM_ENV_START>, and B<PR_SET_MM_ENV_END> should belong to a process "
3482 "stack area.  Thus, the corresponding memory area must be readable, writable, "
3483 "and (depending on the kernel configuration) have the B<MAP_GROWSDOWN> "
3484 "attribute set (see B<mmap>(2))."
3485 msgstr ""
3486 "B<PR_SET_MM_ARG_START>, B<PR_SET_MM_ARG_END>, B<PR_SET_MM_ENV_START>, "
3487 "B<PR_SET_MM_ENV_END> で指定されるアドレスはプロセスのスタック領域に属している"
3488 "必要がある。 したがって、これらのメモリー領域は読み書き可能でなければならな"
3489 "い。 また、 (カーネル設定によっては) B<MAP_GROWSDOWN> 属性がセットされていな"
3490 "ければならない (B<mmap>(2) 参照)。"
3491
3492 #. type: TP
3493 #: build/C/man2/prctl.2:785
3494 #, no-wrap
3495 msgid "B<PR_SET_MM_AUXV>"
3496 msgstr "B<PR_SET_MM_AUXV>"
3497
3498 #. type: Plain text
3499 #: build/C/man2/prctl.2:794
3500 msgid ""
3501 "Set a new auxiliary vector.  The I<arg3> argument should provide the address "
3502 "of the vector.  The I<arg4> is the size of the vector."
3503 msgstr ""
3504 "新しい補助ベクトル (auxiliary vector) を設定する。 I<arg3> 引き数はベクトルの"
3505 "アドレスを指定し、 I<arg4> はベクトルのサイズを指定する。"
3506
3507 #. type: TP
3508 #: build/C/man2/prctl.2:794
3509 #, no-wrap
3510 msgid "B<PR_SET_MM_EXE_FILE>"
3511 msgstr "B<PR_SET_MM_EXE_FILE>"
3512
3513 #.  commit b32dfe377102ce668775f8b6b1461f7ad428f8b6
3514 #. type: Plain text
3515 #: build/C/man2/prctl.2:806
3516 msgid ""
3517 "Supersede the I</proc/pid/exe> symbolic link with a new one pointing to a "
3518 "new executable file identified by the file descriptor provided in I<arg3> "
3519 "argument.  The file descriptor should be obtained with a regular B<open>(2)  "
3520 "call."
3521 msgstr ""
3522 "I</proc/pid/exe> シンボリックリンクを I<arg3> 引き数で渡された新しい実行可能"
3523 "なファイルディスクリプターを指すシンボリックリンクで置き換える。 ファイルディ"
3524 "スクリプターは通常の B<open>(2) コールで取得すべきである。"
3525
3526 #. type: Plain text
3527 #: build/C/man2/prctl.2:813
3528 msgid ""
3529 "To change the symbolic link, one needs to unmap all existing executable "
3530 "memory areas, including those created by the kernel itself (for example the "
3531 "kernel usually creates at least one executable memory area for the ELF I<."
3532 "text> section)."
3533 msgstr ""
3534 "シンボリックリンクを変更するには、 既存の実行可能なメモリー領域のすべてをアン"
3535 "マップする必要がある。これにはカーネル自身が作成した領域も含まれる (例えば、"
3536 "カーネルは通常 ELF I<.text> セクションに少なくとも一つの実行可能なメモリー領"
3537 "域を作成する)。"
3538
3539 #. type: Plain text
3540 #: build/C/man2/prctl.2:819
3541 msgid ""
3542 "The second limitation is that such transitions can be done only once in a "
3543 "process life time.  Any further attempts will be rejected.  This should help "
3544 "system administrators monitor unusual symbolic-link transitions over all "
3545 "processes running on a system."
3546 msgstr ""
3547 "二つ目の制限は、このような変更はプロセスの生存期間で一度だけ行うことができる"
3548 "という点である。 一度変更を行った後で変更を行おうとすると拒否される。 この動"
3549 "作は、 システム管理者が、 システムで動作するすべてのプロセスが行う、 普通でな"
3550 "いシンボリックリンクの変更を監視するのを楽にする。"
3551
3552 #. type: TP
3553 #: build/C/man2/prctl.2:820
3554 #, no-wrap
3555 msgid "B<PR_MPX_ENABLE_MANAGEMENT>, B<PR_MPX_DISABLE_MANAGEMENT> (since Linux 3.19) "
3556 msgstr "B<PR_MPX_ENABLE_MANAGEMENT>, B<PR_MPX_DISABLE_MANAGEMENT> (Linux 3.19 以降) "
3557
3558 #.  commit fe3d197f84319d3bce379a9c0dc17b1f48ad358c
3559 #.  See also http://lwn.net/Articles/582712/
3560 #.  See also https://gcc.gnu.org/wiki/Intel%20MPX%20support%20in%20the%20GCC%20compiler
3561 #. type: Plain text
3562 #: build/C/man2/prctl.2:827
3563 msgid ""
3564 "Enable or disable kernel management of Memory Protection eXtensions (MPX)  "
3565 "bounds tables."
3566 msgstr ""
3567
3568 #. type: Plain text
3569 #: build/C/man2/prctl.2:840
3570 msgid ""
3571 "MPX is a hardware-assisted mechanism for performing bounds checking on "
3572 "pointers.  It consists of a set of registers storing bounds information and "
3573 "a set of special instruction prefixes that tell the CPU on which "
3574 "instructions it should do bounds enforcement.  There is a limited number of "
3575 "these registers and when there are more pointers than registers, their "
3576 "contents must be \"spilled\" into a set of tables.  These tables are called "
3577 "\"bounds tables\" and the MPX B<prctl>()  operations control whether the "
3578 "kernel manages their allocation and freeing."
3579 msgstr ""
3580
3581 #. type: Plain text
3582 #: build/C/man2/prctl.2:850
3583 msgid ""
3584 "When management is enabled, the kernel will take over allocation and freeing "
3585 "of the bounds tables.  It does this by trapping the #BR exceptions that "
3586 "result at first use of missing bounds tables and instead of delivering the "
3587 "exception to user space, it allocates the table and populates the bounds "
3588 "directory with the location of the new table.  For freeing, the kernel "
3589 "checks to see if bounds tables are present for memory which is not "
3590 "allocated, and frees them if so."
3591 msgstr ""
3592
3593 #. type: Plain text
3594 #: build/C/man2/prctl.2:857
3595 msgid ""
3596 "Before enabling MPX management using B<PR_MPX_ENABLE_MANAGEMENT>, the "
3597 "application must first have allocated a user-space buffer for the bounds "
3598 "directory and placed the location of that directory in the I<bndcfgu> "
3599 "register."
3600 msgstr ""
3601
3602 #. type: Plain text
3603 #: build/C/man2/prctl.2:864
3604 msgid ""
3605 "These calls will fail if the CPU or kernel does not support MPX.  Kernel "
3606 "support for MPX is enabled via the B<CONFIG_X86_INTEL_MPX> configuration "
3607 "option.  You can check whether the CPU supports MPX by looking for the 'mpx' "
3608 "CPUID bit, like with the following command:"
3609 msgstr ""
3610
3611 #. type: Plain text
3612 #: build/C/man2/prctl.2:866
3613 msgid "  cat /proc/cpuinfo | grep ' mpx '"
3614 msgstr "  cat /proc/cpuinfo | grep ' mpx '"
3615
3616 #. type: Plain text
3617 #: build/C/man2/prctl.2:869
3618 msgid ""
3619 "A thread may not switch in or out of long (64-bit) mode while MPX is enabled."
3620 msgstr ""
3621
3622 #. type: Plain text
3623 #: build/C/man2/prctl.2:871
3624 msgid "All threads in a process are affected by these calls."
3625 msgstr ""
3626
3627 #. type: Plain text
3628 #: build/C/man2/prctl.2:880
3629 msgid ""
3630 "The child of a B<fork>(2)  inherits the state of MPX management.  During "
3631 "B<execve>(2), MPX management is reset to a state as if "
3632 "B<PR_MPX_DISABLE_MANAGEMENT> had been called."
3633 msgstr ""
3634
3635 #. type: Plain text
3636 #: build/C/man2/prctl.2:884
3637 msgid ""
3638 "For further information on Intel MPX, see the kernel source file "
3639 "I<Documentation/x86/intel_mpx.txt>."
3640 msgstr ""
3641 "Intel MPX についての詳しい情報は、カーネルソースファイル I<Documentation/x86/"
3642 "intel_mpx.txt> を参照。"
3643
3644 #. type: Plain text
3645 #: build/C/man2/prctl.2:904
3646 msgid ""
3647 "On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3648 "B<PR_GET_THP_DISABLE>, B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, "
3649 "B<PR_GET_TIMERSLACK>, B<PR_GET_SECUREBITS>, B<PR_MCE_KILL_GET>, and (if it "
3650 "returns)  B<PR_GET_SECCOMP> return the nonnegative values described above.  "
3651 "All other I<option> values return 0 on success.  On error, -1 is returned, "
3652 "and I<errno> is set appropriately."
3653 msgstr ""
3654 "成功すると、 B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3655 "B<PR_GET_THP_DISABLE>, B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, "
3656 "B<PR_GET_TIMERSLACK>, B<PR_GET_SECUREBITS>, B<PR_MCE_KILL_GET>, "
3657 "B<PR_GET_SECCOMP> は上述の負でない値を返す (なお、B<PR_GET_SECCOMP> は返らな"
3658 "い場合もある)。 I<option> が他の値の場合は成功時に 0 を返す。 エラーの場"
3659 "合、-1 を返し、 I<errno> に適切な値を設定する。"
3660
3661 #. type: Plain text
3662 #: build/C/man2/prctl.2:909
3663 msgid "I<arg2> is an invalid address."
3664 msgstr "I<arg2> が不正なアドレスである。"
3665
3666 #. type: Plain text
3667 #: build/C/man2/prctl.2:922
3668 msgid ""
3669 "I<option> is B<PR_SET_SECCOMP>, I<arg2> is B<SECCOMP_MODE_FILTER>, the "
3670 "system was built with B<CONFIG_SECCOMP_FILTER>, and I<arg3> is an invalid "
3671 "address."
3672 msgstr ""
3673 "I<option> が B<PR_SET_SECCOMP> で、 I<arg2> が B<SECCOMP_MODE_FILTER> で、 "
3674 "カーネルが B<CONFIG_SECCOMP_FILTER> を有効にして作成されており、 I<arg3> が無"
3675 "効なアドレスである。"
3676
3677 #. type: Plain text
3678 #: build/C/man2/prctl.2:927
3679 msgid "The value of I<option> is not recognized."
3680 msgstr "I<option> の値が理解できない。"
3681
3682 #. type: Plain text
3683 #: build/C/man2/prctl.2:939
3684 msgid ""
3685 "I<option> is B<PR_MCE_KILL> or B<PR_MCE_KILL_GET> or B<PR_SET_MM>, and "
3686 "unused B<prctl>()  arguments were not specified as zero."
3687 msgstr ""
3688 "I<option> が B<PR_MCE_KILL>, B<PR_MCE_KILL_GET>, B<PR_SET_MM> のいずれかで、"
3689 "かつ未使用の B<prctl>() 引き数に 0 が指定されていなかった。"
3690
3691 #. type: Plain text
3692 #: build/C/man2/prctl.2:944
3693 msgid "I<arg2> is not valid value for this I<option>."
3694 msgstr "I<arg2> が指定された I<option> で有効な値ではない。"
3695
3696 #. type: Plain text
3697 #: build/C/man2/prctl.2:953
3698 msgid ""
3699 "I<option> is B<PR_SET_SECCOMP> or B<PR_GET_SECCOMP>, and the kernel was not "
3700 "configured with B<CONFIG_SECCOMP>."
3701 msgstr ""
3702 "I<option> が B<PR_SET_SECCOMP> か B<PR_GET_SECCOMP> だが、カーネルが "
3703 "B<CONFIG_SECCOMP> を有効にして作成されていなかった。"
3704
3705 #. type: Plain text
3706 #: build/C/man2/prctl.2:963
3707 msgid ""
3708 "I<option> is B<PR_SET_SECCOMP>, I<arg2> is B<SECCOMP_MODE_FILTER>, and the "
3709 "kernel was not configured with B<CONFIG_SECCOMP_FILTER>."
3710 msgstr ""
3711 "I<option> が B<PR_SET_SECCOMP> で、 I<arg2> が B<SECCOMP_MODE_FILTER> で、 "
3712 "カーネルが B<CONFIG_SECCOMP> を有効にして作成されていなかった。"
3713
3714 #. type: Plain text
3715 #: build/C/man2/prctl.2:969
3716 msgid "I<option> is B<PR_SET_MM>, and one of the following is true"
3717 msgstr "I<option> が B<PR_SET_MM> で、以下のいずれかが真である。"
3718
3719 #. type: Plain text
3720 #: build/C/man2/prctl.2:975
3721 msgid "I<arg4> or I<arg5> is nonzero;"
3722 msgstr "I<arg4> が I<arg5> で 0 以外である。"
3723
3724 #. type: Plain text
3725 #: build/C/man2/prctl.2:980
3726 msgid ""
3727 "I<arg3> is greater than B<TASK_SIZE> (the limit on the size of the user "
3728 "address space for this architecture);"
3729 msgstr ""
3730 "I<arg3> が B<TASK_SIZE> よりも大きい  (B<TASK_SIZE> はこのアーキテクチャーで"
3731 "ユーザー空間アドレススペースの最大サイズである)。"
3732
3733 #. type: Plain text
3734 #: build/C/man2/prctl.2:990
3735 msgid ""
3736 "I<arg2> is B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3737 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, or B<PR_SET_MM_START_STACK>, "
3738 "and the permissions of the corresponding memory area are not as required;"
3739 msgstr ""
3740 "I<arg2> が B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3741 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, B<PR_SET_MM_START_STACK> のど"
3742 "れかで、対応するメモリー領域のアクセス許可が要件を満たしていない。"
3743
3744 #. type: Plain text
3745 #: build/C/man2/prctl.2:1002
3746 msgid ""
3747 "I<arg2> is B<PR_SET_MM_START_BRK> or B<PR_SET_MM_BRK>, and I<arg3> is less "
3748 "than or equal to the end of the data segment or specifies a value that would "
3749 "cause the B<RLIMIT_DATA> resource limit to be exceeded."
3750 msgstr ""
3751 "I<arg2> が B<PR_SET_MM_START_BRK> か B<PR_SET_MM_BRK> で、 I<arg3> データセグ"
3752 "メントの末尾と同じかそれより前か、 I<arg3> に B<RLIMIT_DATA> リソースリミット"
3753 "を超えてしまうような値が指定されている。"
3754
3755 #. type: Plain text
3756 #: build/C/man2/prctl.2:1013
3757 msgid ""
3758 "I<option> is B<PR_SET_PTRACER> and I<arg2> is not 0, B<PR_SET_PTRACER_ANY>, "
3759 "or the PID of an existing process."
3760 msgstr ""
3761 "I<option> が B<PR_SET_PTRACER> で I<arg2> が 0, B<PR_SET_PTRACER_ANY>, 既存プ"
3762 "ロセスの PID のいずれでもない。"
3763
3764 #. type: Plain text
3765 #: build/C/man2/prctl.2:1021
3766 msgid ""
3767 "I<option> is B<PR_SET_PDEATHSIG> and I<arg2> is not a valid signal number."
3768 msgstr ""
3769 "I<option> が B<PR_SET_PDEATHSIG> で、 I<arg2> で指定された値は無効なシグナル"
3770 "番号である。"
3771
3772 #. type: Plain text
3773 #: build/C/man2/prctl.2:1032
3774 msgid ""
3775 "I<option> is B<PR_SET_DUMPABLE> and I<arg2> is neither B<SUID_DUMP_DISABLE> "
3776 "nor B<SUID_DUMP_USER>."
3777 msgstr ""
3778 "I<option> が B<PR_SET_DUMPABLE> で、 I<arg2> が B<SUID_DUMP_DISABLE> でも "
3779 "B<SUID_DUMP_USER> でもない。"
3780
3781 #. type: Plain text
3782 #: build/C/man2/prctl.2:1041
3783 msgid ""
3784 "I<option> is B<PR_SET_TIMING> and I<arg2> is not B<PR_TIMING_STATISTICAL>."
3785 msgstr ""
3786 "I<option> が B<PR_SET_TIMING> で、 I<arg2> が B<PR_TIMING_STATISTICAL> ではな"
3787 "い。"
3788
3789 #. type: Plain text
3790 #: build/C/man2/prctl.2:1055
3791 msgid ""
3792 "I<option> is B<PR_SET_NO_NEW_PRIVS> and I<arg2> is not equal to 1 or "
3793 "I<arg3>, I<arg4>, or I<arg5> is nonzero."
3794 msgstr ""
3795 "I<option> が B<PR_SET_NO_NEW_PRIVS> で、 I<arg2> が 1 以外か、 I<arg3>, "
3796 "I<arg4>, I<arg5> のどれかが 0 ではない。"
3797
3798 #. type: Plain text
3799 #: build/C/man2/prctl.2:1067
3800 msgid ""
3801 "I<option> is B<PR_GET_NO_NEW_PRIVS> and I<arg2>, I<arg3>, I<arg4>, or "
3802 "I<arg5> is nonzero."
3803 msgstr ""
3804 "I<option> が B<PR_GET_NO_NEW_PRIVS> で、 I<arg2>, I<arg3>, I<arg4>, I<arg5> "
3805 "のどれかが 0 ではない。"
3806
3807 #. type: Plain text
3808 #: build/C/man2/prctl.2:1078
3809 msgid ""
3810 "I<option> is B<PR_SET_THP_DISABLE> and I<arg3>, I<arg4>, or I<arg5> is "
3811 "nonzero."
3812 msgstr ""
3813 "I<option> が B<PR_SET_THP_DISABLE> で I<arg3>, I<arg4>, I<arg5> のどれかが 0 "
3814 "ではない。"
3815
3816 #. type: Plain text
3817 #: build/C/man2/prctl.2:1090
3818 msgid ""
3819 "I<option> is B<PR_GET_THP_DISABLE> and I<arg2>, I<arg3>, I<arg4>, or I<arg5> "
3820 "is nonzero."
3821 msgstr ""
3822 "I<option> が B<PR_GET_THP_DISABLE> で I<arg2>, I<arg3>, I<arg4>, I<arg5> のい"
3823 "ずれが 0 ではない。"
3824
3825 #. type: Plain text
3826 #: build/C/man2/prctl.2:1102
3827 msgid ""
3828 "I<option> is B<PR_SET_SECUREBITS>, and the caller does not have the "
3829 "B<CAP_SETPCAP> capability, or tried to unset a \"locked\" flag, or tried to "
3830 "set a flag whose corresponding locked flag was set (see B<capabilities>(7))."
3831 msgstr ""
3832 "I<option> が B<PR_SET_SECUREBITS> で、呼び出し元がケーパビリティ "
3833 "B<CAP_SETPCAP> を持っていない。 または、\"locked\" フラグを解除しようとし"
3834 "た。 または、locked フラグがセットされているフラグをセットしようとした "
3835 "(B<capabilities>(7)  参照)。"
3836
3837 #. type: Plain text
3838 #: build/C/man2/prctl.2:1112
3839 msgid ""
3840 "I<option> is B<PR_SET_KEEPCAPS>, and the callers's "
3841 "B<SECURE_KEEP_CAPS_LOCKED> flag is set (see B<capabilities>(7))."
3842 msgstr ""
3843 "I<option> が B<PR_SET_KEEPCAPS> で、呼び出し元のフラグ "
3844 "B<SECURE_KEEP_CAPS_LOCKED> がセットされている (B<capabilities>(7)  参照)。"
3845
3846 #. type: Plain text
3847 #: build/C/man2/prctl.2:1120
3848 msgid ""
3849 "I<option> is B<PR_CAPBSET_DROP>, and the caller does not have the "
3850 "B<CAP_SETPCAP> capability."
3851 msgstr ""
3852 "I<option> が B<PR_CAPBSET_DROP> で、呼び出し元がケーパビリティ "
3853 "B<CAP_SETPCAP> を持っていない。"
3854
3855 #. type: Plain text
3856 #: build/C/man2/prctl.2:1128
3857 msgid ""
3858 "I<option> is B<PR_SET_MM>, and the caller does not have the "
3859 "B<CAP_SYS_RESOURCE> capability."
3860 msgstr ""
3861 "I<option> が B<PR_SET_MM> で、呼び出し元がケーパビリティ B<CAP_SYS_RESOURCE> "
3862 "を持っていない。"
3863
3864 #. type: TP
3865 #: build/C/man2/prctl.2:1128
3866 #, no-wrap
3867 msgid "B<EACCES>"
3868 msgstr "B<EACCES>"
3869
3870 #. type: Plain text
3871 #: build/C/man2/prctl.2:1138
3872 msgid ""
3873 "I<option> is B<PR_SET_MM>, and I<arg3> is B<PR_SET_MM_EXE_FILE>, the file is "
3874 "not executable."
3875 msgstr ""
3876 "I<option> が B<PR_SET_MM>、かつ I<arg3> が B<PR_SET_MM_EXE_FILE> で、ファイル"
3877 "が実行可能ではない。"
3878
3879 #. type: TP
3880 #: build/C/man2/prctl.2:1138
3881 #, no-wrap
3882 msgid "B<EBUSY>"
3883 msgstr "B<EBUSY>"
3884
3885 #. type: Plain text
3886 #: build/C/man2/prctl.2:1149
3887 msgid ""
3888 "I<option> is B<PR_SET_MM>, I<arg3> is B<PR_SET_MM_EXE_FILE>, and this the "
3889 "second attempt to change the I</proc/pid/exe> symbolic link, which is "
3890 "prohibited."
3891 msgstr ""
3892 "I<option> が B<PR_SET_MM> で、 I<arg3> が B<PR_SET_MM_EXE_FILE> で、 I</proc/"
3893 "pid/exe> シンボリックリンクを変更しようとしたが、 禁止されている。"
3894
3895 #. type: TP
3896 #: build/C/man2/prctl.2:1149 build/C/man2/signalfd.2:266
3897 #: build/C/man2/timerfd_create.2:345
3898 #, no-wrap
3899 msgid "B<EBADF>"
3900 msgstr "B<EBADF>"
3901
3902 #.  The following can't actually happen, because prctl() in
3903 #.  seccomp mode will cause SIGKILL.
3904 #.  .TP
3905 #.  .B EPERM
3906 #.  .I option
3907 #.  is
3908 #.  .BR PR_SET_SECCOMP ,
3909 #.  and secure computing mode is already 1.
3910 #. type: Plain text
3911 #: build/C/man2/prctl.2:1168
3912 msgid ""
3913 "I<option> is B<PR_SET_MM>, I<arg3> is B<PR_SET_MM_EXE_FILE>, and the file "
3914 "descriptor passed in I<arg4> is not valid."
3915 msgstr ""
3916 "I<option> が B<PR_SET_MM> で、 I<arg3> が B<PR_SET_MM_EXE_FILE> で、 I<arg4> "
3917 "で渡されたファイルディスクリプターが有効ではない。"
3918
3919 #. type: TP
3920 #: build/C/man2/prctl.2:1168
3921 #, no-wrap
3922 msgid "B<ENXIO>"
3923 msgstr "B<ENXIO>"
3924
3925 #. type: Plain text
3926 #: build/C/man2/prctl.2:1177
3927 msgid ""
3928 "I<option> was B<PR_MPX_ENABLE_MANAGEMENT> or B<PR_MPX_DISABLE_MANAGEMENT> "
3929 "and the kernel or the CPU does not support MPX management.  Check that the "
3930 "kernel and processor have MPX support."
3931 msgstr ""
3932 "I<option> が B<PR_MPX_ENABLE_MANAGEMENT> か B<PR_MPX_DISABLE_MANAGEMENT> "
3933 "で、 カーネルか CPU が MPX の管理をサポートしていない。 カーネルとプロセスが "
3934 "MPX をサポートしているか確認すること。"
3935
3936 #.  The library interface was added in glibc 2.0.6
3937 #. type: Plain text
3938 #: build/C/man2/prctl.2:1182
3939 msgid "The B<prctl>()  system call was introduced in Linux 2.1.57."
3940 msgstr "B<prctl>()  システムコールは Linux 2.1.57 で導入された。"
3941
3942 #. type: Plain text
3943 #: build/C/man2/prctl.2:1189
3944 msgid ""
3945 "This call is Linux-specific.  IRIX has a B<prctl>()  system call (also "
3946 "introduced in Linux 2.1.44 as irix_prctl on the MIPS architecture), with "
3947 "prototype"
3948 msgstr ""
3949 "このコールは Linux 特有である。 IRIX には B<prctl>()  システムコールがあるが "
3950 "(MIPS アーキテクチャーにおいて irix_prctl として Linux 2.1.44 で同様に導入さ"
3951 "れた)、 そのプロトタイプは"
3952
3953 #. type: Plain text
3954 #: build/C/man2/prctl.2:1191
3955 msgid "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3956 msgstr "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3957
3958 #. type: Plain text
3959 #: build/C/man2/prctl.2:1196
3960 msgid ""
3961 "and options to get the maximum number of processes per user, get the maximum "
3962 "number of processors the calling process can use, find out whether a "
3963 "specified process is currently blocked, get or set the maximum stack size, "
3964 "and so on."
3965 msgstr ""
3966 "である。ユーザー当りのプロセス最大数を取得するオプション、 プロセスの使用でき"
3967 "る最大プロッサー数を取得するオプション、 現在特定のプロセスが停止(block)させ"
3968 "られているかどうか調べるオプション、 スタックサイズの最大値の取得や設定を行な"
3969 "うオプションなどがある。"
3970
3971 #. type: Plain text
3972 #: build/C/man2/prctl.2:1199
3973 msgid "B<signal>(2), B<core>(5)"
3974 msgstr "B<signal>(2), B<core>(5)"
3975
3976 #. type: TH
3977 #: build/C/man3/profil.3:28
3978 #, no-wrap
3979 msgid "PROFIL"
3980 msgstr "PROFIL"
3981
3982 #. type: Plain text
3983 #: build/C/man3/profil.3:31
3984 msgid "profil - execution time profile"
3985 msgstr "profil - 実行時間プロファイル (profile)"
3986
3987 #. type: Plain text
3988 #: build/C/man3/profil.3:34
3989 #, no-wrap
3990 msgid "B<#include E<lt>unistd.hE<gt>>\n"
3991 msgstr "B<#include E<lt>unistd.hE<gt>>\n"
3992
3993 #. type: Plain text
3994 #: build/C/man3/profil.3:37
3995 #, no-wrap
3996 msgid ""
3997 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3998 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3999 msgstr ""
4000 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
4001 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
4002
4003 #. type: Plain text
4004 #: build/C/man3/profil.3:46
4005 msgid ""
4006 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
4007 msgstr ""
4008 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
4009
4010 #. type: Plain text
4011 #: build/C/man3/profil.3:68
4012 msgid ""
4013 "This routine provides a means to find out in what areas your program spends "
4014 "most of its time.  The argument I<buf> points to I<bufsiz> bytes of core.  "
4015 "Every virtual 10 milliseconds, the user's program counter (PC)  is examined: "
4016 "I<offset> is subtracted and the result is multiplied by I<scale> and divided "
4017 "by 65536.  If the resulting value is less than I<bufsiz>, then the "
4018 "corresponding entry in I<buf> is incremented.  If I<buf> is NULL, profiling "
4019 "is disabled."
4020 msgstr ""
4021 "このルーティンはプログラムのどこの部分で時間を費やしているかを調べる 手段を提"
4022 "供する。引き数 I<buf> は I<bufsiz> バイトのメモリーを指している。仮想の 10 ミ"
4023 "リ秒ごとに、ユーザーの プログラムカウンター (PC) が検査される: I<offset> が引"
4024 "かれ、その結果が I<scale> 倍され 65536 で割られる。 結果が I<bufsiz> より小さ"
4025 "い場合は I<buf> の対応するエントリーがインクリメントされる。 I<buf> が NULL "
4026 "ならば、プロファイル (profile) は無効にされる。"
4027
4028 #. type: Plain text
4029 #: build/C/man3/profil.3:70
4030 msgid "Zero is always returned."
4031 msgstr "常に 0 が返される。"
4032
4033 #. type: Plain text
4034 #: build/C/man3/profil.3:72
4035 msgid "Similar to a call in SVr4 (but not POSIX.1-2001)."
4036 msgstr "SVr4 のコールに似ている (しかし POSIX.1-2001 ではない)。"
4037
4038 #. type: Plain text
4039 #: build/C/man3/profil.3:78
4040 msgid ""
4041 "B<profil>()  cannot be used on a program that also uses B<ITIMER_PROF> "
4042 "interval timers (see B<setitimer>(2))."
4043 msgstr ""
4044 "B<profil>()  は B<ITIMER_PROF> インターバルタイマーも使用しているプログラムで"
4045 "は使用できない (B<setitimer>(2)  参照)。"
4046
4047 #. type: Plain text
4048 #: build/C/man3/profil.3:81
4049 msgid ""
4050 "True kernel profiling provides more accurate results.  Libc 4.4 contained a "
4051 "kernel patch providing a system call profil."
4052 msgstr ""
4053 "本当のカーネルプロファイルはより正確な結果を与える。 libc 4.4 にはシステム"
4054 "コール profil を提供するための カーネルパッチが含まれていた。"
4055
4056 #. type: Plain text
4057 #: build/C/man3/profil.3:87
4058 msgid ""
4059 "B<gprof>(1), B<sprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
4060 msgstr ""
4061 "B<gprof>(1), B<sprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
4062
4063 #. type: TH
4064 #: build/C/man3/psignal.3:30
4065 #, no-wrap
4066 msgid "PSIGNAL"
4067 msgstr "PSIGNAL"
4068
4069 #. type: TH
4070 #: build/C/man3/psignal.3:30
4071 #, no-wrap
4072 msgid "2010-10-06"
4073 msgstr "2010-10-06"
4074
4075 #. type: TH
4076 #: build/C/man3/psignal.3:30 build/C/man3/raise.3:29
4077 #: build/C/man7/sigevent.7:26
4078 #, no-wrap
4079 msgid "GNU"
4080 msgstr "GNU"
4081
4082 #. type: Plain text
4083 #: build/C/man3/psignal.3:33
4084 msgid "psignal, psiginfo - print signal message"
4085 msgstr "psignal, psiginfo - シグナルメッセージを表示"
4086
4087 #. type: Plain text
4088 #: build/C/man3/psignal.3:39
4089 #, no-wrap
4090 msgid ""
4091 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
4092 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
4093 msgstr ""
4094 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
4095 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
4096
4097 #. type: Plain text
4098 #: build/C/man3/psignal.3:41
4099 #, no-wrap
4100 msgid "B<extern const char *const >I<sys_siglist>B<[];>\n"
4101 msgstr "B<extern const char *const >I<sys_siglist>B<[];>\n"
4102
4103 #. type: Plain text
4104 #: build/C/man3/psignal.3:50
4105 msgid "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
4106 msgstr "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
4107
4108 #. type: Plain text
4109 #: build/C/man3/psignal.3:53
4110 msgid ""
4111 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
4112 "200809L"
4113 msgstr ""
4114 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
4115 "200809L"
4116
4117 #. type: Plain text
4118 #: build/C/man3/psignal.3:56
4119 msgid "I<sys_siglist>: _BSD_SOURCE"
4120 msgstr "I<sys_siglist>: _BSD_SOURCE"
4121
4122 #. type: Plain text
4123 #: build/C/man3/psignal.3:65
4124 msgid ""
4125 "The B<psignal>()  function displays a message on I<stderr> consisting of the "
4126 "string I<s>, a colon, a space, a string describing the signal number I<sig>, "
4127 "and a trailing newline.  If the string I<s> is NULL or empty, the colon and "
4128 "space are omitted.  If I<sig> is invalid, the message displayed will "
4129 "indicate an unknown signal."
4130 msgstr ""
4131 "B<psignal>() 関数は、文字列 I<s>、コロン、スペース、シグナル番号 I<sig> を説"
4132 "明する文字列、終端の改行から構成されるメッセージを I<stderr> に表示する。 文"
4133 "字列 I<s> が NULL か空の場合、コロンとスペースは省略される。 I<sig> が不正な"
4134 "らば、表示される メッセージは未知のシグナルを示す。"
4135
4136 #. type: Plain text
4137 #: build/C/man3/psignal.3:86
4138 msgid ""
4139 "The B<psiginfo>()  function is like B<psignal>(), except that it displays "
4140 "information about the signal described by I<pinfo>, which should point to a "
4141 "valid I<siginfo_t> structure.  As well as the signal description, "
4142 "B<psiginfo>()  displays information about the origin of the signal, and "
4143 "other information relevant to the signal (e.g., the relevant memory address "
4144 "for hardware-generated signals, the child process ID for B<SIGCHLD>, and the "
4145 "user ID and process ID of the sender, for signals set using B<kill>(2)  or "
4146 "B<sigqueue>(3))."
4147 msgstr ""
4148 "B<psiginfo>() 関数は B<psignal>() と同じだが、 I<pinfo> に書かれたシグナルの"
4149 "情報を表示する点が異なる。 I<pinfo> は有効な I<siginfo_t> 構造体を指している"
4150 "必要がある。 B<psiginfo>() は、 シグナルの説明だけでなく、 シグナルの送信元や"
4151 "そのシグナルに関連するその他の情報も表示する (例えば、ハードウェアが発生した"
4152 "シグナルの関連メモリーアドレス、 B<SIGCHLD> の子プロセス ID、 I<kill>(2) や "
4153 "B<sigqueue>(3) を使って送信されたシグナルの送信元プロセスのユーザー ID とプロ"
4154 "セス ID など)。"
4155
4156 #. type: Plain text
4157 #: build/C/man3/psignal.3:89
4158 msgid ""
4159 "The array I<sys_siglist> holds the signal description strings indexed by "
4160 "signal number."
4161 msgstr ""
4162 "配列 I<sys_siglist> はシグナルを説明する文字列を保持しており、 配列へのアクセ"
4163 "スにはシグナル番号を添え字として用いる事ができる。"
4164
4165 #. type: Plain text
4166 #: build/C/man3/psignal.3:95
4167 msgid "The B<psignal>()  and B<psiginfo>()  functions return no value."
4168 msgstr "関数 B<psignal>() と B<psiginfo>() は、値を返さない。"
4169
4170 #. type: Plain text
4171 #: build/C/man3/psignal.3:99
4172 msgid "The B<psiginfo>()  function was added to glibc in version 2.10."
4173 msgstr "B<psiginfo>() 関数は glibc バージョン 2.10 で追加された。"
4174
4175 #. type: Plain text
4176 #: build/C/man3/psignal.3:101
4177 msgid "POSIX.1-2008, 4.3BSD."
4178 msgstr "POSIX.1-2008, 4.3BSD."
4179
4180 #. type: Plain text
4181 #: build/C/man3/psignal.3:105
4182 msgid "In glibc versions up to 2.12, B<psiginfo>()  had the following bugs:"
4183 msgstr ""
4184 "バージョン 2.12 までの glibc では B<psiginfo>() には以下のバグがあった。"
4185
4186 #.  FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=12107
4187 #.  Reportedly now fixed; check glibc 2.13
4188 #. type: Plain text
4189 #: build/C/man3/psignal.3:109
4190 msgid "In some circumstances, a trailing newline is not printed."
4191 msgstr "特定の状況で、末尾の改行が出力されない。"
4192
4193 #.  FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=12108
4194 #.  Reportedly now fixed; check glibc 2.13
4195 #. type: Plain text
4196 #: build/C/man3/psignal.3:113
4197 msgid "Additional details are not displayed for real-time signals."
4198 msgstr "リアルタイムシグナルの場合に、追加の詳細情報が表示されない。"
4199
4200 #. type: Plain text
4201 #: build/C/man3/psignal.3:118
4202 msgid "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
4203 msgstr "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
4204
4205 #. type: TH
4206 #: build/C/man3/raise.3:29
4207 #, no-wrap
4208 msgid "RAISE"
4209 msgstr "RAISE"
4210
4211 #. type: TH
4212 #: build/C/man3/raise.3:29
4213 #, no-wrap
4214 msgid "2014-03-10"
4215 msgstr "2014-03-10"
4216
4217 #. type: Plain text
4218 #: build/C/man3/raise.3:32
4219 msgid "raise - send a signal to the caller"
4220 msgstr "raise - 呼び出し元にシグナルを送る"
4221
4222 #. type: Plain text
4223 #: build/C/man3/raise.3:37
4224 #, no-wrap
4225 msgid "B<int raise(int >I<sig>B<);>\n"
4226 msgstr "B<int raise(int >I<sig>B<);>\n"
4227
4228 #. type: Plain text
4229 #: build/C/man3/raise.3:43
4230 msgid ""
4231 "The B<raise>()  function sends a signal to the calling process or thread.  "
4232 "In a single-threaded program it is equivalent to"
4233 msgstr ""
4234 "B<raise>()  関数は、呼び出し元のプロセスもしくはスレッドにシグナルを送る。 シ"
4235 "ングルスレッドのプログラムでは、以下と等価である。"
4236
4237 #. type: Plain text
4238 #: build/C/man3/raise.3:47
4239 #, no-wrap
4240 msgid "kill(getpid(), sig);\n"
4241 msgstr "kill(getpid(), sig);\n"
4242
4243 #. type: Plain text
4244 #: build/C/man3/raise.3:51
4245 msgid "In a multithreaded program it is equivalent to"
4246 msgstr "マルチスレッドのプログラムでは、以下と等価である。"
4247
4248 #. type: Plain text
4249 #: build/C/man3/raise.3:55
4250 #, no-wrap
4251 msgid "pthread_kill(pthread_self(), sig);\n"
4252 msgstr "pthread_kill(pthread_self(), sig);\n"
4253
4254 #. type: Plain text
4255 #: build/C/man3/raise.3:61
4256 msgid ""
4257 "If the signal causes a handler to be called, B<raise>()  will return only "
4258 "after the signal handler has returned."
4259 msgstr ""
4260 "シグナルに起因してシグナルハンドラーが呼び出される場合には、 B<raise>()  が返"
4261 "るのは必ずシグナルハンドラーが返った後になる。"
4262
4263 #. type: Plain text
4264 #: build/C/man3/raise.3:64
4265 msgid "B<raise>()  returns 0 on success, and nonzero for failure."
4266 msgstr "成功した場合は 0 を、失敗した場合は 0 以外の値を返す。"
4267
4268 #. type: Plain text
4269 #: build/C/man3/raise.3:69
4270 msgid "The B<raise>()  function is thread-safe."
4271 msgstr "B<raise>() 関数はスレッドセーフである。"
4272
4273 #. type: Plain text
4274 #: build/C/man3/raise.3:71 build/C/man2/signal.2:112
4275 msgid "C89, C99, POSIX.1-2001."
4276 msgstr "C89, C99, POSIX.1-2001."
4277
4278 #.  2.3.2 used the obsolete tkill(), if available.
4279 #. type: Plain text
4280 #: build/C/man3/raise.3:82
4281 msgid ""
4282 "Since version 2.3.3, glibc implements B<raise>()  by calling B<tgkill>(2), "
4283 "if the kernel supports that system call.  Older glibc versions implemented "
4284 "B<raise>()  using B<kill>(2)."
4285 msgstr ""
4286 "glibc バージョン 2.3.3 以降では、カーネルが B<tgkill>(2) システムコールをサ"
4287 "ポートしている場合はB<raise>() は B<tgkill>(2) を使って実装されている。古い"
4288 "バージョンの glibc では、B<raise>() は B<kill>(2) を使って実装されている。"
4289
4290 #. type: Plain text
4291 #: build/C/man3/raise.3:89
4292 msgid ""
4293 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
4294 "B<signal>(7)"
4295 msgstr ""
4296 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
4297 "B<signal>(7)"
4298
4299 #. type: TH
4300 #: build/C/man2/restart_syscall.2:33
4301 #, no-wrap
4302 msgid "RESTART_SYSCALL"
4303 msgstr "RESTART_SYSCALL"
4304
4305 #. type: Plain text
4306 #: build/C/man2/restart_syscall.2:36
4307 msgid ""
4308 "restart_syscall - restart a system call after interruption by a stop signal"
4309 msgstr ""
4310 "restart_syscall - 一時停止シグナルによる割り込み後にシステムコールを再開する"
4311
4312 #. type: Plain text
4313 #: build/C/man2/restart_syscall.2:38
4314 msgid "B<int restart_syscall(void);>"
4315 msgstr "B<int restart_syscall(void);>"
4316
4317 #. type: Plain text
4318 #: build/C/man2/restart_syscall.2:41
4319 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
4320 msgstr ""
4321 "I<注>: このシステムコールには、glibc のラッパー関数はない。「注意」の節を参"
4322 "照。"
4323
4324 #. type: Plain text
4325 #: build/C/man2/restart_syscall.2:53
4326 msgid ""
4327 "The B<restart_syscall>()  system call is used to restart certain system "
4328 "calls after a process that was stopped by a signal (e.g., B<SIGSTOP> or "
4329 "B<SIGTSTP>)  is later resumed after receiving a B<SIGCONT> signal.  This "
4330 "system call is designed only for internal use by the kernel."
4331 msgstr ""
4332 "B<restart_syscall>() システムコールは、 シグナル (B<SIGSTOP> や B<SIGTSTP> な"
4333 "ど) によって停止されたプロセスが B<SIGCONT> シグナルを受信して再開された後"
4334 "に、 特定のシステムコールを再開するのに使用される。 このシステムコールはカー"
4335 "ネル内部での利用のみを想定している。"
4336
4337 #.  These system calls correspond to the special internal errno value
4338 #.  ERESTART_RESTARTBLOCK. Each of the system calls has a "restart"
4339 #.  helper function that is invoked by restart_syscall().
4340 #.  Notable (as at Linux 3.17) is that poll() has such a "restart"
4341 #.  function, but ppoll(), select(), and pselect() do not.
4342 #.  This means that the latter system calls do not take account of the
4343 #.  time spent in the stopped state when restarting.
4344 #. type: Plain text
4345 #: build/C/man2/restart_syscall.2:88
4346 msgid ""
4347 "B<restart_syscall>()  is used for restarting only those system calls that, "
4348 "when restarted, should adjust their time-related parameters\\(emnamely "
4349 "B<poll>(2)  (since Linux 2.6.24), B<nanosleep>(2)  (since Linux 2.6), "
4350 "B<clock_nanosleep>(2)  (since Linux 2.6), and B<futex>(2), when employed "
4351 "with the B<FUTEX_WAIT> (since Linux 2.6.22)  and B<FUTEX_WAIT_BITSET> (since "
4352 "Linux 2.6.31)  operations.  B<restart_syscall>()  restarts the interrupted "
4353 "system call with a time argument that is suitably adjusted to account for "
4354 "the time that has already elapsed (including the time where the process was "
4355 "stopped by a signal).  Without the B<restart_syscall>()  mechanism, "
4356 "restarting these system calls would not correctly deduct the already elapsed "
4357 "time when the process continued execution."
4358 msgstr ""
4359 "B<restart_syscall>() は、 再開時に時刻関連のパラメーターを調整する必要がある"
4360 "システムコールを再開させる場合にのみ使用される。 概要するシステムコールは "
4361 "B<poll>(2) (Linux 2.6.24 以降)、 B<nanosleep>(2) (Linux 2.6 以降)、 "
4362 "B<clock_nanosleep>(2) (Linux 2.6 以降)、 B<FUTEX_WAIT> (Linux 2.6.22 以降) "
4363 "や B<FUTEX_WAIT_BITSET> (Linux 2.6.31 以降) 操作を利用した場合の B<futex>(2) "
4364 "である。 B<restart_syscall>() は、 中断されたシステムコールを、 経過した時間 "
4365 "(プロセスがシグナルにより停止されていた時間も含む) を考慮に入れて適切に調整し"
4366 "た時刻引き数で再開する。 B<restart_syscall>() の仕組みがないと、 これらのシス"
4367 "テムコールの再開で、 プロセスが実行を継続する際にすでに経過した時間を正しく減"
4368 "算できない。"
4369
4370 #. type: Plain text
4371 #: build/C/man2/restart_syscall.2:92
4372 msgid ""
4373 "The return value of B<restart_syscall>()  is the return value of whatever "
4374 "system call is being restarted."
4375 msgstr ""
4376 "B<restart_syscall>() の返り値は、 再開中のシステムコールの返り値となる。"
4377
4378 #. type: Plain text
4379 #: build/C/man2/restart_syscall.2:96
4380 msgid ""
4381 "I<errno> is set as per the errors for whatever system call is being "
4382 "restarted by B<restart_syscall>()."
4383 msgstr ""
4384 "I<errno> は B<restart_syscall>() が再開しているシステムコールのエラーに基づい"
4385 "て設定される。"
4386
4387 #. type: Plain text
4388 #: build/C/man2/restart_syscall.2:100
4389 msgid "The B<restart_syscall>()  system call is present since Linux 2.6."
4390 msgstr "B<restart_syscall>() システムコールは Linux 2.6 以降に存在する。"
4391
4392 #. type: Plain text
4393 #: build/C/man2/restart_syscall.2:102
4394 msgid "This system call is Linux-specific."
4395 msgstr "このシステムコールは Linux 固有である。"
4396
4397 #. type: Plain text
4398 #: build/C/man2/restart_syscall.2:106
4399 msgid ""
4400 "There is no glibc wrapper for this system call, because it is intended for "
4401 "use only by the kernel and should never be called by applications."
4402 msgstr ""
4403 "このシステムコールには glibc のラッパー関数はない。 それはカーネルによる利用"
4404 "だけが想定されており、 アプリケーションは決してこのシステムコールを呼び出すべ"
4405 "きではない。"
4406
4407 #. type: Plain text
4408 #: build/C/man2/restart_syscall.2:128
4409 msgid ""
4410 "The kernel uses B<restart_syscall>()  to ensure that when a system call is "
4411 "restarted after a process has been stopped by a signal and then resumed by "
4412 "B<SIGCONT>, then the time that the process spent in the stopped state is "
4413 "counted against the timeout interval specified in the original system call.  "
4414 "In the case of system calls that take a timeout argument and automatically "
4415 "restart after a stop signal plus B<SIGCONT>, but which do not have the "
4416 "B<restart_syscall>()  mechanism built in, then, after the process resumes "
4417 "execution, the time that the process spent in the stop state is I<not> "
4418 "counted against the timeout value.  Notable examples of system calls that "
4419 "suffer this problem are B<ppoll>(2), B<select>(2), and B<pselect>(2)."
4420 msgstr ""
4421 "カーネルは B<restart_syscall>() を使用することで、 シグナルにより停止されたプ"
4422 "ロセスが B<SIGCONT> により再開された後にシステムコールが再開される際に、 元の"
4423 "システムコールに指定されたタイムアウト時間の計算に、 プロセスが停止中に経過し"
4424 "た時間が含まれることを保証する。 タイムアウト引き数を取り、停止シグナルの後"
4425 "に B<SIGCONT> があった場合自動的に再開するシステムコールだが、 そのシステム"
4426 "コールに B<restart_syscall>() の仕組みが組込まれていない場合には、 プロセスの"
4427 "実行が再開された後、 停止中にプロセスが消費した時間はタイムアウト値としてカウ"
4428 "ント「されない」。 この問題を持つ有名なシステムコールとしては B<ppoll>(2), "
4429 "B<select>(2), B<pselect>(2) がある。"
4430
4431 #
4432 #. type: Plain text
4433 #: build/C/man2/restart_syscall.2:135
4434 msgid ""
4435 "From user space, the operation of B<restart_syscall>()  is largely "
4436 "invisible: to the process that made the system call that is restarted, it "
4437 "appears as though that system call executed and returned in the usual "
4438 "fashion."
4439 msgstr ""
4440 "ユーザー空間からは B<restart_syscall>() の動作はほとんど見えない。 再開された"
4441 "システムコールを呼び出したプロセスには、 そのシステムコールが通常通り実行され"
4442 "返ったように見える。"
4443
4444 #.  FIXME . ppoll(2), select(2), and pselect(2)
4445 #.      should probably get the restart_syscall() treatment:
4446 #.      If a select() call is suspended by stop-sig+SIGCONT, the time
4447 #.      spent suspended is *not* deducted when the select() is restarted.
4448 #.  FIXME . check whether recvmmsg() handles stop-sig+SIGCONT properly.
4449 #. type: Plain text
4450 #: build/C/man2/restart_syscall.2:144
4451 msgid "B<sigaction>(2), B<sigreturn>(2), B<signal>(7)"
4452 msgstr "B<sigaction>(2), B<sigreturn>(2), B<signal>(7)"
4453
4454 #. type: TH
4455 #: build/C/man2/rt_sigqueueinfo.2:25
4456 #, no-wrap
4457 msgid "RT_SIGQUEUEINFO"
4458 msgstr "RT_SIGQUEUEINFO"
4459
4460 #. type: TH
4461 #: build/C/man2/rt_sigqueueinfo.2:25
4462 #, no-wrap
4463 msgid "2012-07-13"
4464 msgstr "2012-07-13"
4465
4466 #. type: Plain text
4467 #: build/C/man2/rt_sigqueueinfo.2:28
4468 msgid "rt_sigqueueinfo, rt_tgsigqueueinfo - queue a signal and data"
4469 msgstr ""
4470
4471 #. type: Plain text
4472 #: build/C/man2/rt_sigqueueinfo.2:31
4473 #, no-wrap
4474 msgid "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
4475 msgstr "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
4476
4477 #. type: Plain text
4478 #: build/C/man2/rt_sigqueueinfo.2:34
4479 #, no-wrap
4480 msgid ""
4481 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
4482 "B<                      siginfo_t *>I<uinfo>B<);>\n"
4483 msgstr ""
4484 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
4485 "B<                      siginfo_t *>I<uinfo>B<);>\n"
4486
4487 #. type: Plain text
4488 #: build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/sgetmask.2:36
4489 #: build/C/man2/tkill.2:41
4490 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
4491 msgstr ""
4492 "I<注>: これらのシステムコールには、glibc のラッパー関数はない。「注意」の節を"
4493 "参照。"
4494
4495 #. type: Plain text
4496 #: build/C/man2/rt_sigqueueinfo.2:50
4497 msgid ""
4498 "The B<rt_sigqueueinfo>()  and B<rt_tgsigqueueinfo>()  system calls are the "
4499 "low-level interfaces used to send a signal plus data to a process or "
4500 "thread.  The receiver of the signal can obtain the accompanying data by "
4501 "establishing a signal handler with the B<sigaction>(2)  B<SA_SIGINFO> flag."
4502 msgstr ""
4503
4504 #. type: Plain text
4505 #: build/C/man2/rt_sigqueueinfo.2:56
4506 msgid ""
4507 "These system calls are not intended for direct application use; they are "
4508 "provided to allow the implementation of B<sigqueue>(3)  and "
4509 "B<pthread_sigqueue>(3)."
4510 msgstr ""
4511
4512 #. type: Plain text
4513 #: build/C/man2/rt_sigqueueinfo.2:68
4514 msgid ""
4515 "The B<rt_sigqueueinfo>()  system call sends the signal I<sig> to the thread "
4516 "group with the ID I<tgid>.  (The term \"thread group\" is synonymous with "
4517 "\"process\", and I<tid> corresponds to the traditional UNIX process ID.)  "
4518 "The signal will be delivered to an arbitrary member of the thread group (i."
4519 "e., one of the threads that is not currently blocking the signal)."
4520 msgstr ""
4521
4522 #. type: Plain text
4523 #: build/C/man2/rt_sigqueueinfo.2:79
4524 msgid ""
4525 "The I<uinfo> argument specifies the data to accompany the signal.  This "
4526 "argument is a pointer to a structure of type I<siginfo_t>, described in "
4527 "B<sigaction>(2)  (and defined by including I<E<lt>sigaction.hE<gt>>).  The "
4528 "caller should set the following fields in this structure:"
4529 msgstr ""
4530
4531 #. type: TP
4532 #: build/C/man2/rt_sigqueueinfo.2:79 build/C/man7/sigevent.7:88
4533 #: build/C/man2/wait.2:316
4534 #, no-wrap
4535 msgid "I<si_code>"
4536 msgstr "I<si_code>"
4537
4538 #.  tkill(2) or
4539 #. type: Plain text
4540 #: build/C/man2/rt_sigqueueinfo.2:95
4541 msgid ""
4542 "This must be one of the B<SI_*> codes in the Linux kernel source file "
4543 "I<include/asm-generic/siginfo.h>, with the restriction that the code must be "
4544 "negative (i.e., cannot be B<SI_USER>, which is used by the kernel to "
4545 "indicate a signal sent by B<kill>(2))  and cannot (since Linux 2.6.39) be "
4546 "B<SI_TKILL> (which is used by the kernel to indicate a signal sent using "
4547 "B<tgkill>(2))."
4548 msgstr ""
4549
4550 #. type: TP
4551 #: build/C/man2/rt_sigqueueinfo.2:95 build/C/man2/wait.2:295
4552 #, no-wrap
4553 msgid "I<si_pid>"
4554 msgstr "I<si_pid>"
4555
4556 #. type: Plain text
4557 #: build/C/man2/rt_sigqueueinfo.2:99
4558 msgid ""
4559 "This should be set to a process ID, typically the process ID of the sender."
4560 msgstr ""
4561
4562 #. type: TP
4563 #: build/C/man2/rt_sigqueueinfo.2:99 build/C/man2/wait.2:298
4564 #, no-wrap
4565 msgid "I<si_uid>"
4566 msgstr "I<si_uid>"
4567
4568 #. type: Plain text
4569 #: build/C/man2/rt_sigqueueinfo.2:103
4570 msgid ""
4571 "This should be set to a user ID, typically the real user ID of the sender."
4572 msgstr ""
4573
4574 #. type: TP
4575 #: build/C/man2/rt_sigqueueinfo.2:103 build/C/man7/sigevent.7:96
4576 #, no-wrap
4577 msgid "I<si_value>"
4578 msgstr "I<si_value>"
4579
4580 #. type: Plain text
4581 #: build/C/man2/rt_sigqueueinfo.2:110
4582 msgid ""
4583 "This field contains the user data to accompany the signal.  For more "
4584 "information, see the description of the last (I<union sigval>)  argument of "
4585 "B<sigqueue>(3)."
4586 msgstr ""
4587
4588 #. type: Plain text
4589 #: build/C/man2/rt_sigqueueinfo.2:117
4590 msgid ""
4591 "Internally, the kernel sets the I<si_signo> field to the value specified in "
4592 "I<sig>, so that the receiver of the signal can also obtain the signal number "
4593 "via that field."
4594 msgstr ""
4595
4596 #. type: Plain text
4597 #: build/C/man2/rt_sigqueueinfo.2:129
4598 msgid ""
4599 "The B<rt_tgsigqueueinfo>()  system call is like B<rt_sigqueueinfo>(), but "
4600 "sends the signal and data to the single thread specified by the combination "
4601 "of I<tgid>, a thread group ID, and I<tid>, a thread in that thread group."
4602 msgstr ""
4603
4604 #. type: Plain text
4605 #: build/C/man2/rt_sigqueueinfo.2:134
4606 msgid ""
4607 "On success, these system calls return 0.  On error, they return -1 and "
4608 "I<errno> is set to indicate the error."
4609 msgstr ""
4610
4611 #. type: TP
4612 #: build/C/man2/rt_sigqueueinfo.2:135 build/C/man3/sigqueue.3:92
4613 #: build/C/man2/sigwaitinfo.2:115 build/C/man2/timer_create.2:178
4614 #, no-wrap
4615 msgid "B<EAGAIN>"
4616 msgstr "B<EAGAIN>"
4617
4618 #. type: Plain text
4619 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man3/sigqueue.3:98
4620 msgid ""
4621 "The limit of signals which may be queued has been reached.  (See "
4622 "B<signal>(7)  for further information.)"
4623 msgstr ""
4624 "待ち行列に入れられるシグナルの最大数に達した (より詳しい情報は B<signal>(7)  "
4625 "を参照すること)。"
4626
4627 #. type: Plain text
4628 #: build/C/man2/rt_sigqueueinfo.2:148
4629 msgid "I<sig>, I<tgid>, or I<tid> was invalid."
4630 msgstr ""
4631
4632 #. type: Plain text
4633 #: build/C/man2/rt_sigqueueinfo.2:156
4634 msgid ""
4635 "The caller does not have permission to send the signal to the target.  For "
4636 "the required permissions, see B<kill>(2).  Or: I<uinfo-E<gt>si_code> is "
4637 "invalid."
4638 msgstr ""
4639
4640 #. type: Plain text
4641 #: build/C/man2/rt_sigqueueinfo.2:162
4642 msgid "B<rt_sigqueueinfo>(): No thread group matching I<tgid> was found."
4643 msgstr ""
4644
4645 #. type: Plain text
4646 #: build/C/man2/rt_sigqueueinfo.2:169
4647 msgid "B<rt_tgsigqueinfo>(): No thread matching I<tgid> and I<tid> was found."
4648 msgstr ""
4649
4650 #. type: Plain text
4651 #: build/C/man2/rt_sigqueueinfo.2:176
4652 msgid ""
4653 "The B<rt_sigqueueinfo>()  system call was added to Linux in version 2.2.  "
4654 "The B<rt_tgsigqueueinfo>()  system call was added to Linux in version 2.6.31."
4655 msgstr ""
4656
4657 #. type: Plain text
4658 #: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/sgetmask.2:75
4659 #: build/C/man2/timerfd_create.2:380
4660 msgid "These system calls are Linux-specific."
4661 msgstr "これらのシステムコールは Linux 固有である。"
4662
4663 #. type: Plain text
4664 #: build/C/man2/rt_sigqueueinfo.2:183
4665 msgid ""
4666 "Since these system calls are not intended for application use, there are no "
4667 "glibc wrapper functions; use B<syscall>(2)  in the unlikely case that you "
4668 "want to call them directly."
4669 msgstr ""
4670 "これらのシステムコールはアプリケーションでの使用を目的として用意されたわけで"
4671 "はないので、 glibc のラッパー関数は存在しない。おそらくないと思うが、このシス"
4672 "テムコールを直接呼び出したい場合は B<syscall>(2) を使うこと。"
4673
4674 #. type: Plain text
4675 #: build/C/man2/rt_sigqueueinfo.2:188
4676 msgid ""
4677 "As with B<kill>(2), the null signal (0) can be used to check if the "
4678 "specified process or thread exists."
4679 msgstr ""
4680
4681 #. type: Plain text
4682 #: build/C/man2/rt_sigqueueinfo.2:196
4683 msgid ""
4684 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4685 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4686 msgstr ""
4687 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4688 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4689
4690 #. type: TH
4691 #: build/C/man2/s390_runtime_instr.2:25
4692 #, no-wrap
4693 msgid "S390_RUNTIME_INSTR"
4694 msgstr ""
4695
4696 #. type: TH
4697 #: build/C/man2/s390_runtime_instr.2:25
4698 #, no-wrap
4699 msgid "2012-12-17"
4700 msgstr "2012-12-17"
4701
4702 #. type: Plain text
4703 #: build/C/man2/s390_runtime_instr.2:28
4704 msgid "s390_runtime_instr - enable/disable s390 CPU run-time instrumentation"
4705 msgstr ""
4706
4707 #. type: Plain text
4708 #: build/C/man2/s390_runtime_instr.2:31
4709 #, no-wrap
4710 msgid "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4711 msgstr "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4712
4713 #. type: Plain text
4714 #: build/C/man2/s390_runtime_instr.2:33
4715 #, no-wrap
4716 msgid "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4717 msgstr "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4718
4719 #. type: Plain text
4720 #: build/C/man2/s390_runtime_instr.2:39
4721 msgid ""
4722 "The B<s390_runtime_instr>()  system call starts or stops CPU run-time "
4723 "instrumentation for the calling thread."
4724 msgstr ""
4725
4726 #. type: Plain text
4727 #: build/C/man2/s390_runtime_instr.2:47
4728 msgid ""
4729 "The I<command> argument controls whether run-time instrumentation is started "
4730 "(B<S390_RUNTIME_INSTR_START>, 1) or stopped (B<S390_RUNTIME_INSTR_STOP>, 2) "
4731 "for the calling thread."
4732 msgstr ""
4733
4734 #. type: Plain text
4735 #: build/C/man2/s390_runtime_instr.2:54
4736 msgid ""
4737 "The I<signum> argument specifies the number of a real-time signal.  The real-"
4738 "time signal is sent to the thread if the run-time instrumentation buffer is "
4739 "full or if the run-time-instrumentation-halted interrupt occurred."
4740 msgstr ""
4741
4742 #. type: Plain text
4743 #: build/C/man2/s390_runtime_instr.2:65
4744 msgid ""
4745 "On success, B<s390_runtime_instr>()  returns 0 and enables the thread for "
4746 "run-time instrumentation by assigning the thread a default run-time "
4747 "instrumentation control block.  The caller can then read and modify the "
4748 "control block and start the run-time instrumentation.  On error, -1 is "
4749 "returned and I<errno> is set to one of the error codes listed below."
4750 msgstr ""
4751
4752 #. type: Plain text
4753 #: build/C/man2/s390_runtime_instr.2:73
4754 msgid ""
4755 "The value specified in I<command> is not a valid command or the value "
4756 "specified in I<signum> is not a real-time signal number."
4757 msgstr ""
4758
4759 #. type: Plain text
4760 #: build/C/man2/s390_runtime_instr.2:76
4761 msgid ""
4762 "Allocating memory for the run-time instrumentation control block failed."
4763 msgstr ""
4764
4765 #. type: TP
4766 #: build/C/man2/s390_runtime_instr.2:76
4767 #, no-wrap
4768 msgid "B<EOPNOTSUPP>"
4769 msgstr ""
4770
4771 #. type: Plain text
4772 #: build/C/man2/s390_runtime_instr.2:79
4773 msgid "The run-time instrumentation facility is not available."
4774 msgstr ""
4775
4776 #. type: Plain text
4777 #: build/C/man2/s390_runtime_instr.2:81
4778 msgid "This system call is available since Linux 3.7."
4779 msgstr "このシステムコールは Linux 3.7 で初めて登場した。"
4780
4781 #. type: Plain text
4782 #: build/C/man2/s390_runtime_instr.2:84
4783 msgid ""
4784 "This Linux-specific system call is available only on the s390 architecture.  "
4785 "The run-time instrumentation facility is available beginning with System z "
4786 "EC12."
4787 msgstr ""
4788
4789 #. type: Plain text
4790 #: build/C/man2/s390_runtime_instr.2:88
4791 msgid ""
4792 "Glibc does not provide a wrapper for this system call, use B<syscall>(2)  to "
4793 "call it."
4794 msgstr ""
4795 "glibc はこのシステムコールに対するラッパー関数を提供していない。 "
4796 "B<syscall>(2) を使用すること。"
4797
4798 #. type: Plain text
4799 #: build/C/man2/s390_runtime_instr.2:91
4800 msgid "B<syscall>(2), B<signal>(7)"
4801 msgstr "B<syscall>(2), B<signal>(7)"
4802
4803 #. type: TH
4804 #: build/C/man2/sgetmask.2:26
4805 #, no-wrap
4806 msgid "SGETMASK"
4807 msgstr "SGETMASK"
4808
4809 #. type: Plain text
4810 #: build/C/man2/sgetmask.2:29
4811 msgid "sgetmask, ssetmask - manipulation of signal mask (obsolete)"
4812 msgstr "sgetmask, ssetmask - シグナルマスクの操作 (廃止予定)"
4813
4814 #. type: Plain text
4815 #: build/C/man2/sgetmask.2:31
4816 msgid "B<long sgetmask(void);>"
4817 msgstr "B<long sgetmask(void);>"
4818
4819 #. type: Plain text
4820 #: build/C/man2/sgetmask.2:33
4821 msgid "B<long ssetmask(long >I<newmask>B<);>"
4822 msgstr "B<long ssetmask(long >I<newmask>B<);>"
4823
4824 #. type: Plain text
4825 #: build/C/man2/sgetmask.2:42
4826 msgid ""
4827 "These system calls are obsolete.  I<Do not use them>; use B<sigprocmask>(2)  "
4828 "instead."
4829 msgstr ""
4830 "これらのシステムコールは廃止予定であり、 「使用しないこと」。 代わりに "
4831 "B<sigprocmask>(2)  を使用すること。"
4832
4833 #. type: Plain text
4834 #: build/C/man2/sgetmask.2:45
4835 msgid "B<sgetmask>()  returns the signal mask of the calling process."
4836 msgstr "B<sgetmask>()  は、呼び出し元プロセスのシグナルマスクを返す。"
4837
4838 #. type: Plain text
4839 #: build/C/man2/sgetmask.2:50
4840 msgid ""
4841 "B<ssetmask>()  sets the signal mask of the calling process to the value "
4842 "given in I<newmask>.  The previous signal mask is returned."
4843 msgstr ""
4844 "B<ssetmask>()  は、呼び出し元プロセスのシグナルマスクを I<newmask> で指定され"
4845 "た値に設定し、変更前のシグナルマスクを返す。"
4846
4847 #. type: Plain text
4848 #: build/C/man2/sgetmask.2:59
4849 msgid ""
4850 "The signal masks dealt with by these two system calls are plain bit masks "
4851 "(unlike the I<sigset_t> used by B<sigprocmask>(2)); use B<sigmask>(3)  to "
4852 "create and inspect these masks."
4853 msgstr ""
4854 "これら二つのシステムコールが扱うシグナルマスクは、 単純なビットマスクである "
4855 "(この点が B<sigprocmask>(2)  で使用される I<sigset_t> と異なる)。 これらのマ"
4856 "スクを作成したり検査するには B<sigmask>(3)  を使用すること。"
4857
4858 #. type: Plain text
4859 #: build/C/man2/sgetmask.2:64
4860 msgid ""
4861 "B<sgetmask>()  always successfully returns the signal mask.  B<ssetmask>()  "
4862 "always succeeds, and returns the previous signal mask."
4863 msgstr ""
4864 "B<sgetmask>()  は常に成功し、シグナルマスクを返す。 B<ssetmask>()  は常に成功"
4865 "し、直前のシグナルマスクを返す。"
4866
4867 #. type: Plain text
4868 #: build/C/man2/sgetmask.2:66
4869 msgid "These system calls always succeed."
4870 msgstr "これらのシステムコールは常に成功する。"
4871
4872 #.  f6187769dae48234f3877df3c4d99294cc2254fa
4873 #. type: Plain text
4874 #: build/C/man2/sgetmask.2:73
4875 msgid ""
4876 "Since Linux 3.16, support for these system calls is optional, depending on "
4877 "whether the kernel was built with the B<CONFIG_SGETMASK_SYSCALL> option."
4878 msgstr ""
4879 "Linux 3.16 以降では、これらのシステムコールのサポートは任意となり、利用できる"
4880 "かはカーネルが B<CONFIG_SGETMASK_SYSCALL> オプションを有効にしてコンパイルさ"
4881 "れているかに依存する。"
4882
4883 #. type: Plain text
4884 #: build/C/man2/sgetmask.2:79
4885 msgid ""
4886 "Glibc does not provide wrappers for these obsolete system calls; in the "
4887 "unlikely event that you want to call them, use B<syscall>(2)."
4888 msgstr ""
4889 "glibc はこれらの古いシステムコールに対するラッパー関数を提供していない。 あま"
4890 "りないと思うが、これらを呼び出したい場合には B<syscall>(2) を使うこと。"
4891
4892 #. type: Plain text
4893 #: build/C/man2/sgetmask.2:82
4894 msgid ""
4895 "These system calls are unaware of signal numbers greater than 31 (i.e., real-"
4896 "time signals)."
4897 msgstr ""
4898 "これらのシステムコールは、 31 より大きいシグナル番号 (つまり、リアルタイムシ"
4899 "グナル) を扱えない。"
4900
4901 #. type: Plain text
4902 #: build/C/man2/sgetmask.2:84
4903 msgid "These system calls do not exist on x86-64."
4904 msgstr "これらのシステムコールは x86-64 には存在しない。"
4905
4906 #. type: Plain text
4907 #: build/C/man2/sgetmask.2:89
4908 msgid "It is not possible to block B<SIGSTOP> or B<SIGKILL>."
4909 msgstr "B<SIGSTOP> や B<SIGKILL> をブロックすることはできない。"
4910
4911 #. type: Plain text
4912 #: build/C/man2/sgetmask.2:92
4913 msgid "B<sigprocmask>(2), B<signal>(7)"
4914 msgstr "B<sigprocmask>(2), B<signal>(7)"
4915
4916 #. type: TH
4917 #: build/C/man2/sigaction.2:49
4918 #, no-wrap
4919 msgid "SIGACTION"
4920 msgstr "SIGACTION"
4921
4922 #. type: TH
4923 #: build/C/man2/sigaction.2:49
4924 #, no-wrap
4925 msgid "2015-01-22"
4926 msgstr "2015-01-22"
4927
4928 #. type: Plain text
4929 #: build/C/man2/sigaction.2:52
4930 msgid "sigaction - examine and change a signal action"
4931 msgstr "sigaction - シグナルの動作の確認と変更"
4932
4933 #. type: Plain text
4934 #: build/C/man2/sigaction.2:58
4935 #, no-wrap
4936 msgid ""
4937 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4938 "B<              struct sigaction *>I<oldact>B<);>\n"
4939 msgstr ""
4940 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4941 "B<              struct sigaction *>I<oldact>B<);>\n"
4942
4943 #. type: Plain text
4944 #: build/C/man2/sigaction.2:68
4945 msgid ""
4946 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4947 "_POSIX_SOURCE"
4948 msgstr ""
4949 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4950 "_POSIX_SOURCE"
4951
4952 #. type: Plain text
4953 #: build/C/man2/sigaction.2:71
4954 msgid "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4955 msgstr "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4956
4957 #. type: Plain text
4958 #: build/C/man2/sigaction.2:80
4959 msgid ""
4960 "The B<sigaction>()  system call is used to change the action taken by a "
4961 "process on receipt of a specific signal.  (See B<signal>(7)  for an overview "
4962 "of signals.)"
4963 msgstr ""
4964 "B<sigaction>()  システムコールは、特定のシグナルを受信した際の プロセスの動作"
4965 "を変更するのに使用される (シグナルの概要については B<signal>(7)  を参照)。"
4966
4967 #. type: Plain text
4968 #: build/C/man2/sigaction.2:86
4969 msgid ""
4970 "I<signum> specifies the signal and can be any valid signal except B<SIGKILL> "
4971 "and B<SIGSTOP>."
4972 msgstr ""
4973 "I<signum> には、 B<SIGKILL> と B<SIGSTOP> 以外の有効なシグナルをどれでも指定"
4974 "できる。"
4975
4976 #. type: Plain text
4977 #: build/C/man2/sigaction.2:97
4978 msgid ""
4979 "If I<act> is non-NULL, the new action for signal I<signum> is installed from "
4980 "I<act>.  If I<oldact> is non-NULL, the previous action is saved in I<oldact>."
4981 msgstr ""
4982 "I<act> が NULL 以外であれば、シグナル I<signum> の新しい動作 (action) として "
4983 "I<act> が設定される。 I<oldact> が NULL でなければ、今までの動作が I<oldact> "
4984 "に格納される。"
4985
4986 #. type: Plain text
4987 #: build/C/man2/sigaction.2:101
4988 msgid "The I<sigaction> structure is defined as something like:"
4989 msgstr "I<sigaction> 構造体は以下のような感じに定義される。"
4990
4991 #. type: Plain text
4992 #: build/C/man2/sigaction.2:111
4993 #, no-wrap
4994 msgid ""
4995 "struct sigaction {\n"
4996 "    void     (*sa_handler)(int);\n"
4997 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4998 "    sigset_t   sa_mask;\n"
4999 "    int        sa_flags;\n"
5000 "    void     (*sa_restorer)(void);\n"
5001 "};\n"
5002 msgstr ""
5003 "struct sigaction {\n"
5004 "    void     (*sa_handler)(int);\n"
5005 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
5006 "    sigset_t   sa_mask;\n"
5007 "    int        sa_flags;\n"
5008 "    void     (*sa_restorer)(void);\n"
5009 "};\n"
5010
5011 #. type: Plain text
5012 #: build/C/man2/sigaction.2:118
5013 msgid ""
5014 "On some architectures a union is involved: do not assign to both "
5015 "I<sa_handler> and I<sa_sigaction>."
5016 msgstr ""
5017 "アーキテクチャーによっては共用体 (union) が用いられており、その場合には "
5018 "I<sa_handler> と I<sa_sigaction> の両方を同時に割り当てることはできない。"
5019
5020 #. type: Plain text
5021 #: build/C/man2/sigaction.2:127
5022 msgid ""
5023 "The I<sa_restorer> field is not intended for application use.  (POSIX does "
5024 "not specify a I<sa_restorer> field.)  Some further details of purpose of "
5025 "this field can be found in B<sigreturn>(2)."
5026 msgstr ""
5027 "I<sa_restorer> はアプリケーションが使用することを意図したフィールドではない "
5028 "(POSIX は I<sa_restorer> フィールドを規定していない)。 このフィールドの詳細な"
5029 "目的については B<sigreturn>(2) に書かれている。"
5030
5031 #. type: Plain text
5032 #: build/C/man2/sigaction.2:137
5033 msgid ""
5034 "I<sa_handler> specifies the action to be associated with I<signum> and may "
5035 "be B<SIG_DFL> for the default action, B<SIG_IGN> to ignore this signal, or a "
5036 "pointer to a signal handling function.  This function receives the signal "
5037 "number as its only argument."
5038 msgstr ""
5039 "I<sa_handler> は I<signum> に対応する動作を指定するもので、 デフォルトの動作"
5040 "を行う B<SIG_DFL>、 そのシグナルを無視する B<SIG_IGN>、 シグナルハンドラー関"
5041 "数へのポインターが設定できる。 シグナルハンドラー関数の引き数は一つであり、シ"
5042 "グナル番号が引き数として 渡される。"
5043
5044 #. type: Plain text
5045 #: build/C/man2/sigaction.2:159
5046 msgid ""
5047 "If B<SA_SIGINFO> is specified in I<sa_flags>, then I<sa_sigaction> (instead "
5048 "of I<sa_handler>)  specifies the signal-handling function for I<signum>.  "
5049 "This function receives the signal number as its first argument, a pointer to "
5050 "a I<siginfo_t> as its second argument and a pointer to a I<ucontext_t> (cast "
5051 "to I<void\\ *>) as its third argument.  (Commonly, the handler function "
5052 "doesn't make any use of the third argument.  See B<getcontext>(3)  for "
5053 "further information about I<ucontext_t>.)"
5054 msgstr ""
5055 "I<sa_flags> に B<SA_SIGINFO> が指定された場合、 (I<sa_handler> ではなく) "
5056 "I<sa_sigaction> により I<signum> に対応するシグナルハンドラー関数が指定され"
5057 "る。指定される関数は、最初の引き数としてシグナル番号を、二番目の引き数として "
5058 "I<siginfo_t> へのポインターを、三番目の引き数として (I<void\\ *> にキャストし"
5059 "た) I<ucontext_t> へのポインターを受けとる。 (一般的には、ハンドラー関数の三"
5060 "番目の引き数が使用されない。I<ucontext_t> についての詳しい情報は "
5061 "B<getcontext>(3) を参照。)"
5062
5063 #. type: Plain text
5064 #: build/C/man2/sigaction.2:169
5065 msgid ""
5066 "I<sa_mask> specifies a mask of signals which should be blocked (i.e., added "
5067 "to the signal mask of the thread in which the signal handler is invoked)  "
5068 "during execution of the signal handler.  In addition, the signal which "
5069 "triggered the handler will be blocked, unless the B<SA_NODEFER> flag is used."
5070 msgstr ""
5071 "I<sa_mask> は、シグナルハンドラー実行中に禁止 (block) すべきシグナルのマスク"
5072 "を指定する (ハンドラー実行中のシグナルの禁止は、シグナルハンドラーが起動され"
5073 "たスレッド のシグナルのマスクに追加することで行われる)。 さらに、 "
5074 "B<SA_NODEFER> フラグが指定されていない場合は、ハンドラーを起動するきっかけと"
5075 "なる シグナルにも I<sa_mask> が適用される。"
5076
5077 #. type: Plain text
5078 #: build/C/man2/sigaction.2:173
5079 msgid ""
5080 "I<sa_flags> specifies a set of flags which modify the behavior of the "
5081 "signal.  It is formed by the bitwise OR of zero or more of the following:"
5082 msgstr ""
5083 "I<sa_flags> はシグナルハンドラーの動作を変更するためのフラグの集合を指定す"
5084 "る。 I<sa_flags> には、以下に示すフラグの (0 個以上の) 論理和をとったものを指"
5085 "定する。"
5086
5087 #. type: TP
5088 #: build/C/man2/sigaction.2:174
5089 #, no-wrap
5090 msgid "B<SA_NOCLDSTOP>"
5091 msgstr "B<SA_NOCLDSTOP>"
5092
5093 #. type: Plain text
5094 #: build/C/man2/sigaction.2:191
5095 msgid ""
5096 "If I<signum> is B<SIGCHLD>, do not receive notification when child processes "
5097 "stop (i.e., when they receive one of B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, or "
5098 "B<SIGTTOU>)  or resume (i.e., they receive B<SIGCONT>)  (see B<wait>(2)).  "
5099 "This flag is meaningful only when establishing a handler for B<SIGCHLD>."
5100 msgstr ""
5101 "I<signum> が B<SIGCHLD> の場合、 子プロセスが停止したり (子プロセスが "
5102 "B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, B<SIGTTOU> を受けたとき) 再開したり (子プ"
5103 "ロセスが B<SIGCONT> を受けたとき) したときに B<SIGCHLD> の通知を受けない。 こ"
5104 "のフラグは、 B<SIGCHLD> に対してハンドラーを設定する際にのみ意味を持つ。"
5105
5106 #. type: TP
5107 #: build/C/man2/sigaction.2:191
5108 #, no-wrap
5109 msgid "B<SA_NOCLDWAIT> (since Linux 2.6)"
5110 msgstr "B<SA_NOCLDWAIT> (Linux 2.6 以降)"
5111
5112 #.  To be precise: Linux 2.5.60 -- MTK
5113 #. type: Plain text
5114 #: build/C/man2/sigaction.2:205
5115 msgid ""
5116 "If I<signum> is B<SIGCHLD>, do not transform children into zombies when they "
5117 "terminate.  See also B<waitpid>(2).  This flag is meaningful only when "
5118 "establishing a handler for B<SIGCHLD>, or when setting that signal's "
5119 "disposition to B<SIG_DFL>."
5120 msgstr ""
5121 "(Linux 2.6 以降)  I<signum> が B<SIGCHLD> の場合、子プロセスが終了したときに "
5122 "子プロセスをゾンビプロセスに変化させない (B<waitpid>(2)  も参照)。 このフラグ"
5123 "は、 B<SIGCHLD> に対してハンドラーを設定する際、もしくはそのシグナルの処理方"
5124 "法を B<SIG_DFL> に設定する際にのみ意味を持つ。"
5125
5126 #. type: Plain text
5127 #: build/C/man2/sigaction.2:217
5128 msgid ""
5129 "If the B<SA_NOCLDWAIT> flag is set when establishing a handler for "
5130 "B<SIGCHLD>, POSIX.1 leaves it unspecified whether a B<SIGCHLD> signal is "
5131 "generated when a child process terminates.  On Linux, a B<SIGCHLD> signal is "
5132 "generated in this case; on some other implementations, it is not."
5133 msgstr ""
5134 "B<SIGCHLD> に対してハンドラーを設定する際に B<SA_NOCLDWAIT> フラグをセットし"
5135 "た場合、 子プロセスが終了した際に B<SIGCHLD> シグナルが生成されるかどうか"
5136 "は、 POSIX.1 では規定されていない。 Linux では、この状況で B<SIGCHLD> シグナ"
5137 "ルは生成される。 いくつかの他の実装では生成されない。"
5138
5139 #. type: TP
5140 #: build/C/man2/sigaction.2:217
5141 #, no-wrap
5142 msgid "B<SA_NODEFER>"
5143 msgstr "B<SA_NODEFER>"
5144
5145 #. type: Plain text
5146 #: build/C/man2/sigaction.2:224
5147 msgid ""
5148 "Do not prevent the signal from being received from within its own signal "
5149 "handler.  This flag is meaningful only when establishing a signal handler.  "
5150 "B<SA_NOMASK> is an obsolete, nonstandard synonym for this flag."
5151 msgstr ""
5152 "それ自身のシグナルハンドラーの内部にいる時でも そのシグナルをマスクしないよう"
5153 "にする。 このフラグはシグナルハンドラーを設定する際にのみ意味を持つ。 "
5154 "B<SA_NOMASK> はこのフラグと同じ意味だが、廃止されており、非標準である。"
5155
5156 #. type: TP
5157 #: build/C/man2/sigaction.2:224
5158 #, no-wrap
5159 msgid "B<SA_ONSTACK>"
5160 msgstr "B<SA_ONSTACK>"
5161
5162 #. type: Plain text
5163 #: build/C/man2/sigaction.2:230
5164 msgid ""
5165 "Call the signal handler on an alternate signal stack provided by "
5166 "B<sigaltstack>(2).  If an alternate stack is not available, the default "
5167 "stack will be used.  This flag is meaningful only when establishing a signal "
5168 "handler."
5169 msgstr ""
5170 "B<sigaltstack>(2)  で提供される別のシグナルスタックでシグナルハンドラーを呼び"
5171 "出す。 別のシグナルスタックが利用可能でなければ、デフォルトのスタックが 使用"
5172 "される。 このフラグはシグナルハンドラーを設定する際にのみ意味を持つ。"
5173
5174 #. type: TP
5175 #: build/C/man2/sigaction.2:230
5176 #, no-wrap
5177 msgid "B<SA_RESETHAND>"
5178 msgstr "B<SA_RESETHAND>"
5179
5180 #. type: Plain text
5181 #: build/C/man2/sigaction.2:236
5182 msgid ""
5183 "Restore the signal action to the default upon entry to the signal handler.  "
5184 "This flag is meaningful only when establishing a signal handler.  "
5185 "B<SA_ONESHOT> is an obsolete, nonstandard synonym for this flag."
5186 msgstr ""
5187 "シグナルハンドラーを設定する際に、シグナルの動作をデフォルトに戻す。 このフラ"
5188 "グはシグナルハンドラーを設定する際にのみ意味を持つ。 B<SA_ONESHOT> はこのフラ"
5189 "グと同じ意味だが、廃止されており、非標準である。"
5190
5191 #. type: TP
5192 #: build/C/man2/sigaction.2:236
5193 #, no-wrap
5194 msgid "B<SA_RESTART>"
5195 msgstr "B<SA_RESTART>"
5196
5197 #. type: Plain text
5198 #: build/C/man2/sigaction.2:244
5199 msgid ""
5200 "Provide behavior compatible with BSD signal semantics by making certain "
5201 "system calls restartable across signals.  This flag is meaningful only when "
5202 "establishing a signal handler.  See B<signal>(7)  for a discussion of system "
5203 "call restarting."
5204 msgstr ""
5205 "いくつかのシステムコールをシグナルの通知の前後で再開できるようにして、 BSD シ"
5206 "グナル方式 (semantics) と互換性のある動作を提供する。 このフラグはシグナルハ"
5207 "ンドラーを設定する際にのみ意味を持つ。 B<signal>(7)  に書かれているシステム"
5208 "コールの再開に関する議論を参照のこと。"
5209
5210 #. type: TP
5211 #: build/C/man2/sigaction.2:244
5212 #, no-wrap
5213 msgid "B<SA_RESTORER>"
5214 msgstr "B<SA_RESTORER>"
5215
5216 #. type: Plain text
5217 #: build/C/man2/sigaction.2:253
5218 msgid ""
5219 "I<Not intended for application use>.  This flag is used by C libraries to "
5220 "indicate that the I<sa_restorer> field contains the address of a \"signal "
5221 "trampoline\".  See B<sigreturn>(2)  for more details."
5222 msgstr ""
5223 "I<アプリケーションでの使用を意図したものではない>。 このフラグは C ライブラリ"
5224 "が I<sa_restorer> フィールドに \"signal trampoline\" のアドレスが入っているこ"
5225 "とを示すために使用される。 詳細は B<sigreturn>(2) を参照。"
5226
5227 #. type: TP
5228 #: build/C/man2/sigaction.2:253
5229 #, no-wrap
5230 msgid "B<SA_SIGINFO> (since Linux 2.2)"
5231 msgstr "B<SA_SIGINFO> (Linux 2.2 以降)"
5232
5233 #.  (The
5234 #.  .I sa_sigaction
5235 #.  field was added in Linux 2.1.86.)
5236 #. type: Plain text
5237 #: build/C/man2/sigaction.2:264
5238 msgid ""
5239 "The signal handler takes three arguments, not one.  In this case, "
5240 "I<sa_sigaction> should be set instead of I<sa_handler>.  This flag is "
5241 "meaningful only when establishing a signal handler."
5242 msgstr ""
5243 "シグナルハンドラーは一つではなく、三つの引き数を持つ。この場合は "
5244 "I<sa_handler> のかわりに I<sa_sigaction> を設定しなければならない このフラグ"
5245 "はシグナルハンドラーを設定する際にのみ意味を持つ。"
5246
5247 #. type: Plain text
5248 #: build/C/man2/sigaction.2:271
5249 msgid ""
5250 "The I<siginfo_t> argument to I<sa_sigaction> is a struct with the following "
5251 "fields:"
5252 msgstr ""
5253 "I<sa_sigaction> のパラメーター I<siginfo_t> は以下のフィールドを持つ構造体で"
5254 "ある:"
5255
5256 #.  FIXME
5257 #.  The siginfo_t 'si_trapno' field seems to be used only on SPARC and Alpha;
5258 #.  this page could use a little more detail on its purpose there.
5259 #.  In the kernel: si_tid
5260 #. type: Plain text
5261 #: build/C/man2/sigaction.2:309
5262 #, no-wrap
5263 msgid ""
5264 "siginfo_t {\n"
5265 "    int      si_signo;     /* Signal number */\n"
5266 "    int      si_errno;     /* An errno value */\n"
5267 "    int      si_code;      /* Signal code */\n"
5268 "    int      si_trapno;    /* Trap number that caused\n"
5269 "                              hardware-generated signal\n"
5270 "                              (unused on most architectures) */\n"
5271 "    pid_t    si_pid;       /* Sending process ID */\n"
5272 "    uid_t    si_uid;       /* Real user ID of sending process */\n"
5273 "    int      si_status;    /* Exit value or signal */\n"
5274 "    clock_t  si_utime;     /* User time consumed */\n"
5275 "    clock_t  si_stime;     /* System time consumed */\n"
5276 "    sigval_t si_value;     /* Signal value */\n"
5277 "    int      si_int;       /* POSIX.1b signal */\n"
5278 "    void    *si_ptr;       /* POSIX.1b signal */\n"
5279 "    int      si_overrun;   /* Timer overrun count;\n"
5280 "                              POSIX.1b timers */\n"
5281 "    int      si_timerid;   /* Timer ID; POSIX.1b timers */\n"
5282 "    void    *si_addr;      /* Memory location which caused fault */\n"
5283 "    long     si_band;      /* Band event (was I<int> in\n"
5284 "                              glibc 2.3.2 and earlier) */\n"
5285 "    int      si_fd;        /* File descriptor */\n"
5286 "    short    si_addr_lsb;  /* Least significant bit of address\n"
5287 "                              (since Linux 2.6.32) */\n"
5288 "    void    *si_call_addr; /* Address of system call instruction\n"
5289 "                              (since Linux 3.5) */\n"
5290 "    int      si_syscall;   /* Number of attempted system call\n"
5291 "                              (since Linux 3.5) */\n"
5292 "    unsigned int si_arch;  /* Architecture of attempted system call\n"
5293 "                              (since Linux 3.5) */\n"
5294 "}\n"
5295 msgstr ""
5296 "siginfo_t {\n"
5297 "    int      si_signo;     /* Signal number */\n"
5298 "    int      si_errno;     /* An errno value */\n"
5299 "    int      si_code;      /* Signal code */\n"
5300 "    int      si_trapno;    /* Trap number that caused\n"
5301 "                              hardware-generated signal\n"
5302 "                              (unused on most architectures) */\n"
5303 "    pid_t    si_pid;       /* Sending process ID */\n"
5304 "    uid_t    si_uid;       /* Real user ID of sending process */\n"
5305 "    int      si_status;    /* Exit value or signal */\n"
5306 "    clock_t  si_utime;     /* User time consumed */\n"
5307 "    clock_t  si_stime;     /* System time consumed */\n"
5308 "    sigval_t si_value;     /* Signal value */\n"
5309 "    int      si_int;       /* POSIX.1b signal */\n"
5310 "    void    *si_ptr;       /* POSIX.1b signal */\n"
5311 "    int      si_overrun;   /* Timer overrun count;\n"
5312 "                              POSIX.1b timers */\n"
5313 "    int      si_timerid;   /* Timer ID; POSIX.1b timers */\n"
5314 "    void    *si_addr;      /* Memory location which caused fault */\n"
5315 "    long     si_band;      /* Band event (was I<int> in\n"
5316 "                              glibc 2.3.2 and earlier) */\n"
5317 "    int      si_fd;        /* File descriptor */\n"
5318 "    short    si_addr_lsb;  /* Least significant bit of address\n"
5319 "                              (since Linux 2.6.32) */\n"
5320 "    void    *si_call_addr; /* Address of system call instruction\n"
5321 "                              (since Linux 3.5) */\n"
5322 "    int      si_syscall;   /* Number of attempted system call\n"
5323 "                              (since Linux 3.5) */\n"
5324 "    unsigned int si_arch;  /* Architecture of attempted system call\n"
5325 "                              (since Linux 3.5) */\n"
5326 "}\n"
5327
5328 #. type: Plain text
5329 #: build/C/man2/sigaction.2:318
5330 msgid ""
5331 "I<si_signo>, I<si_errno> and I<si_code> are defined for all signals.  "
5332 "(I<si_errno> is generally unused on Linux.)  The rest of the struct may be a "
5333 "union, so that one should read only the fields that are meaningful for the "
5334 "given signal:"
5335 msgstr ""
5336 "I<si_signo>, I<si_errno>, I<si_code> は全てのシグナルに対して定義されている "
5337 "(I<si_errno> は Linux では一般的には使用されない)。 構造体の残りの部分は、共"
5338 "用体 (union) になっているかもしれない。 その場合は該当するシグナルにおいて意"
5339 "味のあるフィールドのみを読み込む ことができる。"
5340
5341 #. type: Plain text
5342 #: build/C/man2/sigaction.2:333
5343 msgid ""
5344 "Signals sent with B<kill>(2)  and B<sigqueue>(3)  fill in I<si_pid> and "
5345 "I<si_uid>.  In addition, signals sent with B<sigqueue>(3)  fill in I<si_int> "
5346 "and I<si_ptr> with the values specified by the sender of the signal; see "
5347 "B<sigqueue>(3)  for more details."
5348 msgstr ""
5349 "B<kill>(2) や B<sigqueue>(3) で送信されたシグナルでは I<si_pid> と I<si_uid> "
5350 "が設定される。 さらに、 B<sigqueue>(3) で送信されたシグナルでは I<si_int> と "
5351 "I<si_pid> にシグナルの送信者により指定された値が設定される。詳細は "
5352 "B<sigqueue>(3) を参照。"
5353
5354 #. type: Plain text
5355 #: build/C/man2/sigaction.2:349
5356 msgid ""
5357 "Signals sent by POSIX.1b timers (since Linux 2.6) fill in I<si_overrun> and "
5358 "I<si_timerid>.  The I<si_timerid> field is an internal ID used by the kernel "
5359 "to identify the timer; it is not the same as the timer ID returned by "
5360 "B<timer_create>(2).  The I<si_overrun> field is the timer overrun count; "
5361 "this is the same information as is obtained by a call to "
5362 "B<timer_getoverrun>(2).  These fields are nonstandard Linux extensions."
5363 msgstr ""
5364 "POSIX.1b タイマー (Linux 2.6 以降) は I<si_overrun> と I<si_timerid> を設定す"
5365 "る。 I<si_timerid> フィールドはカーネルがタイマーを特定するのに使用する内部 "
5366 "ID であり、 B<timer_create>(2) が返すタイマー ID と同じではない。 "
5367 "I<si_overrun> フィールドはタイマーが回り切った回数である。 これは "
5368 "B<timer_getoverrun>(2) の呼び出しで取得できる情報と同じである。 これらの"
5369 "フィールドは非標準で Linux による拡張である。"
5370
5371 #. type: Plain text
5372 #: build/C/man2/sigaction.2:364
5373 msgid ""
5374 "Signals sent for message queue notification (see the description of "
5375 "B<SIGEV_SIGNAL> in B<mq_notify>(3))  fill in I<si_int>/I<si_ptr>, with the "
5376 "I<sigev_value> supplied to B<mq_notify>(3); I<si_pid>, with the process ID "
5377 "of the message sender; and I<si_uid>, with the real user ID of the message "
5378 "sender."
5379 msgstr ""
5380 "メッセージキューの通知用に送信されたシグナル (B<mq_notify>(3) の "
5381 "B<SIGEV_SIGNAL> の説明を参照) では、 I<si_int>/I<si_ptr> に B<mq_notify>(3) "
5382 "に渡された I<sigev_value> が設定される。 I<si_pid> にはメッセージ送信者のプロ"
5383 "セス ID が設定され、 I<si_uid> にはメッセージ送信者の実ユーザー ID が設定され"
5384 "る。"
5385
5386 #.  FIXME .
5387 #.  When si_utime and si_stime where originally implemented, the
5388 #.  measurement unit was HZ, which was the same as clock ticks
5389 #.  (sysconf(_SC_CLK_TCK)).  In 2.6, HZ became configurable, and
5390 #.  was *still* used as the unit to return the info these fields,
5391 #.  with the result that the field values depended on the the
5392 #.  configured HZ.  Of course, the should have been measured in
5393 #.  USER_HZ instead, so that sysconf(_SC_CLK_TCK) could be used to
5394 #.  convert to seconds.  I have a queued patch to fix this:
5395 #.  http://thread.gmane.org/gmane.linux.kernel/698061/ .
5396 #.  This patch made it into 2.6.27.
5397 #.  But note that these fields still don't return the times of
5398 #.  waited-for children (as is done by getrusage() and times()
5399 #.  and wait4()).  Solaris 8 does include child times.
5400 #. type: Plain text
5401 #: build/C/man2/sigaction.2:411
5402 msgid ""
5403 "B<SIGCHLD> fills in I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>, and "
5404 "I<si_stime>, providing information about the child.  The I<si_pid> field is "
5405 "the process ID of the child; I<si_uid> is the child's real user ID.  The "
5406 "I<si_status> field contains the exit status of the child (if I<si_code> is "
5407 "B<CLD_EXITED>), or the signal number that caused the process to change "
5408 "state.  The I<si_utime> and I<si_stime> contain the user and system CPU time "
5409 "used by the child process; these fields do not include the times used by "
5410 "waited-for children (unlike B<getrusage>(2)  and B<times>(2)).  In kernels "
5411 "up to 2.6, and since 2.6.27, these fields report CPU time in units of "
5412 "I<sysconf(_SC_CLK_TCK)>.  In 2.6 kernels before 2.6.27, a bug meant that "
5413 "these fields reported time in units of the (configurable) system jiffy (see "
5414 "B<time>(7))."
5415 msgstr ""
5416 "B<SIGCHLD> は I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>, I<si_stime> を"
5417 "設定し、子プロセスに関する情報を提供する。 I<si_pid> フィールドは子プロセスの"
5418 "プロセス ID で、 I<si_uid> フィールドは子プロセスの実ユーザー ID である。 "
5419 "I<si_stime> フィールドには、 (I<si_code> が B<CLD_EXITED> の場合は) 子プロセ"
5420 "スの終了ステータスが、それ以外の場合は状態が変化する原因となったシグナル番号"
5421 "が格納される。 I<si_utime> と I<si_stime> には子プロセスが使用したユーザー "
5422 "CPU 時間とシステム CPU 時間がそれぞれ格納される。(B<getrusage>(2) や "
5423 "B<times>(2) と異なり) これらのフィールドには wait 待ちの子プロセスにより使用"
5424 "された時間は含まれない。 2.6 より前と 2.6.27 以降のカーネルでは、 これらの"
5425 "フィールドに格納される CPU 時間の単位は I<sysconf(_SC_CLK_TCK)> である。 "
5426 "2.6.27 より前の 2.6 系のカーネルでは、バグがあり、 これらのフィールドの CPU "
5427 "時間の単位が (カーネルのコンフィグで指定される) システムの jiffy であった "
5428 "(B<time>(7) 参照)。"
5429
5430 #. type: Plain text
5431 #: build/C/man2/sigaction.2:458
5432 msgid ""
5433 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, and B<SIGTRAP> fill in "
5434 "I<si_addr> with the address of the fault.  On some architectures, these "
5435 "signals also fill in the I<si_trapno> field.  Some suberrors of B<SIGBUS>, "
5436 "in particular B<BUS_MCEERR_AO> and B<BUS_MCEERR_AR>, also fill in "
5437 "I<si_addr_lsb>.  This field indicates the least significant bit of the "
5438 "reported address and therefore the extent of the corruption.  For example, "
5439 "if a full page was corrupted, I<si_addr_lsb> contains "
5440 "I<log2(sysconf(_SC_PAGESIZE))>.  When B<SIGTRAP> is delivered in response to "
5441 "a B<ptrace>(2)  event (PTRACE_EVENT_foo), I<si_addr> is not populated, but "
5442 "I<si_pid> and I<si_uid> are populated with the respective process ID and "
5443 "user ID responsible for delivering the trap.  In the case of B<seccomp>(2), "
5444 "the tracee will be shown as delivering the event.  B<BUS_MCEERR_*> and "
5445 "I<si_addr_lsb> are Linux-specific extensions."
5446 msgstr ""
5447 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, B<SIGTRAP> では、 I<si_addr> に "
5448 "fault が発生したアドレスが設定される。 いくつかのアーキテクチャーでは、 これ"
5449 "らのシグナルは I<si_trapno> フィールドにも設定される。 B<SIGBUS> が発生するエ"
5450 "ラーのいくつか、特に B<BUS_MCEERR_AO> と B<BUS_MCEERR_AR> では、 "
5451 "I<si_addr_lsb> も設定される。 このフィールドは報告されるアドレスの最下位ビッ"
5452 "トを示し、 これによりメモリー破壊の程度を知ることができる。 例えば、ページ全"
5453 "体が壊れている場合には I<si_addr_lsb> には I<log2(sysconf(_SC_PAGESIZE))> が"
5454 "入る。 B<SIGTRAP> が B<ptrace>(2) イベント (PTRACE_EVENT_foo) に対応して配送"
5455 "される際、 I<si_addr> は設定されないが、 I<si_pid> と I<si_uid> にはトラップ"
5456 "の配送に責任を負うプロセス ID とユーザー ID がそれぞれ格納される。 "
5457 "B<seccomp>(2) の場合、 トレース対象はイベントを配送した元として示される。 "
5458 "B<BUS_MCEERR_*> と I<si_addr_lsb> は Linux 固有の拡張である。"
5459
5460 #. type: Plain text
5461 #: build/C/man2/sigaction.2:472
5462 msgid ""
5463 "B<SIGIO>/B<SIGPOLL> (the two names are synonyms on Linux)  fills in "
5464 "I<si_band> and I<si_fd>.  The I<si_band> event is a bit mask containing the "
5465 "same values as are filled in the I<revents> field by B<poll>(2).  The "
5466 "I<si_fd> field indicates the file descriptor for which the I/O event "
5467 "occurred."
5468 msgstr ""
5469 "B<SIGIO>/B<SIGPOLL> (2 つの名前は Linux では同義語) では I<si_band> と "
5470 "I<si_fd> が設定される。 I<si_band> イベントは、 B<poll>(2) が I<revents> "
5471 "フィールドに設定するのと同じ値が入ったビットマスクである。 I<si_fd> フィール"
5472 "ドは I/O イベントが発生したファイルディスクリプターを示す。"
5473
5474 #.  commit a0727e8ce513fe6890416da960181ceb10fbfae6
5475 #. type: Plain text
5476 #: build/C/man2/sigaction.2:485
5477 msgid ""
5478 "B<SIGSYS>, generated (since Linux 3.5)  when a seccomp filter returns "
5479 "B<SECCOMP_RET_TRAP>, fills in I<si_call_addr>, I<si_syscall>, I<si_arch>, "
5480 "I<si_errno>, and other fields as described in B<seccomp>(2)."
5481 msgstr ""
5482 "seccomp フィルターが B<SECCOMP_RET_TRAP> を返す際に (Linux 3.5 以降で) 生成さ"
5483 "れる B<SIGSYS> シグナルでは、 I<si_call_addr>, I<si_syscall>, I<si_arch>, "
5484 "I<si_arch> や B<seccomp>(2) で説明されている他のフィールドが設定される。"
5485
5486 #. type: Plain text
5487 #: build/C/man2/sigaction.2:495
5488 msgid ""
5489 "I<si_code> is a value (not a bit mask) indicating why this signal was sent.  "
5490 "For a B<ptrace>(2)  event, I<si_code> will contain B<SIGTRAP> and have the "
5491 "ptrace event in the high byte:"
5492 msgstr ""
5493 "I<si_code> は、そのシグナルが送信された理由を示す値である (ビットマスクではな"
5494 "い)。 B<ptrace>(2) イベントでは、 I<si_code> には B<SIGTRAP> が入り、 上位バ"
5495 "イトには ptrace イベントが入る。"
5496
5497 #. type: Plain text
5498 #: build/C/man2/sigaction.2:498
5499 #, no-wrap
5500 msgid "    (SIGTRAP | PTRACE_EVENT_foo E<lt>E<lt> 8).\n"
5501 msgstr "    (SIGTRAP | PTRACE_EVENT_foo E<lt>E<lt> 8).\n"
5502
5503 #. type: Plain text
5504 #: build/C/man2/sigaction.2:504
5505 msgid ""
5506 "For a regular signal, the following list shows the values which can be "
5507 "placed in I<si_code> for any signal, along with reason that the signal was "
5508 "generated."
5509 msgstr ""
5510 "通常のシグナルの場合には、 以下のリストに示す値がどのシグナルの場合でも "
5511 "I<si_code> に入りうる。シグナルが生成された理由も記載している。"
5512
5513 #. type: TP
5514 #: build/C/man2/sigaction.2:505
5515 #, no-wrap
5516 msgid "B<SI_USER>"
5517 msgstr "B<SI_USER>"
5518
5519 #. type: Plain text
5520 #: build/C/man2/sigaction.2:508
5521 msgid "B<kill>(2)."
5522 msgstr "B<kill>(2)"
5523
5524 #. type: TP
5525 #: build/C/man2/sigaction.2:508
5526 #, no-wrap
5527 msgid "B<SI_KERNEL>"
5528 msgstr "B<SI_KERNEL>"
5529
5530 #. type: Plain text
5531 #: build/C/man2/sigaction.2:511
5532 msgid "Sent by the kernel."
5533 msgstr "カーネルにより送信された"
5534
5535 #. type: TP
5536 #: build/C/man2/sigaction.2:511
5537 #, no-wrap
5538 msgid "B<SI_QUEUE>"
5539 msgstr "B<SI_QUEUE>"
5540
5541 #. type: Plain text
5542 #: build/C/man2/sigaction.2:514
5543 msgid "B<sigqueue>(3)."
5544 msgstr "B<sigqueue>(3)"
5545
5546 #. type: TP
5547 #: build/C/man2/sigaction.2:514
5548 #, no-wrap
5549 msgid "B<SI_TIMER>"
5550 msgstr "B<SI_TIMER>"
5551
5552 #. type: Plain text
5553 #: build/C/man2/sigaction.2:517
5554 msgid "POSIX timer expired."
5555 msgstr "POSIX タイマーが満了した"
5556
5557 #. type: TP
5558 #: build/C/man2/sigaction.2:517
5559 #, no-wrap
5560 msgid "B<SI_MESGQ> (since Linux 2.6.6)"
5561 msgstr "B<SI_MESGQ> (Linux 2.6.6 以降)"
5562
5563 #. type: Plain text
5564 #: build/C/man2/sigaction.2:521
5565 msgid "POSIX message queue state changed; see B<mq_notify>(3)."
5566 msgstr "POSIX メッセージキューの状態が変化した; B<mq_notify>(3) 参照"
5567
5568 #. type: TP
5569 #: build/C/man2/sigaction.2:521
5570 #, no-wrap
5571 msgid "B<SI_ASYNCIO>"
5572 msgstr "B<SI_ASYNCIO>"
5573
5574 #. type: Plain text
5575 #: build/C/man2/sigaction.2:524
5576 msgid "AIO completed."
5577 msgstr "非同期 IO (AIO) が完了した"
5578
5579 #. type: TP
5580 #: build/C/man2/sigaction.2:524
5581 #, no-wrap
5582 msgid "B<SI_SIGIO>"
5583 msgstr "B<SI_SIGIO>"
5584
5585 #. type: Plain text
5586 #: build/C/man2/sigaction.2:533
5587 msgid ""
5588 "Queued B<SIGIO> (only in kernels up to Linux 2.2; from Linux 2.4 onward "
5589 "B<SIGIO>/B<SIGPOLL> fills in I<si_code> as described below)."
5590 msgstr ""
5591 "B<SIGIO> がキューイングされた (Linux 2.2 以下のカーネルのみ; Linux 2.4 以降で"
5592 "は以下で説明する B<SIGIO>/B<SIGPOLL> の I<si_code> が入る)"
5593
5594 #. type: TP
5595 #: build/C/man2/sigaction.2:533
5596 #, no-wrap
5597 msgid "B<SI_TKILL> (since Linux 2.4.19)"
5598 msgstr "B<SI_TKILL> (Linux 2.4.19 以降)"
5599
5600 #.  SI_DETHREAD is defined in 2.6.9 sources, but isn't implemented
5601 #.  It appears to have been an idea that was tried during 2.5.6
5602 #.  through to 2.5.24 and then was backed out.
5603 #. type: Plain text
5604 #: build/C/man2/sigaction.2:541
5605 msgid "B<tkill>(2)  or B<tgkill>(2)."
5606 msgstr "B<tkill>(2) または B<tgkill>(2)"
5607
5608 #. type: Plain text
5609 #: build/C/man2/sigaction.2:548
5610 msgid ""
5611 "The following values can be placed in I<si_code> for a B<SIGILL> signal:"
5612 msgstr "B<SIGILL> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5613
5614 #. type: TP
5615 #: build/C/man2/sigaction.2:549
5616 #, no-wrap
5617 msgid "B<ILL_ILLOPC>"
5618 msgstr "B<ILL_ILLOPC>"
5619
5620 #. type: Plain text
5621 #: build/C/man2/sigaction.2:552
5622 msgid "Illegal opcode."
5623 msgstr "不正な命令コード"
5624
5625 #. type: TP
5626 #: build/C/man2/sigaction.2:552
5627 #, no-wrap
5628 msgid "B<ILL_ILLOPN>"
5629 msgstr "B<ILL_ILLOPN>"
5630
5631 #. type: Plain text
5632 #: build/C/man2/sigaction.2:555
5633 msgid "Illegal operand."
5634 msgstr "不正なオペランド"
5635
5636 #. type: TP
5637 #: build/C/man2/sigaction.2:555
5638 #, no-wrap
5639 msgid "B<ILL_ILLADR>"
5640 msgstr "B<ILL_ILLADR>"
5641
5642 #. type: Plain text
5643 #: build/C/man2/sigaction.2:558
5644 msgid "Illegal addressing mode."
5645 msgstr "不正なアドレッシングモード"
5646
5647 #. type: TP
5648 #: build/C/man2/sigaction.2:558
5649 #, no-wrap
5650 msgid "B<ILL_ILLTRP>"
5651 msgstr "B<ILL_ILLTRP>"
5652
5653 #. type: Plain text
5654 #: build/C/man2/sigaction.2:561
5655 msgid "Illegal trap."
5656 msgstr "不正なトラップ"
5657
5658 #. type: TP
5659 #: build/C/man2/sigaction.2:561
5660 #, no-wrap
5661 msgid "B<ILL_PRVOPC>"
5662 msgstr "B<ILL_PRVOPC>"
5663
5664 #. type: Plain text
5665 #: build/C/man2/sigaction.2:564
5666 msgid "Privileged opcode."
5667 msgstr "特権が必要な命令コード"
5668
5669 #. type: TP
5670 #: build/C/man2/sigaction.2:564
5671 #, no-wrap
5672 msgid "B<ILL_PRVREG>"
5673 msgstr "B<ILL_PRVREG>"
5674
5675 #. type: Plain text
5676 #: build/C/man2/sigaction.2:567
5677 msgid "Privileged register."
5678 msgstr "特権が必要なレジスター"
5679
5680 #. type: TP
5681 #: build/C/man2/sigaction.2:567
5682 #, no-wrap
5683 msgid "B<ILL_COPROC>"
5684 msgstr "B<ILL_COPROC>"
5685
5686 #. type: Plain text
5687 #: build/C/man2/sigaction.2:570
5688 msgid "Coprocessor error."
5689 msgstr "コプロセッサのエラー"
5690
5691 #. type: TP
5692 #: build/C/man2/sigaction.2:570
5693 #, no-wrap
5694 msgid "B<ILL_BADSTK>"
5695 msgstr "B<ILL_BADSTK>"
5696
5697 #. type: Plain text
5698 #: build/C/man2/sigaction.2:573
5699 msgid "Internal stack error."
5700 msgstr "内部スタックエラー"
5701
5702 #. type: Plain text
5703 #: build/C/man2/sigaction.2:580
5704 msgid ""
5705 "The following values can be placed in I<si_code> for a B<SIGFPE> signal:"
5706 msgstr "B<SIGFPE> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5707
5708 #. type: TP
5709 #: build/C/man2/sigaction.2:581
5710 #, no-wrap
5711 msgid "B<FPE_INTDIV>"
5712 msgstr "B<FPE_INTDIV>"
5713
5714 #. type: Plain text
5715 #: build/C/man2/sigaction.2:584
5716 msgid "Integer divide by zero."
5717 msgstr "整数の 0 による除算"
5718
5719 #. type: TP
5720 #: build/C/man2/sigaction.2:584
5721 #, no-wrap
5722 msgid "B<FPE_INTOVF>"
5723 msgstr "B<FPE_INTOVF>"
5724
5725 #. type: Plain text
5726 #: build/C/man2/sigaction.2:587
5727 msgid "Integer overflow."
5728 msgstr "整数のオーバーフロー"
5729
5730 #. type: TP
5731 #: build/C/man2/sigaction.2:587
5732 #, no-wrap
5733 msgid "B<FPE_FLTDIV>"
5734 msgstr "B<FPE_FLTDIV>"
5735
5736 #. type: Plain text
5737 #: build/C/man2/sigaction.2:590
5738 msgid "Floating-point divide by zero."
5739 msgstr "浮動小数点の 0 による除算"
5740
5741 #. type: TP
5742 #: build/C/man2/sigaction.2:590
5743 #, no-wrap
5744 msgid "B<FPE_FLTOVF>"
5745 msgstr "B<FPE_FLTOVF>"
5746
5747 #. type: Plain text
5748 #: build/C/man2/sigaction.2:593
5749 msgid "Floating-point overflow."
5750 msgstr "浮動小数点のオーバーフロー"
5751
5752 #. type: TP
5753 #: build/C/man2/sigaction.2:593
5754 #, no-wrap
5755 msgid "B<FPE_FLTUND>"
5756 msgstr "B<FPE_FLTUND>"
5757
5758 #. type: Plain text
5759 #: build/C/man2/sigaction.2:596
5760 msgid "Floating-point underflow."
5761 msgstr "浮動小数点のアンダーフロー"
5762
5763 #. type: TP
5764 #: build/C/man2/sigaction.2:596
5765 #, no-wrap
5766 msgid "B<FPE_FLTRES>"
5767 msgstr "B<FPE_FLTRES>"
5768
5769 #. type: Plain text
5770 #: build/C/man2/sigaction.2:599
5771 msgid "Floating-point inexact result."
5772 msgstr "浮動小数点の不正確な演算結果 (inexact result)"
5773
5774 #. type: TP
5775 #: build/C/man2/sigaction.2:599
5776 #, no-wrap
5777 msgid "B<FPE_FLTINV>"
5778 msgstr "B<FPE_FLTINV>"
5779
5780 #. type: Plain text
5781 #: build/C/man2/sigaction.2:602
5782 msgid "Floating-point invalid operation."
5783 msgstr "浮動小数点の不正な操作"
5784
5785 #. type: TP
5786 #: build/C/man2/sigaction.2:602
5787 #, no-wrap
5788 msgid "B<FPE_FLTSUB>"
5789 msgstr "B<FPE_FLTSUB>"
5790
5791 #. type: Plain text
5792 #: build/C/man2/sigaction.2:605
5793 msgid "Subscript out of range."
5794 msgstr "範囲外の添字 (subscript)"
5795
5796 #. type: Plain text
5797 #: build/C/man2/sigaction.2:612
5798 msgid ""
5799 "The following values can be placed in I<si_code> for a B<SIGSEGV> signal:"
5800 msgstr "B<SIGSEGV> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5801
5802 #. type: TP
5803 #: build/C/man2/sigaction.2:613
5804 #, no-wrap
5805 msgid "B<SEGV_MAPERR>"
5806 msgstr "B<SEGV_MAPERR>"
5807
5808 #. type: Plain text
5809 #: build/C/man2/sigaction.2:616
5810 msgid "Address not mapped to object."
5811 msgstr "オブジェクトにマッピングされていないアドレス"
5812
5813 #. type: TP
5814 #: build/C/man2/sigaction.2:616
5815 #, no-wrap
5816 msgid "B<SEGV_ACCERR>"
5817 msgstr "B<SEGV_ACCERR>"
5818
5819 #. type: Plain text
5820 #: build/C/man2/sigaction.2:619
5821 msgid "Invalid permissions for mapped object."
5822 msgstr "マッピングされたオブジェクトに対するアクセス許可がない"
5823
5824 #. type: Plain text
5825 #: build/C/man2/sigaction.2:626
5826 msgid ""
5827 "The following values can be placed in I<si_code> for a B<SIGBUS> signal:"
5828 msgstr "B<SIGBUS> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5829
5830 #. type: TP
5831 #: build/C/man2/sigaction.2:627
5832 #, no-wrap
5833 msgid "B<BUS_ADRALN>"
5834 msgstr "B<BUS_ADRALN>"
5835
5836 #. type: Plain text
5837 #: build/C/man2/sigaction.2:630
5838 msgid "Invalid address alignment."
5839 msgstr "不正なアドレスアライメント (alignment)"
5840
5841 #. type: TP
5842 #: build/C/man2/sigaction.2:630
5843 #, no-wrap
5844 msgid "B<BUS_ADRERR>"
5845 msgstr "B<BUS_ADRERR>"
5846
5847 #. type: Plain text
5848 #: build/C/man2/sigaction.2:633
5849 msgid "Nonexistent physical address."
5850 msgstr "存在しない物理アドレス"
5851
5852 #. type: TP
5853 #: build/C/man2/sigaction.2:633
5854 #, no-wrap
5855 msgid "B<BUS_OBJERR>"
5856 msgstr "B<BUS_OBJERR>"
5857
5858 #. type: Plain text
5859 #: build/C/man2/sigaction.2:636
5860 msgid "Object-specific hardware error."
5861 msgstr "オブジェクト固有のハードウェアエラー"
5862
5863 #. type: TP
5864 #: build/C/man2/sigaction.2:636
5865 #, no-wrap
5866 msgid "B<BUS_MCEERR_AR> (since Linux 2.6.32)"
5867 msgstr "B<BUS_MCEERR_AR> (Linux 2.6.32 以降)"
5868
5869 #. type: Plain text
5870 #: build/C/man2/sigaction.2:639
5871 msgid "Hardware memory error consumed on a machine check; action required."
5872 msgstr ""
5873 "マシンチェックで使用中のハードウェアメモリーのエラーが検出された。対応が必"
5874 "須。"
5875
5876 #. type: TP
5877 #: build/C/man2/sigaction.2:639
5878 #, no-wrap
5879 msgid "B<BUS_MCEERR_AO> (since Linux 2.6.32)"
5880 msgstr "B<BUS_MCEERR_AO> (Linux 2.6.32  以降)"
5881
5882 #. type: Plain text
5883 #: build/C/man2/sigaction.2:642
5884 msgid ""
5885 "Hardware memory error detected in process but not consumed; action optional."
5886 msgstr ""
5887 "実行中にハードウェアメモリーエラーが検出されたが、使用中のメモリーではない。"
5888 "対応は必須ではない。"
5889
5890 #. type: Plain text
5891 #: build/C/man2/sigaction.2:649
5892 msgid ""
5893 "The following values can be placed in I<si_code> for a B<SIGTRAP> signal:"
5894 msgstr "B<SIGTRAP> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5895
5896 #. type: TP
5897 #: build/C/man2/sigaction.2:650
5898 #, no-wrap
5899 msgid "B<TRAP_BRKPT>"
5900 msgstr "B<TRAP_BRKPT>"
5901
5902 #. type: Plain text
5903 #: build/C/man2/sigaction.2:653
5904 msgid "Process breakpoint."
5905 msgstr "プロセスのブレークポイント"
5906
5907 #. type: TP
5908 #: build/C/man2/sigaction.2:653
5909 #, no-wrap
5910 msgid "B<TRAP_TRACE>"
5911 msgstr "B<TRAP_TRACE>"
5912
5913 #. type: Plain text
5914 #: build/C/man2/sigaction.2:656
5915 msgid "Process trace trap."
5916 msgstr "プロセスのトレーストラップ"
5917
5918 #. type: TP
5919 #: build/C/man2/sigaction.2:656
5920 #, no-wrap
5921 msgid "B<TRAP_BRANCH> (since Linux 2.4)"
5922 msgstr "B<TRAP_BRANCH> (Linux 2.4 以降)"
5923
5924 #. type: Plain text
5925 #: build/C/man2/sigaction.2:659
5926 msgid "Process taken branch trap."
5927 msgstr "プロセスのブランチトラップ"
5928
5929 #. type: TP
5930 #: build/C/man2/sigaction.2:659
5931 #, no-wrap
5932 msgid "B<TRAP_HWBKPT> (since Linux 2.4)"
5933 msgstr "B<TRAP_HWBKPT> (Linux 2.4 以降)"
5934
5935 #. type: Plain text
5936 #: build/C/man2/sigaction.2:662
5937 msgid "Hardware breakpoint/watchpoint."
5938 msgstr "ハードウェアのブレークポイント/ウォッチポイント"
5939
5940 #. type: Plain text
5941 #: build/C/man2/sigaction.2:669
5942 msgid ""
5943 "The following values can be placed in I<si_code> for a B<SIGCHLD> signal:"
5944 msgstr "B<SIGCHLD> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5945
5946 #. type: TP
5947 #: build/C/man2/sigaction.2:670
5948 #, no-wrap
5949 msgid "B<CLD_EXITED>"
5950 msgstr "B<CLD_EXITED>"
5951
5952 #. type: Plain text
5953 #: build/C/man2/sigaction.2:673
5954 msgid "Child has exited."
5955 msgstr "子プロセスが終了した (exited)"
5956
5957 #. type: TP
5958 #: build/C/man2/sigaction.2:673
5959 #, no-wrap
5960 msgid "B<CLD_KILLED>"
5961 msgstr "B<CLD_KILLED>"
5962
5963 #. type: Plain text
5964 #: build/C/man2/sigaction.2:676
5965 msgid "Child was killed."
5966 msgstr "子プロセスが kill された"
5967
5968 #. type: TP
5969 #: build/C/man2/sigaction.2:676
5970 #, no-wrap
5971 msgid "B<CLD_DUMPED>"
5972 msgstr "B<CLD_DUMPED>"
5973
5974 #. type: Plain text
5975 #: build/C/man2/sigaction.2:679
5976 msgid "Child terminated abnormally."
5977 msgstr "子プロセスが異常終了した"
5978
5979 #. type: TP
5980 #: build/C/man2/sigaction.2:679
5981 #, no-wrap
5982 msgid "B<CLD_TRAPPED>"
5983 msgstr "B<CLD_TRAPPED>"
5984
5985 #. type: Plain text
5986 #: build/C/man2/sigaction.2:682
5987 msgid "Traced child has trapped."
5988 msgstr "トレース対象の子プロセスがトラップを上げた"
5989
5990 #. type: TP
5991 #: build/C/man2/sigaction.2:682
5992 #, no-wrap
5993 msgid "B<CLD_STOPPED>"
5994 msgstr "B<CLD_STOPPED>"
5995
5996 #. type: Plain text
5997 #: build/C/man2/sigaction.2:685
5998 msgid "Child has stopped."
5999 msgstr "子プロセスが停止 (stop) した"
6000
6001 #. type: TP
6002 #: build/C/man2/sigaction.2:685
6003 #, no-wrap
6004 msgid "B<CLD_CONTINUED> (since Linux 2.6.9)"
6005 msgstr "B<CLD_CONTINUED> (Linux 2.6.9 以降)"
6006
6007 #. type: Plain text
6008 #: build/C/man2/sigaction.2:688
6009 msgid "Stopped child has continued."
6010 msgstr "停止していた子プロセスが再開した"
6011
6012 #. type: Plain text
6013 #: build/C/man2/sigaction.2:695
6014 msgid ""
6015 "The following values can be placed in I<si_code> for a B<SIGIO>/B<SIGPOLL> "
6016 "signal:"
6017 msgstr ""
6018 "B<SIGIO>/B<SIGPOLL> シグナルの場合、 I<si_code> には以下の値が入る可能性があ"
6019 "る:"
6020
6021 #. type: TP
6022 #: build/C/man2/sigaction.2:696
6023 #, no-wrap
6024 msgid "B<POLL_IN>"
6025 msgstr "B<POLL_IN>"
6026
6027 #. type: Plain text
6028 #: build/C/man2/sigaction.2:699
6029 msgid "Data input available."
6030 msgstr "入力データが利用可能"
6031
6032 #. type: TP
6033 #: build/C/man2/sigaction.2:699
6034 #, no-wrap
6035 msgid "B<POLL_OUT>"
6036 msgstr "B<POLL_OUT>"
6037
6038 #. type: Plain text
6039 #: build/C/man2/sigaction.2:702
6040 msgid "Output buffers available."
6041 msgstr "出力バッファーが利用可能"
6042
6043 #. type: TP
6044 #: build/C/man2/sigaction.2:702
6045 #, no-wrap
6046 msgid "B<POLL_MSG>"
6047 msgstr "B<POLL_MSG>"
6048
6049 #. type: Plain text
6050 #: build/C/man2/sigaction.2:705
6051 msgid "Input message available."
6052 msgstr "入力メッセージが利用可能"
6053
6054 #. type: TP
6055 #: build/C/man2/sigaction.2:705
6056 #, no-wrap
6057 msgid "B<POLL_ERR>"
6058 msgstr "B<POLL_ERR>"
6059
6060 #. type: Plain text
6061 #: build/C/man2/sigaction.2:708
6062 msgid "I/O error."
6063 msgstr "I/O エラー"
6064
6065 #. type: TP
6066 #: build/C/man2/sigaction.2:708
6067 #, no-wrap
6068 msgid "B<POLL_PRI>"
6069 msgstr "B<POLL_PRI>"
6070
6071 #. type: Plain text
6072 #: build/C/man2/sigaction.2:711
6073 msgid "High priority input available."
6074 msgstr "高優先の入力が利用可能"
6075
6076 #. type: TP
6077 #: build/C/man2/sigaction.2:711
6078 #, no-wrap
6079 msgid "B<POLL_HUP>"
6080 msgstr "B<POLL_HUP>"
6081
6082 #. type: Plain text
6083 #: build/C/man2/sigaction.2:714
6084 msgid "Device disconnected."
6085 msgstr "デバイスが接続されていない"
6086
6087 #. type: Plain text
6088 #: build/C/man2/sigaction.2:721
6089 msgid "The following value can be placed in I<si_code> for a B<SIGSYS> signal:"
6090 msgstr "B<SIGSYS> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
6091
6092 #. type: TP
6093 #: build/C/man2/sigaction.2:722
6094 #, no-wrap
6095 msgid "B<SYS_SECCOMP> (since Linux 3.5)"
6096 msgstr "B<SYS_SECCOMP> (Linux 3.5 以降)"
6097
6098 #. type: Plain text
6099 #: build/C/man2/sigaction.2:727
6100 msgid "Triggered by a B<seccomp>(2)  filter rule."
6101 msgstr "B<seccomp>(2) のフィルタールールによる配送された"
6102
6103 #. type: Plain text
6104 #: build/C/man2/sigaction.2:733
6105 msgid ""
6106 "B<sigaction>()  returns 0 on success; on error, -1 is returned, and I<errno> "
6107 "is set to indicate the error."
6108 msgstr ""
6109 "B<sigaction>() 関数は成功すると 0 を返す。 エラーの場合、-1 を返し、 "
6110 "I<errno> にエラーを示す値をセットする。"
6111
6112 #. type: Plain text
6113 #: build/C/man2/sigaction.2:738
6114 msgid ""
6115 "I<act> or I<oldact> points to memory which is not a valid part of the "
6116 "process address space."
6117 msgstr ""
6118 "I<act> か I<oldact> が指しているメモリーが正しいプロセスのアドレス空間にな"
6119 "い。"
6120
6121 #. type: Plain text
6122 #: build/C/man2/sigaction.2:745
6123 msgid ""
6124 "An invalid signal was specified.  This will also be generated if an attempt "
6125 "is made to change the action for B<SIGKILL> or B<SIGSTOP>, which cannot be "
6126 "caught or ignored."
6127 msgstr ""
6128 "無効なシグナルが指定された。補足 (catch) したり無視したりできない シグナルで"
6129 "ある B<SIGKILL> や B<SIGSTOP> に対する動作を変更しようとした場合にも発生す"
6130 "る。"
6131
6132 #.  SVr4 does not document the EINTR condition.
6133 #. type: Plain text
6134 #: build/C/man2/sigaction.2:748
6135 msgid "POSIX.1-2001, SVr4."
6136 msgstr "POSIX.1-2001, SVr4."
6137
6138 #. type: Plain text
6139 #: build/C/man2/sigaction.2:756 build/C/man7/signal.7:105
6140 msgid ""
6141 "A child created via B<fork>(2)  inherits a copy of its parent's signal "
6142 "dispositions.  During an B<execve>(2), the dispositions of handled signals "
6143 "are reset to the default; the dispositions of ignored signals are left "
6144 "unchanged."
6145 msgstr ""
6146 "B<fork>(2) 経由で作成された子プロセスは、親プロセスのシグナルの処理方法の コ"
6147 "ピーを継承する。 B<execve>(2) の前後で、ハンドラーが設定されているシグナルの"
6148 "処理方法はデフォルトにリセットされ、 無視が設定されているシグナルの処理方法は"
6149 "変更されずそのままとなる。"
6150
6151 #. type: Plain text
6152 #: build/C/man2/sigaction.2:774 build/C/man2/signal.2:134
6153 msgid ""
6154 "According to POSIX, the behavior of a process is undefined after it ignores "
6155 "a B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> signal that was not generated by "
6156 "B<kill>(2)  or B<raise>(3).  Integer division by zero has undefined result.  "
6157 "On some architectures it will generate a B<SIGFPE> signal.  (Also dividing "
6158 "the most negative integer by -1 may generate B<SIGFPE>.)  Ignoring this "
6159 "signal might lead to an endless loop."
6160 msgstr ""
6161 "POSIX では、 B<kill>(2)  や B<raise>(3)  で生成できないシグナル B<SIGFPE>, "
6162 "B<SIGILL>, B<SIGSEGV> を無視 (ignore) した場合、その後の動作は未定義である。 "
6163 "ゼロによる整数割り算の結果は未定義となる。 アーキテクチャーによっては、このと"
6164 "き B<SIGFPE> シグナルが生成される。 (同様に負の最大整数を -1 で割ると "
6165 "B<SIGFPE> が生成されるかもしれない)  このシグナルを無視すると無限ループに陥る"
6166 "かもしれない。"
6167
6168 #. type: Plain text
6169 #: build/C/man2/sigaction.2:791
6170 msgid ""
6171 "POSIX.1-1990 disallowed setting the action for B<SIGCHLD> to B<SIG_IGN>.  "
6172 "POSIX.1-2001 allows this possibility, so that ignoring B<SIGCHLD> can be "
6173 "used to prevent the creation of zombies (see B<wait>(2)).  Nevertheless, the "
6174 "historical BSD and System\\ V behaviors for ignoring B<SIGCHLD> differ, so "
6175 "that the only completely portable method of ensuring that terminated "
6176 "children do not become zombies is to catch the B<SIGCHLD> signal and perform "
6177 "a B<wait>(2)  or similar."
6178 msgstr ""
6179 "POSIX.1-1990 では B<SIGCHLD> に B<SIG_IGN> を設定することを認めていない。 "
6180 "POSIX.1-2001 では認められており、 B<SIGCHLD> を無視することでゾンビプロセスの"
6181 "生成を防止することができる (B<wait>(2)  を参照)。 さらに、BSD と System\\ V "
6182 "では B<SIGCHLD> を無視した際の動作が異なっている。 そのため、完全に移植性があ"
6183 "る方法で、終了した子プロセスがゾンビにならないこと を保証するには、 "
6184 "B<SIGCHLD> シグナルを補足し、 B<wait>(2)  などを実行するしかない。"
6185
6186 #. type: Plain text
6187 #: build/C/man2/sigaction.2:804
6188 msgid ""
6189 "POSIX.1-1990 specified only B<SA_NOCLDSTOP>.  POSIX.1-2001 added "
6190 "B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, and B<SA_SIGINFO>.  Use of "
6191 "these latter values in I<sa_flags> may be less portable in applications "
6192 "intended for older UNIX implementations."
6193 msgstr ""
6194 "POSIX.1-1990 の仕様では B<SA_NOCLDSTOP> のみが定義されている。 POSIX.1-2001 "
6195 "では B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, B<SA_SIGINFO> が追加さ"
6196 "れた。 UNIX の古い実装で動かすアプリケーションで、 他の I<sa_flags> フラグを"
6197 "使用すると移植性が下がる。"
6198
6199 #. type: Plain text
6200 #: build/C/man2/sigaction.2:808
6201 msgid ""
6202 "The B<SA_RESETHAND> flag is compatible with the SVr4 flag of the same name."
6203 msgstr "B<SA_RESETHAND> フラグは SVr4 の同じ名前のフラグと互換性がある。"
6204
6205 #. type: Plain text
6206 #: build/C/man2/sigaction.2:818
6207 msgid ""
6208 "The B<SA_NODEFER> flag is compatible with the SVr4 flag of the same name "
6209 "under kernels 1.3.9 and newer.  On older kernels the Linux implementation "
6210 "allowed the receipt of any signal, not just the one we are installing "
6211 "(effectively overriding any I<sa_mask> settings)."
6212 msgstr ""
6213 "B<SA_NODEFER> フラグは 1.3.9 以降のカーネルでは同じ名前の SVr4 のフラグと互換"
6214 "性がある。 ぞれ以前の Linux カーネルの実装では、このフラグを設定しているシグ"
6215 "ナル だけでなく、どのシグナルでも受けることを許していた (実際には I<sa_mask> "
6216 "の設定により無効にできる)。"
6217
6218 #. type: Plain text
6219 #: build/C/man2/sigaction.2:824
6220 msgid ""
6221 "B<sigaction>()  can be called with a NULL second argument to query the "
6222 "current signal handler.  It can also be used to check whether a given signal "
6223 "is valid for the current machine by calling it with NULL second and third "
6224 "arguments."
6225 msgstr ""
6226 "B<sigaction>()  の二番目の引き数に NULL を指定して呼び出すと、現在のシグナル"
6227 "ハンドラーを確認する ことができる。また、二番目と三番目の引き数を NULL にて呼"
6228 "び出すことで、 指定されたシグナルが現在のマシンで使えるかどうかチェックでき"
6229 "る。"
6230
6231 #. type: Plain text
6232 #: build/C/man2/sigaction.2:830
6233 msgid ""
6234 "It is not possible to block B<SIGKILL> or B<SIGSTOP> (by specifying them in "
6235 "I<sa_mask>).  Attempts to do so are silently ignored."
6236 msgstr ""
6237 "B<SIGKILL> や B<SIGSTOP> を (I<sa_mask> に指定して) 禁止することはできない。 "
6238 "禁止しようとしても黙って無視される。"
6239
6240 #. type: Plain text
6241 #: build/C/man2/sigaction.2:834 build/C/man2/sigpending.2:70
6242 #: build/C/man2/sigprocmask.2:144 build/C/man2/sigsuspend.2:108
6243 msgid "See B<sigsetops>(3)  for details on manipulating signal sets."
6244 msgstr "シグナル集合の操作に関する詳細は B<sigsetops>(3)  を参照のこと。"
6245
6246 #. type: Plain text
6247 #: build/C/man2/sigaction.2:839
6248 msgid ""
6249 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
6250 "safely called inside from inside a signal handler."
6251 msgstr ""
6252 "シグナルハンドラー内から安全に呼び出すことができる、 async-signal-safe "
6253 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
6254 "照。"
6255
6256 #. type: SS
6257 #: build/C/man2/sigaction.2:839
6258 #, no-wrap
6259 msgid "Undocumented"
6260 msgstr "非公式"
6261
6262 #. type: Plain text
6263 #: build/C/man2/sigaction.2:849
6264 msgid ""
6265 "Before the introduction of B<SA_SIGINFO> it was also possible to get some "
6266 "additional information, namely by using a I<sa_handler> with second argument "
6267 "of type I<struct sigcontext>.  See the relevant Linux kernel sources for "
6268 "details.  This use is obsolete now."
6269 msgstr ""
6270 "B<SA_SIGINFO> が導入される前は、 I<struct sigcontext> 型の二番目の引き数と一"
6271 "緒に I<sa_handler> を使用することで、 いくつかの追加の情報を入手することがで"
6272 "きた。 詳細については Linux カーネルソースの関連部分を見てほしい。 現在はこの"
6273 "使用法は廃止されている。"
6274
6275 #. type: Plain text
6276 #: build/C/man2/sigaction.2:858
6277 msgid ""
6278 "In kernels up to and including 2.6.13, specifying B<SA_NODEFER> in "
6279 "I<sa_flags> prevents not only the delivered signal from being masked during "
6280 "execution of the handler, but also the signals specified in I<sa_mask>.  "
6281 "This bug was fixed in kernel 2.6.14."
6282 msgstr ""
6283 "2.6.13 以前のカーネルでは、 I<sa_flags> に B<SA_NODEFER> を指定した場合、 ハ"
6284 "ンドラーが実行中に配送されたシグナル自身がマスクされなくなるだけでなく、 "
6285 "I<sa_mask> に指定されたシグナルもマスクされなくなる。 このバグは、カーネル "
6286 "2.6.14 で修正された。"
6287
6288 #. type: Plain text
6289 #: build/C/man2/sigaction.2:861
6290 msgid "See B<mprotect>(2)."
6291 msgstr "B<mprotect>(2)  参照。"
6292
6293 #. type: Plain text
6294 #: build/C/man2/sigaction.2:883
6295 msgid ""
6296 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
6297 "B<seccomp>(2)  B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), "
6298 "B<sigpending>(2), B<sigreturn>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6299 "B<wait>(2), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6300 "B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
6301 msgstr ""
6302 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
6303 "B<seccomp>(2)  B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), "
6304 "B<sigpending>(2), B<sigreturn>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6305 "B<wait>(2), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6306 "B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
6307
6308 #. type: TH
6309 #: build/C/man2/sigaltstack.2:27
6310 #, no-wrap
6311 msgid "SIGALTSTACK"
6312 msgstr "SIGALTSTACK"
6313
6314 #. type: TH
6315 #: build/C/man2/sigaltstack.2:27
6316 #, no-wrap
6317 msgid "2010-09-26"
6318 msgstr "2010-09-26"
6319
6320 #. type: Plain text
6321 #: build/C/man2/sigaltstack.2:30
6322 msgid "sigaltstack - set and/or get signal stack context"
6323 msgstr "sigaltstack - シグナルスタックのコンテキストを設定・取得する"
6324
6325 #. type: Plain text
6326 #: build/C/man2/sigaltstack.2:34
6327 msgid "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
6328 msgstr "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
6329
6330 #. type: Plain text
6331 #: build/C/man2/sigaltstack.2:41
6332 msgid "B<sigaltstack>():"
6333 msgstr "B<sigaltstack>():"
6334
6335 #. type: Plain text
6336 #: build/C/man2/sigaltstack.2:48 build/C/man3/siginterrupt.3:53
6337 #: build/C/man2/wait.2:80
6338 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
6339 msgstr "|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
6340
6341 #. type: Plain text
6342 #: build/C/man2/sigaltstack.2:60
6343 msgid ""
6344 "B<sigaltstack>()  allows a process to define a new alternate signal stack "
6345 "and/or retrieve the state of an existing alternate signal stack.  An "
6346 "alternate signal stack is used during the execution of a signal handler if "
6347 "the establishment of that handler (see B<sigaction>(2))  requested it."
6348 msgstr ""
6349 "B<sigaltstack>()  を使うと、 プロセスは新しい代替シグナルスタックを定義した"
6350 "り、 既存の代替シグナルスタックの状態を取得できる。 シグナルハンドラーが代替"
6351 "シグナルスタックを要求するように設定されていると (B<sigaction>(2)  参照)、ハ"
6352 "ンドラーの実行中はそのシグナルスタックが使われる。"
6353
6354 #. type: Plain text
6355 #: build/C/man2/sigaltstack.2:63
6356 msgid ""
6357 "The normal sequence of events for using an alternate signal stack is the "
6358 "following:"
6359 msgstr "代替シグナルスタックを使う際の一般的な手順は、以下の通りである:"
6360
6361 #. type: IP
6362 #: build/C/man2/sigaltstack.2:63 build/C/man7/signal.7:387
6363 #, no-wrap
6364 msgid "1."
6365 msgstr "1."
6366
6367 #. type: Plain text
6368 #: build/C/man2/sigaltstack.2:67
6369 msgid "Allocate an area of memory to be used for the alternate signal stack."
6370 msgstr "代替シグナルスタックで使うメモリー領域を確保する。"
6371
6372 #. type: IP
6373 #: build/C/man2/sigaltstack.2:67 build/C/man7/signal.7:391
6374 #, no-wrap
6375 msgid "2."
6376 msgstr "2."
6377
6378 #. type: Plain text
6379 #: build/C/man2/sigaltstack.2:73
6380 msgid ""
6381 "Use B<sigaltstack>()  to inform the system of the existence and location of "
6382 "the alternate signal stack."
6383 msgstr ""
6384 "B<sigaltstack>()  を使って、 代替シグナルスタックの存在と場所をシステムに知ら"
6385 "せる。"
6386
6387 #. type: IP
6388 #: build/C/man2/sigaltstack.2:73 build/C/man7/signal.7:411
6389 #, no-wrap
6390 msgid "3."
6391 msgstr "3."
6392
6393 #. type: Plain text
6394 #: build/C/man2/sigaltstack.2:80
6395 msgid ""
6396 "When establishing a signal handler using B<sigaction>(2), inform the system "
6397 "that the signal handler should be executed on the alternate signal stack by "
6398 "specifying the B<SA_ONSTACK> flag."
6399 msgstr ""
6400 "B<sigaction>(2)  を使ってシグナルハンドラーを確立する際、 B<SA_ONSTACK> フラ"
6401 "グを指定することにより、 そのシグナルハンドラーを代替シグナルスタック上で実行"
6402 "することを システムに知らせる。"
6403
6404 #. type: Plain text
6405 #: build/C/man2/sigaltstack.2:88
6406 msgid ""
6407 "The I<ss> argument is used to specify a new alternate signal stack, while "
6408 "the I<oss> argument is used to retrieve information about the currently "
6409 "established signal stack.  If we are interested in performing just one of "
6410 "these tasks, then the other argument can be specified as NULL.  Each of "
6411 "these arguments is a structure of the following type:"
6412 msgstr ""
6413 "I<ss> 引き数は、新しいシグナルスタックを指定するために使う。 また I<oss> 引き"
6414 "数は、現在確立されている シグナルスタックの情報を取得するために使う。 この操"
6415 "作のうち 1 つだけを実行させるには、 使用しない引き数を NULL に指定すればよ"
6416 "い。 引き数となる構造体は、以下のような型である:"
6417
6418 #. type: Plain text
6419 #: build/C/man2/sigaltstack.2:96
6420 #, no-wrap
6421 msgid ""
6422 "typedef struct {\n"
6423 "    void  *ss_sp;     /* Base address of stack */\n"
6424 "    int    ss_flags;  /* Flags */\n"
6425 "    size_t ss_size;   /* Number of bytes in stack */\n"
6426 "} stack_t;\n"
6427 msgstr ""
6428 "typedef struct {\n"
6429 "    void  *ss_sp;     /* スタックのベースアドレス */\n"
6430 "    int    ss_flags;  /* フラグ */\n"
6431 "    size_t ss_size;   /* スタックのバイト数 */\n"
6432 "} stack_t;\n"
6433
6434 #. type: Plain text
6435 #: build/C/man2/sigaltstack.2:107
6436 msgid ""
6437 "To establish a new alternate signal stack, I<ss.ss_flags> is set to zero, "
6438 "and I<ss.ss_sp> and I<ss.ss_size> specify the starting address and size of "
6439 "the stack.  The constant B<SIGSTKSZ> is defined to be large enough to cover "
6440 "the usual size requirements for an alternate signal stack, and the constant "
6441 "B<MINSIGSTKSZ> defines the minimum size required to execute a signal handler."
6442 msgstr ""
6443 "新規の代替シグナルスタックを確立するには、 I<ss.ss_flags> を 0 に設定し、 "
6444 "I<ss.ss_sp> と I<ss.ss_size> に スタックの開始アドレスとスタックサイズを指定"
6445 "する。 定数 B<SIGSTKSZ> は、代替シグナルスタックが通常必要する サイズよりも充"
6446 "分大きく定義されている。 また定数 B<MINSIGSTKSZ> は、 シグナルハンドラーの実"
6447 "行に必要な最小サイズに定義されている。"
6448
6449 #. type: Plain text
6450 #: build/C/man2/sigaltstack.2:111
6451 msgid ""
6452 "When a signal handler is invoked on the alternate stack, the kernel "
6453 "automatically aligns the address given in I<ss.ss_sp> to a suitable address "
6454 "boundary for the underlying hardware architecture."
6455 msgstr ""
6456 "代替スタックでシグナルハンドラーが起動された場合には、 カーネルにより自動的"
6457 "に、I<ss.ss_sp> で指定されたアドレスは 動作しているハードウェアアーキテク"
6458 "チャーに適したアドレス境界に 調整される。"
6459
6460 #. type: Plain text
6461 #: build/C/man2/sigaltstack.2:116
6462 msgid ""
6463 "To disable an existing stack, specify I<ss.ss_flags> as B<SS_DISABLE>.  In "
6464 "this case, the remaining fields in I<ss> are ignored."
6465 msgstr ""
6466 "既存のスタックを無効にするには、 I<ss.ss_flags> を B<SS_DISABLE> に指定す"
6467 "る。 この場合、I<ss> の他のフィールドは無視される。"
6468
6469 #. type: Plain text
6470 #: build/C/man2/sigaltstack.2:124
6471 msgid ""
6472 "If I<oss> is not NULL, then it is used to return information about the "
6473 "alternate signal stack which was in effect prior to the call to "
6474 "B<sigaltstack>().  The I<oss.ss_sp> and I<oss.ss_size> fields return the "
6475 "starting address and size of that stack.  The I<oss.ss_flags> may return "
6476 "either of the following values:"
6477 msgstr ""
6478 "I<oss> が NULL 以外の場合、 I<oss> に代替シグナルスタックの情報が返される。 "
6479 "これは (実質的に)  B<sigaltstack>()  の呼び出しより先に行われる。 I<oss."
6480 "ss_sp> と I<oss.ss_size> フィールドに スタックの開始アドレスとスタックサイズ"
6481 "が返される。 I<oss.ss_flags> には以下のどちらかの値が返される:"
6482
6483 #. type: TP
6484 #: build/C/man2/sigaltstack.2:124
6485 #, no-wrap
6486 msgid "B<SS_ONSTACK>"
6487 msgstr "B<SS_ONSTACK>"
6488
6489 #. type: Plain text
6490 #: build/C/man2/sigaltstack.2:130
6491 msgid ""
6492 "The process is currently executing on the alternate signal stack.  (Note "
6493 "that it is not possible to change the alternate signal stack if the process "
6494 "is currently executing on it.)"
6495 msgstr ""
6496 "プロセスが代替シグナルスタック上で実行されている (プロセスが既にそのシグナル"
6497 "スタック上で実行されている場合は、 それと同じシグナルスタックには変更できない"
6498 "点に注意すること)。"
6499
6500 #. type: TP
6501 #: build/C/man2/sigaltstack.2:130
6502 #, no-wrap
6503 msgid "B<SS_DISABLE>"
6504 msgstr "B<SS_DISABLE>"
6505
6506 #. type: Plain text
6507 #: build/C/man2/sigaltstack.2:133
6508 msgid "The alternate signal stack is currently disabled."
6509 msgstr "代替シグナルスタックが現在無効になっている。"
6510
6511 #. type: Plain text
6512 #: build/C/man2/sigaltstack.2:137
6513 msgid ""
6514 "B<sigaltstack>()  returns 0 on success, or -1 on failure with I<errno> set "
6515 "to indicate the error."
6516 msgstr ""
6517 "B<sigaltstack>()  は成功した場合 0 を返す。 失敗した場合は -1 を返して、 エ"
6518 "ラーを示す値に I<errno> を設定する。"
6519
6520 #. type: Plain text
6521 #: build/C/man2/sigaltstack.2:142
6522 msgid ""
6523 "Either I<ss> or I<oss> is not NULL and points to an area outside of the "
6524 "process's address space."
6525 msgstr ""
6526 "I<ss> または I<oss> のどちらが、NULL 以外で、 かつプロセスのアドレス空間の外"
6527 "を指している。"
6528
6529 #. type: Plain text
6530 #: build/C/man2/sigaltstack.2:147
6531 msgid ""
6532 "I<ss> is not NULL and the I<ss_flags> field contains a nonzero value other "
6533 "than B<SS_DISABLE>."
6534 msgstr ""
6535 "I<ss> が NULL 以外で、I<ss_flags> フィールドが B<SS_DISABLE> 以外の 0 でない"
6536 "値になっている。"
6537
6538 #. type: Plain text
6539 #: build/C/man2/sigaltstack.2:153
6540 msgid ""
6541 "The specified size of the new alternate signal stack I<ss.ss_size> was less "
6542 "than B<MINSTKSZ>."
6543 msgstr ""
6544 "新しい代替シグナルスタック (I<ss.ss_size>) に指定したサイズが B<MINSTKSZ> よ"
6545 "り小さかった。"
6546
6547 #. type: Plain text
6548 #: build/C/man2/sigaltstack.2:158
6549 msgid ""
6550 "An attempt was made to change the alternate signal stack while it was active "
6551 "(i.e., the process was already executing on the current alternate signal "
6552 "stack)."
6553 msgstr ""
6554 "代替シグナルスタックが有効であるときに変更を行おうとした (つまり、プロセスが"
6555 "既に現在の代替シグナルスタック上で実行されていた)。"
6556
6557 #. type: Plain text
6558 #: build/C/man2/sigaltstack.2:160
6559 msgid "SUSv2, SVr4, POSIX.1-2001."
6560 msgstr "SUSv2, SVr4, POSIX.1-2001."
6561
6562 #. type: Plain text
6563 #: build/C/man2/sigaltstack.2:168
6564 msgid ""
6565 "The most common usage of an alternate signal stack is to handle the "
6566 "B<SIGSEGV> signal that is generated if the space available for the normal "
6567 "process stack is exhausted: in this case, a signal handler for B<SIGSEGV> "
6568 "cannot be invoked on the process stack; if we wish to handle it, we must use "
6569 "an alternate signal stack."
6570 msgstr ""
6571 "代替シグナルスタックを使用する最もよくある場面は、 B<SIGSEGV> シグナルを扱う"
6572 "ときである。 B<SIGSEGV> はプロセスの通常のスタックが利用できる空間が使い果た"
6573 "された際に 生成されるシグナルである。この場合には、 B<SIGSEGV> 用のシグナルハ"
6574 "ンドラーをプロセスのスタック上では起動することができない。 そのため、このシグ"
6575 "ナルを扱おうとする場合には、 代替シグナルスタックを使用しなければならない。"
6576
6577 #. type: Plain text
6578 #: build/C/man2/sigaltstack.2:178
6579 msgid ""
6580 "Establishing an alternate signal stack is useful if a process expects that "
6581 "it may exhaust its standard stack.  This may occur, for example, because the "
6582 "stack grows so large that it encounters the upwardly growing heap, or it "
6583 "reaches a limit established by a call to B<setrlimit(RLIMIT_STACK, &rlim)>.  "
6584 "If the standard stack is exhausted, the kernel sends the process a "
6585 "B<SIGSEGV> signal.  In these circumstances the only way to catch this signal "
6586 "is on an alternate signal stack."
6587 msgstr ""
6588 "プロセスが標準のシグナルスタックを使い果たすことが予想される場合は、 代替シグ"
6589 "ナルスタックを確立すると便利である。 例えば、スタックが最上位アドレスから 下"
6590 "位アドレス方向に非常にたくさん積まれてしまうことで、 最下位アドレスから上位ア"
6591 "ドレス方向に積まれるヒープとぶつかってしまう場合や、 "
6592 "B<setrlimit(RLIMIT_STACK, &rlim)> の呼び出しで確立された 制限に達してしまった"
6593 "場合に、この様な事が起こる。 標準のスタックを使い果たしてしまうと、 カーネル"
6594 "はプロセスに B<SIGSEGV> シグナルを送る。 このような状況では、代替シグナルス"
6595 "タック上でしかシグナルをキャッチできない。"
6596
6597 #. type: Plain text
6598 #: build/C/man2/sigaltstack.2:184
6599 msgid ""
6600 "On most hardware architectures supported by Linux, stacks grow downward.  "
6601 "B<sigaltstack>()  automatically takes account of the direction of stack "
6602 "growth."
6603 msgstr ""
6604 "Linux がサポートする多くのハードウェアアーキテクチャーでは、 スタックは下位ア"
6605 "ドレス方向に積まれる。 B<sigaltstack>()  はスタックが積まれる方向を自動的に決"
6606 "定する。"
6607
6608 #. type: Plain text
6609 #: build/C/man2/sigaltstack.2:193
6610 msgid ""
6611 "Functions called from a signal handler executing on an alternate signal "
6612 "stack will also use the alternate signal stack.  (This also applies to any "
6613 "handlers invoked for other signals while the process is executing on the "
6614 "alternate signal stack.)  Unlike the standard stack, the system does not "
6615 "automatically extend the alternate signal stack.  Exceeding the allocated "
6616 "size of the alternate signal stack will lead to unpredictable results."
6617 msgstr ""
6618 "代替シグナルスタック上で実行されている シグナルハンドラーから呼ばれる関数も、"
6619 "代替シグナルハンドラーを使う (プロセスが代替シグナルスタック上で実行されてい"
6620 "る場合、 他のシグナルで呼び出されるハンドラーもこの代替シグナルハンドラーを使"
6621 "う)。 標準のスタックとは異なり、 システムは代替シグナルスタックを自動的に拡張"
6622 "しない。 代替シグナルスタック用に確保したサイズを越えた場合、 結果は予想でき"
6623 "ない。"
6624
6625 #. type: Plain text
6626 #: build/C/man2/sigaltstack.2:201
6627 msgid ""
6628 "A successful call to B<execve>(2)  removes any existing alternate signal "
6629 "stack.  A child process created via B<fork>(2)  inherits a copy of its "
6630 "parent's alternate signal stack settings."
6631 msgstr ""
6632 "B<execve>(2)  の呼び出しが成功すると、 既存の全ての代替シグナルスタックが削除"
6633 "される。 B<fork>(2)  経由で作成された子プロセスは、親プロセスの代替シグナルス"
6634 "タックの 設定のコピーを継承する。"
6635
6636 #. type: Plain text
6637 #: build/C/man2/sigaltstack.2:210
6638 msgid ""
6639 "B<sigaltstack>()  supersedes the older B<sigstack>()  call.  For backward "
6640 "compatibility, glibc also provides B<sigstack>().  All new applications "
6641 "should be written using B<sigaltstack>()."
6642 msgstr ""
6643 "B<sigaltstack>()  は以前の B<sigstack>()  を置き換えるものである。 過去プログ"
6644 "ラムとの互換性のため、glibc では B<sigstack>()  も提供している。 新しいのアプ"
6645 "リケーションは全て B<sigaltstack>()  を使って書くべきである。"
6646
6647 #. type: SS
6648 #: build/C/man2/sigaltstack.2:210 build/C/man3/sigpause.3:66
6649 #, no-wrap
6650 msgid "History"
6651 msgstr "歴史"
6652
6653 #. type: Plain text
6654 #: build/C/man2/sigaltstack.2:217
6655 msgid ""
6656 "4.2BSD had a B<sigstack>()  system call.  It used a slightly different "
6657 "struct, and had the major disadvantage that the caller had to know the "
6658 "direction of stack growth."
6659 msgstr ""
6660 "4.2BSD には B<sigstack>()  システムコールがあった。 この関数は少し異なった構"
6661 "造体を使っており、 呼び出した側がスタックの積まれる方向を知っていなければなら"
6662 "ないという 大きな欠点があった。"
6663
6664 #. type: Plain text
6665 #: build/C/man2/sigaltstack.2:220
6666 msgid "The following code segment demonstrates the use of B<sigaltstack>():"
6667 msgstr "以下のコードで B<sigaltstack>()  の使用法の一部を示す:"
6668
6669 #. type: Plain text
6670 #: build/C/man2/sigaltstack.2:224
6671 #, no-wrap
6672 msgid "stack_t ss;\n"
6673 msgstr "stack_t ss;\n"
6674
6675 #. type: Plain text
6676 #: build/C/man2/sigaltstack.2:232
6677 #, no-wrap
6678 msgid ""
6679 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6680 "if (ss.ss_sp == NULL)\n"
6681 "    /* Handle error */;\n"
6682 "ss.ss_size = SIGSTKSZ;\n"
6683 "ss.ss_flags = 0;\n"
6684 "if (sigaltstack(&ss, NULL) == -1)\n"
6685 "    /* Handle error */;\n"
6686 msgstr ""
6687 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6688 "if (ss.ss_sp == NULL)\n"
6689 "    /* ハンドルエラー */;\n"
6690 "ss.ss_size = SIGSTKSZ;\n"
6691 "ss.ss_flags = 0;\n"
6692 "if (sigaltstack(&ss, NULL) == -1)\n"
6693 "    /* ハンドルエラー */;\n"
6694
6695 #. type: Plain text
6696 #: build/C/man2/sigaltstack.2:241
6697 msgid ""
6698 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6699 "B<sigsetjmp>(3), B<signal>(7)"
6700 msgstr ""
6701 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6702 "B<sigsetjmp>(3), B<signal>(7)"
6703
6704 #. type: TH
6705 #: build/C/man7/sigevent.7:26
6706 #, no-wrap
6707 msgid "SIGEVENT"
6708 msgstr "SIGEVENT"
6709
6710 #. type: TH
6711 #: build/C/man7/sigevent.7:26
6712 #, no-wrap
6713 msgid "2011-09-09"
6714 msgstr "2011-09-09"
6715
6716 #. type: Plain text
6717 #: build/C/man7/sigevent.7:29
6718 msgid "sigevent - structure for notification from asynchronous routines"
6719 msgstr "sigevent - 非同期ルーチンからの通知用の構造体"
6720
6721 #. type: Plain text
6722 #: build/C/man7/sigevent.7:36
6723 #, no-wrap
6724 msgid ""
6725 "union sigval {          /* Data passed with notification */\n"
6726 "    int     sival_int;         /* Integer value */\n"
6727 "    void   *sival_ptr;         /* Pointer value */\n"
6728 "};\n"
6729 msgstr ""
6730 "union sigval {          /* Data passed with notification */\n"
6731 "    int     sival_int;         /* Integer value */\n"
6732 "    void   *sival_ptr;         /* Pointer value */\n"
6733 "};\n"
6734
6735 #. type: Plain text
6736 #: build/C/man7/sigevent.7:51
6737 #, no-wrap
6738 msgid ""
6739 "struct sigevent {\n"
6740 "    int          sigev_notify; /* Notification method */\n"
6741 "    int          sigev_signo;  /* Notification signal */\n"
6742 "    union sigval sigev_value;  /* Data passed with\n"
6743 "                                  notification */\n"
6744 "    void       (*sigev_notify_function) (union sigval);\n"
6745 "                     /* Function used for thread\n"
6746 "                        notification (SIGEV_THREAD) */\n"
6747 "    void        *sigev_notify_attributes;\n"
6748 "                     /* Attributes for notification thread\n"
6749 "                        (SIGEV_THREAD) */\n"
6750 "    pid_t        sigev_notify_thread_id;\n"
6751 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6752 "};\n"
6753 msgstr ""
6754 "struct sigevent {\n"
6755 "    int          sigev_notify; /* Notification method */\n"
6756 "    int          sigev_signo;  /* Notification signal */\n"
6757 "    union sigval sigev_value;  /* Data passed with\n"
6758 "                                  notification */\n"
6759 "    void       (*sigev_notify_function) (union sigval);\n"
6760 "                     /* Function used for thread\n"
6761 "                        notification (SIGEV_THREAD) */\n"
6762 "    void        *sigev_notify_attributes;\n"
6763 "                     /* Attributes for notification thread\n"
6764 "                        (SIGEV_THREAD) */\n"
6765 "    pid_t        sigev_notify_thread_id;\n"
6766 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6767 "};\n"
6768
6769 #. type: Plain text
6770 #: build/C/man7/sigevent.7:60
6771 msgid ""
6772 "The I<sigevent> structure is used by various APIs to describe the way a "
6773 "process is to be notified about an event (e.g., completion of an "
6774 "asynchronous request, expiration of a timer, or the arrival of a message)."
6775 msgstr ""
6776 "I<sigevent> 構造体は、イベントに関する情報をプロセスに通知するために様々な "
6777 "API で使用される (イベントの例としては、 非同期処理要求の完了、 タイマーの満"
6778 "了、 メッセージの到着など)。"
6779
6780 #. type: Plain text
6781 #: build/C/man7/sigevent.7:68
6782 msgid ""
6783 "The definition shown in the SYNOPSIS is approximate: some of the fields in "
6784 "the I<sigevent> structure may be defined as part of a union.  Programs "
6785 "should employ only those fields relevant to the value specified in "
6786 "I<sigev_notify>."
6787 msgstr ""
6788 "「書式」に記載されている定義はおおよそのものである。 I<sigevent> 構造体のいく"
6789 "つかのフィールドは、 共用体の一部として定義されているものもある。 プログラム"
6790 "は、 I<sigev_notify> で指定された値に応じたフィールドだけを利用すべきである。"
6791
6792 #. type: Plain text
6793 #: build/C/man7/sigevent.7:73
6794 msgid ""
6795 "The I<sigev_notify> field specifies how notification is to be performed.  "
6796 "This field can have one of the following values:"
6797 msgstr ""
6798 "I<sigev_notify> フィールドは、通知をどのように処理すべきかを指定する。 この"
6799 "フィールドは、以下のいずれかの値である。"
6800
6801 #. type: TP
6802 #: build/C/man7/sigevent.7:73 build/C/man2/timer_create.2:109
6803 #, no-wrap
6804 msgid "B<SIGEV_NONE>"
6805 msgstr "B<SIGEV_NONE>"
6806
6807 #. type: Plain text
6808 #: build/C/man7/sigevent.7:76
6809 msgid "A \"null\" notification: don't do anything when the event occurs."
6810 msgstr "「空 (null)」の通知。 イベントが発生時には何もしないこと。"
6811
6812 #. type: TP
6813 #: build/C/man7/sigevent.7:76 build/C/man2/timer_create.2:114
6814 #, no-wrap
6815 msgid "B<SIGEV_SIGNAL>"
6816 msgstr "B<SIGEV_SIGNAL>"
6817
6818 #. type: Plain text
6819 #: build/C/man7/sigevent.7:80
6820 msgid "Notify the process by sending the signal specified in I<sigev_signo>."
6821 msgstr ""
6822 "I<sigev_signo> で指定されたシグナルを送信することで、プロセスへの通知を行う。"
6823
6824 #. type: Plain text
6825 #: build/C/man7/sigevent.7:87
6826 msgid ""
6827 "If the signal is caught with a signal handler that was registered using the "
6828 "B<sigaction>(2)  B<SA_SIGINFO> flag, then the following fields are set in "
6829 "the I<siginfo_t> structure that is passed as the second argument of the "
6830 "handler:"
6831 msgstr ""
6832 "B<sigaction>(2) の B<SA_SIGINFO> フラグを使った登録されたシグナルハンドラーに"
6833 "よりシグナルが捕捉されると、 シグナルハンドラーの 2 番目の引き数として渡され"
6834 "た I<siginfo_t> 構造体の以下のフィールドが設定される。"
6835
6836 #. type: Plain text
6837 #: build/C/man7/sigevent.7:92
6838 msgid ""
6839 "This field is set to a value that depends on the API delivering the "
6840 "notification."
6841 msgstr "このフィールドには通知を配送した API に応じた決まる値が設定される。"
6842
6843 #. type: TP
6844 #: build/C/man7/sigevent.7:92 build/C/man2/wait.2:302
6845 #, no-wrap
6846 msgid "I<si_signo>"
6847 msgstr "I<si_signo>"
6848
6849 #. type: Plain text
6850 #: build/C/man7/sigevent.7:96
6851 msgid ""
6852 "This field is set to the signal number (i.e., the same value as in "
6853 "I<sigev_signo>)."
6854 msgstr ""
6855 "このフィールドにはシグナル番号 (すなわち I<sigev_signo> と同じ値) が設定され"
6856 "る。"
6857
6858 #. type: Plain text
6859 #: build/C/man7/sigevent.7:100
6860 msgid "This field is set to the value specified in I<sigev_value>."
6861 msgstr "このフィールドには I<sigev_value> で指定された値が設定される。"
6862
6863 #. type: Plain text
6864 #: build/C/man7/sigevent.7:105
6865 msgid ""
6866 "Depending on the API, other fields may also be set in the I<siginfo_t> "
6867 "structure."
6868 msgstr ""
6869 "API によっては I<siginfo_t> 構造体の他のフィールドが設定される場合もある。"
6870
6871 #. type: Plain text
6872 #: build/C/man7/sigevent.7:108
6873 msgid ""
6874 "The same information is also available if the signal is accepted using "
6875 "B<sigwaitinfo>(2)."
6876 msgstr ""
6877 "シグナルを受け取ったときには B<sigwaitinfo>(2) でも同じ情報が得られる。"
6878
6879 #. type: TP
6880 #: build/C/man7/sigevent.7:108 build/C/man2/timer_create.2:132
6881 #, no-wrap
6882 msgid "B<SIGEV_THREAD>"
6883 msgstr "B<SIGEV_THREAD>"
6884
6885 #. type: Plain text
6886 #: build/C/man7/sigevent.7:125
6887 msgid ""
6888 "Notify the process by invoking I<sigev_notify_function> \"as if\" it were "
6889 "the start function of a new thread.  (Among the implementation possibilities "
6890 "here are that each timer notification could result in the creation of a new "
6891 "thread, or that a single thread is created to receive all notifications.)  "
6892 "The function is invoked with I<sigev_value> as its sole argument.  If "
6893 "I<sigev_notify_attributes> is not NULL, it should point to a "
6894 "I<pthread_attr_t> structure that defines attributes for the new thread (see "
6895 "B<pthread_attr_init>(3))."
6896 msgstr ""
6897 "「あたかも」新しいスレッドセーフの開始関数であるかのように "
6898 "I<sigev_notify_function> を起動することで、 プロセスへの通知を行う (実装の可"
6899 "能性としては、 タイマー通知の度に新しいスレッドセーフが作成される場合も、 一"
6900 "つのスレッドを作成してすべての通知を受信する場合もある)。 この関数は "
6901 "I<sigev_value> を唯一の引き数として起動される。 I<sigev_notify_attributes> "
6902 "は、 NULL 以外の場合は、 新しいスレッドセーフの属性を定義する "
6903 "I<pthread_attr_t> 構造体を指していなければならない (B<pthread_attr_init>(3) "
6904 "参照)。"
6905
6906 #. type: TP
6907 #: build/C/man7/sigevent.7:125 build/C/man2/timer_create.2:140
6908 #, no-wrap
6909 msgid "B<SIGEV_THREAD_ID> (Linux-specific)"
6910 msgstr "B<SIGEV_THREAD_ID> (Linux 固有)"
6911
6912 #.  | SIGEV_SIGNAL vs not?
6913 #. type: Plain text
6914 #: build/C/man7/sigevent.7:130
6915 msgid "Currently used only by POSIX timers; see B<timer_create>(2)."
6916 msgstr "現在のところ POSIX でのみ使用されている。 B<timer_create>(2) 参照。"
6917
6918 #. type: Plain text
6919 #: build/C/man7/sigevent.7:132 build/C/man2/sigpending.2:66
6920 #: build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:121
6921 #: build/C/man3/sigsetops.3:147 build/C/man2/sigsuspend.2:86
6922 #: build/C/man3/sigwait.3:87 build/C/man2/sigwaitinfo.2:135
6923 #: build/C/man2/timer_create.2:197 build/C/man2/timer_delete.2:69
6924 #: build/C/man2/timer_getoverrun.2:99 build/C/man2/timer_settime.2:209
6925 msgid "POSIX.1-2001."
6926 msgstr "POSIX.1-2001."
6927
6928 #. type: Plain text
6929 #: build/C/man7/sigevent.7:142
6930 msgid ""
6931 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6932 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6933 "B<pthreads>(7)"
6934 msgstr ""
6935 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6936 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6937 "B<pthreads>(7)"
6938
6939 #. type: TH
6940 #: build/C/man3/siginterrupt.3:31
6941 #, no-wrap
6942 msgid "SIGINTERRUPT"
6943 msgstr "SIGINTERRUPT"
6944
6945 #. type: TH
6946 #: build/C/man3/siginterrupt.3:31
6947 #, no-wrap
6948 msgid "2014-06-13"
6949 msgstr "2014-06-13"
6950
6951 #. type: Plain text
6952 #: build/C/man3/siginterrupt.3:34
6953 msgid "siginterrupt - allow signals to interrupt system calls"
6954 msgstr "siginterrupt - シグナルでシステムコールに割り込むことを許す"
6955
6956 #. type: Plain text
6957 #: build/C/man3/siginterrupt.3:39
6958 #, no-wrap
6959 msgid "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6960 msgstr "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6961
6962 #. type: Plain text
6963 #: build/C/man3/siginterrupt.3:47
6964 msgid "B<siginterrupt>():"
6965 msgstr "B<siginterrupt>():"
6966
6967 #. type: Plain text
6968 #: build/C/man3/siginterrupt.3:64
6969 msgid ""
6970 "The B<siginterrupt>()  function changes the restart behavior when a system "
6971 "call is interrupted by the signal I<sig>.  If the I<flag> argument is false "
6972 "(0), then system calls will be restarted if interrupted by the specified "
6973 "signal I<sig>.  This is the default behavior in Linux."
6974 msgstr ""
6975 "B<siginterrupt>()  関数は、システムコールがシグナル I<sig> によって割り込まれ"
6976 "た後、再実行の際の振る舞いを変更する。 I<flag> 引き数が偽 (0) ならば、システ"
6977 "ムコールが指定した シグナル I<sig> によって割り込まれた後に、そのシステムコー"
6978 "ルは 再実行される。これは Linux においてデフォルトの動作である。"
6979
6980 #. type: Plain text
6981 #: build/C/man3/siginterrupt.3:69
6982 msgid ""
6983 "If the I<flag> argument is true (1) and no data has been transferred, then a "
6984 "system call interrupted by the signal I<sig> will return -1 and I<errno> "
6985 "will be set to B<EINTR>."
6986 msgstr ""
6987 "I<flag> 引き数が真 (1) でデータの転送が全く行なわれていないならば、 シグナル "
6988 "I<sig> でシステムコールは中断されて、-1 が返され、 I<errno> に B<EINTR> が設"
6989 "定される。"
6990
6991 #. type: Plain text
6992 #: build/C/man3/siginterrupt.3:73
6993 msgid ""
6994 "If the I<flag> argument is true (1) and data transfer has started, then the "
6995 "system call will be interrupted and will return the actual amount of data "
6996 "transferred."
6997 msgstr ""
6998 "I<flag> 引き数が真 (1) でデータの転送が開始されていれば、 システムコールは中"
6999 "断され、それまでに実際に転送されたデータ の量が返される。"
7000
7001 #. type: Plain text
7002 #: build/C/man3/siginterrupt.3:83
7003 msgid ""
7004 "The B<siginterrupt>()  function returns 0 on success.  It returns -1 if the "
7005 "signal number I<sig> is invalid, with I<errno> set to indicate the cause of "
7006 "the error."
7007 msgstr ""
7008 "B<siginterrupt>()  関数は成功した場合 0 を返す。 シグナル番号 I<sig> が不正な"
7009 "場合、 -1 を返し、 I<errno> にエラーの原因を示す値を設定する。"
7010
7011 #. type: Plain text
7012 #: build/C/man3/siginterrupt.3:87
7013 msgid "The specified signal number is invalid."
7014 msgstr "指定したシグナル番号が不正である。"
7015
7016 #. type: Plain text
7017 #: build/C/man3/siginterrupt.3:93
7018 msgid ""
7019 "The B<siginterrupt>()  function uses a global variable that is not "
7020 "protected, so it is not thread-safe."
7021 msgstr ""
7022 "B<siginterrupt>() 関数は保護されていないグローバル変数を使用しているので、ス"
7023 "レッドセーフではない。"
7024
7025 #. type: Plain text
7026 #: build/C/man3/siginterrupt.3:102
7027 msgid ""
7028 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 marks B<siginterrupt>()  as obsolete, "
7029 "recommending the use of B<sigaction>(2)  with the B<SA_RESTART> flag instead."
7030 msgstr ""
7031 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 は、 B<siginterrupt>()  を廃止予定として"
7032 "いる。 代わりに、 B<sigaction>(2)  に B<SA_RESTART> フラグを指定して使うこと"
7033 "を推奨している。"
7034
7035 #. type: Plain text
7036 #: build/C/man3/siginterrupt.3:104
7037 msgid "B<signal>(2)"
7038 msgstr "B<signal>(2)"
7039
7040 #. type: TH
7041 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
7042 #, no-wrap
7043 msgid "SIGNAL"
7044 msgstr "SIGNAL"
7045
7046 #. type: TH
7047 #: build/C/man2/signal.2:36 build/C/man3/sigpause.3:25
7048 #: build/C/man2/sigwaitinfo.2:25 build/C/man2/timer_create.2:33
7049 #: build/C/man2/wait.2:49
7050 #, no-wrap
7051 msgid "2014-08-19"
7052 msgstr "2014-08-19"
7053
7054 #. type: Plain text
7055 #: build/C/man2/signal.2:39
7056 msgid "signal - ANSI C signal handling"
7057 msgstr "signal - ANSI C シグナル操作"
7058
7059 #. type: Plain text
7060 #: build/C/man2/signal.2:45
7061 msgid "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
7062 msgstr ""
7063 "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<sighandler>B<);>"
7064
7065 #. type: Plain text
7066 #: build/C/man2/signal.2:54
7067 msgid ""
7068 "The behavior of B<signal>()  varies across UNIX versions, and has also "
7069 "varied historically across different versions of Linux.  B<Avoid its use>: "
7070 "use B<sigaction>(2)  instead.  See I<Portability> below."
7071 msgstr ""
7072 "B<signal>()  の動作は UNIX のバージョンにより異なる。 また、歴史的に見て "
7073 "Linux のバージョンによっても異なっている。 B<このシステムコールの使用は避け、"
7074 "> 代わりに B<sigaction>(2)  を使用すること。 下記の「移植性」を参照。"
7075
7076 #. type: Plain text
7077 #: build/C/man2/signal.2:64
7078 msgid ""
7079 "B<signal>()  sets the disposition of the signal I<signum> to I<handler>, "
7080 "which is either B<SIG_IGN>, B<SIG_DFL>, or the address of a programmer-"
7081 "defined function (a \"signal handler\")."
7082 msgstr ""
7083 "B<signal>()  はシグナル I<signum> の処理方法を I<handler> に設定する。 "
7084 "I<handler> には、 B<SIG_IGN>、 B<SIG_DFL>、 プログラマが定義した関数 (「シグ"
7085 "ナルハンドラー」) のアドレスの いずれかを指定する。"
7086
7087 #. type: Plain text
7088 #: build/C/man2/signal.2:68
7089 msgid ""
7090 "If the signal I<signum> is delivered to the process, then one of the "
7091 "following happens:"
7092 msgstr ""
7093 "シグナル I<signum> がプロセスに配送されると、以下のいずれかが発生する。"
7094
7095 #. type: Plain text
7096 #: build/C/man2/signal.2:73
7097 msgid "If the disposition is set to B<SIG_IGN>, then the signal is ignored."
7098 msgstr "処理方法が B<SIG_IGN> に設定されている場合、そのシグナルは無視される。"
7099
7100 #. type: Plain text
7101 #: build/C/man2/signal.2:80
7102 msgid ""
7103 "If the disposition is set to B<SIG_DFL>, then the default action associated "
7104 "with the signal (see B<signal>(7))  occurs."
7105 msgstr ""
7106 "処理方法が B<SIG_DFL> に設定されている場合、シグナルに関連づけられた デフォル"
7107 "トの動作が行われる (B<signal>(7)  参照)。"
7108
7109 #. type: Plain text
7110 #: build/C/man2/signal.2:91
7111 msgid ""
7112 "If the disposition is set to a function, then first either the disposition "
7113 "is reset to B<SIG_DFL>, or the signal is blocked (see I<Portability> below), "
7114 "and then I<handler> is called with argument I<signum>.  If invocation of the "
7115 "handler caused the signal to be blocked, then the signal is unblocked upon "
7116 "return from the handler."
7117 msgstr ""
7118 "処理方法として関数が設定されている場合、 まず最初に処理方法が B<SIG_DFL> にリ"
7119 "セットされるかそのシグナルのブロックが実行された後、 I<signum> を引き数とし"
7120 "て I<handler> が呼び出される。 ハンドラーが起動される際にシグナルがブロックさ"
7121 "れた場合、 ハンドラーが返る際にそのシグナルのブロックが解除される。"
7122
7123 #. type: Plain text
7124 #: build/C/man2/signal.2:97
7125 msgid "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught or ignored."
7126 msgstr ""
7127 "シグナル B<SIGKILL> と B<SIGSTOP> は捕捉できず、無視することもできない。"
7128
7129 #. type: Plain text
7130 #: build/C/man2/signal.2:105
7131 msgid ""
7132 "B<signal>()  returns the previous value of the signal handler, or B<SIG_ERR> "
7133 "on error.  In the event of an error, I<errno> is set to indicate the cause."
7134 msgstr ""
7135 "B<signal>()  は、今までのシグナルハンドラーの値を返す。 エラーの場合は "
7136 "B<SIG_ERR> を返し、 I<errno> にエラーの原因を示す値を設定する。"
7137
7138 #. type: Plain text
7139 #: build/C/man2/signal.2:110
7140 msgid "I<signum> is invalid."
7141 msgstr "I<signum> が不正である。"
7142
7143 #. type: Plain text
7144 #: build/C/man2/signal.2:116
7145 msgid "The effects of B<signal>()  in a multithreaded process are unspecified."
7146 msgstr ""
7147 "マルチスレッドプロセスにおける B<signal>()  の結果は、指定されていない。"
7148
7149 #. type: Plain text
7150 #: build/C/man2/signal.2:141
7151 msgid ""
7152 "See B<sigaction>(2)  for details on what happens when B<SIGCHLD> is set to "
7153 "B<SIG_IGN>."
7154 msgstr ""
7155 "B<SIGCHLD> の動作として B<SIG_IGN> を設定した場合の詳細な動作については、 "
7156 "B<sigaction>(2)  を参照すること。"
7157
7158 #. type: Plain text
7159 #: build/C/man2/signal.2:146
7160 msgid ""
7161 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
7162 "safely called from inside a signal handler."
7163 msgstr ""
7164 "シグナルハンドラー内から安全に呼び出すことができる、 async-signal-safe "
7165 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
7166 "照。"
7167
7168 #.  libc4 and libc5 define
7169 #.  .IR SignalHandler ;
7170 #. type: Plain text
7171 #: build/C/man2/signal.2:162
7172 msgid ""
7173 "The use of I<sighandler_t> is a GNU extension, exposed if B<_GNU_SOURCE> is "
7174 "defined; glibc also defines (the BSD-derived)  I<sig_t> if B<_BSD_SOURCE> is "
7175 "defined.  Without use of such a type, the declaration of B<signal>()  is the "
7176 "somewhat harder to read:"
7177 msgstr ""
7178 "I<sighandler_t> の使用は GNU 拡張であり、 B<_GNU_SOURCE> が定義された場合に公"
7179 "開される。glibc では B<_BSD_SOURCE> が定義された場合には (BSD 由来の) "
7180 "I<sig_t> も定義される。このような型を使用しないと、 B<signal>() の宣言は読み"
7181 "にくいものとなる。"
7182
7183 #. type: Plain text
7184 #: build/C/man2/signal.2:166
7185 #, no-wrap
7186 msgid "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
7187 msgstr "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
7188
7189 #. type: SS
7190 #: build/C/man2/signal.2:168
7191 #, no-wrap
7192 msgid "Portability"
7193 msgstr "移植性"
7194
7195 #. type: Plain text
7196 #: build/C/man2/signal.2:180
7197 msgid ""
7198 "The only portable use of B<signal>()  is to set a signal's disposition to "
7199 "B<SIG_DFL> or B<SIG_IGN>.  The semantics when using B<signal>()  to "
7200 "establish a signal handler vary across systems (and POSIX.1 explicitly "
7201 "permits this variation); B<do not use it for this purpose.>"
7202 msgstr ""
7203 "移植性のある B<signal>()  の使い方は、シグナルの処理方法を B<SIG_DFL> か "
7204 "B<SIG_IGN> に設定する方法だけである。 シグナルハンドラーを設定するのに "
7205 "B<signal>()  を使ったときの動作はシステムにより異なる (POSIX.1 は明示的にこの"
7206 "違いを認めている)。 B<移植性が必要なときはこのシステムコールを使用しないこ"
7207 "と。>"
7208
7209 #. type: Plain text
7210 #: build/C/man2/signal.2:186
7211 msgid ""
7212 "POSIX.1 solved the portability mess by specifying B<sigaction>(2), which "
7213 "provides explicit control of the semantics when a signal handler is invoked; "
7214 "use that interface instead of B<signal>()."
7215 msgstr ""
7216 "POSIX.1 は、 B<sigaction>(2)  を規定することで移植性に関する混乱を解決した。 "
7217 "B<sigaction>(2)  はシグナルハンドラーが起動される際の挙動を明示的に制御でき"
7218 "る。 B<signal>()  の代わりにこのインターフェイスを使うこと。"
7219
7220 #. type: Plain text
7221 #: build/C/man2/signal.2:196
7222 msgid ""
7223 "In the original UNIX systems, when a handler that was established using "
7224 "B<signal>()  was invoked by the delivery of a signal, the disposition of the "
7225 "signal would be reset to B<SIG_DFL>, and the system did not block delivery "
7226 "of further instances of the signal.  This is equivalent to calling "
7227 "B<sigaction>(2)  with the following flags:"
7228 msgstr ""
7229 "オリジナルの UNIX システムでは、 B<signal>()  を使って設定されたハンドラーが"
7230 "シグナルの配送により起動されると、 そのシグナルの処理方法は B<SIG_DFL> にリ"
7231 "セットされ、システムは同じシグナルがさらに生成されても シグナルの配送をブロッ"
7232 "クしなかった。これは、以下のフラグで B<sigaction>(2) を呼び出すのと等価であ"
7233 "る。"
7234
7235 #. type: Plain text
7236 #: build/C/man2/signal.2:198
7237 #, no-wrap
7238 msgid "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
7239 msgstr "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
7240
7241 #. type: Plain text
7242 #: build/C/man2/signal.2:205
7243 msgid ""
7244 "System\\ V also provides these semantics for B<signal>().  This was bad "
7245 "because the signal might be delivered again before the handler had a chance "
7246 "to reestablish itself.  Furthermore, rapid deliveries of the same signal "
7247 "could result in recursive invocations of the handler."
7248 msgstr ""
7249 "System\\ V でも、 B<signal>()  に対してこれらの挙動を規定している。 こうした"
7250 "挙動はまずく、ハンドラーがハンドラー自身を再設定する機会が 来るより前に、同じ"
7251 "シグナルがまた配送される可能性がある。 さらに、同じシグナルが立て続けに配送さ"
7252 "れると、同じシグナルが ハンドラーを繰り返し起動されることになる。"
7253
7254 #. type: Plain text
7255 #: build/C/man2/signal.2:220
7256 msgid ""
7257 "BSD improved on this situation, but unfortunately also changed the semantics "
7258 "of the existing B<signal>()  interface while doing so.  On BSD, when a "
7259 "signal handler is invoked, the signal disposition is not reset, and further "
7260 "instances of the signal are blocked from being delivered while the handler "
7261 "is executing.  Furthermore, certain blocking system calls are automatically "
7262 "restarted if interrupted by a signal handler (see B<signal>(7)).  The BSD "
7263 "semantics are equivalent to calling B<sigaction>(2)  with the following "
7264 "flags:"
7265 msgstr ""
7266 "BSD はこの状況が改善したが、残念なことに、その過程で既存の B<signal>() の挙動"
7267 "も変更された。 BSD では、シグナルハンドラーが起動された際、 シグナルの処理方"
7268 "法はリセットされず、 ハンドラーの実行中は、同じシグナルのさらなる生成は配送が"
7269 "ブロックされる。 また、 シグナルハンドラーが中断された場合、 停止中のシステム"
7270 "コールのいくつかは自動的に再スタートされる。 BSD の挙動は、 以下のフラグを指"
7271 "定した B<sigaction>(2) の呼び出しと等価である。"
7272
7273 #. type: Plain text
7274 #: build/C/man2/signal.2:222
7275 #, no-wrap
7276 msgid "    sa.sa_flags = SA_RESTART;\n"
7277 msgstr "    sa.sa_flags = SA_RESTART;\n"
7278
7279 #. type: Plain text
7280 #: build/C/man2/signal.2:224
7281 msgid "The situation on Linux is as follows:"
7282 msgstr "Linux での状況は以下の通りである。"
7283
7284 #. type: Plain text
7285 #: build/C/man2/signal.2:228
7286 msgid "The kernel's B<signal>()  system call provides System\\ V semantics."
7287 msgstr ""
7288 "カーネルの B<signal>()  システムコールは System\\ V 方式を提供している。"
7289
7290 #. type: Plain text
7291 #: build/C/man2/signal.2:244
7292 msgid ""
7293 "By default, in glibc 2 and later, the B<signal>()  wrapper function does not "
7294 "invoke the kernel system call.  Instead, it calls B<sigaction>(2)  using "
7295 "flags that supply BSD semantics.  This default behavior is provided as long "
7296 "as the B<_BSD_SOURCE> feature test macro is defined.  By default, "
7297 "B<_BSD_SOURCE> is defined; it is also implicitly defined if one defines "
7298 "B<_GNU_SOURCE>, and can of course be explicitly defined."
7299 msgstr ""
7300 "デフォルトでは、glibc 2 以降では、 B<signal>()  ラッパー関数はカーネルのシス"
7301 "テムコールを起動しない。 代わりに、ラッパー関数は BSD 方式を示すフラグを使っ"
7302 "て B<sigaction>(2)  を呼び出す。 機能検査マクロ B<_BSD_SOURCE> を定義していれ"
7303 "ば、このデフォルトの動作となる。 デフォルトでは、 B<_BSD_SOURCE> が定義され"
7304 "る。 B<_BSD_SOURCE> は B<_GNU_SOURCE> が定義された場合には暗黙のうちに定義さ"
7305 "れ、 もちろん明示的に定義することもできる。"
7306
7307 #.  System V semantics are also provided if one uses the separate
7308 #.  .BR sysv_signal (3)
7309 #.  function.
7310 #.  .IP *
7311 #.  The
7312 #.  .BR signal ()
7313 #.  function in Linux libc4 and libc5 provide System\ V semantics.
7314 #.  If one on a libc5 system includes
7315 #.  .I <bsd/signal.h>
7316 #.  instead of
7317 #.  .IR <signal.h> ,
7318 #.  then
7319 #.  .BR signal ()
7320 #.  provides BSD semantics.
7321 #. type: Plain text
7322 #: build/C/man2/signal.2:278
7323 msgid ""
7324 "On glibc 2 and later, if the B<_BSD_SOURCE> feature test macro is not "
7325 "defined, then B<signal>()  provides System\\ V semantics.  (The default "
7326 "implicit definition of B<_BSD_SOURCE> is not provided if one invokes "
7327 "B<gcc>(1)  in one of its standard modes (I<-std=xxx> or I<-ansi>)  or "
7328 "defines various other feature test macros such as B<_POSIX_SOURCE>, "
7329 "B<_XOPEN_SOURCE>, or B<_SVID_SOURCE>; see B<feature_test_macros>(7).)"
7330 msgstr ""
7331 "glibc 2 以降では、機能検査マクロ B<_BSD_SOURCE> が定義されていなければ、 "
7332 "B<signal>()  は System\\ V 方式となる。 (B<gcc>(1)  が標準指定モード (I<-"
7333 "std=xxx> or I<-ansi>)  で起動された場合、もしくは B<_POSIX_SOURCE>, "
7334 "B<_XOPEN_SOURCE>, B<_SVID_SOURCE> といった他の様々な機能検査マクロが定義され"
7335 "た場合、 デフォルトの B<_BSD_SOURCE> の暗黙の定義は行われない。 "
7336 "B<feature_test_macros>(7)  を参照のこと。)"
7337
7338 #. type: Plain text
7339 #: build/C/man2/signal.2:297
7340 msgid ""
7341 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), "
7342 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
7343 "B<sigsuspend>(2), B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), "
7344 "B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), "
7345 "B<signal>(7)"
7346 msgstr ""
7347 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), "
7348 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
7349 "B<sigsuspend>(2), B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), "
7350 "B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), "
7351 "B<signal>(7)"
7352
7353 #. type: Plain text
7354 #: build/C/man7/signal.7:49
7355 msgid "signal - overview of signals"
7356 msgstr "signal - シグナルの概要"
7357
7358 #. type: Plain text
7359 #: build/C/man7/signal.7:52
7360 msgid ""
7361 "Linux supports both POSIX reliable signals (hereinafter \"standard signals"
7362 "\") and POSIX real-time signals."
7363 msgstr ""
7364 "Linux は POSIX 信頼シグナル (reliable signal; 以後 \"標準シグナル\"と表記)  "
7365 "と POSIX リアルタイムシグナルの両方に対応している。"
7366
7367 #. type: SS
7368 #: build/C/man7/signal.7:52
7369 #, no-wrap
7370 msgid "Signal dispositions"
7371 msgstr "シグナル処理方法"
7372
7373 #. type: Plain text
7374 #: build/C/man7/signal.7:57
7375 msgid ""
7376 "Each signal has a current I<disposition>, which determines how the process "
7377 "behaves when it is delivered the signal."
7378 msgstr ""
7379 "シグナルはそれぞれ現在の「処理方法 (disposition)」を保持しており、 この処理方"
7380 "法によりシグナルが配送された際にプロセスが どのような振舞いをするかが決まる。"
7381
7382 #. type: Plain text
7383 #: build/C/man7/signal.7:60
7384 msgid ""
7385 "The entries in the \"Action\" column of the tables below specify the default "
7386 "disposition for each signal, as follows:"
7387 msgstr ""
7388 "後述の表の \"動作\" の欄のエントリーは各シグナルのデフォルトの 処理方法を示し"
7389 "ており、以下のような意味を持つ。"
7390
7391 #. type: IP
7392 #: build/C/man7/signal.7:60
7393 #, no-wrap
7394 msgid "Term"
7395 msgstr "Term"
7396
7397 #. type: Plain text
7398 #: build/C/man7/signal.7:62
7399 msgid "Default action is to terminate the process."
7400 msgstr "デフォルトの動作はプロセス終了。"
7401
7402 #. type: IP
7403 #: build/C/man7/signal.7:62
7404 #, no-wrap
7405 msgid "Ign"
7406 msgstr "Ign"
7407
7408 #. type: Plain text
7409 #: build/C/man7/signal.7:64
7410 msgid "Default action is to ignore the signal."
7411 msgstr "デフォルトの動作はこのシグナルの無視。"
7412
7413 #. type: IP
7414 #: build/C/man7/signal.7:64
7415 #, no-wrap
7416 msgid "Core"
7417 msgstr "Core"
7418
7419 #. type: Plain text
7420 #: build/C/man7/signal.7:67
7421 msgid ""
7422 "Default action is to terminate the process and dump core (see B<core>(5))."
7423 msgstr "デフォルトの動作はプロセス終了とコアダンプ出力 (B<core>(5)  参照)。"
7424
7425 #. type: IP
7426 #: build/C/man7/signal.7:67
7427 #, no-wrap
7428 msgid "Stop"
7429 msgstr "Stop"
7430
7431 #. type: Plain text
7432 #: build/C/man7/signal.7:69
7433 msgid "Default action is to stop the process."
7434 msgstr "デフォルトの動作はプロセスの一時停止。"
7435
7436 #. type: IP
7437 #: build/C/man7/signal.7:69
7438 #, no-wrap
7439 msgid "Cont"
7440 msgstr "Cont"
7441
7442 #. type: Plain text
7443 #: build/C/man7/signal.7:71
7444 msgid "Default action is to continue the process if it is currently stopped."
7445 msgstr "デフォルトの動作は、プロセスが停止中の場合にその実行の再開。"
7446
7447 #. type: Plain text
7448 #: build/C/man7/signal.7:93
7449 msgid ""
7450 "A process can change the disposition of a signal using B<sigaction>(2)  or "
7451 "B<signal>(2).  (The latter is less portable when establishing a signal "
7452 "handler; see B<signal>(2)  for details.)  Using these system calls, a "
7453 "process can elect one of the following behaviors to occur on delivery of the "
7454 "signal: perform the default action; ignore the signal; or catch the signal "
7455 "with a I<signal handler>, a programmer-defined function that is "
7456 "automatically invoked when the signal is delivered.  (By default, the signal "
7457 "handler is invoked on the normal process stack.  It is possible to arrange "
7458 "that the signal handler uses an alternate stack; see B<sigaltstack>(2)  for "
7459 "a discussion of how to do this and when it might be useful.)"
7460 msgstr ""
7461 "プロセスは、 B<sigaction>(2)  や B<signal>(2)  を使って、シグナルの処理方法を"
7462 "変更することができる (B<signal>(2)  の方がシグナルハンドラーを設定する際の移"
7463 "植性が低い; 詳細は B<signal>(2)  を参照)。 シグナルの配送時に起こる動作とし"
7464 "て プロセスが選択できるのは、次のいずれか一つである。 デフォルトの動作を実行"
7465 "する、シグナルを無視する、 I<シグナルハンドラー (signal handler)> でシグナル"
7466 "を捕捉する。シグナルハンドラーとは、シグナル配送時に 自動的に起動されるプログ"
7467 "ラマ定義の関数である。 (デフォルトでは、シグナルハンドラーは通常のプロセスの"
7468 "スタック上で起動される。 シグナルハンドラーが代替スタック (alternate stack) "
7469 "を使用するように設定する こともできる。代替スタックを使用するように設定する方"
7470 "法と、どのような際に 代替スタックが役に立つかについての議論については "
7471 "B<sigaltstack>(2)  を参照のこと。"
7472
7473 #. type: Plain text
7474 #: build/C/man7/signal.7:97
7475 msgid ""
7476 "The signal disposition is a per-process attribute: in a multithreaded "
7477 "application, the disposition of a particular signal is the same for all "
7478 "threads."
7479 msgstr ""
7480 "シグナルの処理方法はプロセス単位の属性である。 マルチスレッドのアプリケーショ"
7481 "ンでは、あるシグナルの処理方法は 全てのスレッドで同じである。"
7482
7483 #. type: SS
7484 #: build/C/man7/signal.7:105
7485 #, no-wrap
7486 msgid "Sending a signal"
7487 msgstr "シグナルの送信"
7488
7489 #. type: Plain text
7490 #: build/C/man7/signal.7:108
7491 msgid ""
7492 "The following system calls and library functions allow the caller to send a "
7493 "signal:"
7494 msgstr ""
7495 "以下のシステムコールとライブラリ関数を使って、 呼び出し者はシグナルを送信する"
7496 "ことができる。"
7497
7498 #. type: TP
7499 #: build/C/man7/signal.7:108
7500 #, no-wrap
7501 msgid "B<raise>(3)"
7502 msgstr "B<raise>(3)"
7503
7504 #. type: Plain text
7505 #: build/C/man7/signal.7:111
7506 msgid "Sends a signal to the calling thread."
7507 msgstr "呼び出したスレッドにシグナルを送る。"
7508
7509 #. type: TP
7510 #: build/C/man7/signal.7:111
7511 #, no-wrap
7512 msgid "B<kill>(2)"
7513 msgstr "B<kill>(2)"
7514
7515 #. type: Plain text
7516 #: build/C/man7/signal.7:116
7517 msgid ""
7518 "Sends a signal to a specified process, to all members of a specified process "
7519 "group, or to all processes on the system."
7520 msgstr ""
7521 "指定されたプロセスや、指定されたプロセスグループの全メンバー、 システムの全プ"
7522 "ロセスにシグナルを送る。"
7523
7524 #. type: TP
7525 #: build/C/man7/signal.7:116
7526 #, no-wrap
7527 msgid "B<killpg>(2)"
7528 msgstr "B<killpg>(2)"
7529
7530 #. type: Plain text
7531 #: build/C/man7/signal.7:119
7532 msgid "Sends a signal to all of the members of a specified process group."
7533 msgstr "指定されたプロセスグループの全メンバーにシグナルを送る。"
7534
7535 #. type: TP
7536 #: build/C/man7/signal.7:119
7537 #, no-wrap
7538 msgid "B<pthread_kill>(3)"
7539 msgstr "B<pthread_kill>(3)"
7540
7541 #. type: Plain text
7542 #: build/C/man7/signal.7:123
7543 msgid ""
7544 "Sends a signal to a specified POSIX thread in the same process as the caller."
7545 msgstr ""
7546 "呼び出し者と同じプロセス内の指定された POSIX スレッドにシグナルを送る。"
7547
7548 #. type: TP
7549 #: build/C/man7/signal.7:123
7550 #, no-wrap
7551 msgid "B<tgkill>(2)"
7552 msgstr "B<tgkill>(2)"
7553
7554 #. type: Plain text
7555 #: build/C/man7/signal.7:128
7556 msgid ""
7557 "Sends a signal to a specified thread within a specific process.  (This is "
7558 "the system call used to implement B<pthread_kill>(3).)"
7559 msgstr ""
7560 "指定されたプロセス内の指定されたスレッドにシグナルを送る (このシステムコール"
7561 "を使って B<pthread_kill>(3)  は実装されている)。"
7562
7563 #. type: TP
7564 #: build/C/man7/signal.7:128
7565 #, no-wrap
7566 msgid "B<sigqueue>(3)"
7567 msgstr "B<sigqueue>(3)"
7568
7569 #. type: Plain text
7570 #: build/C/man7/signal.7:131
7571 msgid "Sends a real-time signal with accompanying data to a specified process."
7572 msgstr "指定されたプロセスに付属データとともにリアルタイムシグナルを送る。"
7573
7574 #. type: SS
7575 #: build/C/man7/signal.7:131
7576 #, no-wrap
7577 msgid "Waiting for a signal to be caught"
7578 msgstr "シグナルが捕捉されるのを待つ"
7579
7580 #. type: Plain text
7581 #: build/C/man7/signal.7:135
7582 msgid ""
7583 "The following system calls suspend execution of the calling process or "
7584 "thread until a signal is caught (or an unhandled signal terminates the "
7585 "process):"
7586 msgstr ""
7587 "以下のシステムコールを使って、シグナルが捕捉されるまで 呼び出したプロセスやス"
7588 "レッドの実行を中断 (suspend) することができる (ハンドラーが設定されていないシ"
7589 "グナルによりそのプロセスが終了した 場合にも実行の停止は終了する)。"
7590
7591 #. type: TP
7592 #: build/C/man7/signal.7:135
7593 #, no-wrap
7594 msgid "B<pause>(2)"
7595 msgstr "B<pause>(2)"
7596
7597 #. type: Plain text
7598 #: build/C/man7/signal.7:138
7599 msgid "Suspends execution until any signal is caught."
7600 msgstr "何かシグナルが捕捉されるまで実行を停止する。"
7601
7602 #. type: TP
7603 #: build/C/man7/signal.7:138
7604 #, no-wrap
7605 msgid "B<sigsuspend>(2)"
7606 msgstr "B<sigsuspend>(2)"
7607
7608 #. type: Plain text
7609 #: build/C/man7/signal.7:142
7610 msgid ""
7611 "Temporarily changes the signal mask (see below) and suspends execution until "
7612 "one of the unmasked signals is caught."
7613 msgstr ""
7614 "一時的にシグナルマスク (下記参照) を変更し、 マスクされていないシグナルのいず"
7615 "れかが捕捉されるまで 実行を中断する。"
7616
7617 #. type: SS
7618 #: build/C/man7/signal.7:142
7619 #, no-wrap
7620 msgid "Synchronously accepting a signal"
7621 msgstr "シグナルの同期受信"
7622
7623 #. type: Plain text
7624 #: build/C/man7/signal.7:149
7625 msgid ""
7626 "Rather than asynchronously catching a signal via a signal handler, it is "
7627 "possible to synchronously accept the signal, that is, to block execution "
7628 "until the signal is delivered, at which point the kernel returns information "
7629 "about the signal to the caller.  There are two general ways to do this:"
7630 msgstr ""
7631 "シグナルハンドラー経由でシグナルを非同期 (asynchronously) で捕捉する以外に"
7632 "も、 シグナルを同期 (synchronously) して受け付けることもできる。 同期して受け"
7633 "付けるとは、シグナルが配送されるまで実行を停止 (block)  するということであ"
7634 "る。シグナルを受け付けた際に、カーネルは そのシグナルに関する情報を呼び出し者"
7635 "に返す。 これを行う一般的な方法が二つある。"
7636
7637 #. type: Plain text
7638 #: build/C/man7/signal.7:157
7639 msgid ""
7640 "B<sigwaitinfo>(2), B<sigtimedwait>(2), and B<sigwait>(3)  suspend execution "
7641 "until one of the signals in a specified set is delivered.  Each of these "
7642 "calls returns information about the delivered signal."
7643 msgstr ""
7644 "B<sigwaitinfo>(2), B<sigtimedwait>(2), B<sigwait>(3)  は、指定されたシグナル"
7645 "集合のシグナルの一つが配送されるまで実行を中断する。 どのシステムコールや関数"
7646 "でも、配送されたシグナルに関する情報が返される。"
7647
7648 #. type: Plain text
7649 #: build/C/man7/signal.7:170
7650 msgid ""
7651 "B<signalfd>(2)  returns a file descriptor that can be used to read "
7652 "information about signals that are delivered to the caller.  Each "
7653 "B<read>(2)  from this file descriptor blocks until one of the signals in the "
7654 "set specified in the B<signalfd>(2)  call is delivered to the caller.  The "
7655 "buffer returned by B<read>(2)  contains a structure describing the signal."
7656 msgstr ""
7657 "B<signalfd>(2)  が返すファイルディスクリプターを使うと、呼び出し元に配送され"
7658 "た シグナルに関する情報を読み出すことができる。 このファイルディスクリプター"
7659 "からの B<read>(2)  は、 B<signalfd>(2)  の呼び出し時に指定されたシグナル集合"
7660 "のシグナルの一つが呼び出し元に 配送されるまで停止 (block) する。 B<read>(2)  "
7661 "が返すバッファーにはシグナルに関する情報を格納した構造体が入っている。"
7662
7663 #. type: SS
7664 #: build/C/man7/signal.7:170
7665 #, no-wrap
7666 msgid "Signal mask and pending signals"
7667 msgstr "シグナルマスクと処理待ちシグナル"
7668
7669 #. type: Plain text
7670 #: build/C/man7/signal.7:177
7671 msgid ""
7672 "A signal may be I<blocked>, which means that it will not be delivered until "
7673 "it is later unblocked.  Between the time when it is generated and when it is "
7674 "delivered a signal is said to be I<pending>."
7675 msgstr ""
7676 "シグナルは I<ブロック (block)> されることがある。ブロックされると、そのシグナ"
7677 "ルは その後ブロックを解除されるまで配送されなくなる。 シグナルが生成されてか"
7678 "ら配送されるまでの間、そのシグナルは I<処理待ち (pending)> であると呼ばれる。"
7679
7680 #. type: Plain text
7681 #: build/C/man7/signal.7:186
7682 msgid ""
7683 "Each thread in a process has an independent I<signal mask>, which indicates "
7684 "the set of signals that the thread is currently blocking.  A thread can "
7685 "manipulate its signal mask using B<pthread_sigmask>(3).  In a traditional "
7686 "single-threaded application, B<sigprocmask>(2)  can be used to manipulate "
7687 "the signal mask."
7688 msgstr ""
7689 "プロセス内の各スレッドは、それぞれ独立な I<シグナルマスク (signal mask)> を持"
7690 "つ。シグナルマスクはそのスレッドが現在ブロックしている シグナル集合を示すもの"
7691 "である。 スレッドは、 B<pthread_sigmask>(3)  を使って自分のシグナルマスクを操"
7692 "作できる。 伝統的なシングルスレッドのアプリケーションでは、 "
7693 "B<sigprocmask>(2)  を使って、シグナルマスクを操作できる。"
7694
7695 #. type: Plain text
7696 #: build/C/man7/signal.7:192 build/C/man2/sigprocmask.2:126
7697 msgid ""
7698 "A child created via B<fork>(2)  inherits a copy of its parent's signal mask; "
7699 "the signal mask is preserved across B<execve>(2)."
7700 msgstr ""
7701 "B<fork>(2)  経由で作成された子プロセスは親プロセスのシグナルマスクのコピーを"
7702 "継承する。 B<execve>(2)  の前後でシグナルマスクは保持される。"
7703
7704 #. type: Plain text
7705 #: build/C/man7/signal.7:209
7706 msgid ""
7707 "A signal may be generated (and thus pending)  for a process as a whole (e."
7708 "g., when sent using B<kill>(2))  or for a specific thread (e.g., certain "
7709 "signals, such as B<SIGSEGV> and B<SIGFPE>, generated as a consequence of "
7710 "executing a specific machine-language instruction are thread directed, as "
7711 "are signals targeted at a specific thread using B<pthread_kill>(3)).  A "
7712 "process-directed signal may be delivered to any one of the threads that does "
7713 "not currently have the signal blocked.  If more than one of the threads has "
7714 "the signal unblocked, then the kernel chooses an arbitrary thread to which "
7715 "to deliver the signal."
7716 msgstr ""
7717 "生成されるシグナル (したがって処理待ちとなるシグナル) には、 プロセス全体宛て"
7718 "と特定のスレッド宛てがある。 例えば、プロセス全体宛てのシグナルは "
7719 "B<kill>(2)  を使って送信される。 特定のマシン語の命令の実行の結果として生成さ"
7720 "れる、 B<SIGSEGV> や B<SIGFPE> などのシグナルは、スレッド宛てとなる。 また、 "
7721 "B<pthread_kill>(3)  を使って特定のスレッド宛てに生成されたシグナルも スレッド"
7722 "宛てとなる。 プロセス宛てのシグナルは、そのシグナルをブロックしていないスレッ"
7723 "ドのうち いずれかの一つに配送することができる。そのシグナルをブロックしていな"
7724 "い スレッドが複数ある場合、シグナルを配送するスレッドはカーネルが 無作為に選"
7725 "択する。"
7726
7727 #. type: Plain text
7728 #: build/C/man7/signal.7:216
7729 msgid ""
7730 "A thread can obtain the set of signals that it currently has pending using "
7731 "B<sigpending>(2).  This set will consist of the union of the set of pending "
7732 "process-directed signals and the set of signals pending for the calling "
7733 "thread."
7734 msgstr ""
7735 "スレッドは、 B<sigpending>(2)  を使って、現在処理待ちのシグナル集合を取得する"
7736 "ことができる。 この集合は、プロセス宛ての処理待ちシグナルと 呼び出したスレッ"
7737 "ド宛てのシグナルの両方から構成される。"
7738
7739 #. type: Plain text
7740 #: build/C/man7/signal.7:222 build/C/man2/sigpending.2:85
7741 msgid ""
7742 "A child created via B<fork>(2)  initially has an empty pending signal set; "
7743 "the pending signal set is preserved across an B<execve>(2)."
7744 msgstr ""
7745 "B<fork>(2)  経由で作成された子プロセスでは、処理待ちのシグナル集合は空の集合"
7746 "で初期化される。 B<execve>(2)  の前後で、処理待ちのシグナル集合は保持される。"
7747
7748 #. type: SS
7749 #: build/C/man7/signal.7:222
7750 #, no-wrap
7751 msgid "Standard signals"
7752 msgstr "標準シグナル"
7753
7754 #. type: Plain text
7755 #: build/C/man7/signal.7:234
7756 msgid ""
7757 "Linux supports the standard signals listed below.  Several signal numbers "
7758 "are architecture-dependent, as indicated in the \"Value\" column.  (Where "
7759 "three values are given, the first one is usually valid for alpha and sparc, "
7760 "the middle one for x86, arm, and most other architectures, and the last one "
7761 "for mips.  (Values for parisc are I<not> shown; see the Linux kernel source "
7762 "for signal numbering on that architecture.)  A - denotes that a signal is "
7763 "absent on the corresponding architecture.)"
7764 msgstr ""
7765 "Linux は以下に示す標準シグナルに対応している。シグナル番号の一部はアーキテク"
7766 "チャー依存であり、\"値\" 欄に示す通りである。 (3つの値が書かれているものは、 "
7767 "1つ目が alpha と sparc で通常有効な値、 真ん中が x86, arm や他のほとんどの"
7768 "アーキテクチャーでの有効な値、最後が mips での値である。 (parisc での値は記載"
7769 "されてI<いない>。 parisc でのシグナル番号は Linux カーネルソースを参照してほ"
7770 "しい)。 - はそのアーキテクチャーにおいて対応するシグナルがないことを示す。)"
7771
7772 #. type: Plain text
7773 #: build/C/man7/signal.7:236
7774 msgid "First the signals described in the original POSIX.1-1990 standard."
7775 msgstr "最初に、POSIX.1-1990 に定義されているシグナルを示す。"
7776
7777 #. type: tbl table
7778 #: build/C/man7/signal.7:240 build/C/man7/signal.7:276
7779 #: build/C/man7/signal.7:305
7780 #, no-wrap
7781 msgid "Signal\tValue\tAction\tComment\n"
7782 msgstr "シグナル\t値\t動作\tコメント\n"
7783
7784 #. type: tbl table
7785 #: build/C/man7/signal.7:241
7786 #, no-wrap
7787 msgid "SIGHUP\t\\01\tTerm\tHangup detected on controlling terminal\n"
7788 msgstr "SIGHUP\t\\01\tTerm\t制御端末(controlling terminal)のハングアップ検出、\n"
7789
7790 #. type: tbl table
7791 #: build/C/man7/signal.7:242
7792 #, no-wrap
7793 msgid "\t\t\tor death of controlling process\n"
7794 msgstr "\t\t\tまたは制御しているプロセスの死\n"
7795
7796 #. type: tbl table
7797 #: build/C/man7/signal.7:243
7798 #, no-wrap
7799 msgid "SIGINT\t\\02\tTerm\tInterrupt from keyboard\n"
7800 msgstr "SIGINT\t\\02\tTerm\tキーボードからの割り込み (Interrupt)\n"
7801
7802 #. type: tbl table
7803 #: build/C/man7/signal.7:244
7804 #, no-wrap
7805 msgid "SIGQUIT\t\\03\tCore\tQuit from keyboard\n"
7806 msgstr "SIGQUIT\t\\03\tCore\tキーボードによる中止 (Quit)\n"
7807
7808 #. type: tbl table
7809 #: build/C/man7/signal.7:245
7810 #, no-wrap
7811 msgid "SIGILL\t\\04\tCore\tIllegal Instruction\n"
7812 msgstr "SIGILL\t\\04\tCore\t不正な命令\n"
7813
7814 #. type: tbl table
7815 #: build/C/man7/signal.7:246
7816 #, no-wrap
7817 msgid "SIGABRT\t\\06\tCore\tAbort signal from B<abort>(3)\n"
7818 msgstr "SIGABRT\t\\06\tCore\tB<abort>(3) からの中断 (Abort) シグナル\n"
7819
7820 #. type: tbl table
7821 #: build/C/man7/signal.7:247
7822 #, no-wrap
7823 msgid "SIGFPE\t\\08\tCore\tFloating point exception\n"
7824 msgstr "SIGFPE\t\\08\tCore\t浮動小数点例外\n"
7825
7826 #. type: tbl table
7827 #: build/C/man7/signal.7:248
7828 #, no-wrap
7829 msgid "SIGKILL\t\\09\tTerm\tKill signal\n"
7830 msgstr "SIGKILL\t\\09\tTerm\tKill シグナル\n"
7831
7832 #. type: tbl table
7833 #: build/C/man7/signal.7:249
7834 #, no-wrap
7835 msgid "SIGSEGV\t11\tCore\tInvalid memory reference\n"
7836 msgstr "SIGSEGV\t11\tCore\t不正なメモリー参照\n"
7837
7838 #. type: tbl table
7839 #: build/C/man7/signal.7:250
7840 #, no-wrap
7841 msgid "SIGPIPE\t13\tTerm\tBroken pipe: write to pipe with no\n"
7842 msgstr "SIGPIPE\t13\tTerm\tパイプ破壊:\n"
7843
7844 #. type: tbl table
7845 #: build/C/man7/signal.7:251
7846 #, no-wrap
7847 msgid "\t\t\treaders\n"
7848 msgstr "\t\t\t読み手の無いパイプへの書き出し\n"
7849
7850 #. type: tbl table
7851 #: build/C/man7/signal.7:252
7852 #, no-wrap
7853 msgid "SIGALRM\t14\tTerm\tTimer signal from B<alarm>(2)\n"
7854 msgstr "SIGALRM\t14\tTerm\tB<alarm>(2) からのタイマーシグナル\n"
7855
7856 #. type: tbl table
7857 #: build/C/man7/signal.7:253
7858 #, no-wrap
7859 msgid "SIGTERM\t15\tTerm\tTermination signal\n"
7860 msgstr "SIGTERM\t15\tTerm\t終了 (termination) シグナル\n"
7861
7862 #. type: tbl table
7863 #: build/C/man7/signal.7:254
7864 #, no-wrap
7865 msgid "SIGUSR1\t30,10,16\tTerm\tUser-defined signal 1\n"
7866 msgstr "SIGUSR1\t30,10,16\tTerm\tユーザー定義シグナル 1\n"
7867
7868 #. type: tbl table
7869 #: build/C/man7/signal.7:255
7870 #, no-wrap
7871 msgid "SIGUSR2\t31,12,17\tTerm\tUser-defined signal 2\n"
7872 msgstr "SIGUSR2\t31,12,17\tTerm\tユーザー定義シグナル 2\n"
7873
7874 #. type: tbl table
7875 #: build/C/man7/signal.7:256
7876 #, no-wrap
7877 msgid "SIGCHLD\t20,17,18\tIgn\tChild stopped or terminated\n"
7878 msgstr "SIGCHLD\t20,17,18\tIgn\t子プロセスの一時停止 (stop) または終了\n"
7879
7880 #. type: tbl table
7881 #: build/C/man7/signal.7:257
7882 #, no-wrap
7883 msgid "SIGCONT\t19,18,25\tCont\tContinue if stopped\n"
7884 msgstr "SIGCONT\t19,18,25\tCont\t一時停止 (stop) からの再開\n"
7885
7886 #. type: tbl table
7887 #: build/C/man7/signal.7:258
7888 #, no-wrap
7889 msgid "SIGSTOP\t17,19,23\tStop\tStop process\n"
7890 msgstr "SIGSTOP\t17,19,23\tStop\tプロセスの一時停止 (stop)\n"
7891
7892 #. type: tbl table
7893 #: build/C/man7/signal.7:259
7894 #, no-wrap
7895 msgid "SIGTSTP\t18,20,24\tStop\tStop typed at terminal\n"
7896 msgstr "SIGTSTP\t18,20,24\tStop\t端末より入力された一時停止 (stop)\n"
7897
7898 #. type: tbl table
7899 #: build/C/man7/signal.7:260
7900 #, no-wrap
7901 msgid "SIGTTIN\t21,21,26\tStop\tTerminal input for background process\n"
7902 msgstr "SIGTTIN\t21,21,26\tStop\tバックグランドプロセスの端末入力\n"
7903
7904 #. type: tbl table
7905 #: build/C/man7/signal.7:261
7906 #, no-wrap
7907 msgid "SIGTTOU\t22,22,27\tStop\tTerminal output for background process\n"
7908 msgstr "SIGTTOU\t22,22,27\tStop\tバックグランドプロセスの端末出力\n"
7909
7910 #. type: Plain text
7911 #: build/C/man7/signal.7:269
7912 msgid ""
7913 "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught, blocked, or ignored."
7914 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> はキャッチ、ブロック、無視できない。"
7915
7916 #. type: Plain text
7917 #: build/C/man7/signal.7:272
7918 msgid ""
7919 "Next the signals not in the POSIX.1-1990 standard but described in SUSv2 and "
7920 "POSIX.1-2001."
7921 msgstr ""
7922 "次に、 POSIX.1-1990 標準にはないが、 SUSv2 と POSIX.1-2001 に記述されているシ"
7923 "グナルを示す。"
7924
7925 #. type: tbl table
7926 #: build/C/man7/signal.7:277
7927 #, no-wrap
7928 msgid "SIGBUS\t10,7,10\tCore\tBus error (bad memory access)\n"
7929 msgstr "SIGBUS\t10,7,10\tCore\tバスエラー (不正なメモリーアクセス)\n"
7930
7931 #. type: tbl table
7932 #: build/C/man7/signal.7:278
7933 #, no-wrap
7934 msgid "SIGPOLL\t\tTerm\tPollable event (Sys V).\n"
7935 msgstr "SIGPOLL\t\tTerm\tポーリング可能なイベント (Sys V)。\n"
7936
7937 #. type: tbl table
7938 #: build/C/man7/signal.7:279
7939 #, no-wrap
7940 msgid "\t\t\tSynonym for B<SIGIO>\n"
7941 msgstr "\t\t\tB<SIGIO> と同義\n"
7942
7943 #. type: tbl table
7944 #: build/C/man7/signal.7:280
7945 #, no-wrap
7946 msgid "SIGPROF\t27,27,29\tTerm\tProfiling timer expired\n"
7947 msgstr "SIGPROF\t27,27,29\tTerm\tprofiling タイマーの時間切れ\n"
7948
7949 #. type: tbl table
7950 #: build/C/man7/signal.7:281
7951 #, no-wrap
7952 msgid "SIGSYS\t12,31,12\tCore\tBad argument to routine (SVr4)\n"
7953 msgstr "SIGSYS\t12,31,12\tCore\tルーチンへの引き数が不正 (SVr4)\n"
7954
7955 #. type: tbl table
7956 #: build/C/man7/signal.7:282
7957 #, no-wrap
7958 msgid "SIGTRAP\t5\tCore\tTrace/breakpoint trap\n"
7959 msgstr "SIGTRAP\t5\tCore\tトレース/ブレークポイント トラップ\n"
7960
7961 #. type: tbl table
7962 #: build/C/man7/signal.7:283
7963 #, no-wrap
7964 msgid "SIGURG\t16,23,21\tIgn\tUrgent condition on socket (4.2BSD)\n"
7965 msgstr "SIGURG\t16,23,21\tIgn\tソケットの緊急事態 (urgent condition) (4.2BSD)\n"
7966
7967 #. type: tbl table
7968 #: build/C/man7/signal.7:284
7969 #, no-wrap
7970 msgid "SIGVTALRM\t26,26,28\tTerm\tVirtual alarm clock (4.2BSD)\n"
7971 msgstr "SIGVTALRM\t26,26,28\tTerm\t仮想アラームクロック (4.2BSD)\n"
7972
7973 #. type: tbl table
7974 #: build/C/man7/signal.7:285
7975 #, no-wrap
7976 msgid "SIGXCPU\t24,24,30\tCore\tCPU time limit exceeded (4.2BSD)\n"
7977 msgstr "SIGXCPU\t24,24,30\tCore\tCPU時間制限超過 (4.2BSD)\n"
7978
7979 #. type: tbl table
7980 #: build/C/man7/signal.7:286
7981 #, no-wrap
7982 msgid "SIGXFSZ\t25,25,31\tCore\tFile size limit exceeded (4.2BSD)\n"
7983 msgstr "SIGXFSZ\t25,25,31\tCore\tファイルサイズ制限の超過 (4.2BSD)\n"
7984
7985 #. type: Plain text
7986 #: build/C/man7/signal.7:299
7987 msgid ""
7988 "Up to and including Linux 2.2, the default behavior for B<SIGSYS>, "
7989 "B<SIGXCPU>, B<SIGXFSZ>, and (on architectures other than SPARC and MIPS)  "
7990 "B<SIGBUS> was to terminate the process (without a core dump).  (On some "
7991 "other UNIX systems the default action for B<SIGXCPU> and B<SIGXFSZ> is to "
7992 "terminate the process without a core dump.)  Linux 2.4 conforms to the "
7993 "POSIX.1-2001 requirements for these signals, terminating the process with a "
7994 "core dump."
7995 msgstr ""
7996 "Linux 2.2 以前では、 B<SIGSYS>, B<SIGXCPU>, B<SIGXFSZ> および SPARC と MIPS "
7997 "以外のアーキテクチャーでの B<SIGBUS> のデフォルトの振る舞いは (コアダンプ出力"
7998 "なしの) プロセス終了であった。 (他の UNIX システムにも B<SIGXCPU> と "
7999 "B<SIGXFSZ> のデフォルトの動作がコアダンプなしのプロセス終了のものがある。)  "
8000 "Linux 2.4 では、POSIX.1-2001 での要求仕様に準拠して、 これらのシグナルで、プ"
8001 "ロセスを終了させ、コアダンプを出力する ようになっている。"
8002
8003 #. type: Plain text
8004 #: build/C/man7/signal.7:301
8005 msgid "Next various other signals."
8006 msgstr "次にその他の各種シグナルを示す。"
8007
8008 #. type: tbl table
8009 #: build/C/man7/signal.7:306
8010 #, no-wrap
8011 msgid "SIGIOT\t6\tCore\tIOT trap. A synonym for B<SIGABRT>\n"
8012 msgstr "SIGIOT\t6\tCore\tIOT トラップ。B<SIGABRT> と同義\n"
8013
8014 #. type: tbl table
8015 #: build/C/man7/signal.7:307
8016 #, no-wrap
8017 msgid "SIGEMT\t7,-,7\tTerm\n"
8018 msgstr "SIGEMT\t7,-,7\tTerm\n"
8019
8020 #. type: tbl table
8021 #: build/C/man7/signal.7:308
8022 #, no-wrap
8023 msgid "SIGSTKFLT\t-,16,-\tTerm\tStack fault on coprocessor (unused)\n"
8024 msgstr "SIGSTKFLT\t-,16,-\tA\t数値演算プロセッサにおけるスタックフォルト (未使用)\n"
8025
8026 #. type: tbl table
8027 #: build/C/man7/signal.7:309
8028 #, no-wrap
8029 msgid "SIGIO\t23,29,22\tTerm\tI/O now possible (4.2BSD)\n"
8030 msgstr "SIGIO\t23,29,22\tTerm\t入出力が可能になった (4.2BSD)\n"
8031
8032 #. type: tbl table
8033 #: build/C/man7/signal.7:310
8034 #, no-wrap
8035 msgid "SIGCLD\t-,-,18\tIgn\tA synonym for B<SIGCHLD>\n"
8036 msgstr "SIGCLD\t-,-,18\tIgn\tB<SIGCHLD> と同義\n"
8037
8038 #. type: tbl table
8039 #: build/C/man7/signal.7:311
8040 #, no-wrap
8041 msgid "SIGPWR\t29,30,19\tTerm\tPower failure (System V)\n"
8042 msgstr "SIGPWR\t29,30,19\tTerm\t電源喪失 (Power failure) (System V)\n"
8043
8044 #. type: tbl table
8045 #: build/C/man7/signal.7:312
8046 #, no-wrap
8047 msgid "SIGINFO\t29,-,-\t\tA synonym for B<SIGPWR>\n"
8048 msgstr "SIGINFO\t29,-,-\t \tB<SIGPWR> と同義\n"
8049
8050 #. type: tbl table
8051 #: build/C/man7/signal.7:313
8052 #, no-wrap
8053 msgid "SIGLOST\t-,-,-\tTerm\tFile lock lost (unused)\n"
8054 msgstr "SIGLOST\t-,-,-\tTerm\tファイルロックが失われた (未使用)\n"
8055
8056 #. type: tbl table
8057 #: build/C/man7/signal.7:314
8058 #, no-wrap
8059 msgid "SIGWINCH\t28,28,20\tIgn\tWindow resize signal (4.3BSD, Sun)\n"
8060 msgstr "SIGWINCH\t28,28,20\tIgn\tウィンドウ リサイズ シグナル (4.3BSD, Sun)\n"
8061
8062 #. type: tbl table
8063 #: build/C/man7/signal.7:315
8064 #, no-wrap
8065 msgid "SIGUNUSED\t-,31,-\tCore\tSynonymous with B<SIGSYS>\n"
8066 msgstr "SIGUNUSED\t-,31,-\tCore\tB<SIGSYS> と同義\n"
8067
8068 #. type: Plain text
8069 #: build/C/man7/signal.7:325
8070 msgid ""
8071 "(Signal 29 is B<SIGINFO> / B<SIGPWR> on an alpha but B<SIGLOST> on a sparc.)"
8072 msgstr ""
8073 "(シグナル 29 は alpha では B<SIGINFO> / B<SIGPWR> だが、sparc では "
8074 "B<SIGLOST> である。)"
8075
8076 #. type: Plain text
8077 #: build/C/man7/signal.7:331
8078 msgid ""
8079 "B<SIGEMT> is not specified in POSIX.1-2001, but nevertheless appears on most "
8080 "other UNIX systems, where its default action is typically to terminate the "
8081 "process with a core dump."
8082 msgstr ""
8083 "B<SIGEMT> は POSIX.1-2001 に規定されていないが、 その他の多くの UNIX システム"
8084 "に存在する。 デフォルトの動作は多くの場合、コアダンプ出力を伴うプロセスの終了"
8085 "である。"
8086
8087 #. type: Plain text
8088 #: build/C/man7/signal.7:335
8089 msgid ""
8090 "B<SIGPWR> (which is not specified in POSIX.1-2001) is typically ignored by "
8091 "default on those other UNIX systems where it appears."
8092 msgstr ""
8093 "B<SIGPWR> は (POSIX.1-2001 に規定されていないが) このシグナルが存在する 他の "
8094 "UNIX システムでは多くの場合、デフォルト動作は無視である。"
8095
8096 #. type: Plain text
8097 #: build/C/man7/signal.7:339
8098 msgid ""
8099 "B<SIGIO> (which is not specified in POSIX.1-2001) is ignored by default on "
8100 "several other UNIX systems."
8101 msgstr ""
8102 "B<SIGIO> は (POSIX.1-2001 に規定されていないが) いくつかの他の UNIX システム"
8103 "では デフォルト動作は無視である。"
8104
8105 #.  parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31
8106 #. type: Plain text
8107 #: build/C/man7/signal.7:346
8108 msgid ""
8109 "Where defined, B<SIGUNUSED> is synonymous with B<SIGSYS> on most "
8110 "architectures."
8111 msgstr ""
8112 "B<SIGUNUSED> が定義されている場合には、ほとんどのアーキテクチャーで "
8113 "B<SIGSYS> の同義語となっている。"
8114
8115 #. type: SS
8116 #: build/C/man7/signal.7:346
8117 #, no-wrap
8118 msgid "Real-time signals"
8119 msgstr "リアルタイムシグナル"
8120
8121 #. type: Plain text
8122 #: build/C/man7/signal.7:356
8123 msgid ""
8124 "Linux supports real-time signals as originally defined in the POSIX.1b real-"
8125 "time extensions (and now included in POSIX.1-2001).  The range of supported "
8126 "real-time signals is defined by the macros B<SIGRTMIN> and B<SIGRTMAX>.  "
8127 "POSIX.1-2001 requires that an implementation support at least "
8128 "B<_POSIX_RTSIG_MAX> (8) real-time signals."
8129 msgstr ""
8130 "Linux はリアルタイムシグナルをサポートしている。 リアルタイムシグナルは元々 "
8131 "POSIX.1b のリアルタイム拡張で定義されて いるものであり、現在では "
8132 "POSIX.1-2001 に含まれている。 対応しているリアルタイムシグナルの範囲は、マク"
8133 "ロ B<SIGRTMIN> と B<SIGRTMAX> で定義される。 POSIX.1-2001 では、少なくとも "
8134 "B<_POSIX_RTSIG_MAX> (8) 個のリアルタイムシグナルに対応した実装が要求されてい"
8135 "る。"
8136
8137 #. type: Plain text
8138 #: build/C/man7/signal.7:378
8139 msgid ""
8140 "The Linux kernel supports a range of 32 different real-time signals, "
8141 "numbered 33 to 64.  However, the glibc POSIX threads implementation "
8142 "internally uses two (for NPTL) or three (for LinuxThreads) real-time signals "
8143 "(see B<pthreads>(7)), and adjusts the value of B<SIGRTMIN> suitably (to 34 "
8144 "or 35).  Because the range of available real-time signals varies according "
8145 "to the glibc threading implementation (and this variation can occur at run "
8146 "time according to the available kernel and glibc), and indeed the range of "
8147 "real-time signals varies across UNIX systems, programs should I<never refer "
8148 "to real-time signals using hard-coded numbers>, but instead should always "
8149 "refer to real-time signals using the notation B<SIGRTMIN>+n, and include "
8150 "suitable (run-time) checks that B<SIGRTMIN>+n does not exceed B<SIGRTMAX>."
8151 msgstr ""
8152 "Linux は、32 個の異なるリアルタイムシグナルに対応しており、 その番号は 33 か"
8153 "ら 64 である。 しかしながら、glibc の POSIX スレッド実装は、 内部で 2個 "
8154 "(NPTL の場合) か 3個 (LinuxThreads の場合) の リアルタイムシグナルを使用して"
8155 "おり (B<pthreads>(7)  参照)、 B<SIGRTMIN> の値を適切に (34 か 35 に) 調整す"
8156 "る。 利用可能なリアルタイムシグナルの範囲は glibc のスレッド実装により 異なる"
8157 "し (使用するカーネルと glibc により実行時にも変化する)、 UNIX システムの種類"
8158 "によっても異なる。したがって、 プログラムでは「ハードコーディングした数字を"
8159 "使ってのリアルタイムシグナルの 参照は決してすべきではなく」、代わりに "
8160 "B<SIGRTMIN>+n の形で参照すべきである。また、 B<SIGRTMIN>+n が B<SIGRTMAX> を"
8161 "超えていないかのチェックを (実行時に) 適切に行うべきである。"
8162
8163 #. type: Plain text
8164 #: build/C/man7/signal.7:382
8165 msgid ""
8166 "Unlike standard signals, real-time signals have no predefined meanings: the "
8167 "entire set of real-time signals can be used for application-defined purposes."
8168 msgstr ""
8169 "標準シグナルと異なり、リアルタイムシグナルには 事前に定義された意味はない。 "
8170 "リアルタイムシグナルの全部をアプリケーションで定義した用途に使える。"
8171
8172 #. type: Plain text
8173 #: build/C/man7/signal.7:385
8174 msgid ""
8175 "The default action for an unhandled real-time signal is to terminate the "
8176 "receiving process."
8177 msgstr ""
8178 "ハンドリングしないリアルタイムシグナルのデフォルトの動作は 受信したプロセスの"
8179 "終了である。"
8180
8181 #. type: Plain text
8182 #: build/C/man7/signal.7:387
8183 msgid "Real-time signals are distinguished by the following:"
8184 msgstr "リアルタイムシグナルは以下の特徴がある:"
8185
8186 #. type: Plain text
8187 #: build/C/man7/signal.7:391
8188 msgid ""
8189 "Multiple instances of real-time signals can be queued.  By contrast, if "
8190 "multiple instances of a standard signal are delivered while that signal is "
8191 "currently blocked, then only one instance is queued."
8192 msgstr ""
8193 "リアルタイムシグナルは複数の実体をキューに入れることができる。 一方、標準シグ"
8194 "ナルの場合、そのシグナルがブロックされている間に 同じシグナルの複数のインスタ"
8195 "ンスが配送されても、 1 つだけがキューに入れられる。"
8196
8197 #. type: Plain text
8198 #: build/C/man7/signal.7:411
8199 msgid ""
8200 "If the signal is sent using B<sigqueue>(3), an accompanying value (either an "
8201 "integer or a pointer) can be sent with the signal.  If the receiving process "
8202 "establishes a handler for this signal using the B<SA_SIGINFO> flag to "
8203 "B<sigaction>(2), then it can obtain this data via the I<si_value> field of "
8204 "the I<siginfo_t> structure passed as the second argument to the handler.  "
8205 "Furthermore, the I<si_pid> and I<si_uid> fields of this structure can be "
8206 "used to obtain the PID and real user ID of the process sending the signal."
8207 msgstr ""
8208 "シグナルが B<sigqueue>(3)  を用いて送信された場合、 付属データ (整数かポイン"
8209 "ター) をシグナルと共に送信できる。 受信側プロセスが B<sigaction>(2)  に "
8210 "B<SA_SIGINFO> フラグを指定してシグナルハンドラーを設定した場合、 このデータ"
8211 "は I<siginfo_t> 構造体の I<si_value> フィールド経由でハンドラーの第 2 引き数"
8212 "として渡され、 利用することができる。 さらに、この構造体の I<si_pid> と "
8213 "I<si_uid> フィールドでシグナルを送信したプロセスの PID と実ユーザー ID を 得"
8214 "ることができる。"
8215
8216 #. type: Plain text
8217 #: build/C/man7/signal.7:420
8218 msgid ""
8219 "Real-time signals are delivered in a guaranteed order.  Multiple real-time "
8220 "signals of the same type are delivered in the order they were sent.  If "
8221 "different real-time signals are sent to a process, they are delivered "
8222 "starting with the lowest-numbered signal.  (I.e., low-numbered signals have "
8223 "highest priority.)  By contrast, if multiple standard signals are pending "
8224 "for a process, the order in which they are delivered is unspecified."
8225 msgstr ""
8226 "リアルタイムシグナルでは配送される順序が保証される。 同じタイプのリアルタイム"
8227 "シグナルは送信された順番に到着する。 異なるリアルタイムシグナルが一つのプロセ"
8228 "スに送信された場合、 番号の小さいシグナルから先に到着する。 (つまり小さい番号"
8229 "のシグナルが高い優先順位を持つ。)  対照的に、一つのプロセスに対して複数の標準"
8230 "シグナルが処理待ちとなった場合、 これらのシグナルが配送される順序は不定であ"
8231 "る。"
8232
8233 #. type: Plain text
8234 #: build/C/man7/signal.7:425
8235 msgid ""
8236 "If both standard and real-time signals are pending for a process, POSIX "
8237 "leaves it unspecified which is delivered first.  Linux, like many other "
8238 "implementations, gives priority to standard signals in this case."
8239 msgstr ""
8240 "一つのプロセスに対して標準シグナルとリアルタイムシグナルの両方が 処理待ちの場"
8241 "合、POSIX はどちらが先に配送されるかを規定していない。 Linux では、他の多くの"
8242 "実装と同様、このような場合には 標準シグナルが優先される。"
8243
8244 #. type: Plain text
8245 #: build/C/man7/signal.7:448
8246 msgid ""
8247 "According to POSIX, an implementation should permit at least "
8248 "B<_POSIX_SIGQUEUE_MAX> (32) real-time signals to be queued to a process.  "
8249 "However, Linux does things differently.  In kernels up to and including "
8250 "2.6.7, Linux imposes a system-wide limit on the number of queued real-time "
8251 "signals for all processes.  This limit can be viewed and (with privilege) "
8252 "changed via the I</proc/sys/kernel/rtsig-max> file.  A related file, I</proc/"
8253 "sys/kernel/rtsig-nr>, can be used to find out how many real-time signals are "
8254 "currently queued.  In Linux 2.6.8, these I</proc> interfaces were replaced "
8255 "by the B<RLIMIT_SIGPENDING> resource limit, which specifies a per-user limit "
8256 "for queued signals; see B<setrlimit>(2)  for further details."
8257 msgstr ""
8258 "POSIX によれば、1 プロセス毎に最低 B<_POSIX_SIGQUEUE_MAX> (32) 個のリアルタイ"
8259 "ムシグナルをキューに入れられるべきとしている。 しかし、 Linux では違った実装"
8260 "になっている。カーネル 2.6.7 までは (2.6.7 を含む)、全プロセスでキューに入っ"
8261 "ているリアルタイムシグナル の数の合計についてシステム全体での制限がある。 こ"
8262 "の制限は I</proc/sys/kernel/rtsig-max> ファイルで見ることができ、 (権限があれ"
8263 "ば) 変更もできる。 関係するファイルとして、 I</proc/sys/kernel/rtsig-nr> を見"
8264 "ることで、いくつのリアルタイムシグナルが現在キューに入っているかを 知ることが"
8265 "できる。 Linux 2.6.8 で、これらの I</proc> 経由のインターフェースは、 "
8266 "B<RLIMIT_SIGPENDING> リソース制限に置き換えられた。 これは、キューに入るシグ"
8267 "ナル数に関してユーザー単位に 上限を指定するものである。 詳しくは "
8268 "B<setrlimit>(2)  を参照。"
8269
8270 #. type: SS
8271 #: build/C/man7/signal.7:448
8272 #, no-wrap
8273 msgid "Async-signal-safe functions"
8274 msgstr "非同期シグナルで安全な関数 (async-signal-safe functions)"
8275
8276 #. type: Plain text
8277 #: build/C/man7/signal.7:457
8278 msgid ""
8279 "A signal handler function must be very careful, since processing elsewhere "
8280 "may be interrupted at some arbitrary point in the execution of the program.  "
8281 "POSIX has the concept of \"safe function\".  If a signal interrupts the "
8282 "execution of an unsafe function, and I<handler> calls an unsafe function, "
8283 "then the behavior of the program is undefined."
8284 msgstr ""
8285 "シグナルハンドラー関数には非常に注意しなければならない。 他の場所の処理はプロ"
8286 "グラム実行の任意の箇所で中断される可能性があるためである。 POSIX には「安全な"
8287 "関数 (safe function)」という概念がある。 シグナルが安全でない関数の実行を中断"
8288 "し、かつ I<handler> が安全でない関数を呼び出した場合、プログラムの挙動は未定"
8289 "義である。"
8290
8291 #. type: Plain text
8292 #: build/C/man7/signal.7:461
8293 msgid ""
8294 "POSIX.1-2004 (also known as POSIX.1-2001 Technical Corrigendum 2)  requires "
8295 "an implementation to guarantee that the following functions can be safely "
8296 "called inside a signal handler:"
8297 msgstr ""
8298 "POSIX.1-2004 (POSIX.1-2001 Technical Corrigendum (正誤表) 2 とも言う) では、 "
8299 "シグナルハンドラー内での安全な呼び出しを保証することが必須の関数として 以下が"
8300 "規定されている。"
8301
8302 #. type: Plain text
8303 #: build/C/man7/signal.7:582
8304 #, no-wrap
8305 msgid ""
8306 "_Exit()\n"
8307 "_exit()\n"
8308 "abort()\n"
8309 "accept()\n"
8310 "access()\n"
8311 "aio_error()\n"
8312 "aio_return()\n"
8313 "aio_suspend()\n"
8314 "alarm()\n"
8315 "bind()\n"
8316 "cfgetispeed()\n"
8317 "cfgetospeed()\n"
8318 "cfsetispeed()\n"
8319 "cfsetospeed()\n"
8320 "chdir()\n"
8321 "chmod()\n"
8322 "chown()\n"
8323 "clock_gettime()\n"
8324 "close()\n"
8325 "connect()\n"
8326 "creat()\n"
8327 "dup()\n"
8328 "dup2()\n"
8329 "execle()\n"
8330 "execve()\n"
8331 "fchmod()\n"
8332 "fchown()\n"
8333 "fcntl()\n"
8334 "fdatasync()\n"
8335 "fork()\n"
8336 "fpathconf()\n"
8337 "fstat()\n"
8338 "fsync()\n"
8339 "ftruncate()\n"
8340 "getegid()\n"
8341 "geteuid()\n"
8342 "getgid()\n"
8343 "getgroups()\n"
8344 "getpeername()\n"
8345 "getpgrp()\n"
8346 "getpid()\n"
8347 "getppid()\n"
8348 "getsockname()\n"
8349 "getsockopt()\n"
8350 "getuid()\n"
8351 "kill()\n"
8352 "link()\n"
8353 "listen()\n"
8354 "lseek()\n"
8355 "lstat()\n"
8356 "mkdir()\n"
8357 "mkfifo()\n"
8358 "open()\n"
8359 "pathconf()\n"
8360 "pause()\n"
8361 "pipe()\n"
8362 "poll()\n"
8363 "posix_trace_event()\n"
8364 "pselect()\n"
8365 "raise()\n"
8366 "read()\n"
8367 "readlink()\n"
8368 "recv()\n"
8369 "recvfrom()\n"
8370 "recvmsg()\n"
8371 "rename()\n"
8372 "rmdir()\n"
8373 "select()\n"
8374 "sem_post()\n"
8375 "send()\n"
8376 "sendmsg()\n"
8377 "sendto()\n"
8378 "setgid()\n"
8379 "setpgid()\n"
8380 "setsid()\n"
8381 "setsockopt()\n"
8382 "setuid()\n"
8383 "shutdown()\n"
8384 "sigaction()\n"
8385 "sigaddset()\n"
8386 "sigdelset()\n"
8387 "sigemptyset()\n"
8388 "sigfillset()\n"
8389 "sigismember()\n"
8390 "signal()\n"
8391 "sigpause()\n"
8392 "sigpending()\n"
8393 "sigprocmask()\n"
8394 "sigqueue()\n"
8395 "sigset()\n"
8396 "sigsuspend()\n"
8397 "sleep()\n"
8398 "sockatmark()\n"
8399 "socket()\n"
8400 "socketpair()\n"
8401 "stat()\n"
8402 "symlink()\n"
8403 "sysconf()\n"
8404 "tcdrain()\n"
8405 "tcflow()\n"
8406 "tcflush()\n"
8407 "tcgetattr()\n"
8408 "tcgetpgrp()\n"
8409 "tcsendbreak()\n"
8410 "tcsetattr()\n"
8411 "tcsetpgrp()\n"
8412 "time()\n"
8413 "timer_getoverrun()\n"
8414 "timer_gettime()\n"
8415 "timer_settime()\n"
8416 "times()\n"
8417 "umask()\n"
8418 "uname()\n"
8419 "unlink()\n"
8420 "utime()\n"
8421 "wait()\n"
8422 "waitpid()\n"
8423 "write()\n"
8424 msgstr ""
8425 "_Exit()\n"
8426 "_exit()\n"
8427 "abort()\n"
8428 "accept()\n"
8429 "access()\n"
8430 "aio_error()\n"
8431 "aio_return()\n"
8432 "aio_suspend()\n"
8433 "alarm()\n"
8434 "bind()\n"
8435 "cfgetispeed()\n"
8436 "cfgetospeed()\n"
8437 "cfsetispeed()\n"
8438 "cfsetospeed()\n"
8439 "chdir()\n"
8440 "chmod()\n"
8441 "chown()\n"
8442 "clock_gettime()\n"
8443 "close()\n"
8444 "connect()\n"
8445 "creat()\n"
8446 "dup()\n"
8447 "dup2()\n"
8448 "execle()\n"
8449 "execve()\n"
8450 "fchmod()\n"
8451 "fchown()\n"
8452 "fcntl()\n"
8453 "fdatasync()\n"
8454 "fork()\n"
8455 "fpathconf()\n"
8456 "fstat()\n"
8457 "fsync()\n"
8458 "ftruncate()\n"
8459 "getegid()\n"
8460 "geteuid()\n"
8461 "getgid()\n"
8462 "getgroups()\n"
8463 "getpeername()\n"
8464 "getpgrp()\n"
8465 "getpid()\n"
8466 "getppid()\n"
8467 "getsockname()\n"
8468 "getsockopt()\n"
8469 "getuid()\n"
8470 "kill()\n"
8471 "link()\n"
8472 "listen()\n"
8473 "lseek()\n"
8474 "lstat()\n"
8475 "mkdir()\n"
8476 "mkfifo()\n"
8477 "open()\n"
8478 "pathconf()\n"
8479 "pause()\n"
8480 "pipe()\n"
8481 "poll()\n"
8482 "posix_trace_event()\n"
8483 "pselect()\n"
8484 "raise()\n"
8485 "read()\n"
8486 "readlink()\n"
8487 "recv()\n"
8488 "recvfrom()\n"
8489 "recvmsg()\n"
8490 "rename()\n"
8491 "rmdir()\n"
8492 "select()\n"
8493 "sem_post()\n"
8494 "send()\n"
8495 "sendmsg()\n"
8496 "sendto()\n"
8497 "setgid()\n"
8498 "setpgid()\n"
8499 "setsid()\n"
8500 "setsockopt()\n"
8501 "setuid()\n"
8502 "shutdown()\n"
8503 "sigaction()\n"
8504 "sigaddset()\n"
8505 "sigdelset()\n"
8506 "sigemptyset()\n"
8507 "sigfillset()\n"
8508 "sigismember()\n"
8509 "signal()\n"
8510 "sigpause()\n"
8511 "sigpending()\n"
8512 "sigprocmask()\n"
8513 "sigqueue()\n"
8514 "sigset()\n"
8515 "sigsuspend()\n"
8516 "sleep()\n"
8517 "sockatmark()\n"
8518 "socket()\n"
8519 "socketpair()\n"
8520 "stat()\n"
8521 "symlink()\n"
8522 "sysconf()\n"
8523 "tcdrain()\n"
8524 "tcflow()\n"
8525 "tcflush()\n"
8526 "tcgetattr()\n"
8527 "tcgetpgrp()\n"
8528 "tcsendbreak()\n"
8529 "tcsetattr()\n"
8530 "tcsetpgrp()\n"
8531 "time()\n"
8532 "timer_getoverrun()\n"
8533 "timer_gettime()\n"
8534 "timer_settime()\n"
8535 "times()\n"
8536 "umask()\n"
8537 "uname()\n"
8538 "unlink()\n"
8539 "utime()\n"
8540 "wait()\n"
8541 "waitpid()\n"
8542 "write()\n"
8543
8544 #. type: Plain text
8545 #: build/C/man7/signal.7:587
8546 msgid ""
8547 "POSIX.1-2008 removes fpathconf(), pathconf(), and sysconf()  from the above "
8548 "list, and adds the following functions:"
8549 msgstr ""
8550 "POSIX.1-2008 では、上記のリストのうち fpathconf(), pathconf(), sysconf()  が"
8551 "削除され、以下の関数が追加された。"
8552
8553 #. type: Plain text
8554 #: build/C/man7/signal.7:610
8555 #, no-wrap
8556 msgid ""
8557 "execl()\n"
8558 "execv()\n"
8559 "faccessat()\n"
8560 "fchmodat()\n"
8561 "fchownat()\n"
8562 "fexecve()\n"
8563 "fstatat()\n"
8564 "futimens()\n"
8565 "linkat()\n"
8566 "mkdirat()\n"
8567 "mkfifoat()\n"
8568 "mknod()\n"
8569 "mknodat()\n"
8570 "openat()\n"
8571 "readlinkat()\n"
8572 "renameat()\n"
8573 "symlinkat()\n"
8574 "unlinkat()\n"
8575 "utimensat()\n"
8576 "utimes()\n"
8577 msgstr ""
8578 "execl()\n"
8579 "execv()\n"
8580 "faccessat()\n"
8581 "fchmodat()\n"
8582 "fchownat()\n"
8583 "fexecve()\n"
8584 "fstatat()\n"
8585 "futimens()\n"
8586 "linkat()\n"
8587 "mkdirat()\n"
8588 "mkfifoat()\n"
8589 "mknod()\n"
8590 "mknodat()\n"
8591 "openat()\n"
8592 "readlinkat()\n"
8593 "renameat()\n"
8594 "symlinkat()\n"
8595 "unlinkat()\n"
8596 "utimensat()\n"
8597 "utimes()\n"
8598
8599 #. type: SS
8600 #: build/C/man7/signal.7:612
8601 #, no-wrap
8602 msgid "Interruption of system calls and library functions by signal handlers"
8603 msgstr "シグナルハンドラーによるシステムコールやライブラリ関数への割り込み"
8604
8605 #. type: Plain text
8606 #: build/C/man7/signal.7:615
8607 msgid ""
8608 "If a signal handler is invoked while a system call or library function call "
8609 "is blocked, then either:"
8610 msgstr ""
8611 "システムコールやライブラリが停止 (block) している間にシグナルハンドラーが 起"
8612 "動されると、以下のどちらかとなる。"
8613
8614 #. type: Plain text
8615 #: build/C/man7/signal.7:617
8616 msgid ""
8617 "the call is automatically restarted after the signal handler returns; or"
8618 msgstr "シグナルが返った後、呼び出しは自動的に再スタートされる。"
8619
8620 #. type: Plain text
8621 #: build/C/man7/signal.7:620
8622 msgid "the call fails with the error B<EINTR>."
8623 msgstr "呼び出しはエラー B<EINTR> で失敗する。"
8624
8625 #. type: Plain text
8626 #: build/C/man7/signal.7:628
8627 msgid ""
8628 "Which of these two behaviors occurs depends on the interface and whether or "
8629 "not the signal handler was established using the B<SA_RESTART> flag (see "
8630 "B<sigaction>(2)).  The details vary across UNIX systems; below, the details "
8631 "for Linux."
8632 msgstr ""
8633 "これらの二つの挙動のうちどちらが起こるかは、インターフェイスにより依存し、 シ"
8634 "グナルハンドラーが B<SA_RESTART> フラグ (B<sigaction>(2)  参照) を使って設定"
8635 "されていたかにも依存する。 詳細は UNIX システムによって異なる。 Linux におけ"
8636 "る詳細を以下で説明する。"
8637
8638 #.  The following system calls use ERESTARTSYS,
8639 #.  so that they are restartable
8640 #. type: Plain text
8641 #: build/C/man7/signal.7:637
8642 msgid ""
8643 "If a blocked call to one of the following interfaces is interrupted by a "
8644 "signal handler, then the call will be automatically restarted after the "
8645 "signal handler returns if the B<SA_RESTART> flag was used; otherwise the "
8646 "call will fail with the error B<EINTR>:"
8647 msgstr ""
8648 "以下のインターフェイスのいずれかの呼び出しが停止している間に シグナルハンド"
8649 "ラーにより割り込まれた場合、 B<SA_RESTART> フラグが使用されていれば、シグナル"
8650 "ハンドラーが返った後に その呼び出しは自動的に再スタートされることになる。 そ"
8651 "れ以外の場合は、その呼び出しはエラー B<EINTR> で失敗することになる。"
8652
8653 #.  commit 1ca39ab9d21ac93f94b9e3eb364ea9a5cf2aba06
8654 #. type: Plain text
8655 #: build/C/man7/signal.7:672
8656 msgid ""
8657 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), and B<ioctl>(2)  calls "
8658 "on \"slow\" devices.  A \"slow\" device is one where the I/O call may block "
8659 "for an indefinite time, for example, a terminal, pipe, or socket.  (A disk "
8660 "is not a slow device according to this definition.)  A B<read>(2)  on an "
8661 "B<eventfd>(2), B<signalfd>(2), B<timerfd>(2), B<fanotify>(7), or "
8662 "B<inotify>(7)  file descriptor is also considered to be a \"slow\" "
8663 "operation.  (Before Linux 3.8, reads from an B<inotify>(7)  file descriptor "
8664 "were not restartable; when interrupted by a signal handler, B<read>(2)  "
8665 "always failed with the error B<EINTR>.)  If an I/O call on a slow device has "
8666 "already transferred some data by the time it is interrupted by a signal "
8667 "handler, then the call will return a success status (normally, the number of "
8668 "bytes transferred)."
8669 msgstr ""
8670 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), B<ioctl>(2)  の「遅い "
8671 "(slow)」デバイスに対する呼び出し。 ここでいう「遅い」デバイスとは、I/O 呼び出"
8672 "しが無期限に停止 (block) する 可能性のあるデバイスのことで、例としては端末、"
8673 "パイプ、ソケットがある (この定義では、ディスクは遅いデバイスではない)。 "
8674 "B<eventfd>(2), B<signalfd>(2), B<timerfd>(2), B<fanotify>(7), B<inotify>(7) "
8675 "のファイルディスクリプターに対する B<read>(2) も「遅い」操作と考えられる。 "
8676 "(Linux 3.8 より前であh, B<inotify>(7) ファイルディスクリプターからの読み出"
8677 "しは再開できなかった。シグナルハンドラーによって割り込まれた場合、 "
8678 "B<read>(2) は常にエラー B<EINTR> で失敗していた。) 遅いデバイスに対する I/O "
8679 "呼び出しが、 シグナルハンドラーにより割り込まれた時点までに何らかのデータを "
8680 "すでに転送していれば、呼び出しは成功ステータス (通常は、転送されたバイト数) "
8681 "を返すことだろう。"
8682
8683 #. type: Plain text
8684 #: build/C/man7/signal.7:676
8685 msgid ""
8686 "B<open>(2), if it can block (e.g., when opening a FIFO; see B<fifo>(7))."
8687 msgstr ""
8688 "停止 (block) する可能性のある B<open>(2)  (例えば、FIFO のオープン時; "
8689 "B<fifo>(7)  参照)。"
8690
8691 #. type: Plain text
8692 #: build/C/man7/signal.7:683
8693 msgid "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), and B<waitpid>(2)."
8694 msgstr "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), B<waitpid>(2)."
8695
8696 #.  If a timeout (setsockopt()) is in effect on the socket, then these
8697 #.  system calls switch to using EINTR.  Consequently, they and are not
8698 #.  automatically restarted, and they show the stop/cont behavior
8699 #.  described below.  (Verified from 2.6.26 source, and by experiment; mtk)
8700 #.  FIXME . What about sendmmsg()?
8701 #. type: Plain text
8702 #: build/C/man7/signal.7:701
8703 msgid ""
8704 "Socket interfaces: B<accept>(2), B<connect>(2), B<recv>(2), B<recvfrom>(2), "
8705 "B<recvmmsg>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), "
8706 "unless a timeout has been set on the socket (see below)."
8707 msgstr ""
8708 "ソケットインターフェイス: B<accept>(2), B<connect>(2), B<recv>(2), "
8709 "B<recvfrom>(2), B<recvmmsg>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), "
8710 "B<sendmsg>(2).  但し、ソケットにタイムアウトが設定されていない場合 (下記参"
8711 "照)。"
8712
8713 #. type: Plain text
8714 #: build/C/man7/signal.7:707
8715 msgid "File locking interfaces: B<flock>(2)  and B<fcntl>(2)  B<F_SETLKW>."
8716 msgstr ""
8717 "ファイルロック用インターフェイス: B<flock>(2), B<fcntl>(2)  B<F_SETLKW>."
8718
8719 #. type: Plain text
8720 #: build/C/man7/signal.7:714
8721 msgid ""
8722 "POSIX message queue interfaces: B<mq_receive>(3), B<mq_timedreceive>(3), "
8723 "B<mq_send>(3), and B<mq_timedsend>(3)."
8724 msgstr ""
8725 "POSIX メッセージキューインターフェイス: B<mq_receive>(3), "
8726 "B<mq_timedreceive>(3), B<mq_send>(3), B<mq_timedsend>(3)."
8727
8728 #. type: Plain text
8729 #: build/C/man7/signal.7:719
8730 msgid ""
8731 "B<futex>(2)  B<FUTEX_WAIT> (since Linux 2.6.22; beforehand, always failed "
8732 "with B<EINTR>)."
8733 msgstr ""
8734 "B<futex>(2)  B<FUTEX_WAIT> (Linux 2.6.22 以降; それ以前は常に B<EINTR> で失敗"
8735 "していた)。"
8736
8737 #. type: Plain text
8738 #: build/C/man7/signal.7:723
8739 msgid "B<pthread_mutex_lock>(3), B<pthread_cond_wait>(3), and related APIs."
8740 msgstr "B<pthread_mutex_lock>(3), B<pthread_cond_wait>(3) と関連 API。"
8741
8742 #. type: Plain text
8743 #: build/C/man7/signal.7:730
8744 msgid ""
8745 "POSIX semaphore interfaces: B<sem_wait>(3)  and B<sem_timedwait>(3)  (since "
8746 "Linux 2.6.22; beforehand, always failed with B<EINTR>)."
8747 msgstr ""
8748 "POSIX セマフォインターフェイス: B<sem_wait>(3), B<sem_timedwait>(3)  (Linux "
8749 "2.6.22 以降; それ以前は常に B<EINTR> で失敗していた)。"
8750
8751 #.  These are the system calls that give EINTR or ERESTARTNOHAND
8752 #.  on interruption by a signal handler.
8753 #. type: Plain text
8754 #: build/C/man7/signal.7:741
8755 msgid ""
8756 "The following interfaces are never restarted after being interrupted by a "
8757 "signal handler, regardless of the use of B<SA_RESTART>; they always fail "
8758 "with the error B<EINTR> when interrupted by a signal handler:"
8759 msgstr ""
8760 "以下のインターフェイスは、 B<SA_RESTART> を使っているどうかに関わらず、シグナ"
8761 "ルハンドラーにより割り込まれた後、 再スタートすることは決してない。 これら"
8762 "は、シグナルハンドラーにより割り込まれると、常にエラー B<EINTR> で失敗する。"
8763
8764 #. type: Plain text
8765 #: build/C/man7/signal.7:756 build/C/man7/signal.7:831
8766 msgid ""
8767 "\"Input\" socket interfaces, when a timeout (B<SO_RCVTIMEO>)  has been set "
8768 "on the socket using B<setsockopt>(2): B<accept>(2), B<recv>(2), "
8769 "B<recvfrom>(2), B<recvmmsg>(2)  (also with a non-NULL I<timeout> argument), "
8770 "and B<recvmsg>(2)."
8771 msgstr ""
8772 "B<setsockopt>(2)  を使ってタイムアウト (B<SO_RCVTIMEO>) が設定されている「入"
8773 "力」ソケットインターフェース: B<accept>(2), B<recv>(2), B<recvfrom>(2), "
8774 "B<recvmmsg>(2) (NULL 以外の I<timeout> 引き数も指定されている場合), "
8775 "B<recvmsg>(2)"
8776
8777 #.  FIXME . What about sendmmsg()?
8778 #. type: Plain text
8779 #: build/C/man7/signal.7:767 build/C/man7/signal.7:842
8780 msgid ""
8781 "\"Output\" socket interfaces, when a timeout (B<SO_SNDTIMEO>)  has been set "
8782 "on the socket using B<setsockopt>(2): B<connect>(2), B<send>(2), "
8783 "B<sendto>(2), and B<sendmsg>(2)."
8784 msgstr ""
8785 "B<setsockopt>(2)  を使ってタイムアウト (B<SO_SNDTIMEO>) が設定されているソ"
8786 "ケットインターフェース: B<connect>(2), B<send>(2), B<sendto>(2), "
8787 "B<sendmsg>(2)"
8788
8789 #. type: Plain text
8790 #: build/C/man7/signal.7:774
8791 msgid ""
8792 "Interfaces used to wait for signals: B<pause>(2), B<sigsuspend>(2), "
8793 "B<sigtimedwait>(2), and B<sigwaitinfo>(2)."
8794 msgstr ""
8795 "シグナル待ちに使われるインターフェイス: B<pause>(2), B<sigsuspend>(2), "
8796 "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8797
8798 #. type: Plain text
8799 #: build/C/man7/signal.7:783
8800 msgid ""
8801 "File descriptor multiplexing interfaces: B<epoll_wait>(2), "
8802 "B<epoll_pwait>(2), B<poll>(2), B<ppoll>(2), B<select>(2), and B<pselect>(2)."
8803 msgstr ""
8804 "ファイルディスクリプター多重インターフェイス: B<epoll_wait>(2), "
8805 "B<epoll_pwait>(2), B<poll>(2), B<ppoll>(2), B<select>(2), B<pselect>(2)."
8806
8807 #.  On some other systems, SA_RESTART does restart these system calls
8808 #. type: Plain text
8809 #: build/C/man7/signal.7:791
8810 msgid ""
8811 "System V IPC interfaces: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), and "
8812 "B<semtimedop>(2)."
8813 msgstr ""
8814 "System V IPC インターフェイス: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), "
8815 "B<semtimedop>(2)."
8816
8817 #. type: Plain text
8818 #: build/C/man7/signal.7:797
8819 msgid ""
8820 "Sleep interfaces: B<clock_nanosleep>(2), B<nanosleep>(2), and B<usleep>(3)."
8821 msgstr ""
8822 "スリープ用のインターフェイス: B<clock_nanosleep>(2), B<nanosleep>(2), "
8823 "B<usleep>(3)."
8824
8825 #. type: Plain text
8826 #: build/C/man7/signal.7:799
8827 msgid "B<io_getevents>(2)."
8828 msgstr "B<io_getevents>(2)."
8829
8830 #. type: Plain text
8831 #: build/C/man7/signal.7:805
8832 msgid ""
8833 "The B<sleep>(3)  function is also never restarted if interrupted by a "
8834 "handler, but gives a success return: the number of seconds remaining to "
8835 "sleep."
8836 msgstr ""
8837 "B<sleep>(3)  関数も、ハンドラーにより割り込まれた場合、決して再スタートされる"
8838 "ことはない。 しかし、成功となり、残っている停止時間を返す。"
8839
8840 #. type: SS
8841 #: build/C/man7/signal.7:805
8842 #, no-wrap
8843 msgid "Interruption of system calls and library functions by stop signals"
8844 msgstr "一時停止シグナルによるシステムコールやライブラリ関数への割り込み"
8845
8846 #. type: Plain text
8847 #: build/C/man7/signal.7:814
8848 msgid ""
8849 "On Linux, even in the absence of signal handlers, certain blocking "
8850 "interfaces can fail with the error B<EINTR> after the process is stopped by "
8851 "one of the stop signals and then resumed via B<SIGCONT>.  This behavior is "
8852 "not sanctioned by POSIX.1, and doesn't occur on other systems."
8853 msgstr ""
8854 "Linux では、シグナルハンドラーが設定されていない場合でも、 いくつかのブロッキ"
8855 "ング型のインターフェイスは、 プロセスが一時停止 (stop) シグナルの一つにより停"
8856 "止され、 B<SIGCONT> により再開された後に、エラー B<EINTR> で失敗する可能性が"
8857 "ある。 この挙動は POSIX.1 で認められておらず、他のシステムでは起こらない。"
8858
8859 #. type: Plain text
8860 #: build/C/man7/signal.7:816
8861 msgid "The Linux interfaces that display this behavior are:"
8862 msgstr "この挙動を示す Linux のインターフェイスは以下の通りである。"
8863
8864 #. type: Plain text
8865 #: build/C/man7/signal.7:845
8866 msgid "B<epoll_wait>(2), B<epoll_pwait>(2)."
8867 msgstr "B<epoll_wait>(2), B<epoll_pwait>(2)."
8868
8869 #. type: Plain text
8870 #: build/C/man7/signal.7:848
8871 msgid "B<semop>(2), B<semtimedop>(2)."
8872 msgstr "B<semop>(2), B<semtimedop>(2)."
8873
8874 #. type: Plain text
8875 #: build/C/man7/signal.7:851
8876 msgid "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8877 msgstr "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8878
8879 #.  commit 1ca39ab9d21ac93f94b9e3eb364ea9a5cf2aba06
8880 #. type: Plain text
8881 #: build/C/man7/signal.7:858
8882 msgid ""
8883 "Linux 3.7 and earlier: B<read>(2)  from an B<inotify>(7)  file descriptor."
8884 msgstr ""
8885 "Linux 3.7 以前: B<inotify>(7)  ファイルディスクリプターからの B<read>(2)."
8886
8887 #. type: Plain text
8888 #: build/C/man7/signal.7:864
8889 msgid ""
8890 "Linux 2.6.21 and earlier: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8891 "B<sem_wait>(3)."
8892 msgstr ""
8893 "Linux 2.6.21 以前: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8894 "B<sem_wait>(3)."
8895
8896 #. type: Plain text
8897 #: build/C/man7/signal.7:868
8898 msgid "Linux 2.6.8 and earlier: B<msgrcv>(2), B<msgsnd>(2)."
8899 msgstr "Linux 2.6.8 以前: B<msgrcv>(2), B<msgsnd>(2)."
8900
8901 #. type: Plain text
8902 #: build/C/man7/signal.7:871
8903 msgid "Linux 2.4 and earlier: B<nanosleep>(2)."
8904 msgstr "Linux 2.4 以前: B<nanosleep>(2)."
8905
8906 #.  It must be a *very* long time since this was true:
8907 #.  .SH BUGS
8908 #.  .B SIGIO
8909 #.  and
8910 #.  .B SIGLOST
8911 #.  have the same value.
8912 #.  The latter is commented out in the kernel source, but
8913 #.  the build process of some software still thinks that
8914 #.  signal 29 is
8915 #.  .BR SIGLOST .
8916 #. type: Plain text
8917 #: build/C/man7/signal.7:884
8918 msgid "POSIX.1, except as noted."
8919 msgstr "POSIX.1 (注記した内容以外)。"
8920
8921 #. type: Plain text
8922 #: build/C/man7/signal.7:919
8923 msgid ""
8924 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), "
8925 "B<restart_syscall>(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), "
8926 "B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), B<sigaltstack>(2), "
8927 "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
8928 "B<sigreturn>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), "
8929 "B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), "
8930 "B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), "
8931 "B<strsignal>(3), B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), "
8932 "B<sigevent>(7)"
8933 msgstr ""
8934 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), "
8935 "B<restart_syscall>(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), "
8936 "B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), B<sigaltstack>(2), "
8937 "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
8938 "B<sigreturn>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), "
8939 "B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), "
8940 "B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), "
8941 "B<strsignal>(3), B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), "
8942 "B<sigevent>(7)"
8943
8944 #. type: TH
8945 #: build/C/man2/signalfd.2:20
8946 #, no-wrap
8947 msgid "SIGNALFD"
8948 msgstr "SIGNALFD"
8949
8950 #. type: Plain text
8951 #: build/C/man2/signalfd.2:23
8952 msgid "signalfd - create a file descriptor for accepting signals"
8953 msgstr "signalfd - シグナル受け付け用のファイルディスクリプターを生成する"
8954
8955 #. type: Plain text
8956 #: build/C/man2/signalfd.2:25
8957 msgid "B<#include E<lt>sys/signalfd.hE<gt>>"
8958 msgstr "B<#include E<lt>sys/signalfd.hE<gt>>"
8959
8960 #. type: Plain text
8961 #: build/C/man2/signalfd.2:27
8962 msgid ""
8963 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8964 msgstr ""
8965 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8966
8967 #. type: Plain text
8968 #: build/C/man2/signalfd.2:38
8969 msgid ""
8970 "B<signalfd>()  creates a file descriptor that can be used to accept signals "
8971 "targeted at the caller.  This provides an alternative to the use of a signal "
8972 "handler or B<sigwaitinfo>(2), and has the advantage that the file descriptor "
8973 "may be monitored by B<select>(2), B<poll>(2), and B<epoll>(7)."
8974 msgstr ""
8975 "B<signalfd>()  は、呼び出し元宛てのシグナルを受け付けるために使用されるファイ"
8976 "ル ディスクリプターを生成する。 この方法はシグナルハンドラーや "
8977 "B<sigwaitinfo>(2)  を用いる方法の代わりとなるものであり、このファイルディスク"
8978 "リプターを B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点があ"
8979 "る。"
8980
8981 #. type: Plain text
8982 #: build/C/man2/signalfd.2:58
8983 msgid ""
8984 "The I<mask> argument specifies the set of signals that the caller wishes to "
8985 "accept via the file descriptor.  This argument is a signal set whose "
8986 "contents can be initialized using the macros described in B<sigsetops>(3).  "
8987 "Normally, the set of signals to be received via the file descriptor should "
8988 "be blocked using B<sigprocmask>(2), to prevent the signals being handled "
8989 "according to their default dispositions.  It is not possible to receive "
8990 "B<SIGKILL> or B<SIGSTOP> signals via a signalfd file descriptor; these "
8991 "signals are silently ignored if specified in I<mask>."
8992 msgstr ""
8993 "I<mask> 引き数には、呼び出し元がこのファイルディスクリプター経由で受け付けた"
8994 "い シグナル集合を指定する。この引き数で指定するシグナル集合の内容は、 "
8995 "B<sigsetops>(3)  で説明されているマクロを使って初期化することができる。 通"
8996 "常、ファイルディスクリプター経由で受信するシグナル集合は、 そのシグナルがデ"
8997 "フォルトの配送方法に基いて処理されるのを防ぐために、 B<sigprocmask>(2)  を"
8998 "使ってブロックしておくべきである。 シグナル B<SIGKILL> と B<SIGSTOP> を "
8999 "signalfd ファイルディスクリプター経由で受信することはできない。 これらのシグ"
9000 "ナルが I<mask> で指定された場合には黙って無視される。"
9001
9002 #. type: Plain text
9003 #: build/C/man2/signalfd.2:72
9004 msgid ""
9005 "If the I<fd> argument is -1, then the call creates a new file descriptor and "
9006 "associates the signal set specified in I<mask> with that descriptor.  If "
9007 "I<fd> is not -1, then it must specify a valid existing signalfd file "
9008 "descriptor, and I<mask> is used to replace the signal set associated with "
9009 "that descriptor."
9010 msgstr ""
9011 "I<fd> 引き数が -1 の場合、 B<signalfd>()  は新しいファイルディスクリプターを"
9012 "生成し、 I<mask> で指定されたシグナル集合をそのファイルディスクリプターに関連"
9013 "付ける。 I<fd> 引き数が -1 以外の場合、 I<fd> には有効な既存の signalfd ファ"
9014 "イルディスクリプターを指定しなければならず、 そのディスクリプターに関連付けら"
9015 "れているシグナル集合は I<mask> を使って置き換えられる。"
9016
9017 #. type: Plain text
9018 #: build/C/man2/signalfd.2:77
9019 msgid ""
9020 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
9021 "I<flags> to change the behavior of B<signalfd>():"
9022 msgstr ""
9023 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
9024 "ることで、 B<signalfd>()  の振舞いを変更することができる。"
9025
9026 #. type: TP
9027 #: build/C/man2/signalfd.2:77
9028 #, no-wrap
9029 msgid "B<SFD_NONBLOCK>"
9030 msgstr "B<SFD_NONBLOCK>"
9031
9032 #. type: TP
9033 #: build/C/man2/signalfd.2:85
9034 #, no-wrap
9035 msgid "B<SFD_CLOEXEC>"
9036 msgstr "B<SFD_CLOEXEC>"
9037
9038 #. type: Plain text
9039 #: build/C/man2/signalfd.2:102
9040 msgid ""
9041 "B<signalfd>()  returns a file descriptor that supports the following "
9042 "operations:"
9043 msgstr ""
9044 "B<signalfd>()  が返すファイルディスクリプターは以下の操作をサポートしている。"
9045
9046 #. type: Plain text
9047 #: build/C/man2/signalfd.2:121
9048 msgid ""
9049 "If one or more of the signals specified in I<mask> is pending for the "
9050 "process, then the buffer supplied to B<read>(2)  is used to return one or "
9051 "more I<signalfd_siginfo> structures (see below) that describe the signals.  "
9052 "The B<read>(2)  returns information for as many signals as are pending and "
9053 "will fit in the supplied buffer.  The buffer must be at least "
9054 "I<sizeof(struct signalfd_siginfo)> bytes.  The return value of the "
9055 "B<read>(2)  is the total number of bytes read."
9056 msgstr ""
9057 "I<mask> に指定されているシグナルのうち一つ以上がそのプロセスに対して 処理待"
9058 "ち (pending) であれば、それらのシグナルの情報が B<read>(2)  に渡されたバッ"
9059 "ファーを使って、 I<signalfd_siginfo> 構造体に格納されて返される。 "
9060 "B<read>(2)  は、バッファーに格納可能な範囲でできるだけ多くの処理待ちのシグナ"
9061 "ルに ついての情報を返す。 バッファーは最低でも I<sizeof(struct "
9062 "signalfd_siginfo)> バイトの大きさがなければならない。 B<read>(2)  の返り値は"
9063 "読み出されたトータルのバイト数である。"
9064
9065 #. type: Plain text
9066 #: build/C/man2/signalfd.2:129
9067 msgid ""
9068 "As a consequence of the B<read>(2), the signals are consumed, so that they "
9069 "are no longer pending for the process (i.e., will not be caught by signal "
9070 "handlers, and cannot be accepted using B<sigwaitinfo>(2))."
9071 msgstr ""
9072 "B<read>(2)  が行われた結果、シグナルは消費され、 これらのシグナルはそのプロセ"
9073 "スに対しては処理待ちではなくなる (つまり、シグナルハンドラーで捕捉されること"
9074 "もなく、 B<sigwaitinfo>(2)  を使って受け取ることもできなくなる)。"
9075
9076 #. type: Plain text
9077 #: build/C/man2/signalfd.2:140
9078 msgid ""
9079 "If none of the signals in I<mask> is pending for the process, then the "
9080 "B<read>(2)  either blocks until one of the signals in I<mask> is generated "
9081 "for the process, or fails with the error B<EAGAIN> if the file descriptor "
9082 "has been made nonblocking."
9083 msgstr ""
9084 "I<mask> に指定されているシグナルがそのプロセスに対して一つも処理待ちでなけれ"
9085 "ば、 B<read>(2)  は、 I<mask> で指定されたシグナルのうちいずれか一つがそのプ"
9086 "ロセスに対して発生するまで 停止 (block) する、もしくはファイルディスクリプ"
9087 "ターが非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗す"
9088 "る。"
9089
9090 #. type: Plain text
9091 #: build/C/man2/signalfd.2:153
9092 msgid ""
9093 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
9094 "B<poll>(2)  B<POLLIN> flag)  if one or more of the signals in I<mask> is "
9095 "pending for the process."
9096 msgstr ""
9097 "I<mask> に指定されたシグナルのうち一つ以上がそのプロセスに対して処理待ちであ"
9098 "れば、 ファイルディスクリプターは読み出し可能となる (B<select>(2)  の "
9099 "I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
9100
9101 #. type: Plain text
9102 #: build/C/man2/signalfd.2:160
9103 msgid ""
9104 "The signalfd file descriptor also supports the other file-descriptor "
9105 "multiplexing APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
9106 msgstr ""
9107 "signalfd ファイルディスクリプターは、これ以外のファイルディスクリプター 多重 "
9108 "API である B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
9109
9110 #. type: Plain text
9111 #: build/C/man2/signalfd.2:165
9112 msgid ""
9113 "When the file descriptor is no longer required it should be closed.  When "
9114 "all file descriptors associated with the same signalfd object have been "
9115 "closed, the resources for object are freed by the kernel."
9116 msgstr ""
9117 "ファイルディスクリプターがそれ以降は必要なくなった際には、クローズすべきであ"
9118 "る。 同じ signalfd オブジェクトに関連付けられたファイルディスクリプターが全"
9119 "て クローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
9120
9121 #. type: SS
9122 #: build/C/man2/signalfd.2:165
9123 #, no-wrap
9124 msgid "The signalfd_siginfo structure"
9125 msgstr "signalfd_siginfo 構造体"
9126
9127 #. type: Plain text
9128 #: build/C/man2/signalfd.2:171
9129 msgid ""
9130 "The format of the I<signalfd_siginfo> structure(s) returned by B<read>(2)s "
9131 "from a signalfd file descriptor is as follows:"
9132 msgstr ""
9133 "signalfd ファイルディスクリプターからの B<read>(2)  で返される "
9134 "I<signalfd_siginfo> 構造体のフォーマットは以下の通りである。"
9135
9136 #.  ssi_trapno is unused on most arches
9137 #.  FIXME Since Linux 2.6.37 there is 'uint16_t ssi_addr_lsb'
9138 #.  in the signalfd_siginfo structure. This needs to be documented.
9139 #. type: Plain text
9140 #: build/C/man2/signalfd.2:198
9141 #, no-wrap
9142 msgid ""
9143 "struct signalfd_siginfo {\n"
9144 "    uint32_t ssi_signo;   /* Signal number */\n"
9145 "    int32_t  ssi_errno;   /* Error number (unused) */\n"
9146 "    int32_t  ssi_code;    /* Signal code */\n"
9147 "    uint32_t ssi_pid;     /* PID of sender */\n"
9148 "    uint32_t ssi_uid;     /* Real UID of sender */\n"
9149 "    int32_t  ssi_fd;      /* File descriptor (SIGIO) */\n"
9150 "    uint32_t ssi_tid;     /* Kernel timer ID (POSIX timers)\n"
9151 "    uint32_t ssi_band;    /* Band event (SIGIO) */\n"
9152 "    uint32_t ssi_overrun; /* POSIX timer overrun count */\n"
9153 "    uint32_t ssi_trapno;  /* Trap number that caused signal */\n"
9154 "    int32_t  ssi_status;  /* Exit status or signal (SIGCHLD) */\n"
9155 "    int32_t  ssi_int;     /* Integer sent by sigqueue(3) */\n"
9156 "    uint64_t ssi_ptr;     /* Pointer sent by sigqueue(3) */\n"
9157 "    uint64_t ssi_utime;   /* User CPU time consumed (SIGCHLD) */\n"
9158 "    uint64_t ssi_stime;   /* System CPU time consumed (SIGCHLD) */\n"
9159 "    uint64_t ssi_addr;    /* Address that generated signal\n"
9160 "                             (for hardware-generated signals) */\n"
9161 "    uint8_t  pad[I<X>];      /* Pad size to 128 bytes (allow for\n"
9162 "                              additional fields in the future) */\n"
9163 "};\n"
9164 msgstr ""
9165 "struct signalfd_siginfo {\n"
9166 "struct signalfd_siginfo {\n"
9167 "    uint32_t ssi_signo;   /* シグナル番号 */\n"
9168 "    int32_t  ssi_errno;   /* エラー番号 (未使用) */\n"
9169 "    int32_t  ssi_code;    /* シグナルコード */\n"
9170 "    uint32_t ssi_pid;     /* 送信元の PID */\n"
9171 "    uint32_t ssi_uid;     /* 送信元の実 UID */\n"
9172 "    int32_t  ssi_fd;      /* ファイルディスクリプター (SIGIO) */\n"
9173 "    uint32_t ssi_tid;     /* カーネルタイマー ID (POSIX タイマー)\n"
9174 "    uint32_t ssi_band;    /* Band イベント (SIGIO) */\n"
9175 "    uint32_t ssi_overrun; /* POSIX タイマーのオーバーラン回数 */\n"
9176 "    uint32_t ssi_trapno;  /* シグナルの原因となったトラップ番号 */\n"
9177 "    int32_t  ssi_status;  /* 終了ステータスかシグナル (SIGCHLD) */\n"
9178 "    int32_t  ssi_int;     /* sigqueue(3) から送られた整数 */\n"
9179 "    uint64_t ssi_ptr;     /* sigqueue(3) から送られたポインター */\n"
9180 "    uint64_t ssi_utime;   /* 消費したユーザー CPU 時間 (SIGCHLD) */\n"
9181 "    uint64_t ssi_stime;   /* 消費したシステム CPU 時間 (SIGCHLD) */\n"
9182 "    uint64_t ssi_addr;    /* シグナルを生成したアドレス\n"
9183 "                             (ハードウェアが生成したシグナルの場合) */\n"
9184 "    uint8_t  pad[I<X>];      /* pad の大きさは 128 バイト\n"
9185 "                             (将来のフィールド追加用の場所の確保) */\n"
9186 "};\n"
9187
9188 #. type: Plain text
9189 #: build/C/man2/signalfd.2:221
9190 msgid ""
9191 "Each of the fields in this structure is analogous to the similarly named "
9192 "field in the I<siginfo_t> structure.  The I<siginfo_t> structure is "
9193 "described in B<sigaction>(2).  Not all fields in the returned "
9194 "I<signalfd_siginfo> structure will be valid for a specific signal; the set "
9195 "of valid fields can be determined from the value returned in the I<ssi_code> "
9196 "field.  This field is the analog of the I<siginfo_t> I<si_code> field; see "
9197 "B<sigaction>(2)  for details."
9198 msgstr ""
9199 "I<signalfd_siginfo> 構造体の各フィールドは、 I<siginfo_t> 構造体の同じような"
9200 "名前のフィールドと同様である。 I<siginfo_t> 構造体については "
9201 "B<sigaction>(2)  に説明がある。 返された I<signalfd_siginfo> 構造体の全ての"
9202 "フィールドがあるシグナルに対して有効なわけではない。 どのフィールドが有効か"
9203 "は、 I<ssi_code> フィールドで返される値から判定することができる。 このフィー"
9204 "ルドは I<siginfo_t> の I<si_code> フィールドと同様である。詳細は "
9205 "B<sigaction>(2)  を参照。"
9206
9207 #. type: SS
9208 #: build/C/man2/signalfd.2:221 build/C/man2/timerfd_create.2:276
9209 #, no-wrap
9210 msgid "fork(2) semantics"
9211 msgstr "fork(2) での扱い"
9212
9213 #. type: Plain text
9214 #: build/C/man2/signalfd.2:229
9215 msgid ""
9216 "After a B<fork>(2), the child inherits a copy of the signalfd file "
9217 "descriptor.  A B<read>(2)  from the file descriptor in the child will return "
9218 "information about signals queued to the child."
9219 msgstr ""
9220 "B<fork>(2)  が行われると、子プロセスは signalfd ファイルディスクリプターのコ"
9221 "ピーを 継承する。 子プロセスでこのファイルディスクリプターから B<read>(2)  を"
9222 "行うと、子プロセスに対するキューに入っているシグナルに関する 情報が返される。"
9223
9224 #. type: SS
9225 #: build/C/man2/signalfd.2:229 build/C/man2/timerfd_create.2:288
9226 #, no-wrap
9227 msgid "execve(2) semantics"
9228 msgstr "execve(2) での扱い"
9229
9230 #. type: Plain text
9231 #: build/C/man2/signalfd.2:241
9232 msgid ""
9233 "Just like any other file descriptor, a signalfd file descriptor remains open "
9234 "across an B<execve>(2), unless it has been marked for close-on-exec (see "
9235 "B<fcntl>(2)).  Any signals that were available for reading before the "
9236 "B<execve>(2)  remain available to the newly loaded program.  (This is "
9237 "analogous to traditional signal semantics, where a blocked signal that is "
9238 "pending remains pending across an B<execve>(2).)"
9239 msgstr ""
9240 "他のファイルディスクリプターと全く同様に、 signalfd ファイルディスクリプター"
9241 "も B<execve>(2)  の前後でオープンされたままとなる。但し、そのファイルディスク"
9242 "リプターに close-on-exec のマーク (B<fcntl>(2)  参照) が付いている場合はク"
9243 "ローズされる。 B<execve>(2)  の前に読み出し可能となっていた全てのシグナルは新"
9244 "しく起動されたプログラム でも引き続き読み出し可能である (これは伝統的なシグナ"
9245 "ルの扱いと同じであり、 処理待ちのブロックされたシグナルは B<execve>(2)  の前"
9246 "後で処理待ちのままとなる)。"
9247
9248 #. type: SS
9249 #: build/C/man2/signalfd.2:241
9250 #, no-wrap
9251 msgid "Thread semantics"
9252 msgstr "スレッドでの扱い"
9253
9254 #. type: Plain text
9255 #: build/C/man2/signalfd.2:251
9256 msgid ""
9257 "The semantics of signalfd file descriptors in a multithreaded program mirror "
9258 "the standard semantics for signals.  In other words, when a thread reads "
9259 "from a signalfd file descriptor, it will read the signals that are directed "
9260 "to the thread itself and the signals that are directed to the process (i.e., "
9261 "the entire thread group).  (A thread will not be able to read signals that "
9262 "are directed to other threads in the process.)"
9263 msgstr ""
9264 "マルチスレッドプログラムにおける signalfd ファイルディスクリプターの扱いは シ"
9265 "グナルの標準的な扱いと全く同じである。 言い換えると、あるスレッドが signalfd "
9266 "ファイルディスクリプターから 読み出しを行うと、そのスレッド自身宛てのシグナル"
9267 "とプロセス (すなわち スレッドグループ全体) 宛てのシグナルが読み出される。 (ス"
9268 "レッドは同じプロセスの他のスレッド宛てのシグナルを読み出すことはできない。)"
9269
9270 #. type: Plain text
9271 #: build/C/man2/signalfd.2:265
9272 msgid ""
9273 "On success, B<signalfd>()  returns a signalfd file descriptor; this is "
9274 "either a new file descriptor (if I<fd> was -1), or I<fd> if I<fd> was a "
9275 "valid signalfd file descriptor.  On error, -1 is returned and I<errno> is "
9276 "set to indicate the error."
9277 msgstr ""
9278 "成功すると、 B<signalfd>()  は signalfd ファイルディスクリプターを返す。 返さ"
9279 "れるファイルディスクリプターは、 I<fd> が -1 の場合は新規のファイルディスクリ"
9280 "プターであり、 I<fd> が有効な signalfd ファイルディスクリプターだった場合は "
9281 "I<fd> 自身である。 エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定"
9282 "する。"
9283
9284 #. type: Plain text
9285 #: build/C/man2/signalfd.2:271
9286 msgid "The I<fd> file descriptor is not a valid file descriptor."
9287 msgstr ""
9288 "ファイルディスクリプター I<fd> が有効なファイルディスクリプターでない。"
9289
9290 #.  or, the
9291 #.  .I sizemask
9292 #.  argument is not equal to
9293 #.  .IR sizeof(sigset_t) ;
9294 #. type: Plain text
9295 #: build/C/man2/signalfd.2:279
9296 msgid "I<fd> is not a valid signalfd file descriptor."
9297 msgstr "I<fd> が有効な signalfd ファイルディスクリプターではない。"
9298
9299 #. type: Plain text
9300 #: build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:327
9301 msgid ""
9302 "I<flags> is invalid; or, in Linux 2.6.26 or earlier, I<flags> is nonzero."
9303 msgstr ""
9304 "I<flags> が無効である。もしくは、Linux 2.6.26 以前の場合には I<flags> が 0 以"
9305 "外である。"
9306
9307 #. type: Plain text
9308 #: build/C/man2/signalfd.2:289 build/C/man2/timerfd_create.2:330
9309 msgid "The per-process limit of open file descriptors has been reached."
9310 msgstr ""
9311 "オープン済みのファイルディスクリプターの数がプロセスあたりの上限に 達してい"
9312 "た。"
9313
9314 #. type: Plain text
9315 #: build/C/man2/signalfd.2:299
9316 msgid "There was insufficient memory to create a new signalfd file descriptor."
9317 msgstr ""
9318 "新しい signalfd ファイルディスクリプターを生成するのに十分なメモリーがなかっ"
9319 "た。"
9320
9321 #.  signalfd() is in glibc 2.7, but reportedly does not build
9322 #. type: Plain text
9323 #: build/C/man2/signalfd.2:307
9324 msgid ""
9325 "B<signalfd>()  is available on Linux since kernel 2.6.22.  Working support "
9326 "is provided in glibc since version 2.8.  The B<signalfd4>()  system call "
9327 "(see NOTES) is available on Linux since kernel 2.6.27."
9328 msgstr ""
9329 "B<signalfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
9330 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<signalfd4>()  "
9331 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
9332 "る。"
9333
9334 #. type: Plain text
9335 #: build/C/man2/signalfd.2:312
9336 msgid "B<signalfd>()  and B<signalfd4>()  are Linux-specific."
9337 msgstr "B<signalfd>()  と B<signalfd4>()  は Linux 固有である。"
9338
9339 #. type: Plain text
9340 #: build/C/man2/signalfd.2:326
9341 msgid ""
9342 "A process can create multiple signalfd file descriptors.  This makes it "
9343 "possible to accept different signals on different file descriptors.  (This "
9344 "may be useful if monitoring the file descriptors using B<select>(2), "
9345 "B<poll>(2), or B<epoll>(7): the arrival of different signals will make "
9346 "different descriptors ready.)  If a signal appears in the I<mask> of more "
9347 "than one of the file descriptors, then occurrences of that signal can be "
9348 "read (once) from any one of the descriptors."
9349 msgstr ""
9350 "一つのプロセスは複数の signalfd ファイルディスクリプターを生成することができ"
9351 "る。 これにより、異なるファイルディスクリプターで異なるシグナルを受け取ること"
9352 "が できる (この機能は B<select>(2), B<poll>(2), B<epoll>(7)  を使ってファイル"
9353 "ディスクリプターを監視する場合に有用かもしれない。 異なるシグナルが到着する"
9354 "と、異なるファイルディスクリプターが利用可能に なるからだ)。 一つのシグナルが"
9355 "二つ以上のファイルディスクリプターの I<mask> に含まれている場合、そのシグナル"
9356 "の発生はそのシグナルを I<mask> に含むファイルディスクリプターのうちいずれか一"
9357 "つから読み出すことができる。"
9358
9359 #. type: Plain text
9360 #: build/C/man2/signalfd.2:336
9361 msgid ""
9362 "The underlying Linux system call requires an additional argument, I<size_t "
9363 "sizemask>, which specifies the size of the I<mask> argument.  The glibc "
9364 "B<signalfd>()  wrapper function does not include this argument, since it "
9365 "provides the required value for the underlying system call."
9366 msgstr ""
9367 "実際の Linux のシステムコールでは I<size_t sizemask> という引き数が追加で必要"
9368 "である。この引き数で I<mask> のサイズを指定する。 glibc の B<signalfd>()  "
9369 "ラッパー関数にはこの引き数は含まれず、 ラッパー関数が必要な値を計算して内部で"
9370 "呼び出すシステムコールに提供する。"
9371
9372 #. type: Plain text
9373 #: build/C/man2/signalfd.2:352
9374 msgid ""
9375 "There are two underlying Linux system calls: B<signalfd>()  and the more "
9376 "recent B<signalfd4>().  The former system call does not implement a I<flags> "
9377 "argument.  The latter system call implements the I<flags> values described "
9378 "above.  Starting with glibc 2.9, the B<signalfd>()  wrapper function will "
9379 "use B<signalfd4>()  where it is available."
9380 msgstr ""
9381 "下層にある Linux システムコールは二種類あり、 B<signalfd>()  と、もっと新し"
9382 "い B<signalfd4>()  である。 B<signalfd>()  は I<flags> 引き数を実装していな"
9383 "い。 B<signalfd4>()  では上記の値の I<flags> が実装されている。 glibc 2.9 以"
9384 "降では、 B<signalfd>()  のラッパー関数は、 B<signalfd4>()  が利用可能であれ"
9385 "ば、これを使用する。"
9386
9387 #.  The fix also was put into 2.6.24.5
9388 #. type: Plain text
9389 #: build/C/man2/signalfd.2:360
9390 msgid ""
9391 "In kernels before 2.6.25, the I<ssi_ptr> and I<ssi_int> fields are not "
9392 "filled in with the data accompanying a signal sent by B<sigqueue>(3)."
9393 msgstr ""
9394 "カーネル 2.6.25 より前では、 B<sigqueue>(3)  により送信されたシグナルと一緒に"
9395 "渡されるデータでは、フィールド I<ssi_ptr> と I<ssi_int> は設定されない。"
9396
9397 #. type: Plain text
9398 #: build/C/man2/signalfd.2:370
9399 msgid ""
9400 "The program below accepts the signals B<SIGINT> and B<SIGQUIT> via a "
9401 "signalfd file descriptor.  The program terminates after accepting a "
9402 "B<SIGQUIT> signal.  The following shell session demonstrates the use of the "
9403 "program:"
9404 msgstr ""
9405 "下記のプログラムは、シグナル B<SIGINT> と B<SIGQUIT> を signalfd ファイルディ"
9406 "スクリプター経由で受信する。 シグナル B<SIGQUIT> 受信後にプログラムは終了す"
9407 "る。 以下に示すシェルセッションにこのプログラムの使い方を示す。"
9408
9409 #. type: Plain text
9410 #: build/C/man2/signalfd.2:381
9411 #, no-wrap
9412 msgid ""
9413 "$B< ./signalfd_demo>\n"
9414 "B<^C>                   # Control-C generates SIGINT\n"
9415 "Got SIGINT\n"
9416 "B<^C>\n"
9417 "Got SIGINT\n"
9418 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
9419 "Got SIGQUIT\n"
9420 "$\n"
9421 msgstr ""
9422 "$B< ./signalfd_demo>\n"
9423 "B<^C>                   # Control-C generates SIGINT\n"
9424 "Got SIGINT\n"
9425 "B<^C>\n"
9426 "Got SIGINT\n"
9427 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
9428 "Got SIGQUIT\n"
9429 "$\n"
9430
9431 #. type: Plain text
9432 #: build/C/man2/signalfd.2:391
9433 #, no-wrap
9434 msgid ""
9435 "#include E<lt>sys/signalfd.hE<gt>\n"
9436 "#include E<lt>signal.hE<gt>\n"
9437 "#include E<lt>unistd.hE<gt>\n"
9438 "#include E<lt>stdlib.hE<gt>\n"
9439 "#include E<lt>stdio.hE<gt>\n"
9440 msgstr ""
9441 "#include E<lt>sys/signalfd.hE<gt>\n"
9442 "#include E<lt>signal.hE<gt>\n"
9443 "#include E<lt>unistd.hE<gt>\n"
9444 "#include E<lt>stdlib.hE<gt>\n"
9445 "#include E<lt>stdio.hE<gt>\n"
9446
9447 #. type: Plain text
9448 #: build/C/man2/signalfd.2:402
9449 #, no-wrap
9450 msgid ""
9451 "int\n"
9452 "main(int argc, char *argv[])\n"
9453 "{\n"
9454 "    sigset_t mask;\n"
9455 "    int sfd;\n"
9456 "    struct signalfd_siginfo fdsi;\n"
9457 "    ssize_t s;\n"
9458 msgstr ""
9459 "int\n"
9460 "main(int argc, char *argv[])\n"
9461 "{\n"
9462 "    sigset_t mask;\n"
9463 "    int sfd;\n"
9464 "    struct signalfd_siginfo fdsi;\n"
9465 "    ssize_t s;\n"
9466
9467 #. type: Plain text
9468 #: build/C/man2/signalfd.2:406
9469 #, no-wrap
9470 msgid ""
9471 "    sigemptyset(&mask);\n"
9472 "    sigaddset(&mask, SIGINT);\n"
9473 "    sigaddset(&mask, SIGQUIT);\n"
9474 msgstr ""
9475 "    sigemptyset(&mask);\n"
9476 "    sigaddset(&mask, SIGINT);\n"
9477 "    sigaddset(&mask, SIGQUIT);\n"
9478
9479 #. type: Plain text
9480 #: build/C/man2/signalfd.2:409
9481 #, no-wrap
9482 msgid ""
9483 "    /* Block signals so that they aren\\(aqt handled\n"
9484 "       according to their default dispositions */\n"
9485 msgstr ""
9486 "    /* Block signals so that they aren\\(aqt handled\n"
9487 "       according to their default dispositions */\n"
9488
9489 #. type: Plain text
9490 #: build/C/man2/signalfd.2:412
9491 #, no-wrap
9492 msgid ""
9493 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
9494 "        handle_error(\"sigprocmask\");\n"
9495 msgstr ""
9496 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
9497 "        handle_error(\"sigprocmask\");\n"
9498
9499 #. type: Plain text
9500 #: build/C/man2/signalfd.2:416
9501 #, no-wrap
9502 msgid ""
9503 "    sfd = signalfd(-1, &mask, 0);\n"
9504 "    if (sfd == -1)\n"
9505 "        handle_error(\"signalfd\");\n"
9506 msgstr ""
9507 "    sfd = signalfd(-1, &mask, 0);\n"
9508 "    if (sfd == -1)\n"
9509 "        handle_error(\"signalfd\");\n"
9510
9511 #. type: Plain text
9512 #: build/C/man2/signalfd.2:421
9513 #, no-wrap
9514 msgid ""
9515 "    for (;;) {\n"
9516 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
9517 "        if (s != sizeof(struct signalfd_siginfo))\n"
9518 "            handle_error(\"read\");\n"
9519 msgstr ""
9520 "    for (;;) {\n"
9521 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
9522 "        if (s != sizeof(struct signalfd_siginfo))\n"
9523 "            handle_error(\"read\");\n"
9524
9525 #. type: Plain text
9526 #: build/C/man2/signalfd.2:432
9527 #, no-wrap
9528 msgid ""
9529 "        if (fdsi.ssi_signo == SIGINT) {\n"
9530 "            printf(\"Got SIGINT\\en\");\n"
9531 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
9532 "            printf(\"Got SIGQUIT\\en\");\n"
9533 "            exit(EXIT_SUCCESS);\n"
9534 "        } else {\n"
9535 "            printf(\"Read unexpected signal\\en\");\n"
9536 "        }\n"
9537 "    }\n"
9538 "}\n"
9539 msgstr ""
9540 "        if (fdsi.ssi_signo == SIGINT) {\n"
9541 "            printf(\"Got SIGINT\\en\");\n"
9542 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
9543 "            printf(\"Got SIGQUIT\\en\");\n"
9544 "            exit(EXIT_SUCCESS);\n"
9545 "        } else {\n"
9546 "            printf(\"Read unexpected signal\\en\");\n"
9547 "        }\n"
9548 "    }\n"
9549 "}\n"
9550
9551 #. type: Plain text
9552 #: build/C/man2/signalfd.2:446
9553 msgid ""
9554 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
9555 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
9556 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
9557 msgstr ""
9558 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
9559 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
9560 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
9561
9562 #. type: TH
9563 #: build/C/man3/sigpause.3:25
9564 #, no-wrap
9565 msgid "SIGPAUSE"
9566 msgstr "SIGPAUSE"
9567
9568 #. type: Plain text
9569 #: build/C/man3/sigpause.3:28
9570 msgid "sigpause - atomically release blocked signals and wait for interrupt"
9571 msgstr "sigpause - ブロックされたシグナルをアトミックに解放して割り込みを待つ"
9572
9573 #. type: Plain text
9574 #: build/C/man3/sigpause.3:33
9575 #, no-wrap
9576 msgid "B<int sigpause(int >I<sigmask>B<);  /* BSD (but see NOTES) */>\n"
9577 msgstr "B<int sigpause(int >I<sigmask>B<);  /* BSD (ただし「備考」を参照) */>\n"
9578
9579 #. type: Plain text
9580 #: build/C/man3/sigpause.3:35
9581 #, no-wrap
9582 msgid "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
9583 msgstr "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
9584
9585 #. type: Plain text
9586 #: build/C/man3/sigpause.3:41
9587 msgid "Don't use this function.  Use B<sigsuspend>(2)  instead."
9588 msgstr "この関数を使わないこと。 代わりに B<sigsuspend>(2)  を使うこと。"
9589
9590 #. type: Plain text
9591 #: build/C/man3/sigpause.3:48
9592 msgid ""
9593 "The function B<sigpause>()  is designed to wait for some signal.  It changes "
9594 "the process's signal mask (set of blocked signals), and then waits for a "
9595 "signal to arrive.  Upon arrival of a signal, the original signal mask is "
9596 "restored."
9597 msgstr ""
9598 "関数 B<sigpause>()  はシグナルを待つように設計されている。 この関数はプロセス"
9599 "のシグナルマスク (ブロックされたシグナルのセット) を変更し、 シグナルが到着す"
9600 "るのを待つ。 シグナルが到着すると、シグナルマスクは元に戻される。"
9601
9602 #. type: Plain text
9603 #: build/C/man3/sigpause.3:56
9604 msgid ""
9605 "If B<sigpause>()  returns, it was interrupted by a signal and the return "
9606 "value is -1 with I<errno> set to B<EINTR>."
9607 msgstr ""
9608 "B<sigpause>()  が返った場合、この関数はシグナルによって割り込まれている。 返"
9609 "り値は -1 で、 I<errno> は B<EINTR> に設定される。"
9610
9611 #. type: Plain text
9612 #: build/C/man3/sigpause.3:61
9613 msgid "The B<sigpause>()  function is thread-safe."
9614 msgstr "B<sigpause>() 関数はスレッドセーフである。"
9615
9616 #. type: Plain text
9617 #: build/C/man3/sigpause.3:65
9618 msgid "The System V version of B<sigpause>()  is standardized in POSIX.1-2001."
9619 msgstr "System V 版の B<sigpause>()  は POSIX.1-2001 で標準化されている。"
9620
9621 #.  __xpg_sigpause: UNIX 95, spec 1170, SVID, SVr4, XPG
9622 #. type: Plain text
9623 #: build/C/man3/sigpause.3:82
9624 msgid ""
9625 "The classical BSD version of this function appeared in 4.2BSD.  It sets the "
9626 "process's signal mask to I<sigmask>.  UNIX 95 standardized the incompatible "
9627 "System V version of this function, which removes only the specified signal "
9628 "I<sig> from the process's signal mask.  The unfortunate situation with two "
9629 "incompatible functions with the same name was solved by the B<\\"
9630 "%sigsuspend>(2)  function, that takes a I<sigset_t\\ *> argument (instead of "
9631 "an I<int>)."
9632 msgstr ""
9633 "この関数の古典的な BSD 版は 4.2BSD で登場した。 この関数はプロセスのシグナル"
9634 "マスクを I<sigmask> に設定する。 UNIX 95 では BSD 版と互換性のない System V "
9635 "版のこの関数が標準化された。 UNIX 95 版は、指定されたシグナル I<sig> をプロセ"
9636 "スのシグナルマスクから削除するだけである。 同じ名前で互換性のない 2 つの関数"
9637 "があるという不幸な事態は、 B<\\%sigsuspend>(2)  関数によって解消された。 この"
9638 "関数は (I<int> の代わりに)  B<sigset_t\\ *> 引き数をとる。"
9639
9640 #. type: Plain text
9641 #: build/C/man3/sigpause.3:85
9642 msgid ""
9643 "On Linux, this routine is a system call only on the Sparc (sparc64)  "
9644 "architecture."
9645 msgstr ""
9646 "Linux では、このルーチンは Sparc (sparc64) アーキテクチャーでのみ システム"
9647 "コールとなっている。"
9648
9649 #.  Libc4 and libc5 know only about the BSD version.
9650 #.  For the BSD version, one usually uses a zero
9651 #.  .I sigmask
9652 #.  to indicate that no signals are to be blocked.
9653 #. type: Plain text
9654 #: build/C/man3/sigpause.3:111
9655 msgid ""
9656 "Glibc uses the BSD version if the B<_BSD_SOURCE> feature test macro is "
9657 "defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
9658 "B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined.  Otherwise, the System V "
9659 "version is used (and B<_XOPEN_SOURCE> must be defined to obtain the "
9660 "declaration).  Since glibc 2.19, only the System V version is exposed by "
9661 "I<E<lt>signal.hE<gt>>; applications that formerly used the BSD "
9662 "B<sigpause>()  should be amended to use B<sigsuspend>(2)."
9663 msgstr ""
9664 "機能検査マクロ B<_BSD_SOURCE> が定義され、 B<_POSIX_SOURCE>, "
9665 "B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, B<_GNU_SOURCE>, B<_SVID_SOURCE> のいず"
9666 "れも定義されていない場合、 glibc は BSD 版を使う。 それ以外の場合には、"
9667 "System V 版を使用する (宣言を得るためには B<_XOPEN_SOURCE> が定義されていなけ"
9668 "ればならない)。 glibc 2.19 以降では、 I<E<lt>signal.hE<gt>> では System V 版"
9669 "だけが公開される。 BSD 版の B<sigpause>() を使用していたアプリケーションは "
9670 "B<sigsuspend>(2) を使用するように修正すべきである。"
9671
9672 #. type: Plain text
9673 #: build/C/man3/sigpause.3:119
9674 msgid ""
9675 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
9676 "B<sigblock>(3), B<sigvec>(3), B<feature_test_macros>(7)"
9677 msgstr ""
9678 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
9679 "B<sigblock>(3), B<sigvec>(3), B<feature_test_macros>(7)"
9680
9681 #. type: TH
9682 #: build/C/man2/sigpending.2:29
9683 #, no-wrap
9684 msgid "SIGPENDING"
9685 msgstr "SIGPENDING"
9686
9687 #. type: TH
9688 #: build/C/man2/sigpending.2:29
9689 #, no-wrap
9690 msgid "2013-12-11"
9691 msgstr "2013-12-11"
9692
9693 #. type: Plain text
9694 #: build/C/man2/sigpending.2:32
9695 msgid "sigpending - examine pending signals"
9696 msgstr "sigpending - 処理待ちのシグナルの検査"
9697
9698 #. type: Plain text
9699 #: build/C/man2/sigpending.2:36
9700 msgid "B<int sigpending(sigset_t *>I<set>B<);>"
9701 msgstr "B<int sigpending(sigset_t *>I<set>B<);>"
9702
9703 #. type: Plain text
9704 #: build/C/man2/sigpending.2:45
9705 msgid ""
9706 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9707 "_POSIX_SOURCE"
9708 msgstr ""
9709 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9710 "_POSIX_SOURCE"
9711
9712 #. type: Plain text
9713 #: build/C/man2/sigpending.2:53
9714 msgid ""
9715 "B<sigpending>()  returns the set of signals that are pending for delivery to "
9716 "the calling thread (i.e., the signals which have been raised while "
9717 "blocked).  The mask of pending signals is returned in I<set>."
9718 msgstr ""
9719 "B<sigpending>()  は、呼び出し元のスレッドへの配送を待っている (pending) シグ"
9720 "ナル集合 (すなわち、禁止中に発生したシグナル) を返す。 処理待ちのシグナルのマ"
9721 "スクが I<set> に格納される。"
9722
9723 #. type: Plain text
9724 #: build/C/man2/sigpending.2:59
9725 msgid ""
9726 "B<sigpending>()  returns 0 on success and -1 on error.  In the event of an "
9727 "error, I<errno> is set to indicate the cause."
9728 msgstr ""
9729 "B<sigpending>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、I<errno> "
9730 "にエラーの原因を示す値を設定する。"
9731
9732 #. type: Plain text
9733 #: build/C/man2/sigpending.2:64
9734 msgid ""
9735 "I<set> points to memory which is not a valid part of the process address "
9736 "space."
9737 msgstr ""
9738 "I<set> が指しているメモリーが、プロセスのアドレス空間の有効な部分ではない。"
9739
9740 #. type: Plain text
9741 #: build/C/man2/sigpending.2:74
9742 msgid ""
9743 "If a signal is both blocked and has a disposition of \"ignored\", it is "
9744 "I<not> added to the mask of pending signals when generated."
9745 msgstr ""
9746 "シグナルが禁止 (ブロック) されており、かつ配送方法が \"ignored\" (無視) に"
9747 "なっている場合、そのシグナルが発生した場合に処理待ちシグナルのマスクにそのシ"
9748 "グナルは追加I<されない>。"
9749
9750 #. type: Plain text
9751 #: build/C/man2/sigpending.2:79
9752 msgid ""
9753 "The set of signals that is pending for a thread is the union of the set of "
9754 "signals that is pending for that thread and the set of signals that is "
9755 "pending for the process as a whole; see B<signal>(7)."
9756 msgstr ""
9757 "あるスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体への処理待ち"
9758 "のシグナル集合と、プロセス全体への処理待ちの シグナル集合をあわせたものであ"
9759 "る。 B<signal>(7)  参照。"
9760
9761 #. type: Plain text
9762 #: build/C/man2/sigpending.2:91
9763 msgid ""
9764 "In versions of glibc up to and including 2.2.1, there is a bug in the "
9765 "wrapper function for B<sigpending>()  which means that information about "
9766 "pending real-time signals is not correctly returned."
9767 msgstr ""
9768 "バージョン 2.2.1 以前の glibc では、 B<sigpending>()  のラッパー関数に、処理"
9769 "待ちのリアルタイムシグナルに関する情報が 正しく返されないというバグがある。"
9770
9771 #. type: Plain text
9772 #: build/C/man2/sigpending.2:99
9773 msgid ""
9774 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9775 "B<sigsuspend>(2), B<sigsetops>(3), B<signal>(7)"
9776 msgstr ""
9777 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9778 "B<sigsuspend>(2), B<sigsetops>(3), B<signal>(7)"
9779
9780 #. type: TH
9781 #: build/C/man2/sigprocmask.2:29
9782 #, no-wrap
9783 msgid "SIGPROCMASK"
9784 msgstr "SIGPROCMASK"
9785
9786 #. type: TH
9787 #: build/C/man2/sigprocmask.2:29 build/C/man2/sigsuspend.2:29
9788 #, no-wrap
9789 msgid "2013-04-19"
9790 msgstr "2013-04-19"
9791
9792 #. type: Plain text
9793 #: build/C/man2/sigprocmask.2:32
9794 msgid "sigprocmask - examine and change blocked signals"
9795 msgstr "sigprocmask - 禁止するシグナルの確認と変更"
9796
9797 #. type: Plain text
9798 #: build/C/man2/sigprocmask.2:37
9799 msgid ""
9800 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9801 "*>I<oldset>B<);>"
9802 msgstr ""
9803 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9804 "*>I<oldset>B<);>"
9805
9806 #. type: Plain text
9807 #: build/C/man2/sigprocmask.2:46
9808 msgid ""
9809 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9810 "_POSIX_SOURCE"
9811 msgstr ""
9812 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9813 "_POSIX_SOURCE"
9814
9815 #. type: Plain text
9816 #: build/C/man2/sigprocmask.2:55
9817 msgid ""
9818 "B<sigprocmask>()  is used to fetch and/or change the signal mask of the "
9819 "calling thread.  The signal mask is the set of signals whose delivery is "
9820 "currently blocked for the caller (see also B<signal>(7)  for more details)."
9821 msgstr ""
9822 "B<sigprocmask>()  を使うと、呼び出したスレッドのシグナルマスクの取得/変更がで"
9823 "きる。 シグナルマスクは、呼び出し元に対して現在配送が禁止されているシグナル"
9824 "の 集合のことである (詳細については B<signal>(7)  も参照のこと)。"
9825
9826 #. type: Plain text
9827 #: build/C/man2/sigprocmask.2:59
9828 msgid ""
9829 "The behavior of the call is dependent on the value of I<how>, as follows."
9830 msgstr "このコールの動作は I<how> の値によって決まる:"
9831
9832 #. type: TP
9833 #: build/C/man2/sigprocmask.2:59
9834 #, no-wrap
9835 msgid "B<SIG_BLOCK>"
9836 msgstr "B<SIG_BLOCK>"
9837
9838 #. type: Plain text
9839 #: build/C/man2/sigprocmask.2:64
9840 msgid ""
9841 "The set of blocked signals is the union of the current set and the I<set> "
9842 "argument."
9843 msgstr ""
9844 "禁止されたシグナルの集合は現在の値と I<set> 引き数を結合したものとなる。"
9845
9846 #. type: TP
9847 #: build/C/man2/sigprocmask.2:64
9848 #, no-wrap
9849 msgid "B<SIG_UNBLOCK>"
9850 msgstr "B<SIG_UNBLOCK>"
9851
9852 #. type: Plain text
9853 #: build/C/man2/sigprocmask.2:70
9854 msgid ""
9855 "The signals in I<set> are removed from the current set of blocked signals.  "
9856 "It is permissible to attempt to unblock a signal which is not blocked."
9857 msgstr ""
9858 "現在禁止されているシグナルの集合から I<set> にあるシグナルを取り除く。禁止さ"
9859 "れていないシグナルを取り除こうと することも認められている。"
9860
9861 #. type: TP
9862 #: build/C/man2/sigprocmask.2:70
9863 #, no-wrap
9864 msgid "B<SIG_SETMASK>"
9865 msgstr "B<SIG_SETMASK>"
9866
9867 #. type: Plain text
9868 #: build/C/man2/sigprocmask.2:74
9869 msgid "The set of blocked signals is set to the argument I<set>."
9870 msgstr "禁止されているシグナルの集合に I<set> 引き数を設定する。"
9871
9872 #. type: Plain text
9873 #: build/C/man2/sigprocmask.2:79
9874 msgid ""
9875 "If I<oldset> is non-NULL, the previous value of the signal mask is stored in "
9876 "I<oldset>."
9877 msgstr ""
9878 "I<oldset> が NULL でなければ、シグナルマスクの今までの値を I<oldset> に格納す"
9879 "る。"
9880
9881 #. type: Plain text
9882 #: build/C/man2/sigprocmask.2:88
9883 msgid ""
9884 "If I<set> is NULL, then the signal mask is unchanged (i.e., I<how> is "
9885 "ignored), but the current value of the signal mask is nevertheless returned "
9886 "in I<oldset> (if it is not NULL)."
9887 msgstr ""
9888 "I<set> が NULL であれば、シグナルマスクは変更されない (すなわち、 I<how> は無"
9889 "視される)。 I<set> の値にかかわらず、現在のシグナルマスクの値は I<oldset> に"
9890 "入れて返される (但し、 I<oldset> が NULL でない場合)。"
9891
9892 #. type: Plain text
9893 #: build/C/man2/sigprocmask.2:93
9894 msgid ""
9895 "The use of B<sigprocmask>()  is unspecified in a multithreaded process; see "
9896 "B<pthread_sigmask>(3)."
9897 msgstr ""
9898 "マルチスレッドのプロセスで B<sigprocmask>()  を使用した場合の動作は規定されて"
9899 "いない。 B<pthread_sigmask>(3)  を参照のこと。"
9900
9901 #. type: Plain text
9902 #: build/C/man2/sigprocmask.2:99
9903 msgid ""
9904 "B<sigprocmask>()  returns 0 on success and -1 on error.  In the event of an "
9905 "error, I<errno> is set to indicate the cause."
9906 msgstr ""
9907 "B<sigprocmask>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、 "
9908 "I<errno> にエラーの原因を示す値を設定する。"
9909
9910 #. type: Plain text
9911 #: build/C/man2/sigprocmask.2:107
9912 msgid ""
9913 "the I<set> or I<oldset> argument points outside the process's allocated "
9914 "address space."
9915 msgstr ""
9916 "引き数 I<set> か I<oldset> がプロセスに割り当てられたアドレス空間の外を指して"
9917 "いる。"
9918
9919 #. type: Plain text
9920 #: build/C/man2/sigprocmask.2:112
9921 msgid "The value specified in I<how> was invalid."
9922 msgstr "I<how> に指定された値が有効ではない。"
9923
9924 #. type: Plain text
9925 #: build/C/man2/sigprocmask.2:118
9926 msgid ""
9927 "It is not possible to block B<SIGKILL> or B<SIGSTOP>.  Attempts to do so are "
9928 "silently ignored."
9929 msgstr ""
9930 "B<SIGKILL> や B<SIGSTOP> を禁止することはできない。 禁止しようとしても黙って"
9931 "無視される。"
9932
9933 #. type: Plain text
9934 #: build/C/man2/sigprocmask.2:120
9935 msgid "Each of the threads in a process has its own signal mask."
9936 msgstr "プロセス内の各スレッドはそれぞれ専用のシグナルマスクを持つ。"
9937
9938 #. type: Plain text
9939 #: build/C/man2/sigprocmask.2:140
9940 msgid ""
9941 "If B<SIGBUS>, B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> are generated while they "
9942 "are blocked, the result is undefined, unless the signal was generated by "
9943 "B<kill>(2), B<sigqueue>(3), or B<raise>(3)."
9944 msgstr ""
9945 "シグナル B<SIGBUS>, B<SIGFPE>, B<SIGILL>, B<SIGSEGV> が禁止されている間に生成"
9946 "された場合で、 そのシグナルが B<kill>(2), B<sigqueue>(3), B<raise>(3)  によっ"
9947 "て生成されたものでないときには、 その後の動作は未定義である。"
9948
9949 #. type: Plain text
9950 #: build/C/man2/sigprocmask.2:155
9951 msgid ""
9952 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9953 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9954 "B<signal>(7)"
9955 msgstr ""
9956 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9957 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9958 "B<signal>(7)"
9959
9960 #. type: TH
9961 #: build/C/man3/sigqueue.3:28
9962 #, no-wrap
9963 msgid "SIGQUEUE"
9964 msgstr "SIGQUEUE"
9965
9966 #. type: TH
9967 #: build/C/man3/sigqueue.3:28 build/C/man3/sigwait.3:26
9968 #, no-wrap
9969 msgid "2013-12-16"
9970 msgstr "2013-12-16"
9971
9972 #. type: Plain text
9973 #: build/C/man3/sigqueue.3:31
9974 msgid "sigqueue - queue a signal and data to a process"
9975 msgstr "sigqueue - シグナルとデータをプロセスに送る"
9976
9977 #. type: Plain text
9978 #: build/C/man3/sigqueue.3:35
9979 msgid ""
9980 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9981 ">I<value>B<);>"
9982 msgstr ""
9983 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9984 ">I<value>B<);>"
9985
9986 #. type: Plain text
9987 #: build/C/man3/sigqueue.3:43
9988 msgid "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9989 msgstr "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9990
9991 #. type: Plain text
9992 #: build/C/man3/sigqueue.3:55
9993 msgid ""
9994 "B<sigqueue>()  sends the signal specified in I<sig> to the process whose PID "
9995 "is given in I<pid>.  The permissions required to send a signal are the same "
9996 "as for B<kill>(2).  As with B<kill>(2), the null signal (0) can be used to "
9997 "check if a process with a given PID exists."
9998 msgstr ""
9999 "B<sigqueue>()  は I<sig> で指定されたシグナルを、PID が I<pid> であるプロセス"
10000 "に送る。 シグナルを送るのに必要な権限は B<kill>(2)  と同じである。 "
10001 "B<kill>(2)  と同様に、ヌルシグナル (0) を使って 指定した PID のプロセスが存在"
10002 "するかをチェックすることができる。"
10003
10004 #. type: Plain text
10005 #: build/C/man3/sigqueue.3:60
10006 msgid ""
10007 "The I<value> argument is used to specify an accompanying item of data "
10008 "(either an integer or a pointer value) to be sent with the signal, and has "
10009 "the following type:"
10010 msgstr ""
10011 "I<value> 引き数はシグナルと一緒に送るデータの付属アイテムを指定する。 "
10012 "I<value> は (整数またはポインターの値であり) 以下のような型である。"
10013
10014 #. type: Plain text
10015 #: build/C/man3/sigqueue.3:67
10016 #, no-wrap
10017 msgid ""
10018 "union sigval {\n"
10019 "    int   sival_int;\n"
10020 "    void *sival_ptr;\n"
10021 "};\n"
10022 msgstr ""
10023 "union sigval {\n"
10024 "    int   sival_int;\n"
10025 "    void *sival_ptr;\n"
10026 "};\n"
10027
10028 #. type: Plain text
10029 #: build/C/man3/sigqueue.3:83
10030 msgid ""
10031 "If the receiving process has installed a handler for this signal using the "
10032 "B<SA_SIGINFO> flag to B<sigaction>(2), then it can obtain this data via the "
10033 "I<si_value> field of the I<siginfo_t> structure passed as the second "
10034 "argument to the handler.  Furthermore, the I<si_code> field of that "
10035 "structure will be set to B<SI_QUEUE>."
10036 msgstr ""
10037 "受取先のプロセスに、このシグナルに対するハンドラーを (B<sigaction>(2)  に "
10038 "B<SA_SIGINFO> を指定して) インストールしておくと、 そのハンドラーの第 2 引き"
10039 "数に渡される I<siginfo_t> 構造体の I<si_value> フィールドによって、このデータ"
10040 "を取得できる。 さらに、この構造体の I<si_code> フィールドは B<SI_QUEUE> に設"
10041 "定される。"
10042
10043 #. type: Plain text
10044 #: build/C/man3/sigqueue.3:91
10045 msgid ""
10046 "On success, B<sigqueue>()  returns 0, indicating that the signal was "
10047 "successfully queued to the receiving process.  Otherwise, -1 is returned and "
10048 "I<errno> is set to indicate the error."
10049 msgstr ""
10050 "成功した場合、 B<sigqueue>()  は 0 を返す。 これは受け取り側プロセスの待ち行"
10051 "列に シグナルが正しく入れられたことを示す。 失敗した場合は -1 が返され、 "
10052 "I<errno> がエラーを表す値に設定される。"
10053
10054 #. type: Plain text
10055 #: build/C/man3/sigqueue.3:102
10056 msgid "I<sig> was invalid."
10057 msgstr "I<sig> が不正である。"
10058
10059 #. type: Plain text
10060 #: build/C/man3/sigqueue.3:108
10061 msgid ""
10062 "The process does not have permission to send the signal to the receiving "
10063 "process.  For the required permissions, see B<kill>(2)."
10064 msgstr ""
10065 "このプロセスには、受け取り側プロセスにシグナルを送る権限がない。 必要な権限に"
10066 "ついては、 B<kill>(2)  を参照すること。"
10067
10068 #. type: Plain text
10069 #: build/C/man3/sigqueue.3:112
10070 msgid "No process has a PID matching I<pid>."
10071 msgstr "I<pid> にマッチする PID のプロセスがない。"
10072
10073 #. type: Plain text
10074 #: build/C/man3/sigqueue.3:114
10075 msgid "This system call first appeared in Linux 2.2."
10076 msgstr "このシステムコールは Linux 2.2 で初めて登場した。"
10077
10078 #. type: Plain text
10079 #: build/C/man3/sigqueue.3:119
10080 msgid "The B<sigqueue>()  function is thread-safe."
10081 msgstr "B<sigqueue>() 関数はスレッドセーフである。"
10082
10083 #. type: Plain text
10084 #: build/C/man3/sigqueue.3:129
10085 msgid ""
10086 "If this function results in the sending of a signal to the process that "
10087 "invoked it, and that signal was not blocked by the calling thread, and no "
10088 "other threads were willing to handle this signal (either by having it "
10089 "unblocked, or by waiting for it using B<sigwait>(3)), then at least some "
10090 "signal must be delivered to this thread before this function returns."
10091 msgstr ""
10092 "この関数を呼び出したプロセスにこの関数がシグナルを送ったときに、 シグナルが呼"
10093 "び出し側スレッドにブロックされず、 かつ (シグナルがブロックされなかった、また"
10094 "は B<sigwait>(3)  を使用するのを待っていることにより)  このシグナルを扱うス"
10095 "レッドが何もない場合は、 この関数がリターンする前に、少なくとも そのスレッド"
10096 "に対してシグナルが配送されていなければならない。"
10097
10098 #. type: Plain text
10099 #: build/C/man3/sigqueue.3:144
10100 msgid ""
10101 "On Linux, this function is implemented using the B<rt_sigqueueinfo>(2)  "
10102 "system call.  The system call differs in its third argument, which is the "
10103 "I<siginfo_t> structure that will be supplied to the receiving process's "
10104 "signal handler or returned by the receiving process's B<sigtimedwait>(2)  "
10105 "call.  Inside the glibc B<sigqueue>()  wrapper, this argument, I<uinfo>, is "
10106 "initialized as follows:"
10107 msgstr ""
10108 "Linux では、この関数は B<rt_sigqueueinfo>(2)  システムコールを使って実装され"
10109 "ている。 両者には 3 番目の引き数に違いがあり、 B<rt_sigqueueinfo>(2)  では 3 "
10110 "番目の引き数は I<siginfo_t> 構造体である。 I<siginfo_t> 構造体は、シグナルを"
10111 "受信するプロセスのシグナルハンドラーに渡されたり、 シグナル受信プロセスの "
10112 "B<sigtimedwait>(2)  システムコールから返されたりする。 glibc の "
10113 "B<sigqueue>()  ラッパー関数内部では、 この引き数 I<uinfo> は以下のように初期"
10114 "化される。"
10115
10116 #. type: Plain text
10117 #: build/C/man3/sigqueue.3:152
10118 #, no-wrap
10119 msgid ""
10120 "uinfo.si_signo = sig;      /* Argument supplied to sigqueue() */\n"
10121 "uinfo.si_code = SI_QUEUE;\n"
10122 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
10123 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
10124 "uinfo.si_value = val;      /* Argument supplied to sigqueue() */\n"
10125 msgstr ""
10126 "uinfo.si_signo = sig;      /* Argument supplied to sigqueue() */\n"
10127 "uinfo.si_code = SI_QUEUE;\n"
10128 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
10129 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
10130 "uinfo.si_value = val;      /* Argument supplied to sigqueue() */\n"
10131
10132 #. type: Plain text
10133 #: build/C/man3/sigqueue.3:162
10134 msgid ""
10135 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
10136 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
10137 msgstr ""
10138 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
10139 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
10140
10141 #. type: TH
10142 #: build/C/man2/sigreturn.2:30
10143 #, no-wrap
10144 msgid "SIGRETURN"
10145 msgstr "SIGRETURN"
10146
10147 #. type: Plain text
10148 #: build/C/man2/sigreturn.2:33
10149 msgid "sigreturn - return from signal handler and cleanup stack frame"
10150 msgstr "sigreturn - シグナルハンドラーから返り、スタックを掃除する"
10151
10152 #. type: Plain text
10153 #: build/C/man2/sigreturn.2:35
10154 msgid "B<int sigreturn(...);>"
10155 msgstr "B<int sigreturn(...);>"
10156
10157 #.  See arch/x86/kernel/signal.c::__setup_frame() [in 3.17 source code]
10158 #. type: Plain text
10159 #: build/C/man2/sigreturn.2:45
10160 msgid ""
10161 "If the Linux kernel determines that an unblocked signal is pending for a "
10162 "process, then, at the next transition back to user mode in that process (e."
10163 "g., upon return from a system call or when the process is rescheduled onto "
10164 "the CPU), it saves various pieces of process context (processor status word, "
10165 "registers, signal mask, and signal stack settings)  into the user-space "
10166 "stack."
10167 msgstr ""
10168 "Linux カーネルがプロセスに対してブロックされていないシグナルが処理待ちと判定"
10169 "した場合、 そのプロセスの次回のユーザーモードへの遷移 (すなわち、システムコー"
10170 "ルからのリターン時やそのプロセスが CPU に再スケジュールされる際)、 カーネルは"
10171 "プロセスコンテキストの種々の値 (プロセッサーのステータスワード、 レジス"
10172 "ター、 シグナルマスク、 シグナルスタック設定) をユーザー空間のスタックに保存"
10173 "する。"
10174
10175 #. type: Plain text
10176 #: build/C/man2/sigreturn.2:52
10177 msgid ""
10178 "The kernel also arranges that, during the transition back to user mode, the "
10179 "signal handler is called, and that, upon return from the handler, control "
10180 "passes to a piece of user-space code commonly called the \"signal trampoline"
10181 "\".  The signal trampoline code in turn calls B<sigreturn>()."
10182 msgstr ""
10183 "また、 カーネルは、 ユーザーモードへの遷移時にシグナルハンドラーが呼び出さ"
10184 "れ、 ハンドラーからのリターン時に、 制御が \"signal trampoline\" と呼ばれる"
10185 "ユーザー空間コードブロックに渡されるように、準備を行う。 signal trampoline の"
10186 "コードが B<sigreturn>() を呼び出す。"
10187
10188 #. type: Plain text
10189 #: build/C/man2/sigreturn.2:65
10190 msgid ""
10191 "This B<sigreturn>()  call undoes everything that was done\\(emchanging the "
10192 "process's signal mask, switching signal stacks (see "
10193 "B<sigaltstack>(2))\\(emin order to invoke the signal handler.  It restores "
10194 "the process's signal mask, switches stacks, and restores the process's "
10195 "context (processor flags and registers, including the stack pointer and "
10196 "instruction pointer), so that the process resumes execution at the point "
10197 "where it was interrupted by the signal."
10198 msgstr ""
10199 "B<sigreturn>()  は、シグナルハンドラーを起動するために行ったことの全て \\(em "
10200 "プロセスのシグナルマスクの変更、 シグナルスタックの切り替え "
10201 "(B<sigaltstack>(2)  参照) \\(em の取り消しを行う。 プロセスのシグナルマスクの"
10202 "復元、 スタックの切り替え、 プロセスのコンテキスト (プロセッサフラグ、 レジス"
10203 "ター (スタックポインター、 命令ポインターを含む)) の復元を行い、 プロセスがシ"
10204 "グナルにより割り込まれた場所から実行を再開できるようにする。"
10205
10206 #. type: Plain text
10207 #: build/C/man2/sigreturn.2:68
10208 msgid "B<sigreturn>()  never returns."
10209 msgstr "B<sigreturn>()  が返ることはない。"
10210
10211 #. type: Plain text
10212 #: build/C/man2/sigreturn.2:74
10213 msgid ""
10214 "Many UNIX-type systems have a B<sigreturn>()  system call or near "
10215 "equivalent.  However, this call is not specified in POSIX, and details of "
10216 "its behavior vary across systems."
10217 msgstr ""
10218 "多くの UNIX 系のシステムには B<sigreturn>() システムコールか似たようなシステ"
10219 "ムコールがある。 しかしながら、 このシステムコールは POSIX には規定されておら"
10220 "ず、 その動作の詳細はシステムにより異なる。"
10221
10222 #. type: Plain text
10223 #: build/C/man2/sigreturn.2:83
10224 msgid ""
10225 "B<sigreturn>()  exists only to allow the implementation of signal handlers.  "
10226 "It should B<never> be called directly.  Details of the arguments (if any) "
10227 "passed to B<sigreturn>()  vary depending on the architecture."
10228 msgstr ""
10229 "B<sigreturn>() はシグナルハンドラーを実装するためだけに存在している。 これら"
10230 "を直接呼び出すのはB<決して>行うべきではない。 B<sigreturn>() に渡される引き数"
10231 "の詳細はアーキテクチャーにより異なる。"
10232
10233 #.  See, for example, sysdeps/unix/sysv/linux/i386/sigaction.c and
10234 #.  sysdeps/unix/sysv/linux/x86_64/sigaction.c in the glibc (2.20) source.
10235 #. type: Plain text
10236 #: build/C/man2/sigreturn.2:106
10237 msgid ""
10238 "Once upon a time, UNIX systems placed the signal trampoline code onto the "
10239 "user stack.  Nowadays, pages of the user stack are protected so as to "
10240 "disallow code execution.  Thus, on contemporary Linux systems, depending on "
10241 "the architecture, the signal trampoline code lives either in the B<vdso>(7)  "
10242 "or in the C library.  In the latter case, the C library supplies the "
10243 "location of the trampoline code using the I<sa_restorer> field of the "
10244 "I<sigaction> structure that is passed to B<sigaction>(2), and sets the "
10245 "B<SA_RESTORER> flag in the I<sa_flags> field."
10246 msgstr ""
10247 "かつて、 UNIX システムでは signal trampoline コードがユーザースタックに置かれ"
10248 "ていた。 今日では、 ユーザースタックのページは保護され、 コードの実行は禁止さ"
10249 "れている。 したがって、 現代の Linux システムでは、 アーキテクチャー依存では"
10250 "あるが、 signal trampoline コードは B<vdso>(7) 内もしくは C ライブラリ内に置"
10251 "かれる。 後者の場合、 C ライブラリは trampoline code の場所を "
10252 "B<sigaction>(2) に渡される I<sigaction> 構造体の I<sa_restorer> フィールドを"
10253 "使って渡し、 I<sa_flags> フィールドの B<SA_RESTORER> フラグをセットする。"
10254
10255 #. type: Plain text
10256 #: build/C/man2/sigreturn.2:115
10257 msgid ""
10258 "The saved process context information is placed in a I<ucontext_t> structure "
10259 "(see I<E<lt>sys/ucontext.hE<gt>>).  That structure is visible within the "
10260 "signal handler as the third argument of a handler established with the "
10261 "B<SA_SIGINFO> flag."
10262 msgstr ""
10263 "保存されたプロセスコンテキスト情報は I<ucontext_t>構造体に置かれる "
10264 "(I<E<lt>sys/ucontext.hE<gt>> 参照)。 この構造体は、 B<SA_SIGINFO> フラグを付"
10265 "けて設定されたシグナルハンドラーの第 3 引き数としてシングルハンドラー内で参照"
10266 "できる。"
10267
10268 #. type: Plain text
10269 #: build/C/man2/sigreturn.2:123
10270 msgid ""
10271 "On some other UNIX systems, the operation of the signal trampoline differs a "
10272 "little.  In particular, on some systems, upon transitioning back to user "
10273 "mode, the kernel passes control to the trampoline (rather than the signal "
10274 "handler), and the trampoline code calls the signal handler (and then calls "
10275 "B<sigreturn>()  once the handler returns)."
10276 msgstr ""
10277 "他のいくつかの UNIX システムでは、 signal trampoline の扱いは少し異なる。 特"
10278 "に、 いくつかのシステムでは、 ユーザーモードに戻る際に、 カーネルは制御を (シ"
10279 "グナルハンドラーではなく) trampoline に渡し、 trampoline コードがシグナルハン"
10280 "ドラーを呼び出す (その後ハンドラーが返ると B<sigreturn>() を呼び出す)。"
10281
10282 #. type: Plain text
10283 #: build/C/man2/sigreturn.2:130
10284 msgid ""
10285 "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), "
10286 "B<getcontext>(3), B<signal>(7)"
10287 msgstr ""
10288 "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), "
10289 "B<getcontext>(3), B<signal>(7)"
10290
10291 #. type: TH
10292 #: build/C/man3/sigset.3:26
10293 #, no-wrap
10294 msgid "SIGSET"
10295 msgstr "SIGSET"
10296
10297 #. type: Plain text
10298 #: build/C/man3/sigset.3:29
10299 msgid "sigset, sighold, sigrelse, sigignore - System V signal API"
10300 msgstr "sigset, sighold, sigrelse, sigignore - System V 版シグナル API"
10301
10302 #. type: Plain text
10303 #: build/C/man3/sigset.3:35
10304 msgid "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
10305 msgstr "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
10306
10307 #. type: Plain text
10308 #: build/C/man3/sigset.3:37
10309 msgid "B<int sighold(int >I<sig>B<);>"
10310 msgstr "B<int sighold(int >I<sig>B<);>"
10311
10312 #. type: Plain text
10313 #: build/C/man3/sigset.3:39
10314 msgid "B<int sigrelse(int >I<sig>B<);>"
10315 msgstr "B<int sigrelse(int >I<sig>B<);>"
10316
10317 #. type: Plain text
10318 #: build/C/man3/sigset.3:41
10319 msgid "B<int sigignore(int >I<sig>B<);>"
10320 msgstr "B<int sigignore(int >I<sig>B<);>"
10321
10322 #. type: Plain text
10323 #: build/C/man3/sigset.3:52
10324 msgid "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
10325 msgstr "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
10326
10327 #. type: Plain text
10328 #: build/C/man3/sigset.3:56
10329 msgid ""
10330 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
10331 msgstr ""
10332 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
10333
10334 #. type: Plain text
10335 #: build/C/man3/sigset.3:65
10336 msgid ""
10337 "These functions are provided in glibc as a compatibility interface for "
10338 "programs that make use of the historical System V signal API.  This API is "
10339 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
10340 "B<sigprocmask>(2), etc.)"
10341 msgstr ""
10342 "これらの関数は、昔ながらの System V 版シグナル API を使用しているプログラム "
10343 "に対して互換性のあるインターフェースを glibc で提供するものである。 この API "
10344 "は過去のものであり、新しいアプリケーションでは POSIX シグナル API "
10345 "(B<sigaction>(2), B<sigprocmask>(2)  など) を使用すべきである。"
10346
10347 #. type: Plain text
10348 #: build/C/man3/sigset.3:74
10349 msgid ""
10350 "The B<sigset>()  function modifies the disposition of the signal I<sig>.  "
10351 "The I<disp> argument can be the address of a signal handler function, or one "
10352 "of the following constants:"
10353 msgstr ""
10354 "関数 B<sigset>()  はシグナル I<sig> のシグナルハンドラーの動作を変更する。 "
10355 "I<disp> 引き数には、シグナルハンドラー関数のアドレスか、 以下の定数のいずれか"
10356 "一つを指定できる。"
10357
10358 #. type: TP
10359 #: build/C/man3/sigset.3:74
10360 #, no-wrap
10361 msgid "B<SIG_DFL>"
10362 msgstr "B<SIG_DFL>"
10363
10364 #. type: Plain text
10365 #: build/C/man3/sigset.3:79
10366 msgid "Reset the disposition of I<sig> to the default."
10367 msgstr "I<sig> の動作をデフォルトにリセットする。"
10368
10369 #. type: TP
10370 #: build/C/man3/sigset.3:79
10371 #, no-wrap
10372 msgid "B<SIG_IGN>"
10373 msgstr "B<SIG_IGN>"
10374
10375 #. type: Plain text
10376 #: build/C/man3/sigset.3:83
10377 msgid "Ignore I<sig>."
10378 msgstr "I<sig> を無視する。"
10379
10380 #. type: TP
10381 #: build/C/man3/sigset.3:83
10382 #, no-wrap
10383 msgid "B<SIG_HOLD>"
10384 msgstr "B<SIG_HOLD>"
10385
10386 #. type: Plain text
10387 #: build/C/man3/sigset.3:90
10388 msgid ""
10389 "Add I<sig> to the process's signal mask, but leave the disposition of I<sig> "
10390 "unchanged."
10391 msgstr ""
10392 "そのプロセスのシグナルマスクに I<sig> を追加するが、 I<sig> の動作は変更しな"
10393 "い。"
10394
10395 #. type: Plain text
10396 #: build/C/man3/sigset.3:96
10397 msgid ""
10398 "If I<disp> specifies the address of a signal handler, then I<sig> is added "
10399 "to the process's signal mask during execution of the handler."
10400 msgstr ""
10401 "I<disp> にシグナルハンドラーのアドレスが指定された場合、 シグナルハンドラーの"
10402 "実行中は、そのプロセスのシグナルマスクに I<sig> が追加される。"
10403
10404 #. type: Plain text
10405 #: build/C/man3/sigset.3:104
10406 msgid ""
10407 "If I<disp> was specified as a value other than B<SIG_HOLD>, then I<sig> is "
10408 "removed from the process's signal mask."
10409 msgstr ""
10410 "I<disp> に B<SIG_HOLD> 以外の値が指定された場合、 そのプロセスのシグナルマス"
10411 "クから I<sig> が削除される。"
10412
10413 #. type: Plain text
10414 #: build/C/man3/sigset.3:110 build/C/man3/sigvec.3:87
10415 msgid "The dispositions for B<SIGKILL> and B<SIGSTOP> cannot be changed."
10416 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> に対する動作は変更できない。"
10417
10418 #. type: Plain text
10419 #: build/C/man3/sigset.3:116
10420 msgid ""
10421 "The B<sighold>()  function adds I<sig> to the calling process's signal mask."
10422 msgstr ""
10423 "関数 B<sighold>()  は、呼び出し元プロセスのシグナルマスクに I<sig> を追加す"
10424 "る。"
10425
10426 #. type: Plain text
10427 #: build/C/man3/sigset.3:122
10428 msgid ""
10429 "The B<sigrelse>()  function removes I<sig> from the calling process's signal "
10430 "mask."
10431 msgstr ""
10432 "関数 B<sigrelse>()  は、呼び出し元プロセスのシグナルマスクから I<sig> を削除"
10433 "する。"
10434
10435 #. type: Plain text
10436 #: build/C/man3/sigset.3:129
10437 msgid ""
10438 "The B<sigignore>()  function sets the disposition of I<sig> to B<SIG_IGN>."
10439 msgstr "関数 B<sigignore>()  は、 I<sig> の動作を B<SIG_IGN> に設定する。"
10440
10441 #. type: Plain text
10442 #: build/C/man3/sigset.3:145
10443 msgid ""
10444 "On success, B<sigset>()  returns B<SIG_HOLD> if I<sig> was blocked before "
10445 "the call, or the signal's previous disposition if it was not blocked before "
10446 "the call.  On error, B<sigset>()  returns -1, with I<errno> set to indicate "
10447 "the error.  (But see BUGS below.)"
10448 msgstr ""
10449 "B<sigset>()  は成功すると、 呼び出し前に I<sig> がブロックされていた場合には "
10450 "B<SIG_HOLD> を返し、 ブロックされていなかった場合には 変更前のそのシグナルの"
10451 "動作を返す。 エラーの場合、 B<sigset>()  は -1 を返し、 I<errno> にエラーを示"
10452 "す値をセットする。 但し、以下の「バグ」の節も参照のこと。"
10453
10454 #. type: Plain text
10455 #: build/C/man3/sigset.3:154
10456 msgid ""
10457 "The B<sighold>(), B<sigrelse>(), and B<sigignore>()  functions return 0 on "
10458 "success; on error, these functions return -1 and set I<errno> to indicate "
10459 "the error."
10460 msgstr ""
10461 "関数 B<sighold>(), B<sigrelse>(), B<sigignore>()  は成功すると 0 を返す。エ"
10462 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値をセットする。"
10463
10464 #. type: Plain text
10465 #: build/C/man3/sigset.3:161
10466 msgid ""
10467 "For B<sigset>()  see the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
10468 msgstr ""
10469 "B<sigset>()  に関しては、 B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」"
10470 "の節を参照。"
10471
10472 #. type: Plain text
10473 #: build/C/man3/sigset.3:168
10474 msgid ""
10475 "For B<sighold>()  and B<sigrelse>()  see the ERRORS under B<sigprocmask>(2)."
10476 msgstr ""
10477 "B<sighold>()  と B<sigrelse>()  に関しては、 B<sigprocmask>(2)  の「エラー」"
10478 "の節を参照。"
10479
10480 #. type: Plain text
10481 #: build/C/man3/sigset.3:173
10482 msgid "For B<sigignore>(), see the errors under B<sigaction>(2)."
10483 msgstr "B<sigignore>()  に関しては、 B<sigaction>(2)  の「エラー」の節を参照。"
10484
10485 #. type: Plain text
10486 #: build/C/man3/sigset.3:190
10487 msgid ""
10488 "SVr4, POSIX.1-2001.  These functions are obsolete: do not use them in new "
10489 "programs.  POSIX.1-2008 marks B<sighold>(), B<sigignore>(), B<sigpause>(), "
10490 "B<sigrelse>(), and B<sigset>()  as obsolete, recommending the use of "
10491 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), and "
10492 "B<sigsuspend>(2)  instead."
10493 msgstr ""
10494 "SVr4, POSIX.1-2001.  これらの関数は廃止予定である。新しいプログラムでは使用し"
10495 "ないこと。 POSIX.1-2008 は、 B<sighold>(), B<sigignore>(), B<sigpause>(), "
10496 "B<sigrelse>(), B<sigset>()  を廃止予定としている。 代わりに、 "
10497 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), B<sigsuspend>(2)  "
10498 "の使用が推奨されている。"
10499
10500 #. type: Plain text
10501 #: build/C/man3/sigset.3:192
10502 msgid "These functions appeared in glibc version 2.1."
10503 msgstr "これらの関数は glibc 2.1 で登場した。"
10504
10505 #. type: Plain text
10506 #: build/C/man3/sigset.3:198
10507 msgid ""
10508 "The I<sighandler_t> type is a GNU extension; it is used on this page only to "
10509 "make the B<sigset>()  prototype more easily readable."
10510 msgstr ""
10511 "I<sighandler_t> 型は GNU による拡張であり、この man page で B<sigset>()  のプ"
10512 "ロトタイプをより読みやすくするために使われているだけである。"
10513
10514 #. type: Plain text
10515 #: build/C/man3/sigset.3:206
10516 msgid ""
10517 "The B<sigset>()  function provides reliable signal handling semantics (as "
10518 "when calling B<sigaction>(2)  with I<sa_mask> equal to 0)."
10519 msgstr ""
10520 "関数 B<sigset>()  は信頼性のあるシグナル処理機構を提供する (I<sa_mask> を 0 "
10521 "で B<sigaction>(2)  を呼び出したときと同様)。"
10522
10523 #. type: Plain text
10524 #: build/C/man3/sigset.3:224
10525 msgid ""
10526 "On System V, the B<signal>()  function provides unreliable semantics (as "
10527 "when calling B<sigaction>(2)  with I<sa_mask> equal to I<SA_RESETHAND | "
10528 "SA_NODEFER>).  On BSD, B<signal>()  provides reliable semantics.  "
10529 "POSIX.1-2001 leaves these aspects of B<signal>()  unspecified.  See "
10530 "B<signal>(2)  for further details."
10531 msgstr ""
10532 "System V では、関数 B<signal>()  が提供する処理機構は信頼性のないものである "
10533 "(I<sa_mask> を I<SA_RESETHAND | SA_NODEFER> として B<sigaction>(2)  を呼び出"
10534 "したときと同様)。 BSD では、 B<signal>()  は信頼性のある処理機構を提供する。 "
10535 "POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままとなっている。 さら"
10536 "なる詳細については B<signal>(2)  を参照。"
10537
10538 #. type: Plain text
10539 #: build/C/man3/sigset.3:232 build/C/man3/sigvec.3:272
10540 msgid ""
10541 "In order to wait for a signal, BSD and System V both provided a function "
10542 "named B<sigpause>(3), but this function has a different argument on the two "
10543 "systems.  See B<sigpause>(3)  for details."
10544 msgstr ""
10545 "BSD と System V のどちらのシステムでも シグナルを待つために、 "
10546 "B<sigpause>(3)  という名前の関数が提供されているが、 この関数の引き数は両方の"
10547 "システムで異なる。 詳細は B<sigpause>(3)  を参照。"
10548
10549 #. type: Plain text
10550 #: build/C/man3/sigset.3:241
10551 msgid ""
10552 "In versions of glibc before 2.2, B<sigset>()  did not unblock I<sig> if "
10553 "I<disp> was specified as a value other than B<SIG_HOLD>."
10554 msgstr ""
10555 "2.2 より前のバージョンの glibc では、 I<disp> に B<SIG_HOLD> 以外の値が指定さ"
10556 "れた場合、 I<sig> のブロック解除を行っていなかった。"
10557
10558 #.  See http://sourceware.org/bugzilla/show_bug.cgi?id=1951
10559 #. type: Plain text
10560 #: build/C/man3/sigset.3:266
10561 msgid ""
10562 "In versions of glibc before 2.5, B<sigset>()  does not correctly return the "
10563 "previous disposition of the signal in two cases.  First, if I<disp> is "
10564 "specified as B<SIG_HOLD>, then a successful B<sigset>()  always returns "
10565 "B<SIG_HOLD>.  Instead, it should return the previous disposition of the "
10566 "signal (unless the signal was blocked, in which case B<SIG_HOLD> should be "
10567 "returned).  Second, if the signal is currently blocked, then the return "
10568 "value of a successful B<sigset>()  should be B<SIG_HOLD>.  Instead, the "
10569 "previous disposition of the signal is returned.  These problems have been "
10570 "fixed since glibc 2.5."
10571 msgstr ""
10572 "2.3.5 以前の全てのバージョンの glibc では、 B<sigset>()  が変更前のシグナルの"
10573 "動作を正しく返さない場合が 2つある。 一つめは、 I<disp> に B<SIG_HOLD> が指定"
10574 "されると、成功した場合 B<sigset>()  は常に B<SIG_HOLD> を返すことである。 正"
10575 "しくは、(シグナルがブロックされていなかった場合には)  変更前のシグナルの動作"
10576 "を返すべきである (シグナルがブロックされていた場合には、 B<SIG_HOLD> が返され"
10577 "る)。 もう一つは、シグナルが現在ブロックされている場合には、 成功した場合の "
10578 "B<sigset>()  の返り値は B<SIG_HOLD> になるべきであるが、実際には 変更前のシグ"
10579 "ナルの動作が返されることである。 これらの問題は glibc 2.5 以降で修正されてい"
10580 "る。"
10581
10582 #. type: Plain text
10583 #: build/C/man3/sigset.3:276
10584 msgid ""
10585 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10586 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
10587 msgstr ""
10588 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10589 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
10590
10591 #. type: TH
10592 #: build/C/man3/sigsetops.3:31
10593 #, no-wrap
10594 msgid "SIGSETOPS"
10595 msgstr "SIGSETOPS"
10596
10597 #. type: TH
10598 #: build/C/man3/sigsetops.3:31
10599 #, no-wrap
10600 msgid "2014-04-14"
10601 msgstr "2014-04-14"
10602
10603 #. type: Plain text
10604 #: build/C/man3/sigsetops.3:35
10605 msgid ""
10606 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX signal "
10607 "set operations"
10608 msgstr ""
10609 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX シグナル集"
10610 "合の操作"
10611
10612 #. type: Plain text
10613 #: build/C/man3/sigsetops.3:39
10614 msgid "B<int sigemptyset(sigset_t *>I<set>B<);>"
10615 msgstr "B<int sigemptyset(sigset_t *>I<set>B<);>"
10616
10617 #. type: Plain text
10618 #: build/C/man3/sigsetops.3:41
10619 msgid "B<int sigfillset(sigset_t *>I<set>B<);>"
10620 msgstr "B<int sigfillset(sigset_t *>I<set>B<);>"
10621
10622 #. type: Plain text
10623 #: build/C/man3/sigsetops.3:43
10624 msgid "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10625 msgstr "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10626
10627 #. type: Plain text
10628 #: build/C/man3/sigsetops.3:45
10629 msgid "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10630 msgstr "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10631
10632 #. type: Plain text
10633 #: build/C/man3/sigsetops.3:47
10634 msgid "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
10635 msgstr "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
10636
10637 #. type: Plain text
10638 #: build/C/man3/sigsetops.3:59
10639 msgid ""
10640 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10641 "B<sigismember>():"
10642 msgstr ""
10643 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10644 "B<sigismember>():"
10645
10646 #. type: Plain text
10647 #: build/C/man3/sigsetops.3:61
10648 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10649 msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10650
10651 #. type: Plain text
10652 #: build/C/man3/sigsetops.3:65
10653 msgid "These functions allow the manipulation of POSIX signal sets."
10654 msgstr "これらの関数は POSIX シグナル集合(signal set)を操作するため使用する。"
10655
10656 #. type: Plain text
10657 #: build/C/man3/sigsetops.3:70
10658 msgid ""
10659 "B<sigemptyset>()  initializes the signal set given by I<set> to empty, with "
10660 "all signals excluded from the set."
10661 msgstr ""
10662 "B<sigemptyset>()  は I<set> で与えられたシグナル集合を空に初期化し、シグナル"
10663 "が一つも 含まれていない状態にする。"
10664
10665 #. type: Plain text
10666 #: build/C/man3/sigsetops.3:75
10667 msgid "B<sigfillset>()  initializes I<set> to full, including all signals."
10668 msgstr ""
10669 "B<sigfillset>()  は I<set> で与えられたシグナル集合が全てのシグナルを含むよう"
10670 "にする。"
10671
10672 #. type: Plain text
10673 #: build/C/man3/sigsetops.3:83
10674 msgid ""
10675 "B<sigaddset>()  and B<sigdelset>()  add and delete respectively signal "
10676 "I<signum> from I<set>."
10677 msgstr ""
10678 "B<sigaddset>()  と B<sigdelset>()  は I<set> に I<signum> シグナルをそれぞれ"
10679 "加えたり、削除したりする。"
10680
10681 #. type: Plain text
10682 #: build/C/man3/sigsetops.3:89
10683 msgid "B<sigismember>()  tests whether I<signum> is a member of I<set>."
10684 msgstr ""
10685 "B<sigismember>()  は I<signum> が I<set> に含まれているかどうかをテストする。"
10686
10687 #. type: Plain text
10688 #: build/C/man3/sigsetops.3:107
10689 msgid ""
10690 "Objects of type I<sigset_t> must be initialized by a call to either "
10691 "B<sigemptyset>()  or B<sigfillset>()  before being passed to the functions "
10692 "B<sigaddset>(), B<sigdelset>()  and B<sigismember>()  or the additional "
10693 "glibc functions described below (B<sigisemptyset>(), B<sigandset>(), and "
10694 "B<sigorset>()).  The results are undefined if this is not done."
10695 msgstr ""
10696 "I<sigset_t> 型のオブジェクトは、関数 B<sigaddset>(), B<sigdelset>(), "
10697 "B<sigismember>()  や後述の glibc の追加関数 (B<sigisemptyset>(), "
10698 "B<sigandset>(), B<sigorset>())  に渡す前に、 B<sigemptyset>()  か "
10699 "B<sigfillset>()  を呼び出して初期化しなければならない。 初期化しなかった場合"
10700 "の結果は未定義である。"
10701
10702 #. type: Plain text
10703 #: build/C/man3/sigsetops.3:114
10704 msgid ""
10705 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), and B<sigdelset>()  "
10706 "return 0 on success and -1 on error."
10707 msgstr ""
10708 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>()  は成功すれ"
10709 "ば 0 を、エラーの場合は -1 を返す。"
10710
10711 #. type: Plain text
10712 #: build/C/man3/sigsetops.3:123
10713 msgid ""
10714 "B<sigismember>()  returns 1 if I<signum> is a member of I<set>, 0 if "
10715 "I<signum> is not a member, and -1 on error."
10716 msgstr ""
10717 "B<sigismember>()  は I<signum> が I<set> のメンバの場合 1 を返し、メンバでな"
10718 "い場合 0 を返す。 エラーの場合、-1 を返す。"
10719
10720 #. type: Plain text
10721 #: build/C/man3/sigsetops.3:127
10722 msgid ""
10723 "On error, these functions set I<errno> to indicate the cause of the error."
10724 msgstr "エラーの場合、 I<errno> にエラーの原因を示す値を設定する。"
10725
10726 #. type: Plain text
10727 #: build/C/man3/sigsetops.3:132
10728 msgid "I<sig> is not a valid signal."
10729 msgstr "I<sig> が有効なシグナルではない。"
10730
10731 #. type: Plain text
10732 #: build/C/man3/sigsetops.3:145
10733 msgid ""
10734 "The B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10735 "B<sigismember>(), B<sigisemptyset>(), B<sigorset>(), and B<sigandset>()  "
10736 "functions are thread-safe."
10737 msgstr ""
10738 "関数 B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10739 "B<sigismember>(), B<sigisemptyset>(), B<sigorset>(), B<sigandset>() はスレッ"
10740 "ドセーフである。"
10741
10742 #. type: SS
10743 #: build/C/man3/sigsetops.3:148
10744 #, no-wrap
10745 msgid "Glibc notes"
10746 msgstr "glibc での注意"
10747
10748 #. type: Plain text
10749 #: build/C/man3/sigsetops.3:154
10750 msgid ""
10751 "If the B<_GNU_SOURCE> feature test macro is defined, then I<E<lt>signal."
10752 "hE<gt>> exposes three other functions for manipulating signal sets:"
10753 msgstr ""
10754 "B<_GNU_SOURCE> 機能検査マクロが定義されていると、 I<E<lt>signal.hE<gt>> でシ"
10755 "グナル集合を操作する 3 つの関数が追加で公開される。"
10756
10757 #. type: Plain text
10758 #: build/C/man3/sigsetops.3:161
10759 #, no-wrap
10760 msgid ""
10761 "B<int sigisemptyset(const sigset_t *>I<set>B<);>\n"
10762 "B<int sigorset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10763 "B<              const sigset_t *>I<right>B<);>\n"
10764 "B<int sigandset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10765 "B<              const sigset_t *>I<right>B<);>\n"
10766 msgstr ""
10767 "B<int sigisemptyset(const sigset_t *>I<set>B<);>\n"
10768 "B<int sigorset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10769 "B<              const sigset_t *>I<right>B<);>\n"
10770 "B<int sigandset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10771 "B<              const sigset_t *>I<right>B<);>\n"
10772
10773 #. type: Plain text
10774 #: build/C/man3/sigsetops.3:167
10775 msgid ""
10776 "B<sigisemptyset>()  returns 1 if I<set> contains no signals, and 0 otherwise."
10777 msgstr ""
10778 "B<sigisemptyset>() は I<set> にシグナルが一つも含まれていなければ 1 を返し、 "
10779 "それ以外は 0 を返す。"
10780
10781 #. type: Plain text
10782 #: build/C/man3/sigsetops.3:183
10783 msgid ""
10784 "B<sigorset>()  places the union of the sets I<left> and I<right> in "
10785 "I<dest>.  B<sigandset>()  places the intersection of the sets I<left> and "
10786 "I<right> in I<dest>.  Both functions return 0 on success, and -1 on failure."
10787 msgstr ""
10788 "B<sigorset>() は集合 I<left> と I<right> の和集合を I<dest> に設定する。 "
10789 "B<sigandset>() は集合 I<left> と I<right> の積集合を I<dest> に設定する。 ど"
10790 "ちらの関数も成功すると 0 を返し、失敗時には -1 を返す。"
10791
10792 #. type: Plain text
10793 #: build/C/man3/sigsetops.3:186
10794 msgid ""
10795 "These functions are nonstandard (a few other systems provide similar "
10796 "functions) and their use should be avoided in portable applications."
10797 msgstr ""
10798 "これらの関数は非標準であり、(他にも同様の関数を提供しているシステムも いくつ"
10799 "かはあるが) 移植性を考慮したアプリケーションでは使用を避けるべき である。"
10800
10801 #. type: Plain text
10802 #: build/C/man3/sigsetops.3:191
10803 msgid "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10804 msgstr "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10805
10806 #. type: TH
10807 #: build/C/man2/sigsuspend.2:29
10808 #, no-wrap
10809 msgid "SIGSUSPEND"
10810 msgstr "SIGSUSPEND"
10811
10812 #. type: Plain text
10813 #: build/C/man2/sigsuspend.2:32
10814 msgid "sigsuspend - wait for a signal"
10815 msgstr "sigsuspend - シグナルを待つ"
10816
10817 #. type: Plain text
10818 #: build/C/man2/sigsuspend.2:36
10819 msgid "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10820 msgstr "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10821
10822 #. type: Plain text
10823 #: build/C/man2/sigsuspend.2:45
10824 msgid ""
10825 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10826 "_POSIX_SOURCE"
10827 msgstr ""
10828 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10829 "_POSIX_SOURCE"
10830
10831 #. type: Plain text
10832 #: build/C/man2/sigsuspend.2:53
10833 msgid ""
10834 "B<sigsuspend>()  temporarily replaces the signal mask of the calling process "
10835 "with the mask given by I<mask> and then suspends the process until delivery "
10836 "of a signal whose action is to invoke a signal handler or to terminate a "
10837 "process."
10838 msgstr ""
10839 "B<sigsuspend>()  は、呼び出し元プロセスのシグナルマスクを I<mask> で指定され"
10840 "たマスクに一時的に置き換え、 シグナルハンドラーの起動もしくはプロセスの終了が"
10841 "アクションとして 設定されたシグナルが配送されるまで、そのプロセスを停止する。"
10842
10843 #. type: Plain text
10844 #: build/C/man2/sigsuspend.2:62
10845 msgid ""
10846 "If the signal terminates the process, then B<sigsuspend>()  does not "
10847 "return.  If the signal is caught, then B<sigsuspend>()  returns after the "
10848 "signal handler returns, and the signal mask is restored to the state before "
10849 "the call to B<sigsuspend>()."
10850 msgstr ""
10851 "シグナルがプロセスを終了させるものの場合、 B<sigsuspend>()  は返らない。シグ"
10852 "ナルが捕捉された場合、 シグナルハンドラーの処理が終わった後に "
10853 "B<sigsuspend>()  は返り、シグナルマスクは B<sigsuspend>()  が呼び出される前の"
10854 "状態に復元される。"
10855
10856 #. type: Plain text
10857 #: build/C/man2/sigsuspend.2:70
10858 msgid ""
10859 "It is not possible to block B<SIGKILL> or B<SIGSTOP>; specifying these "
10860 "signals in I<mask>, has no effect on the process's signal mask."
10861 msgstr ""
10862 "B<SIGKILL> と B<SIGSTOP> を禁止 (block) することはできない; これらのシグナル"
10863 "を I<mask> に指定しても、プロセスのシグナルマスクは影響を受けない。"
10864
10865 #. type: Plain text
10866 #: build/C/man2/sigsuspend.2:76
10867 msgid ""
10868 "B<sigsuspend>()  always returns -1, with I<errno> set to indicate the error "
10869 "(normally, B<EINTR>)."
10870 msgstr ""
10871 "B<sigsuspend>() は常に -1 を返し、 I<errno> にエラーの原因を示す値 (通常は "
10872 "B<EINTR>) を設定する。"
10873
10874 #. type: Plain text
10875 #: build/C/man2/sigsuspend.2:81
10876 msgid ""
10877 "I<mask> points to memory which is not a valid part of the process address "
10878 "space."
10879 msgstr ""
10880 "I<mask> が指しているメモリーが、プロセスのアドレス空間の有効な部分ではない。"
10881
10882 #. type: Plain text
10883 #: build/C/man2/sigsuspend.2:84
10884 msgid "The call was interrupted by a signal."
10885 msgstr "システムコールはシグナルにより割り込まれた。"
10886
10887 #. type: Plain text
10888 #: build/C/man2/sigsuspend.2:104
10889 msgid ""
10890 "Normally, B<sigsuspend>()  is used in conjunction with B<sigprocmask>(2)  in "
10891 "order to prevent delivery of a signal during the execution of a critical "
10892 "code section.  The caller first blocks the signals with B<sigprocmask>(2).  "
10893 "When the critical code has completed, the caller then waits for the signals "
10894 "by calling B<sigsuspend>()  with the signal mask that was returned by "
10895 "B<sigprocmask>(2)  (in the I<oldset> argument)."
10896 msgstr ""
10897 "B<sigsuspend>()  は、通常、クリティカルコードセクション (critical code "
10898 "section) の 実行中にシグナルが配送されるのを防止するために、 "
10899 "B<sigprocmask>(2)  と組み合わせて使用される。 まず最初に、呼び出し元は "
10900 "B<sigprocmask>(2)  を使ってシグナルを禁止する。 クリティカルコードが完了する"
10901 "と、呼び出し元は B<sigprocmask>(2)  が (I<oldset> 引き数で) 返すシグナルマス"
10902 "クを指定して B<sigsuspend>()  を呼び出すことで、クリティカルコード実行中に発"
10903 "生した シグナルを待つことができる。"
10904
10905 #. type: Plain text
10906 #: build/C/man2/sigsuspend.2:118
10907 msgid ""
10908 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10909 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10910 msgstr ""
10911 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10912 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10913
10914 #. type: TH
10915 #: build/C/man3/sigvec.3:26
10916 #, no-wrap
10917 msgid "SIGVEC"
10918 msgstr "SIGVEC"
10919
10920 #. type: Plain text
10921 #: build/C/man3/sigvec.3:29
10922 msgid "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD signal API"
10923 msgstr "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD 版シグナル API"
10924
10925 #. type: Plain text
10926 #: build/C/man3/sigvec.3:33
10927 msgid ""
10928 "B<int sigvec(int >I<sig>B<, const struct sigvec *>I<vec>B<, struct sigvec "
10929 "*>I<ovec>B<);>"
10930 msgstr ""
10931 "B<int sigvec(int >I<sig>B<, const struct sigvec *>I<vec>B<, struct sigvec "
10932 "*>I<ovec>B<);>"
10933
10934 #. type: Plain text
10935 #: build/C/man3/sigvec.3:35
10936 msgid "B<int sigmask(int >I<signum>B<);>"
10937 msgstr "B<int sigmask(int >I<signum>B<);>"
10938
10939 #. type: Plain text
10940 #: build/C/man3/sigvec.3:37
10941 msgid "B<int sigblock(int >I<mask>B<);>"
10942 msgstr "B<int sigblock(int >I<mask>B<);>"
10943
10944 #. type: Plain text
10945 #: build/C/man3/sigvec.3:39
10946 msgid "B<int sigsetmask(int >I<mask>B<);>"
10947 msgstr "B<int sigsetmask(int >I<mask>B<);>"
10948
10949 #. type: Plain text
10950 #: build/C/man3/sigvec.3:41
10951 msgid "B<int siggetmask(void);>"
10952 msgstr "B<int siggetmask(void);>"
10953
10954 #. type: Plain text
10955 #: build/C/man3/sigvec.3:49
10956 msgid "All functions shown above: _BSD_SOURCE"
10957 msgstr "上記の全ての関数: _BSD_SOURCE"
10958
10959 #. type: Plain text
10960 #: build/C/man3/sigvec.3:56
10961 msgid ""
10962 "These functions are provided in glibc as a compatibility interface for "
10963 "programs that make use of the historical BSD signal API.  This API is "
10964 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
10965 "B<sigprocmask>(2), etc.)."
10966 msgstr ""
10967 "これらの関数は、昔ながらの BSD 版シグナル API を使用しているプログラム に対し"
10968 "て互換性のあるインターフェースを glibc で提供するものである。 この API は過去"
10969 "のものであり、新しいアプリケーションでは POSIX シグナル API "
10970 "(B<sigaction>(2), B<sigprocmask>(2)  など) を使用すべきである。"
10971
10972 #. type: Plain text
10973 #: build/C/man3/sigvec.3:81
10974 msgid ""
10975 "The B<sigvec>()  function sets and/or gets the disposition of the signal "
10976 "I<sig> (like the POSIX B<sigaction>(2)).  If I<vec> is not NULL, it points "
10977 "to a I<sigvec> structure that defines the new disposition for I<sig>.  If "
10978 "I<ovec> is not NULL, it points to a I<sigvec> structure that is used to "
10979 "return the previous disposition of I<sig>.  To obtain the current "
10980 "disposition of I<sig> without changing it, specify NULL for I<vec>, and a "
10981 "non-null pointer for I<ovec>."
10982 msgstr ""
10983 "関数 B<sigvec>()  は、(POSIX の B<sigaction>(2)  と同様に) シグナル I<sig> の"
10984 "動作の設定・取得を行う。 I<vec> は、NULL 以外の場合、 I<sig> の新しい動作を定"
10985 "義した I<sigvec> 構造体へのポインターである。 I<ovec> は、NULL 以外の場合、 "
10986 "I<sig> の変更前の動作を返すために使用される I<sigvec> 構造体へのポインターで"
10987 "ある。 I<sig> の動作を変更せずに現在の動作を取得するためには、 I<vec> に "
10988 "NULL を指定し、 I<ovec> に NULL でないポインターを指定すればよい。"
10989
10990 #. type: Plain text
10991 #: build/C/man3/sigvec.3:91
10992 msgid "The I<sigvec> structure has the following form:"
10993 msgstr "I<sigvec> 構造体は以下の通りである:"
10994
10995 #. type: Plain text
10996 #: build/C/man3/sigvec.3:99
10997 #, no-wrap
10998 msgid ""
10999 "struct sigvec {\n"
11000 "    void (*sv_handler)(int); /* Signal disposition */\n"
11001 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
11002 "    int    sv_flags;         /* Flags */\n"
11003 "};\n"
11004 msgstr ""
11005 "struct sigvec {\n"
11006 "    void (*sv_handler)(int); /* Signal disposition */\n"
11007 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
11008 "    int    sv_flags;         /* Flags */\n"
11009 "};\n"
11010
11011 #. type: Plain text
11012 #: build/C/man3/sigvec.3:110
11013 msgid ""
11014 "The I<sv_handler> field specifies the disposition of the signal, and is "
11015 "either: the address of a signal handler function; B<SIG_DFL>, meaning the "
11016 "default disposition applies for the signal; or B<SIG_IGN>, meaning that the "
11017 "signal is ignored."
11018 msgstr ""
11019 "I<sv_handler> フィールドはシグナルの動作を指定するもので、 シグナルハンドラー"
11020 "関数のアドレスか、 B<SIG_DFL> と B<SIG_IGN> のいずれかを指定できる。 "
11021 "B<SIG_DFL> はシグナルに適用されるデフォルトの動作を意味し、 B<SIG_IGN> はシグ"
11022 "ナルを無視することを意味する。"
11023
11024 #. type: Plain text
11025 #: build/C/man3/sigvec.3:124
11026 msgid ""
11027 "If I<sv_handler> specifies the address of a signal handler, then I<sv_mask> "
11028 "specifies a mask of signals that are to be blocked while the handler is "
11029 "executing.  In addition, the signal for which the handler is invoked is also "
11030 "blocked.  Attempts to block B<SIGKILL> or B<SIGSTOP> are silently ignored."
11031 msgstr ""
11032 "I<sv_handler> にシグナルハンドラーのアドレスを指定した場合、 I<sv_mask> はハ"
11033 "ンドラーが実行中にブロックされるべきシグナルのマスクを指定する。 また、ハンド"
11034 "ラーを起動したシグナル自身はブロックされる。 B<SIGKILL> か B<SIGSTOP> をブ"
11035 "ロックしようとした場合には、黙って無視される。"
11036
11037 #. type: Plain text
11038 #: build/C/man3/sigvec.3:131
11039 msgid ""
11040 "If I<sv_handler> specifies the address of a signal handler, then the "
11041 "I<sv_flags> field specifies flags controlling what happens when the handler "
11042 "is called.  This field may contain zero or more of the following flags:"
11043 msgstr ""
11044 "I<sv_handler> にシグナルハンドラーのアドレスを指定した場合、 I<sv_flags> "
11045 "フィールドはハンドラーが呼ばれた際の挙動を制御するフラグを指定する。 この"
11046 "フィールドには、0 か、以下のフラグを 1個以上指定できる:"
11047
11048 #. type: TP
11049 #: build/C/man3/sigvec.3:131
11050 #, no-wrap
11051 msgid "B<SV_INTERRUPT>"
11052 msgstr "B<SV_INTERRUPT>"
11053
11054 #. type: Plain text
11055 #: build/C/man3/sigvec.3:139
11056 msgid ""
11057 "If the signal handler interrupts a blocking system call, then upon return "
11058 "from the handler the system call will not be restarted: instead it will fail "
11059 "with the error B<EINTR>.  If this flag is not specified, then system calls "
11060 "are restarted by default."
11061 msgstr ""
11062 "シグナルハンドラーが停止中のシステムコールを中断した場合、 ハンドラーから復帰"
11063 "しても、システムコールは再開されず、 エラー B<EINTR> で失敗する。 このフラグ"
11064 "を指定しなかった場合、システムコールは デフォルトで再開される。"
11065
11066 #. type: TP
11067 #: build/C/man3/sigvec.3:139
11068 #, no-wrap
11069 msgid "B<SV_RESETHAND>"
11070 msgstr "B<SV_RESETHAND>"
11071
11072 #. type: Plain text
11073 #: build/C/man3/sigvec.3:148
11074 msgid ""
11075 "Reset the disposition of the signal to the default before calling the signal "
11076 "handler.  If this flag is not specified, then the handler remains "
11077 "established until explicitly removed by a later call to B<sigvec>()  or "
11078 "until the process performs an B<execve>(2)."
11079 msgstr ""
11080 "シグナルハンドラーを呼び出す前にシグナルの動作を デフォルトにリセットする。 "
11081 "このフラグを指定しなかった場合、もう一度 B<sigvec>()  を呼び出して明示的に削"
11082 "除されるか、プロセスが B<execve>(2)  を実行するまで、ハンドラーは設定されたま"
11083 "まとなる。"
11084
11085 #. type: TP
11086 #: build/C/man3/sigvec.3:148
11087 #, no-wrap
11088 msgid "B<SV_ONSTACK>"
11089 msgstr "B<SV_ONSTACK>"
11090
11091 #. type: Plain text
11092 #: build/C/man3/sigvec.3:155
11093 msgid ""
11094 "Handle the signal on the alternate signal stack (historically established "
11095 "under BSD using the obsolete B<sigstack>()  function; the POSIX replacement "
11096 "is B<sigaltstack>(2))."
11097 msgstr ""
11098 "代替シグナルスタック上でシグナルハンドラーを実行する (歴史的に、BSD では代替"
11099 "シグナルスタックは廃止された関数 B<sigstack>()  を使って設定する。POSIX で"
11100 "は、代わりに B<sigaltstack>(2)  を使用する)。"
11101
11102 #. type: Plain text
11103 #: build/C/man3/sigvec.3:165
11104 msgid ""
11105 "The B<sigmask>()  macro constructs and returns a \"signal mask\" for "
11106 "I<signum>.  For example, we can initialize the I<vec.sv_mask> field given to "
11107 "B<sigvec>()  using code such as the following:"
11108 msgstr ""
11109 "マクロ B<sigmask>()  は I<signum> に対する「シグナルマスク」を構成して返す。 "
11110 "例えば、以下のようなコードを使うと、 B<sigvec>()  に渡す I<vec.sv_mask> を初"
11111 "期化できる。"
11112
11113 #. type: Plain text
11114 #: build/C/man3/sigvec.3:170
11115 #, no-wrap
11116 msgid ""
11117 "    vec.sv_mask = sigmask(SIGQUIT) | sigmask(SIGABRT);\n"
11118 "                /* Block SIGQUIT and SIGABRT during\n"
11119 "                   handler execution */\n"
11120 msgstr ""
11121 "    vec.sv_mask = sigmask(SIGQUIT) | sigmask(SIGABRT);\n"
11122 "                /* Block SIGQUIT and SIGABRT during\n"
11123 "                   handler execution */\n"
11124
11125 #. type: Plain text
11126 #: build/C/man3/sigvec.3:185
11127 msgid ""
11128 "The B<sigblock>()  function adds the signals in I<mask> to the process's "
11129 "signal mask (like POSIX I<sigprocmask(SIG_BLOCK)>), and returns the "
11130 "process's previous signal mask.  Attempts to block B<SIGKILL> or B<SIGSTOP> "
11131 "are silently ignored."
11132 msgstr ""
11133 "B<sigblock>()  関数は、 I<mask> にあるシグナルをプロセスのシグナルマスクに追"
11134 "加し (POSIX の I<sigprocmask(SIG_BLOCK)> と同様)、変更前のプロセスのシグナル"
11135 "マスクを返す。 B<SIGKILL> や B<SIGSTOP> をブロックしようとした場合には、黙っ"
11136 "て無視される。"
11137
11138 #. type: Plain text
11139 #: build/C/man3/sigvec.3:193
11140 msgid ""
11141 "The B<sigsetmask>()  function sets the process's signal mask to the value "
11142 "given in I<mask> (like POSIX I<sigprocmask(SIG_SETMASK)>), and returns the "
11143 "process's previous signal mask."
11144 msgstr ""
11145 "B<sigsetmask>()  関数はプロセスのシグナルマスクを I<mask> で指定された値に設"
11146 "定し (POSIX の I<sigprocmask(SIG_SETMASK)> と同様)、変更前のプロセスのシグナ"
11147 "ルマスクを返す。"
11148
11149 #. type: Plain text
11150 #: build/C/man3/sigvec.3:199
11151 msgid ""
11152 "The B<siggetmask>()  function returns the process's current signal mask.  "
11153 "This call is equivalent to I<sigblock(0)>."
11154 msgstr ""
11155 "B<siggetmask>()  関数はプロセスの現在のシグナルマスクを返す。この関数は "
11156 "I<sigblock(0)> と等価である。"
11157
11158 #. type: Plain text
11159 #: build/C/man3/sigvec.3:205
11160 msgid ""
11161 "The B<sigvec>()  function returns 0 on success; on error, it returns -1 and "
11162 "sets I<errno> to indicate the error."
11163 msgstr ""
11164 "B<sigvec>()  関数は成功すると 0 を返す。エラーの場合、-1 を返し、 I<errno> に"
11165 "エラーを示す値をセットする。"
11166
11167 #. type: Plain text
11168 #: build/C/man3/sigvec.3:211
11169 msgid ""
11170 "The B<sigblock>()  and B<sigsetmask>()  functions return the previous signal "
11171 "mask."
11172 msgstr "B<sigblock>()  と B<sigsetmask>()  は変更前のシグナルマスクを返す。"
11173
11174 #. type: Plain text
11175 #: build/C/man3/sigvec.3:216
11176 msgid "The B<sigmask>()  macro returns the signal mask for I<signum>."
11177 msgstr "B<sigmask>() マクロは I<signum> のシグナルマスクを返す。"
11178
11179 #. type: Plain text
11180 #: build/C/man3/sigvec.3:221
11181 msgid "See the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
11182 msgstr "B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」の節を参照。"
11183
11184 #. type: Plain text
11185 #: build/C/man3/sigvec.3:230
11186 msgid ""
11187 "The B<sigvec>(), B<sigblock>(), B<sigsetmask>(), and B<siggetmask>()  "
11188 "functions are thread-safe."
11189 msgstr ""
11190 "関数 B<sigvec>(), B<sigblock>(), B<sigsetmask>(), B<siggetmask>() はスレッド"
11191 "セーフである。"
11192
11193 #. type: Plain text
11194 #: build/C/man3/sigvec.3:234
11195 msgid "The B<sigmask>()  macro is thread-safe."
11196 msgstr "B<sigmask>() マクロはスレッドセーフである。"
11197
11198 #. type: Plain text
11199 #: build/C/man3/sigvec.3:241
11200 msgid ""
11201 "Starting with version 2.21, the GNU C library no longer exports the "
11202 "B<sigvec>()  function as part of the ABI.  (To ensure backward "
11203 "compatibility, the glibc symbol versioning scheme continues to export the "
11204 "interface to binaries linked against older versions of the library.)"
11205 msgstr ""
11206 "バージョン 2.21 以降では、 GNU C ライブラリはもはや B<sigvec>() 関数を ABI の"
11207 "一部として公開しなくなった。 (後方互換性を保証するために、glibc のシンボルの"
11208 "バージョン付け機構により、 古いバージョンのライブラリとリンクされたバイナリに"
11209 "対してはこのインターフェースが引き続き公開されている。)"
11210
11211 #. type: Plain text
11212 #: build/C/man3/sigvec.3:247
11213 msgid ""
11214 "All of these functions were in 4.3BSD, except B<siggetmask>(), whose origin "
11215 "is unclear.  These functions are obsolete: do not use them in new programs."
11216 msgstr ""
11217 "これらの関数のうち B<siggetmask>()  以外の全ては 4.3BSD にあった。 "
11218 "B<siggetmask>()  の出自ははっきりしない。 これらの関数は廃止予定であり、新し"
11219 "いプログラムでは使用しないこと。"
11220
11221 #. type: Plain text
11222 #: build/C/man3/sigvec.3:264
11223 msgid ""
11224 "On 4.3BSD, the B<signal>()  function provided reliable semantics (as when "
11225 "calling B<sigvec>()  with I<vec.sv_mask> equal to 0).  On System V, "
11226 "B<signal>()  provides unreliable semantics.  POSIX.1-2001 leaves these "
11227 "aspects of B<signal>()  unspecified.  See B<signal>(2)  for further details."
11228 msgstr ""
11229 "4.3BSD では、信頼性のあるシグナル処理機構を提供する (I<vec.sv_mask> を 0 で "
11230 "B<sigvec>()  を呼び出したときと同様)。 System V が提供する処理機構は信頼性の"
11231 "ないものである。 POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままと"
11232 "なっている。 さらなる詳細については B<signal>(2)  を参照。"
11233
11234 #. type: Plain text
11235 #: build/C/man3/sigvec.3:282
11236 msgid ""
11237 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
11238 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
11239 msgstr ""
11240 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
11241 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
11242
11243 #. type: TH
11244 #: build/C/man3/sigwait.3:26
11245 #, no-wrap
11246 msgid "SIGWAIT"
11247 msgstr "SIGWAIT"
11248
11249 #. type: Plain text
11250 #: build/C/man3/sigwait.3:29
11251 msgid "sigwait - wait for a signal"
11252 msgstr "sigwait - シグナルを待つ"
11253
11254 #. type: Plain text
11255 #: build/C/man3/sigwait.3:34
11256 #, no-wrap
11257 msgid "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
11258 msgstr "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
11259
11260 #. type: Plain text
11261 #: build/C/man3/sigwait.3:44
11262 msgid ""
11263 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
11264 msgstr ""
11265 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
11266
11267 #. type: Plain text
11268 #: build/C/man3/sigwait.3:56
11269 msgid ""
11270 "The B<sigwait>()  function suspends execution of the calling thread until "
11271 "one of the signals specified in the signal set I<set> becomes pending.  The "
11272 "function accepts the signal (removes it from the pending list of signals), "
11273 "and returns the signal number in I<sig>."
11274 msgstr ""
11275 "B<sigwait>()  関数は、シグナル集合 I<set> で指定されたシグナルの一つが処理待"
11276 "ち (pending) になるまで、 呼び出したスレッドの実行を中断する。 この関数はその"
11277 "シグナルを受け取り (つまり、処理待ちのシグナルのリスト からそのシグナルを削除"
11278 "し)、そのシグナル番号を I<sig> に格納して返す。"
11279
11280 #. type: Plain text
11281 #: build/C/man3/sigwait.3:62
11282 msgid ""
11283 "The operation of B<sigwait>()  is the same as B<sigwaitinfo>(2), except that:"
11284 msgstr ""
11285 "B<sigwait>()  の動作は B<sigwaitinfo>(2)  と同じだが、以下の点が異なる。"
11286
11287 #. type: Plain text
11288 #: build/C/man3/sigwait.3:67
11289 msgid ""
11290 "B<sigwait>()  returns only the signal number, rather than a I<siginfo_t> "
11291 "structure describing the signal."
11292 msgstr ""
11293 "B<sigwait>()  は、シグナルの内容を表す I<siginfo_t> 構造体を返すのではなく、"
11294 "単にシグナル番号を返す。"
11295
11296 #. type: Plain text
11297 #: build/C/man3/sigwait.3:69
11298 msgid "The return values of the two functions are different."
11299 msgstr "返り値が B<sigwaitinfo>(2)  とは異なる。"
11300
11301 #. type: Plain text
11302 #: build/C/man3/sigwait.3:74
11303 msgid ""
11304 "On success, B<sigwait>()  returns 0.  On error, it returns a positive error "
11305 "number (listed in ERRORS)."
11306 msgstr ""
11307 "成功すると、 B<sigwait>()  は 0 を返す。 エラーの場合、(「エラー」の節のリス"
11308 "トにある) 正のエラー番号を返す。"
11309
11310 #.  Does not occur for glibc.
11311 #. type: Plain text
11312 #: build/C/man3/sigwait.3:80
11313 msgid "I<set> contains an invalid signal number."
11314 msgstr "I<set> に無効なシグナル番号が入っている。"
11315
11316 #. type: Plain text
11317 #: build/C/man3/sigwait.3:85
11318 msgid "The B<sigwait>()  function is thread-safe."
11319 msgstr "B<sigwait>() 関数はスレッドセーフである。"
11320
11321 #. type: Plain text
11322 #: build/C/man3/sigwait.3:91
11323 msgid "B<sigwait>()  is implemented using B<sigtimedwait>(2)."
11324 msgstr "B<sigwait>()  は B<sigtimedwait>(2)  を使って実装されている。"
11325
11326 #. type: Plain text
11327 #: build/C/man3/sigwait.3:94
11328 msgid "See B<pthread_sigmask>(3)."
11329 msgstr "B<pthread_sigmask>(3)  を参照。"
11330
11331 #. type: Plain text
11332 #: build/C/man3/sigwait.3:102
11333 msgid ""
11334 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
11335 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
11336 msgstr ""
11337 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
11338 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
11339
11340 #. type: TH
11341 #: build/C/man2/sigwaitinfo.2:25
11342 #, no-wrap
11343 msgid "SIGWAITINFO"
11344 msgstr "SIGWAITINFO"
11345
11346 #. type: Plain text
11347 #: build/C/man2/sigwaitinfo.2:28
11348 msgid "sigwaitinfo, sigtimedwait - synchronously wait for queued signals"
11349 msgstr "sigwaitinfo, sigtimedwait - キューに入れられたシグナルを同期して待つ"
11350
11351 #. type: Plain text
11352 #: build/C/man2/sigwaitinfo.2:33
11353 #, no-wrap
11354 msgid "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
11355 msgstr "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
11356
11357 #. type: Plain text
11358 #: build/C/man2/sigwaitinfo.2:36
11359 #, no-wrap
11360 msgid ""
11361 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
11362 "B<                 const struct timespec *>I<timeout>B<);>\n"
11363 msgstr ""
11364 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
11365 "B<                 const struct timespec *>I<timeout>B<);>\n"
11366
11367 #. type: Plain text
11368 #: build/C/man2/sigwaitinfo.2:46
11369 msgid "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11370 msgstr ""
11371 "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11372
11373 #. type: Plain text
11374 #: build/C/man2/sigwaitinfo.2:56
11375 msgid ""
11376 "B<sigwaitinfo>()  suspends execution of the calling thread until one of the "
11377 "signals in I<set> is pending (If one of the signals in I<set> is already "
11378 "pending for the calling thread, B<sigwaitinfo>()  will return immediately.)"
11379 msgstr ""
11380 "B<sigwaitinfo>()  は I<set> のうちのどれかのシグナルが処理待ちになるまで、 呼"
11381 "び出しスレッドの実行を一時停止する (呼び出しスレッドに対して I<set> のうちの"
11382 "どれかのシグナルが既に待機中 (pending) である場合、 B<sigwaitinfo>()  はすぐ"
11383 "に戻る)。"
11384
11385 #. type: Plain text
11386 #: build/C/man2/sigwaitinfo.2:68
11387 msgid ""
11388 "B<sigwaitinfo>()  removes the signal from the set of pending signals and "
11389 "returns the signal number as its function result.  If the I<info> argument "
11390 "is not NULL, then the buffer that it points to is used to return a structure "
11391 "of type I<siginfo_t> (see B<sigaction>(2))  containing information about the "
11392 "signal."
11393 msgstr ""
11394 "B<sigwaitinfo>()  はそのシグナルを待機中のシグナルの集合から削除し、関数の結"
11395 "果としてシグナル番号を返す。 I<info> 引き数が NULL でない場合、配送されたシグ"
11396 "ナルの情報が入った I<siginfo_t> 型 (B<sigaction>(2)  を参照) の構造体を "
11397 "I<info> が指すバッファーに入れて返す。"
11398
11399 #. type: Plain text
11400 #: build/C/man2/sigwaitinfo.2:76
11401 msgid ""
11402 "If multiple signals in I<set> are pending for the caller, the signal that is "
11403 "retrieved by B<sigwaitinfo>()  is determined according to the usual ordering "
11404 "rules; see B<signal>(7)  for further details."
11405 msgstr ""
11406 "呼び出し元に対して I<set> の複数のシグナルが処理待ちの場合、 "
11407 "B<sigwaitinfo>() で取得するシグナルは通常の順序決定ルールに基づいて決定され"
11408 "る。 詳細は B<signal>(7) を参照のこと。"
11409
11410 #. type: Plain text
11411 #: build/C/man2/sigwaitinfo.2:88
11412 msgid ""
11413 "B<sigtimedwait>()  operates in exactly the same way as B<sigwaitinfo>()  "
11414 "except that it has an additional argument, I<timeout>, which specifies the "
11415 "interval for which the thread is suspended waiting for a signal.  (This "
11416 "interval will be rounded up to the system clock granularity, and kernel "
11417 "scheduling delays mean that the interval may overrun by a small amount.)  "
11418 "This argument is of the following type:"
11419 msgstr ""
11420 "B<sigtimedwait>() は、 B<sigwaitinfo>() と次の点を除いて全く同じように動作す"
11421 "る。この関数にはもう 1 つの引き数 I<timeout> があり、シグナル待ちでスレッドが"
11422 "一時停止する時間を指定することができる(この時間はシステムクロックの粒度に切り"
11423 "上げられ、カーネルのスケジューリング遅延により少しだけ長くなる可能性がある)。"
11424 "この引き数の型は以下のとおりである:"
11425
11426 #. type: Plain text
11427 #: build/C/man2/sigwaitinfo.2:95
11428 #, no-wrap
11429 msgid ""
11430 "struct timespec {\n"
11431 "    long    tv_sec;         /* seconds */\n"
11432 "    long    tv_nsec;        /* nanoseconds */\n"
11433 "}\n"
11434 msgstr ""
11435 "struct timespec {\n"
11436 "    long    tv_sec;         /* 秒 */\n"
11437 "    long    tv_nsec;        /* ナノ秒 */\n"
11438 "}\n"
11439
11440 #. type: Plain text
11441 #: build/C/man2/sigwaitinfo.2:105
11442 msgid ""
11443 "If both fields of this structure are specified as 0, a poll is performed: "
11444 "B<sigtimedwait>()  returns immediately, either with information about a "
11445 "signal that was pending for the caller, or with an error if none of the "
11446 "signals in I<set> was pending."
11447 msgstr ""
11448 "この構造体の 2 つのフィールドがともに 0 の場合、ポーリングが行われる: "
11449 "B<sigtimedwait>()  は、呼び出し側プロセスに対して 待機しているシグナルの情報"
11450 "を返して戻るか、 I<set> のうちのどのシグナルも待機していない場合はエラーを返"
11451 "して戻る。"
11452
11453 #. type: Plain text
11454 #: build/C/man2/sigwaitinfo.2:114
11455 msgid ""
11456 "On success, both B<sigwaitinfo>()  and B<sigtimedwait>()  return a signal "
11457 "number (i.e., a value greater than zero).  On failure both calls return -1, "
11458 "with I<errno> set to indicate the error."
11459 msgstr ""
11460 "成功した場合、 B<sigwaitinfo>()  と B<sigtimedwait>()  はシグナル番号 (すなわ"
11461 "ち 0 より大きい数) を返す。 失敗した場合、2 つの関数は -1 を返し、 I<errno> "
11462 "はエラーを表す値に設定される。"
11463
11464 #. type: Plain text
11465 #: build/C/man2/sigwaitinfo.2:123
11466 msgid ""
11467 "No signal in I<set> was became pending within the I<timeout> period "
11468 "specified to B<sigtimedwait>()."
11469 msgstr ""
11470 "I<set> のうちのどのシグナルも B<sigtimedwait>()  に指定された I<timeout> の期"
11471 "間内に処理待ちにならなかった。"
11472
11473 #. type: Plain text
11474 #: build/C/man2/sigwaitinfo.2:129
11475 msgid ""
11476 "The wait was interrupted by a signal handler; see B<signal>(7).  (This "
11477 "handler was for a signal other than one of those in I<set>.)"
11478 msgstr ""
11479 "シグナル待ちがシグナルハンドラーによって中断 (interrupt) された (このハンド"
11480 "ラーは I<set> にあるシグナル以外のものである)。 B<signal>(7)  参照。"
11481
11482 #. type: Plain text
11483 #: build/C/man2/sigwaitinfo.2:133
11484 msgid "I<timeout> was invalid."
11485 msgstr "I<timeout> が不正である。"
11486
11487 #. type: Plain text
11488 #: build/C/man2/sigwaitinfo.2:153
11489 msgid ""
11490 "In normal usage, the calling program blocks the signals in I<set> via a "
11491 "prior call to B<sigprocmask>(2)  (so that the default disposition for these "
11492 "signals does not occur if they become pending between successive calls to "
11493 "B<sigwaitinfo>()  or B<sigtimedwait>())  and does not establish handlers for "
11494 "these signals.  In a multithreaded program, the signal should be blocked in "
11495 "all threads, in order to prevent the signal being treated according to its "
11496 "default disposition in a thread other than the one calling B<sigwaitinfo>()  "
11497 "or B<sigtimedwait>())."
11498 msgstr ""
11499 "通常の使用法では、呼び出し側プロセスはこれらの関数より先に "
11500 "B<sigprocmask>(2)  の呼び出すことにより I<set> に含まれるシグナルをブロック"
11501 "し (そのためにこれらのシグナルがこの後に続く B<sigwaitinfo>()  や "
11502 "B<sigtimedwait>()  の呼び出しの間に処理待ちになった場合には、デフォルトの動作"
11503 "は行われず)、 これらのシグナルに対するハンドラーは設定しない。 マルチスレッド"
11504 "プログラムでは、 B<sigwaitinfo>()  や B<sigtimedwait>() を呼び出したスレッド"
11505 "以外のスレッドで、そのシグナルがデフォルトの動作に基いて処理されないように、"
11506 "全てのスレッドで該当シグナルをブロックすべきである。"
11507
11508 #. type: Plain text
11509 #: build/C/man2/sigwaitinfo.2:158
11510 msgid ""
11511 "The set of signals that is pending for a given thread is the union of the "
11512 "set of signals that is pending specifically for that thread and the set of "
11513 "signals that is pending for the process as a whole (see B<signal>(7))."
11514 msgstr ""
11515 "指定されたスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体宛ての"
11516 "処理待ちのシグナル集合と、プロセス全体宛ての 処理待ちのシグナル集合をあわせた"
11517 "ものである (B<signal>(7)  参照)。"
11518
11519 #. type: Plain text
11520 #: build/C/man2/sigwaitinfo.2:164
11521 msgid "Attempts to wait for B<SIGKILL> and B<SIGSTOP> are silently ignored."
11522 msgstr "B<SIGKILL> と B<SIGSTOP> を待とうとした場合、黙って無視される。"
11523
11524 #. type: Plain text
11525 #: build/C/man2/sigwaitinfo.2:173
11526 msgid ""
11527 "If multiple threads of a process are blocked waiting for the same signal(s) "
11528 "in B<sigwaitinfo>()  or B<sigtimedwait>(), then exactly one of the threads "
11529 "will actually receive the signal if it becomes pending for the process as a "
11530 "whole; which of the threads receives the signal is indeterminate."
11531 msgstr ""
11532 "一つのプロセス内の複数のスレッドが B<sigwaitinfo>()  や B<sigtimedwait>()  で"
11533 "同じシグナルを待って停止した場合、 プロセス全体宛てのシグナルが処理待ちになる"
11534 "と、複数のスレッドのうち一つだけが 実際にそのシグナルを受信することになる。 "
11535 "どのスレッドがシグナルを受信するかは決まっていない。"
11536
11537 #. type: Plain text
11538 #: build/C/man2/sigwaitinfo.2:183
11539 msgid ""
11540 "POSIX leaves the meaning of a NULL value for the I<timeout> argument of "
11541 "B<sigtimedwait>()  unspecified, permitting the possibility that this has the "
11542 "same meaning as a call to B<sigwaitinfo>(), and indeed this is what is done "
11543 "on Linux."
11544 msgstr ""
11545 "POSIX では B<sigtimedwait>()  の引き数 I<timeout> の値を NULL にした場合の意"
11546 "味を未定義としている。 B<sigwaitinfo>()  を呼び出したのと同じ意味としてもよい"
11547 "ことになっており、 実際 Linux ではこのように動作する。"
11548
11549 #. type: Plain text
11550 #: build/C/man2/sigwaitinfo.2:188
11551 msgid ""
11552 "On Linux, B<sigwaitinfo>()  is a library function implemented on top of "
11553 "B<sigtimedwait>()."
11554 msgstr ""
11555 "Linux では、 B<sigwaitinfo>()  は B<sigtimedwait>()  を用いて実装されたライブ"
11556 "ラリ関数である。"
11557
11558 #. type: Plain text
11559 #: build/C/man2/sigwaitinfo.2:201
11560 msgid ""
11561 "The raw B<sigtimedwait>()  system call has a fifth argument, I<size_t "
11562 "sigsetsize>, which specifies the size in bytes of the I<set> argument.  The "
11563 "glibc B<sigtimedwait>()  wrapper function specifies this argument as a fixed "
11564 "value (equal to I<sizeof(sigset_t)>)."
11565 msgstr ""
11566 "素の B<sigtimedwait>() システムコールは 5 番目の引き数 I<size_t sigsetsize> "
11567 "を取る。 この引き数は I<set> 引き数のバイト単位のサイズを指定する。 glibc の "
11568 "B<sigtimedwait>() のラッパー関数はこの引き数に固定値 (I<sizeof(sigset_t)> と"
11569 "同じ) を指定する。"
11570
11571 #. type: Plain text
11572 #: build/C/man2/sigwaitinfo.2:213
11573 msgid ""
11574 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
11575 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), "
11576 "B<signal>(7), B<time>(7)"
11577 msgstr ""
11578 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
11579 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), "
11580 "B<signal>(7), B<time>(7)"
11581
11582 #. type: TH
11583 #: build/C/man3/sysv_signal.3:25
11584 #, no-wrap
11585 msgid "SYSV_SIGNAL"
11586 msgstr "SYSV_SIGNAL"
11587
11588 #. type: TH
11589 #: build/C/man3/sysv_signal.3:25
11590 #, no-wrap
11591 msgid "2014-01-06"
11592 msgstr "2014-01-06"
11593
11594 #. type: Plain text
11595 #: build/C/man3/sysv_signal.3:28
11596 msgid "sysv_signal - signal handling with System V semantics"
11597 msgstr "sysv_signal - System V 方式のシグナル処理"
11598
11599 #. type: Plain text
11600 #: build/C/man3/sysv_signal.3:30
11601 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
11602 msgstr "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */"
11603
11604 #. type: Plain text
11605 #: build/C/man3/sysv_signal.3:36
11606 msgid ""
11607 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
11608 msgstr ""
11609 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
11610
11611 #. type: Plain text
11612 #: build/C/man3/sysv_signal.3:41
11613 msgid ""
11614 "The B<sysv_signal>()  function takes the same arguments, and performs the "
11615 "same task, as B<signal>(2)."
11616 msgstr ""
11617 "B<sysv_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
11618 "る。"
11619
11620 #. type: Plain text
11621 #: build/C/man3/sysv_signal.3:51
11622 msgid ""
11623 "However B<sysv_signal>()  provides the System V unreliable signal semantics, "
11624 "that is: a) the disposition of the signal is reset to the default when the "
11625 "handler is invoked; b) delivery of further instances of the signal is not "
11626 "blocked while the signal handler is executing; and c) if the handler "
11627 "interrupts (certain) blocking system calls, then the system call is not "
11628 "automatically restarted."
11629 msgstr ""
11630 "しかしながら、 B<sysv_signal>()  は System V の信頼性に欠けるシグナル処理方式"
11631 "を提供している。 信頼性に欠けるシグナル処理方式は以下の特徴を持つ。 a) ハンド"
11632 "ラーが起動されると、シグナルの処理方法 (disposition) が デフォルトにリセット"
11633 "される、 b) シグナルハンドラーの実行中は、それ以降に発生した同じシグナルの配"
11634 "送が ブロックされない、 c) ハンドラーが停止中の (blocking している) システム"
11635 "コールを中断した場合、 自動的に再開されないシステムコールがある。"
11636
11637 #. type: Plain text
11638 #: build/C/man3/sysv_signal.3:57
11639 msgid ""
11640 "The B<sysv_signal>()  function returns the previous value of the signal "
11641 "handler, or B<SIG_ERR> on error."
11642 msgstr ""
11643 "B<sysv_signal>()  関数はシグナルハンドラーの直前の値を返す。 エラーの場合、 "
11644 "B<SIG_ERR> を返す。"
11645
11646 #. type: Plain text
11647 #: build/C/man3/sysv_signal.3:65
11648 msgid "The B<sysv_signal>()  function is thread-safe."
11649 msgstr "B<sysv_signal>() 関数はスレッドセーフである。"
11650
11651 #. type: Plain text
11652 #: build/C/man3/sysv_signal.3:67
11653 msgid "This function is nonstandard."
11654 msgstr "この関数は非標準である。"
11655
11656 #. type: Plain text
11657 #: build/C/man3/sysv_signal.3:73
11658 msgid ""
11659 "Use of B<sysv_signal>()  should be avoided; use B<sigaction>(2)  instead."
11660 msgstr ""
11661 "B<sysv_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使う"
11662 "こと。"
11663
11664 #. type: Plain text
11665 #: build/C/man3/sysv_signal.3:84
11666 msgid ""
11667 "On older Linux systems, B<sysv_signal>()  and B<signal>(2)  were "
11668 "equivalent.  But on newer systems, B<signal>(2)  provides reliable signal "
11669 "semantics; see B<signal>(2)  for details."
11670 msgstr ""
11671 "以前の Linux システムでは、 B<sysv_signal>()  と B<signal>(2)  は等価であっ"
11672 "た。しかし、新しめのシステムでは、 B<signal>(2)  は信頼性のあるシグナル処理方"
11673 "式を提供している。 詳細は B<signal>(2)  を参照。"
11674
11675 #. type: Plain text
11676 #: build/C/man3/sysv_signal.3:97
11677 msgid "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
11678 msgstr "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
11679
11680 #. type: TH
11681 #: build/C/man2/timer_create.2:33
11682 #, no-wrap
11683 msgid "TIMER_CREATE"
11684 msgstr "TIMER_CREATE"
11685
11686 #. type: Plain text
11687 #: build/C/man2/timer_create.2:36
11688 msgid "timer_create - create a POSIX per-process timer"
11689 msgstr ""
11690
11691 #. type: Plain text
11692 #: build/C/man2/timer_create.2:40
11693 #, no-wrap
11694 msgid ""
11695 "B<#include E<lt>signal.hE<gt>>\n"
11696 "B<#include E<lt>time.hE<gt>>\n"
11697 msgstr ""
11698 "B<#include E<lt>signal.hE<gt>>\n"
11699 "B<#include E<lt>time.hE<gt>>\n"
11700
11701 #. type: Plain text
11702 #: build/C/man2/timer_create.2:43
11703 #, no-wrap
11704 msgid ""
11705 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
11706 "B<                 timer_t *>I<timerid>B<);>\n"
11707 msgstr ""
11708 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
11709 "B<                 timer_t *>I<timerid>B<);>\n"
11710
11711 #. type: Plain text
11712 #: build/C/man2/timer_create.2:46 build/C/man2/timer_delete.2:37
11713 #: build/C/man2/timer_getoverrun.2:37 build/C/man2/timer_settime.2:41
11714 msgid "Link with I<-lrt>."
11715 msgstr "I<-lrt> でリンクする。"
11716
11717 #. type: Plain text
11718 #: build/C/man2/timer_create.2:54
11719 msgid "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11720 msgstr "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11721
11722 #. type: Plain text
11723 #: build/C/man2/timer_create.2:62
11724 msgid ""
11725 "B<timer_create>()  creates a new per-process interval timer.  The ID of the "
11726 "new timer is returned in the buffer pointed to by I<timerid>, which must be "
11727 "a non-null pointer.  This ID is unique within the process, until the timer "
11728 "is deleted.  The new timer is initially disarmed."
11729 msgstr ""
11730
11731 #. type: Plain text
11732 #: build/C/man2/timer_create.2:67
11733 msgid ""
11734 "The I<clockid> argument specifies the clock that the new timer uses to "
11735 "measure time.  It can be specified as one of the following values:"
11736 msgstr ""
11737
11738 #. type: TP
11739 #: build/C/man2/timer_create.2:67
11740 #, no-wrap
11741 msgid "B<CLOCK_REALTIME>"
11742 msgstr "B<CLOCK_REALTIME>"
11743
11744 #. type: Plain text
11745 #: build/C/man2/timer_create.2:70
11746 msgid "A settable system-wide real-time clock."
11747 msgstr ""
11748
11749 #. type: TP
11750 #: build/C/man2/timer_create.2:70
11751 #, no-wrap
11752 msgid "B<CLOCK_MONOTONIC>"
11753 msgstr "B<CLOCK_MONOTONIC>"
11754
11755 #.  Note: the CLOCK_MONOTONIC_RAW clock added for clock_gettime()
11756 #.  in 2.6.28 is not supported for POSIX timers -- mtk, Feb 2009
11757 #. type: Plain text
11758 #: build/C/man2/timer_create.2:77
11759 msgid ""
11760 "A nonsettable monotonically increasing clock that measures time from some "
11761 "unspecified point in the past that does not change after system startup."
11762 msgstr ""
11763
11764 #. type: TP
11765 #: build/C/man2/timer_create.2:77
11766 #, no-wrap
11767 msgid "B<CLOCK_PROCESS_CPUTIME_ID> (since Linux 2.6.12)"
11768 msgstr ""
11769
11770 #. type: Plain text
11771 #: build/C/man2/timer_create.2:81
11772 msgid ""
11773 "A clock that measures (user and system) CPU time consumed by (all of the "
11774 "threads in) the calling process."
11775 msgstr ""
11776
11777 #. type: TP
11778 #: build/C/man2/timer_create.2:81
11779 #, no-wrap
11780 msgid "B<CLOCK_THREAD_CPUTIME_ID> (since Linux 2.6.12)"
11781 msgstr ""
11782
11783 #.  The CLOCK_MONOTONIC_RAW that was added in 2.6.28 can't be used
11784 #.  to create a timer -- mtk, Feb 2009
11785 #. type: Plain text
11786 #: build/C/man2/timer_create.2:87
11787 msgid ""
11788 "A clock that measures (user and system) CPU time consumed by the calling "
11789 "thread."
11790 msgstr ""
11791
11792 #. type: Plain text
11793 #: build/C/man2/timer_create.2:96
11794 msgid ""
11795 "As well as the above values, I<clockid> can be specified as the I<clockid> "
11796 "returned by a call to B<clock_getcpuclockid>(3)  or "
11797 "B<pthread_getcpuclockid>(3)."
11798 msgstr ""
11799
11800 #. type: Plain text
11801 #: build/C/man2/timer_create.2:105
11802 msgid ""
11803 "The I<sevp> argument points to a I<sigevent> structure that specifies how "
11804 "the caller should be notified when the timer expires.  For the definition "
11805 "and general details of this structure, see B<sigevent>(7)."
11806 msgstr ""
11807
11808 #. type: Plain text
11809 #: build/C/man2/timer_create.2:109
11810 msgid "The I<sevp.sigev_notify> field can have the following values:"
11811 msgstr ""
11812
11813 #. type: Plain text
11814 #: build/C/man2/timer_create.2:114
11815 msgid ""
11816 "Don't asynchronously notify when the timer expires.  Progress of the timer "
11817 "can be monitored using B<timer_gettime>(2)."
11818 msgstr ""
11819
11820 #. type: Plain text
11821 #: build/C/man2/timer_create.2:132
11822 msgid ""
11823 "Upon timer expiration, generate the signal I<sigev_signo> for the process.  "
11824 "See B<sigevent>(7)  for general details.  The I<si_code> field of the "
11825 "I<siginfo_t> structure will be set to B<SI_TIMER>.  At any point in time, at "
11826 "most one signal is queued to the process for a given timer; see "
11827 "B<timer_getoverrun>(2)  for more details."
11828 msgstr ""
11829
11830 #. type: Plain text
11831 #: build/C/man2/timer_create.2:140
11832 msgid ""
11833 "Upon timer expiration, invoke I<sigev_notify_function> as if it were the "
11834 "start function of a new thread.  See B<sigevent>(7)  for details."
11835 msgstr ""
11836
11837 #. type: Plain text
11838 #: build/C/man2/timer_create.2:154
11839 msgid ""
11840 "As for B<SIGEV_SIGNAL>, but the signal is targeted at the thread whose ID is "
11841 "given in I<sigev_notify_thread_id>, which must be a thread in the same "
11842 "process as the caller.  The I<sigev_notify_thread_id> field specifies a "
11843 "kernel thread ID, that is, the value returned by B<clone>(2)  or "
11844 "B<gettid>(2).  This flag is intended only for use by threading libraries."
11845 msgstr ""
11846
11847 #. type: Plain text
11848 #: build/C/man2/timer_create.2:169
11849 msgid ""
11850 "Specifying I<sevp> as NULL is equivalent to specifying a pointer to a "
11851 "I<sigevent> structure in which I<sigev_notify> is B<SIGEV_SIGNAL>, "
11852 "I<sigev_signo> is B<SIGALRM>, and I<sigev_value.sival_int> is the timer ID."
11853 msgstr ""
11854
11855 #. type: Plain text
11856 #: build/C/man2/timer_create.2:177
11857 msgid ""
11858 "On success, B<timer_create>()  returns 0, and the ID of the new timer is "
11859 "placed in I<*timerid>.  On failure, -1 is returned, and I<errno> is set to "
11860 "indicate the error."
11861 msgstr ""
11862
11863 #. type: Plain text
11864 #: build/C/man2/timer_create.2:181
11865 msgid "Temporary error during kernel allocation of timer structures."
11866 msgstr ""
11867
11868 #. type: Plain text
11869 #: build/C/man2/timer_create.2:189
11870 msgid ""
11871 "Clock ID, I<sigev_notify>, I<sigev_signo>, or I<sigev_notify_thread_id> is "
11872 "invalid."
11873 msgstr ""
11874
11875 #.  glibc layer: malloc()
11876 #. type: Plain text
11877 #: build/C/man2/timer_create.2:193
11878 msgid "Could not allocate memory."
11879 msgstr ""
11880
11881 #. type: Plain text
11882 #: build/C/man2/timer_create.2:195 build/C/man2/timer_delete.2:67
11883 #: build/C/man2/timer_getoverrun.2:97
11884 msgid "This system call is available since Linux 2.6."
11885 msgstr "このシステムコールは Linux 2.6 以降で利用できる。"
11886
11887 #. type: Plain text
11888 #: build/C/man2/timer_create.2:200
11889 msgid "A program may create multiple interval timers using B<timer_create>()."
11890 msgstr ""
11891
11892 #. type: Plain text
11893 #: build/C/man2/timer_create.2:205
11894 msgid ""
11895 "Timers are not inherited by the child of a B<fork>(2), and are disarmed and "
11896 "deleted during an B<execve>(2)."
11897 msgstr ""
11898
11899 #. type: Plain text
11900 #: build/C/man2/timer_create.2:213
11901 msgid ""
11902 "The kernel preallocates a \"queued real-time signal\" for each timer created "
11903 "using B<timer_create>().  Consequently, the number of timers is limited by "
11904 "the B<RLIMIT_SIGPENDING> resource limit (see B<setrlimit>(2))."
11905 msgstr ""
11906
11907 #. type: Plain text
11908 #: build/C/man2/timer_create.2:218
11909 msgid ""
11910 "The timers created by B<timer_create>()  are commonly known as \"POSIX "
11911 "(interval) timers\".  The POSIX timers API consists of the following "
11912 "interfaces:"
11913 msgstr ""
11914
11915 #. type: Plain text
11916 #: build/C/man2/timer_create.2:221
11917 msgid "B<timer_create>(): Create a timer."
11918 msgstr ""
11919
11920 #. type: Plain text
11921 #: build/C/man2/timer_create.2:224
11922 msgid "B<timer_settime>(2): Arm (start) or disarm (stop) a timer."
11923 msgstr ""
11924
11925 #. type: Plain text
11926 #: build/C/man2/timer_create.2:228
11927 msgid ""
11928 "B<timer_gettime>(2): Fetch the time remaining until the next expiration of a "
11929 "timer, along with the interval setting of the timer."
11930 msgstr ""
11931
11932 #. type: Plain text
11933 #: build/C/man2/timer_create.2:231
11934 msgid ""
11935 "B<timer_getoverrun>(2): Return the overrun count for the last timer "
11936 "expiration."
11937 msgstr ""
11938
11939 #. type: Plain text
11940 #: build/C/man2/timer_create.2:234
11941 msgid "B<timer_delete>(2): Disarm and delete a timer."
11942 msgstr ""
11943
11944 #. type: Plain text
11945 #: build/C/man2/timer_create.2:243
11946 msgid ""
11947 "Since Linux 3.10, the I</proc/[pid]/timers> file can be used to list the "
11948 "POSIX timers for the process with PID I<pid>.  See B<proc>(5)  for further "
11949 "information."
11950 msgstr ""
11951
11952 #. type: Plain text
11953 #: build/C/man2/timer_create.2:246
11954 msgid ""
11955 "Part of the implementation of the POSIX timers API is provided by glibc.  In "
11956 "particular:"
11957 msgstr ""
11958
11959 #. type: Plain text
11960 #: build/C/man2/timer_create.2:250
11961 msgid ""
11962 "The functionality for B<SIGEV_THREAD> is implemented within glibc, rather "
11963 "than the kernel."
11964 msgstr ""
11965
11966 #.  See the glibc source file kernel-posix-timers.h for the structure
11967 #.  that glibc uses to map user-space timer IDs to kernel timer IDs
11968 #.  The kernel-level timer ID is exposed via siginfo.si_tid.
11969 #. type: Plain text
11970 #: build/C/man2/timer_create.2:256
11971 msgid ""
11972 "The timer IDs presented at user level are maintained by glibc, which maps "
11973 "these IDs to the timer IDs employed by the kernel."
11974 msgstr ""
11975
11976 #. type: Plain text
11977 #: build/C/man2/timer_create.2:264
11978 msgid ""
11979 "The POSIX timers system calls first appeared in Linux 2.6.  Prior to this, "
11980 "glibc provided an incomplete user-space implementation (B<CLOCK_REALTIME> "
11981 "timers only) using POSIX threads, and current glibc falls back to this "
11982 "implementation on systems running pre-2.6 Linux kernels."
11983 msgstr ""
11984
11985 #. type: Plain text
11986 #: build/C/man2/timer_create.2:276
11987 msgid ""
11988 "The program below takes two arguments: a sleep period in seconds, and a "
11989 "timer frequency in nanoseconds.  The program establishes a handler for the "
11990 "signal it uses for the timer, blocks that signal, creates and arms a timer "
11991 "that expires with the given frequency, sleeps for the specified number of "
11992 "seconds, and then unblocks the timer signal.  Assuming that the timer "
11993 "expired at least once while the program slept, the signal handler will be "
11994 "invoked, and the handler displays some information about the timer "
11995 "notification.  The program terminates after one invocation of the signal "
11996 "handler."
11997 msgstr ""
11998
11999 #. type: Plain text
12000 #: build/C/man2/timer_create.2:281
12001 msgid ""
12002 "In the following example run, the program sleeps for 1 second, after "
12003 "creating a timer that has a frequency of 100 nanoseconds.  By the time the "
12004 "signal is unblocked and delivered, there have been around ten million "
12005 "overruns."
12006 msgstr ""
12007
12008 #. type: Plain text
12009 #: build/C/man2/timer_create.2:293
12010 #, no-wrap
12011 msgid ""
12012 "$ B<./a.out 1 100>\n"
12013 "Establishing handler for signal 34\n"
12014 "Blocking signal 34\n"
12015 "timer ID is 0x804c008\n"
12016 "Sleeping for 1 seconds\n"
12017 "Unblocking signal 34\n"
12018 "Caught signal 34\n"
12019 "    sival_ptr = 0xbfb174f4;     *sival_ptr = 0x804c008\n"
12020 "    overrun count = 10004886\n"
12021 msgstr ""
12022
12023 #. type: Plain text
12024 #: build/C/man2/timer_create.2:303
12025 #, no-wrap
12026 msgid ""
12027 "#include E<lt>stdlib.hE<gt>\n"
12028 "#include E<lt>unistd.hE<gt>\n"
12029 "#include E<lt>stdio.hE<gt>\n"
12030 "#include E<lt>signal.hE<gt>\n"
12031 "#include E<lt>time.hE<gt>\n"
12032 msgstr ""
12033 "#include E<lt>stdlib.hE<gt>\n"
12034 "#include E<lt>unistd.hE<gt>\n"
12035 "#include E<lt>stdio.hE<gt>\n"
12036 "#include E<lt>signal.hE<gt>\n"
12037 "#include E<lt>time.hE<gt>\n"
12038
12039 #. type: Plain text
12040 #: build/C/man2/timer_create.2:306
12041 #, no-wrap
12042 msgid ""
12043 "#define CLOCKID CLOCK_REALTIME\n"
12044 "#define SIG SIGRTMIN\n"
12045 msgstr ""
12046 "#define CLOCKID CLOCK_REALTIME\n"
12047 "#define SIG SIGRTMIN\n"
12048
12049 #. type: Plain text
12050 #: build/C/man2/timer_create.2:309
12051 #, no-wrap
12052 msgid ""
12053 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
12054 "                        } while (0)\n"
12055 msgstr ""
12056 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
12057 "                        } while (0)\n"
12058
12059 #. type: Plain text
12060 #: build/C/man2/timer_create.2:315
12061 #, no-wrap
12062 msgid ""
12063 "static void\n"
12064 "print_siginfo(siginfo_t *si)\n"
12065 "{\n"
12066 "    timer_t *tidp;\n"
12067 "    int or;\n"
12068 msgstr ""
12069 "static void\n"
12070 "print_siginfo(siginfo_t *si)\n"
12071 "{\n"
12072 "    timer_t *tidp;\n"
12073 "    int or;\n"
12074
12075 #. type: Plain text
12076 #: build/C/man2/timer_create.2:317
12077 #, no-wrap
12078 msgid "    tidp = si-E<gt>si_value.sival_ptr;\n"
12079 msgstr "    tidp = si-E<gt>si_value.sival_ptr;\n"
12080
12081 #. type: Plain text
12082 #: build/C/man2/timer_create.2:320
12083 #, no-wrap
12084 msgid ""
12085 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
12086 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
12087 msgstr ""
12088 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
12089 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
12090
12091 #. type: Plain text
12092 #: build/C/man2/timer_create.2:327
12093 #, no-wrap
12094 msgid ""
12095 "    or = timer_getoverrun(*tidp);\n"
12096 "    if (or == -1)\n"
12097 "        errExit(\"timer_getoverrun\");\n"
12098 "    else\n"
12099 "        printf(\"    overrun count = %d\\en\", or);\n"
12100 "}\n"
12101 msgstr ""
12102 "    or = timer_getoverrun(*tidp);\n"
12103 "    if (or == -1)\n"
12104 "        errExit(\"timer_getoverrun\");\n"
12105 "    else\n"
12106 "        printf(\"    overrun count = %d\\en\", or);\n"
12107 "}\n"
12108
12109 #. type: Plain text
12110 #: build/C/man2/timer_create.2:334
12111 #, no-wrap
12112 msgid ""
12113 "static void\n"
12114 "handler(int sig, siginfo_t *si, void *uc)\n"
12115 "{\n"
12116 "    /* Note: calling printf() from a signal handler is not\n"
12117 "       strictly correct, since printf() is not async-signal-safe;\n"
12118 "       see signal(7) */\n"
12119 msgstr ""
12120 "static void\n"
12121 "handler(int sig, siginfo_t *si, void *uc)\n"
12122 "{\n"
12123 "    /* Note: calling printf() from a signal handler is not\n"
12124 "       strictly correct, since printf() is not async-signal-safe;\n"
12125 "       see signal(7) */\n"
12126
12127 #. type: Plain text
12128 #: build/C/man2/timer_create.2:339
12129 #, no-wrap
12130 msgid ""
12131 "    printf(\"Caught signal %d\\en\", sig);\n"
12132 "    print_siginfo(si);\n"
12133 "    signal(sig, SIG_IGN);\n"
12134 "}\n"
12135 msgstr ""
12136 "    printf(\"Caught signal %d\\en\", sig);\n"
12137 "    print_siginfo(si);\n"
12138 "    signal(sig, SIG_IGN);\n"
12139 "}\n"
12140
12141 #. type: Plain text
12142 #: build/C/man2/timer_create.2:349
12143 #, no-wrap
12144 msgid ""
12145 "int\n"
12146 "main(int argc, char *argv[])\n"
12147 "{\n"
12148 "    timer_t timerid;\n"
12149 "    struct sigevent sev;\n"
12150 "    struct itimerspec its;\n"
12151 "    long long freq_nanosecs;\n"
12152 "    sigset_t mask;\n"
12153 "    struct sigaction sa;\n"
12154 msgstr ""
12155 "int\n"
12156 "main(int argc, char *argv[])\n"
12157 "{\n"
12158 "    timer_t timerid;\n"
12159 "    struct sigevent sev;\n"
12160 "    struct itimerspec its;\n"
12161 "    long long freq_nanosecs;\n"
12162 "    sigset_t mask;\n"
12163 "    struct sigaction sa;\n"
12164
12165 #. type: Plain text
12166 #: build/C/man2/timer_create.2:355
12167 #, no-wrap
12168 msgid ""
12169 "    if (argc != 3) {\n"
12170 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
12171 "                argv[0]);\n"
12172 "        exit(EXIT_FAILURE);\n"
12173 "    }\n"
12174 msgstr ""
12175 "    if (argc != 3) {\n"
12176 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
12177 "                argv[0]);\n"
12178 "        exit(EXIT_FAILURE);\n"
12179 "    }\n"
12180
12181 #. type: Plain text
12182 #: build/C/man2/timer_create.2:357
12183 #, no-wrap
12184 msgid "    /* Establish handler for timer signal */\n"
12185 msgstr "    /* Establish handler for timer signal */\n"
12186
12187 #. type: Plain text
12188 #: build/C/man2/timer_create.2:364
12189 #, no-wrap
12190 msgid ""
12191 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
12192 "    sa.sa_flags = SA_SIGINFO;\n"
12193 "    sa.sa_sigaction = handler;\n"
12194 "    sigemptyset(&sa.sa_mask);\n"
12195 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
12196 "        errExit(\"sigaction\");\n"
12197 msgstr ""
12198 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
12199 "    sa.sa_flags = SA_SIGINFO;\n"
12200 "    sa.sa_sigaction = handler;\n"
12201 "    sigemptyset(&sa.sa_mask);\n"
12202 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
12203 "        errExit(\"sigaction\");\n"
12204
12205 #. type: Plain text
12206 #: build/C/man2/timer_create.2:366
12207 #, no-wrap
12208 msgid "    /* Block timer signal temporarily */\n"
12209 msgstr "    /* Block timer signal temporarily */\n"
12210
12211 #. type: Plain text
12212 #: build/C/man2/timer_create.2:372
12213 #, no-wrap
12214 msgid ""
12215 "    printf(\"Blocking signal %d\\en\", SIG);\n"
12216 "    sigemptyset(&mask);\n"
12217 "    sigaddset(&mask, SIG);\n"
12218 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
12219 "        errExit(\"sigprocmask\");\n"
12220 msgstr ""
12221 "    printf(\"Blocking signal %d\\en\", SIG);\n"
12222 "    sigemptyset(&mask);\n"
12223 "    sigaddset(&mask, SIG);\n"
12224 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
12225 "        errExit(\"sigprocmask\");\n"
12226
12227 #. type: Plain text
12228 #: build/C/man2/timer_create.2:374
12229 #, no-wrap
12230 msgid "    /* Create the timer */\n"
12231 msgstr "    /* Create the timer */\n"
12232
12233 #. type: Plain text
12234 #: build/C/man2/timer_create.2:380
12235 #, no-wrap
12236 msgid ""
12237 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
12238 "    sev.sigev_signo = SIG;\n"
12239 "    sev.sigev_value.sival_ptr = &timerid;\n"
12240 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
12241 "        errExit(\"timer_create\");\n"
12242 msgstr ""
12243 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
12244 "    sev.sigev_signo = SIG;\n"
12245 "    sev.sigev_value.sival_ptr = &timerid;\n"
12246 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
12247 "        errExit(\"timer_create\");\n"
12248
12249 #. type: Plain text
12250 #: build/C/man2/timer_create.2:382
12251 #, no-wrap
12252 msgid "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
12253 msgstr "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
12254
12255 #. type: Plain text
12256 #: build/C/man2/timer_create.2:384
12257 #, no-wrap
12258 msgid "    /* Start the timer */\n"
12259 msgstr "    /* Start the timer */\n"
12260
12261 #. type: Plain text
12262 #: build/C/man2/timer_create.2:390
12263 #, no-wrap
12264 msgid ""
12265 "    freq_nanosecs = atoll(argv[2]);\n"
12266 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
12267 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
12268 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
12269 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
12270 msgstr ""
12271 "    freq_nanosecs = atoll(argv[2]);\n"
12272 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
12273 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
12274 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
12275 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
12276
12277 #. type: Plain text
12278 #: build/C/man2/timer_create.2:393
12279 #, no-wrap
12280 msgid ""
12281 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
12282 "         errExit(\"timer_settime\");\n"
12283 msgstr ""
12284 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
12285 "         errExit(\"timer_settime\");\n"
12286
12287 #. type: Plain text
12288 #: build/C/man2/timer_create.2:396
12289 #, no-wrap
12290 msgid ""
12291 "    /* Sleep for a while; meanwhile, the timer may expire\n"
12292 "       multiple times */\n"
12293 msgstr ""
12294 "    /* Sleep for a while; meanwhile, the timer may expire\n"
12295 "       multiple times */\n"
12296
12297 #. type: Plain text
12298 #: build/C/man2/timer_create.2:399
12299 #, no-wrap
12300 msgid ""
12301 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
12302 "    sleep(atoi(argv[1]));\n"
12303 msgstr ""
12304 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
12305 "    sleep(atoi(argv[1]));\n"
12306
12307 #. type: Plain text
12308 #: build/C/man2/timer_create.2:402
12309 #, no-wrap
12310 msgid ""
12311 "    /* Unlock the timer signal, so that timer notification\n"
12312 "       can be delivered */\n"
12313 msgstr ""
12314 "    /* Unlock the timer signal, so that timer notification\n"
12315 "       can be delivered */\n"
12316
12317 #. type: Plain text
12318 #: build/C/man2/timer_create.2:406
12319 #, no-wrap
12320 msgid ""
12321 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
12322 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
12323 "        errExit(\"sigprocmask\");\n"
12324 msgstr ""
12325 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
12326 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
12327 "        errExit(\"sigprocmask\");\n"
12328
12329 #. type: Plain text
12330 #: build/C/man2/timer_create.2:409 build/C/man2/timerfd_create.2:547
12331 #, no-wrap
12332 msgid ""
12333 "    exit(EXIT_SUCCESS);\n"
12334 "}\n"
12335 msgstr ""
12336 "    exit(EXIT_SUCCESS);\n"
12337 "}\n"
12338
12339 #. type: Plain text
12340 #: build/C/man2/timer_create.2:425
12341 msgid ""
12342 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), "
12343 "B<timer_getoverrun>(2), B<timer_settime>(2), B<timerfd_create>(2), "
12344 "B<clock_getcpuclockid>(3), B<pthread_getcpuclockid>(3), B<pthreads>(7), "
12345 "B<sigevent>(7), B<signal>(7), B<time>(7)"
12346 msgstr ""
12347 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), "
12348 "B<timer_getoverrun>(2), B<timer_settime>(2), B<timerfd_create>(2), "
12349 "B<clock_getcpuclockid>(3), B<pthread_getcpuclockid>(3), B<pthreads>(7), "
12350 "B<sigevent>(7), B<signal>(7), B<time>(7)"
12351
12352 #. type: TH
12353 #: build/C/man2/timer_delete.2:26
12354 #, no-wrap
12355 msgid "TIMER_DELETE"
12356 msgstr "TIMER_DELETE"
12357
12358 #. type: TH
12359 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
12360 #, no-wrap
12361 msgid "2009-02-20"
12362 msgstr "2009-02-20"
12363
12364 #. type: Plain text
12365 #: build/C/man2/timer_delete.2:29
12366 msgid "timer_delete - delete a POSIX per-process timer"
12367 msgstr "timer_delete - プロセス単位の POSIX タイマーを削除する"
12368
12369 #. type: Plain text
12370 #: build/C/man2/timer_delete.2:32 build/C/man2/timer_getoverrun.2:32
12371 #: build/C/man2/timer_settime.2:33
12372 #, no-wrap
12373 msgid "B<#include E<lt>time.hE<gt>>\n"
12374 msgstr "B<#include E<lt>time.hE<gt>>\n"
12375
12376 #. type: Plain text
12377 #: build/C/man2/timer_delete.2:34
12378 #, no-wrap
12379 msgid "B<int timer_delete(timer_t >I<timerid>B<);>\n"
12380 msgstr "B<int timer_delete(timer_t >I<timerid>B<);>\n"
12381
12382 #. type: Plain text
12383 #: build/C/man2/timer_delete.2:45
12384 msgid "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12385 msgstr "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12386
12387 #. type: Plain text
12388 #: build/C/man2/timer_delete.2:53
12389 msgid ""
12390 "B<timer_delete>()  deletes the timer whose ID is given in I<timerid>.  If "
12391 "the timer was armed at the time of this call, it is disarmed before being "
12392 "deleted.  The treatment of any pending signal generated by the deleted timer "
12393 "is unspecified."
12394 msgstr ""
12395 "B<timer_delete>() は I<timerid> で指定された ID のタイマーを削除する。 "
12396 "B<timer_delete>() が呼び出された時点でタイマーが開始されている場合は、 削除す"
12397 "る前にタイマーの解除が行われる。 削除されるタイマーにより生成された処理待ちシ"
12398 "グナルの扱いは不定 (unspecified) である。"
12399
12400 #. type: Plain text
12401 #: build/C/man2/timer_delete.2:60
12402 msgid ""
12403 "On success, B<timer_delete>()  returns 0.  On failure, -1 is returned, and "
12404 "I<errno> is set to indicate the error."
12405 msgstr ""
12406 "成功すると、 B<timer_delete>() は 0 を返す。 失敗すると、 -1 が返り、 "
12407 "I<errno> にエラーを示す値が設定される。"
12408
12409 #. type: Plain text
12410 #: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
12411 msgid "I<timerid> is not a valid timer ID."
12412 msgstr "I<timerid> が有効なタイマー ID ではない。"
12413
12414 #. type: Plain text
12415 #: build/C/man2/timer_delete.2:75
12416 msgid ""
12417 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
12418 "B<timer_settime>(2), B<time>(7)"
12419 msgstr ""
12420 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
12421 "B<timer_settime>(2), B<time>(7)"
12422
12423 #. type: TH
12424 #: build/C/man2/timer_getoverrun.2:26
12425 #, no-wrap
12426 msgid "TIMER_GETOVERRUN"
12427 msgstr "TIMER_GETOVERRUN"
12428
12429 #. type: Plain text
12430 #: build/C/man2/timer_getoverrun.2:29
12431 msgid "timer_getoverrun - get overrun count for a POSIX per-process timer"
12432 msgstr ""
12433
12434 #. type: Plain text
12435 #: build/C/man2/timer_getoverrun.2:34
12436 #, no-wrap
12437 msgid "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
12438 msgstr "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
12439
12440 #. type: Plain text
12441 #: build/C/man2/timer_getoverrun.2:45
12442 msgid "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12443 msgstr "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12444
12445 #. type: Plain text
12446 #: build/C/man2/timer_getoverrun.2:56
12447 msgid ""
12448 "B<timer_getoverrun>()  returns the \"overrun count\" for the timer referred "
12449 "to by I<timerid>.  An application can use the overrun count to accurately "
12450 "calculate the number of timer expirations that would have occurred over a "
12451 "given time interval.  Timer overruns can occur both when receiving "
12452 "expiration notifications via signals (B<SIGEV_SIGNAL>), and via threads "
12453 "(B<SIGEV_THREAD>)."
12454 msgstr ""
12455
12456 #. type: Plain text
12457 #: build/C/man2/timer_getoverrun.2:76
12458 msgid ""
12459 "When expiration notifications are delivered via a signal, overruns can occur "
12460 "as follows.  Regardless of whether or not a real-time signal is used for "
12461 "timer notifications, the system queues at most one signal per timer.  (This "
12462 "is the behavior specified by POSIX.1-2001.  The alternative, queuing one "
12463 "signal for each timer expiration, could easily result in overflowing the "
12464 "allowed limits for queued signals on the system.)  Because of system "
12465 "scheduling delays, or because the signal may be temporarily blocked, there "
12466 "can be a delay between the time when the notification signal is generated "
12467 "and the time when it is delivered (e.g., caught by a signal handler) or "
12468 "accepted (e.g., using B<sigwaitinfo>(2)).  In this interval, further timer "
12469 "expirations may occur.  The timer overrun count is the number of additional "
12470 "timer expirations that occurred between the time when the signal was "
12471 "generated and when it was delivered or accepted."
12472 msgstr ""
12473
12474 #. type: Plain text
12475 #: build/C/man2/timer_getoverrun.2:82
12476 msgid ""
12477 "Timer overruns can also occur when expiration notifications are delivered "
12478 "via invocation of a thread, since there may be an arbitrary delay between an "
12479 "expiration of the timer and the invocation of the notification thread, and "
12480 "in that delay interval, additional timer expirations may occur."
12481 msgstr ""
12482
12483 #. type: Plain text
12484 #: build/C/man2/timer_getoverrun.2:90
12485 msgid ""
12486 "On success, B<timer_getoverrun>()  returns the overrun count of the "
12487 "specified timer; this count may be 0 if no overruns have occurred.  On "
12488 "failure, -1 is returned, and I<errno> is set to indicate the error."
12489 msgstr ""
12490
12491 #. type: Plain text
12492 #: build/C/man2/timer_getoverrun.2:111
12493 msgid ""
12494 "When timer notifications are delivered via signals (B<SIGEV_SIGNAL>), on "
12495 "Linux it is also possible to obtain the overrun count via the I<si_overrun> "
12496 "field of the I<siginfo_t> structure (see B<sigaction>(2)).  This allows an "
12497 "application to avoid the overhead of making a system call to obtain the "
12498 "overrun count, but is a nonportable extension to POSIX.1-2001."
12499 msgstr ""
12500
12501 #.  FIXME . Austin bug filed, 11 Feb 09
12502 #. type: Plain text
12503 #: build/C/man2/timer_getoverrun.2:115
12504 msgid ""
12505 "POSIX.1-2001 discusses timer overruns only in the context of timer "
12506 "notifications using signals."
12507 msgstr ""
12508
12509 #.  Bug filed: http://bugzilla.kernel.org/show_bug.cgi?id=12665
12510 #.  http://thread.gmane.org/gmane.linux.kernel/113276/
12511 #. type: Plain text
12512 #: build/C/man2/timer_getoverrun.2:128
12513 msgid ""
12514 "POSIX.1-2001 specifies that if the timer overrun count is equal to or "
12515 "greater than an implementation-defined maximum, B<DELAYTIMER_MAX>, then "
12516 "B<timer_getoverrun>()  should return B<DELAYTIMER_MAX>.  However, Linux does "
12517 "not implement this feature: instead, if the timer overrun value exceeds the "
12518 "maximum representable integer, the counter cycles, starting once more from "
12519 "low values."
12520 msgstr ""
12521
12522 #. type: Plain text
12523 #: build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212
12524 msgid "See B<timer_create>(2)."
12525 msgstr ""
12526
12527 #. type: Plain text
12528 #: build/C/man2/timer_getoverrun.2:141
12529 msgid ""
12530 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
12531 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
12532 "B<time>(7)"
12533 msgstr ""
12534 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
12535 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
12536 "B<time>(7)"
12537
12538 #. type: TH
12539 #: build/C/man2/timer_settime.2:26
12540 #, no-wrap
12541 msgid "TIMER_SETTIME"
12542 msgstr "TIMER_SETTIME"
12543
12544 #. type: TH
12545 #: build/C/man2/timer_settime.2:26
12546 #, no-wrap
12547 msgid "2012-10-15"
12548 msgstr "2012-10-15"
12549
12550 #. type: Plain text
12551 #: build/C/man2/timer_settime.2:30
12552 msgid ""
12553 "timer_settime, timer_gettime - arm/disarm and fetch state of POSIX per-"
12554 "process timer"
12555 msgstr ""
12556
12557 #. type: Plain text
12558 #: build/C/man2/timer_settime.2:38
12559 #, no-wrap
12560 msgid ""
12561 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
12562 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
12563 "B<                  struct itimerspec *>I<old_value>B<);>\n"
12564 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
12565 msgstr ""
12566 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
12567 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
12568 "B<                  struct itimerspec *>I<old_value>B<);>\n"
12569 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
12570
12571 #. type: Plain text
12572 #: build/C/man2/timer_settime.2:50
12573 msgid ""
12574 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12575 msgstr ""
12576 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12577
12578 #. type: Plain text
12579 #: build/C/man2/timer_settime.2:63
12580 msgid ""
12581 "B<timer_settime>()  arms or disarms the timer identified by I<timerid>.  The "
12582 "I<new_value> argument is pointer to an I<itimerspec> structure that "
12583 "specifies the new initial value and the new interval for the timer.  The "
12584 "I<itimerspec> structure is defined as follows:"
12585 msgstr ""
12586
12587 #. type: Plain text
12588 #: build/C/man2/timer_settime.2:70 build/C/man2/timerfd_create.2:135
12589 #, no-wrap
12590 msgid ""
12591 "struct timespec {\n"
12592 "    time_t tv_sec;                /* Seconds */\n"
12593 "    long   tv_nsec;               /* Nanoseconds */\n"
12594 "};\n"
12595 msgstr ""
12596 "struct timespec {\n"
12597 "    time_t tv_sec;                /* Seconds */\n"
12598 "    long   tv_nsec;               /* Nanoseconds */\n"
12599 "};\n"
12600
12601 #. type: Plain text
12602 #: build/C/man2/timer_settime.2:75
12603 #, no-wrap
12604 msgid ""
12605 "struct itimerspec {\n"
12606 "    struct timespec it_interval;  /* Timer interval */\n"
12607 "    struct timespec it_value;     /* Initial expiration */\n"
12608 "};\n"
12609 msgstr ""
12610 "struct itimerspec {\n"
12611 "    struct timespec it_interval;  /* Timer interval */\n"
12612 "    struct timespec it_value;     /* Initial expiration */\n"
12613 "};\n"
12614
12615 #. type: Plain text
12616 #: build/C/man2/timer_settime.2:87
12617 msgid ""
12618 "Each of the substructures of the I<itimerspec> structure is a I<timespec> "
12619 "structure that allows a time value to be specified in seconds and "
12620 "nanoseconds.  These time values are measured according to the clock that was "
12621 "specified when the timer was created by B<timer_create>(2)."
12622 msgstr ""
12623
12624 #. type: Plain text
12625 #: build/C/man2/timer_settime.2:101
12626 msgid ""
12627 "If I<new_value-E<gt>it_value> specifies a nonzero value (i.e., either "
12628 "subfield is nonzero), then B<timer_settime>()  arms (starts) the timer, "
12629 "setting it to initially expire at the given time.  (If the timer was already "
12630 "armed, then the previous settings are overwritten.)  If I<new_value-"
12631 "E<gt>it_value> specifies a zero value (i.e., both subfields are zero), then "
12632 "the timer is disarmed."
12633 msgstr ""
12634
12635 #. type: Plain text
12636 #: build/C/man2/timer_settime.2:113
12637 msgid ""
12638 "The I<new_value-E<gt>it_interval> field specifies the period of the timer, "
12639 "in seconds and nanoseconds.  If this field is nonzero, then each time that "
12640 "an armed timer expires, the timer is reloaded from the value specified in "
12641 "I<new_value-E<gt>it_interval>.  If I<new_value-E<gt>it_interval> specifies a "
12642 "zero value, then the timer expires just once, at the time specified by "
12643 "I<it_value>."
12644 msgstr ""
12645
12646 #.  By experiment: the overrun count is set correctly, for CLOCK_REALTIME.
12647 #. type: Plain text
12648 #: build/C/man2/timer_settime.2:134
12649 msgid ""
12650 "By default, the initial expiration time specified in I<new_value-"
12651 "E<gt>it_value> is interpreted relative to the current time on the timer's "
12652 "clock at the time of the call.  This can be modified by specifying "
12653 "B<TIMER_ABSTIME> in I<flags>, in which case I<new_value-E<gt>it_value> is "
12654 "interpreted as an absolute value as measured on the timer's clock; that is, "
12655 "the timer will expire when the clock value reaches the value specified by "
12656 "I<new_value-E<gt>it_value>.  If the specified absolute time has already "
12657 "passed, then the timer expires immediately, and the overrun count (see "
12658 "B<timer_getoverrun>(2))  will be set correctly."
12659 msgstr ""
12660
12661 #.  Similar remarks might apply with respect to process and thread CPU time
12662 #.  clocks, but these clocks are not currently (2.6.28) settable on Linux.
12663 #. type: Plain text
12664 #: build/C/man2/timer_settime.2:144
12665 msgid ""
12666 "If the value of the B<CLOCK_REALTIME> clock is adjusted while an absolute "
12667 "timer based on that clock is armed, then the expiration of the timer will be "
12668 "appropriately adjusted.  Adjustments to the B<CLOCK_REALTIME> clock have no "
12669 "effect on relative timers based on that clock."
12670 msgstr ""
12671
12672 #. type: Plain text
12673 #: build/C/man2/timer_settime.2:153
12674 msgid ""
12675 "If I<old_value> is not NULL, then it points to a buffer that is used to "
12676 "return the previous interval of the timer (in I<old_value-"
12677 "E<gt>it_interval>)  and the amount of time until the timer would previously "
12678 "have next expired (in I<old_value-E<gt>it_value>)."
12679 msgstr ""
12680
12681 #. type: Plain text
12682 #: build/C/man2/timer_settime.2:173
12683 msgid ""
12684 "B<timer_gettime>()  returns the time until next expiration, and the "
12685 "interval, for the timer specified by I<timerid>, in the buffer pointed to by "
12686 "I<curr_value>.  The time remaining until the next timer expiration is "
12687 "returned in I<curr_value-E<gt>it_value>; this is always a relative value, "
12688 "regardless of whether the B<TIMER_ABSTIME> flag was used when arming the "
12689 "timer.  If the value returned in I<curr_value-E<gt>it_value> is zero, then "
12690 "the timer is currently disarmed.  The timer interval is returned in "
12691 "I<curr_value-E<gt>it_interval>.  If the value returned in I<curr_value-"
12692 "E<gt>it_interval> is zero, then this is a \"one-shot\" timer."
12693 msgstr ""
12694
12695 #. type: Plain text
12696 #: build/C/man2/timer_settime.2:182
12697 msgid ""
12698 "On success, B<timer_settime>()  and B<timer_gettime>()  return 0.  On error, "
12699 "-1 is returned, and I<errno> is set to indicate the error."
12700 msgstr ""
12701
12702 #. type: Plain text
12703 #: build/C/man2/timer_settime.2:184
12704 msgid "These functions may fail with the following errors:"
12705 msgstr ""
12706
12707 #. type: Plain text
12708 #: build/C/man2/timer_settime.2:191
12709 msgid "I<new_value>, I<old_value>, or I<curr_value> is not a valid pointer."
12710 msgstr ""
12711
12712 #.  FIXME . eventually: invalid value in flags
12713 #. type: Plain text
12714 #: build/C/man2/timer_settime.2:196
12715 msgid "I<timerid> is invalid."
12716 msgstr ""
12717
12718 #. type: Plain text
12719 #: build/C/man2/timer_settime.2:199
12720 msgid "B<timer_settime>()  may fail with the following errors:"
12721 msgstr ""
12722
12723 #. type: Plain text
12724 #: build/C/man2/timer_settime.2:205
12725 msgid ""
12726 "I<new_value.it_value> is negative; or I<new_value.it_value.tv_nsec> is "
12727 "negative or greater than 999,999,999."
12728 msgstr ""
12729
12730 #. type: Plain text
12731 #: build/C/man2/timer_settime.2:207
12732 msgid "These system calls are available since Linux 2.6."
12733 msgstr "これらのシステムコールは Linux 2.6 以降で利用可能である。"
12734
12735 #. type: Plain text
12736 #: build/C/man2/timer_settime.2:216
12737 msgid "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12738 msgstr "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12739
12740 #. type: TH
12741 #: build/C/man2/timerfd_create.2:22
12742 #, no-wrap
12743 msgid "TIMERFD_CREATE"
12744 msgstr "TIMERFD_CREATE"
12745
12746 #. type: TH
12747 #: build/C/man2/timerfd_create.2:22
12748 #, no-wrap
12749 msgid "2011-09-14"
12750 msgstr "2011-09-14"
12751
12752 #. type: Plain text
12753 #: build/C/man2/timerfd_create.2:26
12754 msgid ""
12755 "timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via "
12756 "file descriptors"
12757 msgstr ""
12758 "timerfd_create, timerfd_settime, timerfd_gettime - ファイルディスクリプター経"
12759 "由で通知するタイマー"
12760
12761 #. type: Plain text
12762 #: build/C/man2/timerfd_create.2:29
12763 #, no-wrap
12764 msgid "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12765 msgstr "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12766
12767 #. type: Plain text
12768 #: build/C/man2/timerfd_create.2:31
12769 #, no-wrap
12770 msgid "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12771 msgstr "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12772
12773 #. type: Plain text
12774 #: build/C/man2/timerfd_create.2:35
12775 #, no-wrap
12776 msgid ""
12777 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12778 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12779 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12780 msgstr ""
12781 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12782 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12783 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12784
12785 #. type: Plain text
12786 #: build/C/man2/timerfd_create.2:37
12787 #, no-wrap
12788 msgid "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12789 msgstr "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12790
12791 #. type: Plain text
12792 #: build/C/man2/timerfd_create.2:50
12793 msgid ""
12794 "These system calls create and operate on a timer that delivers timer "
12795 "expiration notifications via a file descriptor.  They provide an alternative "
12796 "to the use of B<setitimer>(2)  or B<timer_create>(2), with the advantage "
12797 "that the file descriptor may be monitored by B<select>(2), B<poll>(2), and "
12798 "B<epoll>(7)."
12799 msgstr ""
12800 "これらのシステムコールは、満了通知をファイルディスクリプター経由で配送する タ"
12801 "イマーの生成と操作を行う。 これらは、 B<setitimer>(2)  や "
12802 "B<timer_create>(2)  を用いる方法の代わりとなるものであり、このファイルディス"
12803 "クリプターを B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点が"
12804 "ある。"
12805
12806 #. type: Plain text
12807 #: build/C/man2/timerfd_create.2:62
12808 msgid ""
12809 "The use of these three system calls is analogous to the use of "
12810 "B<timer_create>(2), B<timer_settime>(2), and B<timer_gettime>(2).  (There is "
12811 "no analog of B<timer_getoverrun>(2), since that functionality is provided by "
12812 "B<read>(2), as described below.)"
12813 msgstr ""
12814 "これらのシステムコールを使うのは、それぞれ B<timer_create>(2), "
12815 "B<timer_settime>(2), B<timer_gettime>(2)  を使うのと同様である "
12816 "(B<timer_getoverrun>(2)  に対応するものはなく、以下で説明するように この機能"
12817 "は B<read>(2)  により提供される)。"
12818
12819 #. type: SS
12820 #: build/C/man2/timerfd_create.2:62
12821 #, no-wrap
12822 msgid "timerfd_create()"
12823 msgstr "timerfd_create()"
12824
12825 #.  FIXME
12826 #.  Additional clocks are now supported:
12827 #.  CLOCK_REALTIME_ALARM and CLOCK_BOOTTIME_ALARM
12828 #.     Since Linux 3.11, commit 11ffa9d6065f344a9bd769a2452f26f2f671e5f8
12829 #.  CLOCK_BOOTTIME
12830 #.     Since Linux 3.15, commit 4a2378a943f09907fb1ae35c15de917f60289c14
12831 #. type: Plain text
12832 #: build/C/man2/timerfd_create.2:87
12833 msgid ""
12834 "B<timerfd_create>()  creates a new timer object, and returns a file "
12835 "descriptor that refers to that timer.  The I<clockid> argument specifies the "
12836 "clock that is used to mark the progress of the timer, and must be either "
12837 "B<CLOCK_REALTIME> or B<CLOCK_MONOTONIC>.  B<CLOCK_REALTIME> is a settable "
12838 "system-wide clock.  B<CLOCK_MONOTONIC> is a nonsettable clock that is not "
12839 "affected by discontinuous changes in the system clock (e.g., manual changes "
12840 "to system time).  The current value of each of these clocks can be retrieved "
12841 "using B<clock_gettime>(2)."
12842 msgstr ""
12843 "B<timerfd_create>()  は新規のタイマーオブジェクトを生成し、そのタイマーを参照"
12844 "するファイル ディスクリプターを返す。 I<clockid> 引き数は、タイマーの進捗を管"
12845 "理するためのクロックを指定するもので、 B<CLOCK_REALTIME> か "
12846 "B<CLOCK_MONOTONIC> のいずれかでなければならない。 B<CLOCK_REALTIME> はシステ"
12847 "ム全体で使用されるクロックで、このクロックは変更可能である。 "
12848 "B<CLOCK_MONOTONIC> は変更されることのないクロックで、(システム時刻の手動での"
12849 "変更などの)  システムクロックの不連続な変化の影響を受けない。 これらのクロッ"
12850 "クの現在の値は B<clock_gettime>(2)  を使って取得できる。"
12851
12852 #. type: Plain text
12853 #: build/C/man2/timerfd_create.2:92
12854 msgid ""
12855 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
12856 "I<flags> to change the behavior of B<timerfd_create>():"
12857 msgstr ""
12858 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
12859 "ることで、 B<timerfd_create>()  の振舞いを変更することができる。"
12860
12861 #. type: TP
12862 #: build/C/man2/timerfd_create.2:92
12863 #, no-wrap
12864 msgid "B<TFD_NONBLOCK>"
12865 msgstr "B<TFD_NONBLOCK>"
12866
12867 #. type: TP
12868 #: build/C/man2/timerfd_create.2:100
12869 #, no-wrap
12870 msgid "B<TFD_CLOEXEC>"
12871 msgstr "B<TFD_CLOEXEC>"
12872
12873 #. type: Plain text
12874 #: build/C/man2/timerfd_create.2:114
12875 msgid ""
12876 "In Linux versions up to and including 2.6.26, I<flags> must be specified as "
12877 "zero."
12878 msgstr ""
12879 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
12880 "しなければならない。"
12881
12882 #. type: SS
12883 #: build/C/man2/timerfd_create.2:114
12884 #, no-wrap
12885 msgid "timerfd_settime()"
12886 msgstr "timerfd_settime()"
12887
12888 #. type: Plain text
12889 #: build/C/man2/timerfd_create.2:119
12890 msgid ""
12891 "B<timerfd_settime>()  arms (starts) or disarms (stops)  the timer referred "
12892 "to by the file descriptor I<fd>."
12893 msgstr ""
12894 "B<timerfd_settime>()  は、ファイルディスクリプター I<fd> により参照されるタイ"
12895 "マーを開始したり停止したりする。"
12896
12897 #. type: Plain text
12898 #: build/C/man2/timerfd_create.2:128
12899 msgid ""
12900 "The I<new_value> argument specifies the initial expiration and interval for "
12901 "the timer.  The I<itimer> structure used for this argument contains two "
12902 "fields, each of which is in turn a structure of type I<timespec>:"
12903 msgstr ""
12904 "I<new_value> 引き数は、タイマーの満了時間 (expiration) の初期値と間隔 "
12905 "(interval) を 指定する。この引き数で使用されている I<itimerspec> 構造体には "
12906 "2 つのフィールドがあり、各フィールドは I<timespec> 型の構造体である。"
12907
12908 #. type: Plain text
12909 #: build/C/man2/timerfd_create.2:140
12910 #, no-wrap
12911 msgid ""
12912 "struct itimerspec {\n"
12913 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12914 "    struct timespec it_value;     /* Initial expiration */\n"
12915 "};\n"
12916 msgstr ""
12917 "struct itimerspec {\n"
12918 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12919 "    struct timespec it_value;     /* Initial expiration */\n"
12920 "};\n"
12921
12922 #. type: Plain text
12923 #: build/C/man2/timerfd_create.2:152
12924 msgid ""
12925 "I<new_value.it_value> specifies the initial expiration of the timer, in "
12926 "seconds and nanoseconds.  Setting either field of I<new_value.it_value> to a "
12927 "nonzero value arms the timer.  Setting both fields of I<new_value.it_value> "
12928 "to zero disarms the timer."
12929 msgstr ""
12930 "I<new_value.it_value> はタイマーの満了時間の初期値を、秒とナノ秒で指定する。 "
12931 "I<new_value.it_value> のフィールドのうち少なくとも一方に 0 以外の値を設定する"
12932 "と、 タイマーが開始される。 両方のフィールドに 0 を設定すると、タイマーが停止"
12933 "する。"
12934
12935 #. type: Plain text
12936 #: build/C/man2/timerfd_create.2:161
12937 msgid ""
12938 "Setting one or both fields of I<new_value.it_interval> to nonzero values "
12939 "specifies the period, in seconds and nanoseconds, for repeated timer "
12940 "expirations after the initial expiration.  If both fields of I<new_value."
12941 "it_interval> are zero, the timer expires just once, at the time specified by "
12942 "I<new_value.it_value>."
12943 msgstr ""
12944 "I<new_value.it_interval> はタイマーの一回目の満了後に繰り返しタイマーの満了間"
12945 "隔を、秒とナノ秒で指定する。 I<new_value.it_interval> のフィールドのうち少な"
12946 "くとも一方に 0 以外の値を設定すると、 繰り返しタイマーが有効になる。 両方の"
12947 "フィールドに 0 を設定した場合、タイマーは I<new_value.it_value> で指定された"
12948 "時間後に、一回だけ満了して停止する。"
12949
12950 #. type: Plain text
12951 #: build/C/man2/timerfd_create.2:177
12952 msgid ""
12953 "The I<flags> argument is either 0, to start a relative timer (I<new_value."
12954 "it_value> specifies a time relative to the current value of the clock "
12955 "specified by I<clockid>), or B<TFD_TIMER_ABSTIME>, to start an absolute "
12956 "timer (I<new_value.it_value> specifies an absolute time for the clock "
12957 "specified by I<clockid>; that is, the timer will expire when the value of "
12958 "that clock reaches the value specified in I<new_value.it_value>)."
12959 msgstr ""
12960 "I<flags> 引き数には 0 か B<TFD_TIMER_ABSTIME> を指定する。 0 は相対時刻タイ"
12961 "マーを意味し、 I<new_value.it_value> では I<clockid> で指定されたクロックの現"
12962 "在の値からの相対的な時刻を指定する。 B<TFD_TIMER_ABSTIME> は絶対時刻タイマー"
12963 "を意味し、 I<new_value.it_interval> では I<clockid> で指定されたクロックの絶"
12964 "対時刻を指定する。 つまり、クロックの値が I<new_value.it_interval> で指定され"
12965 "た時刻に達したら、タイマーが満了する。"
12966
12967 #. type: Plain text
12968 #: build/C/man2/timerfd_create.2:188
12969 msgid ""
12970 "If the I<old_value> argument is not NULL, then the I<itimerspec> structure "
12971 "that it points to is used to return the setting of the timer that was "
12972 "current at the time of the call; see the description of "
12973 "B<timerfd_gettime>()  following."
12974 msgstr ""
12975 "I<old_value> 引き数が NULL でない場合、 I<old_value> 引き数が指す "
12976 "I<itimerspec> 構造体は、 B<timerfd_settime>() を呼び出した時点でのタイマーの"
12977 "設定を返すのに使用される。 下記の B<timerfd_gettime>() の説明を参照。"
12978
12979 #. type: SS
12980 #: build/C/man2/timerfd_create.2:188
12981 #, no-wrap
12982 msgid "timerfd_gettime()"
12983 msgstr "timerfd_gettime()"
12984
12985 #. type: Plain text
12986 #: build/C/man2/timerfd_create.2:197
12987 msgid ""
12988 "B<timerfd_gettime>()  returns, in I<curr_value>, an I<itimerspec> structure "
12989 "that contains the current setting of the timer referred to by the file "
12990 "descriptor I<fd>."
12991 msgstr ""
12992 "B<timerfd_gettime>()  は、ファイルディスクリプター I<fd> で参照されるタイマー"
12993 "の現在の設定が入った I<itimerspec> 構造体を、 I<curr_value> に格納して返す。"
12994
12995 #. type: Plain text
12996 #: build/C/man2/timerfd_create.2:207
12997 msgid ""
12998 "The I<it_value> field returns the amount of time until the timer will next "
12999 "expire.  If both fields of this structure are zero, then the timer is "
13000 "currently disarmed.  This field always contains a relative value, regardless "
13001 "of whether the B<TFD_TIMER_ABSTIME> flag was specified when setting the "
13002 "timer."
13003 msgstr ""
13004 "I<it_value> フィールドは、タイマーが次に満了するまでの残り時間を返す。 この構"
13005 "造体の両方のフィールドが 0 であれば、タイマーは現在停止している。 タイマー設"
13006 "定時に B<TFD_TIMER_ABSTIME> フラグが指定されたかに関わらず、このフィールドは"
13007 "常に相対値が格納される。"
13008
13009 #. type: Plain text
13010 #: build/C/man2/timerfd_create.2:214
13011 msgid ""
13012 "The I<it_interval> field returns the interval of the timer.  If both fields "
13013 "of this structure are zero, then the timer is set to expire just once, at "
13014 "the time specified by I<curr_value.it_value>."
13015 msgstr ""
13016 "I<it_interval> フィールドは、タイマーの間隔を返す。 この構造体の両方のフィー"
13017 "ルドが 0 であれば、タイマーは I<new_value.it_value> で指定された時間後に一回"
13018 "だけ満了して停止するように設定されている。"
13019
13020 #. type: SS
13021 #: build/C/man2/timerfd_create.2:214
13022 #, no-wrap
13023 msgid "Operating on a timer file descriptor"
13024 msgstr "タイマーファイルディスクリプターに対する操作"
13025
13026 #. type: Plain text
13027 #: build/C/man2/timerfd_create.2:218
13028 msgid ""
13029 "The file descriptor returned by B<timerfd_create>()  supports the following "
13030 "operations:"
13031 msgstr ""
13032 "B<timerfd_create>()  が返すファイルディスクリプターは以下の操作をサポートして"
13033 "いる。"
13034
13035 #. type: Plain text
13036 #: build/C/man2/timerfd_create.2:232
13037 msgid ""
13038 "If the timer has already expired one or more times since its settings were "
13039 "last modified using B<timerfd_settime>(), or since the last successful "
13040 "B<read>(2), then the buffer given to B<read>(2)  returns an unsigned 8-byte "
13041 "integer (I<uint64_t>)  containing the number of expirations that have "
13042 "occurred.  (The returned value is in host byte order\\(emthat is, the native "
13043 "byte order for integers on the host machine.)"
13044 msgstr ""
13045 "B<timerfd_settime>()  を使ってタイマーの設定が最後変更されて以降、または "
13046 "B<read>(2)  の呼び出しに最後に成功して以降に、タイマーの満了が一回以上発生し"
13047 "ていれば、 B<read>(2)  に渡されたバッファーに、タイマー満了回数を示す 8 バイ"
13048 "トの unsigned 型の整数 (I<uint64_t>)  が返される (返される値はホストバイト"
13049 "オーダ、つまりそのホストマシンにおける 整数の通常のバイトオーダである)。"
13050
13051 #. type: Plain text
13052 #: build/C/man2/timerfd_create.2:245
13053 msgid ""
13054 "If no timer expirations have occurred at the time of the B<read>(2), then "
13055 "the call either blocks until the next timer expiration, or fails with the "
13056 "error B<EAGAIN> if the file descriptor has been made nonblocking (via the "
13057 "use of the B<fcntl>(2)  B<F_SETFL> operation to set the B<O_NONBLOCK> flag)."
13058 msgstr ""
13059 "B<read>(2)  を行った時点でタイマーの満了が発生していなければ、 B<read>(2)  は"
13060 "停止 (block) する、もしくはファイルディスクリプターが 非停止 (nonblocking) に"
13061 "設定されている場合はエラー B<EAGAIN> で失敗する (非停止モードにするには、 "
13062 "B<fcntl>(2)  の B<F_SETFL> 命令で B<O_NONBLOCK> フラグをセットする)。"
13063
13064 #. type: Plain text
13065 #: build/C/man2/timerfd_create.2:251
13066 msgid ""
13067 "A B<read>(2)  will fail with the error B<EINVAL> if the size of the supplied "
13068 "buffer is less than 8 bytes."
13069 msgstr ""
13070 "渡されたバッファーの大きさが 8 バイト未満の場合、 B<read>(2)  はエラー "
13071 "B<EINVAL> で失敗する。"
13072
13073 #. type: Plain text
13074 #: build/C/man2/timerfd_create.2:262
13075 msgid ""
13076 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
13077 "B<poll>(2)  B<POLLIN> flag)  if one or more timer expirations have occurred."
13078 msgstr ""
13079 "一つ以上のタイマー満了が発生していれば、 ファイルディスクリプターは読み出し可"
13080 "能となる (B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラ"
13081 "グ)。"
13082
13083 #. type: Plain text
13084 #: build/C/man2/timerfd_create.2:269
13085 msgid ""
13086 "The file descriptor also supports the other file-descriptor multiplexing "
13087 "APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
13088 msgstr ""
13089 "このファイルディスクリプターは、他のファイルディスクリプター多重 API である "
13090 "B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
13091
13092 #. type: Plain text
13093 #: build/C/man2/timerfd_create.2:276
13094 msgid ""
13095 "When the file descriptor is no longer required it should be closed.  When "
13096 "all file descriptors associated with the same timer object have been closed, "
13097 "the timer is disarmed and its resources are freed by the kernel."
13098 msgstr ""
13099 "ファイルディスクリプターがそれ以降は必要なくなった際には、クローズすべきであ"
13100 "る。 同じ timer オブジェクトに関連付けられたファイルディスクリプターが全て ク"
13101 "ローズされると、そのタイマーは解除され、 そのオブジェクト用の資源がカーネルに"
13102 "より解放される。"
13103
13104 #. type: Plain text
13105 #: build/C/man2/timerfd_create.2:288
13106 msgid ""
13107 "After a B<fork>(2), the child inherits a copy of the file descriptor created "
13108 "by B<timerfd_create>().  The file descriptor refers to the same underlying "
13109 "timer object as the corresponding file descriptor in the parent, and "
13110 "B<read>(2)s in the child will return information about expirations of the "
13111 "timer."
13112 msgstr ""
13113 "B<fork>(2)  が行われると、子プロセスは B<timerfd_create>()  により生成された"
13114 "ファイルディスクリプターのコピーを 継承する。そのファイルディスクリプターは、"
13115 "親プロセスの対応する ファイルディスクリプターと同じタイマーオブジェクトを参照"
13116 "しており、 子プロセスの B<read>(2)  でも同じタイマーの満了に関する情報が返さ"
13117 "れる。"
13118
13119 #. type: Plain text
13120 #: build/C/man2/timerfd_create.2:294
13121 msgid ""
13122 "A file descriptor created by B<timerfd_create>()  is preserved across "
13123 "B<execve>(2), and continues to generate timer expirations if the timer was "
13124 "armed."
13125 msgstr ""
13126 "B<execve>(2)  の前後で B<timerfd_create>()  により生成されたファイルディスク"
13127 "リプターは保持され、 タイマーが開始されていた場合にはタイマーの満了が発生し続"
13128 "ける。"
13129
13130 #. type: Plain text
13131 #: build/C/man2/timerfd_create.2:301
13132 msgid ""
13133 "On success, B<timerfd_create>()  returns a new file descriptor.  On error, "
13134 "-1 is returned and I<errno> is set to indicate the error."
13135 msgstr ""
13136 "成功すると、 B<timerfd_create>()  は新しいファイルディスクリプターを返す。 エ"
13137 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
13138
13139 #. type: Plain text
13140 #: build/C/man2/timerfd_create.2:309
13141 msgid ""
13142 "B<timerfd_settime>()  and B<timerfd_gettime>()  return 0 on success; on "
13143 "error they return -1, and set I<errno> to indicate the error."
13144 msgstr ""
13145 "B<timerfd_settime>()  と B<timerfd_gettime>()  は成功すると 0 を返す。 エラー"
13146 "の場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
13147
13148 #. type: Plain text
13149 #: build/C/man2/timerfd_create.2:312
13150 msgid "B<timerfd_create>()  can fail with the following errors:"
13151 msgstr "B<timerfd_create>()  は以下のエラーで失敗する可能性がある。"
13152
13153 #. type: Plain text
13154 #: build/C/man2/timerfd_create.2:320
13155 msgid ""
13156 "The I<clockid> argument is neither B<CLOCK_MONOTONIC> nor B<CLOCK_REALTIME>;"
13157 msgstr ""
13158 "I<clockid> 引き数が B<CLOCK_MONOTONIC> でも B<CLOCK_REALTIME> でもない。"
13159
13160 #. type: Plain text
13161 #: build/C/man2/timerfd_create.2:340
13162 msgid "There was insufficient kernel memory to create the timer."
13163 msgstr "タイマーを作成するのに十分なカーネルメモリーがなかった。"
13164
13165 #. type: Plain text
13166 #: build/C/man2/timerfd_create.2:345
13167 msgid ""
13168 "B<timerfd_settime>()  and B<timerfd_gettime>()  can fail with the following "
13169 "errors:"
13170 msgstr ""
13171 "B<timerfd_settime>()  と B<timerfd_gettime>()  は以下のエラーで失敗する可能性"
13172 "がある。"
13173
13174 #. type: Plain text
13175 #: build/C/man2/timerfd_create.2:349
13176 msgid "I<fd> is not a valid file descriptor."
13177 msgstr "I<fd> が有効なファイルディスクリプターでない。"
13178
13179 #. type: Plain text
13180 #: build/C/man2/timerfd_create.2:360
13181 msgid "I<fd> is not a valid timerfd file descriptor."
13182 msgstr "I<fd> が有効な timerfd ファイルディスクリプターでない。"
13183
13184 #. type: Plain text
13185 #: build/C/man2/timerfd_create.2:363
13186 msgid "B<timerfd_settime>()  can also fail with the following errors:"
13187 msgstr "B<timerfd_settime>()  は以下のエラーで失敗することもある。"
13188
13189 #. type: Plain text
13190 #: build/C/man2/timerfd_create.2:369
13191 msgid ""
13192 "I<new_value> is not properly initialized (one of the I<tv_nsec> falls "
13193 "outside the range zero to 999,999,999)."
13194 msgstr ""
13195 "I<new_value> が適切に初期化されていない (I<tv_nsec> の一つが 0 から "
13196 "999,999,999 までの範囲に入っていない)。"
13197
13198 #.  This case only checked since 2.6.29, and 2.2.2[78].some-stable-version.
13199 #.  In older kernel versions, no check was made for invalid flags.
13200 #. type: Plain text
13201 #: build/C/man2/timerfd_create.2:375
13202 msgid "I<flags> is invalid."
13203 msgstr "I<flags> が無効である。"
13204
13205 #. type: Plain text
13206 #: build/C/man2/timerfd_create.2:378
13207 msgid ""
13208 "These system calls are available on Linux since kernel 2.6.25.  Library "
13209 "support is provided by glibc since version 2.8."
13210 msgstr ""
13211 "これらのシステムコールはカーネル 2.6.25 以降の Linux で利用可能である。 ライ"
13212 "ブラリ側のサポートはバージョン 2.8 以降の glibc で提供されている。"
13213
13214 #.  2.6.29
13215 #. type: Plain text
13216 #: build/C/man2/timerfd_create.2:386
13217 msgid ""
13218 "Currently, B<timerfd_create>()  supports fewer types of clock IDs than "
13219 "B<timer_create>(2)."
13220 msgstr ""
13221 "現在のところ、 B<timerfd_create>()  が対応している clockid の種類は "
13222 "B<timer_create>(2)  よりも少ない。"
13223
13224 #. type: Plain text
13225 #: build/C/man2/timerfd_create.2:395
13226 msgid ""
13227 "The following program creates a timer and then monitors its progress.  The "
13228 "program accepts up to three command-line arguments.  The first argument "
13229 "specifies the number of seconds for the initial expiration of the timer.  "
13230 "The second argument specifies the interval for the timer, in seconds.  The "
13231 "third argument specifies the number of times the program should allow the "
13232 "timer to expire before terminating.  The second and third command-line "
13233 "arguments are optional."
13234 msgstr ""
13235 "以下のプログラムは、タイマーを作成し、その進捗をモニターするものである。 この"
13236 "プログラムは最大で 3 個のコマンドライン引き数を取り、 第一引き数ではタイマー"
13237 "の満了時間の初期値 (秒数単位) を、 第二引き数ではタイマーの間隔 (秒数単位) "
13238 "を、 第三引き数ではタイマーが何回満了したらプログラムが終了するかを指定す"
13239 "る。 第二引き数と第三引き数は省略可能である。"
13240
13241 #. type: Plain text
13242 #: build/C/man2/timerfd_create.2:397 build/C/man2/wait.2:571
13243 msgid "The following shell session demonstrates the use of the program:"
13244 msgstr "以下のシェルのセッションはこのプログラムの使用例を示したものである。"
13245
13246 #. type: Plain text
13247 #: build/C/man2/timerfd_create.2:412
13248 #, no-wrap
13249 msgid ""
13250 "$B< a.out 3 1 100>\n"
13251 "0.000: timer started\n"
13252 "3.000: read: 1; total=1\n"
13253 "4.000: read: 1; total=2\n"
13254 "B<^Z >                 # type control-Z to suspend the program\n"
13255 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
13256 "$ B<fg>                # Resume execution after a few seconds\n"
13257 "a.out 3 1 100\n"
13258 "9.660: read: 5; total=7\n"
13259 "10.000: read: 1; total=8\n"
13260 "11.000: read: 1; total=9\n"
13261 "B<^C >                 # type control-C to suspend the program\n"
13262 msgstr ""
13263 "$B< a.out 3 1 100>\n"
13264 "0.000: timer started\n"
13265 "3.000: read: 1; total=1\n"
13266 "4.000: read: 1; total=2\n"
13267 "B<^Z >                 # type control-Z to suspend the program\n"
13268 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
13269 "$ B<fg>                # Resume execution after a few seconds\n"
13270 "a.out 3 1 100\n"
13271 "9.660: read: 5; total=7\n"
13272 "10.000: read: 1; total=8\n"
13273 "11.000: read: 1; total=9\n"
13274 "B<^C >                 # type control-C to suspend the program\n"
13275
13276 #.  The commented out code here is what we currently need until
13277 #.  the required stuff is in glibc
13278 #. /* Link with -lrt */
13279 #. #define _GNU_SOURCE
13280 #. #include <sys/syscall.h>
13281 #. #include <unistd.h>
13282 #. #include <time.h>
13283 #. #if defined(__i386__)
13284 #. #define __NR_timerfd_create 322
13285 #. #define __NR_timerfd_settime 325
13286 #. #define __NR_timerfd_gettime 326
13287 #. #endif
13288 #. static int
13289 #. timerfd_create(int clockid, int flags)
13290 #. {
13291 #.     return syscall(__NR_timerfd_create, clockid, flags);
13292 #. }
13293 #. static int
13294 #. timerfd_settime(int fd, int flags, struct itimerspec *new_value,
13295 #.         struct itimerspec *curr_value)
13296 #. {
13297 #.     return syscall(__NR_timerfd_settime, fd, flags, new_value,
13298 #.                    curr_value);
13299 #. }
13300 #. static int
13301 #. timerfd_gettime(int fd, struct itimerspec *curr_value)
13302 #. {
13303 #.     return syscall(__NR_timerfd_gettime, fd, curr_value);
13304 #. }
13305 #. #define TFD_TIMER_ABSTIME (1 << 0)
13306 #. ////////////////////////////////////////////////////////////
13307 #. type: Plain text
13308 #: build/C/man2/timerfd_create.2:461
13309 #, no-wrap
13310 msgid ""
13311 "#include E<lt>sys/timerfd.hE<gt>\n"
13312 "#include E<lt>time.hE<gt>\n"
13313 "#include E<lt>unistd.hE<gt>\n"
13314 "#include E<lt>stdlib.hE<gt>\n"
13315 "#include E<lt>stdio.hE<gt>\n"
13316 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
13317 msgstr ""
13318 "#include E<lt>sys/timerfd.hE<gt>\n"
13319 "#include E<lt>time.hE<gt>\n"
13320 "#include E<lt>unistd.hE<gt>\n"
13321 "#include E<lt>stdlib.hE<gt>\n"
13322 "#include E<lt>stdio.hE<gt>\n"
13323 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
13324
13325 #. type: Plain text
13326 #: build/C/man2/timerfd_create.2:464
13327 #, no-wrap
13328 msgid ""
13329 "#define handle_error(msg) \\e\n"
13330 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
13331 msgstr ""
13332 "#define handle_error(msg) \\e\n"
13333 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
13334
13335 #. type: Plain text
13336 #: build/C/man2/timerfd_create.2:472
13337 #, no-wrap
13338 msgid ""
13339 "static void\n"
13340 "print_elapsed_time(void)\n"
13341 "{\n"
13342 "    static struct timespec start;\n"
13343 "    struct timespec curr;\n"
13344 "    static int first_call = 1;\n"
13345 "    int secs, nsecs;\n"
13346 msgstr ""
13347 "static void\n"
13348 "print_elapsed_time(void)\n"
13349 "{\n"
13350 "    static struct timespec start;\n"
13351 "    struct timespec curr;\n"
13352 "    static int first_call = 1;\n"
13353 "    int secs, nsecs;\n"
13354
13355 #. type: Plain text
13356 #: build/C/man2/timerfd_create.2:478
13357 #, no-wrap
13358 msgid ""
13359 "    if (first_call) {\n"
13360 "        first_call = 0;\n"
13361 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
13362 "            handle_error(\"clock_gettime\");\n"
13363 "    }\n"
13364 msgstr ""
13365 "    if (first_call) {\n"
13366 "        first_call = 0;\n"
13367 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
13368 "            handle_error(\"clock_gettime\");\n"
13369 "    }\n"
13370
13371 #. type: Plain text
13372 #: build/C/man2/timerfd_create.2:481
13373 #, no-wrap
13374 msgid ""
13375 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
13376 "        handle_error(\"clock_gettime\");\n"
13377 msgstr ""
13378 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
13379 "        handle_error(\"clock_gettime\");\n"
13380
13381 #. type: Plain text
13382 #: build/C/man2/timerfd_create.2:490
13383 #, no-wrap
13384 msgid ""
13385 "    secs = curr.tv_sec - start.tv_sec;\n"
13386 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
13387 "    if (nsecs E<lt> 0) {\n"
13388 "        secs--;\n"
13389 "        nsecs += 1000000000;\n"
13390 "    }\n"
13391 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
13392 "}\n"
13393 msgstr ""
13394 "    secs = curr.tv_sec - start.tv_sec;\n"
13395 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
13396 "    if (nsecs E<lt> 0) {\n"
13397 "        secs--;\n"
13398 "        nsecs += 1000000000;\n"
13399 "    }\n"
13400 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
13401 "}\n"
13402
13403 #. type: Plain text
13404 #: build/C/man2/timerfd_create.2:499
13405 #, no-wrap
13406 msgid ""
13407 "int\n"
13408 "main(int argc, char *argv[])\n"
13409 "{\n"
13410 "    struct itimerspec new_value;\n"
13411 "    int max_exp, fd;\n"
13412 "    struct timespec now;\n"
13413 "    uint64_t exp, tot_exp;\n"
13414 "    ssize_t s;\n"
13415 msgstr ""
13416 "int\n"
13417 "main(int argc, char *argv[])\n"
13418 "{\n"
13419 "    struct itimerspec new_value;\n"
13420 "    int max_exp, fd;\n"
13421 "    struct timespec now;\n"
13422 "    uint64_t exp, tot_exp;\n"
13423 "    ssize_t s;\n"
13424
13425 #. type: Plain text
13426 #: build/C/man2/timerfd_create.2:505
13427 #, no-wrap
13428 msgid ""
13429 "    if ((argc != 2) && (argc != 4)) {\n"
13430 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
13431 "                argv[0]);\n"
13432 "        exit(EXIT_FAILURE);\n"
13433 "    }\n"
13434 msgstr ""
13435 "    if ((argc != 2) && (argc != 4)) {\n"
13436 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
13437 "                argv[0]);\n"
13438 "        exit(EXIT_FAILURE);\n"
13439 "    }\n"
13440
13441 #. type: Plain text
13442 #: build/C/man2/timerfd_create.2:508
13443 #, no-wrap
13444 msgid ""
13445 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
13446 "        handle_error(\"clock_gettime\");\n"
13447 msgstr ""
13448 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
13449 "        handle_error(\"clock_gettime\");\n"
13450
13451 #. type: Plain text
13452 #: build/C/man2/timerfd_create.2:511
13453 #, no-wrap
13454 msgid ""
13455 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
13456 "       expiration and interval as specified in command line */\n"
13457 msgstr ""
13458 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
13459 "       expiration and interval as specified in command line */\n"
13460
13461 #. type: Plain text
13462 #: build/C/man2/timerfd_create.2:522
13463 #, no-wrap
13464 msgid ""
13465 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
13466 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
13467 "    if (argc == 2) {\n"
13468 "        new_value.it_interval.tv_sec = 0;\n"
13469 "        max_exp = 1;\n"
13470 "    } else {\n"
13471 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
13472 "        max_exp = atoi(argv[3]);\n"
13473 "    }\n"
13474 "    new_value.it_interval.tv_nsec = 0;\n"
13475 msgstr ""
13476 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
13477 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
13478 "    if (argc == 2) {\n"
13479 "        new_value.it_interval.tv_sec = 0;\n"
13480 "        max_exp = 1;\n"
13481 "    } else {\n"
13482 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
13483 "        max_exp = atoi(argv[3]);\n"
13484 "    }\n"
13485 "    new_value.it_interval.tv_nsec = 0;\n"
13486
13487 #. type: Plain text
13488 #: build/C/man2/timerfd_create.2:526
13489 #, no-wrap
13490 msgid ""
13491 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
13492 "    if (fd == -1)\n"
13493 "        handle_error(\"timerfd_create\");\n"
13494 msgstr ""
13495 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
13496 "    if (fd == -1)\n"
13497 "        handle_error(\"timerfd_create\");\n"
13498
13499 #. type: Plain text
13500 #: build/C/man2/timerfd_create.2:529
13501 #, no-wrap
13502 msgid ""
13503 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
13504 "        handle_error(\"timerfd_settime\");\n"
13505 msgstr ""
13506 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
13507 "        handle_error(\"timerfd_settime\");\n"
13508
13509 #. type: Plain text
13510 #: build/C/man2/timerfd_create.2:532
13511 #, no-wrap
13512 msgid ""
13513 "    print_elapsed_time();\n"
13514 "    printf(\"timer started\\en\");\n"
13515 msgstr ""
13516 "    print_elapsed_time();\n"
13517 "    printf(\"timer started\\en\");\n"
13518
13519 #. type: Plain text
13520 #: build/C/man2/timerfd_create.2:537
13521 #, no-wrap
13522 msgid ""
13523 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
13524 "        s = read(fd, &exp, sizeof(uint64_t));\n"
13525 "        if (s != sizeof(uint64_t))\n"
13526 "            handle_error(\"read\");\n"
13527 msgstr ""
13528 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
13529 "        s = read(fd, &exp, sizeof(uint64_t));\n"
13530 "        if (s != sizeof(uint64_t))\n"
13531 "            handle_error(\"read\");\n"
13532
13533 #. type: Plain text
13534 #: build/C/man2/timerfd_create.2:544
13535 #, no-wrap
13536 msgid ""
13537 "        tot_exp += exp;\n"
13538 "        print_elapsed_time();\n"
13539 "        printf(\"read: %llu; total=%llu\\en\",\n"
13540 "                (unsigned long long) exp,\n"
13541 "                (unsigned long long) tot_exp);\n"
13542 "    }\n"
13543 msgstr ""
13544 "        tot_exp += exp;\n"
13545 "        print_elapsed_time();\n"
13546 "        printf(\"read: %llu; total=%llu\\en\",\n"
13547 "                (unsigned long long) exp,\n"
13548 "                (unsigned long long) tot_exp);\n"
13549 "    }\n"
13550
13551 #. type: Plain text
13552 #: build/C/man2/timerfd_create.2:560
13553 msgid ""
13554 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
13555 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), "
13556 "B<timer_settime>(2), B<epoll>(7), B<time>(7)"
13557 msgstr ""
13558 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
13559 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), "
13560 "B<timer_settime>(2), B<epoll>(7), B<time>(7)"
13561
13562 #. type: TH
13563 #: build/C/man2/tkill.2:29
13564 #, no-wrap
13565 msgid "TKILL"
13566 msgstr "TKILL"
13567
13568 #. type: Plain text
13569 #: build/C/man2/tkill.2:32
13570 msgid "tkill, tgkill - send a signal to a thread"
13571 msgstr "tkill, tgkill - スレッドにシグナルを送る"
13572
13573 #. type: Plain text
13574 #: build/C/man2/tkill.2:35
13575 #, no-wrap
13576 msgid "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
13577 msgstr "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
13578
13579 #. type: Plain text
13580 #: build/C/man2/tkill.2:37
13581 #, no-wrap
13582 msgid "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
13583 msgstr "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
13584
13585 #. type: Plain text
13586 #: build/C/man2/tkill.2:54
13587 msgid ""
13588 "B<tgkill>()  sends the signal I<sig> to the thread with the thread ID I<tid> "
13589 "in the thread group I<tgid>.  (By contrast, B<kill>(2)  can be used to send "
13590 "a signal only to a process (i.e., thread group)  as a whole, and the signal "
13591 "will be delivered to an arbitrary thread within that process.)"
13592 msgstr ""
13593 "B<tgkill>()  はスレッドグループ I<tgid> に属するスレッド ID が I<tid> のス"
13594 "レッドにシグナル I<sig> を送る。 (これに対し、 B<kill>(2)  は一つのプロセス "
13595 "(すなわち、スレッドグループ) にまとめてシグナルを 送るのにだけ利用できる。 "
13596 "B<kill>(2)  で送信されたシグナルはプロセス内の任意のスレッドに配送される。)"
13597
13598 #.  FIXME Maybe say something about the following:
13599 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=12889
13600 #.      Rich Felker <bugdal@aerifal.cx>
13601 #.      There is a race condition in pthread_kill: it is possible that,
13602 #.      between the time pthread_kill reads the pid/tid from the target
13603 #.      thread descriptor and the time it makes the tgkill syscall,
13604 #.      the target thread terminates and the same tid gets assigned
13605 #.      to a new thread in the same process.
13606 #.      (The tgkill syscall was designed to eliminate a similar race
13607 #.      condition in tkill, but it only succeeded in eliminating races
13608 #.      where the tid gets reused in a different process, and does not
13609 #.      help if the same tid gets assigned to a new thread in the
13610 #.      same process.)
13611 #.      The only solution I can see is to introduce a mutex that ensures
13612 #.      that a thread cannot exit while pthread_kill is being called on it.
13613 #.      Note that in most real-world situations, like almost all race
13614 #.      conditions, this one will be extremely rare. To make it
13615 #.      measurable, one could exhaust all but 1-2 available pid values,
13616 #.      possibly by lowering the max pid parameter in /proc, forcing
13617 #.      the same tid to be reused rapidly.
13618 #. type: Plain text
13619 #: build/C/man2/tkill.2:85
13620 msgid ""
13621 "B<tkill>()  is an obsolete predecessor to B<tgkill>().  It allows only the "
13622 "target thread ID to be specified, which may result in the wrong thread being "
13623 "signaled if a thread terminates and its thread ID is recycled.  Avoid using "
13624 "this system call."
13625 msgstr ""
13626 "B<tkill>()  はもう使われなくなった B<tgkill>()  の先祖である。 B<tkill>()  で"
13627 "はシグナルの送り先のスレッド ID しか指定できない。 そのため、スレッドが終了し"
13628 "て、そのスレッド ID が再利用される場合に、 意図しないスレッドにシグナルが送ら"
13629 "れる可能性がある。 このシステムコールの使用は避けること。"
13630
13631 #. type: Plain text
13632 #: build/C/man2/tkill.2:88
13633 msgid ""
13634 "These are the raw system call interfaces, meant for internal thread library "
13635 "use."
13636 msgstr ""
13637 "これらはシステムコールへの直接のインターフェースであり、 スレッドライブラリ内"
13638 "部での使用を意図したものである。"
13639
13640 #. type: Plain text
13641 #: build/C/man2/tkill.2:96
13642 msgid "An invalid thread ID, thread group ID, or signal was specified."
13643 msgstr "指定されたスレッド ID、スレッドグループ ID、シグナルが不正であった。"
13644
13645 #. type: Plain text
13646 #: build/C/man2/tkill.2:101
13647 msgid "Permission denied.  For the required permissions, see B<kill>(2)."
13648 msgstr ""
13649 "許可がなかった。どのような許可が必要かについては、 B<kill>(2)  を参照のこと。"
13650
13651 #. type: Plain text
13652 #: build/C/man2/tkill.2:104
13653 msgid "No process with the specified thread ID (and thread group ID) exists."
13654 msgstr ""
13655 "指定されたスレッドID (とスレッドグループID) を持つプロセスが存在しない。"
13656
13657 #. type: Plain text
13658 #: build/C/man2/tkill.2:109
13659 msgid ""
13660 "B<tkill>()  is supported since Linux 2.4.19 / 2.5.4.  B<tgkill>()  was added "
13661 "in Linux 2.5.75."
13662 msgstr ""
13663 "B<tkill>()  は Linux 2.4.19 / 2.5.4 以降でサポートされ、 B<tgkill>()  は "
13664 "Linux 2.5.75 で追加された。"
13665
13666 #. type: Plain text
13667 #: build/C/man2/tkill.2:115
13668 msgid ""
13669 "B<tkill>()  and B<tgkill>()  are Linux-specific and should not be used in "
13670 "programs that are intended to be portable."
13671 msgstr ""
13672 "B<tkill>()  と B<tgkill>()  は Linux 固有であり、 移植を想定したプログラムで"
13673 "は使用すべきではない。"
13674
13675 #. type: Plain text
13676 #: build/C/man2/tkill.2:121
13677 msgid ""
13678 "See the description of B<CLONE_THREAD> in B<clone>(2)  for an explanation of "
13679 "thread groups."
13680 msgstr ""
13681 "スレッドグループの説明については B<clone>(2)  の B<CLONE_THREAD> の説明を参照"
13682 "のこと。"
13683
13684 #. type: Plain text
13685 #: build/C/man2/tkill.2:124
13686 msgid ""
13687 "Glibc does not provide wrappers for these system calls; call them using "
13688 "B<syscall>(2)."
13689 msgstr ""
13690 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
13691 "B<syscall>(2)  を使って呼び出すこと。"
13692
13693 #. type: Plain text
13694 #: build/C/man2/tkill.2:129
13695 msgid "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
13696 msgstr "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
13697
13698 #. type: TH
13699 #: build/C/man2/wait.2:49
13700 #, no-wrap
13701 msgid "WAIT"
13702 msgstr "WAIT"
13703
13704 #. type: Plain text
13705 #: build/C/man2/wait.2:52
13706 msgid "wait, waitpid, waitid - wait for process to change state"
13707 msgstr "wait, waitpid, waitid - プロセスの状態変化を待つ"
13708
13709 #. type: Plain text
13710 #: build/C/man2/wait.2:54
13711 msgid "B<#include E<lt>sys/types.hE<gt>>"
13712 msgstr "B<#include E<lt>sys/types.hE<gt>>"
13713
13714 #. type: Plain text
13715 #: build/C/man2/wait.2:56
13716 msgid "B<#include E<lt>sys/wait.hE<gt>>"
13717 msgstr "B<#include E<lt>sys/wait.hE<gt>>"
13718
13719 #. type: Plain text
13720 #: build/C/man2/wait.2:58
13721 msgid "B<pid_t wait(int *>I<status>B<);>"
13722 msgstr "B<pid_t wait(int *>I<status>B<);>"
13723
13724 #. type: Plain text
13725 #: build/C/man2/wait.2:60
13726 msgid ""
13727 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
13728 msgstr ""
13729 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
13730
13731 #. type: Plain text
13732 #: build/C/man2/wait.2:65
13733 #, no-wrap
13734 msgid ""
13735 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, int >I<options>B<);>\n"
13736 "                /* This is the glibc and POSIX interface; see\n"
13737 "                   NOTES for information on the raw system call. */\n"
13738 msgstr ""
13739 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, int >I<options>B<);>\n"
13740 "                /* これは glibc と POSIX のインターフェイスである。\n"
13741 "                   生のシステムコールについての情報は「注意」の節を参照。 */\n"
13742
13743 #. type: Plain text
13744 #: build/C/man2/wait.2:74
13745 msgid "B<waitid>():"
13746 msgstr "B<waitid>():"
13747
13748 #. type: Plain text
13749 #: build/C/man2/wait.2:78
13750 msgid ""
13751 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13752 "_XOPEN_SOURCE_EXTENDED"
13753 msgstr ""
13754 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13755 "_XOPEN_SOURCE_EXTENDED"
13756
13757 #. type: Plain text
13758 #: build/C/man2/wait.2:93
13759 msgid ""
13760 "All of these system calls are used to wait for state changes in a child of "
13761 "the calling process, and obtain information about the child whose state has "
13762 "changed.  A state change is considered to be: the child terminated; the "
13763 "child was stopped by a signal; or the child was resumed by a signal.  In the "
13764 "case of a terminated child, performing a wait allows the system to release "
13765 "the resources associated with the child; if a wait is not performed, then "
13766 "the terminated child remains in a \"zombie\" state (see NOTES below)."
13767 msgstr ""
13768 "これらのシステムコールはいずれも、呼び出し元プロセスの子プロセスの 状態変化を"
13769 "待ち、状態が変化したその子プロセスの情報を取得するのに 使用される。 状態変化"
13770 "とは以下のいずれかである: 子プロセスの終了、シグナルによる子プロセスの停止、 "
13771 "シグナルによる子プロセスの再開。 子プロセスが終了した場合は、wait を実行する"
13772 "ことで、 システムがその子プロセスに関連するリソースを解放できるようになる。 "
13773 "wait が実行されなかった場合には、終了した子プロセスは 「ゾンビ」状態で残り続"
13774 "ける (下記の注意の章を参照のこと)。"
13775
13776 #. type: Plain text
13777 #: build/C/man2/wait.2:105
13778 msgid ""
13779 "If a child has already changed state, then these calls return immediately.  "
13780 "Otherwise, they block until either a child changes state or a signal handler "
13781 "interrupts the call (assuming that system calls are not automatically "
13782 "restarted using the B<SA_RESTART> flag of B<sigaction>(2)).  In the "
13783 "remainder of this page, a child whose state has changed and which has not "
13784 "yet been waited upon by one of these system calls is termed I<waitable>."
13785 msgstr ""
13786 "子プロセスの状態変化がすでに発生していた場合、これらのコールは すぐに復帰す"
13787 "る。それ以外の場合は、子プロセスの状態変化が起こるか、 シグナルハンドラーによ"
13788 "りシステムコールが中断されるまで、 停止 (block) する (後者は、 "
13789 "B<sigaction>(2)  の B<SA_RESTART> フラグによりシステムコールが自動的に再ス"
13790 "タートするようになっていない 場合の動作である)。 以下の説明では、状態変化が起"
13791 "こったがこれらのシステムコールのいずれかに よって待たれていない子プロセスを "
13792 "I<waitable> (待ち可能) と呼ぶ。"
13793
13794 #. type: SS
13795 #: build/C/man2/wait.2:105
13796 #, no-wrap
13797 msgid "wait() and waitpid()"
13798 msgstr "wait() と waitpid()"
13799
13800 #. type: Plain text
13801 #: build/C/man2/wait.2:113
13802 msgid ""
13803 "The B<wait>()  system call suspends execution of the calling process until "
13804 "one of its children terminates.  The call I<wait(&status)> is equivalent to:"
13805 msgstr ""
13806 "B<wait>()  システムコールは、子プロセスのいずれかが終了するまで 呼び出し元の"
13807 "プロセスの実行を一時停止する。 呼び出し I<wait(&status)> は以下と等価である:"
13808
13809 #. type: Plain text
13810 #: build/C/man2/wait.2:116
13811 #, no-wrap
13812 msgid "    waitpid(-1, &status, 0);\n"
13813 msgstr "    waitpid(-1, &status, 0);\n"
13814
13815 #. type: Plain text
13816 #: build/C/man2/wait.2:130
13817 msgid ""
13818 "The B<waitpid>()  system call suspends execution of the calling process "
13819 "until a child specified by I<pid> argument has changed state.  By default, "
13820 "B<waitpid>()  waits only for terminated children, but this behavior is "
13821 "modifiable via the I<options> argument, as described below."
13822 msgstr ""
13823 "B<waitpid>()  システムコールは、 I<pid> 引き数で指定した子プロセスの状態変化"
13824 "が起こるまで、 呼び出し元のプロセスの実行を一時停止する。デフォルトでは、 "
13825 "B<waitpid>()  は子プロセスの終了だけを待つが、この動作は I<options> 引き数に"
13826 "より変更可能である。"
13827
13828 #. type: Plain text
13829 #: build/C/man2/wait.2:134
13830 msgid "The value of I<pid> can be:"
13831 msgstr "I<pid> に指定できる値は以下の通り:"
13832
13833 #. type: IP
13834 #: build/C/man2/wait.2:134
13835 #, no-wrap
13836 msgid "E<lt> -1"
13837 msgstr "E<lt> -1"
13838
13839 #. type: Plain text
13840 #: build/C/man2/wait.2:138
13841 msgid ""
13842 "meaning wait for any child process whose process group ID is equal to the "
13843 "absolute value of I<pid>."
13844 msgstr ""
13845 "プロセスグループID が I<pid> の絶対値に等しい子プロセスのいずれかが終了するま"
13846 "でを待つ。"
13847
13848 #. type: IP
13849 #: build/C/man2/wait.2:138
13850 #, no-wrap
13851 msgid "-1"
13852 msgstr "-1"
13853
13854 #. type: Plain text
13855 #: build/C/man2/wait.2:140
13856 msgid "meaning wait for any child process."
13857 msgstr "子プロセスのどれかが終了するまで待つ。"
13858
13859 #. type: IP
13860 #: build/C/man2/wait.2:140
13861 #, no-wrap
13862 msgid "0"
13863 msgstr "0"
13864
13865 #. type: Plain text
13866 #: build/C/man2/wait.2:143
13867 msgid ""
13868 "meaning wait for any child process whose process group ID is equal to that "
13869 "of the calling process."
13870 msgstr ""
13871 "プロセスグループID が呼び出したプロセスのものと等しい 子プロセスを待つ。"
13872
13873 #. type: IP
13874 #: build/C/man2/wait.2:143
13875 #, no-wrap
13876 msgid "E<gt> 0"
13877 msgstr "E<gt> 0"
13878
13879 #. type: Plain text
13880 #: build/C/man2/wait.2:147
13881 msgid ""
13882 "meaning wait for the child whose process ID is equal to the value of I<pid>."
13883 msgstr "プロセスID が I<pid> に等しい子プロセスを待つ。"
13884
13885 #. type: Plain text
13886 #: build/C/man2/wait.2:151
13887 msgid ""
13888 "The value of I<options> is an OR of zero or more of the following constants:"
13889 msgstr "I<options> の値は次の定数の 0 個以上の論理和である:"
13890
13891 #. type: TP
13892 #: build/C/man2/wait.2:151 build/C/man2/wait.2:280
13893 #, no-wrap
13894 msgid "B<WNOHANG>"
13895 msgstr "B<WNOHANG>"
13896
13897 #. type: Plain text
13898 #: build/C/man2/wait.2:154
13899 msgid "return immediately if no child has exited."
13900 msgstr "状態変化が起こった子プロセスがない場合にすぐに復帰する。"
13901
13902 #. type: TP
13903 #: build/C/man2/wait.2:154
13904 #, no-wrap
13905 msgid "B<WUNTRACED>"
13906 msgstr "B<WUNTRACED>"
13907
13908 #. type: Plain text
13909 #: build/C/man2/wait.2:163
13910 msgid ""
13911 "also return if a child has stopped (but not traced via B<ptrace>(2)).  "
13912 "Status for I<traced> children which have stopped is provided even if this "
13913 "option is not specified."
13914 msgstr ""
13915 "子プロセスが停止した場合にも復帰する (子プロセスが B<ptrace>(2)  でトレースさ"
13916 "れている場合は除く)。 このオプションが指定されていない場合でも、停止したプロ"
13917 "セスが 「トレース (traced)」されていれば、子プロセスの状態が報告される。"
13918
13919 #. type: TP
13920 #: build/C/man2/wait.2:163
13921 #, no-wrap
13922 msgid "B<WCONTINUED> (since Linux 2.6.10)"
13923 msgstr "B<WCONTINUED> (Linux 2.6.10 以降)"
13924
13925 #. type: Plain text
13926 #: build/C/man2/wait.2:167
13927 msgid ""
13928 "also return if a stopped child has been resumed by delivery of B<SIGCONT>."
13929 msgstr "停止した子プロセスが B<SIGCONT> の配送により再開した場合にも復帰する。"
13930
13931 #. type: Plain text
13932 #: build/C/man2/wait.2:169
13933 msgid "(For Linux-only options, see below.)"
13934 msgstr "(Linux 専用オプションについては後述する)"
13935
13936 #. type: Plain text
13937 #: build/C/man2/wait.2:183
13938 msgid ""
13939 "If I<status> is not NULL, B<wait>()  and B<waitpid>()  store status "
13940 "information in the I<int> to which it points.  This integer can be inspected "
13941 "with the following macros (which take the integer itself as an argument, not "
13942 "a pointer to it, as is done in B<wait>()  and B<waitpid>()!):"
13943 msgstr ""
13944 "I<status> が NULL でなければ、 B<wait>()  や B<waitpid>()  は I<status> で指"
13945 "す I<int> に状態情報を格納する。 この整数は以下のマクロを使って検査できる。 "
13946 "(これらのマクロの引き数には、 B<wait>()  や B<waitpid>()  が書き込んだ整数そ"
13947 "のものを指定する。ポインターではない!)"
13948
13949 #. type: TP
13950 #: build/C/man2/wait.2:183
13951 #, no-wrap
13952 msgid "B<WIFEXITED(>I<status>B<)>"
13953 msgstr "B<WIFEXITED(>I<status>B<)>"
13954
13955 #. type: Plain text
13956 #: build/C/man2/wait.2:191
13957 msgid ""
13958 "returns true if the child terminated normally, that is, by calling "
13959 "B<exit>(3)  or B<_exit>(2), or by returning from main()."
13960 msgstr ""
13961 "子プロセスが正常に終了した場合に真を返す。 「正常に」とは、 B<exit>(3)  か "
13962 "B<_exit>(2)  が呼び出された場合、もしくは main() から復帰した場合である。"
13963
13964 #. type: TP
13965 #: build/C/man2/wait.2:191
13966 #, no-wrap
13967 msgid "B<WEXITSTATUS(>I<status>B<)>"
13968 msgstr "B<WEXITSTATUS(>I<status>B<)>"
13969
13970 #. type: Plain text
13971 #: build/C/man2/wait.2:204
13972 msgid ""
13973 "returns the exit status of the child.  This consists of the least "
13974 "significant 8 bits of the I<status> argument that the child specified in a "
13975 "call to B<exit>(3)  or B<_exit>(2)  or as the argument for a return "
13976 "statement in main().  This macro should be employed only if B<WIFEXITED> "
13977 "returned true."
13978 msgstr ""
13979 "子プロセスの終了ステータスを返す。 終了ステータスは I<status> 引き数の下位 8"
13980 "ビットで構成されており、 B<exit>(3)  や B<_exit>(2)  の呼び出し時に渡された"
13981 "値、もしくは main() の return 文の 引き数として指定された値である。 このマク"
13982 "ロを使用するのは B<WIFEXITED> が真を返した場合だけにすべきである。"
13983
13984 #. type: TP
13985 #: build/C/man2/wait.2:204
13986 #, no-wrap
13987 msgid "B<WIFSIGNALED(>I<status>B<)>"
13988 msgstr "B<WIFSIGNALED(>I<status>B<)>"
13989
13990 #. type: Plain text
13991 #: build/C/man2/wait.2:207
13992 msgid "returns true if the child process was terminated by a signal."
13993 msgstr "子プロセスがシグナルにより終了した場合に真を返す。"
13994
13995 #. type: TP
13996 #: build/C/man2/wait.2:207
13997 #, no-wrap
13998 msgid "B<WTERMSIG(>I<status>B<)>"
13999 msgstr "B<WTERMSIG(>I<status>B<)>"
14000
14001 #. type: Plain text
14002 #: build/C/man2/wait.2:214
14003 msgid ""
14004 "returns the number of the signal that caused the child process to "
14005 "terminate.  This macro should be employed only if B<WIFSIGNALED> returned "
14006 "true."
14007 msgstr ""
14008 "子プロセス終了の原因となったシグナルの番号を返す。 このマクロを使用するのは "
14009 "B<WIFSIGNALED> が真を返した場合だけにすべきである。"
14010
14011 #. type: TP
14012 #: build/C/man2/wait.2:214
14013 #, no-wrap
14014 msgid "B<WCOREDUMP(>I<status>B<)>"
14015 msgstr "B<WCOREDUMP(>I<status>B<)>"
14016
14017 #. type: Plain text
14018 #: build/C/man2/wait.2:223
14019 msgid ""
14020 "returns true if the child produced a core dump.  This macro should be "
14021 "employed only if B<WIFSIGNALED> returned true.  This macro is not specified "
14022 "in POSIX.1-2001 and is not available on some UNIX implementations (e.g., "
14023 "AIX, SunOS).  Only use this enclosed in #ifdef WCOREDUMP ... #endif."
14024 msgstr ""
14025 "子プロセスがコアダンプを生成した場合に真を返す。 このマクロを使用するのは "
14026 "B<WIFSIGNALED> が真を返した場合だけにすべきである。 このマクロは "
14027 "POSIX.1-2001 では規定されておらず、 (AIX, SunOS などの) いくつかの UNIX の実"
14028 "装では利用できない。 必ず #ifdef WCOREDUMP ... #endif で括って使用すること。"
14029
14030 #. type: TP
14031 #: build/C/man2/wait.2:223
14032 #, no-wrap
14033 msgid "B<WIFSTOPPED(>I<status>B<)>"
14034 msgstr "B<WIFSTOPPED(>I<status>B<)>"
14035
14036 #. type: Plain text
14037 #: build/C/man2/wait.2:230
14038 msgid ""
14039 "returns true if the child process was stopped by delivery of a signal; this "
14040 "is possible only if the call was done using B<WUNTRACED> or when the child "
14041 "is being traced (see B<ptrace>(2))."
14042 msgstr ""
14043 "子プロセスがシグナルの配送により停止した場合に真を返す。 これが真になるのは、"
14044 "システムコールが B<WUNTRACED> を指定して呼び出された場合か、子プロセスがト"
14045 "レースされている場合 (B<ptrace>(2)  参照) だけである。"
14046
14047 #. type: TP
14048 #: build/C/man2/wait.2:230
14049 #, no-wrap
14050 msgid "B<WSTOPSIG(>I<status>B<)>"
14051 msgstr "B<WSTOPSIG(>I<status>B<)>"
14052
14053 #. type: Plain text
14054 #: build/C/man2/wait.2:236
14055 msgid ""
14056 "returns the number of the signal which caused the child to stop.  This macro "
14057 "should be employed only if B<WIFSTOPPED> returned true."
14058 msgstr ""
14059 "子プロセスを停止させたシグナルの番号を返す。 このマクロを使用するのは "
14060 "B<WIFSTOPPED> が 0 以外を返した場合だけにすべきである。"
14061
14062 #. type: TP
14063 #: build/C/man2/wait.2:236
14064 #, no-wrap
14065 msgid "B<WIFCONTINUED(>I<status>B<)>"
14066 msgstr "B<WIFCONTINUED(>I<status>B<)>"
14067
14068 #. type: Plain text
14069 #: build/C/man2/wait.2:241
14070 msgid ""
14071 "(since Linux 2.6.10)  returns true if the child process was resumed by "
14072 "delivery of B<SIGCONT>."
14073 msgstr ""
14074 "(Linux 2.6.10 以降)  子プロセスが B<SIGCONT> の配送により再開した場合に真を返"
14075 "す。"
14076
14077 #. type: SS
14078 #: build/C/man2/wait.2:241
14079 #, no-wrap
14080 msgid "waitid()"
14081 msgstr "waitid()"
14082
14083 #. type: Plain text
14084 #: build/C/man2/wait.2:246
14085 msgid ""
14086 "The B<waitid>()  system call (available since Linux 2.6.9) provides more "
14087 "precise control over which child state changes to wait for."
14088 msgstr ""
14089 "B<waitid>()  システムコール (Linux 2.6.9 以降で利用可能) を使うと、 子プロセ"
14090 "スのどの状態変化を待つかについてより細かな制御ができる。"
14091
14092 #. type: Plain text
14093 #: build/C/man2/wait.2:252
14094 msgid ""
14095 "The I<idtype> and I<id> arguments select the child(ren) to wait for, as "
14096 "follows:"
14097 msgstr "引き数 I<idtype> と I<id> でどの子プロセスを待つかを選択する:"
14098
14099 #. type: IP
14100 #: build/C/man2/wait.2:252
14101 #, no-wrap
14102 msgid "I<idtype> == B<P_PID>"
14103 msgstr "I<idtype> == B<P_PID>"
14104
14105 #. type: Plain text
14106 #: build/C/man2/wait.2:255
14107 msgid "Wait for the child whose process ID matches I<id>."
14108 msgstr "プロセスID が I<id> と一致する子プロセスを待つ。"
14109
14110 #. type: IP
14111 #: build/C/man2/wait.2:255
14112 #, no-wrap
14113 msgid "I<idtype> == B<P_PGID>"
14114 msgstr "I<idtype> == B<P_PGID>"
14115
14116 #. type: Plain text
14117 #: build/C/man2/wait.2:258
14118 msgid "Wait for any child whose process group ID matches I<id>."
14119 msgstr "プロセスグループID が I<id> と一致する子プロセスを待つ。"
14120
14121 #. type: IP
14122 #: build/C/man2/wait.2:258
14123 #, no-wrap
14124 msgid "I<idtype> == B<P_ALL>"
14125 msgstr "I<idtype> == B<P_ALL>"
14126
14127 #. type: Plain text
14128 #: build/C/man2/wait.2:262
14129 msgid "Wait for any child; I<id> is ignored."
14130 msgstr "子プロセス全部を対象に待つ。 I<id> は無視される。"
14131
14132 #. type: Plain text
14133 #: build/C/man2/wait.2:266
14134 msgid ""
14135 "The child state changes to wait for are specified by ORing one or more of "
14136 "the following flags in I<options>:"
14137 msgstr ""
14138 "子プロセスのどの状態変化を待つかは以下のフラグで指定する (I<options> には 1個"
14139 "以上のフラグの論理和をとって指定する):"
14140
14141 #. type: TP
14142 #: build/C/man2/wait.2:266
14143 #, no-wrap
14144 msgid "B<WEXITED>"
14145 msgstr "B<WEXITED>"
14146
14147 #. type: Plain text
14148 #: build/C/man2/wait.2:269
14149 msgid "Wait for children that have terminated."
14150 msgstr "子プロセスの終了を待つ。"
14151
14152 #. type: TP
14153 #: build/C/man2/wait.2:269
14154 #, no-wrap
14155 msgid "B<WSTOPPED>"
14156 msgstr "B<WSTOPPED>"
14157
14158 #. type: Plain text
14159 #: build/C/man2/wait.2:272
14160 msgid "Wait for children that have been stopped by delivery of a signal."
14161 msgstr "子プロセスがシグナルの配送により停止するのを待つ。"
14162
14163 #. type: TP
14164 #: build/C/man2/wait.2:272
14165 #, no-wrap
14166 msgid "B<WCONTINUED>"
14167 msgstr "B<WCONTINUED>"
14168
14169 #. type: Plain text
14170 #: build/C/man2/wait.2:277
14171 msgid ""
14172 "Wait for (previously stopped) children that have been resumed by delivery of "
14173 "B<SIGCONT>."
14174 msgstr "(停止していた) 子プロセスが B<SIGCONT> が配送されて再開するのを待つ。"
14175
14176 #. type: Plain text
14177 #: build/C/man2/wait.2:280
14178 msgid "The following flags may additionally be ORed in I<options>:"
14179 msgstr "さらに以下のフラグを論理和の形で I<options> に指定できる:"
14180
14181 #. type: Plain text
14182 #: build/C/man2/wait.2:284
14183 msgid "As for B<waitpid>()."
14184 msgstr "B<waitpid>()  と同様。"
14185
14186 #. type: TP
14187 #: build/C/man2/wait.2:284
14188 #, no-wrap
14189 msgid "B<WNOWAIT>"
14190 msgstr "B<WNOWAIT>"
14191
14192 #. type: Plain text
14193 #: build/C/man2/wait.2:288
14194 msgid ""
14195 "Leave the child in a waitable state; a later wait call can be used to again "
14196 "retrieve the child status information."
14197 msgstr ""
14198 "waitable 状態のプロセスをそのままにする。この後で wait コールを 使って、同じ"
14199 "子プロセスの状態情報をもう一度取得することができる。"
14200
14201 #. type: Plain text
14202 #: build/C/man2/wait.2:295
14203 msgid ""
14204 "Upon successful return, B<waitid>()  fills in the following fields of the "
14205 "I<siginfo_t> structure pointed to by I<infop>:"
14206 msgstr ""
14207 "成功した場合には、 B<waitid>()  は I<infop> が指す I<siginfo_t> 構造体の以下"
14208 "のフィールドを設定する:"
14209
14210 #. type: Plain text
14211 #: build/C/man2/wait.2:298
14212 msgid "The process ID of the child."
14213 msgstr "子プロセスのプロセスID。"
14214
14215 #. type: Plain text
14216 #: build/C/man2/wait.2:302
14217 msgid ""
14218 "The real user ID of the child.  (This field is not set on most other "
14219 "implementations.)"
14220 msgstr ""
14221 "子プロセスの実ユーザーID (このフィールドは他のほとんどの実装では設定されな"
14222 "い)。"
14223
14224 #. type: Plain text
14225 #: build/C/man2/wait.2:306
14226 msgid "Always set to B<SIGCHLD>."
14227 msgstr "常に B<SIGCHLD> が設定される。"
14228
14229 #. type: TP
14230 #: build/C/man2/wait.2:306
14231 #, no-wrap
14232 msgid "I<si_status>"
14233 msgstr "I<si_status>"
14234
14235 #. type: Plain text
14236 #: build/C/man2/wait.2:316
14237 msgid ""
14238 "Either the exit status of the child, as given to B<_exit>(2)  (or "
14239 "B<exit>(3)), or the signal that caused the child to terminate, stop, or "
14240 "continue.  The I<si_code> field can be used to determine how to interpret "
14241 "this field."
14242 msgstr ""
14243 "B<_exit>(2)  (か B<exit>(3))  に指定された子プロセスの終了ステータス、もしく"
14244 "は 子プロセスの終了、停止、再開の原因となったシグナルが設定される。 この"
14245 "フィールドをどう解釈するかは、 I<si_code> フィールドを参照して決めることがで"
14246 "きる。"
14247
14248 #. type: Plain text
14249 #: build/C/man2/wait.2:333
14250 msgid ""
14251 "Set to one of: B<CLD_EXITED> (child called B<_exit>(2)); B<CLD_KILLED> "
14252 "(child killed by signal); B<CLD_DUMPED> (child killed by signal, and dumped "
14253 "core); B<CLD_STOPPED> (child stopped by signal); B<CLD_TRAPPED> (traced "
14254 "child has trapped); or B<CLD_CONTINUED> (child continued by B<SIGCONT>)."
14255 msgstr ""
14256 "以下のいずれかが設定される: B<CLD_EXITED> (子プロセスが B<_exit>(2)  を呼び出"
14257 "した); B<CLD_KILLED> (シグナルにより子プロセスが kill された); B<CLD_DUMPED> "
14258 "(シグナルにより子プロセスが kill され、コアダンプが行われた); B<CLD_STOPPED> "
14259 "(シグナルにより子プロセスが停止した); B<CLD_TRAPPED> (トレースされていた子プ"
14260 "ロセスがトラップを受信した); B<CLD_CONTINUED> (B<SIGCONT> により子プロセスが"
14261 "再開された)。"
14262
14263 #.  POSIX.1-2001 leaves this possibility unspecified; most
14264 #.  implementations (including Linux) zero out the structure
14265 #.  in this case, but at least one implementation (AIX 5.1)
14266 #.  does not -- MTK Nov 04
14267 #. type: Plain text
14268 #: build/C/man2/wait.2:355
14269 msgid ""
14270 "If B<WNOHANG> was specified in I<options> and there were no children in a "
14271 "waitable state, then B<waitid>()  returns 0 immediately and the state of the "
14272 "I<siginfo_t> structure pointed to by I<infop> is unspecified.  To "
14273 "distinguish this case from that where a child was in a waitable state, zero "
14274 "out the I<si_pid> field before the call and check for a nonzero value in "
14275 "this field after the call returns."
14276 msgstr ""
14277 "B<WNOHANG> が I<options> に指定されていて、 waitable 状態の子プロセスがなかっ"
14278 "た場合には、 B<waitid>()  はすぐに 0 を返す。このとき、 I<infop> が指す "
14279 "I<siginfo_t> 構造体の内容は不定である。 この場合を waitable 状態の子プロセス"
14280 "があった場合と区別するには、 B<waitid>()  を呼び出す前に I<si_pid> を 0 にし"
14281 "ておき、コールが復帰した後でこのフィールドが 0 以外の値かどうか をチェックす"
14282 "ればよい。"
14283
14284 #. type: Plain text
14285 #: build/C/man2/wait.2:359
14286 msgid ""
14287 "B<wait>(): on success, returns the process ID of the terminated child; on "
14288 "error, -1 is returned."
14289 msgstr ""
14290 "B<wait>(): 成功すると、終了した子プロセスのプロセスID を返す。 エラーの場合 "
14291 "-1 を返す。"
14292
14293 #. type: Plain text
14294 #: build/C/man2/wait.2:368
14295 msgid ""
14296 "B<waitpid>(): on success, returns the process ID of the child whose state "
14297 "has changed; if B<WNOHANG> was specified and one or more child(ren) "
14298 "specified by I<pid> exist, but have not yet changed state, then 0 is "
14299 "returned.  On error, -1 is returned."
14300 msgstr ""
14301 "B<waitpid>(): 成功すると、状態が変化した子プロセスのプロセスID を返す。 "
14302 "B<WNOHANG> が指定されていて、 I<pid> で指示された子プロセスが一つ以上存在する"
14303 "が、どの子プロセスでも 状態変化が起こっていなかった場合は、 0 を返す。 エラー"
14304 "の場合 -1 を返す。"
14305
14306 #.  FIXME As reported by Vegard Nossum, if infop is NULL, then waitid()
14307 #.  returns the PID of the child.  Either this is a bug, or it is intended
14308 #.  behavior that needs to be documented.  See my Jan 2009 LKML mail
14309 #.  "waitid() return value strangeness when infop is NULL".
14310 #. type: Plain text
14311 #: build/C/man2/wait.2:381
14312 msgid ""
14313 "B<waitid>(): returns 0 on success or if B<WNOHANG> was specified and no "
14314 "child(ren) specified by I<id> has yet changed state; on error, -1 is "
14315 "returned."
14316 msgstr ""
14317 "B<waitid>(): 成功すると 0 を返す。 B<WNOHANG> が指定されていて、 I<pid> で指"
14318 "示された子プロセスで状態変化が起こっていなかった場合にも 0 を返す。"
14319
14320 #. type: Plain text
14321 #: build/C/man2/wait.2:385
14322 msgid ""
14323 "Each of these calls sets I<errno> to an appropriate value in the case of an "
14324 "error."
14325 msgstr ""
14326 "エラーの場合 -1 を返す。 エラーの場合、これらのシステムコールはいずれも "
14327 "I<errno> に適切な値を設定する。"
14328
14329 #. type: TP
14330 #: build/C/man2/wait.2:386 build/C/man2/wait.2:391
14331 #, no-wrap
14332 msgid "B<ECHILD>"
14333 msgstr "B<ECHILD>"
14334
14335 #. type: Plain text
14336 #: build/C/man2/wait.2:391
14337 msgid ""
14338 "(for B<wait>())  The calling process does not have any unwaited-for children."
14339 msgstr ""
14340 "(B<wait>()  の場合)  呼び出し元プロセスには、wait を行っていない子プロセスは"
14341 "ない。"
14342
14343 #. type: Plain text
14344 #: build/C/man2/wait.2:411
14345 msgid ""
14346 "(for B<waitpid>()  or B<waitid>())  The process specified by I<pid> "
14347 "(B<waitpid>())  or I<idtype> and I<id> (B<waitid>())  does not exist or is "
14348 "not a child of the calling process.  (This can happen for one's own child if "
14349 "the action for B<SIGCHLD> is set to B<SIG_IGN>.  See also the I<Linux Notes> "
14350 "section about threads.)"
14351 msgstr ""
14352 "(B<waitpid>()  か B<waitid>()  の場合)  I<pid> (B<waitpid>())  か I<idtype> "
14353 "と I<id> (B<waitid>())  で指定したプロセスが存在しないか、呼び出し元プロセス"
14354 "の子プロセスでない (B<SIGCHLD> の動作に B<SIG_IGN> を設定した場合には、自分自"
14355 "身の子プロセスでも起こりうる。 スレッドに関しては「Linux での注意」の節も参照"
14356 "すること)。"
14357
14358 #. type: Plain text
14359 #: build/C/man2/wait.2:418
14360 msgid ""
14361 "B<WNOHANG> was not set and an unblocked signal or a B<SIGCHLD> was caught; "
14362 "see B<signal>(7)."
14363 msgstr ""
14364 "B<WNOHANG> が設定されておらず、禁止 (block) されていないシグナルや "
14365 "B<SIGCHLD> を受信した。 B<signal>(7)  参照。"
14366
14367 #. type: Plain text
14368 #: build/C/man2/wait.2:423
14369 msgid "The I<options> argument was invalid."
14370 msgstr "I<options> 引き数が不正である。"
14371
14372 #. type: Plain text
14373 #: build/C/man2/wait.2:438
14374 msgid ""
14375 "A child that terminates, but has not been waited for becomes a \"zombie\".  "
14376 "The kernel maintains a minimal set of information about the zombie process "
14377 "(PID, termination status, resource usage information)  in order to allow the "
14378 "parent to later perform a wait to obtain information about the child.  As "
14379 "long as a zombie is not removed from the system via a wait, it will consume "
14380 "a slot in the kernel process table, and if this table fills, it will not be "
14381 "possible to create further processes.  If a parent process terminates, then "
14382 "its \"zombie\" children (if any)  are adopted by B<init>(1), which "
14383 "automatically performs a wait to remove the zombies."
14384 msgstr ""
14385 "終了したが、wait されていない子プロセスは「ゾンビ」になる。 後で親プロセスが "
14386 "wait を実行して子プロセスについての情報を取得できるように、 カーネルはゾンビ"
14387 "プロセスについて最小限の情報 (PID、終了ステータス、 リソース使用状況) を保持"
14388 "する。 ゾンビプロセスは、 wait によってシステムから削除されない限り、 カーネ"
14389 "ルのプロセステーブルの 1 エントリーを消費する。このプロセステーブルが 一杯に"
14390 "なると、新たにプロセスを作ることができなくなる。 親プロセスが終了すると、その"
14391 "親プロセスの「ゾンビ」の 子プロセスは (もしあれば)  B<init>(1)  の養子とな"
14392 "る。 B<init>(1)  は wait を自動的に実行し、ゾンビを削除する。"
14393
14394 #. type: Plain text
14395 #: build/C/man2/wait.2:467
14396 msgid ""
14397 "POSIX.1-2001 specifies that if the disposition of B<SIGCHLD> is set to "
14398 "B<SIG_IGN> or the B<SA_NOCLDWAIT> flag is set for B<SIGCHLD> (see "
14399 "B<sigaction>(2)), then children that terminate do not become zombies and a "
14400 "call to B<wait>()  or B<waitpid>()  will block until all children have "
14401 "terminated, and then fail with I<errno> set to B<ECHILD>.  (The original "
14402 "POSIX standard left the behavior of setting B<SIGCHLD> to B<SIG_IGN> "
14403 "unspecified.  Note that even though the default disposition of B<SIGCHLD> is "
14404 "\"ignore\", explicitly setting the disposition to B<SIG_IGN> results in "
14405 "different treatment of zombie process children.)"
14406 msgstr ""
14407 "POSIX.1-2001 では以下のように規定されている。 B<SIGCHLD> の動作が B<SIG_IGN> "
14408 "に設定されたか、 B<SIGCHLD> に対して B<SA_NOCLDWAIT> フラグが設定された場合 "
14409 "(B<sigaction>(2)  参照)、終了した子プロセスはゾンビにはならず、 B<wait>()  "
14410 "や B<waitpid>()  の呼び出しは全ての子プロセスが終了するまで停止し、 子プロセ"
14411 "スが全部終了した後 I<errno> に B<ECHILD> を設定して失敗する。 (もともとの "
14412 "POSIX 標準は B<SIGCHLD> に B<SIG_IGN> を設定した場合の振る舞いを未規定のまま"
14413 "にしている。 B<SIGCHLD> のデフォルトの動作が「無視」であるにもかかわらず、 "
14414 "B<SIGCHLD> の動作として B<SIG_IGN> を明示的に設定した場合にはゾンビプロセスの"
14415 "子プロセスの扱いが 異なる点に注意すること。)"
14416
14417 #. type: Plain text
14418 #: build/C/man2/wait.2:480
14419 msgid ""
14420 "Linux 2.6 conforms to the POSIX requirements.  However, Linux 2.4 (and "
14421 "earlier) does not: if a B<wait>()  or B<waitpid>()  call is made while "
14422 "B<SIGCHLD> is being ignored, the call behaves just as though B<SIGCHLD> were "
14423 "not being ignored, that is, the call blocks until the next child terminates "
14424 "and then returns the process ID and status of that child."
14425 msgstr ""
14426 "Linux 2.6 はこの仕様に準拠している。 しかし、Linux 2.4 (とそれ以前のバージョ"
14427 "ン) はそうではない: B<SIGCHLD> が無視される状態で B<wait>()  または "
14428 "B<waitpid>()  が呼び出された場合、 B<SIGCHLD> が無視されていないかのように振"
14429 "る舞う。 つまり、呼び出しによって次の子プロセスの終了までブロックされ、 終了"
14430 "した子プロセスの PID と状態が返される。"
14431
14432 #. type: Plain text
14433 #: build/C/man2/wait.2:496
14434 msgid ""
14435 "In the Linux kernel, a kernel-scheduled thread is not a distinct construct "
14436 "from a process.  Instead, a thread is simply a process that is created using "
14437 "the Linux-unique B<clone>(2)  system call; other routines such as the "
14438 "portable B<pthread_create>(3)  call are implemented using B<clone>(2).  "
14439 "Before Linux 2.4, a thread was just a special case of a process, and as a "
14440 "consequence one thread could not wait on the children of another thread, "
14441 "even when the latter belongs to the same thread group.  However, POSIX "
14442 "prescribes such functionality, and since Linux 2.4 a thread can, and by "
14443 "default will, wait on children of other threads in the same thread group."
14444 msgstr ""
14445 "Linux カーネルでは、カーネルによってスケジュールされるスレッドは プロセスと明"
14446 "確に区別できる構成要素ではない。スレッドは Linux 固有の B<clone>(2)  システム"
14447 "コールを使用して生成されるプロセスに過ぎない。 移植性のある "
14448 "B<pthread_create>(3)  コールのような他のルーチンは B<clone>(2)  を使用して実"
14449 "装されている; これらでは B<waitid>()  を使うことはできない。 Linux 2.4 より前"
14450 "では、スレッドは単に特殊なプロセスであったので、 例え同じスレッドグループで"
14451 "あっても、 あるスレッドが別のスレッドの子プロセスが終了するのを待つことは出来"
14452 "なかった。 しかし、POSIX ではこのような機能を規定しており、 Linux 2.4 以降で"
14453 "は、あるスレッドが同じスレッドグループの他のスレッドの 子プロセスが終了するの"
14454 "を待つことができるようになった。 そして将来はこれがデフォルトの動作になるであ"
14455 "ろう。"
14456
14457 #. type: Plain text
14458 #: build/C/man2/wait.2:503
14459 msgid ""
14460 "The following Linux-specific I<options> are for use with children created "
14461 "using B<clone>(2); they cannot be used with B<waitid>():"
14462 msgstr ""
14463 "B<clone>(2)  を用いて作られた子プロセスには、以下の Linux 固有の I<options> "
14464 "が使用できる。"
14465
14466 #. type: TP
14467 #: build/C/man2/wait.2:503
14468 #, no-wrap
14469 msgid "B<__WCLONE>"
14470 msgstr "B<__WCLONE>"
14471
14472 #.  since 0.99pl10
14473 #. type: Plain text
14474 #: build/C/man2/wait.2:514
14475 msgid ""
14476 "Wait for \"clone\" children only.  If omitted, then wait for \"non-clone\" "
14477 "children only.  (A \"clone\" child is one which delivers no signal, or a "
14478 "signal other than B<SIGCHLD> to its parent upon termination.)  This option "
14479 "is ignored if B<__WALL> is also specified."
14480 msgstr ""
14481 "\"clone\" な子プロセスだけを待つ。 指定されなかった場合は非 \"clone\" な子プ"
14482 "ロセスだけを待つ (\"clone\" な子プロセスは、終了時に親プロセスへ全くシグナル"
14483 "を送らないか、 B<SIGCHLD> 以外のシグナルを送る)。 このオプションは B<__WALL> "
14484 "も指定された場合は無視される。"
14485
14486 #. type: TP
14487 #: build/C/man2/wait.2:514
14488 #, no-wrap
14489 msgid "B<__WALL> (since Linux 2.4)"
14490 msgstr "B<__WALL> (Linux 2.4 以降)"
14491
14492 #.  since patch-2.3.48
14493 #. type: Plain text
14494 #: build/C/man2/wait.2:519
14495 msgid "Wait for all children, regardless of type (\"clone\" or \"non-clone\")."
14496 msgstr "\"clone\" であるかないかに関わらず、 全ての子プロセスを待つ。"
14497
14498 #. type: TP
14499 #: build/C/man2/wait.2:519
14500 #, no-wrap
14501 msgid "B<__WNOTHREAD> (since Linux 2.4)"
14502 msgstr "B<__WNOTHREAD> (Linux 2.4 以降)"
14503
14504 #.  since patch-2.4.0-test8
14505 #. type: Plain text
14506 #: build/C/man2/wait.2:525
14507 msgid ""
14508 "Do not wait for children of other threads in the same thread group.  This "
14509 "was the default before Linux 2.4."
14510 msgstr ""
14511 "同じスレッドグループの他のスレッドの子プロセスは待たない。 Linux 2.4 より前で"
14512 "はデフォルトであった。"
14513
14514 #. type: Plain text
14515 #: build/C/man2/wait.2:537
14516 msgid ""
14517 "The raw B<waitid>()  system call takes a fifth argument, of type I<struct "
14518 "rusage\\ *>.  If this argument is non-NULL, then it is used to return "
14519 "resource usage information about the child, in the same manner as "
14520 "B<wait4>(2).  See B<getrusage>(2)  for details."
14521 msgstr ""
14522 "生の B<waitid>() システムコールは I<struct rusage\\ *> 型の第 5 引数を取る。 "
14523 "この引数が NULL 以外の場合、 この引数が子プロセスのリソース使用状況を返すのに"
14524 "使用される。 これは B<wait4>(2) と同じ方法である。 詳細は B<getrusage>(2) を"
14525 "参照。"
14526
14527 #. type: Plain text
14528 #: build/C/man2/wait.2:552
14529 msgid ""
14530 "According to POSIX.1-2008, an application calling B<waitid>()  must ensure "
14531 "that I<infop> points to a I<siginfo_t> structure (i.e., that it is a non-"
14532 "null pointer).  On Linux, if I<infop> is NULL, B<waitid>()  succeeds, and "
14533 "returns the process ID of the waited-for child.  Applications should avoid "
14534 "relying on this inconsistent, nonstandard, and unnecessary feature."
14535 msgstr ""
14536 "POSIX.1-2008 によると、 B<waitid>() を呼び出すアプリケーションは、 I<infop> "
14537 "が I<siginfo_t> 構造体を指していること (つまり I<infop> が NULL でないポイン"
14538 "ターであること) を保証しなければならない。 Linux では、 I<infop> が NULL の場"
14539 "合、 B<waitid>() は成功し、wait している子プロセスのプロセス ID を返す。 アプ"
14540 "リケーションは、この食い違った、非標準で、不必要な機能に依存しないようにすべ"
14541 "きである。"
14542
14543 #.  fork.2 refers to this example program.
14544 #. type: Plain text
14545 #: build/C/man2/wait.2:569
14546 msgid ""
14547 "The following program demonstrates the use of B<fork>(2)  and B<waitpid>().  "
14548 "The program creates a child process.  If no command-line argument is "
14549 "supplied to the program, then the child suspends its execution using "
14550 "B<pause>(2), to allow the user to send signals to the child.  Otherwise, if "
14551 "a command-line argument is supplied, then the child exits immediately, using "
14552 "the integer supplied on the command line as the exit status.  The parent "
14553 "process executes a loop that monitors the child using B<waitpid>(), and uses "
14554 "the W*() macros described above to analyze the wait status value."
14555 msgstr ""
14556 "以下のプログラムは、 B<fork>(2)  と B<waitpid>()  の使用方法の例を示してい"
14557 "る。 このプログラムでは子プロセスを生成する。 コマンドライン引き数が指定され"
14558 "なかったときは、 子プロセスは B<pause>(2)  を使ってその実行を一時停止し、ユー"
14559 "ザーがその子プロセスに シグナルを送信できるようにする。 コマンドライン引き数"
14560 "が指定された場合は、 子プロセスは直ちに終了し、 コマンドラインで指定された整"
14561 "数を終了ステータスとして使用する。 親プロセスは、 B<waitpid>()  を使って子プ"
14562 "ロセスを監視し、 wait のステータス値を上記の W*() マクロを使って解析するとい"
14563 "う ループを実行する。"
14564
14565 #. type: Plain text
14566 #: build/C/man2/wait.2:585
14567 #, no-wrap
14568 msgid ""
14569 "$B< ./a.out &>\n"
14570 "Child PID is 32360\n"
14571 "[1] 32359\n"
14572 "$B< kill -STOP 32360>\n"
14573 "stopped by signal 19\n"
14574 "$B< kill -CONT 32360>\n"
14575 "continued\n"
14576 "$B< kill -TERM 32360>\n"
14577 "killed by signal 15\n"
14578 "[1]+  Done                    ./a.out\n"
14579 "$\n"
14580 msgstr ""
14581 "$B< ./a.out &>\n"
14582 "Child PID is 32360\n"
14583 "[1] 32359\n"
14584 "$B< kill -STOP 32360>\n"
14585 "stopped by signal 19\n"
14586 "$B< kill -CONT 32360>\n"
14587 "continued\n"
14588 "$B< kill -TERM 32360>\n"
14589 "killed by signal 15\n"
14590 "[1]+  Done                    ./a.out\n"
14591 "$\n"
14592
14593 #. type: Plain text
14594 #: build/C/man2/wait.2:594
14595 #, no-wrap
14596 msgid ""
14597 "#include E<lt>sys/wait.hE<gt>\n"
14598 "#include E<lt>stdlib.hE<gt>\n"
14599 "#include E<lt>unistd.hE<gt>\n"
14600 "#include E<lt>stdio.hE<gt>\n"
14601 msgstr ""
14602 "#include E<lt>sys/wait.hE<gt>\n"
14603 "#include E<lt>stdlib.hE<gt>\n"
14604 "#include E<lt>unistd.hE<gt>\n"
14605 "#include E<lt>stdio.hE<gt>\n"
14606
14607 #. type: Plain text
14608 #: build/C/man2/wait.2:600
14609 #, no-wrap
14610 msgid ""
14611 "int\n"
14612 "main(int argc, char *argv[])\n"
14613 "{\n"
14614 "    pid_t cpid, w;\n"
14615 "    int status;\n"
14616 msgstr ""
14617 "int\n"
14618 "main(int argc, char *argv[])\n"
14619 "{\n"
14620 "    pid_t cpid, w;\n"
14621 "    int status;\n"
14622
14623 #. type: Plain text
14624 #: build/C/man2/wait.2:606
14625 #, no-wrap
14626 msgid ""
14627 "    cpid = fork();\n"
14628 "    if (cpid == -1) {\n"
14629 "        perror(\"fork\");\n"
14630 "        exit(EXIT_FAILURE);\n"
14631 "    }\n"
14632 msgstr ""
14633 "    cpid = fork();\n"
14634 "    if (cpid == -1) {\n"
14635 "        perror(\"fork\");\n"
14636 "        exit(EXIT_FAILURE);\n"
14637 "    }\n"
14638
14639 #. type: Plain text
14640 #: build/C/man2/wait.2:612
14641 #, no-wrap
14642 msgid ""
14643 "    if (cpid == 0) {            /* Code executed by child */\n"
14644 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
14645 "        if (argc == 1)\n"
14646 "            pause();                    /* Wait for signals */\n"
14647 "        _exit(atoi(argv[1]));\n"
14648 msgstr ""
14649 "    if (cpid == 0) {            /* Code executed by child */\n"
14650 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
14651 "        if (argc == 1)\n"
14652 "            pause();                    /* Wait for signals */\n"
14653 "        _exit(atoi(argv[1]));\n"
14654
14655 #. type: Plain text
14656 #: build/C/man2/wait.2:620
14657 #, no-wrap
14658 msgid ""
14659 "    } else {                    /* Code executed by parent */\n"
14660 "        do {\n"
14661 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
14662 "            if (w == -1) {\n"
14663 "                perror(\"waitpid\");\n"
14664 "                exit(EXIT_FAILURE);\n"
14665 "            }\n"
14666 msgstr ""
14667 "    } else {                    /* Code executed by parent */\n"
14668 "        do {\n"
14669 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
14670 "            if (w == -1) {\n"
14671 "                perror(\"waitpid\");\n"
14672 "                exit(EXIT_FAILURE);\n"
14673 "            }\n"
14674
14675 #. type: Plain text
14676 #: build/C/man2/wait.2:634
14677 #, no-wrap
14678 msgid ""
14679 "            if (WIFEXITED(status)) {\n"
14680 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
14681 "            } else if (WIFSIGNALED(status)) {\n"
14682 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
14683 "            } else if (WIFSTOPPED(status)) {\n"
14684 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
14685 "            } else if (WIFCONTINUED(status)) {\n"
14686 "                printf(\"continued\\en\");\n"
14687 "            }\n"
14688 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
14689 "        exit(EXIT_SUCCESS);\n"
14690 "    }\n"
14691 "}\n"
14692 msgstr ""
14693 "            if (WIFEXITED(status)) {\n"
14694 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
14695 "            } else if (WIFSIGNALED(status)) {\n"
14696 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
14697 "            } else if (WIFSTOPPED(status)) {\n"
14698 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
14699 "            } else if (WIFCONTINUED(status)) {\n"
14700 "                printf(\"continued\\en\");\n"
14701 "            }\n"
14702 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
14703 "        exit(EXIT_SUCCESS);\n"
14704 "    }\n"
14705 "}\n"
14706
14707 #. type: Plain text
14708 #: build/C/man2/wait.2:647
14709 msgid ""
14710 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), "
14711 "B<sigaction>(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), "
14712 "B<credentials>(7), B<signal>(7)"
14713 msgstr ""
14714 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), "
14715 "B<sigaction>(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), "
14716 "B<credentials>(7), B<signal>(7)"
14717
14718 #. type: TH
14719 #: build/C/man2/wait4.2:33
14720 #, no-wrap
14721 msgid "WAIT4"
14722 msgstr "WAIT4"
14723
14724 #. type: TH
14725 #: build/C/man2/wait4.2:33
14726 #, no-wrap
14727 msgid "2012-09-23"
14728 msgstr "2012-09-23"
14729
14730 #. type: Plain text
14731 #: build/C/man2/wait4.2:36
14732 msgid "wait3, wait4 - wait for process to change state, BSD style"
14733 msgstr "wait3, wait4 - BSD スタイルでプロセスの状態変化を待つ"
14734
14735 #. type: Plain text
14736 #: build/C/man2/wait4.2:42
14737 #, no-wrap
14738 msgid ""
14739 "B<#include E<lt>sys/types.hE<gt>>\n"
14740 "B<#include E<lt>sys/time.hE<gt>>\n"
14741 "B<#include E<lt>sys/resource.hE<gt>>\n"
14742 "B<#include E<lt>sys/wait.hE<gt>>\n"
14743 msgstr ""
14744 "B<#include E<lt>sys/types.hE<gt>>\n"
14745 "B<#include E<lt>sys/time.hE<gt>>\n"
14746 "B<#include E<lt>sys/resource.hE<gt>>\n"
14747 "B<#include E<lt>sys/wait.hE<gt>>\n"
14748
14749 #. type: Plain text
14750 #: build/C/man2/wait4.2:45
14751 #, no-wrap
14752 msgid ""
14753 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14754 "B<            struct rusage *>I<rusage>B<);>\n"
14755 msgstr ""
14756 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14757 "B<            struct rusage *>I<rusage>B<);>\n"
14758
14759 #. type: Plain text
14760 #: build/C/man2/wait4.2:48
14761 #, no-wrap
14762 msgid ""
14763 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14764 "B<            struct rusage *>I<rusage>B<);>\n"
14765 msgstr ""
14766 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14767 "B<            struct rusage *>I<rusage>B<);>\n"
14768
14769 #. type: Plain text
14770 #: build/C/man2/wait4.2:57
14771 msgid "B<wait3>():"
14772 msgstr "B<wait3>():"
14773
14774 #. type: Plain text
14775 #: build/C/man2/wait4.2:63
14776 msgid "B<wait4>():"
14777 msgstr "B<wait4>():"
14778
14779 #. type: Plain text
14780 #: build/C/man2/wait4.2:65
14781 msgid "_BSD_SOURCE"
14782 msgstr "_BSD_SOURCE"
14783
14784 #. type: Plain text
14785 #: build/C/man2/wait4.2:73
14786 msgid ""
14787 "These functions are obsolete; use B<waitpid>(2)  or B<waitid>(2)  in new "
14788 "programs."
14789 msgstr ""
14790 "これらの関数は廃止予定である。 新しいプログラムでは B<waitpid>(2) や "
14791 "B<waitid>(2) を使用すること。"
14792
14793 #. type: Plain text
14794 #: build/C/man2/wait4.2:83
14795 msgid ""
14796 "The B<wait3>()  and B<wait4>()  system calls are similar to B<waitpid>(2), "
14797 "but additionally return resource usage information about the child in the "
14798 "structure pointed to by I<rusage>."
14799 msgstr ""
14800 "システムコール B<wait3>()  と B<wait4>()  は B<waitpid>(2)  と同様の動作をす"
14801 "る。それに加え、子プロセスのリソース使用状況の情報を I<rusage> が指す構造体に"
14802 "入れて返す。"
14803
14804 #. type: Plain text
14805 #: build/C/man2/wait4.2:89
14806 msgid ""
14807 "Other than the use of the I<rusage> argument, the following B<wait3>()  call:"
14808 msgstr "I<rusage> を使用する点を除けば、次の B<wait3>()  の呼び出し"
14809
14810 #. type: Plain text
14811 #: build/C/man2/wait4.2:92
14812 #, no-wrap
14813 msgid "    wait3(status, options, rusage);\n"
14814 msgstr "    wait3(status, options, rusage);\n"
14815
14816 #. type: Plain text
14817 #: build/C/man2/wait4.2:95 build/C/man2/wait4.2:109
14818 msgid "is equivalent to:"
14819 msgstr "は以下と等価である。"
14820
14821 #. type: Plain text
14822 #: build/C/man2/wait4.2:98
14823 #, no-wrap
14824 msgid "    waitpid(-1, status, options);\n"
14825 msgstr "    waitpid(-1, status, options);\n"
14826
14827 #. type: Plain text
14828 #: build/C/man2/wait4.2:103
14829 msgid "Similarly, the following B<wait4>()  call:"
14830 msgstr "同様に、次の B<wait4>()  の呼び出し"
14831
14832 #. type: Plain text
14833 #: build/C/man2/wait4.2:106
14834 #, no-wrap
14835 msgid "    wait4(pid, status, options, rusage);\n"
14836 msgstr "    wait4(pid, status, options, rusage);\n"
14837
14838 #. type: Plain text
14839 #: build/C/man2/wait4.2:112
14840 #, no-wrap
14841 msgid "    waitpid(pid, status, options);\n"
14842 msgstr "    waitpid(pid, status, options);\n"
14843
14844 #. type: Plain text
14845 #: build/C/man2/wait4.2:122
14846 msgid ""
14847 "In other words, B<wait3>()  waits of any child, while B<wait4>()  can be "
14848 "used to select a specific child, or children, on which to wait.  See "
14849 "B<wait>(2)  for further details."
14850 msgstr ""
14851 "言い換えると、 B<wait3>()  は全ての子プロセスを対象に待つが、 B<wait4>()  で"
14852 "は特定の子プロセス (複数可) を選んで待つことができる。"
14853
14854 #. type: Plain text
14855 #: build/C/man2/wait4.2:132
14856 msgid ""
14857 "If I<rusage> is not NULL, the I<struct rusage> to which it points will be "
14858 "filled with accounting information about the child.  See B<getrusage>(2)  "
14859 "for details."
14860 msgstr ""
14861 "I<rusage> が NULL でない場合、 I<rusage> が指す I<rusage 構造体> には子プロセ"
14862 "スのアカウント情報が格納される。 詳しくは B<getrusage>(2)  を参照のこと。"
14863
14864 #. type: Plain text
14865 #: build/C/man2/wait4.2:135 build/C/man2/wait4.2:138
14866 msgid "As for B<waitpid>(2)."
14867 msgstr "B<waitpid>(2)  と同様。"
14868
14869 #. type: Plain text
14870 #: build/C/man2/wait4.2:140
14871 msgid "4.3BSD."
14872 msgstr "4.3BSD."
14873
14874 #. type: Plain text
14875 #: build/C/man2/wait4.2:147
14876 msgid ""
14877 "SUSv1 included a specification of B<wait3>(); SUSv2 included B<wait3>(), but "
14878 "marked it LEGACY; SUSv3 removed it."
14879 msgstr ""
14880 "SUSv1 には B<wait3>() の規定があった。 SUSv2 には B<wait3>() が含まれていた"
14881 "が、「過去の名残 (LEGACY)」となっていた。 SUSv3 では B<wait3>() は削除され"
14882 "た。"
14883
14884 #. type: Plain text
14885 #: build/C/man2/wait4.2:159
14886 msgid ""
14887 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
14888 "portability.  (Indeed, I<E<lt>sys/resource.hE<gt>> defines the I<rusage> "
14889 "structure with fields of type I<struct timeval> defined in I<E<lt>sys/time."
14890 "hE<gt>>.)"
14891 msgstr ""
14892 "現在では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、インクルード"
14893 "しておくと 移植性を高めることができる (実際には I<E<lt>sys/resource.hE<gt>> "
14894 "で I<rusage> 構造体が定義されているが、そのフィールドで使用されている "
14895 "I<struct timeval> 型は I<E<lt>sys/time.hE<gt>> で定義されている)。"
14896
14897 #. type: Plain text
14898 #: build/C/man2/wait4.2:165
14899 msgid ""
14900 "On Linux, B<wait3>()  is a library function implemented on top of the "
14901 "B<wait4>()  system call."
14902 msgstr ""
14903 "Linux では、 B<wait3>()  はライブラリ関数であり、 B<wait4>()  システムコール"
14904 "を使って実装されている。"
14905
14906 #. type: Plain text
14907 #: build/C/man2/wait4.2:172
14908 msgid ""
14909 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14910 "B<signal>(7)"
14911 msgstr ""
14912 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14913 "B<signal>(7)"