OSDN Git Service

c430ea2b2c92559f7526efa36bff953964b80cfd
[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-23 22:22+0900\n"
10 "PO-Revision-Date: 2015-01-23 22:45+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 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.78 の一部である。 プロジェクトの説明とバグ報告に関する情報は \\%http://www.kernel.org/doc/man-pages/ に書かれている。"
438
439 #. type: TH
440 #: build/C/man2/eventfd.2:22
441 #, no-wrap
442 msgid "EVENTFD"
443 msgstr "EVENTFD"
444
445 #. type: TH
446 #: build/C/man2/eventfd.2:22 build/C/man2/getitimer.2:12
447 #: build/C/man3/profil.3:28 build/C/man2/signalfd.2:20
448 #, no-wrap
449 msgid "2014-07-08"
450 msgstr "2014-07-08"
451
452 #. type: TH
453 #: build/C/man2/eventfd.2:22 build/C/man2/getitimer.2:12
454 #: build/C/man2/kill.2:44 build/C/man2/killpg.2:42 build/C/man2/pause.2:30
455 #: build/C/man2/prctl.2:54 build/C/man3/profil.3:28
456 #: build/C/man2/restart_syscall.2:33 build/C/man2/rt_sigqueueinfo.2:25
457 #: build/C/man2/sgetmask.2:26 build/C/man2/sigaction.2:49
458 #: build/C/man2/sigaltstack.2:27 build/C/man2/signal.2:36
459 #: build/C/man7/signal.7:46 build/C/man2/signalfd.2:20
460 #: build/C/man3/sigpause.3:25 build/C/man2/sigpending.2:29
461 #: build/C/man2/sigprocmask.2:29 build/C/man3/sigqueue.3:28
462 #: build/C/man2/sigreturn.2:30 build/C/man3/sigset.3:26
463 #: build/C/man3/sigsetops.3:31 build/C/man2/sigsuspend.2:29
464 #: build/C/man3/sigvec.3:26 build/C/man3/sigwait.3:26
465 #: build/C/man2/sigwaitinfo.2:25 build/C/man2/timer_create.2:33
466 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
467 #: build/C/man2/timer_settime.2:26 build/C/man2/timerfd_create.2:22
468 #: build/C/man2/tkill.2:29 build/C/man2/wait.2:49 build/C/man2/wait4.2:33
469 #, no-wrap
470 msgid "Linux"
471 msgstr "Linux"
472
473 #. type: Plain text
474 #: build/C/man2/eventfd.2:25
475 msgid "eventfd - create a file descriptor for event notification"
476 msgstr "eventfd - イベント通知用のファイルディスクリプタを生成する"
477
478 #. type: Plain text
479 #: build/C/man2/eventfd.2:27
480 msgid "B<#include E<lt>sys/eventfd.hE<gt>>"
481 msgstr "B<#include E<lt>sys/eventfd.hE<gt>>"
482
483 #. type: Plain text
484 #: build/C/man2/eventfd.2:29
485 msgid "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
486 msgstr "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
487
488 #. type: Plain text
489 #: build/C/man2/eventfd.2:39
490 msgid ""
491 "B<eventfd>()  creates an \"eventfd object\" that can be used as an event "
492 "wait/notify mechanism by user-space applications, and by the kernel to "
493 "notify user-space applications of events.  The object contains an unsigned "
494 "64-bit integer (I<uint64_t>)  counter that is maintained by the kernel.  "
495 "This counter is initialized with the value specified in the argument "
496 "I<initval>."
497 msgstr ""
498 "B<eventfd>()  は \"eventfd オブジェクト\" を生成する。 eventfd オブジェクトは"
499 "ユーザ空間アプリケーションがイベント待ち受け/通知用の 仕組みとして使うことが"
500 "できる。また、カーネルがユーザ空間アプリケーションに イベントを通知するために"
501 "も使うことができる。 このオブジェクトには、unsigned の 64 ビット整数 "
502 "(I<uint64_t>)  型のカウンタが含まれており、このカウンタはカーネルにより管理さ"
503 "れる。 このカウンタは I<initval> 引き数で指定された値で初期化される。"
504
505 #. type: Plain text
506 #: build/C/man2/eventfd.2:44
507 msgid ""
508 "The following values may be bitwise ORed in I<flags> to change the behavior "
509 "of B<eventfd>():"
510 msgstr ""
511 "以下の値のいくつかをビット単位の論理和 (OR) で指定することで、 B<eventfd>() "
512 "の振舞いを変更することができる。"
513
514 #. type: TP
515 #: build/C/man2/eventfd.2:44
516 #, no-wrap
517 msgid "B<EFD_CLOEXEC> (since Linux 2.6.27)"
518 msgstr "B<EFD_CLOEXEC> (Linux 2.6.27 以降)"
519
520 #. type: Plain text
521 #: build/C/man2/eventfd.2:54 build/C/man2/signalfd.2:95
522 #: build/C/man2/timerfd_create.2:110
523 msgid ""
524 "Set the close-on-exec (B<FD_CLOEXEC>)  flag on the new file descriptor.  See "
525 "the description of the B<O_CLOEXEC> flag in B<open>(2)  for reasons why this "
526 "may be useful."
527 msgstr ""
528 "新しいファイルディスクリプタに対して close-on-exec (B<FD_CLOEXEC>)  フラグを"
529 "セットする。 このフラグが役に立つ理由については、 B<open>(2)  の "
530 "B<O_CLOEXEC> フラグの説明を参照のこと。"
531
532 #. type: TP
533 #: build/C/man2/eventfd.2:54
534 #, no-wrap
535 msgid "B<EFD_NONBLOCK> (since Linux 2.6.27)"
536 msgstr "B<EFD_NONBLOCK> (Linux 2.6.27 以降)"
537
538 #. type: Plain text
539 #: build/C/man2/eventfd.2:62 build/C/man2/signalfd.2:85
540 #: build/C/man2/timerfd_create.2:100
541 msgid ""
542 "Set the B<O_NONBLOCK> file status flag on the new open file description.  "
543 "Using this flag saves extra calls to B<fcntl>(2)  to achieve the same result."
544 msgstr ""
545 "新しく生成されるオープンファイル記述 (open file description) の "
546 "B<O_NONBLOCK> ファイルステータスフラグをセットする。 このフラグを使うこと"
547 "で、 B<O_NONBLOCK> をセットするために B<fcntl>(2)  を追加で呼び出す必要がなく"
548 "なる。"
549
550 #. type: TP
551 #: build/C/man2/eventfd.2:62
552 #, no-wrap
553 msgid "B<EFD_SEMAPHORE> (since Linux 2.6.30)"
554 msgstr "B<EFD_SEMAPHORE> (Linux 2.6.30 以降)"
555
556 #. type: Plain text
557 #: build/C/man2/eventfd.2:66
558 msgid ""
559 "Provide semaphore-like semantics for reads from the new file descriptor.  "
560 "See below."
561 msgstr ""
562 "新しいファイルディスクリプタからの読み出しにおいて、セマフォ風の動作を行う。 "
563 "下記参照。"
564
565 #. type: Plain text
566 #: build/C/man2/eventfd.2:70 build/C/man2/signalfd.2:99
567 msgid ""
568 "In Linux up to version 2.6.26, the I<flags> argument is unused, and must be "
569 "specified as zero."
570 msgstr ""
571 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
572 "しなければならない。"
573
574 #. type: Plain text
575 #: build/C/man2/eventfd.2:76
576 msgid ""
577 "As its return value, B<eventfd>()  returns a new file descriptor that can be "
578 "used to refer to the eventfd object.  The following operations can be "
579 "performed on the file descriptor:"
580 msgstr ""
581 "B<eventfd>()  は eventfd オブジェクトを参照するのに使用できる新しいファイル"
582 "ディスクリプタ を返す。返されたファイルディスクリプタに対しては以下の操作を実"
583 "行できる。"
584
585 #. type: TP
586 #: build/C/man2/eventfd.2:76 build/C/man2/signalfd.2:102
587 #: build/C/man2/timerfd_create.2:218
588 #, no-wrap
589 msgid "B<read>(2)"
590 msgstr "B<read>(2)"
591
592 #. type: Plain text
593 #: build/C/man2/eventfd.2:86
594 msgid ""
595 "Each successful B<read>(2)  returns an 8-byte integer.  A B<read>(2)  will "
596 "fail with the error B<EINVAL> if the size of the supplied buffer is less "
597 "than 8 bytes."
598 msgstr ""
599 "B<read>(2) は成功すると、8 バイトの整数を返す。 渡されたバッファの大きさが 8 "
600 "バイト未満の場合、 B<read>(2)  はエラー B<EINVAL> で失敗する。"
601
602 #. type: Plain text
603 #: build/C/man2/eventfd.2:91
604 msgid ""
605 "The value returned by B<read>(2)  is in host byte order\\(emthat is, the "
606 "native byte order for integers on the host machine."
607 msgstr ""
608 "B<read>(2) が返す値は、ホストバイトオーダ、つまり、そのホストマシンにおける整"
609 "数の通常のバイトオーダである。"
610
611 #. type: Plain text
612 #: build/C/man2/eventfd.2:98
613 msgid ""
614 "The semantics of B<read>(2)  depend on whether the eventfd counter currently "
615 "has a nonzero value and whether the B<EFD_SEMAPHORE> flag was specified when "
616 "creating the eventfd file descriptor:"
617 msgstr ""
618 "B<read>(2) の動作は、 eventfd カウンタの現在の値が 0 以外であるかと、 "
619 "eventfd ファイルディスクリプタを作成する際に B<EFD_SEMAPHORE> フラグが指定さ"
620 "れたか、により変化する。"
621
622 #. type: IP
623 #: build/C/man2/eventfd.2:99 build/C/man2/eventfd.2:106
624 #: build/C/man2/eventfd.2:113 build/C/man2/eventfd.2:158
625 #: build/C/man2/eventfd.2:168 build/C/man2/eventfd.2:178
626 #: build/C/man2/prctl.2:970 build/C/man2/prctl.2:975 build/C/man2/prctl.2:980
627 #: build/C/man2/prctl.2:990 build/C/man3/psignal.3:105
628 #: build/C/man3/psignal.3:109 build/C/man2/sigaction.2:318
629 #: build/C/man2/sigaction.2:333 build/C/man2/sigaction.2:349
630 #: build/C/man2/sigaction.2:364 build/C/man2/sigaction.2:411
631 #: build/C/man2/sigaction.2:458 build/C/man2/sigaction.2:472
632 #: build/C/man2/signal.2:68 build/C/man2/signal.2:73 build/C/man2/signal.2:80
633 #: build/C/man2/signal.2:224 build/C/man2/signal.2:228
634 #: build/C/man2/signal.2:244 build/C/man7/signal.7:149
635 #: build/C/man7/signal.7:157 build/C/man7/signal.7:615
636 #: build/C/man7/signal.7:617 build/C/man7/signal.7:638
637 #: build/C/man7/signal.7:672 build/C/man7/signal.7:676
638 #: build/C/man7/signal.7:683 build/C/man7/signal.7:701
639 #: build/C/man7/signal.7:707 build/C/man7/signal.7:714
640 #: build/C/man7/signal.7:719 build/C/man7/signal.7:723
641 #: build/C/man7/signal.7:742 build/C/man7/signal.7:756
642 #: build/C/man7/signal.7:767 build/C/man7/signal.7:774
643 #: build/C/man7/signal.7:783 build/C/man7/signal.7:791
644 #: build/C/man7/signal.7:797 build/C/man7/signal.7:817
645 #: build/C/man7/signal.7:831 build/C/man7/signal.7:842
646 #: build/C/man7/signal.7:845 build/C/man7/signal.7:848
647 #: build/C/man7/signal.7:851 build/C/man7/signal.7:858
648 #: build/C/man7/signal.7:864 build/C/man7/signal.7:868
649 #: build/C/man3/sigwait.3:62 build/C/man3/sigwait.3:67
650 #: build/C/man2/timer_create.2:218 build/C/man2/timer_create.2:221
651 #: build/C/man2/timer_create.2:224 build/C/man2/timer_create.2:228
652 #: build/C/man2/timer_create.2:231 build/C/man2/timer_create.2:246
653 #: build/C/man2/timer_create.2:250
654 #, no-wrap
655 msgid "*"
656 msgstr "*"
657
658 #. type: Plain text
659 #: build/C/man2/eventfd.2:106
660 msgid ""
661 "If B<EFD_SEMAPHORE> was not specified and the eventfd counter has a nonzero "
662 "value, then a B<read>(2)  returns 8 bytes containing that value, and the "
663 "counter's value is reset to zero."
664 msgstr ""
665 "B<EFD_SEMAPHORE> が指定されておらず、eventfd カウンタが 0 以外の値の場合、 "
666 "B<read>(2) はカウンタ値を格納した 8 バイトの値を返し、 カウンタ値は 0 にリ"
667 "セットされる。"
668
669 #. type: Plain text
670 #: build/C/man2/eventfd.2:113
671 msgid ""
672 "If B<EFD_SEMAPHORE> was specified and the eventfd counter has a nonzero "
673 "value, then a B<read>(2)  returns 8 bytes containing the value 1, and the "
674 "counter's value is decremented by 1."
675 msgstr ""
676 "B<EFD_SEMAPHORE> が指定されていて eventfd カウンタが 0 以外の値の場合、 "
677 "B<read>(2) は値 1 の 8 バイト値を返し、カウンタ値は 1 減算される。"
678
679 #. type: Plain text
680 #: build/C/man2/eventfd.2:123
681 msgid ""
682 "If the eventfd counter is zero at the time of the call to B<read>(2), then "
683 "the call either blocks until the counter becomes nonzero (at which time, the "
684 "B<read>(2)  proceeds as described above)  or fails with the error B<EAGAIN> "
685 "if the file descriptor has been made nonblocking."
686 msgstr ""
687 "B<read>(2) を呼び出した時点で eventfd カウンタが 0 の場合、 B<read>(2) はカウ"
688 "ンタが 0 以外になるまで停止 (block) する (0 以外になった時点で B<read>(2) は"
689 "上記で述べた通り実行を再開する)、 もしくはファイルディスクリプタが非停止 "
690 "(nonblocking) に設定されている場合はエラー B<EAGAIN> で失敗する。"
691
692 #. type: TP
693 #: build/C/man2/eventfd.2:124
694 #, no-wrap
695 msgid "B<write>(2)"
696 msgstr "B<write>(2)"
697
698 #. type: Plain text
699 #: build/C/man2/eventfd.2:141
700 msgid ""
701 "A B<write>(2)  call adds the 8-byte integer value supplied in its buffer to "
702 "the counter.  The maximum value that may be stored in the counter is the "
703 "largest unsigned 64-bit value minus 1 (i.e., 0xfffffffffffffffe).  If the "
704 "addition would cause the counter's value to exceed the maximum, then the "
705 "B<write>(2)  either blocks until a B<read>(2)  is performed on the file "
706 "descriptor, or fails with the error B<EAGAIN> if the file descriptor has "
707 "been made nonblocking."
708 msgstr ""
709 "B<write>(2)  は、引き数のバッファで渡された 8 バイトの整数値をカウンタに加算"
710 "する。 カウンタに格納可能な最大値は unsigned の 64 ビット整数の最大値から 1 "
711 "を引いた値 (すなわち 0xfffffffffffffffe) である。 加算を行うとカウンタ値が最"
712 "大値を超過する場合には、 そのファイルディスクリプタに対して B<read>(2)  が実"
713 "行されるまで、 B<write>(2)  は停止 (block) する、 もしくはファイルディスクリ"
714 "プタが非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗す"
715 "る。"
716
717 #. type: Plain text
718 #: build/C/man2/eventfd.2:148
719 msgid ""
720 "A B<write>(2)  will fail with the error B<EINVAL> if the size of the "
721 "supplied buffer is less than 8 bytes, or if an attempt is made to write the "
722 "value 0xffffffffffffffff."
723 msgstr ""
724 "渡されたバッファの大きさが 8 バイト未満の場合、もしくは 値 "
725 "0xffffffffffffffff を書き込もうとした場合、 B<write>(2)  はエラー B<EINVAL> "
726 "で失敗する。"
727
728 #. type: TP
729 #: build/C/man2/eventfd.2:148 build/C/man2/signalfd.2:140
730 #: build/C/man2/timerfd_create.2:251
731 #, no-wrap
732 msgid "B<poll>(2), B<select>(2) (and similar)"
733 msgstr "B<poll>(2), B<select>(2) (と同様の操作)"
734
735 #. type: Plain text
736 #: build/C/man2/eventfd.2:157
737 msgid ""
738 "The returned file descriptor supports B<poll>(2)  (and analogously "
739 "B<epoll>(7))  and B<select>(2), as follows:"
740 msgstr ""
741 "返されたファイルディスクリプタは、 B<poll>(2)  (B<epoll>(7)  も同じ) や "
742 "B<select>(2)  をサポートしており、以下のような動作をする。"
743
744 #. type: Plain text
745 #: build/C/man2/eventfd.2:168
746 msgid ""
747 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
748 "B<poll>(2)  B<POLLIN> flag)  if the counter has a value greater than 0."
749 msgstr ""
750 "カウンタが 0 より大きい値の場合、 ファイルディスクリプタは読み出し可能となる "
751 "(B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
752
753 #. type: Plain text
754 #: build/C/man2/eventfd.2:178
755 msgid ""
756 "The file descriptor is writable (the B<select>(2)  I<writefds> argument; the "
757 "B<poll>(2)  B<POLLOUT> flag)  if it is possible to write a value of at least "
758 "\"1\" without blocking."
759 msgstr ""
760 "少なくとも値 \"1\" を、停止 (block) を伴わずに書き込める場合、 ファイルディス"
761 "クリプタは書き込み可能となる (B<select>(2)  の I<writefds> 引き数や "
762 "B<poll>(2)  の B<POLLOUT> フラグ)。"
763
764 #. type: Plain text
765 #: build/C/man2/eventfd.2:198
766 msgid ""
767 "If an overflow of the counter value was detected, then B<select>(2)  "
768 "indicates the file descriptor as being both readable and writable, and "
769 "B<poll>(2)  returns a B<POLLERR> event.  As noted above, B<write>(2)  can "
770 "never overflow the counter.  However an overflow can occur if 2^64 eventfd "
771 "\"signal posts\" were performed by the KAIO subsystem (theoretically "
772 "possible, but practically unlikely).  If an overflow has occurred, then "
773 "B<read>(2)  will return that maximum I<uint64_t> value (i.e., "
774 "0xffffffffffffffff)."
775 msgstr ""
776 "カウンタ値のオーバーフローが検出された場合、 B<select>(2)  はファイルディスク"
777 "リプタは読み出し可能と書き込み可能の両方を通知し、 B<poll>(2)  は B<POLLERR> "
778 "イベントを返す。 上述の通り、 B<write>(2)  でカウンタがオーバーフローすること"
779 "は決してない。 しかしながら、 KAIO サブシステムによって 2^64 回の eventfd "
780 "\"signal posts\" が 実行された場合にはオーバーフローが起こり得る (理論的には"
781 "あり得るが、実用的にはあり得ない)。 オーバーフローが発生した場合、 "
782 "B<read>(2)  は I<uint64_t> の最大値 (すなわち 0xffffffffffffffff) を返す。"
783
784 #. type: Plain text
785 #: build/C/man2/eventfd.2:205
786 msgid ""
787 "The eventfd file descriptor also supports the other file-descriptor "
788 "multiplexing APIs: B<pselect>(2)  and B<ppoll>(2)."
789 msgstr ""
790 "eventfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
791 "である B<pselect>(2) と B<ppoll>(2) もサポートしている。"
792
793 #. type: TP
794 #: build/C/man2/eventfd.2:205 build/C/man2/signalfd.2:160
795 #: build/C/man2/timerfd_create.2:269
796 #, no-wrap
797 msgid "B<close>(2)"
798 msgstr "B<close>(2)"
799
800 #. type: Plain text
801 #: build/C/man2/eventfd.2:210
802 msgid ""
803 "When the file descriptor is no longer required it should be closed.  When "
804 "all file descriptors associated with the same eventfd object have been "
805 "closed, the resources for object are freed by the kernel."
806 msgstr ""
807 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
808 "る。 同じ eventfd オブジェクトに関連付けられたファイルディスクリプタが全て ク"
809 "ローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
810
811 #. type: Plain text
812 #: build/C/man2/eventfd.2:222
813 msgid ""
814 "A copy of the file descriptor created by B<eventfd>()  is inherited by the "
815 "child produced by B<fork>(2).  The duplicate file descriptor is associated "
816 "with the same eventfd object.  File descriptors created by B<eventfd>()  are "
817 "preserved across B<execve>(2), unless the close-on-exec flag has been set."
818 msgstr ""
819 "B<fork>(2) で生成された子プロセスは、 B<eventfd>() で生成されたファイルディス"
820 "クリプタのコピーを継承する。 複製されたファイルディスクリプタは同じ eventfd "
821 "オブジェクトに関連付けられる。 close-on-exec フラグが設定されていない場合、 "
822 "B<execve>(2) の前後で B<eventfd>() で生成されたファイルディスクリプタは保持さ"
823 "れる。"
824
825 #. type: Plain text
826 #: build/C/man2/eventfd.2:229
827 msgid ""
828 "On success, B<eventfd>()  returns a new eventfd file descriptor.  On error, "
829 "-1 is returned and I<errno> is set to indicate the error."
830 msgstr ""
831 "成功すると、 B<eventfd>()  は新規の eventfd ファイルディスクリプタを返す。 エ"
832 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
833
834 #. type: TP
835 #: build/C/man2/eventfd.2:230 build/C/man2/getitimer.2:142
836 #: build/C/man2/kill.2:106 build/C/man2/killpg.2:95 build/C/man2/prctl.2:922
837 #: build/C/man2/prctl.2:927 build/C/man2/prctl.2:939 build/C/man2/prctl.2:944
838 #: build/C/man2/prctl.2:953 build/C/man2/prctl.2:963 build/C/man2/prctl.2:1003
839 #: build/C/man2/prctl.2:1013 build/C/man2/prctl.2:1021
840 #: build/C/man2/prctl.2:1032 build/C/man2/prctl.2:1041
841 #: build/C/man2/prctl.2:1055 build/C/man2/prctl.2:1067
842 #: build/C/man2/prctl.2:1078 build/C/man2/rt_sigqueueinfo.2:141
843 #: build/C/man2/s390_runtime_instr.2:66 build/C/man2/sigaction.2:738
844 #: build/C/man2/sigaltstack.2:142 build/C/man3/siginterrupt.3:84
845 #: build/C/man2/signal.2:106 build/C/man2/signalfd.2:271
846 #: build/C/man2/signalfd.2:279 build/C/man2/sigprocmask.2:107
847 #: build/C/man3/sigqueue.3:98 build/C/man3/sigsetops.3:128
848 #: build/C/man3/sigwait.3:75 build/C/man2/sigwaitinfo.2:129
849 #: build/C/man2/timer_create.2:181 build/C/man2/timer_delete.2:61
850 #: build/C/man2/timer_getoverrun.2:91 build/C/man2/timer_settime.2:191
851 #: build/C/man2/timer_settime.2:199 build/C/man2/timerfd_create.2:312
852 #: build/C/man2/timerfd_create.2:320 build/C/man2/timerfd_create.2:356
853 #: build/C/man2/timerfd_create.2:363 build/C/man2/timerfd_create.2:369
854 #: build/C/man2/tkill.2:93 build/C/man2/wait.2:418
855 #, no-wrap
856 msgid "B<EINVAL>"
857 msgstr "B<EINVAL>"
858
859 #. type: Plain text
860 #: build/C/man2/eventfd.2:234
861 msgid "An unsupported value was specified in I<flags>."
862 msgstr "I<flags> にサポートされていない値が指定された。"
863
864 #. type: TP
865 #: build/C/man2/eventfd.2:234 build/C/man2/signalfd.2:286
866 #: build/C/man2/timerfd_create.2:327
867 #, no-wrap
868 msgid "B<EMFILE>"
869 msgstr "B<EMFILE>"
870
871 #. type: Plain text
872 #: build/C/man2/eventfd.2:237
873 msgid "The per-process limit on open file descriptors has been reached."
874 msgstr ""
875 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
876
877 #. type: TP
878 #: build/C/man2/eventfd.2:237 build/C/man2/signalfd.2:289
879 #: build/C/man2/timerfd_create.2:330
880 #, no-wrap
881 msgid "B<ENFILE>"
882 msgstr "B<ENFILE>"
883
884 #. type: Plain text
885 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
886 #: build/C/man2/timerfd_create.2:334
887 msgid ""
888 "The system-wide limit on the total number of open files has been reached."
889 msgstr "オープン済みのファイル総数がシステム全体の上限に達していた。"
890
891 #. type: TP
892 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
893 #: build/C/man2/timerfd_create.2:334
894 #, no-wrap
895 msgid "B<ENODEV>"
896 msgstr "B<ENODEV>"
897
898 #. type: Plain text
899 #: build/C/man2/eventfd.2:249 build/C/man2/signalfd.2:296
900 #: build/C/man2/timerfd_create.2:337
901 msgid "Could not mount (internal) anonymous inode device."
902 msgstr "(カーネル内の) 無名 inode デバイスをマウントできなかった。"
903
904 #. type: TP
905 #: build/C/man2/eventfd.2:249 build/C/man2/s390_runtime_instr.2:73
906 #: build/C/man2/sigaltstack.2:147 build/C/man2/signalfd.2:296
907 #: build/C/man2/timer_create.2:189 build/C/man2/timerfd_create.2:337
908 #, no-wrap
909 msgid "B<ENOMEM>"
910 msgstr "B<ENOMEM>"
911
912 #. type: Plain text
913 #: build/C/man2/eventfd.2:253
914 msgid "There was insufficient memory to create a new eventfd file descriptor."
915 msgstr ""
916 "新しい eventfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
917
918 #. type: SH
919 #: build/C/man2/eventfd.2:253 build/C/man2/prctl.2:1177
920 #: build/C/man3/psignal.3:95 build/C/man2/restart_syscall.2:96
921 #: build/C/man2/rt_sigqueueinfo.2:169 build/C/man2/s390_runtime_instr.2:79
922 #: build/C/man2/sgetmask.2:66 build/C/man2/signalfd.2:299
923 #: build/C/man3/sigqueue.3:112 build/C/man3/sigvec.3:234
924 #: build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:65
925 #: build/C/man2/timer_getoverrun.2:95 build/C/man2/timer_settime.2:205
926 #: build/C/man2/timerfd_create.2:375 build/C/man2/tkill.2:104
927 #, no-wrap
928 msgid "VERSIONS"
929 msgstr "バージョン"
930
931 #.  eventfd() is in glibc 2.7, but reportedly does not build
932 #. type: Plain text
933 #: build/C/man2/eventfd.2:266
934 msgid ""
935 "B<eventfd>()  is available on Linux since kernel 2.6.22.  Working support is "
936 "provided in glibc since version 2.8.  The B<eventfd2>()  system call (see "
937 "NOTES) is available on Linux since kernel 2.6.27.  Since version 2.9, the "
938 "glibc B<eventfd>()  wrapper will employ the B<eventfd2>()  system call, if "
939 "it is supported by the kernel."
940 msgstr ""
941 "B<eventfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
942 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<eventfd2>()  "
943 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
944 "る。 バージョン 2.9 以降では、glibc の B<eventfd>()  のラッパー関数は、カーネ"
945 "ルが対応していれば B<eventfd2>()  システムコールを利用する。"
946
947 #. type: Plain text
948 #: build/C/man2/eventfd.2:271
949 msgid "B<eventfd>()  and B<eventfd2>()  are Linux-specific."
950 msgstr "B<eventfd>()  と B<eventfd2>()  は Linux 固有である。"
951
952 #. type: Plain text
953 #: build/C/man2/eventfd.2:279
954 msgid ""
955 "Applications can use an eventfd file descriptor instead of a pipe (see "
956 "B<pipe>(2))  in all cases where a pipe is used simply to signal events.  The "
957 "kernel overhead of an eventfd file descriptor is much lower than that of a "
958 "pipe, and only one file descriptor is required (versus the two required for "
959 "a pipe)."
960 msgstr ""
961 "アプリケーションは、パイプをイベントを通知するためだけに使用している 全ての場"
962 "面において、パイプの代わりに eventfd ファイルディスクリプタを 使用することが"
963 "できる。 eventfd ファイルディスクリプタを使う方が、パイプを使う場合に比べて "
964 "カーネルでのオーバヘッドは比べるとずっと小さく、ファイルディスクリプタも 一つ"
965 "しか必要としない (パイプの場合は二つ必要である)。"
966
967 #.  or eventually syslets/threadlets
968 #. type: Plain text
969 #: build/C/man2/eventfd.2:285
970 msgid ""
971 "When used in the kernel, an eventfd file descriptor can provide a bridge "
972 "from kernel to user space, allowing, for example, functionalities like KAIO "
973 "(kernel AIO)  to signal to a file descriptor that some operation is complete."
974 msgstr ""
975 "カーネル内で使用すると、eventfd ファイルディスクリプタはカーネル空間からユー"
976 "ザ空間へのブリッジ機能を提供することができ、 例えば KAIO (kernel AIO)  のよう"
977 "な機能が、あるファイルディスクリプタに何らかの操作が完了したことを 通知するこ"
978 "とができる。"
979
980 #. type: Plain text
981 #: build/C/man2/eventfd.2:302
982 msgid ""
983 "A key point about an eventfd file descriptor is that it can be monitored "
984 "just like any other file descriptor using B<select>(2), B<poll>(2), or "
985 "B<epoll>(7).  This means that an application can simultaneously monitor the "
986 "readiness of \"traditional\" files and the readiness of other kernel "
987 "mechanisms that support the eventfd interface.  (Without the B<eventfd>()  "
988 "interface, these mechanisms could not be multiplexed via B<select>(2), "
989 "B<poll>(2), or B<epoll>(7).)"
990 msgstr ""
991 "eventfd ファイルディスクリプタの重要な点は、 eventfd ファイルディスクリプタ"
992 "が B<select>(2), B<poll>(2), B<epoll>(7)  を使って他のファイルディスクリプタ"
993 "と全く同様に監視できる点である。 このことは、アプリケーションは「従来の "
994 "(traditional)」 ファイルの状態変化と eventfd インタフェースをサポートする他の"
995 "カーネル機構の状態変化を同時に監視 できることを意味する (B<eventfd>()  インタ"
996 "フェースがない時には、これらのカーネル機構は B<select>(2), B<poll>(2), "
997 "B<epoll>(7)  経由で多重することはできなかった)。"
998
999 #. type: SS
1000 #: build/C/man2/eventfd.2:302 build/C/man2/signalfd.2:326
1001 #: build/C/man2/sigwaitinfo.2:183 build/C/man2/timer_create.2:243
1002 #: build/C/man2/wait.2:525
1003 #, no-wrap
1004 msgid "C library/kernel ABI differences"
1005 msgstr "C ライブラリとカーネル ABI の違い"
1006
1007 #. type: Plain text
1008 #: build/C/man2/eventfd.2:316
1009 msgid ""
1010 "There are two underlying Linux system calls: B<eventfd>()  and the more "
1011 "recent B<eventfd2>().  The former system call does not implement a I<flags> "
1012 "argument.  The latter system call implements the I<flags> values described "
1013 "above.  The glibc wrapper function will use B<eventfd2>()  where it is "
1014 "available."
1015 msgstr ""
1016 "下層にある Linux システムコールは二種類あり、 B<eventfd>()  と、もっと新しい "
1017 "B<eventfd2>()  である。 B<eventfd>()  は I<flags> 引き数を実装していない。 "
1018 "B<eventfd2>()  では上記の値の I<flags> が実装されている。 glibc のラッパー関"
1019 "数は、 B<eventfd2>()  が利用可能であれば、これを使用する。"
1020
1021 #. type: SS
1022 #: build/C/man2/eventfd.2:316
1023 #, no-wrap
1024 msgid "Additional glibc features"
1025 msgstr "glibc の追加機能"
1026
1027 #. type: Plain text
1028 #: build/C/man2/eventfd.2:320
1029 msgid ""
1030 "The GNU C library defines an additional type, and two functions that attempt "
1031 "to abstract some of the details of reading and writing on an eventfd file "
1032 "descriptor:"
1033 msgstr ""
1034 "GNU C ライブラリは、eventfd ファイルディスクリプタの読み出しと書き込みに を関"
1035 "する詳細のいくつか抽象化するために、一つの型と、二つの関数を追加で 定義してい"
1036 "る。"
1037
1038 #. type: Plain text
1039 #: build/C/man2/eventfd.2:324
1040 #, no-wrap
1041 msgid "typedef uint64_t eventfd_t;\n"
1042 msgstr "typedef uint64_t eventfd_t;\n"
1043
1044 #. type: Plain text
1045 #: build/C/man2/eventfd.2:327
1046 #, no-wrap
1047 msgid ""
1048 "int eventfd_read(int fd, eventfd_t *value);\n"
1049 "int eventfd_write(int fd, eventfd_t value);\n"
1050 msgstr ""
1051 "int eventfd_read(int fd, eventfd_t *value);\n"
1052 "int eventfd_write(int fd, eventfd_t value);\n"
1053
1054 #. type: Plain text
1055 #: build/C/man2/eventfd.2:334
1056 msgid ""
1057 "The functions perform the read and write operations on an eventfd file "
1058 "descriptor, returning 0 if the correct number of bytes was transferred, or "
1059 "-1 otherwise."
1060 msgstr ""
1061 "これらの関数は、eventfd ファイルディスクリプタに対する読み出しと 書き込みの操"
1062 "作を実行し、正しいバイト数が転送された場合には 0 を返し、そうでない場合は -1 "
1063 "を返す。"
1064
1065 #. type: SH
1066 #: build/C/man2/eventfd.2:334 build/C/man2/sigaction.2:858
1067 #: build/C/man2/sigaltstack.2:217 build/C/man2/signalfd.2:360
1068 #: build/C/man3/sigwait.3:91 build/C/man2/timer_create.2:264
1069 #: build/C/man2/timer_getoverrun.2:128 build/C/man2/timer_settime.2:209
1070 #: build/C/man2/timerfd_create.2:386 build/C/man2/wait.2:552
1071 #, no-wrap
1072 msgid "EXAMPLE"
1073 msgstr "例"
1074
1075 #. type: Plain text
1076 #: build/C/man2/eventfd.2:343
1077 msgid ""
1078 "The following program creates an eventfd file descriptor and then forks to "
1079 "create a child process.  While the parent briefly sleeps, the child writes "
1080 "each of the integers supplied in the program's command-line arguments to the "
1081 "eventfd file descriptor.  When the parent has finished sleeping, it reads "
1082 "from the eventfd file descriptor."
1083 msgstr ""
1084 "以下のプログラムは eventfd ファイルディスクリプタを生成し、 その後 fork を実"
1085 "行して子プロセスを生成する。 親プロセスが少しの間 sleep する間に、子プロセス"
1086 "は プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ eventfd "
1087 "ファイルディスクリプタに書き込む。 親プロセスは sleep を完了すると eventfd "
1088 "ファイルディスクリプタから 読み出しを行う。"
1089
1090 #. type: Plain text
1091 #: build/C/man2/eventfd.2:345
1092 msgid "The following shell session shows a sample run of the program:"
1093 msgstr "以下に示すシェルセッションにこのプログラムの使い方を示す。"
1094
1095 #. type: Plain text
1096 #: build/C/man2/eventfd.2:357
1097 #, no-wrap
1098 msgid ""
1099 "$B< ./a.out 1 2 4 7 14>\n"
1100 "Child writing 1 to efd\n"
1101 "Child writing 2 to efd\n"
1102 "Child writing 4 to efd\n"
1103 "Child writing 7 to efd\n"
1104 "Child writing 14 to efd\n"
1105 "Child completed write loop\n"
1106 "Parent about to read\n"
1107 "Parent read 28 (0x1c) from efd\n"
1108 msgstr ""
1109 "$B< ./a.out 1 2 4 7 14>\n"
1110 "Child writing 1 to efd\n"
1111 "Child writing 2 to efd\n"
1112 "Child writing 4 to efd\n"
1113 "Child writing 7 to efd\n"
1114 "Child writing 14 to efd\n"
1115 "Child completed write loop\n"
1116 "Parent about to read\n"
1117 "Parent read 28 (0x1c) from efd\n"
1118
1119 #. type: SS
1120 #: build/C/man2/eventfd.2:359 build/C/man2/signalfd.2:383
1121 #: build/C/man2/timer_create.2:295 build/C/man2/timerfd_create.2:414
1122 #: build/C/man2/wait.2:587
1123 #, no-wrap
1124 msgid "Program source"
1125 msgstr "プログラムのソース"
1126
1127 #. type: Plain text
1128 #: build/C/man2/eventfd.2:367
1129 #, no-wrap
1130 msgid ""
1131 "#include E<lt>sys/eventfd.hE<gt>\n"
1132 "#include E<lt>unistd.hE<gt>\n"
1133 "#include E<lt>stdlib.hE<gt>\n"
1134 "#include E<lt>stdio.hE<gt>\n"
1135 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1136 msgstr ""
1137 "#include E<lt>sys/eventfd.hE<gt>\n"
1138 "#include E<lt>unistd.hE<gt>\n"
1139 "#include E<lt>stdlib.hE<gt>\n"
1140 "#include E<lt>stdio.hE<gt>\n"
1141 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1142
1143 #. type: Plain text
1144 #: build/C/man2/eventfd.2:370 build/C/man2/signalfd.2:394
1145 #, no-wrap
1146 msgid ""
1147 "#define handle_error(msg) \\e\n"
1148 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1149 msgstr ""
1150 "#define handle_error(msg) \\e\n"
1151 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1152
1153 #. type: Plain text
1154 #: build/C/man2/eventfd.2:377
1155 #, no-wrap
1156 msgid ""
1157 "int\n"
1158 "main(int argc, char *argv[])\n"
1159 "{\n"
1160 "    int efd, j;\n"
1161 "    uint64_t u;\n"
1162 "    ssize_t s;\n"
1163 msgstr ""
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
1171 #. type: Plain text
1172 #: build/C/man2/eventfd.2:382
1173 #, no-wrap
1174 msgid ""
1175 "    if (argc E<lt> 2) {\n"
1176 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1177 "        exit(EXIT_FAILURE);\n"
1178 "    }\n"
1179 msgstr ""
1180 "    if (argc E<lt> 2) {\n"
1181 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1182 "        exit(EXIT_FAILURE);\n"
1183 "    }\n"
1184
1185 #. type: Plain text
1186 #: build/C/man2/eventfd.2:386
1187 #, no-wrap
1188 msgid ""
1189 "    efd = eventfd(0, 0);\n"
1190 "    if (efd == -1)\n"
1191 "        handle_error(\"eventfd\");\n"
1192 msgstr ""
1193 "    efd = eventfd(0, 0);\n"
1194 "    if (efd == -1)\n"
1195 "        handle_error(\"eventfd\");\n"
1196
1197 #. type: Plain text
1198 #: build/C/man2/eventfd.2:398
1199 #, no-wrap
1200 msgid ""
1201 "    switch (fork()) {\n"
1202 "    case 0:\n"
1203 "        for (j = 1; j E<lt> argc; j++) {\n"
1204 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1205 "            u = strtoull(argv[j], NULL, 0);\n"
1206 "                    /* strtoull() allows various bases */\n"
1207 "            s = write(efd, &u, sizeof(uint64_t));\n"
1208 "            if (s != sizeof(uint64_t))\n"
1209 "                handle_error(\"write\");\n"
1210 "        }\n"
1211 "        printf(\"Child completed write loop\\en\");\n"
1212 msgstr ""
1213 "    switch (fork()) {\n"
1214 "    case 0:\n"
1215 "        for (j = 1; j E<lt> argc; j++) {\n"
1216 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1217 "            u = strtoull(argv[j], NULL, 0);\n"
1218 "                    /* strtoull() allows various bases */\n"
1219 "            s = write(efd, &u, sizeof(uint64_t));\n"
1220 "            if (s != sizeof(uint64_t))\n"
1221 "                handle_error(\"write\");\n"
1222 "        }\n"
1223 "        printf(\"Child completed write loop\\en\");\n"
1224
1225 #. type: Plain text
1226 #: build/C/man2/eventfd.2:400
1227 #, no-wrap
1228 msgid "        exit(EXIT_SUCCESS);\n"
1229 msgstr "        exit(EXIT_SUCCESS);\n"
1230
1231 #. type: Plain text
1232 #: build/C/man2/eventfd.2:403
1233 #, no-wrap
1234 msgid ""
1235 "    default:\n"
1236 "        sleep(2);\n"
1237 msgstr ""
1238 "    default:\n"
1239 "        sleep(2);\n"
1240
1241 #. type: Plain text
1242 #: build/C/man2/eventfd.2:411
1243 #, no-wrap
1244 msgid ""
1245 "        printf(\"Parent about to read\\en\");\n"
1246 "        s = read(efd, &u, sizeof(uint64_t));\n"
1247 "        if (s != sizeof(uint64_t))\n"
1248 "            handle_error(\"read\");\n"
1249 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1250 "                (unsigned long long) u, (unsigned long long) u);\n"
1251 "        exit(EXIT_SUCCESS);\n"
1252 msgstr ""
1253 "        printf(\"Parent about to read\\en\");\n"
1254 "        s = read(efd, &u, sizeof(uint64_t));\n"
1255 "        if (s != sizeof(uint64_t))\n"
1256 "            handle_error(\"read\");\n"
1257 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1258 "                (unsigned long long) u, (unsigned long long) u);\n"
1259 "        exit(EXIT_SUCCESS);\n"
1260
1261 #. type: Plain text
1262 #: build/C/man2/eventfd.2:416
1263 #, no-wrap
1264 msgid ""
1265 "    case -1:\n"
1266 "        handle_error(\"fork\");\n"
1267 "    }\n"
1268 "}\n"
1269 msgstr ""
1270 "    case -1:\n"
1271 "        handle_error(\"fork\");\n"
1272 "    }\n"
1273 "}\n"
1274
1275 #. type: Plain text
1276 #: build/C/man2/eventfd.2:428
1277 msgid ""
1278 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), "
1279 "B<signalfd>(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), "
1280 "B<sem_overview>(7)"
1281 msgstr ""
1282 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), "
1283 "B<signalfd>(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), "
1284 "B<sem_overview>(7)"
1285
1286 #. type: TH
1287 #: build/C/man2/getitimer.2:12
1288 #, no-wrap
1289 msgid "GETITIMER"
1290 msgstr "GETITIMER"
1291
1292 #. type: Plain text
1293 #: build/C/man2/getitimer.2:15
1294 msgid "getitimer, setitimer - get or set value of an interval timer"
1295 msgstr "getitimer, setitimer - インターバル・タイマーの値を取得または設定する"
1296
1297 #. type: Plain text
1298 #: build/C/man2/getitimer.2:18
1299 #, no-wrap
1300 msgid "B<#include E<lt>sys/time.hE<gt>>\n"
1301 msgstr "B<#include E<lt>sys/time.hE<gt>>\n"
1302
1303 #. type: Plain text
1304 #: build/C/man2/getitimer.2:20
1305 #, no-wrap
1306 msgid "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1307 msgstr "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1308
1309 #. type: Plain text
1310 #: build/C/man2/getitimer.2:23
1311 #, no-wrap
1312 msgid ""
1313 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1314 "B<              struct itimerval *>I<old_value>B<);>\n"
1315 msgstr ""
1316 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1317 "B<              struct itimerval *>I<old_value>B<);>\n"
1318
1319 #. type: Plain text
1320 #: build/C/man2/getitimer.2:29
1321 msgid ""
1322 "The system provides each process with three interval timers, each "
1323 "decrementing in a distinct time domain.  When a timer expires, a signal is "
1324 "sent to the process, and the timer is reset to the specified interval (if "
1325 "nonzero)."
1326 msgstr ""
1327 "システムは 1 個のプロセスにつき 3 個のインターバル・タイマーを提供する。 それ"
1328 "ぞれのタイマーは別々の時間領域で減少する。 あるタイマーが満了すると、 プロセ"
1329 "スにシグナルが送られ、 タイマーは (0 でなければ) 指定されたインターバルに再設"
1330 "定される。"
1331
1332 #. type: TP
1333 #: build/C/man2/getitimer.2:29
1334 #, no-wrap
1335 msgid "B<ITIMER_REAL>"
1336 msgstr "B<ITIMER_REAL>"
1337
1338 #. type: Plain text
1339 #: build/C/man2/getitimer.2:34
1340 msgid "decrements in real time, and delivers B<SIGALRM> upon expiration."
1341 msgstr "実時間 (real time) で減少し、満了すると B<SIGALRM> が送られる。"
1342
1343 #. type: TP
1344 #: build/C/man2/getitimer.2:34
1345 #, no-wrap
1346 msgid "B<ITIMER_VIRTUAL>"
1347 msgstr "B<ITIMER_VIRTUAL>"
1348
1349 #. type: Plain text
1350 #: build/C/man2/getitimer.2:39
1351 msgid ""
1352 "decrements only when the process is executing, and delivers B<SIGVTALRM> "
1353 "upon expiration."
1354 msgstr ""
1355 "プロセスが実行されている間のみ減少し、満了すると B<SIGVTALRM> が送られる。"
1356
1357 #. type: TP
1358 #: build/C/man2/getitimer.2:39
1359 #, no-wrap
1360 msgid "B<ITIMER_PROF>"
1361 msgstr "B<ITIMER_PROF>"
1362
1363 #. type: Plain text
1364 #: build/C/man2/getitimer.2:49
1365 msgid ""
1366 "decrements both when the process executes and when the system is executing "
1367 "on behalf of the process.  Coupled with B<ITIMER_VIRTUAL>, this timer is "
1368 "usually used to profile the time spent by the application in user and kernel "
1369 "space.  B<SIGPROF> is delivered upon expiration."
1370 msgstr ""
1371 "プロセスが実行されていて、 かつシステムがそのプロセスのために処理を行なってい"
1372 "る間に減少する。 多くの場合、このタイマーは B<ITIMER_VIRTUAL> と組み合わされ"
1373 "て、アプリケーションがカーネル空間とユーザー空間で どれだけの時間を過ごしたか"
1374 "をプロファイルするのに使用される。 満了すると B<SIGPROF> が送られる。"
1375
1376 #. type: Plain text
1377 #: build/C/man2/getitimer.2:51
1378 msgid "Timer values are defined by the following structures:"
1379 msgstr "タイマーの値は以下の構造体によって定義される:"
1380
1381 #. type: Plain text
1382 #: build/C/man2/getitimer.2:59
1383 #, no-wrap
1384 msgid ""
1385 "struct itimerval {\n"
1386 "    struct timeval it_interval; /* Interval for periodic timer */\n"
1387 "    struct timeval it_value;    /* Time until next expiration */\n"
1388 "};\n"
1389 msgstr ""
1390 "struct itimerval {\n"
1391 "    struct timeval it_interval; /* Interval for periodic timer */\n"
1392 "    struct timeval it_value;    /* Time until next expiration */\n"
1393 "};\n"
1394
1395 #. type: Plain text
1396 #: build/C/man2/getitimer.2:64
1397 #, no-wrap
1398 msgid ""
1399 "struct timeval {\n"
1400 "    time_t      tv_sec;         /* seconds */\n"
1401 "    suseconds_t tv_usec;        /* microseconds */\n"
1402 "};\n"
1403 msgstr ""
1404 "struct timeval {\n"
1405 "    time_t      tv_sec;         /* seconds */\n"
1406 "    suseconds_t tv_usec;        /* microseconds */\n"
1407 "};\n"
1408
1409 #. type: Plain text
1410 #: build/C/man2/getitimer.2:90
1411 msgid ""
1412 "The function B<getitimer>()  fills the structure pointed to by I<curr_value> "
1413 "with the current value (i.e., the amount of time remaining until the next "
1414 "expiration)  of the timer specified by I<which> (one of B<ITIMER_REAL>, "
1415 "B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>).  The subfields of the field "
1416 "I<it_value> are set to the amount of time remaining on the timer, or zero if "
1417 "the timer is disabled.  The I<it_interval> field is set to the timer "
1418 "interval (period); a value of zero returned in (both subfields of) this "
1419 "field indicates that this is a single-shot timer."
1420 msgstr ""
1421 "B<getitimer>()  関数は、 I<which> で指定されたタイマー (B<ITIMER_REAL>, "
1422 "B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれか) の現在の値 (すなわち、次のタイ"
1423 "マー満了までの残り時間) を、 I<curr_value> で指定された構造体に格納する。 "
1424 "I<it_value> フィールドのサブフィールドにはタイマーの残り時間が設定される。 タ"
1425 "イマーが無効になっている場合は ゼロが設定される。 I<it_interval> フィールドに"
1426 "はタイマーのインターバル (期間) が設定される。 I<it_interval> (の両方のサブ"
1427 "フィールド) で値 0 が返された場合は、 このタイマーが 1 回限りのタイマーである"
1428 "ことを示している。"
1429
1430 #. type: Plain text
1431 #: build/C/man2/getitimer.2:101
1432 msgid ""
1433 "The function B<setitimer>()  sets the specified timer to the value in "
1434 "I<new_value>.  If I<old_value> is non-NULL, the old value of the timer (i."
1435 "e., the same information as returned by B<getitimer>())  is stored there."
1436 msgstr ""
1437 "B<setitimer>()  関数は指定されたタイマーに I<new_value> の値を設定する。 "
1438 "I<old_value> が NULL 以外の場合、タイマーの古い値 (すなわち B<getitimer>() で"
1439 "返されるのと同じ情報) が I<old_value> に格納される。"
1440
1441 #. type: Plain text
1442 #: build/C/man2/getitimer.2:111
1443 msgid ""
1444 "Timers decrement from I<it_value> to zero, generate a signal, and reset to "
1445 "I<it_interval>.  A timer which is set to zero (I<it_value> is zero or the "
1446 "timer expires and I<it_interval> is zero) stops."
1447 msgstr ""
1448 "タイマーは I<it_value> からゼロへ向けて減っていき、シグナルを生成し、 "
1449 "I<it_interval> に初期化される。 タイマーがゼロに設定された場合 (I<it_value> "
1450 "がゼロか、タイマーが満了した時に I<it_interval> がゼロの場合) は停止する。"
1451
1452 #. type: Plain text
1453 #: build/C/man2/getitimer.2:117
1454 msgid ""
1455 "Both I<tv_sec> and I<tv_usec> are significant in determining the duration of "
1456 "a timer."
1457 msgstr "タイマーの期間は I<tv_sec> と I<tv_usec> の両方により決定される。"
1458
1459 #. type: Plain text
1460 #: build/C/man2/getitimer.2:129
1461 msgid ""
1462 "Timers will never expire before the requested time, but may expire some "
1463 "(short) time afterward, which depends on the system timer resolution and on "
1464 "the system load; see B<time>(7).  (But see BUGS below.)  Upon expiration, a "
1465 "signal will be generated and the timer reset.  If the timer expires while "
1466 "the process is active (always true for B<ITIMER_VIRTUAL>), the signal will "
1467 "be delivered immediately when generated.  Otherwise, the delivery will be "
1468 "offset by a small time dependent on the system loading."
1469 msgstr ""
1470 "要求した時間がくる前にタイマーが満了することはないが、 逆にある (短い) 時間だ"
1471 "け満了が遅れることはある。 どれだけ遅れるかはシステムの時間分解能とシステムの"
1472 "負荷に依存する (B<time>(7)  参照; 但し、バグの項も参照のこと)。 タイマーが満"
1473 "了するとシグナルが生成され、タイマーは初期化される。 プロセスがアクティブな"
1474 "時 (B<ITIMER_VIRTUAL> の場合には常にそうである) にタイマーが満了した場合、生"
1475 "成されたシグナルは すぐに配送される。それ以外の場合は、システムの負荷により少"
1476 "しの時間だけ 遅れて配送される。"
1477
1478 #. type: Plain text
1479 #: build/C/man2/getitimer.2:134 build/C/man2/killpg.2:94
1480 #: build/C/man2/tkill.2:92
1481 msgid ""
1482 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1483 "appropriately."
1484 msgstr ""
1485 "成功した場合、0 が返される。エラーが発生した場合、-1 が返され、 I<errno> が適"
1486 "切に設定される。"
1487
1488 #. type: TP
1489 #: build/C/man2/getitimer.2:135 build/C/man2/prctl.2:905
1490 #: build/C/man2/prctl.2:909 build/C/man2/sigaction.2:734
1491 #: build/C/man2/sigaltstack.2:138 build/C/man2/sigpending.2:60
1492 #: build/C/man2/sigprocmask.2:100 build/C/man2/sigsuspend.2:77
1493 #: build/C/man2/timer_settime.2:184 build/C/man2/timerfd_create.2:349
1494 #, no-wrap
1495 msgid "B<EFAULT>"
1496 msgstr "B<EFAULT>"
1497
1498 #. type: Plain text
1499 #: build/C/man2/getitimer.2:142 build/C/man2/timerfd_create.2:356
1500 msgid "I<new_value>, I<old_value>, or I<curr_value> is not valid a pointer."
1501 msgstr "I<new_value>, I<old_value>, I<curr_value> が有効なポインタではない。"
1502
1503 #. type: Plain text
1504 #: build/C/man2/getitimer.2:155
1505 msgid ""
1506 "I<which> is not one of B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>; "
1507 "or (since Linux 2.6.22) one of the I<tv_usec> fields in the structure "
1508 "pointed to by I<new_value> contains a value outside the range 0 to 999999."
1509 msgstr ""
1510 "I<which> が B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれでもな"
1511 "い。 または (Linux 2.6.22 以降で)  I<new_value> で指定された構造体の "
1512 "I<tv_usec> フィールドの一つが 0 以上 999999 以下の範囲に入らない値である。"
1513
1514 #. type: Plain text
1515 #: build/C/man2/getitimer.2:165
1516 msgid ""
1517 "POSIX.1-2001, SVr4, 4.4BSD (this call first appeared in 4.2BSD).  "
1518 "POSIX.1-2008 marks B<getitimer>()  and B<setitimer>()  obsolete, "
1519 "recommending the use of the POSIX timers API (B<timer_gettime>(2), "
1520 "B<timer_settime>(2), etc.) instead."
1521 msgstr ""
1522 "POSIX.1-2001, SVr4, 4.4BSD (このコールは 4.2BSD で始めて現われた).  "
1523 "POSIX.1-2008 では、 B<getitimer>()  と B<setitimer>()  は廃止予定とされてお"
1524 "り、 代わりに POSIX タイマー API (B<timer_gettime>(2), B<timer_settime>(2)  "
1525 "など) を使うことが推奨されている。"
1526
1527 #. type: Plain text
1528 #: build/C/man2/getitimer.2:171
1529 msgid ""
1530 "A child created via B<fork>(2)  does not inherit its parent's interval "
1531 "timers.  Interval timers are preserved across an B<execve>(2)."
1532 msgstr ""
1533 "B<fork>(2)  で作成された子プロセスは、 親プロセスのインターバル・タイマーを継"
1534 "承しない。 B<execve>(2)  の前後ではインターバル・タイマーは保存される。"
1535
1536 #. type: Plain text
1537 #: build/C/man2/getitimer.2:181
1538 msgid ""
1539 "POSIX.1 leaves the interaction between B<setitimer>()  and the three "
1540 "interfaces B<alarm>(2), B<sleep>(3), and B<usleep>(3)  unspecified."
1541 msgstr ""
1542 "POSIX.1 では、 B<setitimer>()  と、 B<alarm>(2), B<sleep>(3), B<usleep>(3)  "
1543 "という 3 つのインタフェースとの相互の影響については規定していない。"
1544
1545 #. type: Plain text
1546 #: build/C/man2/getitimer.2:183
1547 msgid "The standards are silent on the meaning of the call:"
1548 msgstr "標準では、次の呼び出しの意味については規定されていない。"
1549
1550 #. type: Plain text
1551 #: build/C/man2/getitimer.2:185
1552 #, no-wrap
1553 msgid "    setitimer(which, NULL, &old_value);\n"
1554 msgstr "    setitimer(which, NULL, &old_value);\n"
1555
1556 #. type: Plain text
1557 #: build/C/man2/getitimer.2:188
1558 msgid ""
1559 "Many systems (Solaris, the BSDs, and perhaps others)  treat this as "
1560 "equivalent to:"
1561 msgstr ""
1562 "(Solaris, BSD 系やおそらく他のシステムもそうだが) 多くのシステムでは、この呼"
1563 "び出しは以下と等価である。"
1564
1565 #. type: Plain text
1566 #: build/C/man2/getitimer.2:190
1567 #, no-wrap
1568 msgid "    getitimer(which, &old_value);\n"
1569 msgstr "    getitimer(which, &old_value);\n"
1570
1571 #. type: Plain text
1572 #: build/C/man2/getitimer.2:196
1573 msgid ""
1574 "In Linux, this is treated as being equivalent to a call in which the "
1575 "I<new_value> fields are zero; that is, the timer is disabled.  I<Don't use "
1576 "this Linux misfeature>: it is nonportable and unnecessary."
1577 msgstr ""
1578 "Linux では、この呼び出しは I<new_value> フィールドが 0 の呼び出しと等価なもの"
1579 "と扱われる。 つまり、タイマーが無効になる。 I<Linux のこの間違った機能を使用"
1580 "しないこと>。移植性もなく、不必要な機能である。"
1581
1582 #. type: SH
1583 #: build/C/man2/getitimer.2:196 build/C/man2/kill.2:161
1584 #: build/C/man3/profil.3:72 build/C/man3/psignal.3:101
1585 #: build/C/man2/sigaction.2:849 build/C/man2/signalfd.2:352
1586 #: build/C/man2/sigpending.2:85 build/C/man3/sigset.3:232
1587 #: build/C/man2/timer_getoverrun.2:115 build/C/man2/timerfd_create.2:380
1588 #: build/C/man2/wait.2:537
1589 #, no-wrap
1590 msgid "BUGS"
1591 msgstr "バグ"
1592
1593 #. type: Plain text
1594 #: build/C/man2/getitimer.2:205
1595 msgid ""
1596 "The generation and delivery of a signal are distinct, and only one instance "
1597 "of each of the signals listed above may be pending for a process.  Under "
1598 "very heavy loading, an B<ITIMER_REAL> timer may expire before the signal "
1599 "from a previous expiration has been delivered.  The second signal in such an "
1600 "event will be lost."
1601 msgstr ""
1602 "シグナルの生成と配送は別個のものであり、 前述のシグナルのそれぞれについて一つ"
1603 "だけがプロセスのために 待機する。 非常に重い負荷の下では、 B<ITIMER_REAL> タ"
1604 "イマーでは、時間切れにより生成された一つ前のシグナルが配送される前に、 次の時"
1605 "間切れが起こる場合がある。 そのような場合、 2 個めのイベントに対するシグナル"
1606 "は失われてしまう。"
1607
1608 #. type: Plain text
1609 #: build/C/man2/getitimer.2:220
1610 msgid ""
1611 "On Linux kernels before 2.6.16, timer values are represented in jiffies.  If "
1612 "a request is made set a timer with a value whose jiffies representation "
1613 "exceeds B<MAX_SEC_IN_JIFFIES> (defined in I<include/linux/jiffies.h>), then "
1614 "the timer is silently truncated to this ceiling value.  On Linux/i386 "
1615 "(where, since Linux 2.6.13, the default jiffy is 0.004 seconds), this means "
1616 "that the ceiling value for a timer is approximately 99.42 days.  Since Linux "
1617 "2.6.16, the kernel uses a different internal representation for times, and "
1618 "this ceiling is removed."
1619 msgstr ""
1620 "バージョン 2.6.16 より前の Linux カーネルでは、 タイマーの値は jiffy で表現さ"
1621 "れる。 要求が jiffy 表現で (I<include/linux/jiffies.h> で定義されている)  "
1622 "B<MAX_SEC_IN_JIFFIES> を越える値をタイマーに設定しようとするものの場合、 タイ"
1623 "マーは暗黙にこの上限値に切り詰められる。 Linux/i386 の場合 (Linux 2.6.13 以降"
1624 "では jiffy は 0.004 秒) の場合、 これはタイマーの上限値がおよそ 99.42 日にな"
1625 "ることを意味する。 Linux 2.6.16 以降では、カーネルは時間に関する内部表現とし"
1626 "て 異なる表現を使うようになっており、この上限はなくなった。"
1627
1628 #.  4 Jul 2005: It looks like this bug may remain in 2.4.x.
1629 #.      http://lkml.org/lkml/2005/7/1/165
1630 #. type: Plain text
1631 #: build/C/man2/getitimer.2:227
1632 msgid ""
1633 "On certain systems (including i386), Linux kernels before version 2.6.12 "
1634 "have a bug which will produce premature timer expirations of up to one jiffy "
1635 "under some circumstances.  This bug is fixed in kernel 2.6.12."
1636 msgstr ""
1637 "(i386 を含む) いくつかのシステムでは、 バージョン 2.6.12 以前の Linux カーネ"
1638 "ルは ある種の状況では 1 jiffy 早くタイマーが終了してしまうというバグがあっ"
1639 "た。 このバグはカーネル 2.6.12 で修正された。"
1640
1641 #.  Bugzilla report 25 Apr 2006:
1642 #.  http://bugzilla.kernel.org/show_bug.cgi?id=6443
1643 #.  "setitimer() should reject noncanonical arguments"
1644 #. type: Plain text
1645 #: build/C/man2/getitimer.2:246
1646 msgid ""
1647 "POSIX.1-2001 says that B<setitimer>()  should fail if a I<tv_usec> value is "
1648 "specified that is outside of the range 0 to 999999.  However, in kernels up "
1649 "to and including 2.6.21, Linux does not give an error, but instead silently "
1650 "adjusts the corresponding seconds value for the timer.  From kernel 2.6.22 "
1651 "onward, this nonconformance has been repaired: an improper I<tv_usec> value "
1652 "results in an B<EINVAL> error."
1653 msgstr ""
1654 "POSIX.1-2001 では B<setitimer>()  は I<tv_usec> の値が 0 から 999999 の範囲外"
1655 "である場合には失敗するべきだとしている。 しかし、2.6.21 以前のカーネルの "
1656 "Linux ではエラーにならず、 対応する秒数の分だけそのタイマーの秒の値が暗黙に調"
1657 "整される。 カーネル 2.6.22 以降では、この標準非準拠の動作は修正され、 "
1658 "I<tv_usec> の値が不適切な場合には B<EINVAL> エラーとなる。"
1659
1660 #. type: Plain text
1661 #: build/C/man2/getitimer.2:253
1662 msgid ""
1663 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1664 "B<timerfd_create>(2), B<time>(7)"
1665 msgstr ""
1666 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1667 "B<timerfd_create>(2), B<time>(7)"
1668
1669 #. type: TH
1670 #: build/C/man3/gsignal.3:27
1671 #, no-wrap
1672 msgid "GSIGNAL"
1673 msgstr "GSIGNAL"
1674
1675 #. type: TH
1676 #: build/C/man3/gsignal.3:27
1677 #, no-wrap
1678 msgid "2007-07-26"
1679 msgstr "2007-07-26"
1680
1681 #. type: Plain text
1682 #: build/C/man3/gsignal.3:30
1683 msgid "gsignal, ssignal - software signal facility"
1684 msgstr "gsignal, ssignal - ソフトウェア・シグナル機能"
1685
1686 #. type: Plain text
1687 #: build/C/man3/gsignal.3:33 build/C/man2/kill.2:52 build/C/man3/psignal.3:36
1688 #: build/C/man3/raise.3:35 build/C/man2/sigaction.2:55
1689 #: build/C/man3/siginterrupt.3:37 build/C/man3/sigpause.3:31
1690 #: build/C/man3/sigwait.3:32 build/C/man2/sigwaitinfo.2:31
1691 #, no-wrap
1692 msgid "B<#include E<lt>signal.hE<gt>>\n"
1693 msgstr "B<#include E<lt>signal.hE<gt>>\n"
1694
1695 #. type: Plain text
1696 #: build/C/man3/gsignal.3:35
1697 #, no-wrap
1698 msgid "B<typedef void (*sighandler_t)(int);>\n"
1699 msgstr "B<typedef void (*sighandler_t)(int);>\n"
1700
1701 #. type: Plain text
1702 #: build/C/man3/gsignal.3:37
1703 #, no-wrap
1704 msgid "B<int gsignal(int >I<signum>B<);>\n"
1705 msgstr "B<int gsignal(int >I<signum>B<);>\n"
1706
1707 #. type: Plain text
1708 #: build/C/man3/gsignal.3:39
1709 #, no-wrap
1710 msgid "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1711 msgstr "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1712
1713 #. type: Plain text
1714 #: build/C/man3/gsignal.3:44 build/C/man2/kill.2:59 build/C/man2/killpg.2:53
1715 #: build/C/man3/profil.3:42 build/C/man3/psignal.3:46
1716 #: build/C/man2/sigaction.2:63 build/C/man2/sigaltstack.2:38
1717 #: build/C/man3/siginterrupt.3:44 build/C/man2/sigpending.2:40
1718 #: build/C/man2/sigprocmask.2:41 build/C/man3/sigqueue.3:39
1719 #: build/C/man3/sigset.3:45 build/C/man3/sigsetops.3:51
1720 #: build/C/man2/sigsuspend.2:40 build/C/man3/sigvec.3:45
1721 #: build/C/man3/sigwait.3:39 build/C/man2/sigwaitinfo.2:41
1722 #: build/C/man2/timer_create.2:50 build/C/man2/timer_delete.2:41
1723 #: build/C/man2/timer_getoverrun.2:41 build/C/man2/timer_settime.2:45
1724 #: build/C/man2/wait.2:69 build/C/man2/wait4.2:53
1725 msgid ""
1726 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
1727 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7)  参照):"
1728
1729 #. type: Plain text
1730 #: build/C/man3/gsignal.3:49
1731 msgid "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1732 msgstr "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1733
1734 #. type: Plain text
1735 #: build/C/man3/gsignal.3:57
1736 msgid ""
1737 "Don't use these functions under Linux.  Due to a historical mistake, under "
1738 "Linux these functions are aliases for B<raise>(3)  and B<signal>(2), "
1739 "respectively."
1740 msgstr ""
1741 "Linux ではこれらの関数を使用しないこと。 過去に間違いがあり、Linux では "
1742 "B<gsignal>()  と B<ssignal>()  はそれぞれ B<raise>(3)  と B<signal>(2)  の別"
1743 "名になっている。"
1744
1745 #. type: Plain text
1746 #: build/C/man3/gsignal.3:95
1747 msgid ""
1748 "Elsewhere, on System V-like systems, these functions implement software "
1749 "signaling, entirely independent of the classical B<signal>(2)  and "
1750 "B<kill>(2)  functions.  The function B<ssignal>()  defines the action to "
1751 "take when the software signal with number I<signum> is raised using the "
1752 "function B<gsignal>(), and returns the previous such action or B<SIG_DFL>.  "
1753 "The function B<gsignal>()  does the following: if no action (or the action "
1754 "B<SIG_DFL>)  was specified for I<signum>, then it does nothing and returns "
1755 "0.  If the action B<SIG_IGN> was specified for I<signum>, then it does "
1756 "nothing and returns 1.  Otherwise, it resets the action to B<SIG_DFL> and "
1757 "calls the action function with argument I<signum>, and returns the value "
1758 "returned by that function.  The range of possible values I<signum> varies "
1759 "(often 1-15 or 1-17)."
1760 msgstr ""
1761 "一方、System V 風のシステムでは、これらの関数で、 従来の B<signal>(2)  や "
1762 "B<kill>(2)  の関数群とは完全に独立な、 ソフトウェア・シグナリングを実現してい"
1763 "る。 B<ssignal>()  関数は、番号 I<signum> のソフトウェア・シグナルが "
1764 "B<gsignal>()  関数を使って発生された時にとるべきアクションを定義する。 "
1765 "B<gsignal>()  の返り値は、一つ前に指定されていたアクション、もしくは "
1766 "B<SIG_DFL> である。 B<gsignal>()  は以下のような動作を行う: I<signum> に対し"
1767 "てアクションが指定されていないか、アクション B<SIG_DFL> が指定されていた場"
1768 "合、何もせずに 0 を返す。 I<signum> に対して アクション B<SIG_IGN> が指定され"
1769 "ていた場合、何もせずに 1 を返す。 それ以外の場合、アクションを B<SIG_DFL> に"
1770 "リセットし、引き数に I<signum> を指定してアクション関数を呼び出して、アクショ"
1771 "ン関数の返り値を返す。 I<signum> がとり得る値の範囲は実装により異なる (多くの"
1772 "場合 1〜15 か 1〜17 である)。"
1773
1774 #. type: Plain text
1775 #: build/C/man3/gsignal.3:103
1776 msgid ""
1777 "These functions are available under AIX, DG/UX, HP-UX, SCO, Solaris, Tru64.  "
1778 "They are called obsolete under most of these systems, and are broken under "
1779 "Linux libc and glibc.  Some systems also have B<gsignal_r>()  and "
1780 "B<ssignal_r>()."
1781 msgstr ""
1782 "これらの関数は、AIX, DG/UX, HP-UX, SCO, Solaris, Tru64 で使用可能である。 こ"
1783 "れらのシステムのほとんどで廃止されたことになっており、 Linux の libc および "
1784 "glibc では正しく実装されていない。 B<gsignal_r>()  と B<ssignal_r>()  が実装"
1785 "されているシステムもある。"
1786
1787 #. type: Plain text
1788 #: build/C/man3/gsignal.3:107
1789 msgid "B<kill>(2), B<signal>(2), B<raise>(3)"
1790 msgstr "B<kill>(2), B<signal>(2), B<raise>(3)"
1791
1792 #. type: TH
1793 #: build/C/man2/kill.2:44
1794 #, no-wrap
1795 msgid "KILL"
1796 msgstr "KILL"
1797
1798 #. type: TH
1799 #: build/C/man2/kill.2:44
1800 #, no-wrap
1801 msgid "2013-09-17"
1802 msgstr "2013-09-17"
1803
1804 #. type: Plain text
1805 #: build/C/man2/kill.2:47
1806 msgid "kill - send signal to a process"
1807 msgstr "kill - プロセスにシグナルを送る"
1808
1809 #. type: Plain text
1810 #: build/C/man2/kill.2:50
1811 #, no-wrap
1812 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
1813 msgstr "B<#include E<lt>sys/types.hE<gt>>\n"
1814
1815 #. type: Plain text
1816 #: build/C/man2/kill.2:54
1817 #, no-wrap
1818 msgid "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1819 msgstr "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1820
1821 #. type: Plain text
1822 #: build/C/man2/kill.2:64
1823 msgid ""
1824 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1825 msgstr ""
1826 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1827
1828 #. type: Plain text
1829 #: build/C/man2/kill.2:70
1830 msgid ""
1831 "The B<kill>()  system call can be used to send any signal to any process "
1832 "group or process."
1833 msgstr ""
1834 "システムコールの B<kill>()  は、任意のプロセス・グループもしくはプロセスにシ"
1835 "グナルを 送るのに使われる。"
1836
1837 #. type: Plain text
1838 #: build/C/man2/kill.2:73
1839 msgid ""
1840 "If I<pid> is positive, then signal I<sig> is sent to the process with the ID "
1841 "specified by I<pid>."
1842 msgstr ""
1843 "I<pid> に正の値を指定した場合、シグナル I<sig> が I<pid> で指定された ID を持"
1844 "つプロセスに送られる。"
1845
1846 #. type: Plain text
1847 #: build/C/man2/kill.2:76
1848 msgid ""
1849 "If I<pid> equals 0, then I<sig> is sent to every process in the process "
1850 "group of the calling process."
1851 msgstr ""
1852 "I<pid> に 0 を指定した場合、 呼び出し元のプロセスのプロセス・グループに属する"
1853 "すべてのプロセスに I<sig> で指定したシグナルが送られる。"
1854
1855 #. type: Plain text
1856 #: build/C/man2/kill.2:80
1857 msgid ""
1858 "If I<pid> equals -1, then I<sig> is sent to every process for which the "
1859 "calling process has permission to send signals, except for process 1 "
1860 "(I<init>), but see below."
1861 msgstr ""
1862 "I<pid> に -1 を指定した場合、 I<sig> で指定したシグナルが、 呼び出し元のプロ"
1863 "セスがシグナルを送る許可を持つ全てのプロセスに 送られる。但し、プロセス番号 "
1864 "1 (I<init>) へはシグナルは送られない。 以下の関連部分も参照のこと。"
1865
1866 #. type: Plain text
1867 #: build/C/man2/kill.2:83
1868 msgid ""
1869 "If I<pid> is less than -1, then I<sig> is sent to every process in the "
1870 "process group whose ID is I<-pid>."
1871 msgstr ""
1872 "I<pid> に -1 より小さな値を指定した場合、 ID が I<-pid> のプロセス・グループ"
1873 "に属するすべてのプロセスに I<sig> で指定したシグナルが送られる。"
1874
1875 #. type: Plain text
1876 #: build/C/man2/kill.2:88
1877 msgid ""
1878 "If I<sig> is 0, then no signal is sent, but error checking is still "
1879 "performed; this can be used to check for the existence of a process ID or "
1880 "process group ID."
1881 msgstr ""
1882 "I<sig> に 0 を指定した場合、シグナルは送られないが、 エラーのチェックは行われ"
1883 "る。これを使って、プロセス ID や プロセスグループ ID の存在確認を行うことがで"
1884 "きる。"
1885
1886 #. type: Plain text
1887 #: build/C/man2/kill.2:100
1888 msgid ""
1889 "For a process to have permission to send a signal it must either be "
1890 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
1891 "effective user ID of the sending process must equal the real or saved set-"
1892 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
1893 "the sending and receiving processes belong to the same session.  "
1894 "(Historically, the rules were different; see NOTES.)"
1895 msgstr ""
1896 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
1897 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
1898 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
1899 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
1900 "プロセスが 同じセッションに属していれば十分である。 (過去には、 ルールは違っ"
1901 "ていた; 「注意」の節を参照。)"
1902
1903 #. type: Plain text
1904 #: build/C/man2/kill.2:105
1905 msgid ""
1906 "On success (at least one signal was sent), zero is returned.  On error, -1 "
1907 "is returned, and I<errno> is set appropriately."
1908 msgstr ""
1909 "成功した場合 (少なくとも一つのシグナルが送信された場合)、 0 が返される。エ"
1910 "ラーの場合 -1 が返され、 I<errno> が適切に設定される。"
1911
1912 #. type: Plain text
1913 #: build/C/man2/kill.2:109
1914 msgid "An invalid signal was specified."
1915 msgstr "無効なシグナルを指定した。"
1916
1917 #. type: TP
1918 #: build/C/man2/kill.2:109 build/C/man2/killpg.2:99 build/C/man2/prctl.2:1090
1919 #: build/C/man2/prctl.2:1102 build/C/man2/prctl.2:1112
1920 #: build/C/man2/prctl.2:1120 build/C/man2/rt_sigqueueinfo.2:148
1921 #: build/C/man2/sigaltstack.2:153 build/C/man3/sigqueue.3:102
1922 #: build/C/man2/tkill.2:96
1923 #, no-wrap
1924 msgid "B<EPERM>"
1925 msgstr "B<EPERM>"
1926
1927 #. type: Plain text
1928 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103
1929 msgid ""
1930 "The process does not have permission to send the signal to any of the target "
1931 "processes."
1932 msgstr ""
1933 "プロセスが、受信するプロセスのいずれに対しても シグナルを送る許可を持っていな"
1934 "い。"
1935
1936 #. type: TP
1937 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103 build/C/man2/killpg.2:107
1938 #: build/C/man2/rt_sigqueueinfo.2:156 build/C/man3/sigqueue.3:108
1939 #: build/C/man2/tkill.2:101
1940 #, no-wrap
1941 msgid "B<ESRCH>"
1942 msgstr "B<ESRCH>"
1943
1944 #. type: Plain text
1945 #: build/C/man2/kill.2:121
1946 msgid ""
1947 "The pid or process group does not exist.  Note that an existing process "
1948 "might be a zombie, a process which already committed termination, but has "
1949 "not yet been B<wait>(2)ed for."
1950 msgstr ""
1951 "指定したプロセスまたはプロセス・グループが存在しなかった。 ゾンビプロセスは存"
1952 "在するプロセスとしてみなされる。 ゾンビプロセスとはすでに処理は終了している"
1953 "が、親プロセスによる B<wait>()  処理が行われていないプロセスのことである。"
1954
1955 #. type: Plain text
1956 #: build/C/man2/kill.2:123 build/C/man2/pause.2:59 build/C/man2/wait.2:425
1957 msgid "SVr4, 4.3BSD, POSIX.1-2001."
1958 msgstr "SVr4, 4.3BSD, POSIX.1-2001."
1959
1960 #. type: Plain text
1961 #: build/C/man2/kill.2:131
1962 msgid ""
1963 "The only signals that can be sent to process ID 1, the I<init> process, are "
1964 "those for which I<init> has explicitly installed signal handlers.  This is "
1965 "done to assure the system is not brought down accidentally."
1966 msgstr ""
1967 "プロセス番号 1 の I<init> プロセスに送ることができるシグナルは、 I<init> が明"
1968 "示的にシグナルハンドラを設定したシグナルだけである。 こうなっているのは、誤っ"
1969 "てシステムをダウンさせないようにするためである。"
1970
1971 #. type: Plain text
1972 #: build/C/man2/kill.2:137
1973 msgid ""
1974 "POSIX.1-2001 requires that I<kill(-1,sig)> send I<sig> to all processes that "
1975 "the calling process may send signals to, except possibly for some "
1976 "implementation-defined system processes.  Linux allows a process to signal "
1977 "itself, but on Linux the call I<kill(-1,sig)> does not signal the calling "
1978 "process."
1979 msgstr ""
1980 "POSIX.1-2001 では、 I<kill(-1,sig)> が 呼び出し元のプロセスがシグナルを送るこ"
1981 "とが出来るプロセス全てに I<sig> を送ることを要求している。 但し、システム実装"
1982 "時に定められたシステムプロセスは シグナルの送信対象から除外される。 Linux で"
1983 "は、プロセスが自分自身にシグナルを送れるようになっているが、 Linux の "
1984 "I<kill(-1,sig)> は呼び出し元のプロセスにはシグナルを送らない。"
1985
1986 #. type: Plain text
1987 #: build/C/man2/kill.2:147
1988 msgid ""
1989 "POSIX.1-2001 requires that if a process sends a signal to itself, and the "
1990 "sending thread does not have the signal blocked, and no other thread has it "
1991 "unblocked or is waiting for it in B<sigwait>(3), at least one unblocked "
1992 "signal must be delivered to the sending thread before the B<kill>()  returns."
1993 msgstr ""
1994 "POSIX.1-2001 では以下の動作になることを要求している。 自分自身にシグナルを送"
1995 "ると、シグナルを送ったスレッドがそのシグナルをブロック しておらず、他のどのス"
1996 "レッドもそのシグナルを受ける状態にもなく B<sigwait>(3)  でそのシグナルを待っ"
1997 "てもいない場合、 B<kill>()  が返る前に少なくとも一つのブロックされていない シ"
1998 "グナルがシグナルを送ったスレッドに配送されなければならない。"
1999
2000 #. type: SS
2001 #: build/C/man2/kill.2:147 build/C/man3/sigpause.3:82 build/C/man2/wait.2:480
2002 #, no-wrap
2003 msgid "Linux notes"
2004 msgstr "Linux での注意"
2005
2006 #.  In the 0.* kernels things chopped and changed quite
2007 #.  a bit - MTK, 24 Jul 02
2008 #. type: Plain text
2009 #: build/C/man2/kill.2:161
2010 msgid ""
2011 "Across different kernel versions, Linux has enforced different rules for the "
2012 "permissions required for an unprivileged process to send a signal to another "
2013 "process.  In kernels 1.0 to 1.2.2, a signal could be sent if the effective "
2014 "user ID of the sender matched effective user ID of the target, or the real "
2015 "user ID of the sender matched the real user ID of the target.  From kernel "
2016 "1.2.3 until 1.3.77, a signal could be sent if the effective user ID of the "
2017 "sender matched either the real or effective user ID of the target.  The "
2018 "current rules, which conform to POSIX.1-2001, were adopted in kernel 1.3.78."
2019 msgstr ""
2020 "Linux では、特権のないプロセスが他のプロセスにシグナルを送信するために必要な"
2021 "権限についてのルールが、カーネルバージョンにより違っている。 カーネル 1.0 か"
2022 "ら 1.2.2 では、送信側の実効ユーザー ID が送信対象の実効ユーザー ID と一致する"
2023 "か、 送信側の実ユーザー ID が送信対象の実ユーザー ID と一致すれば、 シグナル"
2024 "を送信できた。 カーネル 1.2.3 から 1.3.77では、送信側の実効ユーザー ID が送信"
2025 "対象の実ユーザー ID か実効ユーザー ID のいずれかと一致すればシグナルを送信で"
2026 "きた。 現在のルールは、POSIX.1-2001 に準拠しており、カーネル 1.3.78 以降で 適"
2027 "用されている。"
2028
2029 #. type: Plain text
2030 #: build/C/man2/kill.2:171
2031 msgid ""
2032 "In 2.6 kernels up to and including 2.6.7, there was a bug that meant that "
2033 "when sending signals to a process group, B<kill>()  failed with the error "
2034 "B<EPERM> if the caller did not have permission to send the signal to I<any> "
2035 "(rather than I<all>) of the members of the process group.  Notwithstanding "
2036 "this error return, the signal was still delivered to all of the processes "
2037 "for which the caller had permission to signal."
2038 msgstr ""
2039 "バージョン 2.6.7 以前の 2.6 系のカーネルには、 プロセスグループにシグナルを"
2040 "送ったときに、 呼び出し元のプロセスがプロセスグループの (全メンバーではなく) "
2041 "一部のメンバーに対してのみシグナルを送る許可を持っていない場合に、 "
2042 "B<kill>()  がエラー B<EPERM> で失敗するというバグがある。 このエラーが返るに"
2043 "もかかわらず、そのシグナルは呼び出し元が シグナルを送る許可を持つ全てのプロセ"
2044 "スへ送られる。"
2045
2046 #. type: Plain text
2047 #: build/C/man2/kill.2:181
2048 msgid ""
2049 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), "
2050 "B<sigqueue>(3), B<capabilities>(7), B<credentials>(7), B<signal>(7)"
2051 msgstr ""
2052 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), "
2053 "B<sigqueue>(3), B<credentials>(7), B<capabilities>(7), B<signal>(7)"
2054
2055 #. type: TH
2056 #: build/C/man2/killpg.2:42
2057 #, no-wrap
2058 msgid "KILLPG"
2059 msgstr "KILLPG"
2060
2061 #. type: TH
2062 #: build/C/man2/killpg.2:42 build/C/man3/sigset.3:26
2063 #, no-wrap
2064 msgid "2010-09-20"
2065 msgstr "2010-09-20"
2066
2067 #. type: Plain text
2068 #: build/C/man2/killpg.2:45
2069 msgid "killpg - send signal to a process group"
2070 msgstr "killpg - シグナルをプロセス・グループに送る"
2071
2072 #. type: Plain text
2073 #: build/C/man2/killpg.2:49
2074 msgid "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2075 msgstr "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2076
2077 #. type: TP
2078 #: build/C/man2/killpg.2:55
2079 #, no-wrap
2080 msgid "B<killpg>():"
2081 msgstr "B<killpg>():"
2082
2083 #. type: Plain text
2084 #: build/C/man2/killpg.2:59 build/C/man2/sigaltstack.2:46
2085 #: build/C/man3/siginterrupt.3:51 build/C/man2/wait4.2:60
2086 msgid ""
2087 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2088 "_XOPEN_SOURCE_EXTENDED"
2089 msgstr ""
2090 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2091 "_XOPEN_SOURCE_EXTENDED"
2092
2093 #. type: Plain text
2094 #: build/C/man2/killpg.2:69
2095 msgid ""
2096 "B<killpg>()  sends the signal I<sig> to the process group I<pgrp>.  See "
2097 "B<signal>(7)  for a list of signals."
2098 msgstr ""
2099 "B<killpg>()  は I<sig> で指定したシグナルを I<pgrp> で指定したプロセス・グ"
2100 "ループに送る。 シグナルの定義の一覧は B<signal>(7)  を参照のこと。"
2101
2102 #. type: Plain text
2103 #: build/C/man2/killpg.2:78
2104 msgid ""
2105 "If I<pgrp> is 0, B<killpg>()  sends the signal to the calling process's "
2106 "process group.  (POSIX says: If I<pgrp> is less than or equal to 1, the "
2107 "behavior is undefined.)"
2108 msgstr ""
2109 "引き数 I<pgrp> に 0 を指定した場合には B<killpg>()  は呼び出し元のプロセスが"
2110 "属しているプロセス・グループに対してシグナルを送る。 (POSIX では以下のように"
2111 "記述されている: I<pgrp> が 1 以下である場合、動作は未定義である。)"
2112
2113 #. type: Plain text
2114 #: build/C/man2/killpg.2:89
2115 msgid ""
2116 "For a process to have permission to send a signal it must either be "
2117 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
2118 "effective user ID of the sending process must equal the real or saved set-"
2119 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
2120 "the sending and receiving processes belong to the same session."
2121 msgstr ""
2122 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
2123 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
2124 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
2125 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
2126 "プロセスが 同じセッションに属していれば十分である。"
2127
2128 #. type: Plain text
2129 #: build/C/man2/killpg.2:99
2130 msgid "I<sig> is not a valid signal number."
2131 msgstr "I<sig> で指定された値は無効なシグナル番号である。"
2132
2133 #. type: Plain text
2134 #: build/C/man2/killpg.2:107
2135 msgid "No process can be found in the process group specified by I<pgrp>."
2136 msgstr ""
2137 "I<pgrp> で指定されたプロセス・グループに属するプロセスが存在しなかった。"
2138
2139 #. type: Plain text
2140 #: build/C/man2/killpg.2:111
2141 msgid ""
2142 "The process group was given as 0 but the sending process does not have a "
2143 "process group."
2144 msgstr ""
2145 "プロセス・グループとして 0 が指定されたが、送信プロセスは プロセス・グループ"
2146 "を持っていない。"
2147
2148 #. type: Plain text
2149 #: build/C/man2/killpg.2:115
2150 msgid ""
2151 "SVr4, 4.4BSD (the B<killpg>()  function call first appeared in 4BSD), "
2152 "POSIX.1-2001."
2153 msgstr "SVr4, 4.4BSD (B<killpg>()  は 4BSD で初めて追加された), POSIX.1-2001。"
2154
2155 #. type: Plain text
2156 #: build/C/man2/killpg.2:129
2157 msgid ""
2158 "There are various differences between the permission checking in BSD-type "
2159 "systems and System\\ V-type systems.  See the POSIX rationale for "
2160 "B<kill>().  A difference not mentioned by POSIX concerns the return value "
2161 "B<EPERM>: BSD documents that no signal is sent and B<EPERM> returned when "
2162 "the permission check failed for at least one target process, while POSIX "
2163 "documents B<EPERM> only when the permission check failed for all target "
2164 "processes."
2165 msgstr ""
2166 "BSD 系システムと System\\ V 系システムでは、 許可のチェックに様々な違いがあ"
2167 "る。 B<kill>(2)  についての POSIX の原理 (rationale) を参照すること。 POSIX "
2168 "で記述されていない違いとしては、返り値 B<EPERM> がある。 BSD では「送信先プロ"
2169 "セスの許可のチェックが 1 つでも失敗した場合は、 シグナルが送信されず、 "
2170 "B<EPERM> が返される」と記述されている。 POSIX では「送信先プロセスの許可の"
2171 "チェックが全て失敗した場合にのみ、 B<EPERM> が返される」と記述されている。"
2172
2173 #. type: Plain text
2174 #: build/C/man2/killpg.2:134
2175 msgid ""
2176 "On Linux, B<killpg>()  is implemented as a library function that makes the "
2177 "call I<kill(-pgrp,\\ sig)>."
2178 msgstr ""
2179 "Linux では、 B<killpg>()  はライブラリ関数として実装されており、 I<kill(-"
2180 "pgrp,\\ sig)> の呼び出しが行われる。"
2181
2182 #. type: Plain text
2183 #: build/C/man2/killpg.2:140
2184 msgid ""
2185 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<capabilities>(7), "
2186 "B<credentials>(7)"
2187 msgstr ""
2188 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<credentials>(7), "
2189 "B<capabilities>(7)"
2190
2191 #. type: TH
2192 #: build/C/man2/pause.2:30
2193 #, no-wrap
2194 msgid "PAUSE"
2195 msgstr "PAUSE"
2196
2197 #. type: TH
2198 #: build/C/man2/pause.2:30
2199 #, no-wrap
2200 msgid "2008-10-06"
2201 msgstr "2008-10-06"
2202
2203 #. type: Plain text
2204 #: build/C/man2/pause.2:33
2205 msgid "pause - wait for signal"
2206 msgstr "pause - シグナルを待つ"
2207
2208 #. type: Plain text
2209 #: build/C/man2/pause.2:35
2210 msgid "B<#include E<lt>unistd.hE<gt>>"
2211 msgstr "B<#include E<lt>unistd.hE<gt>>"
2212
2213 #. type: Plain text
2214 #: build/C/man2/pause.2:37
2215 msgid "B<int pause(void);>"
2216 msgstr "B<int pause(void);>"
2217
2218 #. type: Plain text
2219 #: build/C/man2/pause.2:42
2220 msgid ""
2221 "B<pause>()  causes the calling process (or thread) to sleep until a signal "
2222 "is delivered that either terminates the process or causes the invocation of "
2223 "a signal-catching function."
2224 msgstr ""
2225 "B<pause>()  は、呼び出したプロセス (またはスレッド) を、 そのプロセスを終了さ"
2226 "せたり、シグナル捕捉関数が起動されるような シグナルが配送されるまで、スリープ"
2227 "させる。"
2228
2229 #.  .BR ERESTARTNOHAND .
2230 #. type: Plain text
2231 #: build/C/man2/pause.2:53
2232 msgid ""
2233 "B<pause>()  returns only when a signal was caught and the signal-catching "
2234 "function returned.  In this case, B<pause>()  returns -1, and I<errno> is "
2235 "set to B<EINTR>."
2236 msgstr ""
2237 "B<pause>()  が返るのは、シグナルを受け取りシグナル捕獲関数から返った場合だけ"
2238 "である。 この場合は B<pause>()  は -1 を返し、 I<errno> に B<EINTR> が設定さ"
2239 "れる。"
2240
2241 #. type: TP
2242 #: build/C/man2/pause.2:54 build/C/man2/sigsuspend.2:81
2243 #: build/C/man2/sigwaitinfo.2:123 build/C/man2/wait.2:411
2244 #, no-wrap
2245 msgid "B<EINTR>"
2246 msgstr "B<EINTR>"
2247
2248 #. type: Plain text
2249 #: build/C/man2/pause.2:57
2250 msgid "a signal was caught and the signal-catching function returned."
2251 msgstr "シグナルを受け取り、シグナル捕獲関数から帰ってきた。"
2252
2253 #. type: Plain text
2254 #: build/C/man2/pause.2:64
2255 msgid "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2256 msgstr "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2257
2258 #. type: TH
2259 #: build/C/man2/prctl.2:54
2260 #, no-wrap
2261 msgid "PRCTL"
2262 msgstr "PRCTL"
2263
2264 #. type: TH
2265 #: build/C/man2/prctl.2:54 build/C/man2/restart_syscall.2:33
2266 #: build/C/man2/sgetmask.2:26 build/C/man7/signal.7:46
2267 #: build/C/man2/sigreturn.2:30 build/C/man3/sigvec.3:26
2268 #: build/C/man2/tkill.2:29
2269 #, no-wrap
2270 msgid "2014-12-31"
2271 msgstr "2014-12-31"
2272
2273 #. type: Plain text
2274 #: build/C/man2/prctl.2:57
2275 msgid "prctl - operations on a process"
2276 msgstr "prctl - プロセスの操作を行なう"
2277
2278 #. type: Plain text
2279 #: build/C/man2/prctl.2:60
2280 #, no-wrap
2281 msgid "B<#include E<lt>sys/prctl.hE<gt>>\n"
2282 msgstr "B<#include E<lt>sys/prctl.hE<gt>>\n"
2283
2284 #. type: Plain text
2285 #: build/C/man2/prctl.2:63
2286 #, no-wrap
2287 msgid ""
2288 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2289 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2290 msgstr ""
2291 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2292 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2293
2294 #. type: Plain text
2295 #: build/C/man2/prctl.2:70
2296 msgid ""
2297 "B<prctl>()  is called with a first argument describing what to do (with "
2298 "values defined in I<E<lt>linux/prctl.hE<gt>>), and further arguments with a "
2299 "significance depending on the first one.  The first argument can be:"
2300 msgstr ""
2301 "B<prctl>()  の動作は最初の引き数によって決定される (この値は I<E<lt>linux/"
2302 "prctl.hE<gt>> に定義されている)。 残りの引き数は最初の引き数によって変化す"
2303 "る。 一番目の引き数として以下のものを指定できる:"
2304
2305 #. type: TP
2306 #: build/C/man2/prctl.2:70
2307 #, no-wrap
2308 msgid "B<PR_CAPBSET_READ> (since Linux 2.6.25)"
2309 msgstr "B<PR_CAPBSET_READ> (Linux 2.6.25 以降)"
2310
2311 #. type: Plain text
2312 #: build/C/man2/prctl.2:82
2313 msgid ""
2314 "Return (as the function result) 1 if the capability specified in I<arg2> is "
2315 "in the calling thread's capability bounding set, or 0 if it is not.  (The "
2316 "capability constants are defined in I<E<lt>linux/capability.hE<gt>>.)  The "
2317 "capability bounding set dictates whether the process can receive the "
2318 "capability through a file's permitted capability set on a subsequent call to "
2319 "B<execve>(2)."
2320 msgstr ""
2321 "で指定されたケーパビリティが呼び出したスレッドのケーパビリティ バインディング"
2322 "セット (capability bounding set) に含まれている場合、 (関数の結果として) 1 を"
2323 "返し、そうでない場合 0 を返す (ケーパビリティ定数は I<E<lt>linux/capability."
2324 "hE<gt>> で定義されている)。 ケーパビリティバウンディングセットは、 "
2325 "B<execve>(2)  を呼び出した際に、ファイルの許可 (permitted) ケーパビリティの中"
2326 "で そのプロセスが獲得できるケーパビリティを指示するものである。"
2327
2328 #. type: Plain text
2329 #: build/C/man2/prctl.2:87
2330 msgid ""
2331 "If the capability specified in I<arg2> is not valid, then the call fails "
2332 "with the error B<EINVAL>."
2333 msgstr ""
2334 "I<arg2> に指定されたケーパビリティが有効でない場合、 呼び出しはエラー "
2335 "B<EINVAL> で失敗する。"
2336
2337 #. type: TP
2338 #: build/C/man2/prctl.2:87
2339 #, no-wrap
2340 msgid "B<PR_CAPBSET_DROP> (since Linux 2.6.25)"
2341 msgstr "B<PR_CAPBSET_DROP> (Linux 2.6.25 以降)"
2342
2343 #. type: Plain text
2344 #: build/C/man2/prctl.2:96
2345 msgid ""
2346 "If the calling thread has the B<CAP_SETPCAP> capability, then drop the "
2347 "capability specified by I<arg2> from the calling thread's capability "
2348 "bounding set.  Any children of the calling thread will inherit the newly "
2349 "reduced bounding set."
2350 msgstr ""
2351 "呼び出したスレッドがケーパビリティ B<CAP_SETPCAP> を持っている場合、 呼び出し"
2352 "たスレッドのケーパビリティバウンディングセットから I<arg2> で指定されたケーパ"
2353 "ビリティを外す。 呼び出したスレッドの子プロセスは変更後のバウンディングセット"
2354 "を 継承する。"
2355
2356 #. type: Plain text
2357 #: build/C/man2/prctl.2:108
2358 msgid ""
2359 "The call fails with the error: B<EPERM> if the calling thread does not have "
2360 "the B<CAP_SETPCAP>; B<EINVAL> if I<arg2> does not represent a valid "
2361 "capability; or B<EINVAL> if file capabilities are not enabled in the kernel, "
2362 "in which case bounding sets are not supported."
2363 msgstr ""
2364 "呼び出したスレッドが B<CAP_SETPCAP> を持っていない場合、呼び出しはエラー "
2365 "B<EPERM> で失敗する。 I<arg2> に指定されたケーパビリティが有効でない場合、 "
2366 "B<EINVAL> で失敗する。 ファイルケーパビリティがカーネルで有効になっていない場"
2367 "合 (この場合にはバウンディングセットがサポートされない)、 B<EINVAL> で失敗す"
2368 "る。"
2369
2370 #. type: TP
2371 #: build/C/man2/prctl.2:108
2372 #, no-wrap
2373 msgid "B<PR_SET_CHILD_SUBREAPER> (since Linux 3.4)"
2374 msgstr "B<PR_SET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2375
2376 #.  commit ebec18a6d3aa1e7d84aab16225e87fd25170ec2b
2377 #. type: Plain text
2378 #: build/C/man2/prctl.2:133
2379 msgid ""
2380 "If I<arg2> is nonzero, set the \"child subreaper\" attribute of the calling "
2381 "process; if I<arg2> is zero, unset the attribute.  When a process is marked "
2382 "as a child subreaper, all of the children that it creates, and their "
2383 "descendants, will be marked as having a subreaper.  In effect, a subreaper "
2384 "fulfills the role of B<init>(1)  for its descendant processes.  Upon "
2385 "termination of a process that is orphaned (i.e., its immediate parent has "
2386 "already terminated)  and marked as having a subreaper, the nearest still "
2387 "living ancestor subreaper will receive a B<SIGCHLD> signal and be able to "
2388 "B<wait>(2)  on the process to discover its termination status."
2389 msgstr ""
2390
2391 #. type: TP
2392 #: build/C/man2/prctl.2:133
2393 #, no-wrap
2394 msgid "B<PR_GET_CHILD_SUBREAPER> (since Linux 3.4)"
2395 msgstr "B<PR_GET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2396
2397 #. type: Plain text
2398 #: build/C/man2/prctl.2:138
2399 msgid ""
2400 "Return the \"child subreaper\" setting of the caller, in the location "
2401 "pointed to by I<(int\\ *) arg2>."
2402 msgstr ""
2403
2404 #. type: TP
2405 #: build/C/man2/prctl.2:138
2406 #, no-wrap
2407 msgid "B<PR_SET_DUMPABLE> (since Linux 2.3.20)"
2408 msgstr "B<PR_SET_DUMPABLE> (Linux 2.3.20 以降)"
2409
2410 #.  See http://marc.theaimsgroup.com/?l=linux-kernel&m=115270289030630&w=2
2411 #.  Subject:    Fix prctl privilege escalation (CVE-2006-2451)
2412 #.  From:       Marcel Holtmann <marcel () holtmann ! org>
2413 #.  Date:       2006-07-12 11:12:00
2414 #. type: Plain text
2415 #: build/C/man2/prctl.2:164
2416 msgid ""
2417 "Set the state of the flag determining whether core dumps are produced for "
2418 "the calling process upon delivery of a signal whose default behavior is to "
2419 "produce a core dump.  (Normally, this flag is set for a process by default, "
2420 "but it is cleared when a set-user-ID or set-group-ID program is executed and "
2421 "also by various system calls that manipulate process UIDs and GIDs).  In "
2422 "kernels up to and including 2.6.12, I<arg2> must be either 0 (process is not "
2423 "dumpable) or 1 (process is dumpable).  Between kernels 2.6.13 and 2.6.17, "
2424 "the value 2 was also permitted, which caused any binary which normally would "
2425 "not be dumped to be dumped readable by root only; for security reasons, this "
2426 "feature has been removed.  (See also the description of I</proc/sys/fs/"
2427 "suid_dumpable> in B<proc>(5).)  Processes that are not dumpable can not be "
2428 "attached via B<ptrace>(2)  B<PTRACE_ATTACH>."
2429 msgstr ""
2430 "(Linux 2.3.20 以降) デフォルトの振る舞いではコアダンプを引き起こすようなシグ"
2431 "ナルを受信したときに、呼び出し元のプロセスでコアダンプを生成するかどうかを決"
2432 "定するフラグを設定する (通常このフラグは、デフォルトではセットされているが、 "
2433 "set-user-ID あるいは set-group-ID プログラムが実行されたり、 さまざまなシステ"
2434 "ムコールによってプロセスの UID や GID が操作されたときに クリアされる)。 "
2435 "2.6.12 以前のカーネルでは、 I<arg2> は 0 (プロセスはダンプ不可) あるいは 1 "
2436 "(プロセスはダンプ可能) の どちらかでなければならない。 2.6.13 から 2.6.17 ま"
2437 "でのカーネルでは、値 2 も認められていた。 この値を指定すると、通常はダンプさ"
2438 "れないバイナリが root だけが 読み込み可能な形でダンプされた。 セキュリティ上"
2439 "の理由から、この機能は削除された (B<proc>(5) の I</proc/sys/fs/"
2440 "suid_dumpable> の説明も参照)。 ダンプ不可のプロセスを B<ptrace>(2) "
2441 "B<PTRACE_ATTACH> 経由で接続することはできない。"
2442
2443 #. type: TP
2444 #: build/C/man2/prctl.2:164
2445 #, no-wrap
2446 msgid "B<PR_GET_DUMPABLE> (since Linux 2.3.20)"
2447 msgstr "B<PR_GET_DUMPABLE> (Linux 2.3.20 以降)"
2448
2449 #.  Since Linux 2.6.13, the dumpable flag can have the value 2,
2450 #.  but in 2.6.13 PR_GET_DUMPABLE simply returns 1 if the dumpable
2451 #.  flags has a nonzero value.  This was fixed in 2.6.14.
2452 #. type: Plain text
2453 #: build/C/man2/prctl.2:171
2454 msgid ""
2455 "Return (as the function result) the current state of the calling process's "
2456 "dumpable flag."
2457 msgstr ""
2458 "(Linux 2.3.20 以降)  呼び出し元プロセスにおけるダンプ可能フラグの 現在の状態"
2459 "を (関数の結果として) 返す。"
2460
2461 #. type: TP
2462 #: build/C/man2/prctl.2:171
2463 #, no-wrap
2464 msgid "B<PR_SET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2465 msgstr "B<PR_SET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2466
2467 #.  Respectively 0, 1, 2
2468 #. type: Plain text
2469 #: build/C/man2/prctl.2:181
2470 msgid ""
2471 "Set the endian-ness of the calling process to the value given in I<arg2>, "
2472 "which should be one of the following: B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2473 "or B<PR_ENDIAN_PPC_LITTLE> (PowerPC pseudo little endian)."
2474 msgstr ""
2475 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<arg2> で指定された値"
2476 "に設定する。 指定できる値は B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2477 "B<PR_ENDIAN_PPC_LITTLE> (PowerPC 擬似リトルエンディアン)  のいずれか一つであ"
2478 "る。"
2479
2480 #. type: TP
2481 #: build/C/man2/prctl.2:181
2482 #, no-wrap
2483 msgid "B<PR_GET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2484 msgstr "B<PR_GET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2485
2486 #. type: Plain text
2487 #: build/C/man2/prctl.2:186
2488 msgid ""
2489 "Return the endian-ness of the calling process, in the location pointed to by "
2490 "I<(int\\ *) arg2>."
2491 msgstr ""
2492 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<(int\\ *) arg2> が指"
2493 "す場所に格納して返す。"
2494
2495 #. type: TP
2496 #: build/C/man2/prctl.2:186
2497 #, no-wrap
2498 msgid "B<PR_SET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2499 msgstr "B<PR_SET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2500
2501 #. type: Plain text
2502 #: build/C/man2/prctl.2:193
2503 msgid ""
2504 "Set floating-point emulation control bits to I<arg2>.  Pass "
2505 "B<PR_FPEMU_NOPRINT> to silently emulate fp operations accesses, or "
2506 "B<PR_FPEMU_SIGFPE> to not emulate fp operations and send B<SIGFPE> instead."
2507 msgstr ""
2508 "浮動小数点エミュレーション (floating-point emulation) 制御ビットを I<arg2> で"
2509 "指定された値に設定する。 指定できる値は B<PR_FPEMU_NOPRINT> (浮動小数点命令ア"
2510 "クセスを黙って エミュレートする) か B<PR_FPEMU_SIGFPE> (浮動小数点命令をエ"
2511 "ミュレートせず、 代わりに B<SIGFPE> を送る) である。"
2512
2513 #. type: TP
2514 #: build/C/man2/prctl.2:193
2515 #, no-wrap
2516 msgid "B<PR_GET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2517 msgstr "B<PR_GET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2518
2519 #. type: Plain text
2520 #: build/C/man2/prctl.2:198
2521 msgid ""
2522 "Return floating-point emulation control bits, in the location pointed to by "
2523 "I<(int\\ *) arg2>."
2524 msgstr ""
2525 "浮動小数点エミュレーション制御ビットの値を I<(int\\ *) arg2> が指す場所に格納"
2526 "して返す。"
2527
2528 #. type: TP
2529 #: build/C/man2/prctl.2:198
2530 #, no-wrap
2531 msgid "B<PR_SET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2532 msgstr "B<PR_SET_FPEXC> (Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2533
2534 #. type: Plain text
2535 #: build/C/man2/prctl.2:211
2536 msgid ""
2537 "Set floating-point exception mode to I<arg2>.  Pass B<PR_FP_EXC_SW_ENABLE> "
2538 "to use FPEXC for FP exception enables, B<PR_FP_EXC_DIV> for floating-point "
2539 "divide by zero, B<PR_FP_EXC_OVF> for floating-point overflow, "
2540 "B<PR_FP_EXC_UND> for floating-point underflow, B<PR_FP_EXC_RES> for floating-"
2541 "point inexact result, B<PR_FP_EXC_INV> for floating-point invalid operation, "
2542 "B<PR_FP_EXC_DISABLED> for FP exceptions disabled, B<PR_FP_EXC_NONRECOV> for "
2543 "async nonrecoverable exception mode, B<PR_FP_EXC_ASYNC> for async "
2544 "recoverable exception mode, B<PR_FP_EXC_PRECISE> for precise exception mode."
2545 msgstr ""
2546 "浮動小数点例外モード (floating-point exception mode) を I<arg2> で指定された"
2547 "値に設定する。 指定できるのは以下の値である: B<PR_FP_EXC_SW_ENABLE> (FPEXC で"
2548 "浮動小数点例外を有効にする)、 B<PR_FP_EXC_DIV> (0 除算)、 B<PR_FP_EXC_OVF> "
2549 "(オーバーフロー)、 B<PR_FP_EXC_UND> (アンダーフロー)、 B<PR_FP_EXC_RES> (不正"
2550 "確な結果 (inexact result))、 B<PR_FP_EXC_INV> (不正な命令 (invalid "
2551 "operation))、 B<PR_FP_EXC_DISABLED> (浮動小数点例外を無効にする)、 "
2552 "B<PR_FP_EXC_NONRECOV> (async nonrecoverable exception mode)、 "
2553 "B<PR_FP_EXC_ASYNC> (async recoverable exception mode)、 B<PR_FP_EXC_PRECISE> "
2554 "(precise exception mode)。"
2555
2556 #. type: TP
2557 #: build/C/man2/prctl.2:211
2558 #, no-wrap
2559 msgid "B<PR_GET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2560 msgstr "B<PR_GET_FPEXC>(Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2561
2562 #. type: Plain text
2563 #: build/C/man2/prctl.2:216
2564 msgid ""
2565 "Return floating-point exception mode, in the location pointed to by I<(int\\ "
2566 "*) arg2>."
2567 msgstr ""
2568 "浮動小数点例外モードの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
2569
2570 #. type: TP
2571 #: build/C/man2/prctl.2:216
2572 #, no-wrap
2573 msgid "B<PR_SET_KEEPCAPS> (since Linux 2.2.18)"
2574 msgstr "B<PR_SET_KEEPCAPS> (Linux 2.2.18 以降)"
2575
2576 #. type: Plain text
2577 #: build/C/man2/prctl.2:234
2578 msgid ""
2579 "Set the state of the thread's \"keep capabilities\" flag, which determines "
2580 "whether the threads's permitted capability set is cleared when a change is "
2581 "made to the threads's user IDs such that the threads's real UID, effective "
2582 "UID, and saved set-user-ID all become nonzero when at least one of them "
2583 "previously had the value 0.  By default, the permitted capability set is "
2584 "cleared when such a change is made; setting the \"keep capabilities\" flag "
2585 "prevents it from being cleared.  I<arg2> must be either 0 (permitted "
2586 "capabilities are cleared)  or 1 (permitted capabilities are kept).  (A "
2587 "thread's I<effective> capability set is always cleared when such a "
2588 "credential change is made, regardless of the setting of the \"keep "
2589 "capabilities\" flag.)  The \"keep capabilities\" value will be reset to 0 on "
2590 "subsequent calls to B<execve>(2)."
2591 msgstr ""
2592 "スレッドの「ケーパビリティ保持」フラグを設定する。 このフラグは、スレッドの"
2593 "実 UID、実効 UID、保存 set-user-ID のうち少なくとも一つが 0 であった状態か"
2594 "ら、これら全てが 0 以外に変更されたとき、 スレッドの許可ケーパビリティ集合が"
2595 "クリアされるかどうかを決定する。 デフォルトでは、このような変更が行われた場"
2596 "合、許可ケーパビリティセットはクリアされる。「ケーパビリティ保持」フラグを設"
2597 "定すると、許可ケーパビリティセットはクリアされなくなる。 I<arg2> は 0 (許可"
2598 "ケーパビリティをクリアする) か 1 (許可ケーパビリティを保持する) の どちらかで"
2599 "なければならない。 (このような ID の変更が行われた場合、「ケーパビリティ保"
2600 "持」フラグの設定に関わらず、スレッドのI<実効>ケーパビリティセットは常にクリア"
2601 "される。) B<execve>(2) が呼び出されると、「ケーパビリティ保持」フラグは 0 に"
2602 "リセットされる。"
2603
2604 #. type: TP
2605 #: build/C/man2/prctl.2:234
2606 #, no-wrap
2607 msgid "B<PR_GET_KEEPCAPS> (since Linux 2.2.18)"
2608 msgstr "B<PR_GET_KEEPCAPS> (Linux 2.2.18 以降)"
2609
2610 #. type: Plain text
2611 #: build/C/man2/prctl.2:238
2612 msgid ""
2613 "Return (as the function result) the current state of the calling threads's "
2614 "\"keep capabilities\" flag."
2615 msgstr ""
2616 "呼び出し元スレッドにおける「ケーパビリティ保持」フラグの 現在の状態を (関数の"
2617 "結果として) 返す。"
2618
2619 #. type: TP
2620 #: build/C/man2/prctl.2:238
2621 #, no-wrap
2622 msgid "B<PR_SET_NAME> (since Linux 2.6.9)"
2623 msgstr "B<PR_SET_NAME> (Linux 2.6.9 以降)"
2624
2625 #.  TASK_COMM_LEN in include/linux/sched.h
2626 #. type: Plain text
2627 #: build/C/man2/prctl.2:257
2628 msgid ""
2629 "Set the name of the calling thread, using the value in the location pointed "
2630 "to by I<(char\\ *) arg2>.  The name can be up to 16 bytes long, including "
2631 "the terminating null byte.  (If the length of the string, including the "
2632 "terminating null byte, exceeds 16 bytes, the string is silently truncated.)  "
2633 "This is the same attribute that can be set via B<pthread_setname_np>(3)  and "
2634 "retrieved using B<pthread_getname_np>(3).  The attribute is likewise "
2635 "accessible via I</proc/self/task/[tid]/comm>, where I<tid> is the name of "
2636 "the calling thread."
2637 msgstr ""
2638 "呼び出し元スレッドのプロセス名を I<(char\\ *) arg2> が指す場所に格納された値"
2639 "を使って設定する。 名前は終端の NULL バイトを含めて最大で 16 バイトである (終"
2640 "端の NULL バイトを含めた文字列の長さが 16 バイトを超える場合、 文字列は黙って"
2641 "切り詰められる)。 これは、 B<pthread_setname_np>(3) で設定でき、 "
2642 "B<pthread_getname_np>(3) で取得できるのと同じ属性である。 同様に、 I<tid> が"
2643 "呼び出し元スレッドの ID の場合、 この属性は I</proc/self/task/[tid]/comm> 経"
2644 "由でもアクセス可能である。"
2645
2646 #. type: TP
2647 #: build/C/man2/prctl.2:257
2648 #, no-wrap
2649 msgid "B<PR_GET_NAME> (since Linux 2.6.11)"
2650 msgstr "B<PR_GET_NAME> (Linux 2.6.11 以降)"
2651
2652 #. type: Plain text
2653 #: build/C/man2/prctl.2:264
2654 msgid ""
2655 "Return the name of the calling thread, in the buffer pointed to by I<(char\\ "
2656 "*) arg2>.  The buffer should allow space for up to 16 bytes; the returned "
2657 "string will be null-terminated."
2658 msgstr ""
2659 "呼び出し元スレッドの名前を I<(char\\ *) arg2> が指す場所に格納して返す。 バッ"
2660 "ファは最大で 16 バイトを格納できるようにすべきである。 返される文字列はヌル終"
2661 "端される。"
2662
2663 #. type: TP
2664 #: build/C/man2/prctl.2:264
2665 #, no-wrap
2666 msgid "B<PR_SET_NO_NEW_PRIVS> (since Linux 3.5)"
2667 msgstr "B<PR_SET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2668
2669 #. type: Plain text
2670 #: build/C/man2/prctl.2:287
2671 msgid ""
2672 "Set the calling process's I<no_new_privs> bit to the value in I<arg2>.  With "
2673 "I<no_new_privs> set to 1, B<execve>(2)  promises not to grant privileges to "
2674 "do anything that could not have been done without the B<execve>(2)  call "
2675 "(for example, rendering the set-user-ID and set-group-ID permission bits, "
2676 "and file capabilities non-functional).  Once set, this bit cannot be unset.  "
2677 "The setting of this bit is inherited by children created by B<fork>(2)  and "
2678 "B<clone>(2), and preserved across B<execve>(2)."
2679 msgstr ""
2680
2681 #. type: Plain text
2682 #: build/C/man2/prctl.2:290
2683 msgid ""
2684 "For more information, see the kernel source file I<Documentation/prctl/"
2685 "no_new_privs.txt>."
2686 msgstr ""
2687 "詳しい情報は、カーネルソースファイル I<Documentation/prctl/no_new_privs.txt> "
2688 "を参照。"
2689
2690 #. type: TP
2691 #: build/C/man2/prctl.2:290
2692 #, no-wrap
2693 msgid "B<PR_GET_NO_NEW_PRIVS> (since Linux 3.5)"
2694 msgstr "B<PR_GET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2695
2696 #. type: Plain text
2697 #: build/C/man2/prctl.2:301
2698 msgid ""
2699 "Return (as the function result) the value of the I<no_new_privs> bit for the "
2700 "current process.  A value of 0 indicates the regular B<execve>(2)  "
2701 "behavior.  A value of 1 indicates B<execve>(2)  will operate in the "
2702 "privilege-restricting mode described above."
2703 msgstr ""
2704
2705 #. type: TP
2706 #: build/C/man2/prctl.2:301
2707 #, no-wrap
2708 msgid "B<PR_SET_PDEATHSIG> (since Linux 2.1.57)"
2709 msgstr "B<PR_SET_PDEATHSIG> (Linux 2.1.57 以降)"
2710
2711 #. type: Plain text
2712 #: build/C/man2/prctl.2:314
2713 msgid ""
2714 "Set the parent process death signal of the calling process to I<arg2> "
2715 "(either a signal value in the range 1..maxsig, or 0 to clear).  This is the "
2716 "signal that the calling process will get when its parent dies.  This value "
2717 "is cleared for the child of a B<fork>(2)  and (since Linux 2.4.36 / 2.6.23)  "
2718 "when executing a set-user-ID or set-group-ID binary.  This value is "
2719 "preserved across B<execve>(2)."
2720 msgstr ""
2721 "親プロセス死亡シグナル (parent process death signal) を I<arg2> に設定する "
2722 "(設定できるシグナル値の範囲は 1..maxsig であり、0 は通知の解除である)。 呼び"
2723 "出し元プロセスの親プロセスが死んだ際に、ここで設定した値が シグナルとして通知"
2724 "される。この値は B<fork>(2) の子プロセスでは解除される。 (Linux 2.4.36 以降お"
2725 "よび 2.6.23 以降では) set-user-ID もしくは set-group-ID されたバイナリを実行"
2726 "した場合にも、このフラグは解除される。この値は B<execve>(2) の前後で保持され"
2727 "る。"
2728
2729 #. type: TP
2730 #: build/C/man2/prctl.2:314
2731 #, no-wrap
2732 msgid "B<PR_GET_PDEATHSIG> (since Linux 2.3.15)"
2733 msgstr "B<PR_GET_PDEATHSIG> (Linux 2.3.15 以降)"
2734
2735 #. type: Plain text
2736 #: build/C/man2/prctl.2:319
2737 msgid ""
2738 "Return the current value of the parent process death signal, in the location "
2739 "pointed to by I<(int\\ *) arg2>."
2740 msgstr ""
2741 "親プロセス死亡シグナルの現在の値を I<(int\\ *) arg2> が指す場所に格納して返"
2742 "す。"
2743
2744 #. type: TP
2745 #: build/C/man2/prctl.2:319
2746 #, no-wrap
2747 msgid "B<PR_SET_PTRACER> (since Linux 3.4)"
2748 msgstr "B<PR_SET_PTRACER> (Linux 3.4 以降)"
2749
2750 #.  commit 2d514487faf188938a4ee4fb3464eeecfbdcf8eb
2751 #.  commit bf06189e4d14641c0148bea16e9dd24943862215
2752 #. type: Plain text
2753 #: build/C/man2/prctl.2:344
2754 msgid ""
2755 "This is meaningful only when the Yama LSM is enabled and in mode 1 "
2756 "(\"restricted ptrace\", visible via I</proc/sys/kernel/yama/ptrace_scope>).  "
2757 "When a \"ptracer process ID\" is passed in I<arg2>, the caller is declaring "
2758 "that the ptracer process can B<ptrace>(2)  the calling process as if it were "
2759 "a direct process ancestor.  Each B<PR_SET_PTRACER> operation replaces the "
2760 "previous \"ptracer process ID\".  Employing B<PR_SET_PTRACER> with I<arg2> "
2761 "set to 0 clears the caller's \"ptracer process ID\".  If I<arg2> is "
2762 "B<PR_SET_PTRACER_ANY>, the ptrace restrictions introduced by Yama are "
2763 "effectively disabled for the calling process."
2764 msgstr ""
2765
2766 #. type: Plain text
2767 #: build/C/man2/prctl.2:347
2768 msgid ""
2769 "For further information, see the kernel source file I<Documentation/security/"
2770 "Yama.txt>."
2771 msgstr ""
2772 "詳しい情報は、カーネルソースファイル I<Documentation/security/Yama.txt> を参"
2773 "照。"
2774
2775 #. type: TP
2776 #: build/C/man2/prctl.2:347
2777 #, no-wrap
2778 msgid "B<PR_SET_SECCOMP> (since Linux 2.6.23)"
2779 msgstr "B<PR_SET_SECCOMP> (Linux 2.6.23 以降)"
2780
2781 #.  See http://thread.gmane.org/gmane.linux.kernel/542632
2782 #.  [PATCH 0 of 2] seccomp updates
2783 #.  andrea@cpushare.com
2784 #. type: Plain text
2785 #: build/C/man2/prctl.2:358
2786 msgid ""
2787 "Set the secure computing (seccomp) mode for the calling thread, to limit the "
2788 "available system calls.  The more recent B<seccomp>(2)  system call provides "
2789 "a superset of the functionality of B<PR_SET_SECCOMP>."
2790 msgstr ""
2791 "呼び出したスレッドのセキュアコンピューティング (seccomp) モードを設定する。 "
2792 "最近の B<seccomp>(2) システムコールは B<PR_SET_SECCOMP> の上位互換の機能を提"
2793 "供する。"
2794
2795 #. type: Plain text
2796 #: build/C/man2/prctl.2:363
2797 msgid ""
2798 "The seccomp mode is selected via I<arg2>.  (The seccomp constants are "
2799 "defined in I<E<lt>linux/seccomp.hE<gt>>.)"
2800 msgstr ""
2801 "seccomp モードは I<arg2> で指定できる (seccomp 定数は I<E<lt>linux/seccomp."
2802 "hE<gt>> で定義されている)。"
2803
2804 #. type: Plain text
2805 #: build/C/man2/prctl.2:384
2806 msgid ""
2807 "With I<arg2> set to B<SECCOMP_MODE_STRICT>, the only system calls that the "
2808 "thread is permitted to make are B<read>(2), B<write>(2), B<_exit>(2), and "
2809 "B<sigreturn>(2).  Other system calls result in the delivery of a B<SIGKILL> "
2810 "signal.  Strict secure computing mode is useful for number-crunching "
2811 "applications that may need to execute untrusted byte code, perhaps obtained "
2812 "by reading from a pipe or socket.  This operation is available only if the "
2813 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2814 msgstr ""
2815 "I<arg2> を B<SECCOMP_MODE_STRICT> に設定すると、 そのスレッドが呼び出しを許可"
2816 "されるシステムコールは B<read>(2), B<write>(2), B<_exit>(2), B<sigreturn>(2) "
2817 "だけになる。 それ以外のシステムコールを呼び出すと、シグナル B<SIGKILL> が配送"
2818 "される。 パイプやソケットから読み込んだ、 信頼できないバイトコードを実行する"
2819 "必要がある大量の演算を行うアプリケーションにおいて、 strict secure computing "
2820 "モードは役立つ。 この操作は利用できるのは、 カーネルが B<CONFIG_SECCOMP> を有"
2821 "効にして作成されている場合だけである。"
2822
2823 #. type: Plain text
2824 #: build/C/man2/prctl.2:399
2825 msgid ""
2826 "With I<arg2> set to B<SECCOMP_MODE_FILTER> (since Linux 3.5), the system "
2827 "calls allowed are defined by a pointer to a Berkeley Packet Filter passed in "
2828 "I<arg3>.  This argument is a pointer to I<struct sock_fprog>; it can be "
2829 "designed to filter arbitrary system calls and system call arguments.  This "
2830 "mode is available only if the kernel is configured with "
2831 "B<CONFIG_SECCOMP_FILTER> enabled."
2832 msgstr ""
2833 "I<arg2> を B<SECCOMP_MODE_FILTER> (Linux 3.5 以降) に設定すると、 許可される"
2834 "システムコールは I<arg3> で渡された Berkeley Packet Filter へのポインターで定"
2835 "義される。 この引き数は I<struct sock_fprog> へのポインターである。 これは任"
2836 "意のシステムコールやシステムコール引き数をフィルタリングするために設計され"
2837 "た。 このモードはカーネルで B<CONFIG_SECCOMP_FILTER> が有効になっている場合に"
2838 "のみ利用可能である。"
2839
2840 #. type: Plain text
2841 #: build/C/man2/prctl.2:414
2842 msgid ""
2843 "If B<SECCOMP_MODE_FILTER> filters permit B<fork>(2), then the seccomp mode "
2844 "is inherited by children created by B<fork>(2); if B<execve>(2)  is "
2845 "permitted, then the seccomp mode is preserved across B<execve>(2).  If the "
2846 "filters permit B<prctl>()  calls, then additional filters can be added; they "
2847 "are run in order until the first non-allow result is seen."
2848 msgstr ""
2849 "B<SECCOMP_MODE_FILTER> フィルターで B<fork>(2) が許可されている場合、 "
2850 "seccomp モードは B<fork>(2) で作成された子プロセスに継承される。 "
2851 "B<execve>(2) が許可されている場合、 seccomp モードは B<execve>(2) の前後で維"
2852 "持される。 フィルターで B<prctl>() コールが許可されている場合、 追加でフィル"
2853 "ターが定義され、 これらのフィルターは許可されないものが見つかるまで指定された"
2854 "順序で実行される。"
2855
2856 #. type: Plain text
2857 #: build/C/man2/prctl.2:417
2858 msgid ""
2859 "For further information, see the kernel source file I<Documentation/prctl/"
2860 "seccomp_filter.txt>."
2861 msgstr ""
2862 "詳しい情報は、カーネルソースファイル I<Documentation/prctl/seccomp_filter."
2863 "txt> を参照。"
2864
2865 #. type: TP
2866 #: build/C/man2/prctl.2:417
2867 #, no-wrap
2868 msgid "B<PR_GET_SECCOMP> (since Linux 2.6.23)"
2869 msgstr "B<PR_GET_SECCOMP> (Linux 2.6.23 以降)"
2870
2871 #. type: Plain text
2872 #: build/C/man2/prctl.2:435
2873 msgid ""
2874 "Return (as the function result)  the secure computing mode of the calling "
2875 "thread.  If the caller is not in secure computing mode, this operation "
2876 "returns 0; if the caller is in strict secure computing mode, then the "
2877 "B<prctl>()  call will cause a B<SIGKILL> signal to be sent to the process.  "
2878 "If the caller is in filter mode, and this system call is allowed by the "
2879 "seccomp filters, it returns 2; otherwise, the process is killed with a "
2880 "B<SIGKILL> signal.  This operation is available only if the kernel is "
2881 "configured with B<CONFIG_SECCOMP> enabled."
2882 msgstr ""
2883 "呼び出したスレッドの secure computing モードを (関数の結果として) 返す。 呼び"
2884 "出したスレッドが secure computing モードでなかった場合、 この操作は 0 を返"
2885 "し、 呼び出したスレッドが strict secure computing モードの場合、 B<prctl>()  "
2886 "を呼び出すとシグナル B<SIGKILL> がそのプロセスに送信される。 呼び出したスレッ"
2887 "ドがフィルタモードで、 このシステムコールが seccomp フィルタにより許可されて"
2888 "いる場合、 2 を返し、 そうでない場合プロセスは B<SIGKILL> シグナルで kill さ"
2889 "れづ。 この操作が利用できるのは、カーネルが B<CONFIG_SECCOMP> を有効にして作"
2890 "成されている場合だけである。"
2891
2892 #. type: Plain text
2893 #: build/C/man2/prctl.2:443
2894 msgid ""
2895 "Since Linux 3.8, the I<Seccomp> field of the I</proc/[pid]/status> file "
2896 "provides a method of obtaining the same information, without the risk that "
2897 "the process is killed; see B<proc>(5)."
2898 msgstr ""
2899 "Linux 3.8 以降では、 I</proc/[pid]/status> の I<seccomp> フィールドからも同じ"
2900 "情報を取得できる。 この方法の場合はプロセスが kill される危険はない。 "
2901 "B<proc>(5) を参照。"
2902
2903 #. type: TP
2904 #: build/C/man2/prctl.2:443
2905 #, no-wrap
2906 msgid "B<PR_SET_SECUREBITS> (since Linux 2.6.26)"
2907 msgstr "B<PR_SET_SECUREBITS> (Linux 2.6.26 以降)"
2908
2909 #. type: Plain text
2910 #: build/C/man2/prctl.2:449
2911 msgid ""
2912 "Set the \"securebits\" flags of the calling thread to the value supplied in "
2913 "I<arg2>.  See B<capabilities>(7)."
2914 msgstr ""
2915 "呼び出したスレッドの \"securebits\" フラグを I<arg2> で渡された値に設定す"
2916 "る。 B<capabilities>(7)  参照。"
2917
2918 #. type: TP
2919 #: build/C/man2/prctl.2:449
2920 #, no-wrap
2921 msgid "B<PR_GET_SECUREBITS> (since Linux 2.6.26)"
2922 msgstr "B<PR_GET_SECUREBITS> (Linux 2.6.26 以降)"
2923
2924 #. type: Plain text
2925 #: build/C/man2/prctl.2:455
2926 msgid ""
2927 "Return (as the function result)  the \"securebits\" flags of the calling "
2928 "thread.  See B<capabilities>(7)."
2929 msgstr ""
2930 "呼び出したスレッドの \"securebits\" フラグを (関数の結果として) 返す。 "
2931 "B<capabilities>(7)  参照。"
2932
2933 #. type: TP
2934 #: build/C/man2/prctl.2:455
2935 #, no-wrap
2936 msgid "B<PR_SET_THP_DISABLE> (since Linux 3.15)"
2937 msgstr "B<PR_SET_THP_DISABLE> (Linux 3.15 以降)"
2938
2939 #.  commit a0715cc22601e8830ace98366c0c2bd8da52af52
2940 #. type: Plain text
2941 #: build/C/man2/prctl.2:471
2942 msgid ""
2943 "Set the state of the \"THP disable\" flag for the calling thread.  If "
2944 "I<arg2> has a nonzero value, the flag is set, otherwise it is cleared.  "
2945 "Setting this flag provides a method for disabling transparent huge pages for "
2946 "jobs where the code cannot be modified, and using a malloc hook with "
2947 "B<madvise>(2)  is not an option (i.e., statically allocated data).  The "
2948 "setting of the \"THP disable\" flag is inherited by a child created via "
2949 "B<fork>(2)  and is preserved across B<execve>(2)."
2950 msgstr ""
2951 "呼び出したスレッドの \"THP disable\" (THP 無効) フラグの状態を設定する。 "
2952 "I<arg2> が 0 以外の場合、フラグは有効になり、そうでない場合はクリーンされ"
2953 "る。 このフラグを設定する方法により、 コードを変更できなかったり "
2954 "B<madvise>(2) の malloc hook をが有効ではないジョブ (この方法は静的に割り当て"
2955 "られたデータには有効ではない)に対して、 transparent huge pages を無効にする手"
2956 "段が提供される。 \"THP disable\" フラグの設定は B<fork>(2) で作成された子プロ"
2957 "セスに継承され、 B<execve> の前後で維持される。"
2958
2959 #. type: TP
2960 #: build/C/man2/prctl.2:471
2961 #, no-wrap
2962 msgid "B<PR_GET_THP_DISABLE> (since Linux 3.15)"
2963 msgstr "B<PR_GET_THP_DISABLE> (Linux 3.15 以降)"
2964
2965 #. type: Plain text
2966 #: build/C/man2/prctl.2:476
2967 msgid ""
2968 "Return (via the function result) the current setting of the \"THP disable\" "
2969 "flag for the calling thread: either 1, if the flag is set, or 0, if it is "
2970 "not."
2971 msgstr ""
2972 "呼び出し元スレッドの \"THP disable\" フラグの現在の設定を (関数の結果として) "
2973 "返す。フラグがセットされている場合は 1 が、セットされていない場合は 0 が返"
2974 "る。"
2975
2976 #. type: TP
2977 #: build/C/man2/prctl.2:476
2978 #, no-wrap
2979 msgid "B<PR_GET_TID_ADDRESS> (since Linux 3.5)"
2980 msgstr "B<PR_GET_TID_ADDRESS> (Linux 3.5 以降)"
2981
2982 #.  commit 300f786b2683f8bb1ec0afb6e1851183a479c86d
2983 #. type: Plain text
2984 #: build/C/man2/prctl.2:491
2985 msgid ""
2986 "Retrieve the I<clear_child_tid> address set by B<set_tid_address>(2)  and "
2987 "the B<clone>(2)  B<CLONE_CHILD_CLEARTID> flag, in the location pointed to by "
2988 "I<(int\\ **)\\ arg2>.  This feature is available only if the kernel is built "
2989 "with the B<CONFIG_CHECKPOINT_RESTORE> option enabled."
2990 msgstr ""
2991 "B<set_tid_address>(2) や B<clone>(2) B<CLONE_CHILD_CLEARTID> フラグで設定され"
2992 "た I<clear_child_tid> を取得し、 I<(int\\ **)\\ arg2> が指す場所に格納して返"
2993 "す。 この機能はカーネルが B<CONFIG_CHECKPOINT_RESTORE> オプションを有効にして"
2994 "作成されている場合にのみ利用できる。"
2995
2996 #. type: TP
2997 #: build/C/man2/prctl.2:491
2998 #, no-wrap
2999 msgid "B<PR_SET_TIMERSLACK> (since Linux 2.6.28)"
3000 msgstr "B<PR_SET_TIMERSLACK> (Linux 2.6.28 以降)"
3001
3002 #.  See https://lwn.net/Articles/369549/
3003 #.  commit 6976675d94042fbd446231d1bd8b7de71a980ada
3004 #.  It seems that it's not possible to set the timer slack to zero;
3005 #.  The minimum value is 1? Seems a little strange.
3006 #. type: Plain text
3007 #: build/C/man2/prctl.2:510
3008 msgid ""
3009 "Set the current timer slack for the calling thread to the nanosecond value "
3010 "supplied in I<arg2>.  If I<arg2> is less than or equal to zero, reset the "
3011 "current timer slack to the thread's default timer slack value.  The timer "
3012 "slack is used by the kernel to group timer expirations for the calling "
3013 "thread that are close to one another; as a consequence, timer expirations "
3014 "for the thread may be up to the specified number of nanoseconds late (but "
3015 "will never expire early).  Grouping timer expirations can help reduce system "
3016 "power consumption by minimizing CPU wake-ups."
3017 msgstr ""
3018
3019 #.  List obtained by grepping for futex usage in glibc source
3020 #. type: Plain text
3021 #: build/C/man2/prctl.2:530
3022 msgid ""
3023 "The timer expirations affected by timer slack are those set by B<select>(2), "
3024 "B<pselect>(2), B<poll>(2), B<ppoll>(2), B<epoll_wait>(2), B<epoll_pwait>(2), "
3025 "B<clock_nanosleep>(2), B<nanosleep>(2), and B<futex>(2)  (and thus the "
3026 "library functions implemented via futexes, including "
3027 "B<pthread_cond_timedwait>(3), B<pthread_mutex_timedlock>(3), "
3028 "B<pthread_rwlock_timedrdlock>(3), B<pthread_rwlock_timedwrlock>(3), and "
3029 "B<sem_timedwait>(3))."
3030 msgstr ""
3031
3032 #. type: Plain text
3033 #: build/C/man2/prctl.2:534
3034 msgid ""
3035 "Timer slack is not applied to threads that are scheduled under a real-time "
3036 "scheduling policy (see B<sched_setscheduler>(2))."
3037 msgstr ""
3038
3039 #. type: Plain text
3040 #: build/C/man2/prctl.2:551
3041 msgid ""
3042 "Each thread has two associated timer slack values: a \"default\" value, and "
3043 "a \"current\" value.  The current value is the one that governs grouping of "
3044 "timer expirations.  When a new thread is created, the two timer slack values "
3045 "are made the same as the current value of the creating thread.  Thereafter, "
3046 "a thread can adjust its current timer slack value via B<PR_SET_TIMERSLACK> "
3047 "(the default value can't be changed).  The timer slack values of I<init> "
3048 "(PID 1), the ancestor of all processes, are 50,000 nanoseconds (50 "
3049 "microseconds).  The timer slack values are preserved across B<execve>(2)."
3050 msgstr ""
3051
3052 #. type: TP
3053 #: build/C/man2/prctl.2:551
3054 #, no-wrap
3055 msgid "B<PR_GET_TIMERSLACK> (since Linux 2.6.28)"
3056 msgstr "B<PR_GET_TIMERSLACK> (Linux 2.6.28 以降)"
3057
3058 #. type: Plain text
3059 #: build/C/man2/prctl.2:555
3060 msgid ""
3061 "Return (as the function result)  the current timer slack value of the "
3062 "calling thread."
3063 msgstr ""
3064 "呼び出し元スレッドの現在のタイマーのスラック値を (関数の結果として) 返す。"
3065
3066 #. type: TP
3067 #: build/C/man2/prctl.2:555
3068 #, no-wrap
3069 msgid "B<PR_SET_TIMING> (since Linux 2.6.0-test4)"
3070 msgstr "B<PR_SET_TIMING> (Linux 2.6.0-test4 以降)"
3071
3072 #.  0
3073 #.  1
3074 #.  PR_TIMING_TIMESTAMP doesn't do anything in 2.6.26-rc8,
3075 #.  and looking at the patch history, it appears
3076 #.  that it never did anything.
3077 #. type: Plain text
3078 #: build/C/man2/prctl.2:572
3079 msgid ""
3080 "Set whether to use (normal, traditional) statistical process timing or "
3081 "accurate timestamp-based process timing, by passing B<PR_TIMING_STATISTICAL> "
3082 "or B<PR_TIMING_TIMESTAMP> to I<arg2>.  B<PR_TIMING_TIMESTAMP> is not "
3083 "currently implemented (attempting to set this mode will yield the error "
3084 "B<EINVAL>)."
3085 msgstr ""
3086 "(通常の、伝統的に使われてきた) 統計的なプロセスタイミングを使用するか、 正確"
3087 "なタイムスタンプに基づくプロセスタイミングを使用するかを設定する。 I<arg2> に"
3088 "指定できる値は B<PR_TIMING_STATISTICAL> か B<PR_TIMING_TIMESTAMP> である。 "
3089 "B<PR_TIMING_TIMESTAMP> は現在のところ実装されていない (このモードに設定しよう"
3090 "とするとエラー B<EINVAL> が起こることだろう)。"
3091
3092 #. type: TP
3093 #: build/C/man2/prctl.2:572
3094 #, no-wrap
3095 msgid "B<PR_GET_TIMING> (since Linux 2.6.0-test4)"
3096 msgstr "B<PR_GET_TIMING> (Linux 2.6.0-test4 以降)"
3097
3098 #. type: Plain text
3099 #: build/C/man2/prctl.2:576
3100 msgid ""
3101 "Return (as the function result) which process timing method is currently in "
3102 "use."
3103 msgstr "現在使用中のプロセスタイミングを決める方法を (関数の結果として) 返す。"
3104
3105 #. type: TP
3106 #: build/C/man2/prctl.2:576
3107 #, no-wrap
3108 msgid "B<PR_TASK_PERF_EVENTS_DISABLE> (since Linux 2.6.31)"
3109 msgstr "B<PR_TASK_PERF_EVENTS_DISABLE> (Linux 2.6.31 以降)"
3110
3111 #. type: Plain text
3112 #: build/C/man2/prctl.2:585
3113 msgid ""
3114 "Disable all performance counters attached to the calling process, regardless "
3115 "of whether the counters were created by this process or another process.  "
3116 "Performance counters created by the calling process for other processes are "
3117 "unaffected.  For more information on performance counters, see the Linux "
3118 "kernel source file I<tools/perf/design.txt>."
3119 msgstr ""
3120 "呼び出したプロセスに接続されたすべての性能カウンターを無効にする。 カウンター"
3121 "がこのプロセスにより作成されたか他のプロセスにより作成されたかは関係ない。 呼"
3122 "び出したプロセスが他のプロセス用に作成した性能カウンターは影響を受けない。 性"
3123 "能カウンターの詳細については Linux カーネルソースの I<tools/perf/design.txt> "
3124 "を参照。"
3125
3126 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3127 #. type: Plain text
3128 #: build/C/man2/prctl.2:591
3129 msgid ""
3130 "Originally called B<PR_TASK_PERF_COUNTERS_DISABLE>; renamed (with same "
3131 "numerical value)  in Linux 2.6.32."
3132 msgstr ""
3133 "以前は B<PR_TASK_PERF_COUNTERS_DISABLE> と呼ばれていた。 Linux 2.6.32 で名前"
3134 "が変更された (数値は同じままである)。"
3135
3136 #. type: TP
3137 #: build/C/man2/prctl.2:591
3138 #, no-wrap
3139 msgid "B<PR_TASK_PERF_EVENTS_ENABLE> (since Linux 2.6.31)"
3140 msgstr "B<PR_TASK_PERF_EVENTS_ENABLE> (Linux 2.6.31 以降)"
3141
3142 #. type: Plain text
3143 #: build/C/man2/prctl.2:596
3144 msgid ""
3145 "The converse of B<PR_TASK_PERF_EVENTS_DISABLE>; enable performance counters "
3146 "attached to the calling process."
3147 msgstr ""
3148 "B<PR_TASK_PERF_EVENTS_DISABLE> の逆。 呼び出したプロセスに接続された性能カウ"
3149 "ンターを有効にする。"
3150
3151 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3152 #.  commit cdd6c482c9ff9c55475ee7392ec8f672eddb7be6
3153 #. type: Plain text
3154 #: build/C/man2/prctl.2:603
3155 msgid ""
3156 "Originally called B<PR_TASK_PERF_COUNTERS_ENABLE>; renamed in Linux 2.6.32."
3157 msgstr ""
3158 "以前は B<PR_TASK_PERF_COUNTERS_ENABLE> と呼ばれていた。 Linux 2.6.32 で名前が"
3159 "変更された。"
3160
3161 #. type: TP
3162 #: build/C/man2/prctl.2:603
3163 #, no-wrap
3164 msgid "B<PR_SET_TSC> (since Linux 2.6.26, x86 only)"
3165 msgstr "B<PR_SET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3166
3167 #. type: Plain text
3168 #: build/C/man2/prctl.2:616
3169 msgid ""
3170 "Set the state of the flag determining whether the timestamp counter can be "
3171 "read by the process.  Pass B<PR_TSC_ENABLE> to I<arg2> to allow it to be "
3172 "read, or B<PR_TSC_SIGSEGV> to generate a B<SIGSEGV> when the process tries "
3173 "to read the timestamp counter."
3174 msgstr ""
3175 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態を"
3176 "設定する。 読み出しを許可する場合は I<arg2> に B<PR_TSC_ENABLE> を、そのプロ"
3177 "セスがタイムスタンプ・カウンタを読み出そうとした際に B<SIGSEGV> を発生させる"
3178 "場合には B<PR_TSC_SIGSEGV> を渡す。"
3179
3180 #. type: TP
3181 #: build/C/man2/prctl.2:616
3182 #, no-wrap
3183 msgid "B<PR_GET_TSC> (since Linux 2.6.26, x86 only)"
3184 msgstr "B<PR_GET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3185
3186 #. type: Plain text
3187 #: build/C/man2/prctl.2:622
3188 msgid ""
3189 "Return the state of the flag determining whether the timestamp counter can "
3190 "be read, in the location pointed to by I<(int\\ *) arg2>."
3191 msgstr ""
3192 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態"
3193 "を I<(int\\ *) arg2> が指す場所に格納して返す。"
3194
3195 #. type: TP
3196 #: build/C/man2/prctl.2:622
3197 #, no-wrap
3198 msgid "B<PR_SET_UNALIGN>"
3199 msgstr "B<PR_SET_UNALIGN>"
3200
3201 #. type: Plain text
3202 #: build/C/man2/prctl.2:632
3203 msgid ""
3204 "(Only on: ia64, since Linux 2.3.48; parisc, since Linux 2.6.15; PowerPC, "
3205 "since Linux 2.6.18; Alpha, since Linux 2.6.22)  Set unaligned access control "
3206 "bits to I<arg2>.  Pass B<PR_UNALIGN_NOPRINT> to silently fix up unaligned "
3207 "user accesses, or B<PR_UNALIGN_SIGBUS> to generate B<SIGBUS> on unaligned "
3208 "user access."
3209 msgstr ""
3210 "(ia64 では Linux 2.3.48 以降; parisc では Linux 2.6.15 以降; PowerPC では "
3211 "Linux 2.6.18 以降; Alpha では Linux 2.6.22 以降; これらのアーキテクチャの"
3212 "み)  unaligned アクセス制御ビットを I<arg2> で指定された値に設定する。 指定で"
3213 "きる値は B<PR_UNALIGN_NOPRINT> (unaligned なユーザアクセスを黙って 修正する) "
3214 "か B<PR_UNALIGN_SIGBUS> (unaligned なユーザアクセスがあった場合 B<SIGBUS> を"
3215 "生成する) である。"
3216
3217 #. type: TP
3218 #: build/C/man2/prctl.2:632
3219 #, no-wrap
3220 msgid "B<PR_GET_UNALIGN>"
3221 msgstr "B<PR_GET_UNALIGN>"
3222
3223 #. type: Plain text
3224 #: build/C/man2/prctl.2:639
3225 msgid ""
3226 "(see B<PR_SET_UNALIGN> for information on versions and architectures)  "
3227 "Return unaligned access control bits, in the location pointed to by I<(int\\ "
3228 "*) arg2>."
3229 msgstr ""
3230 "(バージョンとアーキテクチャの情報は B<PR_SET_UNALIGN> 参照)  unaligned アクセ"
3231 "ス制御ビットの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
3232
3233 #. type: TP
3234 #: build/C/man2/prctl.2:639
3235 #, no-wrap
3236 msgid "B<PR_MCE_KILL> (since Linux 2.6.32)"
3237 msgstr "B<PR_MCE_KILL> (Linux 2.6.32 以降)"
3238
3239 #. type: Plain text
3240 #: build/C/man2/prctl.2:679
3241 msgid ""
3242 "Set the machine check memory corruption kill policy for the current thread.  "
3243 "If I<arg2> is B<PR_MCE_KILL_CLEAR>, clear the thread memory corruption kill "
3244 "policy and use the system-wide default.  (The system-wide default is defined "
3245 "by I</proc/sys/vm/memory_failure_early_kill>; see B<proc>(5).)  If I<arg2> "
3246 "is B<PR_MCE_KILL_SET>, use a thread-specific memory corruption kill policy.  "
3247 "In this case, I<arg3> defines whether the policy is I<early kill> "
3248 "(B<PR_MCE_KILL_EARLY>), I<late kill> (B<PR_MCE_KILL_LATE>), or the system-"
3249 "wide default (B<PR_MCE_KILL_DEFAULT>).  Early kill means that the thread "
3250 "receives a B<SIGBUS> signal as soon as hardware memory corruption is "
3251 "detected inside its address space.  In late kill mode, the process is killed "
3252 "only when it accesses a corrupted page.  See B<sigaction>(2)  for more "
3253 "information on the B<SIGBUS> signal.  The policy is inherited by children.  "
3254 "The remaining unused B<prctl>()  arguments must be zero for future "
3255 "compatibility."
3256 msgstr ""
3257
3258 #. type: TP
3259 #: build/C/man2/prctl.2:679
3260 #, no-wrap
3261 msgid "B<PR_MCE_KILL_GET> (since Linux 2.6.32)"
3262 msgstr "B<PR_MCE_KILL_GET> (Linux 2.6.32 以降)"
3263
3264 #. type: Plain text
3265 #: build/C/man2/prctl.2:685
3266 msgid ""
3267 "Return the current per-process machine check kill policy.  All unused "
3268 "B<prctl>()  arguments must be zero."
3269 msgstr ""
3270
3271 #. type: TP
3272 #: build/C/man2/prctl.2:685
3273 #, no-wrap
3274 msgid "B<PR_SET_MM> (since Linux 3.3)"
3275 msgstr "B<PR_SET_MM> (Linux 3.3 以降)"
3276
3277 #.  commit 028ee4be34a09a6d48bdf30ab991ae933a7bc036
3278 #. type: Plain text
3279 #: build/C/man2/prctl.2:706
3280 msgid ""
3281 "Modify certain kernel memory map descriptor fields of the calling process.  "
3282 "Usually these fields are set by the kernel and dynamic loader (see B<ld."
3283 "so>(8)  for more information) and a regular application should not use this "
3284 "feature.  However, there are cases, such as self-modifying programs, where a "
3285 "program might find it useful to change its own memory map.  This feature is "
3286 "available only if the kernel is built with the B<CONFIG_CHECKPOINT_RESTORE> "
3287 "option enabled.  The calling process must have the B<CAP_SYS_RESOURCE> "
3288 "capability.  The value in I<arg2> is one of the options below, while I<arg3> "
3289 "provides a new value for the option."
3290 msgstr ""
3291 "呼び出したプロセスのカーネルメモリマップディスクリプタのフィールドを変更す"
3292 "る。 これらのフィールドは通常カーネルと動的リンカーにより設定される (詳しい情"
3293 "報は B<ld.so> を参照)。 通常のアプリケーションはこの機能を利用すべきではな"
3294 "い。 しかしながら、自分を書き換えるプログラムなど、 プログラムが自分自身のメ"
3295 "モリマップを変更するのが有用な場面もある。 この機能はカーネルが "
3296 "B<CONFIG_CHECKPOINT_RESTORE> オプションを有効にして作成されている場合にのみ利"
3297 "用できる。 呼び出したプロセスは B<CAP_SYS_RESOURCE> ケーパビリティを持ってい"
3298 "なければならない。 I<arg2> の値には以下のいずれかを指定し、 I<arg3> でそのオ"
3299 "プションの新しい値を指定する。"
3300
3301 #. type: TP
3302 #: build/C/man2/prctl.2:707
3303 #, no-wrap
3304 msgid "B<PR_SET_MM_START_CODE>"
3305 msgstr "B<PR_SET_MM_START_CODE>"
3306
3307 #. type: Plain text
3308 #: build/C/man2/prctl.2:716
3309 msgid ""
3310 "Set the address above which the program text can run.  The corresponding "
3311 "memory area must be readable and executable, but not writable or sharable "
3312 "(see B<mprotect>(2)  and B<mmap>(2)  for more information)."
3313 msgstr ""
3314 "プログラムテキストを実行できるアドレスの上限を設定する。 対応するメモリ領域は"
3315 "読み出し可能で実行可能でなければならないが、 書き込み可能だったり共有可能だっ"
3316 "たりしてはならない (詳しい情報は B<mprotect>(2) と B<mmap>(2) 参照)。"
3317
3318 #. type: TP
3319 #: build/C/man2/prctl.2:716
3320 #, no-wrap
3321 msgid "B<PR_SET_MM_END_CODE>"
3322 msgstr "B<PR_SET_MM_END_CODE>"
3323
3324 #. type: Plain text
3325 #: build/C/man2/prctl.2:721
3326 msgid ""
3327 "Set the address below which the program text can run.  The corresponding "
3328 "memory area must be readable and executable, but not writable or sharable."
3329 msgstr ""
3330 "プログラムテキストを実行できるアドレスの下限を設定する。 対応するメモリ領域は"
3331 "読み出し可能で実行可能でなければならないが、 書き込み可能だったり共有可能だっ"
3332 "たりしてはならない。"
3333
3334 #. type: TP
3335 #: build/C/man2/prctl.2:721
3336 #, no-wrap
3337 msgid "B<PR_SET_MM_START_DATA>"
3338 msgstr "B<PR_SET_MM_START_DATA>"
3339
3340 #. type: Plain text
3341 #: build/C/man2/prctl.2:727
3342 msgid ""
3343 "Set the address above which initialized and uninitialized (bss) data are "
3344 "placed.  The corresponding memory area must be readable and writable, but "
3345 "not executable or sharable."
3346 msgstr ""
3347 "初期化済データや未初期化 (bss) データを配置する領域のアドレス上限を指定す"
3348 "る。 対応するメモリ領域は読み書き可能でなければならないが、 実行可能だったり"
3349 "共有可能だったりしてはならない。"
3350
3351 #. type: TP
3352 #: build/C/man2/prctl.2:727
3353 #, no-wrap
3354 msgid "B<PR_SET_MM_END_DATA>"
3355 msgstr "B<PR_SET_MM_END_DATA>"
3356
3357 #. type: Plain text
3358 #: build/C/man2/prctl.2:733
3359 msgid ""
3360 "Set the address below which initialized and uninitialized (bss) data are "
3361 "placed.  The corresponding memory area must be readable and writable, but "
3362 "not executable or sharable."
3363 msgstr ""
3364 "初期化済データや未初期化 (bss) データを配置する領域のアドレス下限を指定す"
3365 "る。 対応するメモリ領域は読み書き可能でなければならないが、 実行可能だったり"
3366 "共有可能だったりしてはならない。"
3367
3368 #. type: TP
3369 #: build/C/man2/prctl.2:733
3370 #, no-wrap
3371 msgid "B<PR_SET_MM_START_STACK>"
3372 msgstr "B<PR_SET_MM_START_STACK>"
3373
3374 #. type: Plain text
3375 #: build/C/man2/prctl.2:737
3376 msgid ""
3377 "Set the start address of the stack.  The corresponding memory area must be "
3378 "readable and writable."
3379 msgstr ""
3380 "スタックの開始アドレスを設定する。 対応するメモリ領域は読み書き可能でなければ"
3381 "ならない。"
3382
3383 #. type: TP
3384 #: build/C/man2/prctl.2:737
3385 #, no-wrap
3386 msgid "B<PR_SET_MM_START_BRK>"
3387 msgstr "B<PR_SET_MM_START_BRK>"
3388
3389 #. type: Plain text
3390 #: build/C/man2/prctl.2:749
3391 msgid ""
3392 "Set the address above which the program heap can be expanded with B<brk>(2)  "
3393 "call.  The address must be greater than the ending address of the current "
3394 "program data segment.  In addition, the combined size of the resulting heap "
3395 "and the size of the data segment can't exceed the B<RLIMIT_DATA> resource "
3396 "limit (see B<setrlimit>(2))."
3397 msgstr ""
3398 "B<brk>(2) コールで拡張できるプログラムのヒープ領域のアドレス上限を設定する。 "
3399 "このアドレスは、プログラムの現在のデータセグメントの最終アドレスより大きくな"
3400 "ければならない。 また、 変更後のヒープとデータセグメントのサイズを合わせたサ"
3401 "イズが B<RLIMIT_DATA> リソースリミットを超えることはできない "
3402 "(B<setrlimit>(2) 参照)。"
3403
3404 #. type: TP
3405 #: build/C/man2/prctl.2:749
3406 #, no-wrap
3407 msgid "B<PR_SET_MM_BRK>"
3408 msgstr "B<PR_SET_MM_BRK>"
3409
3410 #. type: Plain text
3411 #: build/C/man2/prctl.2:757
3412 msgid ""
3413 "Set the current B<brk>(2)  value.  The requirements for the address are the "
3414 "same as for the B<PR_SET_MM_START_BRK> option."
3415 msgstr ""
3416 "現在の B<brk>(2) 値を設定する。 このアドレスの要件は B<PR_SET_MM_START_BRK> "
3417 "オプションと同じである。"
3418
3419 #.  commit fe8c7f5cbf91124987106faa3bdf0c8b955c4cf7
3420 #. type: Plain text
3421 #: build/C/man2/prctl.2:760
3422 msgid "The following options are available since Linux 3.5."
3423 msgstr "以下のオプションは Linux 3.5 以降で利用できる。"
3424
3425 #. type: TP
3426 #: build/C/man2/prctl.2:760
3427 #, no-wrap
3428 msgid "B<PR_SET_MM_ARG_START>"
3429 msgstr "B<PR_SET_MM_ARG_START>"
3430
3431 #. type: Plain text
3432 #: build/C/man2/prctl.2:763
3433 msgid "Set the address above which the program command line is placed."
3434 msgstr "プログラムのコマンドラインを配置するアドレスの上限を設定する。"
3435
3436 #. type: TP
3437 #: build/C/man2/prctl.2:763
3438 #, no-wrap
3439 msgid "B<PR_SET_MM_ARG_END>"
3440 msgstr "B<PR_SET_MM_ARG_END>"
3441
3442 #. type: Plain text
3443 #: build/C/man2/prctl.2:766
3444 msgid "Set the address below which the program command line is placed."
3445 msgstr "プログラムのコマンドラインを配置するアドレスの下限を設定する。"
3446
3447 #. type: TP
3448 #: build/C/man2/prctl.2:766
3449 #, no-wrap
3450 msgid "B<PR_SET_MM_ENV_START>"
3451 msgstr "B<PR_SET_MM_ENV_START>"
3452
3453 #. type: Plain text
3454 #: build/C/man2/prctl.2:769
3455 msgid "Set the address above which the program environment is placed."
3456 msgstr ""
3457 "プログラムの環境情報 (environment) を配置するアドレスの上限を設定する。"
3458
3459 #. type: TP
3460 #: build/C/man2/prctl.2:769
3461 #, no-wrap
3462 msgid "B<PR_SET_MM_ENV_END>"
3463 msgstr "B<PR_SET_MM_ENV_END>"
3464
3465 #. type: Plain text
3466 #: build/C/man2/prctl.2:772
3467 msgid "Set the address below which the program environment is placed."
3468 msgstr ""
3469 "プログラムの環境情報 (environment) を配置するアドレスの下限を設定する。"
3470
3471 #. type: Plain text
3472 #: build/C/man2/prctl.2:785
3473 msgid ""
3474 "The address passed with B<PR_SET_MM_ARG_START>, B<PR_SET_MM_ARG_END>, "
3475 "B<PR_SET_MM_ENV_START>, and B<PR_SET_MM_ENV_END> should belong to a process "
3476 "stack area.  Thus, the corresponding memory area must be readable, writable, "
3477 "and (depending on the kernel configuration) have the B<MAP_GROWSDOWN> "
3478 "attribute set (see B<mmap>(2))."
3479 msgstr ""
3480 "B<PR_SET_MM_ARG_START>, B<PR_SET_MM_ARG_END>, B<PR_SET_MM_ENV_START>, "
3481 "B<PR_SET_MM_ENV_END> で指定されるアドレスはプロセスのスタック領域に属している"
3482 "必要がある。 したがって、これらのメモリ領域は読み書き可能でなければならな"
3483 "い。 また、 (カーネル設定によっては) B<MAP_GROWSDOWN> 属性がセットされていな"
3484 "ければならない (B<mmap>(2) 参照)。"
3485
3486 #. type: TP
3487 #: build/C/man2/prctl.2:785
3488 #, no-wrap
3489 msgid "B<PR_SET_MM_AUXV>"
3490 msgstr "B<PR_SET_MM_AUXV>"
3491
3492 #. type: Plain text
3493 #: build/C/man2/prctl.2:794
3494 msgid ""
3495 "Set a new auxiliary vector.  The I<arg3> argument should provide the address "
3496 "of the vector.  The I<arg4> is the size of the vector."
3497 msgstr ""
3498 "新しい補助ベクトル (auxiliary vector) を設定する。 I<arg3> 引き数はベクトルの"
3499 "アドレスを指定し、 I<arg4> はベクトルのサイズを指定する。"
3500
3501 #. type: TP
3502 #: build/C/man2/prctl.2:794
3503 #, no-wrap
3504 msgid "B<PR_SET_MM_EXE_FILE>"
3505 msgstr "B<PR_SET_MM_EXE_FILE>"
3506
3507 #.  commit b32dfe377102ce668775f8b6b1461f7ad428f8b6
3508 #. type: Plain text
3509 #: build/C/man2/prctl.2:806
3510 msgid ""
3511 "Supersede the I</proc/pid/exe> symbolic link with a new one pointing to a "
3512 "new executable file identified by the file descriptor provided in I<arg3> "
3513 "argument.  The file descriptor should be obtained with a regular B<open>(2)  "
3514 "call."
3515 msgstr ""
3516 "I</proc/pid/exe> シンボリックリンクを I<arg3> 引き数で渡された新しい実行可能"
3517 "なファイルディスクリプタを指すシンボリックリンクで置き換える。 ファイルディス"
3518 "クリプタは通常の B<open>(2) コールで取得すべきである。"
3519
3520 #. type: Plain text
3521 #: build/C/man2/prctl.2:813
3522 msgid ""
3523 "To change the symbolic link, one needs to unmap all existing executable "
3524 "memory areas, including those created by the kernel itself (for example the "
3525 "kernel usually creates at least one executable memory area for the ELF I<."
3526 "text> section)."
3527 msgstr ""
3528 "シンボリックリンクを変更するには、 既存の実行可能なメモリ領域のすべてをアン"
3529 "マップする必要がある。これにはカーネル自身が作成した領域も含まれる (例えば、"
3530 "カーネルは通常 ELF I<.text> セクションに少なくとも一つの実行可能なメモリ領域"
3531 "を作成する)。"
3532
3533 #. type: Plain text
3534 #: build/C/man2/prctl.2:819
3535 msgid ""
3536 "The second limitation is that such transitions can be done only once in a "
3537 "process life time.  Any further attempts will be rejected.  This should help "
3538 "system administrators monitor unusual symbolic-link transitions over all "
3539 "processes running on a system."
3540 msgstr ""
3541 "二つ目の制限は、このような変更はプロセスの生存期間で一度だけ行うことができる"
3542 "という点である。 一度変更を行った後で変更を行おうとすると拒否される。 この動"
3543 "作は、 システム管理者が、 システムで動作するすべてのプロセスが行う、 普通でな"
3544 "いシンボリックリンクの変更を監視するのを楽にする。"
3545
3546 #. type: TP
3547 #: build/C/man2/prctl.2:820
3548 #, no-wrap
3549 msgid "B<PR_MPX_ENABLE_MANAGEMENT>, B<PR_MPX_DISABLE_MANAGEMENT> (since Linux 3.19) "
3550 msgstr "B<PR_MPX_ENABLE_MANAGEMENT>, B<PR_MPX_DISABLE_MANAGEMENT> (Linux 3.19 以降) "
3551
3552 #.  commit fe3d197f84319d3bce379a9c0dc17b1f48ad358c
3553 #.  See also http://lwn.net/Articles/582712/
3554 #.  See also https://gcc.gnu.org/wiki/Intel%20MPX%20support%20in%20the%20GCC%20compiler
3555 #. type: Plain text
3556 #: build/C/man2/prctl.2:827
3557 msgid ""
3558 "Enable or disable kernel management of Memory Protection eXtensions (MPX)  "
3559 "bounds tables."
3560 msgstr ""
3561
3562 #. type: Plain text
3563 #: build/C/man2/prctl.2:840
3564 msgid ""
3565 "MPX is a hardware-assisted mechanism for performing bounds checking on "
3566 "pointers.  It consists of a set of registers storing bounds information and "
3567 "a set of special instruction prefixes that tell the CPU on which "
3568 "instructions it should do bounds enforcement.  There is a limited number of "
3569 "these registers and when there are more pointers than registers, their "
3570 "contents must be \"spilled\" into a set of tables.  These tables are called "
3571 "\"bounds tables\" and the MPX B<prctl>()  operations control whether the "
3572 "kernel manages their allocation and freeing."
3573 msgstr ""
3574
3575 #. type: Plain text
3576 #: build/C/man2/prctl.2:850
3577 msgid ""
3578 "When management is enabled, the kernel will take over allocation and freeing "
3579 "of the bounds tables.  It does this by trapping the #BR exceptions that "
3580 "result at first use of missing bounds tables and instead of delivering the "
3581 "exception to user space, it allocates the table and populates the bounds "
3582 "directory with the location of the new table.  For freeing, the kernel "
3583 "checks to see if bounds tables are present for memory which is not "
3584 "allocated, and frees them if so."
3585 msgstr ""
3586
3587 #. type: Plain text
3588 #: build/C/man2/prctl.2:857
3589 msgid ""
3590 "Before enabling MPX management using B<PR_MPX_ENABLE_MANAGEMENT>, the "
3591 "application must first have allocated a user-space buffer for the bounds "
3592 "directory and placed the location of that directory in the I<bndcfgu> "
3593 "register."
3594 msgstr ""
3595
3596 #. type: Plain text
3597 #: build/C/man2/prctl.2:864
3598 msgid ""
3599 "These calls will fail if the CPU or kernel does not support MPX.  Kernel "
3600 "support for MPX is enabled via the B<CONFIG_X86_INTEL_MPX> configuration "
3601 "option.  You can check whether the CPU supports MPX by looking for the 'mpx' "
3602 "CPUID bit, like with the following command:"
3603 msgstr ""
3604
3605 #. type: Plain text
3606 #: build/C/man2/prctl.2:866
3607 msgid "  cat /proc/cpuinfo | grep ' mpx '"
3608 msgstr "  cat /proc/cpuinfo | grep ' mpx '"
3609
3610 #. type: Plain text
3611 #: build/C/man2/prctl.2:869
3612 msgid ""
3613 "A thread may not switch in or out of long (64-bit) mode while MPX is enabled."
3614 msgstr ""
3615
3616 #. type: Plain text
3617 #: build/C/man2/prctl.2:871
3618 msgid "All threads in a process are affected by these calls."
3619 msgstr ""
3620
3621 #. type: Plain text
3622 #: build/C/man2/prctl.2:880
3623 msgid ""
3624 "The child of a B<fork>(2)  inherits the state of MPX management.  During "
3625 "B<execve>(2), MPX management is reset to a state as if "
3626 "B<PR_MPX_DISABLE_MANAGEMENT> had been called."
3627 msgstr ""
3628
3629 #. type: Plain text
3630 #: build/C/man2/prctl.2:884
3631 msgid ""
3632 "For further information on Intel MPX, see the kernel source file "
3633 "I<Documentation/x86/intel_mpx.txt>."
3634 msgstr ""
3635 "Intel MPX についての詳しい情報は、カーネルソースファイル I<Documentation/x86/"
3636 "intel_mpx.txt> を参照。"
3637
3638 #. type: Plain text
3639 #: build/C/man2/prctl.2:904
3640 msgid ""
3641 "On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3642 "B<PR_GET_THP_DISABLE>, B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, "
3643 "B<PR_GET_TIMERSLACK>, B<PR_GET_SECUREBITS>, B<PR_MCE_KILL_GET>, and (if it "
3644 "returns)  B<PR_GET_SECCOMP> return the nonnegative values described above.  "
3645 "All other I<option> values return 0 on success.  On error, -1 is returned, "
3646 "and I<errno> is set appropriately."
3647 msgstr ""
3648 "成功すると、 B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3649 "B<PR_GET_THP_DISABLE>, B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, "
3650 "B<PR_GET_TIMERSLACK>, B<PR_GET_SECUREBITS>, B<PR_MCE_KILL_GET>, "
3651 "B<PR_GET_SECCOMP> は上述の負でない値を返す (なお、B<PR_GET_SECCOMP> は返らな"
3652 "い場合もある)。 I<option> が他の値の場合は成功時に 0 を返す。 エラーの場"
3653 "合、-1 を返し、 I<errno> に適切な値を設定する。"
3654
3655 #. type: Plain text
3656 #: build/C/man2/prctl.2:909
3657 msgid "I<arg2> is an invalid address."
3658 msgstr "I<arg2> が不正なアドレスである。"
3659
3660 #. type: Plain text
3661 #: build/C/man2/prctl.2:922
3662 msgid ""
3663 "I<option> is B<PR_SET_SECCOMP>, I<arg2> is B<SECCOMP_MODE_FILTER>, the "
3664 "system was built with B<CONFIG_SECCOMP_FILTER>, and I<arg3> is an invalid "
3665 "address."
3666 msgstr ""
3667 "I<option> が B<PR_SET_SECCOMP> で、 I<arg2> が B<SECCOMP_MODE_FILTER> で、 "
3668 "カーネルが B<CONFIG_SECCOMP_FILTER> を有効にして作成されており、 I<arg3> が無"
3669 "効なアドレスである。"
3670
3671 #. type: Plain text
3672 #: build/C/man2/prctl.2:927
3673 msgid "The value of I<option> is not recognized."
3674 msgstr "I<option> の値が理解できない。"
3675
3676 #. type: Plain text
3677 #: build/C/man2/prctl.2:939
3678 msgid ""
3679 "I<option> is B<PR_MCE_KILL> or B<PR_MCE_KILL_GET> or B<PR_SET_MM>, and "
3680 "unused B<prctl>()  arguments were not specified as zero."
3681 msgstr ""
3682 "I<option> が B<PR_MCE_KILL>, B<PR_MCE_KILL_GET>, B<PR_SET_MM> のいずれかで、"
3683 "かつ未使用の B<prctl>() 引き数に 0 が指定されていなかった。"
3684
3685 #. type: Plain text
3686 #: build/C/man2/prctl.2:944
3687 msgid "I<arg2> is not valid value for this I<option>."
3688 msgstr "I<arg2> が指定された I<option> で有効な値ではない。"
3689
3690 #. type: Plain text
3691 #: build/C/man2/prctl.2:953
3692 msgid ""
3693 "I<option> is B<PR_SET_SECCOMP> or B<PR_GET_SECCOMP>, and the kernel was not "
3694 "configured with B<CONFIG_SECCOMP>."
3695 msgstr ""
3696 "I<option> が B<PR_SET_SECCOMP> か B<PR_GET_SECCOMP> だが、カーネルが "
3697 "B<CONFIG_SECCOMP> を有効にして作成されていなかった。"
3698
3699 #. type: Plain text
3700 #: build/C/man2/prctl.2:963
3701 msgid ""
3702 "I<option> is B<PR_SET_SECCOMP>, I<arg2> is B<SECCOMP_MODE_FILTER>, and the "
3703 "kernel was not configured with B<CONFIG_SECCOMP_FILTER>."
3704 msgstr ""
3705 "I<option> が B<PR_SET_SECCOMP> で、 I<arg2> が B<SECCOMP_MODE_FILTER> で、 "
3706 "カーネルが B<CONFIG_SECCOMP> を有効にして作成されていなかった。"
3707
3708 #. type: Plain text
3709 #: build/C/man2/prctl.2:969
3710 msgid "I<option> is B<PR_SET_MM>, and one of the following is true"
3711 msgstr "I<option> が B<PR_SET_MM> で、以下のいずれかが真である。"
3712
3713 #. type: Plain text
3714 #: build/C/man2/prctl.2:975
3715 msgid "I<arg4> or I<arg5> is nonzero;"
3716 msgstr "I<arg4> が I<arg5> で 0 以外である。"
3717
3718 #. type: Plain text
3719 #: build/C/man2/prctl.2:980
3720 msgid ""
3721 "I<arg3> is greater than B<TASK_SIZE> (the limit on the size of the user "
3722 "address space for this architecture);"
3723 msgstr ""
3724 "I<arg3> が B<TASK_SIZE> よりも大きい  (B<TASK_SIZE> はこのアーキテクチャーで"
3725 "ユーザー空間アドレススペースの最大サイズである)。"
3726
3727 #. type: Plain text
3728 #: build/C/man2/prctl.2:990
3729 msgid ""
3730 "I<arg2> is B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3731 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, or B<PR_SET_MM_START_STACK>, "
3732 "and the permissions of the corresponding memory area are not as required;"
3733 msgstr ""
3734 "I<arg2> が B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3735 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, B<PR_SET_MM_START_STACK> のど"
3736 "れかで、対応するメモリ領域のアクセス許可が要件を満たしていない。"
3737
3738 #. type: Plain text
3739 #: build/C/man2/prctl.2:1002
3740 msgid ""
3741 "I<arg2> is B<PR_SET_MM_START_BRK> or B<PR_SET_MM_BRK>, and I<arg3> is less "
3742 "than or equal to the end of the data segment or specifies a value that would "
3743 "cause the B<RLIMIT_DATA> resource limit to be exceeded."
3744 msgstr ""
3745 "I<arg2> が B<PR_SET_MM_START_BRK> か B<PR_SET_MM_BRK> で、 I<arg3> データセグ"
3746 "メントの末尾と同じかそれより前か、 I<arg3> に B<RLIMIT_DATA> リソースリミット"
3747 "を超えてしまうような値が指定されている。"
3748
3749 #. type: Plain text
3750 #: build/C/man2/prctl.2:1013
3751 msgid ""
3752 "I<option> is B<PR_SET_PTRACER> and I<arg2> is not 0, B<PR_SET_PTRACER_ANY>, "
3753 "or the PID of an existing process."
3754 msgstr ""
3755 "I<option> が B<PR_SET_PTRACER> で I<arg2> が 0, B<PR_SET_PTRACER_ANY>, 既存プ"
3756 "ロセスの PID のいずれでもない。"
3757
3758 #. type: Plain text
3759 #: build/C/man2/prctl.2:1021
3760 msgid ""
3761 "I<option> is B<PR_SET_PDEATHSIG> and I<arg2> is not a valid signal number."
3762 msgstr ""
3763 "I<option> が B<PR_SET_PDEATHSIG> で、 I<arg2> で指定された値は無効なシグナル"
3764 "番号である。"
3765
3766 #. type: Plain text
3767 #: build/C/man2/prctl.2:1032
3768 msgid ""
3769 "I<option> is B<PR_SET_DUMPABLE> and I<arg2> is neither B<SUID_DUMP_DISABLE> "
3770 "nor B<SUID_DUMP_USER>."
3771 msgstr ""
3772 "I<option> が B<PR_SET_DUMPABLE> で、 I<arg2> が B<SUID_DUMP_DISABLE> でも "
3773 "B<SUID_DUMP_USER> でもない。"
3774
3775 #. type: Plain text
3776 #: build/C/man2/prctl.2:1041
3777 msgid ""
3778 "I<option> is B<PR_SET_TIMING> and I<arg2> is not B<PR_TIMING_STATISTICAL>."
3779 msgstr ""
3780 "I<option> が B<PR_SET_TIMING> で、 I<arg2> が B<PR_TIMING_STATISTICAL> ではな"
3781 "い。"
3782
3783 #. type: Plain text
3784 #: build/C/man2/prctl.2:1055
3785 msgid ""
3786 "I<option> is B<PR_SET_NO_NEW_PRIVS> and I<arg2> is not equal to 1 or "
3787 "I<arg3>, I<arg4>, or I<arg5> is nonzero."
3788 msgstr ""
3789 "I<option> が B<PR_SET_NO_NEW_PRIVS> で、 I<arg2> が 1 以外か、 I<arg3>, "
3790 "I<arg4>, I<arg5> のどれかが 0 ではない。"
3791
3792 #. type: Plain text
3793 #: build/C/man2/prctl.2:1067
3794 msgid ""
3795 "I<option> is B<PR_GET_NO_NEW_PRIVS> and I<arg2>, I<arg3>, I<arg4>, or "
3796 "I<arg5> is nonzero."
3797 msgstr ""
3798 "I<option> が B<PR_GET_NO_NEW_PRIVS> で、 I<arg2>, I<arg3>, I<arg4>, I<arg5> "
3799 "のどれかが 0 ではない。"
3800
3801 #. type: Plain text
3802 #: build/C/man2/prctl.2:1078
3803 msgid ""
3804 "I<option> is B<PR_SET_THP_DISABLE> and I<arg3>, I<arg4>, or I<arg5> is "
3805 "nonzero."
3806 msgstr ""
3807 "I<option> が B<PR_SET_THP_DISABLE> で I<arg3>, I<arg4>, I<arg5> のどれかが 0 "
3808 "ではない。"
3809
3810 #. type: Plain text
3811 #: build/C/man2/prctl.2:1090
3812 msgid ""
3813 "I<option> is B<PR_GET_THP_DISABLE> and I<arg2>, I<arg3>, I<arg4>, or I<arg5> "
3814 "is nonzero."
3815 msgstr ""
3816 "I<option> が B<PR_GET_THP_DISABLE> で I<arg2>, I<arg3>, I<arg4>, I<arg5> のい"
3817 "ずれが 0 ではない。"
3818
3819 #. type: Plain text
3820 #: build/C/man2/prctl.2:1102
3821 msgid ""
3822 "I<option> is B<PR_SET_SECUREBITS>, and the caller does not have the "
3823 "B<CAP_SETPCAP> capability, or tried to unset a \"locked\" flag, or tried to "
3824 "set a flag whose corresponding locked flag was set (see B<capabilities>(7))."
3825 msgstr ""
3826 "I<option> が B<PR_SET_SECUREBITS> で、呼び出し元がケーパビリティ "
3827 "B<CAP_SETPCAP> を持っていない。 または、\"locked\" フラグを解除しようとし"
3828 "た。 または、locked フラグがセットされているフラグをセットしようとした "
3829 "(B<capabilities>(7)  参照)。"
3830
3831 #. type: Plain text
3832 #: build/C/man2/prctl.2:1112
3833 msgid ""
3834 "I<option> is B<PR_SET_KEEPCAPS>, and the callers's "
3835 "B<SECURE_KEEP_CAPS_LOCKED> flag is set (see B<capabilities>(7))."
3836 msgstr ""
3837 "I<option> が B<PR_SET_KEEPCAPS> で、呼び出し元のフラグ "
3838 "B<SECURE_KEEP_CAPS_LOCKED> がセットされている (B<capabilities>(7)  参照)。"
3839
3840 #. type: Plain text
3841 #: build/C/man2/prctl.2:1120
3842 msgid ""
3843 "I<option> is B<PR_CAPBSET_DROP>, and the caller does not have the "
3844 "B<CAP_SETPCAP> capability."
3845 msgstr ""
3846 "I<option> が B<PR_CAPBSET_DROP> で、呼び出し元がケーパビリティ "
3847 "B<CAP_SETPCAP> を持っていない。"
3848
3849 #. type: Plain text
3850 #: build/C/man2/prctl.2:1128
3851 msgid ""
3852 "I<option> is B<PR_SET_MM>, and the caller does not have the "
3853 "B<CAP_SYS_RESOURCE> capability."
3854 msgstr ""
3855 "I<option> が B<PR_SET_MM> で、呼び出し元がケーパビリティ B<CAP_SYS_RESOURCE> "
3856 "を持っていない。"
3857
3858 #. type: TP
3859 #: build/C/man2/prctl.2:1128
3860 #, no-wrap
3861 msgid "B<EACCES>"
3862 msgstr "B<EACCES>"
3863
3864 #. type: Plain text
3865 #: build/C/man2/prctl.2:1138
3866 msgid ""
3867 "I<option> is B<PR_SET_MM>, and I<arg3> is B<PR_SET_MM_EXE_FILE>, the file is "
3868 "not executable."
3869 msgstr ""
3870 "I<option> が B<PR_SET_MM>、かつ I<arg3> が B<PR_SET_MM_EXE_FILE> で、ファイル"
3871 "が実行可能ではない。"
3872
3873 #. type: TP
3874 #: build/C/man2/prctl.2:1138
3875 #, no-wrap
3876 msgid "B<EBUSY>"
3877 msgstr "B<EBUSY>"
3878
3879 #. type: Plain text
3880 #: build/C/man2/prctl.2:1149
3881 msgid ""
3882 "I<option> is B<PR_SET_MM>, I<arg3> is B<PR_SET_MM_EXE_FILE>, and this the "
3883 "second attempt to change the I</proc/pid/exe> symbolic link, which is "
3884 "prohibited."
3885 msgstr ""
3886 "I<option> が B<PR_SET_MM> で、 I<arg3> が B<PR_SET_MM_EXE_FILE> で、 I</proc/"
3887 "pid/exe> シンボリックリンクを変更しようとしたが、 禁止されている。"
3888
3889 #. type: TP
3890 #: build/C/man2/prctl.2:1149 build/C/man2/signalfd.2:266
3891 #: build/C/man2/timerfd_create.2:345
3892 #, no-wrap
3893 msgid "B<EBADF>"
3894 msgstr "B<EBADF>"
3895
3896 #.  The following can't actually happen, because prctl() in
3897 #.  seccomp mode will cause SIGKILL.
3898 #.  .TP
3899 #.  .B EPERM
3900 #.  .I option
3901 #.  is
3902 #.  .BR PR_SET_SECCOMP ,
3903 #.  and secure computing mode is already 1.
3904 #. type: Plain text
3905 #: build/C/man2/prctl.2:1168
3906 msgid ""
3907 "I<option> is B<PR_SET_MM>, I<arg3> is B<PR_SET_MM_EXE_FILE>, and the file "
3908 "descriptor passed in I<arg4> is not valid."
3909 msgstr ""
3910 "I<option> が B<PR_SET_MM> で、 I<arg3> が B<PR_SET_MM_EXE_FILE> で、 I<arg4> "
3911 "で渡されたファイルディスクリプタが有効ではない。"
3912
3913 #. type: TP
3914 #: build/C/man2/prctl.2:1168
3915 #, no-wrap
3916 msgid "B<ENXIO>"
3917 msgstr "B<ENXIO>"
3918
3919 #. type: Plain text
3920 #: build/C/man2/prctl.2:1177
3921 msgid ""
3922 "I<option> was B<PR_MPX_ENABLE_MANAGEMENT> or B<PR_MPX_DISABLE_MANAGEMENT> "
3923 "and the kernel or the CPU does not support MPX management.  Check that the "
3924 "kernel and processor have MPX support."
3925 msgstr ""
3926 "I<option> が B<PR_MPX_ENABLE_MANAGEMENT> か B<PR_MPX_DISABLE_MANAGEMENT> "
3927 "で、 カーネルか CPU が MPX の管理をサポートしていない。 カーネルとプロセスが "
3928 "MPX をサポートしているか確認すること。"
3929
3930 #.  The library interface was added in glibc 2.0.6
3931 #. type: Plain text
3932 #: build/C/man2/prctl.2:1182
3933 msgid "The B<prctl>()  system call was introduced in Linux 2.1.57."
3934 msgstr "B<prctl>()  システムコールは Linux 2.1.57 で導入された。"
3935
3936 #. type: Plain text
3937 #: build/C/man2/prctl.2:1189
3938 msgid ""
3939 "This call is Linux-specific.  IRIX has a B<prctl>()  system call (also "
3940 "introduced in Linux 2.1.44 as irix_prctl on the MIPS architecture), with "
3941 "prototype"
3942 msgstr ""
3943 "このコールは Linux 特有である。 IRIX には B<prctl>()  システム・コールがある"
3944 "が (MIPS アーキテクチャにおいて irix_prctl として Linux 2.1.44 で同様に導入さ"
3945 "れた)、 そのプロトタイプは"
3946
3947 #. type: Plain text
3948 #: build/C/man2/prctl.2:1191
3949 msgid "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3950 msgstr "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3951
3952 #. type: Plain text
3953 #: build/C/man2/prctl.2:1196
3954 msgid ""
3955 "and options to get the maximum number of processes per user, get the maximum "
3956 "number of processors the calling process can use, find out whether a "
3957 "specified process is currently blocked, get or set the maximum stack size, "
3958 "and so on."
3959 msgstr ""
3960 "である。ユーザー当りのプロセス最大数を取得するオプション、 プロセスの使用でき"
3961 "る最大プロッサー数を取得するオプション、 現在特定のプロセスが停止(block)させ"
3962 "られているかどうか調べるオプション、 スタックサイズの最大値の取得や設定を行な"
3963 "うオプションなどがある。"
3964
3965 #. type: Plain text
3966 #: build/C/man2/prctl.2:1199
3967 msgid "B<signal>(2), B<core>(5)"
3968 msgstr "B<signal>(2), B<core>(5)"
3969
3970 #. type: TH
3971 #: build/C/man3/profil.3:28
3972 #, no-wrap
3973 msgid "PROFIL"
3974 msgstr "PROFIL"
3975
3976 #. type: Plain text
3977 #: build/C/man3/profil.3:31
3978 msgid "profil - execution time profile"
3979 msgstr "profil - 実行時間プロファイル (profile)"
3980
3981 #. type: Plain text
3982 #: build/C/man3/profil.3:34
3983 #, no-wrap
3984 msgid "B<#include E<lt>unistd.hE<gt>>\n"
3985 msgstr "B<#include E<lt>unistd.hE<gt>>\n"
3986
3987 #. type: Plain text
3988 #: build/C/man3/profil.3:37
3989 #, no-wrap
3990 msgid ""
3991 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3992 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3993 msgstr ""
3994 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3995 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3996
3997 #. type: Plain text
3998 #: build/C/man3/profil.3:46
3999 msgid ""
4000 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
4001 msgstr ""
4002 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
4003
4004 #. type: Plain text
4005 #: build/C/man3/profil.3:68
4006 msgid ""
4007 "This routine provides a means to find out in what areas your program spends "
4008 "most of its time.  The argument I<buf> points to I<bufsiz> bytes of core.  "
4009 "Every virtual 10 milliseconds, the user's program counter (PC)  is examined: "
4010 "I<offset> is subtracted and the result is multiplied by I<scale> and divided "
4011 "by 65536.  If the resulting value is less than I<bufsiz>, then the "
4012 "corresponding entry in I<buf> is incremented.  If I<buf> is NULL, profiling "
4013 "is disabled."
4014 msgstr ""
4015 "このルーティンはプログラムのどこの部分で時間を費やしているかを調べる 手段を提"
4016 "供する。引き数 I<buf> は I<bufsiz> バイトのメモリを指している。仮想の 10 ミリ"
4017 "秒ごとに、ユーザーの プログラム・カウンター (PC) が検査される: I<offset> が引"
4018 "かれ、その結果が I<scale> 倍され 65536 で割られる。 結果が I<bufsiz> より小さ"
4019 "い場合は I<buf> の対応するエントリがインクリメントされる。 I<buf> が NULL な"
4020 "らば、プロファイル (profile) は無効にされる。"
4021
4022 #. type: Plain text
4023 #: build/C/man3/profil.3:70
4024 msgid "Zero is always returned."
4025 msgstr "常に 0 が返される。"
4026
4027 #. type: Plain text
4028 #: build/C/man3/profil.3:72
4029 msgid "Similar to a call in SVr4 (but not POSIX.1-2001)."
4030 msgstr "SVr4 のコールに似ている (しかし POSIX.1-2001 ではない)。"
4031
4032 #. type: Plain text
4033 #: build/C/man3/profil.3:78
4034 msgid ""
4035 "B<profil>()  cannot be used on a program that also uses B<ITIMER_PROF> "
4036 "interval timers (see B<setitimer>(2))."
4037 msgstr ""
4038 "B<profil>()  は B<ITIMER_PROF> インターバル・タイマーも使用しているプログラム"
4039 "では使用できない (B<setitimer>(2)  参照)。"
4040
4041 #. type: Plain text
4042 #: build/C/man3/profil.3:81
4043 msgid ""
4044 "True kernel profiling provides more accurate results.  Libc 4.4 contained a "
4045 "kernel patch providing a system call profil."
4046 msgstr ""
4047 "本当のカーネル・プロファイルはより正確な結果を与える。 libc 4.4 にはシステム"
4048 "コール profil を提供するための カーネルパッチが含まれていた。"
4049
4050 #. type: Plain text
4051 #: build/C/man3/profil.3:87
4052 msgid ""
4053 "B<gprof>(1), B<sprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
4054 msgstr ""
4055 "B<gprof>(1), B<sprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
4056
4057 #. type: TH
4058 #: build/C/man3/psignal.3:30
4059 #, no-wrap
4060 msgid "PSIGNAL"
4061 msgstr "PSIGNAL"
4062
4063 #. type: TH
4064 #: build/C/man3/psignal.3:30
4065 #, no-wrap
4066 msgid "2010-10-06"
4067 msgstr "2010-10-06"
4068
4069 #. type: TH
4070 #: build/C/man3/psignal.3:30 build/C/man3/raise.3:29
4071 #: build/C/man7/sigevent.7:26
4072 #, no-wrap
4073 msgid "GNU"
4074 msgstr "GNU"
4075
4076 #. type: Plain text
4077 #: build/C/man3/psignal.3:33
4078 msgid "psignal, psiginfo - print signal message"
4079 msgstr "psignal, psiginfo - シグナルメッセージを表示"
4080
4081 #. type: Plain text
4082 #: build/C/man3/psignal.3:39
4083 #, no-wrap
4084 msgid ""
4085 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
4086 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
4087 msgstr ""
4088 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
4089 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
4090
4091 #. type: Plain text
4092 #: build/C/man3/psignal.3:41
4093 #, no-wrap
4094 msgid "B<extern const char *const >I<sys_siglist>B<[];>\n"
4095 msgstr "B<extern const char *const >I<sys_siglist>B<[];>\n"
4096
4097 #. type: Plain text
4098 #: build/C/man3/psignal.3:50
4099 msgid "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
4100 msgstr "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
4101
4102 #. type: Plain text
4103 #: build/C/man3/psignal.3:53
4104 msgid ""
4105 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
4106 "200809L"
4107 msgstr ""
4108 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
4109 "200809L"
4110
4111 #. type: Plain text
4112 #: build/C/man3/psignal.3:56
4113 msgid "I<sys_siglist>: _BSD_SOURCE"
4114 msgstr "I<sys_siglist>: _BSD_SOURCE"
4115
4116 #. type: Plain text
4117 #: build/C/man3/psignal.3:65
4118 msgid ""
4119 "The B<psignal>()  function displays a message on I<stderr> consisting of the "
4120 "string I<s>, a colon, a space, a string describing the signal number I<sig>, "
4121 "and a trailing newline.  If the string I<s> is NULL or empty, the colon and "
4122 "space are omitted.  If I<sig> is invalid, the message displayed will "
4123 "indicate an unknown signal."
4124 msgstr ""
4125 "B<psignal>() 関数は、文字列 I<s>、コロン、スペース、シグナル番号 I<sig> を説"
4126 "明する文字列、終端の改行から構成されるメッセージを I<stderr> に表示する。 文"
4127 "字列 I<s> が NULL か空の場合、コロンとスペースは省略される。 I<sig> が不正な"
4128 "らば、表示される メッセージは未知のシグナルを示す。"
4129
4130 #. type: Plain text
4131 #: build/C/man3/psignal.3:86
4132 msgid ""
4133 "The B<psiginfo>()  function is like B<psignal>(), except that it displays "
4134 "information about the signal described by I<pinfo>, which should point to a "
4135 "valid I<siginfo_t> structure.  As well as the signal description, "
4136 "B<psiginfo>()  displays information about the origin of the signal, and "
4137 "other information relevant to the signal (e.g., the relevant memory address "
4138 "for hardware-generated signals, the child process ID for B<SIGCHLD>, and the "
4139 "user ID and process ID of the sender, for signals set using B<kill>(2)  or "
4140 "B<sigqueue>(3))."
4141 msgstr ""
4142 "B<psiginfo>() 関数は B<psignal>() と同じだが、 I<pinfo> に書かれたシグナルの"
4143 "情報を表示する点が異なる。 I<pinfo> は有効な I<siginfo_t> 構造体を指している"
4144 "必要がある。 B<psiginfo>() は、 シグナルの説明だけでなく、 シグナルの送信元や"
4145 "そのシグナルに関連するその他の情報も表示する (例えば、ハードウェアが発生した"
4146 "シグナルの関連メモリアドレス、 B<SIGCHLD> の子プロセス ID、 I<kill>(2) や "
4147 "B<sigqueue>(3) を使って送信されたシグナルの送信元プロセスのユーザ ID とプロセ"
4148 "ス ID など)。"
4149
4150 #. type: Plain text
4151 #: build/C/man3/psignal.3:89
4152 msgid ""
4153 "The array I<sys_siglist> holds the signal description strings indexed by "
4154 "signal number."
4155 msgstr ""
4156 "配列 I<sys_siglist> はシグナルを説明する文字列を保持しており、 配列へのアクセ"
4157 "スにはシグナル番号を添え字として用いる事ができる。"
4158
4159 #. type: Plain text
4160 #: build/C/man3/psignal.3:95
4161 msgid "The B<psignal>()  and B<psiginfo>()  functions return no value."
4162 msgstr "関数 B<psignal>() と B<psiginfo>() は、値を返さない。"
4163
4164 #. type: Plain text
4165 #: build/C/man3/psignal.3:99
4166 msgid "The B<psiginfo>()  function was added to glibc in version 2.10."
4167 msgstr "B<psiginfo>() 関数は glibc バージョン 2.10 で追加された。"
4168
4169 #. type: Plain text
4170 #: build/C/man3/psignal.3:101
4171 msgid "POSIX.1-2008, 4.3BSD."
4172 msgstr "POSIX.1-2008, 4.3BSD."
4173
4174 #. type: Plain text
4175 #: build/C/man3/psignal.3:105
4176 msgid "In glibc versions up to 2.12, B<psiginfo>()  had the following bugs:"
4177 msgstr ""
4178 "バージョン 2.12 までの glibc では B<psiginfo>() には以下のバグがあった。"
4179
4180 #.  FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=12107
4181 #.  Reportedly now fixed; check glibc 2.13
4182 #. type: Plain text
4183 #: build/C/man3/psignal.3:109
4184 msgid "In some circumstances, a trailing newline is not printed."
4185 msgstr "特定の状況で、末尾の改行が出力されない。"
4186
4187 #.  FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=12108
4188 #.  Reportedly now fixed; check glibc 2.13
4189 #. type: Plain text
4190 #: build/C/man3/psignal.3:113
4191 msgid "Additional details are not displayed for real-time signals."
4192 msgstr "リアルタイムシグナルの場合に、追加の詳細情報が表示されない。"
4193
4194 #. type: Plain text
4195 #: build/C/man3/psignal.3:118
4196 msgid "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
4197 msgstr "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
4198
4199 #. type: TH
4200 #: build/C/man3/raise.3:29
4201 #, no-wrap
4202 msgid "RAISE"
4203 msgstr "RAISE"
4204
4205 #. type: TH
4206 #: build/C/man3/raise.3:29
4207 #, no-wrap
4208 msgid "2014-03-10"
4209 msgstr "2014-03-10"
4210
4211 #. type: Plain text
4212 #: build/C/man3/raise.3:32
4213 msgid "raise - send a signal to the caller"
4214 msgstr "raise - 呼び出し元にシグナルを送る"
4215
4216 #. type: Plain text
4217 #: build/C/man3/raise.3:37
4218 #, no-wrap
4219 msgid "B<int raise(int >I<sig>B<);>\n"
4220 msgstr "B<int raise(int >I<sig>B<);>\n"
4221
4222 #. type: Plain text
4223 #: build/C/man3/raise.3:43
4224 msgid ""
4225 "The B<raise>()  function sends a signal to the calling process or thread.  "
4226 "In a single-threaded program it is equivalent to"
4227 msgstr ""
4228 "B<raise>()  関数は、呼び出し元のプロセスもしくはスレッドにシグナルを送る。 シ"
4229 "ングルスレッドのプログラムでは、以下と等価である。"
4230
4231 #. type: Plain text
4232 #: build/C/man3/raise.3:47
4233 #, no-wrap
4234 msgid "kill(getpid(), sig);\n"
4235 msgstr "kill(getpid(), sig);\n"
4236
4237 #. type: Plain text
4238 #: build/C/man3/raise.3:51
4239 msgid "In a multithreaded program it is equivalent to"
4240 msgstr "マルチスレッドのプログラムでは、以下と等価である。"
4241
4242 #. type: Plain text
4243 #: build/C/man3/raise.3:55
4244 #, no-wrap
4245 msgid "pthread_kill(pthread_self(), sig);\n"
4246 msgstr "pthread_kill(pthread_self(), sig);\n"
4247
4248 #. type: Plain text
4249 #: build/C/man3/raise.3:61
4250 msgid ""
4251 "If the signal causes a handler to be called, B<raise>()  will return only "
4252 "after the signal handler has returned."
4253 msgstr ""
4254 "シグナルに起因してシグナル・ハンドラが呼び出される場合には、 B<raise>()  が返"
4255 "るのは必ずシグナル・ハンドラが返った後になる。"
4256
4257 #. type: Plain text
4258 #: build/C/man3/raise.3:64
4259 msgid "B<raise>()  returns 0 on success, and nonzero for failure."
4260 msgstr "成功した場合は 0 を、失敗した場合は 0 以外の値を返す。"
4261
4262 #. type: Plain text
4263 #: build/C/man3/raise.3:69
4264 msgid "The B<raise>()  function is thread-safe."
4265 msgstr "B<raise>() 関数はスレッドセーフである。"
4266
4267 #. type: Plain text
4268 #: build/C/man3/raise.3:71 build/C/man2/signal.2:112
4269 msgid "C89, C99, POSIX.1-2001."
4270 msgstr "C89, C99, POSIX.1-2001."
4271
4272 #.  2.3.2 used the obsolete tkill(), if available.
4273 #. type: Plain text
4274 #: build/C/man3/raise.3:82
4275 msgid ""
4276 "Since version 2.3.3, glibc implements B<raise>()  by calling B<tgkill>(2), "
4277 "if the kernel supports that system call.  Older glibc versions implemented "
4278 "B<raise>()  using B<kill>(2)."
4279 msgstr ""
4280 "glibc バージョン 2.3.3 以降では、カーネルが B<tgkill>(2) システムコールをサ"
4281 "ポートしている場合はB<raise>() は B<tgkill>(2) を使って実装されている。古い"
4282 "バージョンの glibc では、B<raise>() は B<kill>(2) を使って実装されている。"
4283
4284 #. type: Plain text
4285 #: build/C/man3/raise.3:89
4286 msgid ""
4287 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
4288 "B<signal>(7)"
4289 msgstr ""
4290 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
4291 "B<signal>(7)"
4292
4293 #. type: TH
4294 #: build/C/man2/restart_syscall.2:33
4295 #, no-wrap
4296 msgid "RESTART_SYSCALL"
4297 msgstr ""
4298
4299 #. type: Plain text
4300 #: build/C/man2/restart_syscall.2:36
4301 msgid ""
4302 "restart_syscall - restart a system call after interruption by a stop signal"
4303 msgstr ""
4304 "restart_syscall - 一時停止シグナルによる割り込み後にシステムコールを再開する"
4305
4306 #. type: Plain text
4307 #: build/C/man2/restart_syscall.2:38
4308 msgid "B<int restart_syscall(void);>"
4309 msgstr "B<int restart_syscall(void);>"
4310
4311 #. type: Plain text
4312 #: build/C/man2/restart_syscall.2:41
4313 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
4314 msgstr ""
4315 "I<注>: このシステムコールには、glibc のラッパー関数はない。「注意」の節を参"
4316 "照。"
4317
4318 #. type: Plain text
4319 #: build/C/man2/restart_syscall.2:53
4320 msgid ""
4321 "The B<restart_syscall>()  system call is used to restart certain system "
4322 "calls after a process that was stopped by a signal (e.g., B<SIGSTOP> or "
4323 "B<SIGTSTP>)  is later resumed after receiving a B<SIGCONT> signal.  This "
4324 "system call is designed only for internal use by the kernel."
4325 msgstr ""
4326
4327 #.  These system calls correspond to the special internal errno value
4328 #.  ERESTART_RESTARTBLOCK. Each of the system calls has a "restart"
4329 #.  helper function that is invoked by restart_syscall().
4330 #.  Notable (as at Linux 3.17) is that poll() has such a "restart"
4331 #.  function, but ppoll(), select(), and pselect() do not.
4332 #.  This means that the latter system calls do not take account of the
4333 #.  time spent in the stopped state when restarting.
4334 #. type: Plain text
4335 #: build/C/man2/restart_syscall.2:88
4336 msgid ""
4337 "B<restart_syscall>()  is used for restarting only those system calls that, "
4338 "when restarted, should adjust their time-related parameters\\(emnamely "
4339 "B<poll>(2)  (since Linux 2.6.24), B<nanosleep>(2)  (since Linux 2.6), "
4340 "B<clock_nanosleep>(2)  (since Linux 2.6), and B<futex>(2), when employed "
4341 "with the B<FUTEX_WAIT> (since Linux 2.6.22)  and B<FUTEX_WAIT_BITSET> (since "
4342 "Linux 2.6.31)  operations.  B<restart_syscall>()  restarts the interrupted "
4343 "system call with a time argument that is suitably adjusted to account for "
4344 "the time that has already elapsed (including the time where the process was "
4345 "stopped by a signal).  Without the B<restart_syscall>()  mechanism, "
4346 "restarting these system calls would not correctly deduct the already elapsed "
4347 "time when the process continued execution."
4348 msgstr ""
4349
4350 #. type: Plain text
4351 #: build/C/man2/restart_syscall.2:92
4352 msgid ""
4353 "The return value of B<restart_syscall>()  is the return value of whatever "
4354 "system call is being restarted."
4355 msgstr ""
4356
4357 #. type: Plain text
4358 #: build/C/man2/restart_syscall.2:96
4359 msgid ""
4360 "I<errno> is set as per the errors for whatever system call is being "
4361 "restarted by B<restart_syscall>()."
4362 msgstr ""
4363
4364 #. type: Plain text
4365 #: build/C/man2/restart_syscall.2:100
4366 msgid "The B<restart_syscall>()  system call is present since Linux 2.6."
4367 msgstr "B<restart_syscall>() システムコールは Linux 2.6 以降に存在する。"
4368
4369 #. type: Plain text
4370 #: build/C/man2/restart_syscall.2:102
4371 msgid "This system call is Linux-specific."
4372 msgstr "このシステムコールは Linux 固有である。"
4373
4374 #. type: Plain text
4375 #: build/C/man2/restart_syscall.2:106
4376 msgid ""
4377 "There is no glibc wrapper for this system call, because it is intended for "
4378 "use only by the kernel and should never be called by applications."
4379 msgstr ""
4380
4381 #. type: Plain text
4382 #: build/C/man2/restart_syscall.2:128
4383 msgid ""
4384 "The kernel uses B<restart_syscall>()  to ensure that when a system call is "
4385 "restarted after a process has been stopped by a signal and then resumed by "
4386 "B<SIGCONT>, then the time that the process spent in the stopped state is "
4387 "counted against the timeout interval specified in the original system call.  "
4388 "In the case of system calls that take a timeout argument and automatically "
4389 "restart after a stop signal plus B<SIGCONT>, but which do not have the "
4390 "B<restart_syscall>(2)  mechanism built in, then, after the process resumes "
4391 "execution, the time that the process spent in the stop state is I<not> "
4392 "counted against the timeout value.  Notable examples of system calls that "
4393 "suffer this problem are B<ppoll>(2), B<select>(2), and B<pselect>(2)."
4394 msgstr ""
4395
4396 #
4397 #. type: Plain text
4398 #: build/C/man2/restart_syscall.2:135
4399 msgid ""
4400 "From user space, the operation of B<restart_syscall>(2)  is largely "
4401 "invisible: to the process that made the system call that is restarted, it "
4402 "appears as though that system call executed and returned in the usual "
4403 "fashion."
4404 msgstr ""
4405
4406 #.  FIXME . ppoll(2), select(2), and pselect(2)
4407 #.      should probably get the restart_syscall() treatment:
4408 #.      If a select() call is suspended by stop-sig+SIGCONT, the time
4409 #.      spent suspended is *not* deducted when the select() is restarted.
4410 #.  FIXME . check whether recvmmsg() handles stop-sig+SIGCONT properly.
4411 #. type: Plain text
4412 #: build/C/man2/restart_syscall.2:144
4413 msgid "B<sigaction>(2), B<sigreturn>(2), B<signal>(7)"
4414 msgstr "B<sigaction>(2), B<sigreturn>(2), B<signal>(7)"
4415
4416 #. type: TH
4417 #: build/C/man2/rt_sigqueueinfo.2:25
4418 #, no-wrap
4419 msgid "RT_SIGQUEUEINFO"
4420 msgstr "RT_SIGQUEUEINFO"
4421
4422 #. type: TH
4423 #: build/C/man2/rt_sigqueueinfo.2:25
4424 #, no-wrap
4425 msgid "2012-07-13"
4426 msgstr "2012-07-13"
4427
4428 #. type: Plain text
4429 #: build/C/man2/rt_sigqueueinfo.2:28
4430 msgid "rt_sigqueueinfo, rt_tgsigqueueinfo - queue a signal and data"
4431 msgstr ""
4432
4433 #. type: Plain text
4434 #: build/C/man2/rt_sigqueueinfo.2:31
4435 #, no-wrap
4436 msgid "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
4437 msgstr "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
4438
4439 #. type: Plain text
4440 #: build/C/man2/rt_sigqueueinfo.2:34
4441 #, no-wrap
4442 msgid ""
4443 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
4444 "B<                      siginfo_t *>I<uinfo>B<);>\n"
4445 msgstr ""
4446 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
4447 "B<                      siginfo_t *>I<uinfo>B<);>\n"
4448
4449 #. type: Plain text
4450 #: build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/sgetmask.2:36
4451 #: build/C/man2/tkill.2:41
4452 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
4453 msgstr ""
4454 "I<注>: これらのシステムコールには、glibc のラッパー関数はない。「注意」の節を"
4455 "参照。"
4456
4457 #. type: Plain text
4458 #: build/C/man2/rt_sigqueueinfo.2:50
4459 msgid ""
4460 "The B<rt_sigqueueinfo>()  and B<rt_tgsigqueueinfo>()  system calls are the "
4461 "low-level interfaces used to send a signal plus data to a process or "
4462 "thread.  The receiver of the signal can obtain the accompanying data by "
4463 "establishing a signal handler with the B<sigaction>(2)  B<SA_SIGINFO> flag."
4464 msgstr ""
4465
4466 #. type: Plain text
4467 #: build/C/man2/rt_sigqueueinfo.2:56
4468 msgid ""
4469 "These system calls are not intended for direct application use; they are "
4470 "provided to allow the implementation of B<sigqueue>(3)  and "
4471 "B<pthread_sigqueue>(3)."
4472 msgstr ""
4473
4474 #. type: Plain text
4475 #: build/C/man2/rt_sigqueueinfo.2:68
4476 msgid ""
4477 "The B<rt_sigqueueinfo>()  system call sends the signal I<sig> to the thread "
4478 "group with the ID I<tgid>.  (The term \"thread group\" is synonymous with "
4479 "\"process\", and I<tid> corresponds to the traditional UNIX process ID.)  "
4480 "The signal will be delivered to an arbitrary member of the thread group (i."
4481 "e., one of the threads that is not currently blocking the signal)."
4482 msgstr ""
4483
4484 #. type: Plain text
4485 #: build/C/man2/rt_sigqueueinfo.2:79
4486 msgid ""
4487 "The I<uinfo> argument specifies the data to accompany the signal.  This "
4488 "argument is a pointer to a structure of type I<siginfo_t>, described in "
4489 "B<sigaction>(2)  (and defined by including I<E<lt>sigaction.hE<gt>>).  The "
4490 "caller should set the following fields in this structure:"
4491 msgstr ""
4492
4493 #. type: TP
4494 #: build/C/man2/rt_sigqueueinfo.2:79 build/C/man7/sigevent.7:88
4495 #: build/C/man2/wait.2:316
4496 #, no-wrap
4497 msgid "I<si_code>"
4498 msgstr "I<si_code>"
4499
4500 #.  tkill(2) or
4501 #. type: Plain text
4502 #: build/C/man2/rt_sigqueueinfo.2:95
4503 msgid ""
4504 "This must be one of the B<SI_*> codes in the Linux kernel source file "
4505 "I<include/asm-generic/siginfo.h>, with the restriction that the code must be "
4506 "negative (i.e., cannot be B<SI_USER>, which is used by the kernel to "
4507 "indicate a signal sent by B<kill>(2))  and cannot (since Linux 2.6.39) be "
4508 "B<SI_TKILL> (which is used by the kernel to indicate a signal sent using "
4509 "B<tgkill>(2))."
4510 msgstr ""
4511
4512 #. type: TP
4513 #: build/C/man2/rt_sigqueueinfo.2:95 build/C/man2/wait.2:295
4514 #, no-wrap
4515 msgid "I<si_pid>"
4516 msgstr "I<si_pid>"
4517
4518 #. type: Plain text
4519 #: build/C/man2/rt_sigqueueinfo.2:99
4520 msgid ""
4521 "This should be set to a process ID, typically the process ID of the sender."
4522 msgstr ""
4523
4524 #. type: TP
4525 #: build/C/man2/rt_sigqueueinfo.2:99 build/C/man2/wait.2:298
4526 #, no-wrap
4527 msgid "I<si_uid>"
4528 msgstr "I<si_uid>"
4529
4530 #. type: Plain text
4531 #: build/C/man2/rt_sigqueueinfo.2:103
4532 msgid ""
4533 "This should be set to a user ID, typically the real user ID of the sender."
4534 msgstr ""
4535
4536 #. type: TP
4537 #: build/C/man2/rt_sigqueueinfo.2:103 build/C/man7/sigevent.7:96
4538 #, no-wrap
4539 msgid "I<si_value>"
4540 msgstr "I<si_value>"
4541
4542 #. type: Plain text
4543 #: build/C/man2/rt_sigqueueinfo.2:110
4544 msgid ""
4545 "This field contains the user data to accompany the signal.  For more "
4546 "information, see the description of the last (I<union sigval>)  argument of "
4547 "B<sigqueue>(3)."
4548 msgstr ""
4549
4550 #. type: Plain text
4551 #: build/C/man2/rt_sigqueueinfo.2:117
4552 msgid ""
4553 "Internally, the kernel sets the I<si_signo> field to the value specified in "
4554 "I<sig>, so that the receiver of the signal can also obtain the signal number "
4555 "via that field."
4556 msgstr ""
4557
4558 #. type: Plain text
4559 #: build/C/man2/rt_sigqueueinfo.2:129
4560 msgid ""
4561 "The B<rt_tgsigqueueinfo>()  system call is like B<rt_sigqueueinfo>(), but "
4562 "sends the signal and data to the single thread specified by the combination "
4563 "of I<tgid>, a thread group ID, and I<tid>, a thread in that thread group."
4564 msgstr ""
4565
4566 #. type: Plain text
4567 #: build/C/man2/rt_sigqueueinfo.2:134
4568 msgid ""
4569 "On success, these system calls return 0.  On error, they return -1 and "
4570 "I<errno> is set to indicate the error."
4571 msgstr ""
4572
4573 #. type: TP
4574 #: build/C/man2/rt_sigqueueinfo.2:135 build/C/man3/sigqueue.3:92
4575 #: build/C/man2/sigwaitinfo.2:115 build/C/man2/timer_create.2:178
4576 #, no-wrap
4577 msgid "B<EAGAIN>"
4578 msgstr "B<EAGAIN>"
4579
4580 #. type: Plain text
4581 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man3/sigqueue.3:98
4582 msgid ""
4583 "The limit of signals which may be queued has been reached.  (See "
4584 "B<signal>(7)  for further information.)"
4585 msgstr ""
4586 "待ち行列に入れられるシグナルの最大数に達した (より詳しい情報は B<signal>(7)  "
4587 "を参照すること)。"
4588
4589 #. type: Plain text
4590 #: build/C/man2/rt_sigqueueinfo.2:148
4591 msgid "I<sig>, I<tgid>, or I<tid> was invalid."
4592 msgstr ""
4593
4594 #. type: Plain text
4595 #: build/C/man2/rt_sigqueueinfo.2:156
4596 msgid ""
4597 "The caller does not have permission to send the signal to the target.  For "
4598 "the required permissions, see B<kill>(2).  Or: I<uinfo-E<gt>si_code> is "
4599 "invalid."
4600 msgstr ""
4601
4602 #. type: Plain text
4603 #: build/C/man2/rt_sigqueueinfo.2:162
4604 msgid "B<rt_sigqueueinfo>(): No thread group matching I<tgid> was found."
4605 msgstr ""
4606
4607 #. type: Plain text
4608 #: build/C/man2/rt_sigqueueinfo.2:169
4609 msgid "B<rt_tgsigqueinfo>(): No thread matching I<tgid> and I<tid> was found."
4610 msgstr ""
4611
4612 #. type: Plain text
4613 #: build/C/man2/rt_sigqueueinfo.2:176
4614 msgid ""
4615 "The B<rt_sigqueueinfo>()  system call was added to Linux in version 2.2.  "
4616 "The B<rt_tgsigqueueinfo>()  system call was added to Linux in version 2.6.31."
4617 msgstr ""
4618
4619 #. type: Plain text
4620 #: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/sgetmask.2:75
4621 #: build/C/man2/timerfd_create.2:380
4622 msgid "These system calls are Linux-specific."
4623 msgstr "これらのシステムコールは Linux 固有である。"
4624
4625 #. type: Plain text
4626 #: build/C/man2/rt_sigqueueinfo.2:183
4627 msgid ""
4628 "Since these system calls are not intended for application use, there are no "
4629 "glibc wrapper functions; use B<syscall>(2)  in the unlikely case that you "
4630 "want to call them directly."
4631 msgstr ""
4632 "これらのシステムコールはアプリケーションでの使用を目的として用意されたわけで"
4633 "はないので、 glibc のラッパー関数は存在しない。おそらくないと思うが、このシス"
4634 "テムコールを直接呼び出したい場合は B<syscall>(2) を使うこと。"
4635
4636 #. type: Plain text
4637 #: build/C/man2/rt_sigqueueinfo.2:188
4638 msgid ""
4639 "As with B<kill>(2), the null signal (0) can be used to check if the "
4640 "specified process or thread exists."
4641 msgstr ""
4642
4643 #. type: Plain text
4644 #: build/C/man2/rt_sigqueueinfo.2:196
4645 msgid ""
4646 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4647 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4648 msgstr ""
4649 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4650 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4651
4652 #. type: TH
4653 #: build/C/man2/s390_runtime_instr.2:25
4654 #, no-wrap
4655 msgid "S390_RUNTIME_INSTR"
4656 msgstr ""
4657
4658 #. type: TH
4659 #: build/C/man2/s390_runtime_instr.2:25
4660 #, no-wrap
4661 msgid "2012-12-17"
4662 msgstr "2012-12-17"
4663
4664 #. type: Plain text
4665 #: build/C/man2/s390_runtime_instr.2:28
4666 msgid "s390_runtime_instr - enable/disable s390 CPU run-time instrumentation"
4667 msgstr ""
4668
4669 #. type: Plain text
4670 #: build/C/man2/s390_runtime_instr.2:31
4671 #, no-wrap
4672 msgid "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4673 msgstr "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4674
4675 #. type: Plain text
4676 #: build/C/man2/s390_runtime_instr.2:33
4677 #, no-wrap
4678 msgid "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4679 msgstr "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4680
4681 #. type: Plain text
4682 #: build/C/man2/s390_runtime_instr.2:39
4683 msgid ""
4684 "The B<s390_runtime_instr>()  system call starts or stops CPU run-time "
4685 "instrumentation for the calling thread."
4686 msgstr ""
4687
4688 #. type: Plain text
4689 #: build/C/man2/s390_runtime_instr.2:47
4690 msgid ""
4691 "The I<command> argument controls whether run-time instrumentation is started "
4692 "(B<S390_RUNTIME_INSTR_START>, 1) or stopped (B<S390_RUNTIME_INSTR_STOP>, 2) "
4693 "for the calling thread."
4694 msgstr ""
4695
4696 #. type: Plain text
4697 #: build/C/man2/s390_runtime_instr.2:54
4698 msgid ""
4699 "The I<signum> argument specifies the number of a real-time signal.  The real-"
4700 "time signal is sent to the thread if the run-time instrumentation buffer is "
4701 "full or if the run-time-instrumentation-halted interrupt occurred."
4702 msgstr ""
4703
4704 #. type: Plain text
4705 #: build/C/man2/s390_runtime_instr.2:65
4706 msgid ""
4707 "On success, B<s390_runtime_instr>()  returns 0 and enables the thread for "
4708 "run-time instrumentation by assigning the thread a default run-time "
4709 "instrumentation control block.  The caller can then read and modify the "
4710 "control block and start the run-time instrumentation.  On error, -1 is "
4711 "returned and I<errno> is set to one of the error codes listed below."
4712 msgstr ""
4713
4714 #. type: Plain text
4715 #: build/C/man2/s390_runtime_instr.2:73
4716 msgid ""
4717 "The value specified in I<command> is not a valid command or the value "
4718 "specified in I<signum> is not a real-time signal number."
4719 msgstr ""
4720
4721 #. type: Plain text
4722 #: build/C/man2/s390_runtime_instr.2:76
4723 msgid ""
4724 "Allocating memory for the run-time instrumentation control block failed."
4725 msgstr ""
4726
4727 #. type: TP
4728 #: build/C/man2/s390_runtime_instr.2:76
4729 #, no-wrap
4730 msgid "B<EOPNOTSUPP>"
4731 msgstr ""
4732
4733 #. type: Plain text
4734 #: build/C/man2/s390_runtime_instr.2:79
4735 msgid "The run-time instrumentation facility is not available."
4736 msgstr ""
4737
4738 #. type: Plain text
4739 #: build/C/man2/s390_runtime_instr.2:81
4740 msgid "This system call is available since Linux 3.7."
4741 msgstr "このシステムコールは Linux 3.7 で初めて登場した。"
4742
4743 #. type: Plain text
4744 #: build/C/man2/s390_runtime_instr.2:84
4745 msgid ""
4746 "This Linux-specific system call is available only on the s390 architecture.  "
4747 "The run-time instrumentation facility is available beginning with System z "
4748 "EC12."
4749 msgstr ""
4750
4751 #. type: Plain text
4752 #: build/C/man2/s390_runtime_instr.2:88
4753 msgid ""
4754 "Glibc does not provide a wrapper for this system call, use B<syscall>(2)  to "
4755 "call it."
4756 msgstr ""
4757 "glibc はこのシステムコールに対するラッパー関数を提供していない。 "
4758 "B<syscall>(2) を使用すること。"
4759
4760 #. type: Plain text
4761 #: build/C/man2/s390_runtime_instr.2:91
4762 msgid "B<syscall>(2), B<signal>(7)"
4763 msgstr "B<syscall>(2), B<signal>(7)"
4764
4765 #. type: TH
4766 #: build/C/man2/sgetmask.2:26
4767 #, no-wrap
4768 msgid "SGETMASK"
4769 msgstr "SGETMASK"
4770
4771 #. type: Plain text
4772 #: build/C/man2/sgetmask.2:29
4773 msgid "sgetmask, ssetmask - manipulation of signal mask (obsolete)"
4774 msgstr "sgetmask, ssetmask - シグナルマスクの操作 (廃止予定)"
4775
4776 #. type: Plain text
4777 #: build/C/man2/sgetmask.2:31
4778 msgid "B<long sgetmask(void);>"
4779 msgstr "B<long sgetmask(void);>"
4780
4781 #. type: Plain text
4782 #: build/C/man2/sgetmask.2:33
4783 msgid "B<long ssetmask(long >I<newmask>B<);>"
4784 msgstr "B<long ssetmask(long >I<newmask>B<);>"
4785
4786 #. type: Plain text
4787 #: build/C/man2/sgetmask.2:42
4788 msgid ""
4789 "These system calls are obsolete.  I<Do not use them>; use B<sigprocmask>(2)  "
4790 "instead."
4791 msgstr ""
4792 "これらのシステムコールは廃止予定であり、 「使用しないこと」。 代わりに "
4793 "B<sigprocmask>(2)  を使用すること。"
4794
4795 #. type: Plain text
4796 #: build/C/man2/sgetmask.2:45
4797 msgid "B<sgetmask>()  returns the signal mask of the calling process."
4798 msgstr "B<sgetmask>()  は、呼び出し元プロセスのシグナルマスクを返す。"
4799
4800 #. type: Plain text
4801 #: build/C/man2/sgetmask.2:50
4802 msgid ""
4803 "B<ssetmask>()  sets the signal mask of the calling process to the value "
4804 "given in I<newmask>.  The previous signal mask is returned."
4805 msgstr ""
4806 "B<ssetmask>()  は、呼び出し元プロセスのシグナルマスクを I<newmask> で指定され"
4807 "た値に設定し、変更前のシグナルマスクを返す。"
4808
4809 #. type: Plain text
4810 #: build/C/man2/sgetmask.2:59
4811 msgid ""
4812 "The signal masks dealt with by these two system calls are plain bit masks "
4813 "(unlike the I<sigset_t> used by B<sigprocmask>(2)); use B<sigmask>(3)  to "
4814 "create and inspect these masks."
4815 msgstr ""
4816 "これら二つのシステムコールが扱うシグナルマスクは、 単純なビットマスクである "
4817 "(この点が B<sigprocmask>(2)  で使用される I<sigset_t> と異なる)。 これらのマ"
4818 "スクを作成したり検査するには B<sigmask>(3)  を使用すること。"
4819
4820 #. type: Plain text
4821 #: build/C/man2/sgetmask.2:64
4822 msgid ""
4823 "B<sgetmask>()  always successfully returns the signal mask.  B<ssetmask>()  "
4824 "always succeeds, and returns the previous signal mask."
4825 msgstr ""
4826 "B<sgetmask>()  は常に成功し、シグナルマスクを返す。 B<ssetmask>()  は常に成功"
4827 "し、直前のシグナルマスクを返す。"
4828
4829 #. type: Plain text
4830 #: build/C/man2/sgetmask.2:66
4831 msgid "These system calls always succeed."
4832 msgstr "これらのシステムコールは常に成功する。"
4833
4834 #.  f6187769dae48234f3877df3c4d99294cc2254fa
4835 #. type: Plain text
4836 #: build/C/man2/sgetmask.2:73
4837 msgid ""
4838 "Since Linux 3.16, support for these system calls is optional, depending on "
4839 "whether the kernel was built with the B<CONFIG_SGETMASK_SYSCALL> option."
4840 msgstr ""
4841 "Linux 3.16 以降では、これらのシステムコールのサポートは任意となり、利用できる"
4842 "かはカーネルが B<CONFIG_SGETMASK_SYSCALL> オプションを有効にしてコンパイルさ"
4843 "れているかに依存する。"
4844
4845 #. type: Plain text
4846 #: build/C/man2/sgetmask.2:79
4847 msgid ""
4848 "Glibc does not provide wrappers for these obsolete system calls; in the "
4849 "unlikely event that you want to call them, use B<syscall>(2)."
4850 msgstr ""
4851 "glibc はこれらの古いシステムコールに対するラッパー関数を提供していない。 あま"
4852 "りないと思うが、これらを呼び出したい場合には B<syscall>(2) を使うこと。"
4853
4854 #. type: Plain text
4855 #: build/C/man2/sgetmask.2:82
4856 msgid ""
4857 "These system calls are unaware of signal numbers greater than 31 (i.e., real-"
4858 "time signals)."
4859 msgstr ""
4860 "これらのシステムコールは、 31 より大きいシグナル番号 (つまり、リアルタイムシ"
4861 "グナル) を扱えない。"
4862
4863 #. type: Plain text
4864 #: build/C/man2/sgetmask.2:84
4865 msgid "These system calls do not exist on x86-64."
4866 msgstr "これらのシステムコールは x86-64 には存在しない。"
4867
4868 #. type: Plain text
4869 #: build/C/man2/sgetmask.2:89
4870 msgid "It is not possible to block B<SIGSTOP> or B<SIGKILL>."
4871 msgstr "B<SIGSTOP> や B<SIGKILL> をブロックすることはできない。"
4872
4873 #. type: Plain text
4874 #: build/C/man2/sgetmask.2:92
4875 msgid "B<sigprocmask>(2), B<signal>(7)"
4876 msgstr "B<sigprocmask>(2), B<signal>(7)"
4877
4878 #. type: TH
4879 #: build/C/man2/sigaction.2:49
4880 #, no-wrap
4881 msgid "SIGACTION"
4882 msgstr "SIGACTION"
4883
4884 #. type: TH
4885 #: build/C/man2/sigaction.2:49
4886 #, no-wrap
4887 msgid "2015-01-22"
4888 msgstr "2015-01-22"
4889
4890 #. type: Plain text
4891 #: build/C/man2/sigaction.2:52
4892 msgid "sigaction - examine and change a signal action"
4893 msgstr "sigaction - シグナルの動作の確認と変更"
4894
4895 #. type: Plain text
4896 #: build/C/man2/sigaction.2:58
4897 #, no-wrap
4898 msgid ""
4899 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4900 "B<              struct sigaction *>I<oldact>B<);>\n"
4901 msgstr ""
4902 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4903 "B<              struct sigaction *>I<oldact>B<);>\n"
4904
4905 #. type: Plain text
4906 #: build/C/man2/sigaction.2:68
4907 msgid ""
4908 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4909 "_POSIX_SOURCE"
4910 msgstr ""
4911 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4912 "_POSIX_SOURCE"
4913
4914 #. type: Plain text
4915 #: build/C/man2/sigaction.2:71
4916 msgid "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4917 msgstr "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4918
4919 #. type: Plain text
4920 #: build/C/man2/sigaction.2:80
4921 msgid ""
4922 "The B<sigaction>()  system call is used to change the action taken by a "
4923 "process on receipt of a specific signal.  (See B<signal>(7)  for an overview "
4924 "of signals.)"
4925 msgstr ""
4926 "B<sigaction>()  システムコールは、特定のシグナルを受信した際の プロセスの動作"
4927 "を変更するのに使用される (シグナルの概要については B<signal>(7)  を参照)。"
4928
4929 #. type: Plain text
4930 #: build/C/man2/sigaction.2:86
4931 msgid ""
4932 "I<signum> specifies the signal and can be any valid signal except B<SIGKILL> "
4933 "and B<SIGSTOP>."
4934 msgstr ""
4935 "I<signum> には、 B<SIGKILL> と B<SIGSTOP> 以外の有効なシグナルをどれでも指定"
4936 "できる。"
4937
4938 #. type: Plain text
4939 #: build/C/man2/sigaction.2:97
4940 msgid ""
4941 "If I<act> is non-NULL, the new action for signal I<signum> is installed from "
4942 "I<act>.  If I<oldact> is non-NULL, the previous action is saved in I<oldact>."
4943 msgstr ""
4944 "I<act> が NULL 以外であれば、シグナル I<signum> の新しい動作 (action) として "
4945 "I<act> が設定される。 I<oldact> が NULL でなければ、今までの動作が I<oldact> "
4946 "に格納される。"
4947
4948 #. type: Plain text
4949 #: build/C/man2/sigaction.2:101
4950 msgid "The I<sigaction> structure is defined as something like:"
4951 msgstr "I<sigaction> 構造体は以下のような感じに定義される。"
4952
4953 #. type: Plain text
4954 #: build/C/man2/sigaction.2:111
4955 #, no-wrap
4956 msgid ""
4957 "struct sigaction {\n"
4958 "    void     (*sa_handler)(int);\n"
4959 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4960 "    sigset_t   sa_mask;\n"
4961 "    int        sa_flags;\n"
4962 "    void     (*sa_restorer)(void);\n"
4963 "};\n"
4964 msgstr ""
4965 "struct sigaction {\n"
4966 "    void     (*sa_handler)(int);\n"
4967 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4968 "    sigset_t   sa_mask;\n"
4969 "    int        sa_flags;\n"
4970 "    void     (*sa_restorer)(void);\n"
4971 "};\n"
4972
4973 #. type: Plain text
4974 #: build/C/man2/sigaction.2:118
4975 msgid ""
4976 "On some architectures a union is involved: do not assign to both "
4977 "I<sa_handler> and I<sa_sigaction>."
4978 msgstr ""
4979 "アーキテクチャによっては共用体 (union) が用いられており、その場合には "
4980 "I<sa_handler> と I<sa_sigaction> の両方を同時に割り当てることはできない。"
4981
4982 #. type: Plain text
4983 #: build/C/man2/sigaction.2:127
4984 msgid ""
4985 "The I<sa_restorer> field is not intended for application use.  (POSIX does "
4986 "not specify a I<sa_restorer> field.)  Some further details of purpose of "
4987 "this field can be found in B<sigreturn>(2)."
4988 msgstr ""
4989 "I<sa_restorer> はアプリケーションが使用することを意図したフィールドではない "
4990 "(POSIX は I<sa_restorer> フィールドを規定していない)。 このフィールドの詳細な"
4991 "目的については B<sigreturn>(2) に書かれている。"
4992
4993 #. type: Plain text
4994 #: build/C/man2/sigaction.2:137
4995 msgid ""
4996 "I<sa_handler> specifies the action to be associated with I<signum> and may "
4997 "be B<SIG_DFL> for the default action, B<SIG_IGN> to ignore this signal, or a "
4998 "pointer to a signal handling function.  This function receives the signal "
4999 "number as its only argument."
5000 msgstr ""
5001 "I<sa_handler> は I<signum> に対応する動作を指定するもので、 デフォルトの動作"
5002 "を行う B<SIG_DFL>、 そのシグナルを無視する B<SIG_IGN>、 シグナルハンドラ関数"
5003 "へのポインタが設定できる。 シグナルハンドラ関数の引き数は一つであり、シグナル"
5004 "番号が引き数として 渡される。"
5005
5006 #. type: Plain text
5007 #: build/C/man2/sigaction.2:159
5008 msgid ""
5009 "If B<SA_SIGINFO> is specified in I<sa_flags>, then I<sa_sigaction> (instead "
5010 "of I<sa_handler>)  specifies the signal-handling function for I<signum>.  "
5011 "This function receives the signal number as its first argument, a pointer to "
5012 "a I<siginfo_t> as its second argument and a pointer to a I<ucontext_t> (cast "
5013 "to I<void\\ *>) as its third argument.  (Commonly, the handler function "
5014 "doesn't make any use of the third argument.  See B<getcontext>(3)  for "
5015 "further information about I<ucontext_t>.)"
5016 msgstr ""
5017 "I<sa_flags> に B<SA_SIGINFO> が指定された場合、 (I<sa_handler> ではなく) "
5018 "I<sa_sigaction> により I<signum> に対応するシグナルハンドラ関数が指定される。"
5019 "指定される関数は、最初の引き数としてシグナル番号を、二番目の引き数として "
5020 "I<siginfo_t> へのポインタを、三番目の引き数として (I<void\\ *> にキャストし"
5021 "た) I<ucontext_t> へのポインタを受けとる。 (一般的には、ハンドラ関数の三番目"
5022 "の引き数が使用されない。I<ucontext_t> についての詳しい情報は "
5023 "B<getcontext>(3) を参照。)"
5024
5025 #. type: Plain text
5026 #: build/C/man2/sigaction.2:169
5027 msgid ""
5028 "I<sa_mask> specifies a mask of signals which should be blocked (i.e., added "
5029 "to the signal mask of the thread in which the signal handler is invoked)  "
5030 "during execution of the signal handler.  In addition, the signal which "
5031 "triggered the handler will be blocked, unless the B<SA_NODEFER> flag is used."
5032 msgstr ""
5033 "I<sa_mask> は、シグナル・ハンドラ実行中に禁止 (block) すべきシグナルのマスク"
5034 "を指定する (ハンドラ実行中のシグナルの禁止は、シグナル・ハンドラが起動された"
5035 "スレッド のシグナルのマスクに追加することで行われる)。 さらに、 "
5036 "B<SA_NODEFER> フラグが指定されていない場合は、ハンドラを起動するきっかけとな"
5037 "る シグナルにも I<sa_mask> が適用される。"
5038
5039 #. type: Plain text
5040 #: build/C/man2/sigaction.2:173
5041 msgid ""
5042 "I<sa_flags> specifies a set of flags which modify the behavior of the "
5043 "signal.  It is formed by the bitwise OR of zero or more of the following:"
5044 msgstr ""
5045 "I<sa_flags> はシグナル・ハンドラの動作を変更するためのフラグの集合を指定す"
5046 "る。 I<sa_flags> には、以下に示すフラグの (0 個以上の) 論理和をとったものを指"
5047 "定する。"
5048
5049 #. type: TP
5050 #: build/C/man2/sigaction.2:174
5051 #, no-wrap
5052 msgid "B<SA_NOCLDSTOP>"
5053 msgstr "B<SA_NOCLDSTOP>"
5054
5055 #. type: Plain text
5056 #: build/C/man2/sigaction.2:191
5057 msgid ""
5058 "If I<signum> is B<SIGCHLD>, do not receive notification when child processes "
5059 "stop (i.e., when they receive one of B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, or "
5060 "B<SIGTTOU>)  or resume (i.e., they receive B<SIGCONT>)  (see B<wait>(2)).  "
5061 "This flag is meaningful only when establishing a handler for B<SIGCHLD>."
5062 msgstr ""
5063 "I<signum> が B<SIGCHLD> の場合、 子プロセスが停止したり (子プロセスが "
5064 "B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, B<SIGTTOU> を受けたとき) 再開したり (子プ"
5065 "ロセスが B<SIGCONT> を受けたとき) したときに B<SIGCHLD> の通知を受けない。 こ"
5066 "のフラグは、 B<SIGCHLD> に対してハンドラを設定する際にのみ意味を持つ。"
5067
5068 #. type: TP
5069 #: build/C/man2/sigaction.2:191
5070 #, no-wrap
5071 msgid "B<SA_NOCLDWAIT> (since Linux 2.6)"
5072 msgstr "B<SA_NOCLDWAIT> (Linux 2.6 以降)"
5073
5074 #.  To be precise: Linux 2.5.60 -- MTK
5075 #. type: Plain text
5076 #: build/C/man2/sigaction.2:205
5077 msgid ""
5078 "If I<signum> is B<SIGCHLD>, do not transform children into zombies when they "
5079 "terminate.  See also B<waitpid>(2).  This flag is meaningful only when "
5080 "establishing a handler for B<SIGCHLD>, or when setting that signal's "
5081 "disposition to B<SIG_DFL>."
5082 msgstr ""
5083 "(Linux 2.6 以降)  I<signum> が B<SIGCHLD> の場合、子プロセスが終了したときに "
5084 "子プロセスをゾンビプロセスに変化させない (B<waitpid>(2)  も参照)。 このフラグ"
5085 "は、 B<SIGCHLD> に対してハンドラを設定する際、もしくはそのシグナルの処理方法"
5086 "を B<SIG_DFL> に設定する際にのみ意味を持つ。"
5087
5088 #. type: Plain text
5089 #: build/C/man2/sigaction.2:217
5090 msgid ""
5091 "If the B<SA_NOCLDWAIT> flag is set when establishing a handler for "
5092 "B<SIGCHLD>, POSIX.1 leaves it unspecified whether a B<SIGCHLD> signal is "
5093 "generated when a child process terminates.  On Linux, a B<SIGCHLD> signal is "
5094 "generated in this case; on some other implementations, it is not."
5095 msgstr ""
5096 "B<SIGCHLD> に対してハンドラを設定する際に B<SA_NOCLDWAIT> フラグをセットした"
5097 "場合、 子プロセスが終了した際に B<SIGCHLD> シグナルが生成されるかどうかは、 "
5098 "POSIX.1 では規定されていない。 Linux では、この状況で B<SIGCHLD> シグナルは生"
5099 "成される。 いくつかの他の実装では生成されない。"
5100
5101 #. type: TP
5102 #: build/C/man2/sigaction.2:217
5103 #, no-wrap
5104 msgid "B<SA_NODEFER>"
5105 msgstr "B<SA_NODEFER>"
5106
5107 #. type: Plain text
5108 #: build/C/man2/sigaction.2:224
5109 msgid ""
5110 "Do not prevent the signal from being received from within its own signal "
5111 "handler.  This flag is meaningful only when establishing a signal handler.  "
5112 "B<SA_NOMASK> is an obsolete, nonstandard synonym for this flag."
5113 msgstr ""
5114 "それ自身のシグナル・ハンドラーの内部にいる時でも そのシグナルをマスクしないよ"
5115 "うにする。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 "
5116 "B<SA_NOMASK> はこのフラグと同じ意味だが、廃止されており、非標準である。"
5117
5118 #. type: TP
5119 #: build/C/man2/sigaction.2:224
5120 #, no-wrap
5121 msgid "B<SA_ONSTACK>"
5122 msgstr "B<SA_ONSTACK>"
5123
5124 #. type: Plain text
5125 #: build/C/man2/sigaction.2:230
5126 msgid ""
5127 "Call the signal handler on an alternate signal stack provided by "
5128 "B<sigaltstack>(2).  If an alternate stack is not available, the default "
5129 "stack will be used.  This flag is meaningful only when establishing a signal "
5130 "handler."
5131 msgstr ""
5132 "B<sigaltstack>(2)  で提供される別のシグナル・スタックでシグナルハンドラを呼び"
5133 "出す。 別のシグナル・スタックが利用可能でなければ、デフォルトのスタックが 使"
5134 "用される。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。"
5135
5136 #. type: TP
5137 #: build/C/man2/sigaction.2:230
5138 #, no-wrap
5139 msgid "B<SA_RESETHAND>"
5140 msgstr "B<SA_RESETHAND>"
5141
5142 #. type: Plain text
5143 #: build/C/man2/sigaction.2:236
5144 msgid ""
5145 "Restore the signal action to the default upon entry to the signal handler.  "
5146 "This flag is meaningful only when establishing a signal handler.  "
5147 "B<SA_ONESHOT> is an obsolete, nonstandard synonym for this flag."
5148 msgstr ""
5149 "シグナルハンドラを設定する際に、シグナルの動作をデフォルトに戻す。 このフラグ"
5150 "はシグナルハンドラを設定する際にのみ意味を持つ。 B<SA_ONESHOT> はこのフラグと"
5151 "同じ意味だが、廃止されており、非標準である。"
5152
5153 #. type: TP
5154 #: build/C/man2/sigaction.2:236
5155 #, no-wrap
5156 msgid "B<SA_RESTART>"
5157 msgstr "B<SA_RESTART>"
5158
5159 #. type: Plain text
5160 #: build/C/man2/sigaction.2:244
5161 msgid ""
5162 "Provide behavior compatible with BSD signal semantics by making certain "
5163 "system calls restartable across signals.  This flag is meaningful only when "
5164 "establishing a signal handler.  See B<signal>(7)  for a discussion of system "
5165 "call restarting."
5166 msgstr ""
5167 "いくつかのシステムコールをシグナルの通知の前後で再開できるようにして、 BSD シ"
5168 "グナル方式 (semantics) と互換性のある動作を提供する。 このフラグはシグナルハ"
5169 "ンドラを設定する際にのみ意味を持つ。 B<signal>(7)  に書かれているシステムコー"
5170 "ルの再開に関する議論を参照のこと。"
5171
5172 #. type: TP
5173 #: build/C/man2/sigaction.2:244
5174 #, no-wrap
5175 msgid "B<SA_RESTORER>"
5176 msgstr "B<SA_RESTORER>"
5177
5178 #. type: Plain text
5179 #: build/C/man2/sigaction.2:253
5180 msgid ""
5181 "I<Not intended for application use>.  This flag is used by C libraries to "
5182 "indicate that the I<sa_restorer> field contains the address of a \"signal "
5183 "trampoline\".  See B<sigreturn>(2)  for more details."
5184 msgstr ""
5185 "I<アプリケーションでの使用を意図したものではない>。 このフラグは C ライブラリ"
5186 "が I<sa_restorer> フィールドに \"signal trampoline\" のアドレスが入っているこ"
5187 "とを示すために使用される。 詳細は B<sigreturn>(2) を参照。"
5188
5189 #. type: TP
5190 #: build/C/man2/sigaction.2:253
5191 #, no-wrap
5192 msgid "B<SA_SIGINFO> (since Linux 2.2)"
5193 msgstr "B<SA_SIGINFO> (Linux 2.2 以降)"
5194
5195 #.  (The
5196 #.  .I sa_sigaction
5197 #.  field was added in Linux 2.1.86.)
5198 #. type: Plain text
5199 #: build/C/man2/sigaction.2:264
5200 msgid ""
5201 "The signal handler takes three arguments, not one.  In this case, "
5202 "I<sa_sigaction> should be set instead of I<sa_handler>.  This flag is "
5203 "meaningful only when establishing a signal handler."
5204 msgstr ""
5205 "シグナルハンドラは一つではなく、三つの引き数を持つ。この場合は I<sa_handler> "
5206 "のかわりに I<sa_sigaction> を設定しなければならない このフラグはシグナルハン"
5207 "ドラを設定する際にのみ意味を持つ。"
5208
5209 #. type: Plain text
5210 #: build/C/man2/sigaction.2:271
5211 msgid ""
5212 "The I<siginfo_t> argument to I<sa_sigaction> is a struct with the following "
5213 "fields:"
5214 msgstr ""
5215 "I<sa_sigaction> のパラメータ I<siginfo_t> は以下のフィールドを持つ構造体であ"
5216 "る:"
5217
5218 #.  FIXME
5219 #.  The siginfo_t 'si_trapno' field seems to be used only on SPARC and Alpha;
5220 #.  this page could use a little more detail on its purpose there.
5221 #.  In the kernel: si_tid
5222 #. type: Plain text
5223 #: build/C/man2/sigaction.2:309
5224 #, no-wrap
5225 msgid ""
5226 "siginfo_t {\n"
5227 "    int      si_signo;     /* Signal number */\n"
5228 "    int      si_errno;     /* An errno value */\n"
5229 "    int      si_code;      /* Signal code */\n"
5230 "    int      si_trapno;    /* Trap number that caused\n"
5231 "                              hardware-generated signal\n"
5232 "                              (unused on most architectures) */\n"
5233 "    pid_t    si_pid;       /* Sending process ID */\n"
5234 "    uid_t    si_uid;       /* Real user ID of sending process */\n"
5235 "    int      si_status;    /* Exit value or signal */\n"
5236 "    clock_t  si_utime;     /* User time consumed */\n"
5237 "    clock_t  si_stime;     /* System time consumed */\n"
5238 "    sigval_t si_value;     /* Signal value */\n"
5239 "    int      si_int;       /* POSIX.1b signal */\n"
5240 "    void    *si_ptr;       /* POSIX.1b signal */\n"
5241 "    int      si_overrun;   /* Timer overrun count;\n"
5242 "                              POSIX.1b timers */\n"
5243 "    int      si_timerid;   /* Timer ID; POSIX.1b timers */\n"
5244 "    void    *si_addr;      /* Memory location which caused fault */\n"
5245 "    long     si_band;      /* Band event (was I<int> in\n"
5246 "                              glibc 2.3.2 and earlier) */\n"
5247 "    int      si_fd;        /* File descriptor */\n"
5248 "    short    si_addr_lsb;  /* Least significant bit of address\n"
5249 "                              (since Linux 2.6.32) */\n"
5250 "    void    *si_call_addr; /* Address of system call instruction\n"
5251 "                              (since Linux 3.5) */\n"
5252 "    int      si_syscall;   /* Number of attempted system call\n"
5253 "                              (since Linux 3.5) */\n"
5254 "    unsigned int si_arch;  /* Architecture of attempted system call\n"
5255 "                              (since Linux 3.5) */\n"
5256 "}\n"
5257 msgstr ""
5258 "siginfo_t {\n"
5259 "    int      si_signo;     /* Signal number */\n"
5260 "    int      si_errno;     /* An errno value */\n"
5261 "    int      si_code;      /* Signal code */\n"
5262 "    int      si_trapno;    /* Trap number that caused\n"
5263 "                              hardware-generated signal\n"
5264 "                              (unused on most architectures) */\n"
5265 "    pid_t    si_pid;       /* Sending process ID */\n"
5266 "    uid_t    si_uid;       /* Real user ID of sending process */\n"
5267 "    int      si_status;    /* Exit value or signal */\n"
5268 "    clock_t  si_utime;     /* User time consumed */\n"
5269 "    clock_t  si_stime;     /* System time consumed */\n"
5270 "    sigval_t si_value;     /* Signal value */\n"
5271 "    int      si_int;       /* POSIX.1b signal */\n"
5272 "    void    *si_ptr;       /* POSIX.1b signal */\n"
5273 "    int      si_overrun;   /* Timer overrun count;\n"
5274 "                              POSIX.1b timers */\n"
5275 "    int      si_timerid;   /* Timer ID; POSIX.1b timers */\n"
5276 "    void    *si_addr;      /* Memory location which caused fault */\n"
5277 "    long     si_band;      /* Band event (was I<int> in\n"
5278 "                              glibc 2.3.2 and earlier) */\n"
5279 "    int      si_fd;        /* File descriptor */\n"
5280 "    short    si_addr_lsb;  /* Least significant bit of address\n"
5281 "                              (since Linux 2.6.32) */\n"
5282 "    void    *si_call_addr; /* Address of system call instruction\n"
5283 "                              (since Linux 3.5) */\n"
5284 "    int      si_syscall;   /* Number of attempted system call\n"
5285 "                              (since Linux 3.5) */\n"
5286 "    unsigned int si_arch;  /* Architecture of attempted system call\n"
5287 "                              (since Linux 3.5) */\n"
5288 "}\n"
5289
5290 #. type: Plain text
5291 #: build/C/man2/sigaction.2:318
5292 msgid ""
5293 "I<si_signo>, I<si_errno> and I<si_code> are defined for all signals.  "
5294 "(I<si_errno> is generally unused on Linux.)  The rest of the struct may be a "
5295 "union, so that one should read only the fields that are meaningful for the "
5296 "given signal:"
5297 msgstr ""
5298 "I<si_signo>, I<si_errno>, I<si_code> は全てのシグナルに対して定義されている "
5299 "(I<si_errno> は Linux では一般的には使用されない)。 構造体の残りの部分は、共"
5300 "用体 (union) になっているかもしれない。 その場合は該当するシグナルにおいて意"
5301 "味のあるフィールドのみを読み込む ことができる。"
5302
5303 #. type: Plain text
5304 #: build/C/man2/sigaction.2:333
5305 msgid ""
5306 "Signals sent with B<kill>(2)  and B<sigqueue>(3)  fill in I<si_pid> and "
5307 "I<si_uid>.  In addition, signals sent with B<sigqueue>(3)  fill in I<si_int> "
5308 "and I<si_ptr> with the values specified by the sender of the signal; see "
5309 "B<sigqueue>(3)  for more details."
5310 msgstr ""
5311 "B<kill>(2) や B<sigqueue>(3) で送信されたシグナルでは I<si_pid> と I<si_uid> "
5312 "が設定される。 さらに、 B<sigqueue>(3) で送信されたシグナルでは I<si_int> と "
5313 "I<si_pid> にシグナルの送信者により指定された値が設定される。詳細は "
5314 "B<sigqueue>(3) を参照。"
5315
5316 #. type: Plain text
5317 #: build/C/man2/sigaction.2:349
5318 msgid ""
5319 "Signals sent by POSIX.1b timers (since Linux 2.6) fill in I<si_overrun> and "
5320 "I<si_timerid>.  The I<si_timerid> field is an internal ID used by the kernel "
5321 "to identify the timer; it is not the same as the timer ID returned by "
5322 "B<timer_create>(2).  The I<si_overrun> field is the timer overrun count; "
5323 "this is the same information as is obtained by a call to "
5324 "B<timer_getoverrun>(2).  These fields are nonstandard Linux extensions."
5325 msgstr ""
5326 "POSIX.1b タイマ (Linux 2.6 以降) は I<si_overrun> と I<si_timerid> を設定す"
5327 "る。 I<si_timerid> フィールドはカーネルがタイマを特定するのに使用する内部 ID "
5328 "であり、 B<timer_create>(2) が返すタイマ ID と同じではない。 I<si_overrun> "
5329 "フィールドはタイマが回り切った回数である。 これは B<timer_getoverrun>(2) の呼"
5330 "び出しで取得できる情報と同じである。 これらのフィールドは非標準で Linux によ"
5331 "る拡張である。"
5332
5333 #. type: Plain text
5334 #: build/C/man2/sigaction.2:364
5335 msgid ""
5336 "Signals sent for message queue notification (see the description of "
5337 "B<SIGEV_SIGNAL> in B<mq_notify>(3))  fill in I<si_int>/I<si_ptr>, with the "
5338 "I<sigev_value> supplied to B<mq_notify>(3); I<si_pid>, with the process ID "
5339 "of the message sender; and I<si_uid>, with the real user ID of the message "
5340 "sender."
5341 msgstr ""
5342 "メッセージキューの通知用に送信されたシグナル (B<mq_notify>(3) の "
5343 "B<SIGEV_SIGNAL> の説明を参照) では、 I<si_int>/I<si_ptr> に B<mq_notify>(3) "
5344 "に渡された I<sigev_value> が設定される。 I<si_pid> にはメッセージ送信者のプロ"
5345 "セス ID が設定され、 I<si_uid> にはメッセージ送信者の実ユーザ ID が設定され"
5346 "る。"
5347
5348 #.  FIXME .
5349 #.  When si_utime and si_stime where originally implemented, the
5350 #.  measurement unit was HZ, which was the same as clock ticks
5351 #.  (sysconf(_SC_CLK_TCK)).  In 2.6, HZ became configurable, and
5352 #.  was *still* used as the unit to return the info these fields,
5353 #.  with the result that the field values depended on the the
5354 #.  configured HZ.  Of course, the should have been measured in
5355 #.  USER_HZ instead, so that sysconf(_SC_CLK_TCK) could be used to
5356 #.  convert to seconds.  I have a queued patch to fix this:
5357 #.  http://thread.gmane.org/gmane.linux.kernel/698061/ .
5358 #.  This patch made it into 2.6.27.
5359 #.  But note that these fields still don't return the times of
5360 #.  waited-for children (as is done by getrusage() and times()
5361 #.  and wait4()).  Solaris 8 does include child times.
5362 #. type: Plain text
5363 #: build/C/man2/sigaction.2:411
5364 msgid ""
5365 "B<SIGCHLD> fills in I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>, and "
5366 "I<si_stime>, providing information about the child.  The I<si_pid> field is "
5367 "the process ID of the child; I<si_uid> is the child's real user ID.  The "
5368 "I<si_status> field contains the exit status of the child (if I<si_code> is "
5369 "B<CLD_EXITED>), or the signal number that caused the process to change "
5370 "state.  The I<si_utime> and I<si_stime> contain the user and system CPU time "
5371 "used by the child process; these fields do not include the times used by "
5372 "waited-for children (unlike B<getrusage>(2)  and B<times>(2)).  In kernels "
5373 "up to 2.6, and since 2.6.27, these fields report CPU time in units of "
5374 "I<sysconf(_SC_CLK_TCK)>.  In 2.6 kernels before 2.6.27, a bug meant that "
5375 "these fields reported time in units of the (configurable) system jiffy (see "
5376 "B<time>(7))."
5377 msgstr ""
5378 "B<SIGCHLD> は I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>, I<si_stime> を"
5379 "設定し、子プロセスに関する情報を提供する。 I<si_pid> フィールドは子プロセスの"
5380 "プロセス ID で、 I<si_uid> フィールドは子プロセスの実ユーザ ID である。 "
5381 "I<si_stime> フィールドには、 (I<si_code> が B<CLD_EXITED> の場合は) 子プロセ"
5382 "スの終了ステータスが、それ以外の場合は状態が変化する原因となったシグナル番号"
5383 "が格納される。 I<si_utime> と I<si_stime> には子プロセスが使用したユーザ CPU "
5384 "時間とシステム CPU 時間がそれぞれ格納される。(B<getrusage>(2) や B<times>(2) "
5385 "と異なり) これらのフィールドには wait 待ちの子プロセスにより使用された時間は"
5386 "含まれない。 2.6 より前と 2.6.27 以降のカーネルでは、 これらのフィールドに格"
5387 "納される CPU 時間の単位は I<sysconf(_SC_CLK_TCK)> である。 2.6.27 より前の "
5388 "2.6 系のカーネルでは、バグがあり、 これらのフィールドの CPU 時間の単位が "
5389 "(カーネルのコンフィグで指定される) システムの jiffy であった (B<time>(7) 参"
5390 "照)。"
5391
5392 #. type: Plain text
5393 #: build/C/man2/sigaction.2:458
5394 msgid ""
5395 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, and B<SIGTRAP> fill in "
5396 "I<si_addr> with the address of the fault.  On some architectures, these "
5397 "signals also fill in the I<si_trapno> field.  Some suberrors of B<SIGBUS>, "
5398 "in particular B<BUS_MCEERR_AO> and B<BUS_MCEERR_AR>, also fill in "
5399 "I<si_addr_lsb>.  This field indicates the least significant bit of the "
5400 "reported address and therefore the extent of the corruption.  For example, "
5401 "if a full page was corrupted, I<si_addr_lsb> contains "
5402 "I<log2(sysconf(_SC_PAGESIZE))>.  When B<SIGTRAP> is delivered in response to "
5403 "a B<ptrace>(2)  event (PTRACE_EVENT_foo), I<si_addr> is not populated, but "
5404 "I<si_pid> and I<si_uid> are populated with the respective process ID and "
5405 "user ID responsible for delivering the trap.  In the case of B<seccomp>(2), "
5406 "the tracee will be shown as delivering the event.  B<BUS_MCEERR_*> and "
5407 "I<si_addr_lsb> are Linux-specific extensions."
5408 msgstr ""
5409 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, B<SIGTRAP> では、 I<si_addr> に "
5410 "fault が発生したアドレスが設定される。 いくつかのアーキテクチャでは、 これら"
5411 "のシグナルは I<si_trapno> フィールドにも設定される。 B<SIGBUS> が発生するエ"
5412 "ラーのいくつか、特に B<BUS_MCEERR_AO> と B<BUS_MCEERR_AR> では、 "
5413 "I<si_addr_lsb> も設定される。 このフィールドは報告されるアドレスの最下位ビッ"
5414 "トを示し、 これによりメモリ破壊の程度を知ることができる。 例えば、ページ全体"
5415 "が壊れている場合には I<si_addr_lsb> には I<log2(sysconf(_SC_PAGESIZE))> が入"
5416 "る。 B<SIGTRAP> が B<ptrace>(2) イベント (PTRACE_EVENT_foo) に対応して配送さ"
5417 "れる際、 I<si_addr> は設定されないが、 I<si_pid> と I<si_uid> にはトラップの"
5418 "配送に責任を負うプロセス ID とユーザー ID がそれぞれ格納される。 "
5419 "B<seccomp>(2) の場合、 トレース対象はイベントを配送した元として示される。 "
5420 "B<BUS_MCEERR_*> と I<si_addr_lsb> は Linux 固有の拡張である。"
5421
5422 #. type: Plain text
5423 #: build/C/man2/sigaction.2:472
5424 msgid ""
5425 "B<SIGIO>/B<SIGPOLL> (the two names are synonyms on Linux)  fills in "
5426 "I<si_band> and I<si_fd>.  The I<si_band> event is a bit mask containing the "
5427 "same values as are filled in the I<revents> field by B<poll>(2).  The "
5428 "I<si_fd> field indicates the file descriptor for which the I/O event "
5429 "occurred."
5430 msgstr ""
5431 "B<SIGIO>/B<SIGPOLL> (2 つの名前は Linux では同義語) では I<si_band> と "
5432 "I<si_fd> が設定される。 I<si_band> イベントは、 B<poll>(2) が I<revents> "
5433 "フィールドに設定するのと同じ値が入ったビットマスクである。 I<si_fd> フィール"
5434 "ドは I/O イベントが発生したファイルディスクリプタを示す。"
5435
5436 #.  commit a0727e8ce513fe6890416da960181ceb10fbfae6
5437 #. type: Plain text
5438 #: build/C/man2/sigaction.2:485
5439 msgid ""
5440 "B<SIGSYS>, generated (since Linux 3.5)  when a seccomp filter returns "
5441 "B<SECCOMP_RET_TRAP>, fills in I<si_call_addr>, I<si_syscall>, I<si_arch>, "
5442 "I<si_errno>, and other fields as described in B<seccomp>(2)."
5443 msgstr ""
5444 "seccomp フィルターが B<SECCOMP_RET_TRAP> を返す際に (Linux 3.5 以降で) 生成さ"
5445 "れる B<SIGSYS> シグナルでは、 I<si_call_addr>, I<si_syscall>, I<si_arch>, "
5446 "I<si_arch> や B<seccomp>(2) で説明されている他のフィールドが設定される。"
5447
5448 #. type: Plain text
5449 #: build/C/man2/sigaction.2:495
5450 msgid ""
5451 "I<si_code> is a value (not a bit mask) indicating why this signal was sent.  "
5452 "For a B<ptrace>(2)  event, I<si_code> will contain B<SIGTRAP> and have the "
5453 "ptrace event in the high byte:"
5454 msgstr ""
5455 "I<si_code> は、そのシグナルが送信された理由を示す値である (ビットマスクではな"
5456 "い)。 B<ptrace>(2) イベントでは、 I<si_code> には B<SIGTRAP> が入り、 上位バ"
5457 "イトには ptrace イベントが入る。"
5458
5459 #. type: Plain text
5460 #: build/C/man2/sigaction.2:498
5461 #, no-wrap
5462 msgid "    (SIGTRAP | PTRACE_EVENT_foo E<lt>E<lt> 8).\n"
5463 msgstr "    (SIGTRAP | PTRACE_EVENT_foo E<lt>E<lt> 8).\n"
5464
5465 #. type: Plain text
5466 #: build/C/man2/sigaction.2:504
5467 msgid ""
5468 "For a regular signal, the following list shows the values which can be "
5469 "placed in I<si_code> for any signal, along with reason that the signal was "
5470 "generated."
5471 msgstr ""
5472 "通常のシグナルの場合には、 以下のリストに示す値がどのシグナルの場合でも "
5473 "I<si_code> に入りうる。シグナルが生成された理由も記載している。"
5474
5475 #. type: TP
5476 #: build/C/man2/sigaction.2:505
5477 #, no-wrap
5478 msgid "B<SI_USER>"
5479 msgstr "B<SI_USER>"
5480
5481 #. type: Plain text
5482 #: build/C/man2/sigaction.2:508
5483 msgid "B<kill>(2)."
5484 msgstr "B<kill>(2)"
5485
5486 #. type: TP
5487 #: build/C/man2/sigaction.2:508
5488 #, no-wrap
5489 msgid "B<SI_KERNEL>"
5490 msgstr "B<SI_KERNEL>"
5491
5492 #. type: Plain text
5493 #: build/C/man2/sigaction.2:511
5494 msgid "Sent by the kernel."
5495 msgstr "カーネルにより送信された"
5496
5497 #. type: TP
5498 #: build/C/man2/sigaction.2:511
5499 #, no-wrap
5500 msgid "B<SI_QUEUE>"
5501 msgstr "B<SI_QUEUE>"
5502
5503 #. type: Plain text
5504 #: build/C/man2/sigaction.2:514
5505 msgid "B<sigqueue>(3)."
5506 msgstr "B<sigqueue>(3)"
5507
5508 #. type: TP
5509 #: build/C/man2/sigaction.2:514
5510 #, no-wrap
5511 msgid "B<SI_TIMER>"
5512 msgstr "B<SI_TIMER>"
5513
5514 #. type: Plain text
5515 #: build/C/man2/sigaction.2:517
5516 msgid "POSIX timer expired."
5517 msgstr "POSIX タイマが満了した"
5518
5519 #. type: TP
5520 #: build/C/man2/sigaction.2:517
5521 #, no-wrap
5522 msgid "B<SI_MESGQ> (since Linux 2.6.6)"
5523 msgstr "B<SI_MESGQ> (Linux 2.6.6 以降)"
5524
5525 #. type: Plain text
5526 #: build/C/man2/sigaction.2:521
5527 msgid "POSIX message queue state changed; see B<mq_notify>(3)."
5528 msgstr "POSIX メッセージキューの状態が変化した; B<mq_notify>(3) 参照"
5529
5530 #. type: TP
5531 #: build/C/man2/sigaction.2:521
5532 #, no-wrap
5533 msgid "B<SI_ASYNCIO>"
5534 msgstr "B<SI_ASYNCIO>"
5535
5536 #. type: Plain text
5537 #: build/C/man2/sigaction.2:524
5538 msgid "AIO completed."
5539 msgstr "非同期 IO (AIO) が完了した"
5540
5541 #. type: TP
5542 #: build/C/man2/sigaction.2:524
5543 #, no-wrap
5544 msgid "B<SI_SIGIO>"
5545 msgstr "B<SI_SIGIO>"
5546
5547 #. type: Plain text
5548 #: build/C/man2/sigaction.2:533
5549 msgid ""
5550 "Queued B<SIGIO> (only in kernels up to Linux 2.2; from Linux 2.4 onward "
5551 "B<SIGIO>/B<SIGPOLL> fills in I<si_code> as described below)."
5552 msgstr ""
5553 "B<SIGIO> がキューイングされた (Linux 2.2 以下のカーネルのみ; Linux 2.4 以降で"
5554 "は以下で説明する B<SIGIO>/B<SIGPOLL> の I<si_code> が入る)"
5555
5556 #. type: TP
5557 #: build/C/man2/sigaction.2:533
5558 #, no-wrap
5559 msgid "B<SI_TKILL> (since Linux 2.4.19)"
5560 msgstr "B<SI_TKILL> (Linux 2.4.19 以降)"
5561
5562 #.  SI_DETHREAD is defined in 2.6.9 sources, but isn't implemented
5563 #.  It appears to have been an idea that was tried during 2.5.6
5564 #.  through to 2.5.24 and then was backed out.
5565 #. type: Plain text
5566 #: build/C/man2/sigaction.2:541
5567 msgid "B<tkill>(2)  or B<tgkill>(2)."
5568 msgstr "B<tkill>(2) または B<tgkill>(2)"
5569
5570 #. type: Plain text
5571 #: build/C/man2/sigaction.2:548
5572 msgid ""
5573 "The following values can be placed in I<si_code> for a B<SIGILL> signal:"
5574 msgstr "B<SIGILL> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5575
5576 #. type: TP
5577 #: build/C/man2/sigaction.2:549
5578 #, no-wrap
5579 msgid "B<ILL_ILLOPC>"
5580 msgstr "B<ILL_ILLOPC>"
5581
5582 #. type: Plain text
5583 #: build/C/man2/sigaction.2:552
5584 msgid "Illegal opcode."
5585 msgstr "不正な命令コード"
5586
5587 #. type: TP
5588 #: build/C/man2/sigaction.2:552
5589 #, no-wrap
5590 msgid "B<ILL_ILLOPN>"
5591 msgstr "B<ILL_ILLOPN>"
5592
5593 #. type: Plain text
5594 #: build/C/man2/sigaction.2:555
5595 msgid "Illegal operand."
5596 msgstr "不正なオペランド"
5597
5598 #. type: TP
5599 #: build/C/man2/sigaction.2:555
5600 #, no-wrap
5601 msgid "B<ILL_ILLADR>"
5602 msgstr "B<ILL_ILLADR>"
5603
5604 #. type: Plain text
5605 #: build/C/man2/sigaction.2:558
5606 msgid "Illegal addressing mode."
5607 msgstr "不正なアドレッシングモード"
5608
5609 #. type: TP
5610 #: build/C/man2/sigaction.2:558
5611 #, no-wrap
5612 msgid "B<ILL_ILLTRP>"
5613 msgstr "B<ILL_ILLTRP>"
5614
5615 #. type: Plain text
5616 #: build/C/man2/sigaction.2:561
5617 msgid "Illegal trap."
5618 msgstr "不正なトラップ"
5619
5620 #. type: TP
5621 #: build/C/man2/sigaction.2:561
5622 #, no-wrap
5623 msgid "B<ILL_PRVOPC>"
5624 msgstr "B<ILL_PRVOPC>"
5625
5626 #. type: Plain text
5627 #: build/C/man2/sigaction.2:564
5628 msgid "Privileged opcode."
5629 msgstr "特権が必要な命令コード"
5630
5631 #. type: TP
5632 #: build/C/man2/sigaction.2:564
5633 #, no-wrap
5634 msgid "B<ILL_PRVREG>"
5635 msgstr "B<ILL_PRVREG>"
5636
5637 #. type: Plain text
5638 #: build/C/man2/sigaction.2:567
5639 msgid "Privileged register."
5640 msgstr "特権が必要なレジスタ"
5641
5642 #. type: TP
5643 #: build/C/man2/sigaction.2:567
5644 #, no-wrap
5645 msgid "B<ILL_COPROC>"
5646 msgstr "B<ILL_COPROC>"
5647
5648 #. type: Plain text
5649 #: build/C/man2/sigaction.2:570
5650 msgid "Coprocessor error."
5651 msgstr "コプロセッサのエラー"
5652
5653 #. type: TP
5654 #: build/C/man2/sigaction.2:570
5655 #, no-wrap
5656 msgid "B<ILL_BADSTK>"
5657 msgstr "B<ILL_BADSTK>"
5658
5659 #. type: Plain text
5660 #: build/C/man2/sigaction.2:573
5661 msgid "Internal stack error."
5662 msgstr "内部スタックエラー"
5663
5664 #. type: Plain text
5665 #: build/C/man2/sigaction.2:580
5666 msgid ""
5667 "The following values can be placed in I<si_code> for a B<SIGFPE> signal:"
5668 msgstr "B<SIGFPE> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5669
5670 #. type: TP
5671 #: build/C/man2/sigaction.2:581
5672 #, no-wrap
5673 msgid "B<FPE_INTDIV>"
5674 msgstr "B<FPE_INTDIV>"
5675
5676 #. type: Plain text
5677 #: build/C/man2/sigaction.2:584
5678 msgid "Integer divide by zero."
5679 msgstr "整数の 0 による除算"
5680
5681 #. type: TP
5682 #: build/C/man2/sigaction.2:584
5683 #, no-wrap
5684 msgid "B<FPE_INTOVF>"
5685 msgstr "B<FPE_INTOVF>"
5686
5687 #. type: Plain text
5688 #: build/C/man2/sigaction.2:587
5689 msgid "Integer overflow."
5690 msgstr "整数のオーバーフロー"
5691
5692 #. type: TP
5693 #: build/C/man2/sigaction.2:587
5694 #, no-wrap
5695 msgid "B<FPE_FLTDIV>"
5696 msgstr "B<FPE_FLTDIV>"
5697
5698 #. type: Plain text
5699 #: build/C/man2/sigaction.2:590
5700 msgid "Floating-point divide by zero."
5701 msgstr "浮動小数点の 0 による除算"
5702
5703 #. type: TP
5704 #: build/C/man2/sigaction.2:590
5705 #, no-wrap
5706 msgid "B<FPE_FLTOVF>"
5707 msgstr "B<FPE_FLTOVF>"
5708
5709 #. type: Plain text
5710 #: build/C/man2/sigaction.2:593
5711 msgid "Floating-point overflow."
5712 msgstr "浮動小数点のオーバーフロー"
5713
5714 #. type: TP
5715 #: build/C/man2/sigaction.2:593
5716 #, no-wrap
5717 msgid "B<FPE_FLTUND>"
5718 msgstr "B<FPE_FLTUND>"
5719
5720 #. type: Plain text
5721 #: build/C/man2/sigaction.2:596
5722 msgid "Floating-point underflow."
5723 msgstr "浮動小数点のアンダーフロー"
5724
5725 #. type: TP
5726 #: build/C/man2/sigaction.2:596
5727 #, no-wrap
5728 msgid "B<FPE_FLTRES>"
5729 msgstr "B<FPE_FLTRES>"
5730
5731 #. type: Plain text
5732 #: build/C/man2/sigaction.2:599
5733 msgid "Floating-point inexact result."
5734 msgstr "浮動小数点の不正確な演算結果 (inexact result)"
5735
5736 #. type: TP
5737 #: build/C/man2/sigaction.2:599
5738 #, no-wrap
5739 msgid "B<FPE_FLTINV>"
5740 msgstr "B<FPE_FLTINV>"
5741
5742 #. type: Plain text
5743 #: build/C/man2/sigaction.2:602
5744 msgid "Floating-point invalid operation."
5745 msgstr "浮動小数点の不正な操作"
5746
5747 #. type: TP
5748 #: build/C/man2/sigaction.2:602
5749 #, no-wrap
5750 msgid "B<FPE_FLTSUB>"
5751 msgstr "B<FPE_FLTSUB>"
5752
5753 #. type: Plain text
5754 #: build/C/man2/sigaction.2:605
5755 msgid "Subscript out of range."
5756 msgstr "範囲外の添字 (subscript)"
5757
5758 #. type: Plain text
5759 #: build/C/man2/sigaction.2:612
5760 msgid ""
5761 "The following values can be placed in I<si_code> for a B<SIGSEGV> signal:"
5762 msgstr "B<SIGSEGV> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5763
5764 #. type: TP
5765 #: build/C/man2/sigaction.2:613
5766 #, no-wrap
5767 msgid "B<SEGV_MAPERR>"
5768 msgstr "B<SEGV_MAPERR>"
5769
5770 #. type: Plain text
5771 #: build/C/man2/sigaction.2:616
5772 msgid "Address not mapped to object."
5773 msgstr "オブジェクトにマッピングされていないアドレス"
5774
5775 #. type: TP
5776 #: build/C/man2/sigaction.2:616
5777 #, no-wrap
5778 msgid "B<SEGV_ACCERR>"
5779 msgstr "B<SEGV_ACCERR>"
5780
5781 #. type: Plain text
5782 #: build/C/man2/sigaction.2:619
5783 msgid "Invalid permissions for mapped object."
5784 msgstr "マッピングされたオブジェクトに対するアクセス許可がない"
5785
5786 #. type: Plain text
5787 #: build/C/man2/sigaction.2:626
5788 msgid ""
5789 "The following values can be placed in I<si_code> for a B<SIGBUS> signal:"
5790 msgstr "B<SIGBUS> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5791
5792 #. type: TP
5793 #: build/C/man2/sigaction.2:627
5794 #, no-wrap
5795 msgid "B<BUS_ADRALN>"
5796 msgstr "B<BUS_ADRALN>"
5797
5798 #. type: Plain text
5799 #: build/C/man2/sigaction.2:630
5800 msgid "Invalid address alignment."
5801 msgstr "不正なアドレス・アライメント (alignment)"
5802
5803 #. type: TP
5804 #: build/C/man2/sigaction.2:630
5805 #, no-wrap
5806 msgid "B<BUS_ADRERR>"
5807 msgstr "B<BUS_ADRERR>"
5808
5809 #. type: Plain text
5810 #: build/C/man2/sigaction.2:633
5811 msgid "Nonexistent physical address."
5812 msgstr "存在しない物理アドレス"
5813
5814 #. type: TP
5815 #: build/C/man2/sigaction.2:633
5816 #, no-wrap
5817 msgid "B<BUS_OBJERR>"
5818 msgstr "B<BUS_OBJERR>"
5819
5820 #. type: Plain text
5821 #: build/C/man2/sigaction.2:636
5822 msgid "Object-specific hardware error."
5823 msgstr "オブジェクト固有のハードウェアエラー"
5824
5825 #. type: TP
5826 #: build/C/man2/sigaction.2:636
5827 #, no-wrap
5828 msgid "B<BUS_MCEERR_AR> (since Linux 2.6.32)"
5829 msgstr "B<BUS_MCEERR_AR> (Linux 2.6.32 以降)"
5830
5831 #. type: Plain text
5832 #: build/C/man2/sigaction.2:639
5833 msgid "Hardware memory error consumed on a machine check; action required."
5834 msgstr ""
5835 "マシンチェックで使用中のハードウェアメモリのエラーが検出された。対応が必須。"
5836
5837 #. type: TP
5838 #: build/C/man2/sigaction.2:639
5839 #, no-wrap
5840 msgid "B<BUS_MCEERR_AO> (since Linux 2.6.32)"
5841 msgstr "B<BUS_MCEERR_AO> (Linux 2.6.32  以降)"
5842
5843 #. type: Plain text
5844 #: build/C/man2/sigaction.2:642
5845 msgid ""
5846 "Hardware memory error detected in process but not consumed; action optional."
5847 msgstr ""
5848 "実行中にハードウェアメモリエラーが検出されたが、使用中のメモリではない。対応"
5849 "は必須ではない。"
5850
5851 #. type: Plain text
5852 #: build/C/man2/sigaction.2:649
5853 msgid ""
5854 "The following values can be placed in I<si_code> for a B<SIGTRAP> signal:"
5855 msgstr "B<SIGTRAP> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5856
5857 #. type: TP
5858 #: build/C/man2/sigaction.2:650
5859 #, no-wrap
5860 msgid "B<TRAP_BRKPT>"
5861 msgstr "B<TRAP_BRKPT>"
5862
5863 #. type: Plain text
5864 #: build/C/man2/sigaction.2:653
5865 msgid "Process breakpoint."
5866 msgstr "プロセスのブレークポイント"
5867
5868 #. type: TP
5869 #: build/C/man2/sigaction.2:653
5870 #, no-wrap
5871 msgid "B<TRAP_TRACE>"
5872 msgstr "B<TRAP_TRACE>"
5873
5874 #. type: Plain text
5875 #: build/C/man2/sigaction.2:656
5876 msgid "Process trace trap."
5877 msgstr "プロセスのトレース・トラップ"
5878
5879 #. type: TP
5880 #: build/C/man2/sigaction.2:656
5881 #, no-wrap
5882 msgid "B<TRAP_BRANCH> (since Linux 2.4)"
5883 msgstr "B<TRAP_BRANCH> (Linux 2.4 以降)"
5884
5885 #. type: Plain text
5886 #: build/C/man2/sigaction.2:659
5887 msgid "Process taken branch trap."
5888 msgstr "プロセスのブランチ・トラップ"
5889
5890 #. type: TP
5891 #: build/C/man2/sigaction.2:659
5892 #, no-wrap
5893 msgid "B<TRAP_HWBKPT> (since Linux 2.4)"
5894 msgstr "B<TRAP_HWBKPT> (Linux 2.4 以降)"
5895
5896 #. type: Plain text
5897 #: build/C/man2/sigaction.2:662
5898 msgid "Hardware breakpoint/watchpoint."
5899 msgstr "ハードウェア・ブレークポイント/ウォッチポイント"
5900
5901 #. type: Plain text
5902 #: build/C/man2/sigaction.2:669
5903 msgid ""
5904 "The following values can be placed in I<si_code> for a B<SIGCHLD> signal:"
5905 msgstr "B<SIGCHLD> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5906
5907 #. type: TP
5908 #: build/C/man2/sigaction.2:670
5909 #, no-wrap
5910 msgid "B<CLD_EXITED>"
5911 msgstr "B<CLD_EXITED>"
5912
5913 #. type: Plain text
5914 #: build/C/man2/sigaction.2:673
5915 msgid "Child has exited."
5916 msgstr "子プロセスが終了した (exited)"
5917
5918 #. type: TP
5919 #: build/C/man2/sigaction.2:673
5920 #, no-wrap
5921 msgid "B<CLD_KILLED>"
5922 msgstr "B<CLD_KILLED>"
5923
5924 #. type: Plain text
5925 #: build/C/man2/sigaction.2:676
5926 msgid "Child was killed."
5927 msgstr "子プロセスが kill された"
5928
5929 #. type: TP
5930 #: build/C/man2/sigaction.2:676
5931 #, no-wrap
5932 msgid "B<CLD_DUMPED>"
5933 msgstr "B<CLD_DUMPED>"
5934
5935 #. type: Plain text
5936 #: build/C/man2/sigaction.2:679
5937 msgid "Child terminated abnormally."
5938 msgstr "子プロセスが異常終了した"
5939
5940 #. type: TP
5941 #: build/C/man2/sigaction.2:679
5942 #, no-wrap
5943 msgid "B<CLD_TRAPPED>"
5944 msgstr "B<CLD_TRAPPED>"
5945
5946 #. type: Plain text
5947 #: build/C/man2/sigaction.2:682
5948 msgid "Traced child has trapped."
5949 msgstr "トレース対象の子プロセスがトラップを上げた"
5950
5951 #. type: TP
5952 #: build/C/man2/sigaction.2:682
5953 #, no-wrap
5954 msgid "B<CLD_STOPPED>"
5955 msgstr "B<CLD_STOPPED>"
5956
5957 #. type: Plain text
5958 #: build/C/man2/sigaction.2:685
5959 msgid "Child has stopped."
5960 msgstr "子プロセスが停止 (stop) した"
5961
5962 #. type: TP
5963 #: build/C/man2/sigaction.2:685
5964 #, no-wrap
5965 msgid "B<CLD_CONTINUED> (since Linux 2.6.9)"
5966 msgstr "B<CLD_CONTINUED> (Linux 2.6.9 以降)"
5967
5968 #. type: Plain text
5969 #: build/C/man2/sigaction.2:688
5970 msgid "Stopped child has continued."
5971 msgstr "停止していた子プロセスが再開した"
5972
5973 #. type: Plain text
5974 #: build/C/man2/sigaction.2:695
5975 msgid ""
5976 "The following values can be placed in I<si_code> for a B<SIGIO>/B<SIGPOLL> "
5977 "signal:"
5978 msgstr ""
5979 "B<SIGIO>/B<SIGPOLL> シグナルの場合、 I<si_code> には以下の値が入る可能性があ"
5980 "る:"
5981
5982 #. type: TP
5983 #: build/C/man2/sigaction.2:696
5984 #, no-wrap
5985 msgid "B<POLL_IN>"
5986 msgstr "B<POLL_IN>"
5987
5988 #. type: Plain text
5989 #: build/C/man2/sigaction.2:699
5990 msgid "Data input available."
5991 msgstr "入力データが利用可能"
5992
5993 #. type: TP
5994 #: build/C/man2/sigaction.2:699
5995 #, no-wrap
5996 msgid "B<POLL_OUT>"
5997 msgstr "B<POLL_OUT>"
5998
5999 #. type: Plain text
6000 #: build/C/man2/sigaction.2:702
6001 msgid "Output buffers available."
6002 msgstr "出力バッファが利用可能"
6003
6004 #. type: TP
6005 #: build/C/man2/sigaction.2:702
6006 #, no-wrap
6007 msgid "B<POLL_MSG>"
6008 msgstr "B<POLL_MSG>"
6009
6010 #. type: Plain text
6011 #: build/C/man2/sigaction.2:705
6012 msgid "Input message available."
6013 msgstr "入力メッセージが利用可能"
6014
6015 #. type: TP
6016 #: build/C/man2/sigaction.2:705
6017 #, no-wrap
6018 msgid "B<POLL_ERR>"
6019 msgstr "B<POLL_ERR>"
6020
6021 #. type: Plain text
6022 #: build/C/man2/sigaction.2:708
6023 msgid "I/O error."
6024 msgstr "I/O エラー"
6025
6026 #. type: TP
6027 #: build/C/man2/sigaction.2:708
6028 #, no-wrap
6029 msgid "B<POLL_PRI>"
6030 msgstr "B<POLL_PRI>"
6031
6032 #. type: Plain text
6033 #: build/C/man2/sigaction.2:711
6034 msgid "High priority input available."
6035 msgstr "高優先の入力が利用可能"
6036
6037 #. type: TP
6038 #: build/C/man2/sigaction.2:711
6039 #, no-wrap
6040 msgid "B<POLL_HUP>"
6041 msgstr "B<POLL_HUP>"
6042
6043 #. type: Plain text
6044 #: build/C/man2/sigaction.2:714
6045 msgid "Device disconnected."
6046 msgstr "デバイスが接続されていない"
6047
6048 #. type: Plain text
6049 #: build/C/man2/sigaction.2:721
6050 msgid "The following value can be placed in I<si_code> for a B<SIGSYS> signal:"
6051 msgstr "B<SIGSYS> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
6052
6053 #. type: TP
6054 #: build/C/man2/sigaction.2:722
6055 #, no-wrap
6056 msgid "B<SYS_SECCOMP> (since Linux 3.5)"
6057 msgstr "B<SYS_SECCOMP> (Linux 3.5 以降)"
6058
6059 #. type: Plain text
6060 #: build/C/man2/sigaction.2:727
6061 msgid "Triggered by a B<seccomp>(2)  filter rule."
6062 msgstr "B<seccomp>(2) のフィルタールールによる配送された"
6063
6064 #. type: Plain text
6065 #: build/C/man2/sigaction.2:733
6066 msgid ""
6067 "B<sigaction>()  returns 0 on success; on error, -1 is returned, and I<errno> "
6068 "is set to indicate the error."
6069 msgstr ""
6070 "B<sigaction>() 関数は成功すると 0 を返す。 エラーの場合、-1 を返し、 "
6071 "I<errno> にエラーを示す値をセットする。"
6072
6073 #. type: Plain text
6074 #: build/C/man2/sigaction.2:738
6075 msgid ""
6076 "I<act> or I<oldact> points to memory which is not a valid part of the "
6077 "process address space."
6078 msgstr ""
6079 "I<act> か I<oldact> が指しているメモリが正しいプロセスのアドレス空間にない。"
6080
6081 #. type: Plain text
6082 #: build/C/man2/sigaction.2:745
6083 msgid ""
6084 "An invalid signal was specified.  This will also be generated if an attempt "
6085 "is made to change the action for B<SIGKILL> or B<SIGSTOP>, which cannot be "
6086 "caught or ignored."
6087 msgstr ""
6088 "無効なシグナルが指定された。補足 (catch) したり無視したりできない シグナルで"
6089 "ある B<SIGKILL> や B<SIGSTOP> に対する動作を変更しようとした場合にも発生す"
6090 "る。"
6091
6092 #.  SVr4 does not document the EINTR condition.
6093 #. type: Plain text
6094 #: build/C/man2/sigaction.2:748
6095 msgid "POSIX.1-2001, SVr4."
6096 msgstr "POSIX.1-2001, SVr4."
6097
6098 #. type: Plain text
6099 #: build/C/man2/sigaction.2:756 build/C/man7/signal.7:105
6100 msgid ""
6101 "A child created via B<fork>(2)  inherits a copy of its parent's signal "
6102 "dispositions.  During an B<execve>(2), the dispositions of handled signals "
6103 "are reset to the default; the dispositions of ignored signals are left "
6104 "unchanged."
6105 msgstr ""
6106 "B<fork>(2) 経由で作成された子プロセスは、親プロセスのシグナルの処理方法の コ"
6107 "ピーを継承する。 B<execve>(2) の前後で、ハンドラが設定されているシグナルの処"
6108 "理方法はデフォルトにリセットされ、 無視が設定されているシグナルの処理方法は変"
6109 "更されずそのままとなる。"
6110
6111 #. type: Plain text
6112 #: build/C/man2/sigaction.2:774 build/C/man2/signal.2:134
6113 msgid ""
6114 "According to POSIX, the behavior of a process is undefined after it ignores "
6115 "a B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> signal that was not generated by "
6116 "B<kill>(2)  or B<raise>(3).  Integer division by zero has undefined result.  "
6117 "On some architectures it will generate a B<SIGFPE> signal.  (Also dividing "
6118 "the most negative integer by -1 may generate B<SIGFPE>.)  Ignoring this "
6119 "signal might lead to an endless loop."
6120 msgstr ""
6121 "POSIX では、 B<kill>(2)  や B<raise>(3)  で生成できないシグナル B<SIGFPE>, "
6122 "B<SIGILL>, B<SIGSEGV> を無視 (ignore) した場合、その後の動作は未定義である。 "
6123 "ゼロによる整数割り算の結果は未定義となる。 アーキテクチャーによっては、このと"
6124 "き B<SIGFPE> シグナルが生成される。 (同様に負の最大整数を -1 で割ると "
6125 "B<SIGFPE> が生成されるかもしれない)  このシグナルを無視すると無限ループに陥る"
6126 "かもしれない。"
6127
6128 #. type: Plain text
6129 #: build/C/man2/sigaction.2:791
6130 msgid ""
6131 "POSIX.1-1990 disallowed setting the action for B<SIGCHLD> to B<SIG_IGN>.  "
6132 "POSIX.1-2001 allows this possibility, so that ignoring B<SIGCHLD> can be "
6133 "used to prevent the creation of zombies (see B<wait>(2)).  Nevertheless, the "
6134 "historical BSD and System\\ V behaviors for ignoring B<SIGCHLD> differ, so "
6135 "that the only completely portable method of ensuring that terminated "
6136 "children do not become zombies is to catch the B<SIGCHLD> signal and perform "
6137 "a B<wait>(2)  or similar."
6138 msgstr ""
6139 "POSIX.1-1990 では B<SIGCHLD> に B<SIG_IGN> を設定することを認めていない。 "
6140 "POSIX.1-2001 では認められており、 B<SIGCHLD> を無視することでゾンビプロセスの"
6141 "生成を防止することができる (B<wait>(2)  を参照)。 さらに、BSD と System\\ V "
6142 "では B<SIGCHLD> を無視した際の動作が異なっている。 そのため、完全に移植性があ"
6143 "る方法で、終了した子プロセスがゾンビにならないこと を保証するには、 "
6144 "B<SIGCHLD> シグナルを補足し、 B<wait>(2)  などを実行するしかない。"
6145
6146 #. type: Plain text
6147 #: build/C/man2/sigaction.2:804
6148 msgid ""
6149 "POSIX.1-1990 specified only B<SA_NOCLDSTOP>.  POSIX.1-2001 added "
6150 "B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, and B<SA_SIGINFO>.  Use of "
6151 "these latter values in I<sa_flags> may be less portable in applications "
6152 "intended for older UNIX implementations."
6153 msgstr ""
6154 "POSIX.1-1990 の仕様では B<SA_NOCLDSTOP> のみが定義されている。 POSIX.1-2001 "
6155 "では B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, B<SA_SIGINFO> が追加さ"
6156 "れた。 UNIX の古い実装で動かすアプリケーションで、 他の I<sa_flags> フラグを"
6157 "使用すると移植性が下がる。"
6158
6159 #. type: Plain text
6160 #: build/C/man2/sigaction.2:808
6161 msgid ""
6162 "The B<SA_RESETHAND> flag is compatible with the SVr4 flag of the same name."
6163 msgstr "B<SA_RESETHAND> フラグは SVr4 の同じ名前のフラグと互換性がある。"
6164
6165 #. type: Plain text
6166 #: build/C/man2/sigaction.2:818
6167 msgid ""
6168 "The B<SA_NODEFER> flag is compatible with the SVr4 flag of the same name "
6169 "under kernels 1.3.9 and newer.  On older kernels the Linux implementation "
6170 "allowed the receipt of any signal, not just the one we are installing "
6171 "(effectively overriding any I<sa_mask> settings)."
6172 msgstr ""
6173 "B<SA_NODEFER> フラグは 1.3.9 以降のカーネルでは同じ名前の SVr4 のフラグと互換"
6174 "性がある。 ぞれ以前の Linux カーネルの実装では、このフラグを設定しているシグ"
6175 "ナル だけでなく、どのシグナルでも受けることを許していた (実際には I<sa_mask> "
6176 "の設定により無効にできる)。"
6177
6178 #. type: Plain text
6179 #: build/C/man2/sigaction.2:824
6180 msgid ""
6181 "B<sigaction>()  can be called with a NULL second argument to query the "
6182 "current signal handler.  It can also be used to check whether a given signal "
6183 "is valid for the current machine by calling it with NULL second and third "
6184 "arguments."
6185 msgstr ""
6186 "B<sigaction>()  の二番目の引き数に NULL を指定して呼び出すと、現在のシグナル"
6187 "ハンドラを確認する ことができる。また、二番目と三番目の引き数を NULL にて呼び"
6188 "出すことで、 指定されたシグナルが現在のマシンで使えるかどうかチェックできる。"
6189
6190 #. type: Plain text
6191 #: build/C/man2/sigaction.2:830
6192 msgid ""
6193 "It is not possible to block B<SIGKILL> or B<SIGSTOP> (by specifying them in "
6194 "I<sa_mask>).  Attempts to do so are silently ignored."
6195 msgstr ""
6196 "B<SIGKILL> や B<SIGSTOP> を (I<sa_mask> に指定して) 禁止することはできない。 "
6197 "禁止しようとしても黙って無視される。"
6198
6199 #. type: Plain text
6200 #: build/C/man2/sigaction.2:834 build/C/man2/sigpending.2:70
6201 #: build/C/man2/sigprocmask.2:144 build/C/man2/sigsuspend.2:108
6202 msgid "See B<sigsetops>(3)  for details on manipulating signal sets."
6203 msgstr "シグナル集合の操作に関する詳細は B<sigsetops>(3)  を参照のこと。"
6204
6205 #. type: Plain text
6206 #: build/C/man2/sigaction.2:839
6207 msgid ""
6208 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
6209 "safely called inside from inside a signal handler."
6210 msgstr ""
6211 "シグナルハンドラ内から安全に呼び出すことができる、 async-signal-safe "
6212 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
6213 "照。"
6214
6215 #. type: SS
6216 #: build/C/man2/sigaction.2:839
6217 #, no-wrap
6218 msgid "Undocumented"
6219 msgstr "非公式"
6220
6221 #. type: Plain text
6222 #: build/C/man2/sigaction.2:849
6223 msgid ""
6224 "Before the introduction of B<SA_SIGINFO> it was also possible to get some "
6225 "additional information, namely by using a I<sa_handler> with second argument "
6226 "of type I<struct sigcontext>.  See the relevant Linux kernel sources for "
6227 "details.  This use is obsolete now."
6228 msgstr ""
6229 "B<SA_SIGINFO> が導入される前は、 I<struct sigcontext> 型の二番目の引き数と一"
6230 "緒に I<sa_handler> を使用することで、 いくつかの追加の情報を入手することがで"
6231 "きた。 詳細については Linux カーネルソースの関連部分を見てほしい。 現在はこの"
6232 "使用法は廃止されている。"
6233
6234 #. type: Plain text
6235 #: build/C/man2/sigaction.2:858
6236 msgid ""
6237 "In kernels up to and including 2.6.13, specifying B<SA_NODEFER> in "
6238 "I<sa_flags> prevents not only the delivered signal from being masked during "
6239 "execution of the handler, but also the signals specified in I<sa_mask>.  "
6240 "This bug was fixed in kernel 2.6.14."
6241 msgstr ""
6242 "2.6.13 以前のカーネルでは、 I<sa_flags> に B<SA_NODEFER> を指定した場合、 ハ"
6243 "ンドラが実行中に配送されたシグナル自身がマスクされなくなるだけでなく、 "
6244 "I<sa_mask> に指定されたシグナルもマスクされなくなる。 このバグは、カーネル "
6245 "2.6.14 で修正された。"
6246
6247 #. type: Plain text
6248 #: build/C/man2/sigaction.2:861
6249 msgid "See B<mprotect>(2)."
6250 msgstr "B<mprotect>(2)  参照。"
6251
6252 #. type: Plain text
6253 #: build/C/man2/sigaction.2:883
6254 msgid ""
6255 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
6256 "B<seccomp>(2)  B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), "
6257 "B<sigpending>(2), B<sigreturn>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6258 "B<wait>(2), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6259 "B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
6260 msgstr ""
6261 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
6262 "B<seccomp>(2)  B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), "
6263 "B<sigpending>(2), B<sigreturn>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6264 "B<wait>(2), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6265 "B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
6266
6267 #. type: TH
6268 #: build/C/man2/sigaltstack.2:27
6269 #, no-wrap
6270 msgid "SIGALTSTACK"
6271 msgstr "SIGALTSTACK"
6272
6273 #. type: TH
6274 #: build/C/man2/sigaltstack.2:27
6275 #, no-wrap
6276 msgid "2010-09-26"
6277 msgstr "2010-09-26"
6278
6279 #. type: Plain text
6280 #: build/C/man2/sigaltstack.2:30
6281 msgid "sigaltstack - set and/or get signal stack context"
6282 msgstr "sigaltstack - シグナルスタックのコンテキストを設定・取得する"
6283
6284 #. type: Plain text
6285 #: build/C/man2/sigaltstack.2:34
6286 msgid "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
6287 msgstr "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
6288
6289 #. type: Plain text
6290 #: build/C/man2/sigaltstack.2:41
6291 msgid "B<sigaltstack>():"
6292 msgstr "B<sigaltstack>():"
6293
6294 #. type: Plain text
6295 #: build/C/man2/sigaltstack.2:48 build/C/man3/siginterrupt.3:53
6296 #: build/C/man2/wait.2:80
6297 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
6298 msgstr "|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
6299
6300 #. type: Plain text
6301 #: build/C/man2/sigaltstack.2:60
6302 msgid ""
6303 "B<sigaltstack>()  allows a process to define a new alternate signal stack "
6304 "and/or retrieve the state of an existing alternate signal stack.  An "
6305 "alternate signal stack is used during the execution of a signal handler if "
6306 "the establishment of that handler (see B<sigaction>(2))  requested it."
6307 msgstr ""
6308 "B<sigaltstack>()  を使うと、 プロセスは新しい代替シグナルスタックを定義した"
6309 "り、 既存の代替シグナルスタックの状態を取得できる。 シグナルハンドラが代替シ"
6310 "グナルスタックを要求するように設定されていると (B<sigaction>(2)  参照)、ハン"
6311 "ドラの実行中はそのシグナルスタックが使われる。"
6312
6313 #. type: Plain text
6314 #: build/C/man2/sigaltstack.2:63
6315 msgid ""
6316 "The normal sequence of events for using an alternate signal stack is the "
6317 "following:"
6318 msgstr "代替シグナルスタックを使う際の一般的な手順は、以下の通りである:"
6319
6320 #. type: IP
6321 #: build/C/man2/sigaltstack.2:63 build/C/man7/signal.7:387
6322 #, no-wrap
6323 msgid "1."
6324 msgstr "1."
6325
6326 #. type: Plain text
6327 #: build/C/man2/sigaltstack.2:67
6328 msgid "Allocate an area of memory to be used for the alternate signal stack."
6329 msgstr "代替シグナルスタックで使うメモリ領域を確保する。"
6330
6331 #. type: IP
6332 #: build/C/man2/sigaltstack.2:67 build/C/man7/signal.7:391
6333 #, no-wrap
6334 msgid "2."
6335 msgstr "2."
6336
6337 #. type: Plain text
6338 #: build/C/man2/sigaltstack.2:73
6339 msgid ""
6340 "Use B<sigaltstack>()  to inform the system of the existence and location of "
6341 "the alternate signal stack."
6342 msgstr ""
6343 "B<sigaltstack>()  を使って、 代替シグナルスタックの存在と場所をシステムに知ら"
6344 "せる。"
6345
6346 #. type: IP
6347 #: build/C/man2/sigaltstack.2:73 build/C/man7/signal.7:411
6348 #, no-wrap
6349 msgid "3."
6350 msgstr "3."
6351
6352 #. type: Plain text
6353 #: build/C/man2/sigaltstack.2:80
6354 msgid ""
6355 "When establishing a signal handler using B<sigaction>(2), inform the system "
6356 "that the signal handler should be executed on the alternate signal stack by "
6357 "specifying the B<SA_ONSTACK> flag."
6358 msgstr ""
6359 "B<sigaction>(2)  を使ってシグナルハンドラを確立する際、 B<SA_ONSTACK> フラグ"
6360 "を指定することにより、 そのシグナルハンドラを代替シグナルスタック上で実行する"
6361 "ことを システムに知らせる。"
6362
6363 #. type: Plain text
6364 #: build/C/man2/sigaltstack.2:88
6365 msgid ""
6366 "The I<ss> argument is used to specify a new alternate signal stack, while "
6367 "the I<oss> argument is used to retrieve information about the currently "
6368 "established signal stack.  If we are interested in performing just one of "
6369 "these tasks, then the other argument can be specified as NULL.  Each of "
6370 "these arguments is a structure of the following type:"
6371 msgstr ""
6372 "I<ss> 引き数は、新しいシグナルスタックを指定するために使う。 また I<oss> 引き"
6373 "数は、現在確立されている シグナルスタックの情報を取得するために使う。 この操"
6374 "作のうち 1 つだけを実行させるには、 使用しない引き数を NULL に指定すればよ"
6375 "い。 引き数となる構造体は、以下のような型である:"
6376
6377 #. type: Plain text
6378 #: build/C/man2/sigaltstack.2:96
6379 #, no-wrap
6380 msgid ""
6381 "typedef struct {\n"
6382 "    void  *ss_sp;     /* Base address of stack */\n"
6383 "    int    ss_flags;  /* Flags */\n"
6384 "    size_t ss_size;   /* Number of bytes in stack */\n"
6385 "} stack_t;\n"
6386 msgstr ""
6387 "typedef struct {\n"
6388 "    void  *ss_sp;     /* スタックのベースアドレス */\n"
6389 "    int    ss_flags;  /* フラグ */\n"
6390 "    size_t ss_size;   /* スタックのバイト数 */\n"
6391 "} stack_t;\n"
6392
6393 #. type: Plain text
6394 #: build/C/man2/sigaltstack.2:107
6395 msgid ""
6396 "To establish a new alternate signal stack, I<ss.ss_flags> is set to zero, "
6397 "and I<ss.ss_sp> and I<ss.ss_size> specify the starting address and size of "
6398 "the stack.  The constant B<SIGSTKSZ> is defined to be large enough to cover "
6399 "the usual size requirements for an alternate signal stack, and the constant "
6400 "B<MINSIGSTKSZ> defines the minimum size required to execute a signal handler."
6401 msgstr ""
6402 "新規の代替シグナルスタックを確立するには、 I<ss.ss_flags> を 0 に設定し、 "
6403 "I<ss.ss_sp> と I<ss.ss_size> に スタックの開始アドレスとスタックサイズを指定"
6404 "する。 定数 B<SIGSTKSZ> は、代替シグナルスタックが通常必要する サイズよりも充"
6405 "分大きく定義されている。 また定数 B<MINSIGSTKSZ> は、 シグナルハンドラの実行"
6406 "に必要な最小サイズに定義されている。"
6407
6408 #. type: Plain text
6409 #: build/C/man2/sigaltstack.2:111
6410 msgid ""
6411 "When a signal handler is invoked on the alternate stack, the kernel "
6412 "automatically aligns the address given in I<ss.ss_sp> to a suitable address "
6413 "boundary for the underlying hardware architecture."
6414 msgstr ""
6415 "代替スタックでシグナルハンドラが起動された場合には、 カーネルにより自動的に、"
6416 "I<ss.ss_sp> で指定されたアドレスは 動作しているハードウェアアーキテクチャに適"
6417 "したアドレス境界に 調整される。"
6418
6419 #. type: Plain text
6420 #: build/C/man2/sigaltstack.2:116
6421 msgid ""
6422 "To disable an existing stack, specify I<ss.ss_flags> as B<SS_DISABLE>.  In "
6423 "this case, the remaining fields in I<ss> are ignored."
6424 msgstr ""
6425 "既存のスタックを無効にするには、 I<ss.ss_flags> を B<SS_DISABLE> に指定す"
6426 "る。 この場合、I<ss> の他のフィールドは無視される。"
6427
6428 #. type: Plain text
6429 #: build/C/man2/sigaltstack.2:124
6430 msgid ""
6431 "If I<oss> is not NULL, then it is used to return information about the "
6432 "alternate signal stack which was in effect prior to the call to "
6433 "B<sigaltstack>().  The I<oss.ss_sp> and I<oss.ss_size> fields return the "
6434 "starting address and size of that stack.  The I<oss.ss_flags> may return "
6435 "either of the following values:"
6436 msgstr ""
6437 "I<oss> が NULL 以外の場合、 I<oss> に代替シグナルスタックの情報が返される。 "
6438 "これは (実質的に)  B<sigaltstack>()  の呼び出しより先に行われる。 I<oss."
6439 "ss_sp> と I<oss.ss_size> フィールドに スタックの開始アドレスとスタックサイズ"
6440 "が返される。 I<oss.ss_flags> には以下のどちらかの値が返される:"
6441
6442 #. type: TP
6443 #: build/C/man2/sigaltstack.2:124
6444 #, no-wrap
6445 msgid "B<SS_ONSTACK>"
6446 msgstr "B<SS_ONSTACK>"
6447
6448 #. type: Plain text
6449 #: build/C/man2/sigaltstack.2:130
6450 msgid ""
6451 "The process is currently executing on the alternate signal stack.  (Note "
6452 "that it is not possible to change the alternate signal stack if the process "
6453 "is currently executing on it.)"
6454 msgstr ""
6455 "プロセスが代替シグナルスタック上で実行されている (プロセスが既にそのシグナル"
6456 "スタック上で実行されている場合は、 それと同じシグナルスタックには変更できない"
6457 "点に注意すること)。"
6458
6459 #. type: TP
6460 #: build/C/man2/sigaltstack.2:130
6461 #, no-wrap
6462 msgid "B<SS_DISABLE>"
6463 msgstr "B<SS_DISABLE>"
6464
6465 #. type: Plain text
6466 #: build/C/man2/sigaltstack.2:133
6467 msgid "The alternate signal stack is currently disabled."
6468 msgstr "代替シグナルスタックが現在無効になっている。"
6469
6470 #. type: Plain text
6471 #: build/C/man2/sigaltstack.2:137
6472 msgid ""
6473 "B<sigaltstack>()  returns 0 on success, or -1 on failure with I<errno> set "
6474 "to indicate the error."
6475 msgstr ""
6476 "B<sigaltstack>()  は成功した場合 0 を返す。 失敗した場合は -1 を返して、 エ"
6477 "ラーを示す値に I<errno> を設定する。"
6478
6479 #. type: Plain text
6480 #: build/C/man2/sigaltstack.2:142
6481 msgid ""
6482 "Either I<ss> or I<oss> is not NULL and points to an area outside of the "
6483 "process's address space."
6484 msgstr ""
6485 "I<ss> または I<oss> のどちらが、NULL 以外で、 かつプロセスのアドレス空間の外"
6486 "を指している。"
6487
6488 #. type: Plain text
6489 #: build/C/man2/sigaltstack.2:147
6490 msgid ""
6491 "I<ss> is not NULL and the I<ss_flags> field contains a nonzero value other "
6492 "than B<SS_DISABLE>."
6493 msgstr ""
6494 "I<ss> が NULL 以外で、I<ss_flags> フィールドが B<SS_DISABLE> 以外の 0 でない"
6495 "値になっている。"
6496
6497 #. type: Plain text
6498 #: build/C/man2/sigaltstack.2:153
6499 msgid ""
6500 "The specified size of the new alternate signal stack I<ss.ss_size> was less "
6501 "than B<MINSTKSZ>."
6502 msgstr ""
6503 "新しい代替シグナルスタック (I<ss.ss_size>) に指定したサイズが B<MINSTKSZ> よ"
6504 "り小さかった。"
6505
6506 #. type: Plain text
6507 #: build/C/man2/sigaltstack.2:158
6508 msgid ""
6509 "An attempt was made to change the alternate signal stack while it was active "
6510 "(i.e., the process was already executing on the current alternate signal "
6511 "stack)."
6512 msgstr ""
6513 "代替シグナルスタックが有効であるときに変更を行おうとした (つまり、プロセスが"
6514 "既に現在の代替シグナルスタック上で実行されていた)。"
6515
6516 #. type: Plain text
6517 #: build/C/man2/sigaltstack.2:160
6518 msgid "SUSv2, SVr4, POSIX.1-2001."
6519 msgstr "SUSv2, SVr4, POSIX.1-2001."
6520
6521 #. type: Plain text
6522 #: build/C/man2/sigaltstack.2:168
6523 msgid ""
6524 "The most common usage of an alternate signal stack is to handle the "
6525 "B<SIGSEGV> signal that is generated if the space available for the normal "
6526 "process stack is exhausted: in this case, a signal handler for B<SIGSEGV> "
6527 "cannot be invoked on the process stack; if we wish to handle it, we must use "
6528 "an alternate signal stack."
6529 msgstr ""
6530 "代替シグナルスタックを使用する最もよくある場面は、 B<SIGSEGV> シグナルを扱う"
6531 "ときである。 B<SIGSEGV> はプロセスの通常のスタックが利用できる空間が使い果た"
6532 "された際に 生成されるシグナルである。この場合には、 B<SIGSEGV> 用のシグナルハ"
6533 "ンドラをプロセスのスタック上では起動することができない。 そのため、このシグナ"
6534 "ルを扱おうとする場合には、 代替シグナルスタックを使用しなければならない。"
6535
6536 #. type: Plain text
6537 #: build/C/man2/sigaltstack.2:178
6538 msgid ""
6539 "Establishing an alternate signal stack is useful if a process expects that "
6540 "it may exhaust its standard stack.  This may occur, for example, because the "
6541 "stack grows so large that it encounters the upwardly growing heap, or it "
6542 "reaches a limit established by a call to B<setrlimit(RLIMIT_STACK, &rlim)>.  "
6543 "If the standard stack is exhausted, the kernel sends the process a "
6544 "B<SIGSEGV> signal.  In these circumstances the only way to catch this signal "
6545 "is on an alternate signal stack."
6546 msgstr ""
6547 "プロセスが標準のシグナルスタックを使い果たすことが予想される場合は、 代替シグ"
6548 "ナルスタックを確立すると便利である。 例えば、スタックが最上位アドレスから 下"
6549 "位アドレス方向に非常にたくさん積まれてしまうことで、 最下位アドレスから上位ア"
6550 "ドレス方向に積まれるヒープとぶつかってしまう場合や、 "
6551 "B<setrlimit(RLIMIT_STACK, &rlim)> の呼び出しで確立された 制限に達してしまった"
6552 "場合に、この様な事が起こる。 標準のスタックを使い果たしてしまうと、 カーネル"
6553 "はプロセスに B<SIGSEGV> シグナルを送る。 このような状況では、代替シグナルス"
6554 "タック上でしかシグナルをキャッチできない。"
6555
6556 #. type: Plain text
6557 #: build/C/man2/sigaltstack.2:184
6558 msgid ""
6559 "On most hardware architectures supported by Linux, stacks grow downward.  "
6560 "B<sigaltstack>()  automatically takes account of the direction of stack "
6561 "growth."
6562 msgstr ""
6563 "Linux がサポートする多くのハードウェアアーキテクチャでは、 スタックは下位アド"
6564 "レス方向に積まれる。 B<sigaltstack>()  はスタックが積まれる方向を自動的に決定"
6565 "する。"
6566
6567 #. type: Plain text
6568 #: build/C/man2/sigaltstack.2:193
6569 msgid ""
6570 "Functions called from a signal handler executing on an alternate signal "
6571 "stack will also use the alternate signal stack.  (This also applies to any "
6572 "handlers invoked for other signals while the process is executing on the "
6573 "alternate signal stack.)  Unlike the standard stack, the system does not "
6574 "automatically extend the alternate signal stack.  Exceeding the allocated "
6575 "size of the alternate signal stack will lead to unpredictable results."
6576 msgstr ""
6577 "代替シグナルスタック上で実行されている シグナルハンドラから呼ばれる関数も、代"
6578 "替シグナルハンドラを使う (プロセスが代替シグナルスタック上で実行されている場"
6579 "合、 他のシグナルで呼び出されるハンドラもこの代替シグナルハンドラを使う)。 標"
6580 "準のスタックとは異なり、 システムは代替シグナルスタックを自動的に拡張しな"
6581 "い。 代替シグナルスタック用に確保したサイズを越えた場合、 結果は予想できな"
6582 "い。"
6583
6584 #. type: Plain text
6585 #: build/C/man2/sigaltstack.2:201
6586 msgid ""
6587 "A successful call to B<execve>(2)  removes any existing alternate signal "
6588 "stack.  A child process created via B<fork>(2)  inherits a copy of its "
6589 "parent's alternate signal stack settings."
6590 msgstr ""
6591 "B<execve>(2)  の呼び出しが成功すると、 既存の全ての代替シグナルスタックが削除"
6592 "される。 B<fork>(2)  経由で作成された子プロセスは、親プロセスの代替シグナルス"
6593 "タックの 設定のコピーを継承する。"
6594
6595 #. type: Plain text
6596 #: build/C/man2/sigaltstack.2:210
6597 msgid ""
6598 "B<sigaltstack>()  supersedes the older B<sigstack>()  call.  For backward "
6599 "compatibility, glibc also provides B<sigstack>().  All new applications "
6600 "should be written using B<sigaltstack>()."
6601 msgstr ""
6602 "B<sigaltstack>()  は以前の B<sigstack>()  を置き換えるものである。 過去プログ"
6603 "ラムとの互換性のため、glibc では B<sigstack>()  も提供している。 新しいのアプ"
6604 "リケーションは全て B<sigaltstack>()  を使って書くべきである。"
6605
6606 #. type: SS
6607 #: build/C/man2/sigaltstack.2:210 build/C/man3/sigpause.3:66
6608 #, no-wrap
6609 msgid "History"
6610 msgstr "歴史"
6611
6612 #. type: Plain text
6613 #: build/C/man2/sigaltstack.2:217
6614 msgid ""
6615 "4.2BSD had a B<sigstack>()  system call.  It used a slightly different "
6616 "struct, and had the major disadvantage that the caller had to know the "
6617 "direction of stack growth."
6618 msgstr ""
6619 "4.2BSD には B<sigstack>()  システムコールがあった。 この関数は少し異なった構"
6620 "造体を使っており、 呼び出した側がスタックの積まれる方向を知っていなければなら"
6621 "ないという 大きな欠点があった。"
6622
6623 #. type: Plain text
6624 #: build/C/man2/sigaltstack.2:220
6625 msgid "The following code segment demonstrates the use of B<sigaltstack>():"
6626 msgstr "以下のコードで B<sigaltstack>()  の使用法の一部を示す:"
6627
6628 #. type: Plain text
6629 #: build/C/man2/sigaltstack.2:224
6630 #, no-wrap
6631 msgid "stack_t ss;\n"
6632 msgstr "stack_t ss;\n"
6633
6634 #. type: Plain text
6635 #: build/C/man2/sigaltstack.2:232
6636 #, no-wrap
6637 msgid ""
6638 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6639 "if (ss.ss_sp == NULL)\n"
6640 "    /* Handle error */;\n"
6641 "ss.ss_size = SIGSTKSZ;\n"
6642 "ss.ss_flags = 0;\n"
6643 "if (sigaltstack(&ss, NULL) == -1)\n"
6644 "    /* Handle error */;\n"
6645 msgstr ""
6646 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6647 "if (ss.ss_sp == NULL)\n"
6648 "    /* ハンドルエラー */;\n"
6649 "ss.ss_size = SIGSTKSZ;\n"
6650 "ss.ss_flags = 0;\n"
6651 "if (sigaltstack(&ss, NULL) == -1)\n"
6652 "    /* ハンドルエラー */;\n"
6653
6654 #. type: Plain text
6655 #: build/C/man2/sigaltstack.2:241
6656 msgid ""
6657 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6658 "B<sigsetjmp>(3), B<signal>(7)"
6659 msgstr ""
6660 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6661 "B<sigsetjmp>(3), B<signal>(7)"
6662
6663 #. type: TH
6664 #: build/C/man7/sigevent.7:26
6665 #, no-wrap
6666 msgid "SIGEVENT"
6667 msgstr "SIGEVENT"
6668
6669 #. type: TH
6670 #: build/C/man7/sigevent.7:26
6671 #, no-wrap
6672 msgid "2011-09-09"
6673 msgstr "2011-09-09"
6674
6675 #. type: Plain text
6676 #: build/C/man7/sigevent.7:29
6677 msgid "sigevent - structure for notification from asynchronous routines"
6678 msgstr "sigevent - 非同期ルーチンからの通知用の構造体"
6679
6680 #. type: Plain text
6681 #: build/C/man7/sigevent.7:36
6682 #, no-wrap
6683 msgid ""
6684 "union sigval {          /* Data passed with notification */\n"
6685 "    int     sival_int;         /* Integer value */\n"
6686 "    void   *sival_ptr;         /* Pointer value */\n"
6687 "};\n"
6688 msgstr ""
6689 "union sigval {          /* Data passed with notification */\n"
6690 "    int     sival_int;         /* Integer value */\n"
6691 "    void   *sival_ptr;         /* Pointer value */\n"
6692 "};\n"
6693
6694 #. type: Plain text
6695 #: build/C/man7/sigevent.7:51
6696 #, no-wrap
6697 msgid ""
6698 "struct sigevent {\n"
6699 "    int          sigev_notify; /* Notification method */\n"
6700 "    int          sigev_signo;  /* Notification signal */\n"
6701 "    union sigval sigev_value;  /* Data passed with\n"
6702 "                                  notification */\n"
6703 "    void       (*sigev_notify_function) (union sigval);\n"
6704 "                     /* Function used for thread\n"
6705 "                        notification (SIGEV_THREAD) */\n"
6706 "    void        *sigev_notify_attributes;\n"
6707 "                     /* Attributes for notification thread\n"
6708 "                        (SIGEV_THREAD) */\n"
6709 "    pid_t        sigev_notify_thread_id;\n"
6710 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6711 "};\n"
6712 msgstr ""
6713 "struct sigevent {\n"
6714 "    int          sigev_notify; /* Notification method */\n"
6715 "    int          sigev_signo;  /* Notification signal */\n"
6716 "    union sigval sigev_value;  /* Data passed with\n"
6717 "                                  notification */\n"
6718 "    void       (*sigev_notify_function) (union sigval);\n"
6719 "                     /* Function used for thread\n"
6720 "                        notification (SIGEV_THREAD) */\n"
6721 "    void        *sigev_notify_attributes;\n"
6722 "                     /* Attributes for notification thread\n"
6723 "                        (SIGEV_THREAD) */\n"
6724 "    pid_t        sigev_notify_thread_id;\n"
6725 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6726 "};\n"
6727
6728 #. type: Plain text
6729 #: build/C/man7/sigevent.7:60
6730 msgid ""
6731 "The I<sigevent> structure is used by various APIs to describe the way a "
6732 "process is to be notified about an event (e.g., completion of an "
6733 "asynchronous request, expiration of a timer, or the arrival of a message)."
6734 msgstr ""
6735 "I<sigevent> 構造体は、イベントに関する情報をプロセスに通知するために様々な "
6736 "API で使用される (イベントの例としては、 非同期処理要求の完了、 タイマーの満"
6737 "了、 メッセージの到着など)。"
6738
6739 #. type: Plain text
6740 #: build/C/man7/sigevent.7:68
6741 msgid ""
6742 "The definition shown in the SYNOPSIS is approximate: some of the fields in "
6743 "the I<sigevent> structure may be defined as part of a union.  Programs "
6744 "should employ only those fields relevant to the value specified in "
6745 "I<sigev_notify>."
6746 msgstr ""
6747 "「書式」に記載されている定義はおおよそのものである。 I<sigevent> 構造体のいく"
6748 "つかのフィールドは、 共用体の一部として定義されているものもある。 プログラム"
6749 "は、 I<sigev_notify> で指定された値に応じたフィールドだけを利用すべきである。"
6750
6751 #. type: Plain text
6752 #: build/C/man7/sigevent.7:73
6753 msgid ""
6754 "The I<sigev_notify> field specifies how notification is to be performed.  "
6755 "This field can have one of the following values:"
6756 msgstr ""
6757 "I<sigev_notify> フィールドは、通知をどのように処理すべきかを指定する。 この"
6758 "フィールドは、以下のいずれかの値である。"
6759
6760 #. type: TP
6761 #: build/C/man7/sigevent.7:73 build/C/man2/timer_create.2:109
6762 #, no-wrap
6763 msgid "B<SIGEV_NONE>"
6764 msgstr "B<SIGEV_NONE>"
6765
6766 #. type: Plain text
6767 #: build/C/man7/sigevent.7:76
6768 msgid "A \"null\" notification: don't do anything when the event occurs."
6769 msgstr "「空 (null)」の通知。 イベントが発生時には何もしないこと。"
6770
6771 #. type: TP
6772 #: build/C/man7/sigevent.7:76 build/C/man2/timer_create.2:114
6773 #, no-wrap
6774 msgid "B<SIGEV_SIGNAL>"
6775 msgstr "B<SIGEV_SIGNAL>"
6776
6777 #. type: Plain text
6778 #: build/C/man7/sigevent.7:80
6779 msgid "Notify the process by sending the signal specified in I<sigev_signo>."
6780 msgstr ""
6781 "I<sigev_signo> で指定されたシグナルを送信することで、プロセスへの通知を行う。"
6782
6783 #. type: Plain text
6784 #: build/C/man7/sigevent.7:87
6785 msgid ""
6786 "If the signal is caught with a signal handler that was registered using the "
6787 "B<sigaction>(2)  B<SA_SIGINFO> flag, then the following fields are set in "
6788 "the I<siginfo_t> structure that is passed as the second argument of the "
6789 "handler:"
6790 msgstr ""
6791 "B<sigaction>(2) の B<SA_SIGINFO> フラグを使った登録されたシグナルハンドラによ"
6792 "りシグナルが捕捉されると、 シグナルハンドラの 2 番目の引き数として渡された "
6793 "I<siginfo_t> 構造体の以下のフィールドが設定される。"
6794
6795 #. type: Plain text
6796 #: build/C/man7/sigevent.7:92
6797 msgid ""
6798 "This field is set to a value that depends on the API delivering the "
6799 "notification."
6800 msgstr "このフィールドには通知を配送した API に応じた決まる値が設定される。"
6801
6802 #. type: TP
6803 #: build/C/man7/sigevent.7:92 build/C/man2/wait.2:302
6804 #, no-wrap
6805 msgid "I<si_signo>"
6806 msgstr "I<si_signo>"
6807
6808 #. type: Plain text
6809 #: build/C/man7/sigevent.7:96
6810 msgid ""
6811 "This field is set to the signal number (i.e., the same value as in "
6812 "I<sigev_signo>)."
6813 msgstr ""
6814 "このフィールドにはシグナル番号 (すなわち I<sigev_signo> と同じ値) が設定され"
6815 "る。"
6816
6817 #. type: Plain text
6818 #: build/C/man7/sigevent.7:100
6819 msgid "This field is set to the value specified in I<sigev_value>."
6820 msgstr "このフィールドには I<sigev_value> で指定された値が設定される。"
6821
6822 #. type: Plain text
6823 #: build/C/man7/sigevent.7:105
6824 msgid ""
6825 "Depending on the API, other fields may also be set in the I<siginfo_t> "
6826 "structure."
6827 msgstr ""
6828 "API によっては I<siginfo_t> 構造体の他のフィールドが設定される場合もある。"
6829
6830 #. type: Plain text
6831 #: build/C/man7/sigevent.7:108
6832 msgid ""
6833 "The same information is also available if the signal is accepted using "
6834 "B<sigwaitinfo>(2)."
6835 msgstr ""
6836 "シグナルを受け取ったときには B<sigwaitinfo>(2) でも同じ情報が得られる。"
6837
6838 #. type: TP
6839 #: build/C/man7/sigevent.7:108 build/C/man2/timer_create.2:132
6840 #, no-wrap
6841 msgid "B<SIGEV_THREAD>"
6842 msgstr "B<SIGEV_THREAD>"
6843
6844 #. type: Plain text
6845 #: build/C/man7/sigevent.7:125
6846 msgid ""
6847 "Notify the process by invoking I<sigev_notify_function> \"as if\" it were "
6848 "the start function of a new thread.  (Among the implementation possibilities "
6849 "here are that each timer notification could result in the creation of a new "
6850 "thread, or that a single thread is created to receive all notifications.)  "
6851 "The function is invoked with I<sigev_value> as its sole argument.  If "
6852 "I<sigev_notify_attributes> is not NULL, it should point to a "
6853 "I<pthread_attr_t> structure that defines attributes for the new thread (see "
6854 "B<pthread_attr_init>(3))."
6855 msgstr ""
6856 "「あたかも」新しいスレッドセーフの開始関数であるかのように "
6857 "I<sigev_notify_function> を起動することで、 プロセスへの通知を行う (実装の可"
6858 "能性としては、 タイマー通知の度に新しいスレッドセーフが作成される場合も、 一"
6859 "つのスレッドを作成してすべての通知を受信する場合もある)。 この関数は "
6860 "I<sigev_value> を唯一の引き数として起動される。 I<sigev_notify_attributes> "
6861 "は、 NULL 以外の場合は、 新しいスレッドセーフの属性を定義する "
6862 "I<pthread_attr_t> 構造体を指していなければならない (B<pthread_attr_init>(3) "
6863 "参照)。"
6864
6865 #. type: TP
6866 #: build/C/man7/sigevent.7:125 build/C/man2/timer_create.2:140
6867 #, no-wrap
6868 msgid "B<SIGEV_THREAD_ID> (Linux-specific)"
6869 msgstr "B<SIGEV_THREAD_ID> (Linux 固有)"
6870
6871 #.  | SIGEV_SIGNAL vs not?
6872 #. type: Plain text
6873 #: build/C/man7/sigevent.7:130
6874 msgid "Currently used only by POSIX timers; see B<timer_create>(2)."
6875 msgstr "現在のところ POSIX でのみ使用されている。 B<timer_create>(2) 参照。"
6876
6877 #. type: Plain text
6878 #: build/C/man7/sigevent.7:132 build/C/man2/sigpending.2:66
6879 #: build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:121
6880 #: build/C/man3/sigsetops.3:147 build/C/man2/sigsuspend.2:86
6881 #: build/C/man3/sigwait.3:87 build/C/man2/sigwaitinfo.2:135
6882 #: build/C/man2/timer_create.2:197 build/C/man2/timer_delete.2:69
6883 #: build/C/man2/timer_getoverrun.2:99 build/C/man2/timer_settime.2:209
6884 msgid "POSIX.1-2001."
6885 msgstr "POSIX.1-2001."
6886
6887 #. type: Plain text
6888 #: build/C/man7/sigevent.7:142
6889 msgid ""
6890 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6891 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6892 "B<pthreads>(7)"
6893 msgstr ""
6894 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6895 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6896 "B<pthreads>(7)"
6897
6898 #. type: TH
6899 #: build/C/man3/siginterrupt.3:31
6900 #, no-wrap
6901 msgid "SIGINTERRUPT"
6902 msgstr "SIGINTERRUPT"
6903
6904 #. type: TH
6905 #: build/C/man3/siginterrupt.3:31
6906 #, no-wrap
6907 msgid "2014-06-13"
6908 msgstr "2014-06-13"
6909
6910 #. type: Plain text
6911 #: build/C/man3/siginterrupt.3:34
6912 msgid "siginterrupt - allow signals to interrupt system calls"
6913 msgstr "siginterrupt - シグナルでシステム・コールに割り込むことを許す"
6914
6915 #. type: Plain text
6916 #: build/C/man3/siginterrupt.3:39
6917 #, no-wrap
6918 msgid "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6919 msgstr "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6920
6921 #. type: Plain text
6922 #: build/C/man3/siginterrupt.3:47
6923 msgid "B<siginterrupt>():"
6924 msgstr "B<siginterrupt>():"
6925
6926 #. type: Plain text
6927 #: build/C/man3/siginterrupt.3:64
6928 msgid ""
6929 "The B<siginterrupt>()  function changes the restart behavior when a system "
6930 "call is interrupted by the signal I<sig>.  If the I<flag> argument is false "
6931 "(0), then system calls will be restarted if interrupted by the specified "
6932 "signal I<sig>.  This is the default behavior in Linux."
6933 msgstr ""
6934 "B<siginterrupt>()  関数は、システム・コールがシグナル I<sig> によって割り込ま"
6935 "れた後、再実行の際の振る舞いを変更する。 I<flag> 引き数が偽 (0) ならば、シス"
6936 "テム・コールが指定した シグナル I<sig> によって割り込まれた後に、そのシステ"
6937 "ム・コールは 再実行される。これは Linux においてデフォルトの動作である。"
6938
6939 #. type: Plain text
6940 #: build/C/man3/siginterrupt.3:69
6941 msgid ""
6942 "If the I<flag> argument is true (1) and no data has been transferred, then a "
6943 "system call interrupted by the signal I<sig> will return -1 and I<errno> "
6944 "will be set to B<EINTR>."
6945 msgstr ""
6946 "I<flag> 引き数が真 (1) でデータの転送が全く行なわれていないならば、 シグナル "
6947 "I<sig> でシステム・コールは中断されて、-1 が返され、 I<errno> に B<EINTR> が"
6948 "設定される。"
6949
6950 #. type: Plain text
6951 #: build/C/man3/siginterrupt.3:73
6952 msgid ""
6953 "If the I<flag> argument is true (1) and data transfer has started, then the "
6954 "system call will be interrupted and will return the actual amount of data "
6955 "transferred."
6956 msgstr ""
6957 "I<flag> 引き数が真 (1) でデータの転送が開始されていれば、 システム・コールは"
6958 "中断され、それまでに実際に転送されたデータ の量が返される。"
6959
6960 #. type: Plain text
6961 #: build/C/man3/siginterrupt.3:83
6962 msgid ""
6963 "The B<siginterrupt>()  function returns 0 on success.  It returns -1 if the "
6964 "signal number I<sig> is invalid, with I<errno> set to indicate the cause of "
6965 "the error."
6966 msgstr ""
6967 "B<siginterrupt>()  関数は成功した場合 0 を返す。 シグナル番号 I<sig> が不正な"
6968 "場合、 -1 を返し、 I<errno> にエラーの原因を示す値を設定する。"
6969
6970 #. type: Plain text
6971 #: build/C/man3/siginterrupt.3:87
6972 msgid "The specified signal number is invalid."
6973 msgstr "指定したシグナル番号が不正である。"
6974
6975 #. type: Plain text
6976 #: build/C/man3/siginterrupt.3:93
6977 msgid ""
6978 "The B<siginterrupt>()  function uses a global variable that is not "
6979 "protected, so it is not thread-safe."
6980 msgstr ""
6981 "B<siginterrupt>() 関数は保護されていないグローバル変数を使用しているので、ス"
6982 "レッドセーフではない。"
6983
6984 #. type: Plain text
6985 #: build/C/man3/siginterrupt.3:102
6986 msgid ""
6987 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 marks B<siginterrupt>()  as obsolete, "
6988 "recommending the use of B<sigaction>(2)  with the B<SA_RESTART> flag instead."
6989 msgstr ""
6990 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 は、 B<siginterrupt>()  を廃止予定として"
6991 "いる。 代わりに、 B<sigaction>(2)  に B<SA_RESTART> フラグを指定して使うこと"
6992 "を推奨している。"
6993
6994 #. type: Plain text
6995 #: build/C/man3/siginterrupt.3:104
6996 msgid "B<signal>(2)"
6997 msgstr "B<signal>(2)"
6998
6999 #. type: TH
7000 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
7001 #, no-wrap
7002 msgid "SIGNAL"
7003 msgstr "SIGNAL"
7004
7005 #. type: TH
7006 #: build/C/man2/signal.2:36 build/C/man3/sigpause.3:25
7007 #: build/C/man2/sigwaitinfo.2:25 build/C/man2/timer_create.2:33
7008 #: build/C/man2/wait.2:49
7009 #, no-wrap
7010 msgid "2014-08-19"
7011 msgstr "2014-08-19"
7012
7013 #. type: Plain text
7014 #: build/C/man2/signal.2:39
7015 msgid "signal - ANSI C signal handling"
7016 msgstr "signal - ANSI C シグナル操作"
7017
7018 #. type: Plain text
7019 #: build/C/man2/signal.2:45
7020 msgid "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
7021 msgstr ""
7022 "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<sighandler>B<);>"
7023
7024 #. type: Plain text
7025 #: build/C/man2/signal.2:54
7026 msgid ""
7027 "The behavior of B<signal>()  varies across UNIX versions, and has also "
7028 "varied historically across different versions of Linux.  B<Avoid its use>: "
7029 "use B<sigaction>(2)  instead.  See I<Portability> below."
7030 msgstr ""
7031 "B<signal>()  の動作は UNIX のバージョンにより異なる。 また、歴史的に見て "
7032 "Linux のバージョンによっても異なっている。 B<このシステムコールの使用は避け、"
7033 "> 代わりに B<sigaction>(2)  を使用すること。 下記の「移植性」を参照。"
7034
7035 #. type: Plain text
7036 #: build/C/man2/signal.2:64
7037 msgid ""
7038 "B<signal>()  sets the disposition of the signal I<signum> to I<handler>, "
7039 "which is either B<SIG_IGN>, B<SIG_DFL>, or the address of a programmer-"
7040 "defined function (a \"signal handler\")."
7041 msgstr ""
7042 "B<signal>()  はシグナル I<signum> の処理方法を I<handler> に設定する。 "
7043 "I<handler> には、 B<SIG_IGN>、 B<SIG_DFL>、 プログラマが定義した関数 (「シグ"
7044 "ナル・ハンドラ」) のアドレスの いずれかを指定する。"
7045
7046 #. type: Plain text
7047 #: build/C/man2/signal.2:68
7048 msgid ""
7049 "If the signal I<signum> is delivered to the process, then one of the "
7050 "following happens:"
7051 msgstr ""
7052 "シグナル I<signum> がプロセスに配送されると、以下のいずれかが発生する。"
7053
7054 #. type: Plain text
7055 #: build/C/man2/signal.2:73
7056 msgid "If the disposition is set to B<SIG_IGN>, then the signal is ignored."
7057 msgstr "処理方法が B<SIG_IGN> に設定されている場合、そのシグナルは無視される。"
7058
7059 #. type: Plain text
7060 #: build/C/man2/signal.2:80
7061 msgid ""
7062 "If the disposition is set to B<SIG_DFL>, then the default action associated "
7063 "with the signal (see B<signal>(7))  occurs."
7064 msgstr ""
7065 "処理方法が B<SIG_DFL> に設定されている場合、シグナルに関連づけられた デフォル"
7066 "トの動作が行われる (B<signal>(7)  参照)。"
7067
7068 #. type: Plain text
7069 #: build/C/man2/signal.2:91
7070 msgid ""
7071 "If the disposition is set to a function, then first either the disposition "
7072 "is reset to B<SIG_DFL>, or the signal is blocked (see I<Portability> below), "
7073 "and then I<handler> is called with argument I<signum>.  If invocation of the "
7074 "handler caused the signal to be blocked, then the signal is unblocked upon "
7075 "return from the handler."
7076 msgstr ""
7077 "処理方法として関数が設定されている場合、 まず最初に処理方法が B<SIG_DFL> にリ"
7078 "セットされるかそのシグナルのブロックが実行された後、 I<signum> を引き数とし"
7079 "て I<handler> が呼び出される。 ハンドラが起動される際にシグナルがブロックされ"
7080 "た場合、 ハンドラが返る際にそのシグナルのブロックが解除される。"
7081
7082 #. type: Plain text
7083 #: build/C/man2/signal.2:97
7084 msgid "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught or ignored."
7085 msgstr ""
7086 "シグナル B<SIGKILL> と B<SIGSTOP> は捕捉できず、無視することもできない。"
7087
7088 #. type: Plain text
7089 #: build/C/man2/signal.2:105
7090 msgid ""
7091 "B<signal>()  returns the previous value of the signal handler, or B<SIG_ERR> "
7092 "on error.  In the event of an error, I<errno> is set to indicate the cause."
7093 msgstr ""
7094 "B<signal>()  は、今までのシグナル・ハンドラの値を返す。 エラーの場合は "
7095 "B<SIG_ERR> を返し、 I<errno> にエラーの原因を示す値を設定する。"
7096
7097 #. type: Plain text
7098 #: build/C/man2/signal.2:110
7099 msgid "I<signum> is invalid."
7100 msgstr "I<signum> が不正である。"
7101
7102 #. type: Plain text
7103 #: build/C/man2/signal.2:116
7104 msgid "The effects of B<signal>()  in a multithreaded process are unspecified."
7105 msgstr ""
7106 "マルチスレッドプロセスにおける B<signal>()  の結果は、指定されていない。"
7107
7108 #. type: Plain text
7109 #: build/C/man2/signal.2:141
7110 msgid ""
7111 "See B<sigaction>(2)  for details on what happens when B<SIGCHLD> is set to "
7112 "B<SIG_IGN>."
7113 msgstr ""
7114 "B<SIGCHLD> の動作として B<SIG_IGN> を設定した場合の詳細な動作については、 "
7115 "B<sigaction>(2)  を参照すること。"
7116
7117 #. type: Plain text
7118 #: build/C/man2/signal.2:146
7119 msgid ""
7120 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
7121 "safely called from inside a signal handler."
7122 msgstr ""
7123 "シグナル・ハンドラ内から安全に呼び出すことができる、 async-signal-safe "
7124 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
7125 "照。"
7126
7127 #.  libc4 and libc5 define
7128 #.  .IR SignalHandler ;
7129 #. type: Plain text
7130 #: build/C/man2/signal.2:162
7131 msgid ""
7132 "The use of I<sighandler_t> is a GNU extension, exposed if B<_GNU_SOURCE> is "
7133 "defined; glibc also defines (the BSD-derived)  I<sig_t> if B<_BSD_SOURCE> is "
7134 "defined.  Without use of such a type, the declaration of B<signal>()  is the "
7135 "somewhat harder to read:"
7136 msgstr ""
7137 "I<sighandler_t> の使用は GNU 拡張であり、 B<_GNU_SOURCE> が定義された場合に公"
7138 "開される。glibc では B<_BSD_SOURCE> が定義された場合には (BSD 由来の) "
7139 "I<sig_t> も定義される。このような型を使用しないと、 B<signal>() の宣言は読み"
7140 "にくいものとなる。"
7141
7142 #. type: Plain text
7143 #: build/C/man2/signal.2:166
7144 #, no-wrap
7145 msgid "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
7146 msgstr "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
7147
7148 #. type: SS
7149 #: build/C/man2/signal.2:168
7150 #, no-wrap
7151 msgid "Portability"
7152 msgstr "移植性"
7153
7154 #. type: Plain text
7155 #: build/C/man2/signal.2:180
7156 msgid ""
7157 "The only portable use of B<signal>()  is to set a signal's disposition to "
7158 "B<SIG_DFL> or B<SIG_IGN>.  The semantics when using B<signal>()  to "
7159 "establish a signal handler vary across systems (and POSIX.1 explicitly "
7160 "permits this variation); B<do not use it for this purpose.>"
7161 msgstr ""
7162 "移植性のある B<signal>()  の使い方は、シグナルの処理方法を B<SIG_DFL> か "
7163 "B<SIG_IGN> に設定する方法だけである。 シグナル・ハンドラを設定するのに "
7164 "B<signal>()  を使ったときの動作はシステムにより異なる (POSIX.1 は明示的にこの"
7165 "違いを認めている)。 B<移植性が必要なときはこのシステムコールを使用しないこ"
7166 "と。>"
7167
7168 #. type: Plain text
7169 #: build/C/man2/signal.2:186
7170 msgid ""
7171 "POSIX.1 solved the portability mess by specifying B<sigaction>(2), which "
7172 "provides explicit control of the semantics when a signal handler is invoked; "
7173 "use that interface instead of B<signal>()."
7174 msgstr ""
7175 "POSIX.1 は、 B<sigaction>(2)  を規定することで移植性に関する混乱を解決した。 "
7176 "B<sigaction>(2)  はシグナル・ハンドラが起動される際の挙動を明示的に制御でき"
7177 "る。 B<signal>()  の代わりにこのインターフェイスを使うこと。"
7178
7179 #. type: Plain text
7180 #: build/C/man2/signal.2:196
7181 msgid ""
7182 "In the original UNIX systems, when a handler that was established using "
7183 "B<signal>()  was invoked by the delivery of a signal, the disposition of the "
7184 "signal would be reset to B<SIG_DFL>, and the system did not block delivery "
7185 "of further instances of the signal.  This is equivalent to calling "
7186 "B<sigaction>(2)  with the following flags:"
7187 msgstr ""
7188 "オリジナルの UNIX システムでは、 B<signal>()  を使って設定されたハンドラがシ"
7189 "グナルの配送により起動されると、 そのシグナルの処理方法は B<SIG_DFL> にリセッ"
7190 "トされ、システムは同じシグナルがさらに生成されても シグナルの配送をブロックし"
7191 "なかった。これは、以下のフラグで B<sigaction>(2) を呼び出すのと等価である。"
7192
7193 #. type: Plain text
7194 #: build/C/man2/signal.2:198
7195 #, no-wrap
7196 msgid "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
7197 msgstr "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
7198
7199 #. type: Plain text
7200 #: build/C/man2/signal.2:205
7201 msgid ""
7202 "System\\ V also provides these semantics for B<signal>().  This was bad "
7203 "because the signal might be delivered again before the handler had a chance "
7204 "to reestablish itself.  Furthermore, rapid deliveries of the same signal "
7205 "could result in recursive invocations of the handler."
7206 msgstr ""
7207 "System\\ V でも、 B<signal>()  に対してこれらの挙動を規定している。 こうした"
7208 "挙動はまずく、ハンドラがハンドラ自身を再設定する機会が 来るより前に、同じシグ"
7209 "ナルがまた配送される可能性がある。 さらに、同じシグナルが立て続けに配送される"
7210 "と、同じシグナルが ハンドラを繰り返し起動されることになる。"
7211
7212 #. type: Plain text
7213 #: build/C/man2/signal.2:220
7214 msgid ""
7215 "BSD improved on this situation, but unfortunately also changed the semantics "
7216 "of the existing B<signal>()  interface while doing so.  On BSD, when a "
7217 "signal handler is invoked, the signal disposition is not reset, and further "
7218 "instances of the signal are blocked from being delivered while the handler "
7219 "is executing.  Furthermore, certain blocking system calls are automatically "
7220 "restarted if interrupted by a signal handler (see B<signal>(7)).  The BSD "
7221 "semantics are equivalent to calling B<sigaction>(2)  with the following "
7222 "flags:"
7223 msgstr ""
7224 "BSD はこの状況が改善したが、残念なことに、その過程で既存の B<signal>() の挙動"
7225 "も変更された。 BSD では、シグナルハンドラが起動された際、 シグナルの処理方法"
7226 "はリセットされず、 ハンドラの実行中は、同じシグナルのさらなる生成は配送がブ"
7227 "ロックされる。 また、 シグナルハンドラが中断された場合、 停止中のシステムコー"
7228 "ルのいくつかは自動的に再スタートされる。 BSD の挙動は、 以下のフラグを指定し"
7229 "た B<sigaction>(2) の呼び出しと等価である。"
7230
7231 #. type: Plain text
7232 #: build/C/man2/signal.2:222
7233 #, no-wrap
7234 msgid "    sa.sa_flags = SA_RESTART;\n"
7235 msgstr "    sa.sa_flags = SA_RESTART;\n"
7236
7237 #. type: Plain text
7238 #: build/C/man2/signal.2:224
7239 msgid "The situation on Linux is as follows:"
7240 msgstr "Linux での状況は以下の通りである。"
7241
7242 #. type: Plain text
7243 #: build/C/man2/signal.2:228
7244 msgid "The kernel's B<signal>()  system call provides System\\ V semantics."
7245 msgstr ""
7246 "カーネルの B<signal>()  システムコールは System\\ V 方式を提供している。"
7247
7248 #. type: Plain text
7249 #: build/C/man2/signal.2:244
7250 msgid ""
7251 "By default, in glibc 2 and later, the B<signal>()  wrapper function does not "
7252 "invoke the kernel system call.  Instead, it calls B<sigaction>(2)  using "
7253 "flags that supply BSD semantics.  This default behavior is provided as long "
7254 "as the B<_BSD_SOURCE> feature test macro is defined.  By default, "
7255 "B<_BSD_SOURCE> is defined; it is also implicitly defined if one defines "
7256 "B<_GNU_SOURCE>, and can of course be explicitly defined."
7257 msgstr ""
7258 "デフォルトでは、glibc 2 以降では、 B<signal>()  ラッパー関数はカーネルのシス"
7259 "テムコールを起動しない。 代わりに、ラッパー関数は BSD 方式を示すフラグを使っ"
7260 "て B<sigaction>(2)  を呼び出す。 機能検査マクロ B<_BSD_SOURCE> を定義していれ"
7261 "ば、このデフォルトの動作となる。 デフォルトでは、 B<_BSD_SOURCE> が定義され"
7262 "る。 B<_BSD_SOURCE> は B<_GNU_SOURCE> が定義された場合には暗黙のうちに定義さ"
7263 "れ、 もちろん明示的に定義することもできる。"
7264
7265 #.  System V semantics are also provided if one uses the separate
7266 #.  .BR sysv_signal (3)
7267 #.  function.
7268 #.  .IP *
7269 #.  The
7270 #.  .BR signal ()
7271 #.  function in Linux libc4 and libc5 provide System\ V semantics.
7272 #.  If one on a libc5 system includes
7273 #.  .I <bsd/signal.h>
7274 #.  instead of
7275 #.  .IR <signal.h> ,
7276 #.  then
7277 #.  .BR signal ()
7278 #.  provides BSD semantics.
7279 #. type: Plain text
7280 #: build/C/man2/signal.2:278
7281 msgid ""
7282 "On glibc 2 and later, if the B<_BSD_SOURCE> feature test macro is not "
7283 "defined, then B<signal>()  provides System\\ V semantics.  (The default "
7284 "implicit definition of B<_BSD_SOURCE> is not provided if one invokes "
7285 "B<gcc>(1)  in one of its standard modes (I<-std=xxx> or I<-ansi>)  or "
7286 "defines various other feature test macros such as B<_POSIX_SOURCE>, "
7287 "B<_XOPEN_SOURCE>, or B<_SVID_SOURCE>; see B<feature_test_macros>(7).)"
7288 msgstr ""
7289 "glibc 2 以降では、機能検査マクロ B<_BSD_SOURCE> が定義されていなければ、 "
7290 "B<signal>()  は System\\ V 方式となる。 (B<gcc>(1)  が標準指定モード (I<-"
7291 "std=xxx> or I<-ansi>)  で起動された場合、もしくは B<_POSIX_SOURCE>, "
7292 "B<_XOPEN_SOURCE>, B<_SVID_SOURCE> といった他の様々な機能検査マクロが定義され"
7293 "た場合、 デフォルトの B<_BSD_SOURCE> の暗黙の定義は行われない。 "
7294 "B<feature_test_macros>(7)  を参照のこと。)"
7295
7296 #. type: Plain text
7297 #: build/C/man2/signal.2:297
7298 msgid ""
7299 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), "
7300 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
7301 "B<sigsuspend>(2), B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), "
7302 "B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), "
7303 "B<signal>(7)"
7304 msgstr ""
7305 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), "
7306 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
7307 "B<sigsuspend>(2), B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), "
7308 "B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), "
7309 "B<signal>(7)"
7310
7311 #. type: Plain text
7312 #: build/C/man7/signal.7:49
7313 msgid "signal - overview of signals"
7314 msgstr "signal - シグナルの概要"
7315
7316 #. type: Plain text
7317 #: build/C/man7/signal.7:52
7318 msgid ""
7319 "Linux supports both POSIX reliable signals (hereinafter \"standard signals"
7320 "\") and POSIX real-time signals."
7321 msgstr ""
7322 "Linux は POSIX 信頼シグナル (reliable signal; 以後 \"標準シグナル\"と表記)  "
7323 "と POSIX リアルタイムシグナルの両方に対応している。"
7324
7325 #. type: SS
7326 #: build/C/man7/signal.7:52
7327 #, no-wrap
7328 msgid "Signal dispositions"
7329 msgstr "シグナル処理方法"
7330
7331 #. type: Plain text
7332 #: build/C/man7/signal.7:57
7333 msgid ""
7334 "Each signal has a current I<disposition>, which determines how the process "
7335 "behaves when it is delivered the signal."
7336 msgstr ""
7337 "シグナルはそれぞれ現在の「処理方法 (disposition)」を保持しており、 この処理方"
7338 "法によりシグナルが配送された際にプロセスが どのような振舞いをするかが決まる。"
7339
7340 #. type: Plain text
7341 #: build/C/man7/signal.7:60
7342 msgid ""
7343 "The entries in the \"Action\" column of the tables below specify the default "
7344 "disposition for each signal, as follows:"
7345 msgstr ""
7346 "後述の表の \"動作\" の欄のエントリは各シグナルのデフォルトの 処理方法を示して"
7347 "おり、以下のような意味を持つ。"
7348
7349 #. type: IP
7350 #: build/C/man7/signal.7:60
7351 #, no-wrap
7352 msgid "Term"
7353 msgstr "Term"
7354
7355 #. type: Plain text
7356 #: build/C/man7/signal.7:62
7357 msgid "Default action is to terminate the process."
7358 msgstr "デフォルトの動作はプロセス終了。"
7359
7360 #. type: IP
7361 #: build/C/man7/signal.7:62
7362 #, no-wrap
7363 msgid "Ign"
7364 msgstr "Ign"
7365
7366 #. type: Plain text
7367 #: build/C/man7/signal.7:64
7368 msgid "Default action is to ignore the signal."
7369 msgstr "デフォルトの動作はこのシグナルの無視。"
7370
7371 #. type: IP
7372 #: build/C/man7/signal.7:64
7373 #, no-wrap
7374 msgid "Core"
7375 msgstr "Core"
7376
7377 #. type: Plain text
7378 #: build/C/man7/signal.7:67
7379 msgid ""
7380 "Default action is to terminate the process and dump core (see B<core>(5))."
7381 msgstr "デフォルトの動作はプロセス終了とコアダンプ出力 (B<core>(5)  参照)。"
7382
7383 #. type: IP
7384 #: build/C/man7/signal.7:67
7385 #, no-wrap
7386 msgid "Stop"
7387 msgstr "Stop"
7388
7389 #. type: Plain text
7390 #: build/C/man7/signal.7:69
7391 msgid "Default action is to stop the process."
7392 msgstr "デフォルトの動作はプロセスの一時停止。"
7393
7394 #. type: IP
7395 #: build/C/man7/signal.7:69
7396 #, no-wrap
7397 msgid "Cont"
7398 msgstr "Cont"
7399
7400 #. type: Plain text
7401 #: build/C/man7/signal.7:71
7402 msgid "Default action is to continue the process if it is currently stopped."
7403 msgstr "デフォルトの動作は、プロセスが停止中の場合にその実行の再開。"
7404
7405 #. type: Plain text
7406 #: build/C/man7/signal.7:93
7407 msgid ""
7408 "A process can change the disposition of a signal using B<sigaction>(2)  or "
7409 "B<signal>(2).  (The latter is less portable when establishing a signal "
7410 "handler; see B<signal>(2)  for details.)  Using these system calls, a "
7411 "process can elect one of the following behaviors to occur on delivery of the "
7412 "signal: perform the default action; ignore the signal; or catch the signal "
7413 "with a I<signal handler>, a programmer-defined function that is "
7414 "automatically invoked when the signal is delivered.  (By default, the signal "
7415 "handler is invoked on the normal process stack.  It is possible to arrange "
7416 "that the signal handler uses an alternate stack; see B<sigaltstack>(2)  for "
7417 "a discussion of how to do this and when it might be useful.)"
7418 msgstr ""
7419 "プロセスは、 B<sigaction>(2)  や B<signal>(2)  を使って、シグナルの処理方法を"
7420 "変更することができる (B<signal>(2)  の方がシグナルハンドラを設定する際の移植"
7421 "性が低い; 詳細は B<signal>(2)  を参照)。 シグナルの配送時に起こる動作として "
7422 "プロセスが選択できるのは、次のいずれか一つである。 デフォルトの動作を実行す"
7423 "る、シグナルを無視する、 I<シグナルハンドラ (signal handler)> でシグナルを捕"
7424 "捉する。シグナルハンドラとは、シグナル配送時に 自動的に起動されるプログラマ定"
7425 "義の関数である。 (デフォルトでは、シグナルハンドラは通常のプロセスのスタック"
7426 "上で起動される。 シグナルハンドラが代替スタック (alternate stack) を使用する"
7427 "ように設定する こともできる。代替スタックを使用するように設定する方法と、どの"
7428 "ような際に 代替スタックが役に立つかについての議論については "
7429 "B<sigaltstack>(2)  を参照のこと。"
7430
7431 #. type: Plain text
7432 #: build/C/man7/signal.7:97
7433 msgid ""
7434 "The signal disposition is a per-process attribute: in a multithreaded "
7435 "application, the disposition of a particular signal is the same for all "
7436 "threads."
7437 msgstr ""
7438 "シグナルの処理方法はプロセス単位の属性である。 マルチスレッドのアプリケーショ"
7439 "ンでは、あるシグナルの処理方法は 全てのスレッドで同じである。"
7440
7441 #. type: SS
7442 #: build/C/man7/signal.7:105
7443 #, no-wrap
7444 msgid "Sending a signal"
7445 msgstr "シグナルの送信"
7446
7447 #. type: Plain text
7448 #: build/C/man7/signal.7:108
7449 msgid ""
7450 "The following system calls and library functions allow the caller to send a "
7451 "signal:"
7452 msgstr ""
7453 "以下のシステムコールとライブラリ関数を使って、 呼び出し者はシグナルを送信する"
7454 "ことができる。"
7455
7456 #. type: TP
7457 #: build/C/man7/signal.7:108
7458 #, no-wrap
7459 msgid "B<raise>(3)"
7460 msgstr "B<raise>(3)"
7461
7462 #. type: Plain text
7463 #: build/C/man7/signal.7:111
7464 msgid "Sends a signal to the calling thread."
7465 msgstr "呼び出したスレッドにシグナルを送る。"
7466
7467 #. type: TP
7468 #: build/C/man7/signal.7:111
7469 #, no-wrap
7470 msgid "B<kill>(2)"
7471 msgstr "B<kill>(2)"
7472
7473 #. type: Plain text
7474 #: build/C/man7/signal.7:116
7475 msgid ""
7476 "Sends a signal to a specified process, to all members of a specified process "
7477 "group, or to all processes on the system."
7478 msgstr ""
7479 "指定されたプロセスや、指定されたプロセスグループの全メンバー、 システムの全プ"
7480 "ロセスにシグナルを送る。"
7481
7482 #. type: TP
7483 #: build/C/man7/signal.7:116
7484 #, no-wrap
7485 msgid "B<killpg>(2)"
7486 msgstr "B<killpg>(2)"
7487
7488 #. type: Plain text
7489 #: build/C/man7/signal.7:119
7490 msgid "Sends a signal to all of the members of a specified process group."
7491 msgstr "指定されたプロセスグループの全メンバーにシグナルを送る。"
7492
7493 #. type: TP
7494 #: build/C/man7/signal.7:119
7495 #, no-wrap
7496 msgid "B<pthread_kill>(3)"
7497 msgstr "B<pthread_kill>(3)"
7498
7499 #. type: Plain text
7500 #: build/C/man7/signal.7:123
7501 msgid ""
7502 "Sends a signal to a specified POSIX thread in the same process as the caller."
7503 msgstr ""
7504 "呼び出し者と同じプロセス内の指定された POSIX スレッドにシグナルを送る。"
7505
7506 #. type: TP
7507 #: build/C/man7/signal.7:123
7508 #, no-wrap
7509 msgid "B<tgkill>(2)"
7510 msgstr "B<tgkill>(2)"
7511
7512 #. type: Plain text
7513 #: build/C/man7/signal.7:128
7514 msgid ""
7515 "Sends a signal to a specified thread within a specific process.  (This is "
7516 "the system call used to implement B<pthread_kill>(3).)"
7517 msgstr ""
7518 "指定されたプロセス内の指定されたスレッドにシグナルを送る (このシステムコール"
7519 "を使って B<pthread_kill>(3)  は実装されている)。"
7520
7521 #. type: TP
7522 #: build/C/man7/signal.7:128
7523 #, no-wrap
7524 msgid "B<sigqueue>(3)"
7525 msgstr "B<sigqueue>(3)"
7526
7527 #. type: Plain text
7528 #: build/C/man7/signal.7:131
7529 msgid "Sends a real-time signal with accompanying data to a specified process."
7530 msgstr "指定されたプロセスに付属データとともにリアルタイムシグナルを送る。"
7531
7532 #. type: SS
7533 #: build/C/man7/signal.7:131
7534 #, no-wrap
7535 msgid "Waiting for a signal to be caught"
7536 msgstr "シグナルが捕捉されるのを待つ"
7537
7538 #. type: Plain text
7539 #: build/C/man7/signal.7:135
7540 msgid ""
7541 "The following system calls suspend execution of the calling process or "
7542 "thread until a signal is caught (or an unhandled signal terminates the "
7543 "process):"
7544 msgstr ""
7545 "以下のシステムコールを使って、シグナルが捕捉されるまで 呼び出したプロセスやス"
7546 "レッドの実行を中断 (suspend) することができる (ハンドラが設定されていないシグ"
7547 "ナルによりそのプロセスが終了した 場合にも実行の停止は終了する)。"
7548
7549 #. type: TP
7550 #: build/C/man7/signal.7:135
7551 #, no-wrap
7552 msgid "B<pause>(2)"
7553 msgstr "B<pause>(2)"
7554
7555 #. type: Plain text
7556 #: build/C/man7/signal.7:138
7557 msgid "Suspends execution until any signal is caught."
7558 msgstr "何かシグナルが捕捉されるまで実行を停止する。"
7559
7560 #. type: TP
7561 #: build/C/man7/signal.7:138
7562 #, no-wrap
7563 msgid "B<sigsuspend>(2)"
7564 msgstr "B<sigsuspend>(2)"
7565
7566 #. type: Plain text
7567 #: build/C/man7/signal.7:142
7568 msgid ""
7569 "Temporarily changes the signal mask (see below) and suspends execution until "
7570 "one of the unmasked signals is caught."
7571 msgstr ""
7572 "一時的にシグナルマスク (下記参照) を変更し、 マスクされていないシグナルのいず"
7573 "れかが捕捉されるまで 実行を中断する。"
7574
7575 #. type: SS
7576 #: build/C/man7/signal.7:142
7577 #, no-wrap
7578 msgid "Synchronously accepting a signal"
7579 msgstr "シグナルの同期受信"
7580
7581 #. type: Plain text
7582 #: build/C/man7/signal.7:149
7583 msgid ""
7584 "Rather than asynchronously catching a signal via a signal handler, it is "
7585 "possible to synchronously accept the signal, that is, to block execution "
7586 "until the signal is delivered, at which point the kernel returns information "
7587 "about the signal to the caller.  There are two general ways to do this:"
7588 msgstr ""
7589 "シグナルハンドラ経由でシグナルを非同期 (asynchronously) で捕捉する以外にも、 "
7590 "シグナルを同期 (synchronously) して受け付けることもできる。 同期して受け付け"
7591 "るとは、シグナルが配送されるまで実行を停止 (block)  するということである。シ"
7592 "グナルを受け付けた際に、カーネルは そのシグナルに関する情報を呼び出し者に返"
7593 "す。 これを行う一般的な方法が二つある。"
7594
7595 #. type: Plain text
7596 #: build/C/man7/signal.7:157
7597 msgid ""
7598 "B<sigwaitinfo>(2), B<sigtimedwait>(2), and B<sigwait>(3)  suspend execution "
7599 "until one of the signals in a specified set is delivered.  Each of these "
7600 "calls returns information about the delivered signal."
7601 msgstr ""
7602 "B<sigwaitinfo>(2), B<sigtimedwait>(2), B<sigwait>(3)  は、指定されたシグナル"
7603 "集合のシグナルの一つが配送されるまで実行を中断する。 どのシステムコールや関数"
7604 "でも、配送されたシグナルに関する情報が返される。"
7605
7606 #. type: Plain text
7607 #: build/C/man7/signal.7:170
7608 msgid ""
7609 "B<signalfd>(2)  returns a file descriptor that can be used to read "
7610 "information about signals that are delivered to the caller.  Each "
7611 "B<read>(2)  from this file descriptor blocks until one of the signals in the "
7612 "set specified in the B<signalfd>(2)  call is delivered to the caller.  The "
7613 "buffer returned by B<read>(2)  contains a structure describing the signal."
7614 msgstr ""
7615 "B<signalfd>(2)  が返すファイルディスクリプタを使うと、呼び出し元に配送された "
7616 "シグナルに関する情報を読み出すことができる。 このファイルディスクリプタから"
7617 "の B<read>(2)  は、 B<signalfd>(2)  の呼び出し時に指定されたシグナル集合のシ"
7618 "グナルの一つが呼び出し元に 配送されるまで停止 (block) する。 B<read>(2)  が返"
7619 "すバッファにはシグナルに関する情報を格納した構造体が入っている。"
7620
7621 #. type: SS
7622 #: build/C/man7/signal.7:170
7623 #, no-wrap
7624 msgid "Signal mask and pending signals"
7625 msgstr "シグナルマスクと処理待ちシグナル"
7626
7627 #. type: Plain text
7628 #: build/C/man7/signal.7:177
7629 msgid ""
7630 "A signal may be I<blocked>, which means that it will not be delivered until "
7631 "it is later unblocked.  Between the time when it is generated and when it is "
7632 "delivered a signal is said to be I<pending>."
7633 msgstr ""
7634 "シグナルは I<ブロック (block)> されることがある。ブロックされると、そのシグナ"
7635 "ルは その後ブロックを解除されるまで配送されなくなる。 シグナルが生成されてか"
7636 "ら配送されるまでの間、そのシグナルは I<処理待ち (pending)> であると呼ばれる。"
7637
7638 #. type: Plain text
7639 #: build/C/man7/signal.7:186
7640 msgid ""
7641 "Each thread in a process has an independent I<signal mask>, which indicates "
7642 "the set of signals that the thread is currently blocking.  A thread can "
7643 "manipulate its signal mask using B<pthread_sigmask>(3).  In a traditional "
7644 "single-threaded application, B<sigprocmask>(2)  can be used to manipulate "
7645 "the signal mask."
7646 msgstr ""
7647 "プロセス内の各スレッドは、それぞれ独立な I<シグナルマスク (signal mask)> を持"
7648 "つ。シグナルマスクはそのスレッドが現在ブロックしている シグナル集合を示すもの"
7649 "である。 スレッドは、 B<pthread_sigmask>(3)  を使って自分のシグナルマスクを操"
7650 "作できる。 伝統的なシングルスレッドのアプリケーションでは、 "
7651 "B<sigprocmask>(2)  を使って、シグナルマスクを操作できる。"
7652
7653 #. type: Plain text
7654 #: build/C/man7/signal.7:192 build/C/man2/sigprocmask.2:126
7655 msgid ""
7656 "A child created via B<fork>(2)  inherits a copy of its parent's signal mask; "
7657 "the signal mask is preserved across B<execve>(2)."
7658 msgstr ""
7659 "B<fork>(2)  経由で作成された子プロセスは親プロセスのシグナルマスクのコピーを"
7660 "継承する。 B<execve>(2)  の前後でシグナルマスクは保持される。"
7661
7662 #. type: Plain text
7663 #: build/C/man7/signal.7:209
7664 msgid ""
7665 "A signal may be generated (and thus pending)  for a process as a whole (e."
7666 "g., when sent using B<kill>(2))  or for a specific thread (e.g., certain "
7667 "signals, such as B<SIGSEGV> and B<SIGFPE>, generated as a consequence of "
7668 "executing a specific machine-language instruction are thread directed, as "
7669 "are signals targeted at a specific thread using B<pthread_kill>(3)).  A "
7670 "process-directed signal may be delivered to any one of the threads that does "
7671 "not currently have the signal blocked.  If more than one of the threads has "
7672 "the signal unblocked, then the kernel chooses an arbitrary thread to which "
7673 "to deliver the signal."
7674 msgstr ""
7675 "生成されるシグナル (したがって処理待ちとなるシグナル) には、 プロセス全体宛て"
7676 "と特定のスレッド宛てがある。 例えば、プロセス全体宛てのシグナルは "
7677 "B<kill>(2)  を使って送信される。 特定のマシン語の命令の実行の結果として生成さ"
7678 "れる、 B<SIGSEGV> や B<SIGFPE> などのシグナルは、スレッド宛てとなる。 また、 "
7679 "B<pthread_kill>(3)  を使って特定のスレッド宛てに生成されたシグナルも スレッド"
7680 "宛てとなる。 プロセス宛てのシグナルは、そのシグナルをブロックしていないスレッ"
7681 "ドのうち いずれかの一つに配送することができる。そのシグナルをブロックしていな"
7682 "い スレッドが複数ある場合、シグナルを配送するスレッドはカーネルが 無作為に選"
7683 "択する。"
7684
7685 #. type: Plain text
7686 #: build/C/man7/signal.7:216
7687 msgid ""
7688 "A thread can obtain the set of signals that it currently has pending using "
7689 "B<sigpending>(2).  This set will consist of the union of the set of pending "
7690 "process-directed signals and the set of signals pending for the calling "
7691 "thread."
7692 msgstr ""
7693 "スレッドは、 B<sigpending>(2)  を使って、現在処理待ちのシグナル集合を取得する"
7694 "ことができる。 この集合は、プロセス宛ての処理待ちシグナルと 呼び出したスレッ"
7695 "ド宛てのシグナルの両方から構成される。"
7696
7697 #. type: Plain text
7698 #: build/C/man7/signal.7:222 build/C/man2/sigpending.2:85
7699 msgid ""
7700 "A child created via B<fork>(2)  initially has an empty pending signal set; "
7701 "the pending signal set is preserved across an B<execve>(2)."
7702 msgstr ""
7703 "B<fork>(2)  経由で作成された子プロセスでは、処理待ちのシグナル集合は空の集合"
7704 "で初期化される。 B<execve>(2)  の前後で、処理待ちのシグナル集合は保持される。"
7705
7706 #. type: SS
7707 #: build/C/man7/signal.7:222
7708 #, no-wrap
7709 msgid "Standard signals"
7710 msgstr "標準シグナル"
7711
7712 #. type: Plain text
7713 #: build/C/man7/signal.7:234
7714 msgid ""
7715 "Linux supports the standard signals listed below.  Several signal numbers "
7716 "are architecture-dependent, as indicated in the \"Value\" column.  (Where "
7717 "three values are given, the first one is usually valid for alpha and sparc, "
7718 "the middle one for x86, arm, and most other architectures, and the last one "
7719 "for mips.  (Values for parisc are I<not> shown; see the Linux kernel source "
7720 "for signal numbering on that architecture.)  A - denotes that a signal is "
7721 "absent on the corresponding architecture.)"
7722 msgstr ""
7723 "Linux は以下に示す標準シグナルに対応している。シグナル番号の一部はアーキテク"
7724 "チャ依存であり、\"値\" 欄に示す通りである。 (3つの値が書かれているものは、 1"
7725 "つ目が alpha と sparc で通常有効な値、 真ん中が x86, arm や他のほとんどのアー"
7726 "キテクチャでの有効な値、最後が mips での値である。 (parisc での値は記載されて"
7727 "I<いない>。 parisc でのシグナル番号は Linux カーネルソースを参照してほし"
7728 "い)。 - はそのアーキテクチャにおいて対応するシグナルがないことを示す。)"
7729
7730 #. type: Plain text
7731 #: build/C/man7/signal.7:236
7732 msgid "First the signals described in the original POSIX.1-1990 standard."
7733 msgstr "最初に、POSIX.1-1990 に定義されているシグナルを示す。"
7734
7735 #. type: tbl table
7736 #: build/C/man7/signal.7:240 build/C/man7/signal.7:276
7737 #: build/C/man7/signal.7:305
7738 #, no-wrap
7739 msgid "Signal\tValue\tAction\tComment\n"
7740 msgstr "シグナル\t値\t動作\tコメント\n"
7741
7742 #. type: tbl table
7743 #: build/C/man7/signal.7:241
7744 #, no-wrap
7745 msgid "SIGHUP\t\\01\tTerm\tHangup detected on controlling terminal\n"
7746 msgstr "SIGHUP\t\\01\tTerm\t制御端末(controlling terminal)のハングアップ検出、\n"
7747
7748 #. type: tbl table
7749 #: build/C/man7/signal.7:242
7750 #, no-wrap
7751 msgid "\t\t\tor death of controlling process\n"
7752 msgstr "\t\t\tまたは制御しているプロセスの死\n"
7753
7754 #. type: tbl table
7755 #: build/C/man7/signal.7:243
7756 #, no-wrap
7757 msgid "SIGINT\t\\02\tTerm\tInterrupt from keyboard\n"
7758 msgstr "SIGINT\t\\02\tTerm\tキーボードからの割り込み (Interrupt)\n"
7759
7760 #. type: tbl table
7761 #: build/C/man7/signal.7:244
7762 #, no-wrap
7763 msgid "SIGQUIT\t\\03\tCore\tQuit from keyboard\n"
7764 msgstr "SIGQUIT\t\\03\tCore\tキーボードによる中止 (Quit)\n"
7765
7766 #. type: tbl table
7767 #: build/C/man7/signal.7:245
7768 #, no-wrap
7769 msgid "SIGILL\t\\04\tCore\tIllegal Instruction\n"
7770 msgstr "SIGILL\t\\04\tCore\t不正な命令\n"
7771
7772 #. type: tbl table
7773 #: build/C/man7/signal.7:246
7774 #, no-wrap
7775 msgid "SIGABRT\t\\06\tCore\tAbort signal from B<abort>(3)\n"
7776 msgstr "SIGABRT\t\\06\tCore\tB<abort>(3) からの中断 (Abort) シグナル\n"
7777
7778 #. type: tbl table
7779 #: build/C/man7/signal.7:247
7780 #, no-wrap
7781 msgid "SIGFPE\t\\08\tCore\tFloating point exception\n"
7782 msgstr "SIGFPE\t\\08\tCore\t浮動小数点例外\n"
7783
7784 #. type: tbl table
7785 #: build/C/man7/signal.7:248
7786 #, no-wrap
7787 msgid "SIGKILL\t\\09\tTerm\tKill signal\n"
7788 msgstr "SIGKILL\t\\09\tTerm\tKill シグナル\n"
7789
7790 #. type: tbl table
7791 #: build/C/man7/signal.7:249
7792 #, no-wrap
7793 msgid "SIGSEGV\t11\tCore\tInvalid memory reference\n"
7794 msgstr "SIGSEGV\t11\tCore\t不正なメモリ参照\n"
7795
7796 #. type: tbl table
7797 #: build/C/man7/signal.7:250
7798 #, no-wrap
7799 msgid "SIGPIPE\t13\tTerm\tBroken pipe: write to pipe with no\n"
7800 msgstr "SIGPIPE\t13\tTerm\tパイプ破壊:\n"
7801
7802 #. type: tbl table
7803 #: build/C/man7/signal.7:251
7804 #, no-wrap
7805 msgid "\t\t\treaders\n"
7806 msgstr "\t\t\t読み手の無いパイプへの書き出し\n"
7807
7808 #. type: tbl table
7809 #: build/C/man7/signal.7:252
7810 #, no-wrap
7811 msgid "SIGALRM\t14\tTerm\tTimer signal from B<alarm>(2)\n"
7812 msgstr "SIGALRM\t14\tTerm\tB<alarm>(2) からのタイマーシグナル\n"
7813
7814 #. type: tbl table
7815 #: build/C/man7/signal.7:253
7816 #, no-wrap
7817 msgid "SIGTERM\t15\tTerm\tTermination signal\n"
7818 msgstr "SIGTERM\t15\tTerm\t終了 (termination) シグナル\n"
7819
7820 #. type: tbl table
7821 #: build/C/man7/signal.7:254
7822 #, no-wrap
7823 msgid "SIGUSR1\t30,10,16\tTerm\tUser-defined signal 1\n"
7824 msgstr "SIGUSR1\t30,10,16\tTerm\tユーザ定義シグナル 1\n"
7825
7826 #. type: tbl table
7827 #: build/C/man7/signal.7:255
7828 #, no-wrap
7829 msgid "SIGUSR2\t31,12,17\tTerm\tUser-defined signal 2\n"
7830 msgstr "SIGUSR2\t31,12,17\tTerm\tユーザ定義シグナル 2\n"
7831
7832 #. type: tbl table
7833 #: build/C/man7/signal.7:256
7834 #, no-wrap
7835 msgid "SIGCHLD\t20,17,18\tIgn\tChild stopped or terminated\n"
7836 msgstr "SIGCHLD\t20,17,18\tIgn\t子プロセスの一時停止 (stop) または終了\n"
7837
7838 #. type: tbl table
7839 #: build/C/man7/signal.7:257
7840 #, no-wrap
7841 msgid "SIGCONT\t19,18,25\tCont\tContinue if stopped\n"
7842 msgstr "SIGCONT\t19,18,25\tCont\t一時停止 (stop) からの再開\n"
7843
7844 #. type: tbl table
7845 #: build/C/man7/signal.7:258
7846 #, no-wrap
7847 msgid "SIGSTOP\t17,19,23\tStop\tStop process\n"
7848 msgstr "SIGSTOP\t17,19,23\tStop\tプロセスの一時停止 (stop)\n"
7849
7850 #. type: tbl table
7851 #: build/C/man7/signal.7:259
7852 #, no-wrap
7853 msgid "SIGTSTP\t18,20,24\tStop\tStop typed at terminal\n"
7854 msgstr "SIGTSTP\t18,20,24\tStop\t端末より入力された一時停止 (stop)\n"
7855
7856 #. type: tbl table
7857 #: build/C/man7/signal.7:260
7858 #, no-wrap
7859 msgid "SIGTTIN\t21,21,26\tStop\tTerminal input for background process\n"
7860 msgstr "SIGTTIN\t21,21,26\tStop\tバックグランドプロセスの端末入力\n"
7861
7862 #. type: tbl table
7863 #: build/C/man7/signal.7:261
7864 #, no-wrap
7865 msgid "SIGTTOU\t22,22,27\tStop\tTerminal output for background process\n"
7866 msgstr "SIGTTOU\t22,22,27\tStop\tバックグランドプロセスの端末出力\n"
7867
7868 #. type: Plain text
7869 #: build/C/man7/signal.7:269
7870 msgid ""
7871 "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught, blocked, or ignored."
7872 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> はキャッチ、ブロック、無視できない。"
7873
7874 #. type: Plain text
7875 #: build/C/man7/signal.7:272
7876 msgid ""
7877 "Next the signals not in the POSIX.1-1990 standard but described in SUSv2 and "
7878 "POSIX.1-2001."
7879 msgstr ""
7880 "次に、 POSIX.1-1990 標準にはないが、 SUSv2 と POSIX.1-2001 に記述されているシ"
7881 "グナルを示す。"
7882
7883 #. type: tbl table
7884 #: build/C/man7/signal.7:277
7885 #, no-wrap
7886 msgid "SIGBUS\t10,7,10\tCore\tBus error (bad memory access)\n"
7887 msgstr "SIGBUS\t10,7,10\tCore\tバスエラー (不正なメモリアクセス)\n"
7888
7889 #. type: tbl table
7890 #: build/C/man7/signal.7:278
7891 #, no-wrap
7892 msgid "SIGPOLL\t\tTerm\tPollable event (Sys V).\n"
7893 msgstr "SIGPOLL\t\tTerm\tポーリング可能なイベント (Sys V)。\n"
7894
7895 #. type: tbl table
7896 #: build/C/man7/signal.7:279
7897 #, no-wrap
7898 msgid "\t\t\tSynonym for B<SIGIO>\n"
7899 msgstr "\t\t\tB<SIGIO> と同義\n"
7900
7901 #. type: tbl table
7902 #: build/C/man7/signal.7:280
7903 #, no-wrap
7904 msgid "SIGPROF\t27,27,29\tTerm\tProfiling timer expired\n"
7905 msgstr "SIGPROF\t27,27,29\tTerm\tprofiling タイマの時間切れ\n"
7906
7907 #. type: tbl table
7908 #: build/C/man7/signal.7:281
7909 #, no-wrap
7910 msgid "SIGSYS\t12,31,12\tCore\tBad argument to routine (SVr4)\n"
7911 msgstr "SIGSYS\t12,31,12\tCore\tルーチンへの引き数が不正 (SVr4)\n"
7912
7913 #. type: tbl table
7914 #: build/C/man7/signal.7:282
7915 #, no-wrap
7916 msgid "SIGTRAP\t5\tCore\tTrace/breakpoint trap\n"
7917 msgstr "SIGTRAP\t5\tCore\tトレース/ブレークポイント トラップ\n"
7918
7919 #. type: tbl table
7920 #: build/C/man7/signal.7:283
7921 #, no-wrap
7922 msgid "SIGURG\t16,23,21\tIgn\tUrgent condition on socket (4.2BSD)\n"
7923 msgstr "SIGURG\t16,23,21\tIgn\tソケットの緊急事態 (urgent condition) (4.2BSD)\n"
7924
7925 #. type: tbl table
7926 #: build/C/man7/signal.7:284
7927 #, no-wrap
7928 msgid "SIGVTALRM\t26,26,28\tTerm\tVirtual alarm clock (4.2BSD)\n"
7929 msgstr "SIGVTALRM\t26,26,28\tTerm\t仮想アラームクロック (4.2BSD)\n"
7930
7931 #. type: tbl table
7932 #: build/C/man7/signal.7:285
7933 #, no-wrap
7934 msgid "SIGXCPU\t24,24,30\tCore\tCPU time limit exceeded (4.2BSD)\n"
7935 msgstr "SIGXCPU\t24,24,30\tCore\tCPU時間制限超過 (4.2BSD)\n"
7936
7937 #. type: tbl table
7938 #: build/C/man7/signal.7:286
7939 #, no-wrap
7940 msgid "SIGXFSZ\t25,25,31\tCore\tFile size limit exceeded (4.2BSD)\n"
7941 msgstr "SIGXFSZ\t25,25,31\tCore\tファイルサイズ制限の超過 (4.2BSD)\n"
7942
7943 #. type: Plain text
7944 #: build/C/man7/signal.7:299
7945 msgid ""
7946 "Up to and including Linux 2.2, the default behavior for B<SIGSYS>, "
7947 "B<SIGXCPU>, B<SIGXFSZ>, and (on architectures other than SPARC and MIPS)  "
7948 "B<SIGBUS> was to terminate the process (without a core dump).  (On some "
7949 "other UNIX systems the default action for B<SIGXCPU> and B<SIGXFSZ> is to "
7950 "terminate the process without a core dump.)  Linux 2.4 conforms to the "
7951 "POSIX.1-2001 requirements for these signals, terminating the process with a "
7952 "core dump."
7953 msgstr ""
7954 "Linux 2.2 以前では、 B<SIGSYS>, B<SIGXCPU>, B<SIGXFSZ> および SPARC と MIPS "
7955 "以外のアーキテクチャでの B<SIGBUS> のデフォルトの振る舞いは (コアダンプ出力な"
7956 "しの) プロセス終了であった。 (他の UNIX システムにも B<SIGXCPU> と "
7957 "B<SIGXFSZ> のデフォルトの動作がコアダンプなしのプロセス終了のものがある。)  "
7958 "Linux 2.4 では、POSIX.1-2001 での要求仕様に準拠して、 これらのシグナルで、プ"
7959 "ロセスを終了させ、コアダンプを出力する ようになっている。"
7960
7961 #. type: Plain text
7962 #: build/C/man7/signal.7:301
7963 msgid "Next various other signals."
7964 msgstr "次にその他の各種シグナルを示す。"
7965
7966 #. type: tbl table
7967 #: build/C/man7/signal.7:306
7968 #, no-wrap
7969 msgid "SIGIOT\t6\tCore\tIOT trap. A synonym for B<SIGABRT>\n"
7970 msgstr "SIGIOT\t6\tCore\tIOT トラップ。B<SIGABRT> と同義\n"
7971
7972 #. type: tbl table
7973 #: build/C/man7/signal.7:307
7974 #, no-wrap
7975 msgid "SIGEMT\t7,-,7\tTerm\n"
7976 msgstr "SIGEMT\t7,-,7\tTerm\n"
7977
7978 #. type: tbl table
7979 #: build/C/man7/signal.7:308
7980 #, no-wrap
7981 msgid "SIGSTKFLT\t-,16,-\tTerm\tStack fault on coprocessor (unused)\n"
7982 msgstr "SIGSTKFLT\t-,16,-\tA\t数値演算プロセッサにおけるスタックフォルト (未使用)\n"
7983
7984 #. type: tbl table
7985 #: build/C/man7/signal.7:309
7986 #, no-wrap
7987 msgid "SIGIO\t23,29,22\tTerm\tI/O now possible (4.2BSD)\n"
7988 msgstr "SIGIO\t23,29,22\tTerm\t入出力が可能になった (4.2BSD)\n"
7989
7990 #. type: tbl table
7991 #: build/C/man7/signal.7:310
7992 #, no-wrap
7993 msgid "SIGCLD\t-,-,18\tIgn\tA synonym for B<SIGCHLD>\n"
7994 msgstr "SIGCLD\t-,-,18\tIgn\tB<SIGCHLD> と同義\n"
7995
7996 #. type: tbl table
7997 #: build/C/man7/signal.7:311
7998 #, no-wrap
7999 msgid "SIGPWR\t29,30,19\tTerm\tPower failure (System V)\n"
8000 msgstr "SIGPWR\t29,30,19\tTerm\t電源喪失 (Power failure) (System V)\n"
8001
8002 #. type: tbl table
8003 #: build/C/man7/signal.7:312
8004 #, no-wrap
8005 msgid "SIGINFO\t29,-,-\t\tA synonym for B<SIGPWR>\n"
8006 msgstr "SIGINFO\t29,-,-\t \tB<SIGPWR> と同義\n"
8007
8008 #. type: tbl table
8009 #: build/C/man7/signal.7:313
8010 #, no-wrap
8011 msgid "SIGLOST\t-,-,-\tTerm\tFile lock lost (unused)\n"
8012 msgstr "SIGLOST\t-,-,-\tTerm\tファイルロックが失われた (未使用)\n"
8013
8014 #. type: tbl table
8015 #: build/C/man7/signal.7:314
8016 #, no-wrap
8017 msgid "SIGWINCH\t28,28,20\tIgn\tWindow resize signal (4.3BSD, Sun)\n"
8018 msgstr "SIGWINCH\t28,28,20\tIgn\tウィンドウ リサイズ シグナル (4.3BSD, Sun)\n"
8019
8020 #. type: tbl table
8021 #: build/C/man7/signal.7:315
8022 #, no-wrap
8023 msgid "SIGUNUSED\t-,31,-\tCore\tSynonymous with B<SIGSYS>\n"
8024 msgstr "SIGUNUSED\t-,31,-\tCore\tB<SIGSYS> と同義\n"
8025
8026 #. type: Plain text
8027 #: build/C/man7/signal.7:325
8028 msgid ""
8029 "(Signal 29 is B<SIGINFO> / B<SIGPWR> on an alpha but B<SIGLOST> on a sparc.)"
8030 msgstr ""
8031 "(シグナル 29 は alpha では B<SIGINFO> / B<SIGPWR> だが、sparc では "
8032 "B<SIGLOST> である。)"
8033
8034 #. type: Plain text
8035 #: build/C/man7/signal.7:331
8036 msgid ""
8037 "B<SIGEMT> is not specified in POSIX.1-2001, but nevertheless appears on most "
8038 "other UNIX systems, where its default action is typically to terminate the "
8039 "process with a core dump."
8040 msgstr ""
8041 "B<SIGEMT> は POSIX.1-2001 に規定されていないが、 その他の多くの UNIX システム"
8042 "に存在する。 デフォルトの動作は多くの場合、コアダンプ出力を伴うプロセスの終了"
8043 "である。"
8044
8045 #. type: Plain text
8046 #: build/C/man7/signal.7:335
8047 msgid ""
8048 "B<SIGPWR> (which is not specified in POSIX.1-2001) is typically ignored by "
8049 "default on those other UNIX systems where it appears."
8050 msgstr ""
8051 "B<SIGPWR> は (POSIX.1-2001 に規定されていないが) このシグナルが存在する 他の "
8052 "UNIX システムでは多くの場合、デフォルト動作は無視である。"
8053
8054 #. type: Plain text
8055 #: build/C/man7/signal.7:339
8056 msgid ""
8057 "B<SIGIO> (which is not specified in POSIX.1-2001) is ignored by default on "
8058 "several other UNIX systems."
8059 msgstr ""
8060 "B<SIGIO> は (POSIX.1-2001 に規定されていないが) いくつかの他の UNIX システム"
8061 "では デフォルト動作は無視である。"
8062
8063 #.  parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31
8064 #. type: Plain text
8065 #: build/C/man7/signal.7:346
8066 msgid ""
8067 "Where defined, B<SIGUNUSED> is synonymous with B<SIGSYS> on most "
8068 "architectures."
8069 msgstr ""
8070 "B<SIGUNUSED> が定義されている場合には、ほとんどのアーキテクチャで B<SIGSYS> "
8071 "の同義語となっている。"
8072
8073 #. type: SS
8074 #: build/C/man7/signal.7:346
8075 #, no-wrap
8076 msgid "Real-time signals"
8077 msgstr "リアルタイムシグナル"
8078
8079 #. type: Plain text
8080 #: build/C/man7/signal.7:356
8081 msgid ""
8082 "Linux supports real-time signals as originally defined in the POSIX.1b real-"
8083 "time extensions (and now included in POSIX.1-2001).  The range of supported "
8084 "real-time signals is defined by the macros B<SIGRTMIN> and B<SIGRTMAX>.  "
8085 "POSIX.1-2001 requires that an implementation support at least "
8086 "B<_POSIX_RTSIG_MAX> (8) real-time signals."
8087 msgstr ""
8088 "Linux はリアルタイムシグナルをサポートしている。 リアルタイムシグナルは元々 "
8089 "POSIX.1b のリアルタイム拡張で定義されて いるものであり、現在では "
8090 "POSIX.1-2001 に含まれている。 対応しているリアルタイムシグナルの範囲は、マク"
8091 "ロ B<SIGRTMIN> と B<SIGRTMAX> で定義される。 POSIX.1-2001 では、少なくとも "
8092 "B<_POSIX_RTSIG_MAX> (8) 個のリアルタイムシグナルに対応した実装が要求されてい"
8093 "る。"
8094
8095 #. type: Plain text
8096 #: build/C/man7/signal.7:378
8097 msgid ""
8098 "The Linux kernel supports a range of 32 different real-time signals, "
8099 "numbered 33 to 64.  However, the glibc POSIX threads implementation "
8100 "internally uses two (for NPTL) or three (for LinuxThreads) real-time signals "
8101 "(see B<pthreads>(7)), and adjusts the value of B<SIGRTMIN> suitably (to 34 "
8102 "or 35).  Because the range of available real-time signals varies according "
8103 "to the glibc threading implementation (and this variation can occur at run "
8104 "time according to the available kernel and glibc), and indeed the range of "
8105 "real-time signals varies across UNIX systems, programs should I<never refer "
8106 "to real-time signals using hard-coded numbers>, but instead should always "
8107 "refer to real-time signals using the notation B<SIGRTMIN>+n, and include "
8108 "suitable (run-time) checks that B<SIGRTMIN>+n does not exceed B<SIGRTMAX>."
8109 msgstr ""
8110 "Linux は、32 個の異なるリアルタイムシグナルに対応しており、 その番号は 33 か"
8111 "ら 64 である。 しかしながら、glibc の POSIX スレッド実装は、 内部で 2個 "
8112 "(NPTL の場合) か 3個 (LinuxThreads の場合) の リアルタイムシグナルを使用して"
8113 "おり (B<pthreads>(7)  参照)、 B<SIGRTMIN> の値を適切に (34 か 35 に) 調整す"
8114 "る。 利用可能なリアルタイムシグナルの範囲は glibc のスレッド実装により 異なる"
8115 "し (使用するカーネルと glibc により実行時にも変化する)、 UNIX システムの種類"
8116 "によっても異なる。したがって、 プログラムでは「ハードコーディングした数字を"
8117 "使ってのリアルタイムシグナルの 参照は決してすべきではなく」、代わりに "
8118 "B<SIGRTMIN>+n の形で参照すべきである。また、 B<SIGRTMIN>+n が B<SIGRTMAX> を"
8119 "超えていないかのチェックを (実行時に) 適切に行うべきである。"
8120
8121 #. type: Plain text
8122 #: build/C/man7/signal.7:382
8123 msgid ""
8124 "Unlike standard signals, real-time signals have no predefined meanings: the "
8125 "entire set of real-time signals can be used for application-defined purposes."
8126 msgstr ""
8127 "標準シグナルと異なり、リアルタイムシグナルには 事前に定義された意味はない。 "
8128 "リアルタイムシグナルの全部をアプリケーションで定義した用途に使える。"
8129
8130 #. type: Plain text
8131 #: build/C/man7/signal.7:385
8132 msgid ""
8133 "The default action for an unhandled real-time signal is to terminate the "
8134 "receiving process."
8135 msgstr ""
8136 "ハンドリングしないリアルタイムシグナルのデフォルトの動作は 受信したプロセスの"
8137 "終了である。"
8138
8139 #. type: Plain text
8140 #: build/C/man7/signal.7:387
8141 msgid "Real-time signals are distinguished by the following:"
8142 msgstr "リアルタイムシグナルは以下の特徴がある:"
8143
8144 #. type: Plain text
8145 #: build/C/man7/signal.7:391
8146 msgid ""
8147 "Multiple instances of real-time signals can be queued.  By contrast, if "
8148 "multiple instances of a standard signal are delivered while that signal is "
8149 "currently blocked, then only one instance is queued."
8150 msgstr ""
8151 "リアルタイムシグナルは複数の実体をキューに入れることができる。 一方、標準シグ"
8152 "ナルの場合、そのシグナルがブロックされている間に 同じシグナルの複数のインスタ"
8153 "ンスが配送されても、 1 つだけがキューに入れられる。"
8154
8155 #. type: Plain text
8156 #: build/C/man7/signal.7:411
8157 msgid ""
8158 "If the signal is sent using B<sigqueue>(3), an accompanying value (either an "
8159 "integer or a pointer) can be sent with the signal.  If the receiving process "
8160 "establishes a handler for this signal using the B<SA_SIGINFO> flag to "
8161 "B<sigaction>(2), then it can obtain this data via the I<si_value> field of "
8162 "the I<siginfo_t> structure passed as the second argument to the handler.  "
8163 "Furthermore, the I<si_pid> and I<si_uid> fields of this structure can be "
8164 "used to obtain the PID and real user ID of the process sending the signal."
8165 msgstr ""
8166 "シグナルが B<sigqueue>(3)  を用いて送信された場合、 付属データ (整数かポイン"
8167 "タ) をシグナルと共に送信できる。 受信側プロセスが B<sigaction>(2)  に "
8168 "B<SA_SIGINFO> フラグを指定してシグナルハンドラを設定した場合、 このデータは "
8169 "I<siginfo_t> 構造体の I<si_value> フィールド経由でハンドラの第 2 引き数として"
8170 "渡され、 利用することができる。 さらに、この構造体の I<si_pid> と I<si_uid> "
8171 "フィールドでシグナルを送信したプロセスの PID と実ユーザ ID を 得ることができ"
8172 "る。"
8173
8174 #. type: Plain text
8175 #: build/C/man7/signal.7:420
8176 msgid ""
8177 "Real-time signals are delivered in a guaranteed order.  Multiple real-time "
8178 "signals of the same type are delivered in the order they were sent.  If "
8179 "different real-time signals are sent to a process, they are delivered "
8180 "starting with the lowest-numbered signal.  (I.e., low-numbered signals have "
8181 "highest priority.)  By contrast, if multiple standard signals are pending "
8182 "for a process, the order in which they are delivered is unspecified."
8183 msgstr ""
8184 "リアルタイムシグナルでは配送される順序が保証される。 同じタイプのリアルタイム"
8185 "シグナルは送信された順番に到着する。 異なるリアルタイムシグナルが一つのプロセ"
8186 "スに送信された場合、 番号の小さいシグナルから先に到着する。 (つまり小さい番号"
8187 "のシグナルが高い優先順位を持つ。)  対照的に、一つのプロセスに対して複数の標準"
8188 "シグナルが処理待ちとなった場合、 これらのシグナルが配送される順序は不定であ"
8189 "る。"
8190
8191 #. type: Plain text
8192 #: build/C/man7/signal.7:425
8193 msgid ""
8194 "If both standard and real-time signals are pending for a process, POSIX "
8195 "leaves it unspecified which is delivered first.  Linux, like many other "
8196 "implementations, gives priority to standard signals in this case."
8197 msgstr ""
8198 "一つのプロセスに対して標準シグナルとリアルタイムシグナルの両方が 処理待ちの場"
8199 "合、POSIX はどちらが先に配送されるかを規定していない。 Linux では、他の多くの"
8200 "実装と同様、このような場合には 標準シグナルが優先される。"
8201
8202 #. type: Plain text
8203 #: build/C/man7/signal.7:448
8204 msgid ""
8205 "According to POSIX, an implementation should permit at least "
8206 "B<_POSIX_SIGQUEUE_MAX> (32) real-time signals to be queued to a process.  "
8207 "However, Linux does things differently.  In kernels up to and including "
8208 "2.6.7, Linux imposes a system-wide limit on the number of queued real-time "
8209 "signals for all processes.  This limit can be viewed and (with privilege) "
8210 "changed via the I</proc/sys/kernel/rtsig-max> file.  A related file, I</proc/"
8211 "sys/kernel/rtsig-nr>, can be used to find out how many real-time signals are "
8212 "currently queued.  In Linux 2.6.8, these I</proc> interfaces were replaced "
8213 "by the B<RLIMIT_SIGPENDING> resource limit, which specifies a per-user limit "
8214 "for queued signals; see B<setrlimit>(2)  for further details."
8215 msgstr ""
8216 "POSIX によれば、1 プロセス毎に最低 B<_POSIX_SIGQUEUE_MAX> (32) 個のリアルタイ"
8217 "ムシグナルをキューに入れられるべきとしている。 しかし、 Linux では違った実装"
8218 "になっている。カーネル 2.6.7 までは (2.6.7 を含む)、全プロセスでキューに入っ"
8219 "ているリアルタイムシグナル の数の合計についてシステム全体での制限がある。 こ"
8220 "の制限は I</proc/sys/kernel/rtsig-max> ファイルで見ることができ、 (権限があれ"
8221 "ば) 変更もできる。 関係するファイルとして、 I</proc/sys/kernel/rtsig-nr> を見"
8222 "ることで、いくつのリアルタイムシグナルが現在キューに入っているかを 知ることが"
8223 "できる。 Linux 2.6.8 で、これらの I</proc> 経由のインターフェースは、 "
8224 "B<RLIMIT_SIGPENDING> リソース制限に置き換えられた。 これは、キューに入るシグ"
8225 "ナル数に関してユーザ単位に 上限を指定するものである。 詳しくは "
8226 "B<setrlimit>(2)  を参照。"
8227
8228 #. type: SS
8229 #: build/C/man7/signal.7:448
8230 #, no-wrap
8231 msgid "Async-signal-safe functions"
8232 msgstr "非同期シグナルで安全な関数 (async-signal-safe functions)"
8233
8234 #. type: Plain text
8235 #: build/C/man7/signal.7:457
8236 msgid ""
8237 "A signal handler function must be very careful, since processing elsewhere "
8238 "may be interrupted at some arbitrary point in the execution of the program.  "
8239 "POSIX has the concept of \"safe function\".  If a signal interrupts the "
8240 "execution of an unsafe function, and I<handler> calls an unsafe function, "
8241 "then the behavior of the program is undefined."
8242 msgstr ""
8243 "シグナルハンドラ関数には非常に注意しなければならない。 他の場所の処理はプログ"
8244 "ラム実行の任意の箇所で中断される可能性があるためである。 POSIX には「安全な関"
8245 "数 (safe function)」という概念がある。 シグナルが安全でない関数の実行を中断"
8246 "し、かつ I<handler> が安全でない関数を呼び出した場合、プログラムの挙動は未定"
8247 "義である。"
8248
8249 #. type: Plain text
8250 #: build/C/man7/signal.7:461
8251 msgid ""
8252 "POSIX.1-2004 (also known as POSIX.1-2001 Technical Corrigendum 2)  requires "
8253 "an implementation to guarantee that the following functions can be safely "
8254 "called inside a signal handler:"
8255 msgstr ""
8256 "POSIX.1-2004 (POSIX.1-2001 Technical Corrigendum (正誤表) 2 とも言う) では、 "
8257 "シグナルハンドラ内での安全な呼び出しを保証することが必須の関数として 以下が規"
8258 "定されている。"
8259
8260 #. type: Plain text
8261 #: build/C/man7/signal.7:582
8262 #, no-wrap
8263 msgid ""
8264 "_Exit()\n"
8265 "_exit()\n"
8266 "abort()\n"
8267 "accept()\n"
8268 "access()\n"
8269 "aio_error()\n"
8270 "aio_return()\n"
8271 "aio_suspend()\n"
8272 "alarm()\n"
8273 "bind()\n"
8274 "cfgetispeed()\n"
8275 "cfgetospeed()\n"
8276 "cfsetispeed()\n"
8277 "cfsetospeed()\n"
8278 "chdir()\n"
8279 "chmod()\n"
8280 "chown()\n"
8281 "clock_gettime()\n"
8282 "close()\n"
8283 "connect()\n"
8284 "creat()\n"
8285 "dup()\n"
8286 "dup2()\n"
8287 "execle()\n"
8288 "execve()\n"
8289 "fchmod()\n"
8290 "fchown()\n"
8291 "fcntl()\n"
8292 "fdatasync()\n"
8293 "fork()\n"
8294 "fpathconf()\n"
8295 "fstat()\n"
8296 "fsync()\n"
8297 "ftruncate()\n"
8298 "getegid()\n"
8299 "geteuid()\n"
8300 "getgid()\n"
8301 "getgroups()\n"
8302 "getpeername()\n"
8303 "getpgrp()\n"
8304 "getpid()\n"
8305 "getppid()\n"
8306 "getsockname()\n"
8307 "getsockopt()\n"
8308 "getuid()\n"
8309 "kill()\n"
8310 "link()\n"
8311 "listen()\n"
8312 "lseek()\n"
8313 "lstat()\n"
8314 "mkdir()\n"
8315 "mkfifo()\n"
8316 "open()\n"
8317 "pathconf()\n"
8318 "pause()\n"
8319 "pipe()\n"
8320 "poll()\n"
8321 "posix_trace_event()\n"
8322 "pselect()\n"
8323 "raise()\n"
8324 "read()\n"
8325 "readlink()\n"
8326 "recv()\n"
8327 "recvfrom()\n"
8328 "recvmsg()\n"
8329 "rename()\n"
8330 "rmdir()\n"
8331 "select()\n"
8332 "sem_post()\n"
8333 "send()\n"
8334 "sendmsg()\n"
8335 "sendto()\n"
8336 "setgid()\n"
8337 "setpgid()\n"
8338 "setsid()\n"
8339 "setsockopt()\n"
8340 "setuid()\n"
8341 "shutdown()\n"
8342 "sigaction()\n"
8343 "sigaddset()\n"
8344 "sigdelset()\n"
8345 "sigemptyset()\n"
8346 "sigfillset()\n"
8347 "sigismember()\n"
8348 "signal()\n"
8349 "sigpause()\n"
8350 "sigpending()\n"
8351 "sigprocmask()\n"
8352 "sigqueue()\n"
8353 "sigset()\n"
8354 "sigsuspend()\n"
8355 "sleep()\n"
8356 "sockatmark()\n"
8357 "socket()\n"
8358 "socketpair()\n"
8359 "stat()\n"
8360 "symlink()\n"
8361 "sysconf()\n"
8362 "tcdrain()\n"
8363 "tcflow()\n"
8364 "tcflush()\n"
8365 "tcgetattr()\n"
8366 "tcgetpgrp()\n"
8367 "tcsendbreak()\n"
8368 "tcsetattr()\n"
8369 "tcsetpgrp()\n"
8370 "time()\n"
8371 "timer_getoverrun()\n"
8372 "timer_gettime()\n"
8373 "timer_settime()\n"
8374 "times()\n"
8375 "umask()\n"
8376 "uname()\n"
8377 "unlink()\n"
8378 "utime()\n"
8379 "wait()\n"
8380 "waitpid()\n"
8381 "write()\n"
8382 msgstr ""
8383 "_Exit()\n"
8384 "_exit()\n"
8385 "abort()\n"
8386 "accept()\n"
8387 "access()\n"
8388 "aio_error()\n"
8389 "aio_return()\n"
8390 "aio_suspend()\n"
8391 "alarm()\n"
8392 "bind()\n"
8393 "cfgetispeed()\n"
8394 "cfgetospeed()\n"
8395 "cfsetispeed()\n"
8396 "cfsetospeed()\n"
8397 "chdir()\n"
8398 "chmod()\n"
8399 "chown()\n"
8400 "clock_gettime()\n"
8401 "close()\n"
8402 "connect()\n"
8403 "creat()\n"
8404 "dup()\n"
8405 "dup2()\n"
8406 "execle()\n"
8407 "execve()\n"
8408 "fchmod()\n"
8409 "fchown()\n"
8410 "fcntl()\n"
8411 "fdatasync()\n"
8412 "fork()\n"
8413 "fpathconf()\n"
8414 "fstat()\n"
8415 "fsync()\n"
8416 "ftruncate()\n"
8417 "getegid()\n"
8418 "geteuid()\n"
8419 "getgid()\n"
8420 "getgroups()\n"
8421 "getpeername()\n"
8422 "getpgrp()\n"
8423 "getpid()\n"
8424 "getppid()\n"
8425 "getsockname()\n"
8426 "getsockopt()\n"
8427 "getuid()\n"
8428 "kill()\n"
8429 "link()\n"
8430 "listen()\n"
8431 "lseek()\n"
8432 "lstat()\n"
8433 "mkdir()\n"
8434 "mkfifo()\n"
8435 "open()\n"
8436 "pathconf()\n"
8437 "pause()\n"
8438 "pipe()\n"
8439 "poll()\n"
8440 "posix_trace_event()\n"
8441 "pselect()\n"
8442 "raise()\n"
8443 "read()\n"
8444 "readlink()\n"
8445 "recv()\n"
8446 "recvfrom()\n"
8447 "recvmsg()\n"
8448 "rename()\n"
8449 "rmdir()\n"
8450 "select()\n"
8451 "sem_post()\n"
8452 "send()\n"
8453 "sendmsg()\n"
8454 "sendto()\n"
8455 "setgid()\n"
8456 "setpgid()\n"
8457 "setsid()\n"
8458 "setsockopt()\n"
8459 "setuid()\n"
8460 "shutdown()\n"
8461 "sigaction()\n"
8462 "sigaddset()\n"
8463 "sigdelset()\n"
8464 "sigemptyset()\n"
8465 "sigfillset()\n"
8466 "sigismember()\n"
8467 "signal()\n"
8468 "sigpause()\n"
8469 "sigpending()\n"
8470 "sigprocmask()\n"
8471 "sigqueue()\n"
8472 "sigset()\n"
8473 "sigsuspend()\n"
8474 "sleep()\n"
8475 "sockatmark()\n"
8476 "socket()\n"
8477 "socketpair()\n"
8478 "stat()\n"
8479 "symlink()\n"
8480 "sysconf()\n"
8481 "tcdrain()\n"
8482 "tcflow()\n"
8483 "tcflush()\n"
8484 "tcgetattr()\n"
8485 "tcgetpgrp()\n"
8486 "tcsendbreak()\n"
8487 "tcsetattr()\n"
8488 "tcsetpgrp()\n"
8489 "time()\n"
8490 "timer_getoverrun()\n"
8491 "timer_gettime()\n"
8492 "timer_settime()\n"
8493 "times()\n"
8494 "umask()\n"
8495 "uname()\n"
8496 "unlink()\n"
8497 "utime()\n"
8498 "wait()\n"
8499 "waitpid()\n"
8500 "write()\n"
8501
8502 #. type: Plain text
8503 #: build/C/man7/signal.7:587
8504 msgid ""
8505 "POSIX.1-2008 removes fpathconf(), pathconf(), and sysconf()  from the above "
8506 "list, and adds the following functions:"
8507 msgstr ""
8508 "POSIX.1-2008 では、上記のリストのうち fpathconf(), pathconf(), sysconf()  が"
8509 "削除され、以下の関数が追加された。"
8510
8511 #. type: Plain text
8512 #: build/C/man7/signal.7:610
8513 #, no-wrap
8514 msgid ""
8515 "execl()\n"
8516 "execv()\n"
8517 "faccessat()\n"
8518 "fchmodat()\n"
8519 "fchownat()\n"
8520 "fexecve()\n"
8521 "fstatat()\n"
8522 "futimens()\n"
8523 "linkat()\n"
8524 "mkdirat()\n"
8525 "mkfifoat()\n"
8526 "mknod()\n"
8527 "mknodat()\n"
8528 "openat()\n"
8529 "readlinkat()\n"
8530 "renameat()\n"
8531 "symlinkat()\n"
8532 "unlinkat()\n"
8533 "utimensat()\n"
8534 "utimes()\n"
8535 msgstr ""
8536 "execl()\n"
8537 "execv()\n"
8538 "faccessat()\n"
8539 "fchmodat()\n"
8540 "fchownat()\n"
8541 "fexecve()\n"
8542 "fstatat()\n"
8543 "futimens()\n"
8544 "linkat()\n"
8545 "mkdirat()\n"
8546 "mkfifoat()\n"
8547 "mknod()\n"
8548 "mknodat()\n"
8549 "openat()\n"
8550 "readlinkat()\n"
8551 "renameat()\n"
8552 "symlinkat()\n"
8553 "unlinkat()\n"
8554 "utimensat()\n"
8555 "utimes()\n"
8556
8557 #. type: SS
8558 #: build/C/man7/signal.7:612
8559 #, no-wrap
8560 msgid "Interruption of system calls and library functions by signal handlers"
8561 msgstr "シグナルハンドラによるシステムコールやライブラリ関数への割り込み"
8562
8563 #. type: Plain text
8564 #: build/C/man7/signal.7:615
8565 msgid ""
8566 "If a signal handler is invoked while a system call or library function call "
8567 "is blocked, then either:"
8568 msgstr ""
8569 "システムコールやライブラリが停止 (block) している間にシグナルハンドラが 起動"
8570 "されると、以下のどちらかとなる。"
8571
8572 #. type: Plain text
8573 #: build/C/man7/signal.7:617
8574 msgid ""
8575 "the call is automatically restarted after the signal handler returns; or"
8576 msgstr "シグナルが返った後、呼び出しは自動的に再スタートされる。"
8577
8578 #. type: Plain text
8579 #: build/C/man7/signal.7:620
8580 msgid "the call fails with the error B<EINTR>."
8581 msgstr "呼び出しはエラー B<EINTR> で失敗する。"
8582
8583 #. type: Plain text
8584 #: build/C/man7/signal.7:628
8585 msgid ""
8586 "Which of these two behaviors occurs depends on the interface and whether or "
8587 "not the signal handler was established using the B<SA_RESTART> flag (see "
8588 "B<sigaction>(2)).  The details vary across UNIX systems; below, the details "
8589 "for Linux."
8590 msgstr ""
8591 "これらの二つの挙動のうちどちらが起こるかは、インターフェイスにより依存し、 シ"
8592 "グナルハンドラが B<SA_RESTART> フラグ (B<sigaction>(2)  参照) を使って設定さ"
8593 "れていたかにも依存する。 詳細は UNIX システムによって異なる。 Linux における"
8594 "詳細を以下で説明する。"
8595
8596 #.  The following system calls use ERESTARTSYS,
8597 #.  so that they are restartable
8598 #. type: Plain text
8599 #: build/C/man7/signal.7:637
8600 msgid ""
8601 "If a blocked call to one of the following interfaces is interrupted by a "
8602 "signal handler, then the call will be automatically restarted after the "
8603 "signal handler returns if the B<SA_RESTART> flag was used; otherwise the "
8604 "call will fail with the error B<EINTR>:"
8605 msgstr ""
8606 "以下のインターフェイスのいずれかの呼び出しが停止している間に シグナルハンドラ"
8607 "により割り込まれた場合、 B<SA_RESTART> フラグが使用されていれば、シグナルハン"
8608 "ドラが返った後に その呼び出しは自動的に再スタートされることになる。 それ以外"
8609 "の場合は、その呼び出しはエラー B<EINTR> で失敗することになる。"
8610
8611 #.  commit 1ca39ab9d21ac93f94b9e3eb364ea9a5cf2aba06
8612 #. type: Plain text
8613 #: build/C/man7/signal.7:672
8614 msgid ""
8615 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), and B<ioctl>(2)  calls "
8616 "on \"slow\" devices.  A \"slow\" device is one where the I/O call may block "
8617 "for an indefinite time, for example, a terminal, pipe, or socket.  (A disk "
8618 "is not a slow device according to this definition.)  A B<read>(2)  on an "
8619 "B<eventfd>(2), B<signalfd>(2), B<timerfd>(2), B<fanotify>(7), or "
8620 "B<inotify>(7)  file descriptor is also considered to be a \"slow\" "
8621 "operation.  (Before Linux 3.8, reads from an B<inotify>(7)  file descriptor "
8622 "were not restartable; when interrupted by a signal handler, B<read>(2)  "
8623 "always failed with the error B<EINTR>.)  If an I/O call on a slow device has "
8624 "already transferred some data by the time it is interrupted by a signal "
8625 "handler, then the call will return a success status (normally, the number of "
8626 "bytes transferred)."
8627 msgstr ""
8628 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), B<ioctl>(2)  の「遅い "
8629 "(slow)」デバイスに対する呼び出し。 ここでいう「遅い」デバイスとは、I/O 呼び出"
8630 "しが無期限に停止 (block) する 可能性のあるデバイスのことで、例としては端末、"
8631 "パイプ、ソケットがある (この定義では、ディスクは遅いデバイスではない)。 "
8632 "B<eventfd>(2), B<signalfd>(2), B<timerfd>(2), B<fanotify>(7), B<inotify>(7) "
8633 "のファイルディスクリプタに対する B<read>(2) も「遅い」操作と考えられる。 "
8634 "(Linux 3.8 より前であh, B<inotify>(7) ファイルディスクリプタからの読み出し"
8635 "は再開できなかった。シグナルハンドラーによって割り込まれた場合、 B<read>(2) "
8636 "は常にエラー B<EINTR> で失敗していた。) 遅いデバイスに対する I/O 呼び出し"
8637 "が、 シグナルハンドラにより割り込まれた時点までに何らかのデータを すでに転送"
8638 "していれば、呼び出しは成功ステータス (通常は、転送されたバイト数) を返すこと"
8639 "だろう。"
8640
8641 #. type: Plain text
8642 #: build/C/man7/signal.7:676
8643 msgid ""
8644 "B<open>(2), if it can block (e.g., when opening a FIFO; see B<fifo>(7))."
8645 msgstr ""
8646 "停止 (block) する可能性のある B<open>(2)  (例えば、FIFO のオープン時; "
8647 "B<fifo>(7)  参照)。"
8648
8649 #. type: Plain text
8650 #: build/C/man7/signal.7:683
8651 msgid "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), and B<waitpid>(2)."
8652 msgstr "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), B<waitpid>(2)."
8653
8654 #.  If a timeout (setsockopt()) is in effect on the socket, then these
8655 #.  system calls switch to using EINTR.  Consequently, they and are not
8656 #.  automatically restarted, and they show the stop/cont behavior
8657 #.  described below.  (Verified from 2.6.26 source, and by experiment; mtk)
8658 #.  FIXME . What about sendmmsg()?
8659 #. type: Plain text
8660 #: build/C/man7/signal.7:701
8661 msgid ""
8662 "Socket interfaces: B<accept>(2), B<connect>(2), B<recv>(2), B<recvfrom>(2), "
8663 "B<recvmmsg>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), "
8664 "unless a timeout has been set on the socket (see below)."
8665 msgstr ""
8666 "ソケットインターフェイス: B<accept>(2), B<connect>(2), B<recv>(2), "
8667 "B<recvfrom>(2), B<recvmmsg>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), "
8668 "B<sendmsg>(2).  但し、ソケットにタイムアウトが設定されていない場合 (下記参"
8669 "照)。"
8670
8671 #. type: Plain text
8672 #: build/C/man7/signal.7:707
8673 msgid "File locking interfaces: B<flock>(2)  and B<fcntl>(2)  B<F_SETLKW>."
8674 msgstr ""
8675 "ファイルロック用インターフェイス: B<flock>(2), B<fcntl>(2)  B<F_SETLKW>."
8676
8677 #. type: Plain text
8678 #: build/C/man7/signal.7:714
8679 msgid ""
8680 "POSIX message queue interfaces: B<mq_receive>(3), B<mq_timedreceive>(3), "
8681 "B<mq_send>(3), and B<mq_timedsend>(3)."
8682 msgstr ""
8683 "POSIX メッセージキューインターフェイス: B<mq_receive>(3), "
8684 "B<mq_timedreceive>(3), B<mq_send>(3), B<mq_timedsend>(3)."
8685
8686 #. type: Plain text
8687 #: build/C/man7/signal.7:719
8688 msgid ""
8689 "B<futex>(2)  B<FUTEX_WAIT> (since Linux 2.6.22; beforehand, always failed "
8690 "with B<EINTR>)."
8691 msgstr ""
8692 "B<futex>(2)  B<FUTEX_WAIT> (Linux 2.6.22 以降; それ以前は常に B<EINTR> で失敗"
8693 "していた)。"
8694
8695 #. type: Plain text
8696 #: build/C/man7/signal.7:723
8697 msgid "B<pthread_mutex_lock>(3), B<pthread_cond_wait>(3), and related APIs."
8698 msgstr "B<pthread_mutex_lock>(3), B<pthread_cond_wait>(3) と関連 API。"
8699
8700 #. type: Plain text
8701 #: build/C/man7/signal.7:730
8702 msgid ""
8703 "POSIX semaphore interfaces: B<sem_wait>(3)  and B<sem_timedwait>(3)  (since "
8704 "Linux 2.6.22; beforehand, always failed with B<EINTR>)."
8705 msgstr ""
8706 "POSIX セマフォインターフェイス: B<sem_wait>(3), B<sem_timedwait>(3)  (Linux "
8707 "2.6.22 以降; それ以前は常に B<EINTR> で失敗していた)。"
8708
8709 #.  These are the system calls that give EINTR or ERESTARTNOHAND
8710 #.  on interruption by a signal handler.
8711 #. type: Plain text
8712 #: build/C/man7/signal.7:741
8713 msgid ""
8714 "The following interfaces are never restarted after being interrupted by a "
8715 "signal handler, regardless of the use of B<SA_RESTART>; they always fail "
8716 "with the error B<EINTR> when interrupted by a signal handler:"
8717 msgstr ""
8718 "以下のインターフェイスは、 B<SA_RESTART> を使っているどうかに関わらず、シグナ"
8719 "ルハンドラにより割り込まれた後、 再スタートすることは決してない。 これらは、"
8720 "シグナルハンドラにより割り込まれると、常にエラー B<EINTR> で失敗する。"
8721
8722 #. type: Plain text
8723 #: build/C/man7/signal.7:756 build/C/man7/signal.7:831
8724 msgid ""
8725 "\"Input\" socket interfaces, when a timeout (B<SO_RCVTIMEO>)  has been set "
8726 "on the socket using B<setsockopt>(2): B<accept>(2), B<recv>(2), "
8727 "B<recvfrom>(2), B<recvmmsg>(2)  (also with a non-NULL I<timeout> argument), "
8728 "and B<recvmsg>(2)."
8729 msgstr ""
8730 "B<setsockopt>(2)  を使ってタイムアウト (B<SO_RCVTIMEO>) が設定されている「入"
8731 "力」ソケットインターフェース: B<accept>(2), B<recv>(2), B<recvfrom>(2), "
8732 "B<recvmmsg>(2) (NULL 以外の I<timeout> 引き数も指定されている場合), "
8733 "B<recvmsg>(2)"
8734
8735 #.  FIXME . What about sendmmsg()?
8736 #. type: Plain text
8737 #: build/C/man7/signal.7:767 build/C/man7/signal.7:842
8738 msgid ""
8739 "\"Output\" socket interfaces, when a timeout (B<SO_SNDTIMEO>)  has been set "
8740 "on the socket using B<setsockopt>(2): B<connect>(2), B<send>(2), "
8741 "B<sendto>(2), and B<sendmsg>(2)."
8742 msgstr ""
8743 "B<setsockopt>(2)  を使ってタイムアウト (B<SO_SNDTIMEO>) が設定されているソ"
8744 "ケットインターフェース: B<connect>(2), B<send>(2), B<sendto>(2), "
8745 "B<sendmsg>(2)"
8746
8747 #. type: Plain text
8748 #: build/C/man7/signal.7:774
8749 msgid ""
8750 "Interfaces used to wait for signals: B<pause>(2), B<sigsuspend>(2), "
8751 "B<sigtimedwait>(2), and B<sigwaitinfo>(2)."
8752 msgstr ""
8753 "シグナル待ちに使われるインターフェイス: B<pause>(2), B<sigsuspend>(2), "
8754 "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8755
8756 #. type: Plain text
8757 #: build/C/man7/signal.7:783
8758 msgid ""
8759 "File descriptor multiplexing interfaces: B<epoll_wait>(2), "
8760 "B<epoll_pwait>(2), B<poll>(2), B<ppoll>(2), B<select>(2), and B<pselect>(2)."
8761 msgstr ""
8762 "ファイルディスクリプタ多重インターフェイス: B<epoll_wait>(2), "
8763 "B<epoll_pwait>(2), B<poll>(2), B<ppoll>(2), B<select>(2), B<pselect>(2)."
8764
8765 #.  On some other systems, SA_RESTART does restart these system calls
8766 #. type: Plain text
8767 #: build/C/man7/signal.7:791
8768 msgid ""
8769 "System V IPC interfaces: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), and "
8770 "B<semtimedop>(2)."
8771 msgstr ""
8772 "System V IPC インターフェイス: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), "
8773 "B<semtimedop>(2)."
8774
8775 #. type: Plain text
8776 #: build/C/man7/signal.7:797
8777 msgid ""
8778 "Sleep interfaces: B<clock_nanosleep>(2), B<nanosleep>(2), and B<usleep>(3)."
8779 msgstr ""
8780 "スリープ用のインターフェイス: B<clock_nanosleep>(2), B<nanosleep>(2), "
8781 "B<usleep>(3)."
8782
8783 #. type: Plain text
8784 #: build/C/man7/signal.7:799
8785 msgid "B<io_getevents>(2)."
8786 msgstr "B<io_getevents>(2)."
8787
8788 #. type: Plain text
8789 #: build/C/man7/signal.7:805
8790 msgid ""
8791 "The B<sleep>(3)  function is also never restarted if interrupted by a "
8792 "handler, but gives a success return: the number of seconds remaining to "
8793 "sleep."
8794 msgstr ""
8795 "B<sleep>(3)  関数も、ハンドラにより割り込まれた場合、決して再スタートされるこ"
8796 "とはない。 しかし、成功となり、残っている停止時間を返す。"
8797
8798 #. type: SS
8799 #: build/C/man7/signal.7:805
8800 #, no-wrap
8801 msgid "Interruption of system calls and library functions by stop signals"
8802 msgstr "一時停止シグナルによるシステムコールやライブラリ関数への割り込み"
8803
8804 #. type: Plain text
8805 #: build/C/man7/signal.7:814
8806 msgid ""
8807 "On Linux, even in the absence of signal handlers, certain blocking "
8808 "interfaces can fail with the error B<EINTR> after the process is stopped by "
8809 "one of the stop signals and then resumed via B<SIGCONT>.  This behavior is "
8810 "not sanctioned by POSIX.1, and doesn't occur on other systems."
8811 msgstr ""
8812 "Linux では、シグナルハンドラが設定されていない場合でも、 いくつかのブロッキン"
8813 "グ型のインターフェイスは、 プロセスが一時停止 (stop) シグナルの一つにより停止"
8814 "され、 B<SIGCONT> により再開された後に、エラー B<EINTR> で失敗する可能性があ"
8815 "る。 この挙動は POSIX.1 で認められておらず、他のシステムでは起こらない。"
8816
8817 #. type: Plain text
8818 #: build/C/man7/signal.7:816
8819 msgid "The Linux interfaces that display this behavior are:"
8820 msgstr "この挙動を示す Linux のインターフェイスは以下の通りである。"
8821
8822 #. type: Plain text
8823 #: build/C/man7/signal.7:845
8824 msgid "B<epoll_wait>(2), B<epoll_pwait>(2)."
8825 msgstr "B<epoll_wait>(2), B<epoll_pwait>(2)."
8826
8827 #. type: Plain text
8828 #: build/C/man7/signal.7:848
8829 msgid "B<semop>(2), B<semtimedop>(2)."
8830 msgstr "B<semop>(2), B<semtimedop>(2)."
8831
8832 #. type: Plain text
8833 #: build/C/man7/signal.7:851
8834 msgid "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8835 msgstr "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8836
8837 #.  commit 1ca39ab9d21ac93f94b9e3eb364ea9a5cf2aba06
8838 #. type: Plain text
8839 #: build/C/man7/signal.7:858
8840 msgid ""
8841 "Linux 3.7 and earlier: B<read>(2)  from an B<inotify>(7)  file descriptor."
8842 msgstr ""
8843 "Linux 3.7 以前: B<inotify>(7)  ファイルディスクリプタからの B<read>(2)."
8844
8845 #. type: Plain text
8846 #: build/C/man7/signal.7:864
8847 msgid ""
8848 "Linux 2.6.21 and earlier: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8849 "B<sem_wait>(3)."
8850 msgstr ""
8851 "Linux 2.6.21 以前: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8852 "B<sem_wait>(3)."
8853
8854 #. type: Plain text
8855 #: build/C/man7/signal.7:868
8856 msgid "Linux 2.6.8 and earlier: B<msgrcv>(2), B<msgsnd>(2)."
8857 msgstr "Linux 2.6.8 以前: B<msgrcv>(2), B<msgsnd>(2)."
8858
8859 #. type: Plain text
8860 #: build/C/man7/signal.7:871
8861 msgid "Linux 2.4 and earlier: B<nanosleep>(2)."
8862 msgstr "Linux 2.4 以前: B<nanosleep>(2)."
8863
8864 #.  It must be a *very* long time since this was true:
8865 #.  .SH BUGS
8866 #.  .B SIGIO
8867 #.  and
8868 #.  .B SIGLOST
8869 #.  have the same value.
8870 #.  The latter is commented out in the kernel source, but
8871 #.  the build process of some software still thinks that
8872 #.  signal 29 is
8873 #.  .BR SIGLOST .
8874 #. type: Plain text
8875 #: build/C/man7/signal.7:884
8876 msgid "POSIX.1, except as noted."
8877 msgstr "POSIX.1 (注記した内容以外)。"
8878
8879 #. type: Plain text
8880 #: build/C/man7/signal.7:919
8881 msgid ""
8882 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), "
8883 "B<restart_syscall>(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), "
8884 "B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), B<sigaltstack>(2), "
8885 "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
8886 "B<sigreturn>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), "
8887 "B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), "
8888 "B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), "
8889 "B<strsignal>(3), B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), "
8890 "B<sigevent>(7)"
8891 msgstr ""
8892 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), "
8893 "B<restart_syscall>(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), "
8894 "B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), B<sigaltstack>(2), "
8895 "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
8896 "B<sigreturn>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), "
8897 "B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), "
8898 "B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), "
8899 "B<strsignal>(3), B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), "
8900 "B<sigevent>(7)"
8901
8902 #. type: TH
8903 #: build/C/man2/signalfd.2:20
8904 #, no-wrap
8905 msgid "SIGNALFD"
8906 msgstr "SIGNALFD"
8907
8908 #. type: Plain text
8909 #: build/C/man2/signalfd.2:23
8910 msgid "signalfd - create a file descriptor for accepting signals"
8911 msgstr "signalfd - シグナル受け付け用のファイルディスクリプタを生成する"
8912
8913 #. type: Plain text
8914 #: build/C/man2/signalfd.2:25
8915 msgid "B<#include E<lt>sys/signalfd.hE<gt>>"
8916 msgstr "B<#include E<lt>sys/signalfd.hE<gt>>"
8917
8918 #. type: Plain text
8919 #: build/C/man2/signalfd.2:27
8920 msgid ""
8921 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8922 msgstr ""
8923 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8924
8925 #. type: Plain text
8926 #: build/C/man2/signalfd.2:38
8927 msgid ""
8928 "B<signalfd>()  creates a file descriptor that can be used to accept signals "
8929 "targeted at the caller.  This provides an alternative to the use of a signal "
8930 "handler or B<sigwaitinfo>(2), and has the advantage that the file descriptor "
8931 "may be monitored by B<select>(2), B<poll>(2), and B<epoll>(7)."
8932 msgstr ""
8933 "B<signalfd>()  は、呼び出し元宛てのシグナルを受け付けるために使用されるファイ"
8934 "ル ディスクリプタを生成する。 この方法はシグナルハンドラや "
8935 "B<sigwaitinfo>(2)  を用いる方法の代わりとなるものであり、このファイルディスク"
8936 "リプタを B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点があ"
8937 "る。"
8938
8939 #. type: Plain text
8940 #: build/C/man2/signalfd.2:58
8941 msgid ""
8942 "The I<mask> argument specifies the set of signals that the caller wishes to "
8943 "accept via the file descriptor.  This argument is a signal set whose "
8944 "contents can be initialized using the macros described in B<sigsetops>(3).  "
8945 "Normally, the set of signals to be received via the file descriptor should "
8946 "be blocked using B<sigprocmask>(2), to prevent the signals being handled "
8947 "according to their default dispositions.  It is not possible to receive "
8948 "B<SIGKILL> or B<SIGSTOP> signals via a signalfd file descriptor; these "
8949 "signals are silently ignored if specified in I<mask>."
8950 msgstr ""
8951 "I<mask> 引き数には、呼び出し元がこのファイルディスクリプタ経由で受け付けたい "
8952 "シグナル集合を指定する。この引き数で指定するシグナル集合の内容は、 "
8953 "B<sigsetops>(3)  で説明されているマクロを使って初期化することができる。 通"
8954 "常、ファイルディスクリプタ経由で受信するシグナル集合は、 そのシグナルがデフォ"
8955 "ルトの配送方法に基いて処理されるのを防ぐために、 B<sigprocmask>(2)  を使って"
8956 "ブロックしておくべきである。 シグナル B<SIGKILL> と B<SIGSTOP> を signalfd "
8957 "ファイルディスクリプタ経由で受信することはできない。 これらのシグナルが "
8958 "I<mask> で指定された場合には黙って無視される。"
8959
8960 #. type: Plain text
8961 #: build/C/man2/signalfd.2:72
8962 msgid ""
8963 "If the I<fd> argument is -1, then the call creates a new file descriptor and "
8964 "associates the signal set specified in I<mask> with that descriptor.  If "
8965 "I<fd> is not -1, then it must specify a valid existing signalfd file "
8966 "descriptor, and I<mask> is used to replace the signal set associated with "
8967 "that descriptor."
8968 msgstr ""
8969 "I<fd> 引き数が -1 の場合、 B<signalfd>()  は新しいファイルディスクリプタを生"
8970 "成し、 I<mask> で指定されたシグナル集合をそのファイルディスクリプタに関連付け"
8971 "る。 I<fd> 引き数が -1 以外の場合、 I<fd> には有効な既存の signalfd ファイル"
8972 "ディスクリプタを指定しなければならず、 そのディスクリプタに関連付けられている"
8973 "シグナル集合は I<mask> を使って置き換えられる。"
8974
8975 #. type: Plain text
8976 #: build/C/man2/signalfd.2:77
8977 msgid ""
8978 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
8979 "I<flags> to change the behavior of B<signalfd>():"
8980 msgstr ""
8981 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
8982 "ることで、 B<signalfd>()  の振舞いを変更することができる。"
8983
8984 #. type: TP
8985 #: build/C/man2/signalfd.2:77
8986 #, no-wrap
8987 msgid "B<SFD_NONBLOCK>"
8988 msgstr "B<SFD_NONBLOCK>"
8989
8990 #. type: TP
8991 #: build/C/man2/signalfd.2:85
8992 #, no-wrap
8993 msgid "B<SFD_CLOEXEC>"
8994 msgstr "B<SFD_CLOEXEC>"
8995
8996 #. type: Plain text
8997 #: build/C/man2/signalfd.2:102
8998 msgid ""
8999 "B<signalfd>()  returns a file descriptor that supports the following "
9000 "operations:"
9001 msgstr ""
9002 "B<signalfd>()  が返すファイルディスクリプタは以下の操作をサポートしている。"
9003
9004 #. type: Plain text
9005 #: build/C/man2/signalfd.2:121
9006 msgid ""
9007 "If one or more of the signals specified in I<mask> is pending for the "
9008 "process, then the buffer supplied to B<read>(2)  is used to return one or "
9009 "more I<signalfd_siginfo> structures (see below) that describe the signals.  "
9010 "The B<read>(2)  returns information for as many signals as are pending and "
9011 "will fit in the supplied buffer.  The buffer must be at least "
9012 "I<sizeof(struct signalfd_siginfo)> bytes.  The return value of the "
9013 "B<read>(2)  is the total number of bytes read."
9014 msgstr ""
9015 "I<mask> に指定されているシグナルのうち一つ以上がそのプロセスに対して 処理待"
9016 "ち (pending) であれば、それらのシグナルの情報が B<read>(2)  に渡されたバッ"
9017 "ファを使って、 I<signalfd_siginfo> 構造体に格納されて返される。 B<read>(2)  "
9018 "は、バッファに格納可能な範囲でできるだけ多くの処理待ちのシグナルに ついての情"
9019 "報を返す。 バッファは最低でも I<sizeof(struct signalfd_siginfo)> バイトの大き"
9020 "さがなければならない。 B<read>(2)  の返り値は読み出されたトータルのバイト数で"
9021 "ある。"
9022
9023 #. type: Plain text
9024 #: build/C/man2/signalfd.2:129
9025 msgid ""
9026 "As a consequence of the B<read>(2), the signals are consumed, so that they "
9027 "are no longer pending for the process (i.e., will not be caught by signal "
9028 "handlers, and cannot be accepted using B<sigwaitinfo>(2))."
9029 msgstr ""
9030 "B<read>(2)  が行われた結果、シグナルは消費され、 これらのシグナルはそのプロセ"
9031 "スに対しては処理待ちではなくなる (つまり、シグナルハンドラで捕捉されることも"
9032 "なく、 B<sigwaitinfo>(2)  を使って受け取ることもできなくなる)。"
9033
9034 #. type: Plain text
9035 #: build/C/man2/signalfd.2:140
9036 msgid ""
9037 "If none of the signals in I<mask> is pending for the process, then the "
9038 "B<read>(2)  either blocks until one of the signals in I<mask> is generated "
9039 "for the process, or fails with the error B<EAGAIN> if the file descriptor "
9040 "has been made nonblocking."
9041 msgstr ""
9042 "I<mask> に指定されているシグナルがそのプロセスに対して一つも処理待ちでなけれ"
9043 "ば、 B<read>(2)  は、 I<mask> で指定されたシグナルのうちいずれか一つがそのプ"
9044 "ロセスに対して発生するまで 停止 (block) する、もしくはファイルディスクリプタ"
9045 "が非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗する。"
9046
9047 #. type: Plain text
9048 #: build/C/man2/signalfd.2:153
9049 msgid ""
9050 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
9051 "B<poll>(2)  B<POLLIN> flag)  if one or more of the signals in I<mask> is "
9052 "pending for the process."
9053 msgstr ""
9054 "I<mask> に指定されたシグナルのうち一つ以上がそのプロセスに対して処理待ちであ"
9055 "れば、 ファイルディスクリプタは読み出し可能となる (B<select>(2)  の "
9056 "I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
9057
9058 #. type: Plain text
9059 #: build/C/man2/signalfd.2:160
9060 msgid ""
9061 "The signalfd file descriptor also supports the other file-descriptor "
9062 "multiplexing APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
9063 msgstr ""
9064 "signalfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
9065 "である B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
9066
9067 #. type: Plain text
9068 #: build/C/man2/signalfd.2:165
9069 msgid ""
9070 "When the file descriptor is no longer required it should be closed.  When "
9071 "all file descriptors associated with the same signalfd object have been "
9072 "closed, the resources for object are freed by the kernel."
9073 msgstr ""
9074 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
9075 "る。 同じ signalfd オブジェクトに関連付けられたファイルディスクリプタが全て "
9076 "クローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
9077
9078 #. type: SS
9079 #: build/C/man2/signalfd.2:165
9080 #, no-wrap
9081 msgid "The signalfd_siginfo structure"
9082 msgstr "signalfd_siginfo 構造体"
9083
9084 #. type: Plain text
9085 #: build/C/man2/signalfd.2:171
9086 msgid ""
9087 "The format of the I<signalfd_siginfo> structure(s) returned by B<read>(2)s "
9088 "from a signalfd file descriptor is as follows:"
9089 msgstr ""
9090 "signalfd ファイルディスクリプタからの B<read>(2)  で返される "
9091 "I<signalfd_siginfo> 構造体のフォーマットは以下の通りである。"
9092
9093 #.  ssi_trapno is unused on most arches
9094 #.  FIXME Since Linux 2.6.37 there is 'uint16_t ssi_addr_lsb'
9095 #.  in the signalfd_siginfo structure. This needs to be documented.
9096 #. type: Plain text
9097 #: build/C/man2/signalfd.2:198
9098 #, no-wrap
9099 msgid ""
9100 "struct signalfd_siginfo {\n"
9101 "    uint32_t ssi_signo;   /* Signal number */\n"
9102 "    int32_t  ssi_errno;   /* Error number (unused) */\n"
9103 "    int32_t  ssi_code;    /* Signal code */\n"
9104 "    uint32_t ssi_pid;     /* PID of sender */\n"
9105 "    uint32_t ssi_uid;     /* Real UID of sender */\n"
9106 "    int32_t  ssi_fd;      /* File descriptor (SIGIO) */\n"
9107 "    uint32_t ssi_tid;     /* Kernel timer ID (POSIX timers)\n"
9108 "    uint32_t ssi_band;    /* Band event (SIGIO) */\n"
9109 "    uint32_t ssi_overrun; /* POSIX timer overrun count */\n"
9110 "    uint32_t ssi_trapno;  /* Trap number that caused signal */\n"
9111 "    int32_t  ssi_status;  /* Exit status or signal (SIGCHLD) */\n"
9112 "    int32_t  ssi_int;     /* Integer sent by sigqueue(3) */\n"
9113 "    uint64_t ssi_ptr;     /* Pointer sent by sigqueue(3) */\n"
9114 "    uint64_t ssi_utime;   /* User CPU time consumed (SIGCHLD) */\n"
9115 "    uint64_t ssi_stime;   /* System CPU time consumed (SIGCHLD) */\n"
9116 "    uint64_t ssi_addr;    /* Address that generated signal\n"
9117 "                             (for hardware-generated signals) */\n"
9118 "    uint8_t  pad[I<X>];      /* Pad size to 128 bytes (allow for\n"
9119 "                              additional fields in the future) */\n"
9120 "};\n"
9121 msgstr ""
9122 "struct signalfd_siginfo {\n"
9123 "struct signalfd_siginfo {\n"
9124 "    uint32_t ssi_signo;   /* シグナル番号 */\n"
9125 "    int32_t  ssi_errno;   /* エラー番号 (未使用) */\n"
9126 "    int32_t  ssi_code;    /* シグナルコード */\n"
9127 "    uint32_t ssi_pid;     /* 送信元の PID */\n"
9128 "    uint32_t ssi_uid;     /* 送信元の実 UID */\n"
9129 "    int32_t  ssi_fd;      /* ファイルディスクリプタ (SIGIO) */\n"
9130 "    uint32_t ssi_tid;     /* カーネルタイマ ID (POSIX タイマ)\n"
9131 "    uint32_t ssi_band;    /* Band イベント (SIGIO) */\n"
9132 "    uint32_t ssi_overrun; /* POSIX タイマのオーバーラン回数 */\n"
9133 "    uint32_t ssi_trapno;  /* シグナルの原因となったトラップ番号 */\n"
9134 "    int32_t  ssi_status;  /* 終了ステータスかシグナル (SIGCHLD) */\n"
9135 "    int32_t  ssi_int;     /* sigqueue(3) から送られた整数 */\n"
9136 "    uint64_t ssi_ptr;     /* sigqueue(3) から送られたポインタ */\n"
9137 "    uint64_t ssi_utime;   /* 消費したユーザ CPU 時間 (SIGCHLD) */\n"
9138 "    uint64_t ssi_stime;   /* 消費したシステム CPU 時間 (SIGCHLD) */\n"
9139 "    uint64_t ssi_addr;    /* シグナルを生成したアドレス\n"
9140 "                             (ハードウェアが生成したシグナルの場合) */\n"
9141 "    uint8_t  pad[I<X>];      /* pad の大きさは 128 バイト\n"
9142 "                             (将来のフィールド追加用の場所の確保) */\n"
9143 "};\n"
9144
9145 #. type: Plain text
9146 #: build/C/man2/signalfd.2:221
9147 msgid ""
9148 "Each of the fields in this structure is analogous to the similarly named "
9149 "field in the I<siginfo_t> structure.  The I<siginfo_t> structure is "
9150 "described in B<sigaction>(2).  Not all fields in the returned "
9151 "I<signalfd_siginfo> structure will be valid for a specific signal; the set "
9152 "of valid fields can be determined from the value returned in the I<ssi_code> "
9153 "field.  This field is the analog of the I<siginfo_t> I<si_code> field; see "
9154 "B<sigaction>(2)  for details."
9155 msgstr ""
9156 "I<signalfd_siginfo> 構造体の各フィールドは、 I<siginfo_t> 構造体の同じような"
9157 "名前のフィールドと同様である。 I<siginfo_t> 構造体については "
9158 "B<sigaction>(2)  に説明がある。 返された I<signalfd_siginfo> 構造体の全ての"
9159 "フィールドがあるシグナルに対して有効なわけではない。 どのフィールドが有効か"
9160 "は、 I<ssi_code> フィールドで返される値から判定することができる。 このフィー"
9161 "ルドは I<siginfo_t> の I<si_code> フィールドと同様である。詳細は "
9162 "B<sigaction>(2)  を参照。"
9163
9164 #. type: SS
9165 #: build/C/man2/signalfd.2:221 build/C/man2/timerfd_create.2:276
9166 #, no-wrap
9167 msgid "fork(2) semantics"
9168 msgstr "fork(2) での扱い"
9169
9170 #. type: Plain text
9171 #: build/C/man2/signalfd.2:229
9172 msgid ""
9173 "After a B<fork>(2), the child inherits a copy of the signalfd file "
9174 "descriptor.  A B<read>(2)  from the file descriptor in the child will return "
9175 "information about signals queued to the child."
9176 msgstr ""
9177 "B<fork>(2)  が行われると、子プロセスは signalfd ファイルディスクリプタのコ"
9178 "ピーを 継承する。 子プロセスでこのファイルディスクリプタから B<read>(2)  を行"
9179 "うと、子プロセスに対するキューに入っているシグナルに関する 情報が返される。"
9180
9181 #. type: SS
9182 #: build/C/man2/signalfd.2:229 build/C/man2/timerfd_create.2:288
9183 #, no-wrap
9184 msgid "execve(2) semantics"
9185 msgstr "execve(2) での扱い"
9186
9187 #. type: Plain text
9188 #: build/C/man2/signalfd.2:241
9189 msgid ""
9190 "Just like any other file descriptor, a signalfd file descriptor remains open "
9191 "across an B<execve>(2), unless it has been marked for close-on-exec (see "
9192 "B<fcntl>(2)).  Any signals that were available for reading before the "
9193 "B<execve>(2)  remain available to the newly loaded program.  (This is "
9194 "analogous to traditional signal semantics, where a blocked signal that is "
9195 "pending remains pending across an B<execve>(2).)"
9196 msgstr ""
9197 "他のファイルディスクリプタと全く同様に、 signalfd ファイルディスクリプタも "
9198 "B<execve>(2)  の前後でオープンされたままとなる。但し、そのファイルディスクリ"
9199 "プタに close-on-exec のマーク (B<fcntl>(2)  参照) が付いている場合はクローズ"
9200 "される。 B<execve>(2)  の前に読み出し可能となっていた全てのシグナルは新しく起"
9201 "動されたプログラム でも引き続き読み出し可能である (これは伝統的なシグナルの扱"
9202 "いと同じであり、 処理待ちのブロックされたシグナルは B<execve>(2)  の前後で処"
9203 "理待ちのままとなる)。"
9204
9205 #. type: SS
9206 #: build/C/man2/signalfd.2:241
9207 #, no-wrap
9208 msgid "Thread semantics"
9209 msgstr "スレッドでの扱い"
9210
9211 #. type: Plain text
9212 #: build/C/man2/signalfd.2:251
9213 msgid ""
9214 "The semantics of signalfd file descriptors in a multithreaded program mirror "
9215 "the standard semantics for signals.  In other words, when a thread reads "
9216 "from a signalfd file descriptor, it will read the signals that are directed "
9217 "to the thread itself and the signals that are directed to the process (i.e., "
9218 "the entire thread group).  (A thread will not be able to read signals that "
9219 "are directed to other threads in the process.)"
9220 msgstr ""
9221 "マルチスレッドプログラムにおける signalfd ファイルディスクリプタの扱いは シグ"
9222 "ナルの標準的な扱いと全く同じである。 言い換えると、あるスレッドが signalfd "
9223 "ファイルディスクリプタから 読み出しを行うと、そのスレッド自身宛てのシグナルと"
9224 "プロセス (すなわち スレッドグループ全体) 宛てのシグナルが読み出される。 (ス"
9225 "レッドは同じプロセスの他のスレッド宛てのシグナルを読み出すことはできない。)"
9226
9227 #. type: Plain text
9228 #: build/C/man2/signalfd.2:265
9229 msgid ""
9230 "On success, B<signalfd>()  returns a signalfd file descriptor; this is "
9231 "either a new file descriptor (if I<fd> was -1), or I<fd> if I<fd> was a "
9232 "valid signalfd file descriptor.  On error, -1 is returned and I<errno> is "
9233 "set to indicate the error."
9234 msgstr ""
9235 "成功すると、 B<signalfd>()  は signalfd ファイルディスクリプタを返す。 返され"
9236 "るファイルディスクリプタは、 I<fd> が -1 の場合は新規のファイルディスクリプタ"
9237 "であり、 I<fd> が有効な signalfd ファイルディスクリプタだった場合は I<fd> 自"
9238 "身である。 エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
9239
9240 #. type: Plain text
9241 #: build/C/man2/signalfd.2:271
9242 msgid "The I<fd> file descriptor is not a valid file descriptor."
9243 msgstr "ファイルディスクリプタ I<fd> が有効なファイルディスクリプタでない。"
9244
9245 #.  or, the
9246 #.  .I sizemask
9247 #.  argument is not equal to
9248 #.  .IR sizeof(sigset_t) ;
9249 #. type: Plain text
9250 #: build/C/man2/signalfd.2:279
9251 msgid "I<fd> is not a valid signalfd file descriptor."
9252 msgstr "I<fd> が有効な signalfd ファイルディスクリプタではない。"
9253
9254 #. type: Plain text
9255 #: build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:327
9256 msgid ""
9257 "I<flags> is invalid; or, in Linux 2.6.26 or earlier, I<flags> is nonzero."
9258 msgstr ""
9259 "I<flags> が無効である。もしくは、Linux 2.6.26 以前の場合には I<flags> が 0 以"
9260 "外である。"
9261
9262 #. type: Plain text
9263 #: build/C/man2/signalfd.2:289 build/C/man2/timerfd_create.2:330
9264 msgid "The per-process limit of open file descriptors has been reached."
9265 msgstr ""
9266 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
9267
9268 #. type: Plain text
9269 #: build/C/man2/signalfd.2:299
9270 msgid "There was insufficient memory to create a new signalfd file descriptor."
9271 msgstr ""
9272 "新しい signalfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
9273
9274 #.  signalfd() is in glibc 2.7, but reportedly does not build
9275 #. type: Plain text
9276 #: build/C/man2/signalfd.2:307
9277 msgid ""
9278 "B<signalfd>()  is available on Linux since kernel 2.6.22.  Working support "
9279 "is provided in glibc since version 2.8.  The B<signalfd4>()  system call "
9280 "(see NOTES) is available on Linux since kernel 2.6.27."
9281 msgstr ""
9282 "B<signalfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
9283 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<signalfd4>()  "
9284 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
9285 "る。"
9286
9287 #. type: Plain text
9288 #: build/C/man2/signalfd.2:312
9289 msgid "B<signalfd>()  and B<signalfd4>()  are Linux-specific."
9290 msgstr "B<signalfd>()  と B<signalfd4>()  は Linux 固有である。"
9291
9292 #. type: Plain text
9293 #: build/C/man2/signalfd.2:326
9294 msgid ""
9295 "A process can create multiple signalfd file descriptors.  This makes it "
9296 "possible to accept different signals on different file descriptors.  (This "
9297 "may be useful if monitoring the file descriptors using B<select>(2), "
9298 "B<poll>(2), or B<epoll>(7): the arrival of different signals will make "
9299 "different descriptors ready.)  If a signal appears in the I<mask> of more "
9300 "than one of the file descriptors, then occurrences of that signal can be "
9301 "read (once) from any one of the descriptors."
9302 msgstr ""
9303 "一つのプロセスは複数の signalfd ファイルディスクリプタを生成することができ"
9304 "る。 これにより、異なるファイルディスクリプタで異なるシグナルを受け取ること"
9305 "が できる (この機能は B<select>(2), B<poll>(2), B<epoll>(7)  を使ってファイル"
9306 "ディスクリプタを監視する場合に有用かもしれない。 異なるシグナルが到着すると、"
9307 "異なるファイルディスクリプタが利用可能に なるからだ)。 一つのシグナルが二つ以"
9308 "上のファイルディスクリプタの I<mask> に含まれている場合、そのシグナルの発生は"
9309 "そのシグナルを I<mask> に含むファイルディスクリプタのうちいずれか一つから読み"
9310 "出すことができる。"
9311
9312 #. type: Plain text
9313 #: build/C/man2/signalfd.2:336
9314 msgid ""
9315 "The underlying Linux system call requires an additional argument, I<size_t "
9316 "sizemask>, which specifies the size of the I<mask> argument.  The glibc "
9317 "B<signalfd>()  wrapper function does not include this argument, since it "
9318 "provides the required value for the underlying system call."
9319 msgstr ""
9320 "実際の Linux のシステムコールでは I<size_t sizemask> という引き数が追加で必要"
9321 "である。この引き数で I<mask> のサイズを指定する。 glibc の B<signalfd>()  "
9322 "ラッパー関数にはこの引き数は含まれず、 ラッパー関数が必要な値を計算して内部で"
9323 "呼び出すシステムコールに提供する。"
9324
9325 #. type: Plain text
9326 #: build/C/man2/signalfd.2:352
9327 msgid ""
9328 "There are two underlying Linux system calls: B<signalfd>()  and the more "
9329 "recent B<signalfd4>().  The former system call does not implement a I<flags> "
9330 "argument.  The latter system call implements the I<flags> values described "
9331 "above.  Starting with glibc 2.9, the B<signalfd>()  wrapper function will "
9332 "use B<signalfd4>()  where it is available."
9333 msgstr ""
9334 "下層にある Linux システムコールは二種類あり、 B<signalfd>()  と、もっと新し"
9335 "い B<signalfd4>()  である。 B<signalfd>()  は I<flags> 引き数を実装していな"
9336 "い。 B<signalfd4>()  では上記の値の I<flags> が実装されている。 glibc 2.9 以"
9337 "降では、 B<signalfd>()  のラッパー関数は、 B<signalfd4>()  が利用可能であれ"
9338 "ば、これを使用する。"
9339
9340 #.  The fix also was put into 2.6.24.5
9341 #. type: Plain text
9342 #: build/C/man2/signalfd.2:360
9343 msgid ""
9344 "In kernels before 2.6.25, the I<ssi_ptr> and I<ssi_int> fields are not "
9345 "filled in with the data accompanying a signal sent by B<sigqueue>(3)."
9346 msgstr ""
9347 "カーネル 2.6.25 より前では、 B<sigqueue>(3)  により送信されたシグナルと一緒に"
9348 "渡されるデータでは、フィールド I<ssi_ptr> と I<ssi_int> は設定されない。"
9349
9350 #. type: Plain text
9351 #: build/C/man2/signalfd.2:370
9352 msgid ""
9353 "The program below accepts the signals B<SIGINT> and B<SIGQUIT> via a "
9354 "signalfd file descriptor.  The program terminates after accepting a "
9355 "B<SIGQUIT> signal.  The following shell session demonstrates the use of the "
9356 "program:"
9357 msgstr ""
9358 "下記のプログラムは、シグナル B<SIGINT> と B<SIGQUIT> を signalfd ファイルディ"
9359 "スクリプタ経由で受信する。 シグナル B<SIGQUIT> 受信後にプログラムは終了す"
9360 "る。 以下に示すシェルセッションにこのプログラムの使い方を示す。"
9361
9362 #. type: Plain text
9363 #: build/C/man2/signalfd.2:381
9364 #, no-wrap
9365 msgid ""
9366 "$B< ./signalfd_demo>\n"
9367 "B<^C>                   # Control-C generates SIGINT\n"
9368 "Got SIGINT\n"
9369 "B<^C>\n"
9370 "Got SIGINT\n"
9371 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
9372 "Got SIGQUIT\n"
9373 "$\n"
9374 msgstr ""
9375 "$B< ./signalfd_demo>\n"
9376 "B<^C>                   # Control-C generates SIGINT\n"
9377 "Got SIGINT\n"
9378 "B<^C>\n"
9379 "Got SIGINT\n"
9380 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
9381 "Got SIGQUIT\n"
9382 "$\n"
9383
9384 #. type: Plain text
9385 #: build/C/man2/signalfd.2:391
9386 #, no-wrap
9387 msgid ""
9388 "#include E<lt>sys/signalfd.hE<gt>\n"
9389 "#include E<lt>signal.hE<gt>\n"
9390 "#include E<lt>unistd.hE<gt>\n"
9391 "#include E<lt>stdlib.hE<gt>\n"
9392 "#include E<lt>stdio.hE<gt>\n"
9393 msgstr ""
9394 "#include E<lt>sys/signalfd.hE<gt>\n"
9395 "#include E<lt>signal.hE<gt>\n"
9396 "#include E<lt>unistd.hE<gt>\n"
9397 "#include E<lt>stdlib.hE<gt>\n"
9398 "#include E<lt>stdio.hE<gt>\n"
9399
9400 #. type: Plain text
9401 #: build/C/man2/signalfd.2:402
9402 #, no-wrap
9403 msgid ""
9404 "int\n"
9405 "main(int argc, char *argv[])\n"
9406 "{\n"
9407 "    sigset_t mask;\n"
9408 "    int sfd;\n"
9409 "    struct signalfd_siginfo fdsi;\n"
9410 "    ssize_t s;\n"
9411 msgstr ""
9412 "int\n"
9413 "main(int argc, char *argv[])\n"
9414 "{\n"
9415 "    sigset_t mask;\n"
9416 "    int sfd;\n"
9417 "    struct signalfd_siginfo fdsi;\n"
9418 "    ssize_t s;\n"
9419
9420 #. type: Plain text
9421 #: build/C/man2/signalfd.2:406
9422 #, no-wrap
9423 msgid ""
9424 "    sigemptyset(&mask);\n"
9425 "    sigaddset(&mask, SIGINT);\n"
9426 "    sigaddset(&mask, SIGQUIT);\n"
9427 msgstr ""
9428 "    sigemptyset(&mask);\n"
9429 "    sigaddset(&mask, SIGINT);\n"
9430 "    sigaddset(&mask, SIGQUIT);\n"
9431
9432 #. type: Plain text
9433 #: build/C/man2/signalfd.2:409
9434 #, no-wrap
9435 msgid ""
9436 "    /* Block signals so that they aren\\(aqt handled\n"
9437 "       according to their default dispositions */\n"
9438 msgstr ""
9439 "    /* Block signals so that they aren\\(aqt handled\n"
9440 "       according to their default dispositions */\n"
9441
9442 #. type: Plain text
9443 #: build/C/man2/signalfd.2:412
9444 #, no-wrap
9445 msgid ""
9446 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
9447 "        handle_error(\"sigprocmask\");\n"
9448 msgstr ""
9449 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
9450 "        handle_error(\"sigprocmask\");\n"
9451
9452 #. type: Plain text
9453 #: build/C/man2/signalfd.2:416
9454 #, no-wrap
9455 msgid ""
9456 "    sfd = signalfd(-1, &mask, 0);\n"
9457 "    if (sfd == -1)\n"
9458 "        handle_error(\"signalfd\");\n"
9459 msgstr ""
9460 "    sfd = signalfd(-1, &mask, 0);\n"
9461 "    if (sfd == -1)\n"
9462 "        handle_error(\"signalfd\");\n"
9463
9464 #. type: Plain text
9465 #: build/C/man2/signalfd.2:421
9466 #, no-wrap
9467 msgid ""
9468 "    for (;;) {\n"
9469 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
9470 "        if (s != sizeof(struct signalfd_siginfo))\n"
9471 "            handle_error(\"read\");\n"
9472 msgstr ""
9473 "    for (;;) {\n"
9474 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
9475 "        if (s != sizeof(struct signalfd_siginfo))\n"
9476 "            handle_error(\"read\");\n"
9477
9478 #. type: Plain text
9479 #: build/C/man2/signalfd.2:432
9480 #, no-wrap
9481 msgid ""
9482 "        if (fdsi.ssi_signo == SIGINT) {\n"
9483 "            printf(\"Got SIGINT\\en\");\n"
9484 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
9485 "            printf(\"Got SIGQUIT\\en\");\n"
9486 "            exit(EXIT_SUCCESS);\n"
9487 "        } else {\n"
9488 "            printf(\"Read unexpected signal\\en\");\n"
9489 "        }\n"
9490 "    }\n"
9491 "}\n"
9492 msgstr ""
9493 "        if (fdsi.ssi_signo == SIGINT) {\n"
9494 "            printf(\"Got SIGINT\\en\");\n"
9495 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
9496 "            printf(\"Got SIGQUIT\\en\");\n"
9497 "            exit(EXIT_SUCCESS);\n"
9498 "        } else {\n"
9499 "            printf(\"Read unexpected signal\\en\");\n"
9500 "        }\n"
9501 "    }\n"
9502 "}\n"
9503
9504 #. type: Plain text
9505 #: build/C/man2/signalfd.2:446
9506 msgid ""
9507 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
9508 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
9509 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
9510 msgstr ""
9511 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
9512 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
9513 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
9514
9515 #. type: TH
9516 #: build/C/man3/sigpause.3:25
9517 #, no-wrap
9518 msgid "SIGPAUSE"
9519 msgstr "SIGPAUSE"
9520
9521 #. type: Plain text
9522 #: build/C/man3/sigpause.3:28
9523 msgid "sigpause - atomically release blocked signals and wait for interrupt"
9524 msgstr "sigpause - ブロックされたシグナルをアトミックに解放して割り込みを待つ"
9525
9526 #. type: Plain text
9527 #: build/C/man3/sigpause.3:33
9528 #, no-wrap
9529 msgid "B<int sigpause(int >I<sigmask>B<);  /* BSD (but see NOTES) */>\n"
9530 msgstr "B<int sigpause(int >I<sigmask>B<);  /* BSD (ただし「備考」を参照) */>\n"
9531
9532 #. type: Plain text
9533 #: build/C/man3/sigpause.3:35
9534 #, no-wrap
9535 msgid "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
9536 msgstr "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
9537
9538 #. type: Plain text
9539 #: build/C/man3/sigpause.3:41
9540 msgid "Don't use this function.  Use B<sigsuspend>(2)  instead."
9541 msgstr "この関数を使わないこと。 代わりに B<sigsuspend>(2)  を使うこと。"
9542
9543 #. type: Plain text
9544 #: build/C/man3/sigpause.3:48
9545 msgid ""
9546 "The function B<sigpause>()  is designed to wait for some signal.  It changes "
9547 "the process's signal mask (set of blocked signals), and then waits for a "
9548 "signal to arrive.  Upon arrival of a signal, the original signal mask is "
9549 "restored."
9550 msgstr ""
9551 "関数 B<sigpause>()  はシグナルを待つように設計されている。 この関数はプロセス"
9552 "のシグナルマスク (ブロックされたシグナルのセット) を変更し、 シグナルが到着す"
9553 "るのを待つ。 シグナルが到着すると、シグナルマスクは元に戻される。"
9554
9555 #. type: Plain text
9556 #: build/C/man3/sigpause.3:56
9557 msgid ""
9558 "If B<sigpause>()  returns, it was interrupted by a signal and the return "
9559 "value is -1 with I<errno> set to B<EINTR>."
9560 msgstr ""
9561 "B<sigpause>()  が返った場合、この関数はシグナルによって割り込まれている。 返"
9562 "り値は -1 で、 I<errno> は B<EINTR> に設定される。"
9563
9564 #. type: Plain text
9565 #: build/C/man3/sigpause.3:61
9566 msgid "The B<sigpause>()  function is thread-safe."
9567 msgstr "B<sigpause>() 関数はスレッドセーフである。"
9568
9569 #. type: Plain text
9570 #: build/C/man3/sigpause.3:65
9571 msgid "The System V version of B<sigpause>()  is standardized in POSIX.1-2001."
9572 msgstr "System V 版の B<sigpause>()  は POSIX.1-2001 で標準化されている。"
9573
9574 #.  __xpg_sigpause: UNIX 95, spec 1170, SVID, SVr4, XPG
9575 #. type: Plain text
9576 #: build/C/man3/sigpause.3:82
9577 msgid ""
9578 "The classical BSD version of this function appeared in 4.2BSD.  It sets the "
9579 "process's signal mask to I<sigmask>.  UNIX 95 standardized the incompatible "
9580 "System V version of this function, which removes only the specified signal "
9581 "I<sig> from the process's signal mask.  The unfortunate situation with two "
9582 "incompatible functions with the same name was solved by the B<\\"
9583 "%sigsuspend>(2)  function, that takes a I<sigset_t\\ *> argument (instead of "
9584 "an I<int>)."
9585 msgstr ""
9586 "この関数の古典的な BSD 版は 4.2BSD で登場した。 この関数はプロセスのシグナル"
9587 "マスクを I<sigmask> に設定する。 UNIX 95 では BSD 版と互換性のない System V "
9588 "版のこの関数が標準化された。 UNIX 95 版は、指定されたシグナル I<sig> をプロセ"
9589 "スのシグナルマスクから削除するだけである。 同じ名前で互換性のない 2 つの関数"
9590 "があるという不幸な事態は、 B<\\%sigsuspend>(2)  関数によって解消された。 この"
9591 "関数は (I<int> の代わりに)  B<sigset_t\\ *> 引き数をとる。"
9592
9593 #. type: Plain text
9594 #: build/C/man3/sigpause.3:85
9595 msgid ""
9596 "On Linux, this routine is a system call only on the Sparc (sparc64)  "
9597 "architecture."
9598 msgstr ""
9599 "Linux では、このルーチンは Sparc (sparc64) アーキテクチャでのみ システムコー"
9600 "ルとなっている。"
9601
9602 #.  Libc4 and libc5 know only about the BSD version.
9603 #.  For the BSD version, one usually uses a zero
9604 #.  .I sigmask
9605 #.  to indicate that no signals are to be blocked.
9606 #. type: Plain text
9607 #: build/C/man3/sigpause.3:111
9608 msgid ""
9609 "Glibc uses the BSD version if the B<_BSD_SOURCE> feature test macro is "
9610 "defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
9611 "B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined.  Otherwise, the System V "
9612 "version is used (and B<_XOPEN_SOURCE> must be defined to obtain the "
9613 "declaration).  Since glibc 2.19, only the System V version is exposed by "
9614 "I<E<lt>signal.hE<gt>>; applications that formerly used the BSD "
9615 "B<sigpause>()  should be amended to use B<sigsuspend>(2)."
9616 msgstr ""
9617 "機能検査マクロ B<_BSD_SOURCE> が定義され、 B<_POSIX_SOURCE>, "
9618 "B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, B<_GNU_SOURCE>, B<_SVID_SOURCE> のいず"
9619 "れも定義されていない場合、 glibc は BSD 版を使う。 それ以外の場合には、"
9620 "System V 版を使用する (宣言を得るためには B<_XOPEN_SOURCE> が定義されていなけ"
9621 "ればならない)。 glibc 2.19 以降では、 I<E<lt>signal.hE<gt>> では System V 版"
9622 "だけが公開される。 BSD 版の B<sigpause>() を使用していたアプリケーションは "
9623 "B<sigsuspend>(2) を使用するように修正すべきである。"
9624
9625 #. type: Plain text
9626 #: build/C/man3/sigpause.3:119
9627 msgid ""
9628 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
9629 "B<sigblock>(3), B<sigvec>(3), B<feature_test_macros>(7)"
9630 msgstr ""
9631 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
9632 "B<sigblock>(3), B<sigvec>(3), B<feature_test_macros>(7)"
9633
9634 #. type: TH
9635 #: build/C/man2/sigpending.2:29
9636 #, no-wrap
9637 msgid "SIGPENDING"
9638 msgstr "SIGPENDING"
9639
9640 #. type: TH
9641 #: build/C/man2/sigpending.2:29
9642 #, no-wrap
9643 msgid "2013-12-11"
9644 msgstr "2013-12-11"
9645
9646 #. type: Plain text
9647 #: build/C/man2/sigpending.2:32
9648 msgid "sigpending - examine pending signals"
9649 msgstr "sigpending - 処理待ちのシグナルの検査"
9650
9651 #. type: Plain text
9652 #: build/C/man2/sigpending.2:36
9653 msgid "B<int sigpending(sigset_t *>I<set>B<);>"
9654 msgstr "B<int sigpending(sigset_t *>I<set>B<);>"
9655
9656 #. type: Plain text
9657 #: build/C/man2/sigpending.2:45
9658 msgid ""
9659 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9660 "_POSIX_SOURCE"
9661 msgstr ""
9662 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9663 "_POSIX_SOURCE"
9664
9665 #. type: Plain text
9666 #: build/C/man2/sigpending.2:53
9667 msgid ""
9668 "B<sigpending>()  returns the set of signals that are pending for delivery to "
9669 "the calling thread (i.e., the signals which have been raised while "
9670 "blocked).  The mask of pending signals is returned in I<set>."
9671 msgstr ""
9672 "B<sigpending>()  は、呼び出し元のスレッドへの配送を待っている (pending) シグ"
9673 "ナル集合 (すなわち、禁止中に発生したシグナル) を返す。 処理待ちのシグナルのマ"
9674 "スクが I<set> に格納される。"
9675
9676 #. type: Plain text
9677 #: build/C/man2/sigpending.2:59
9678 msgid ""
9679 "B<sigpending>()  returns 0 on success and -1 on error.  In the event of an "
9680 "error, I<errno> is set to indicate the cause."
9681 msgstr ""
9682 "B<sigpending>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、I<errno> "
9683 "にエラーの原因を示す値を設定する。"
9684
9685 #. type: Plain text
9686 #: build/C/man2/sigpending.2:64
9687 msgid ""
9688 "I<set> points to memory which is not a valid part of the process address "
9689 "space."
9690 msgstr ""
9691 "I<set> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
9692
9693 #. type: Plain text
9694 #: build/C/man2/sigpending.2:74
9695 msgid ""
9696 "If a signal is both blocked and has a disposition of \"ignored\", it is "
9697 "I<not> added to the mask of pending signals when generated."
9698 msgstr ""
9699 "シグナルが禁止 (ブロック) されており、かつ配送方法が \"ignored\" (無視) に"
9700 "なっている場合、そのシグナルが発生した場合に処理待ちシグナルのマスクにそのシ"
9701 "グナルは追加I<されない>。"
9702
9703 #. type: Plain text
9704 #: build/C/man2/sigpending.2:79
9705 msgid ""
9706 "The set of signals that is pending for a thread is the union of the set of "
9707 "signals that is pending for that thread and the set of signals that is "
9708 "pending for the process as a whole; see B<signal>(7)."
9709 msgstr ""
9710 "あるスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体への処理待ち"
9711 "のシグナル集合と、プロセス全体への処理待ちの シグナル集合をあわせたものであ"
9712 "る。 B<signal>(7)  参照。"
9713
9714 #. type: Plain text
9715 #: build/C/man2/sigpending.2:91
9716 msgid ""
9717 "In versions of glibc up to and including 2.2.1, there is a bug in the "
9718 "wrapper function for B<sigpending>()  which means that information about "
9719 "pending real-time signals is not correctly returned."
9720 msgstr ""
9721 "バージョン 2.2.1 以前の glibc では、 B<sigpending>()  のラッパー関数に、処理"
9722 "待ちのリアルタイムシグナルに関する情報が 正しく返されないというバグがある。"
9723
9724 #. type: Plain text
9725 #: build/C/man2/sigpending.2:99
9726 msgid ""
9727 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9728 "B<sigsuspend>(2), B<sigsetops>(3), B<signal>(7)"
9729 msgstr ""
9730 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9731 "B<sigsuspend>(2), B<sigsetops>(3), B<signal>(7)"
9732
9733 #. type: TH
9734 #: build/C/man2/sigprocmask.2:29
9735 #, no-wrap
9736 msgid "SIGPROCMASK"
9737 msgstr "SIGPROCMASK"
9738
9739 #. type: TH
9740 #: build/C/man2/sigprocmask.2:29 build/C/man2/sigsuspend.2:29
9741 #, no-wrap
9742 msgid "2013-04-19"
9743 msgstr "2013-04-19"
9744
9745 #. type: Plain text
9746 #: build/C/man2/sigprocmask.2:32
9747 msgid "sigprocmask - examine and change blocked signals"
9748 msgstr "sigprocmask - 禁止するシグナルの確認と変更"
9749
9750 #. type: Plain text
9751 #: build/C/man2/sigprocmask.2:37
9752 msgid ""
9753 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9754 "*>I<oldset>B<);>"
9755 msgstr ""
9756 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9757 "*>I<oldset>B<);>"
9758
9759 #. type: Plain text
9760 #: build/C/man2/sigprocmask.2:46
9761 msgid ""
9762 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9763 "_POSIX_SOURCE"
9764 msgstr ""
9765 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9766 "_POSIX_SOURCE"
9767
9768 #. type: Plain text
9769 #: build/C/man2/sigprocmask.2:55
9770 msgid ""
9771 "B<sigprocmask>()  is used to fetch and/or change the signal mask of the "
9772 "calling thread.  The signal mask is the set of signals whose delivery is "
9773 "currently blocked for the caller (see also B<signal>(7)  for more details)."
9774 msgstr ""
9775 "B<sigprocmask>()  を使うと、呼び出したスレッドのシグナルマスクの取得/変更がで"
9776 "きる。 シグナルマスクは、呼び出し元に対して現在配送が禁止されているシグナル"
9777 "の 集合のことである (詳細については B<signal>(7)  も参照のこと)。"
9778
9779 #. type: Plain text
9780 #: build/C/man2/sigprocmask.2:59
9781 msgid ""
9782 "The behavior of the call is dependent on the value of I<how>, as follows."
9783 msgstr "このコールの動作は I<how> の値によって決まる:"
9784
9785 #. type: TP
9786 #: build/C/man2/sigprocmask.2:59
9787 #, no-wrap
9788 msgid "B<SIG_BLOCK>"
9789 msgstr "B<SIG_BLOCK>"
9790
9791 #. type: Plain text
9792 #: build/C/man2/sigprocmask.2:64
9793 msgid ""
9794 "The set of blocked signals is the union of the current set and the I<set> "
9795 "argument."
9796 msgstr ""
9797 "禁止されたシグナルの集合は現在の値と I<set> 引き数を結合したものとなる。"
9798
9799 #. type: TP
9800 #: build/C/man2/sigprocmask.2:64
9801 #, no-wrap
9802 msgid "B<SIG_UNBLOCK>"
9803 msgstr "B<SIG_UNBLOCK>"
9804
9805 #. type: Plain text
9806 #: build/C/man2/sigprocmask.2:70
9807 msgid ""
9808 "The signals in I<set> are removed from the current set of blocked signals.  "
9809 "It is permissible to attempt to unblock a signal which is not blocked."
9810 msgstr ""
9811 "現在禁止されているシグナルの集合から I<set> にあるシグナルを取り除く。禁止さ"
9812 "れていないシグナルを取り除こうと することも認められている。"
9813
9814 #. type: TP
9815 #: build/C/man2/sigprocmask.2:70
9816 #, no-wrap
9817 msgid "B<SIG_SETMASK>"
9818 msgstr "B<SIG_SETMASK>"
9819
9820 #. type: Plain text
9821 #: build/C/man2/sigprocmask.2:74
9822 msgid "The set of blocked signals is set to the argument I<set>."
9823 msgstr "禁止されているシグナルの集合に I<set> 引き数を設定する。"
9824
9825 #. type: Plain text
9826 #: build/C/man2/sigprocmask.2:79
9827 msgid ""
9828 "If I<oldset> is non-NULL, the previous value of the signal mask is stored in "
9829 "I<oldset>."
9830 msgstr ""
9831 "I<oldset> が NULL でなければ、シグナルマスクの今までの値を I<oldset> に格納す"
9832 "る。"
9833
9834 #. type: Plain text
9835 #: build/C/man2/sigprocmask.2:88
9836 msgid ""
9837 "If I<set> is NULL, then the signal mask is unchanged (i.e., I<how> is "
9838 "ignored), but the current value of the signal mask is nevertheless returned "
9839 "in I<oldset> (if it is not NULL)."
9840 msgstr ""
9841 "I<set> が NULL であれば、シグナルマスクは変更されない (すなわち、 I<how> は無"
9842 "視される)。 I<set> の値にかかわらず、現在のシグナルマスクの値は I<oldset> に"
9843 "入れて返される (但し、 I<oldset> が NULL でない場合)。"
9844
9845 #. type: Plain text
9846 #: build/C/man2/sigprocmask.2:93
9847 msgid ""
9848 "The use of B<sigprocmask>()  is unspecified in a multithreaded process; see "
9849 "B<pthread_sigmask>(3)."
9850 msgstr ""
9851 "マルチスレッドのプロセスで B<sigprocmask>()  を使用した場合の動作は規定されて"
9852 "いない。 B<pthread_sigmask>(3)  を参照のこと。"
9853
9854 #. type: Plain text
9855 #: build/C/man2/sigprocmask.2:99
9856 msgid ""
9857 "B<sigprocmask>()  returns 0 on success and -1 on error.  In the event of an "
9858 "error, I<errno> is set to indicate the cause."
9859 msgstr ""
9860 "B<sigprocmask>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、 "
9861 "I<errno> にエラーの原因を示す値を設定する。"
9862
9863 #. type: Plain text
9864 #: build/C/man2/sigprocmask.2:107
9865 msgid ""
9866 "the I<set> or I<oldset> argument points outside the process's allocated "
9867 "address space."
9868 msgstr ""
9869 "引き数 I<set> か I<oldset> がプロセスに割り当てられたアドレス空間の外を指して"
9870 "いる。"
9871
9872 #. type: Plain text
9873 #: build/C/man2/sigprocmask.2:112
9874 msgid "The value specified in I<how> was invalid."
9875 msgstr "I<how> に指定された値が有効ではない。"
9876
9877 #. type: Plain text
9878 #: build/C/man2/sigprocmask.2:118
9879 msgid ""
9880 "It is not possible to block B<SIGKILL> or B<SIGSTOP>.  Attempts to do so are "
9881 "silently ignored."
9882 msgstr ""
9883 "B<SIGKILL> や B<SIGSTOP> を禁止することはできない。 禁止しようとしても黙って"
9884 "無視される。"
9885
9886 #. type: Plain text
9887 #: build/C/man2/sigprocmask.2:120
9888 msgid "Each of the threads in a process has its own signal mask."
9889 msgstr "プロセス内の各スレッドはそれぞれ専用のシグナルマスクを持つ。"
9890
9891 #. type: Plain text
9892 #: build/C/man2/sigprocmask.2:140
9893 msgid ""
9894 "If B<SIGBUS>, B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> are generated while they "
9895 "are blocked, the result is undefined, unless the signal was generated by "
9896 "B<kill>(2), B<sigqueue>(3), or B<raise>(3)."
9897 msgstr ""
9898 "シグナル B<SIGBUS>, B<SIGFPE>, B<SIGILL>, B<SIGSEGV> が禁止されている間に生成"
9899 "された場合で、 そのシグナルが B<kill>(2), B<sigqueue>(3), B<raise>(3)  によっ"
9900 "て生成されたものでないときには、 その後の動作は未定義である。"
9901
9902 #. type: Plain text
9903 #: build/C/man2/sigprocmask.2:155
9904 msgid ""
9905 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9906 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9907 "B<signal>(7)"
9908 msgstr ""
9909 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9910 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9911 "B<signal>(7)"
9912
9913 #. type: TH
9914 #: build/C/man3/sigqueue.3:28
9915 #, no-wrap
9916 msgid "SIGQUEUE"
9917 msgstr "SIGQUEUE"
9918
9919 #. type: TH
9920 #: build/C/man3/sigqueue.3:28 build/C/man3/sigwait.3:26
9921 #, no-wrap
9922 msgid "2013-12-16"
9923 msgstr "2013-12-16"
9924
9925 #. type: Plain text
9926 #: build/C/man3/sigqueue.3:31
9927 msgid "sigqueue - queue a signal and data to a process"
9928 msgstr "sigqueue - シグナルとデータをプロセスに送る"
9929
9930 #. type: Plain text
9931 #: build/C/man3/sigqueue.3:35
9932 msgid ""
9933 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9934 ">I<value>B<);>"
9935 msgstr ""
9936 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9937 ">I<value>B<);>"
9938
9939 #. type: Plain text
9940 #: build/C/man3/sigqueue.3:43
9941 msgid "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9942 msgstr "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9943
9944 #. type: Plain text
9945 #: build/C/man3/sigqueue.3:55
9946 msgid ""
9947 "B<sigqueue>()  sends the signal specified in I<sig> to the process whose PID "
9948 "is given in I<pid>.  The permissions required to send a signal are the same "
9949 "as for B<kill>(2).  As with B<kill>(2), the null signal (0) can be used to "
9950 "check if a process with a given PID exists."
9951 msgstr ""
9952 "B<sigqueue>()  は I<sig> で指定されたシグナルを、PID が I<pid> であるプロセス"
9953 "に送る。 シグナルを送るのに必要な権限は B<kill>(2)  と同じである。 "
9954 "B<kill>(2)  と同様に、ヌル・シグナル (0) を使って 指定した PID のプロセスが存"
9955 "在するかをチェックすることができる。"
9956
9957 #. type: Plain text
9958 #: build/C/man3/sigqueue.3:60
9959 msgid ""
9960 "The I<value> argument is used to specify an accompanying item of data "
9961 "(either an integer or a pointer value) to be sent with the signal, and has "
9962 "the following type:"
9963 msgstr ""
9964 "I<value> 引き数はシグナルと一緒に送るデータの付属アイテムを指定する。 "
9965 "I<value> は (整数またはポインタの値であり) 以下のような型である。"
9966
9967 #. type: Plain text
9968 #: build/C/man3/sigqueue.3:67
9969 #, no-wrap
9970 msgid ""
9971 "union sigval {\n"
9972 "    int   sival_int;\n"
9973 "    void *sival_ptr;\n"
9974 "};\n"
9975 msgstr ""
9976 "union sigval {\n"
9977 "    int   sival_int;\n"
9978 "    void *sival_ptr;\n"
9979 "};\n"
9980
9981 #. type: Plain text
9982 #: build/C/man3/sigqueue.3:83
9983 msgid ""
9984 "If the receiving process has installed a handler for this signal using the "
9985 "B<SA_SIGINFO> flag to B<sigaction>(2), then it can obtain this data via the "
9986 "I<si_value> field of the I<siginfo_t> structure passed as the second "
9987 "argument to the handler.  Furthermore, the I<si_code> field of that "
9988 "structure will be set to B<SI_QUEUE>."
9989 msgstr ""
9990 "受取先のプロセスに、このシグナルに対するハンドラを (B<sigaction>(2)  に "
9991 "B<SA_SIGINFO> を指定して) インストールしておくと、 そのハンドラの第 2 引き数"
9992 "に渡される I<siginfo_t> 構造体の I<si_value> フィールドによって、このデータを"
9993 "取得できる。 さらに、この構造体の I<si_code> フィールドは B<SI_QUEUE> に設定"
9994 "される。"
9995
9996 #. type: Plain text
9997 #: build/C/man3/sigqueue.3:91
9998 msgid ""
9999 "On success, B<sigqueue>()  returns 0, indicating that the signal was "
10000 "successfully queued to the receiving process.  Otherwise, -1 is returned and "
10001 "I<errno> is set to indicate the error."
10002 msgstr ""
10003 "成功した場合、 B<sigqueue>()  は 0 を返す。 これは受け取り側プロセスの待ち行"
10004 "列に シグナルが正しく入れられたことを示す。 失敗した場合は -1 が返され、 "
10005 "I<errno> がエラーを表す値に設定される。"
10006
10007 #. type: Plain text
10008 #: build/C/man3/sigqueue.3:102
10009 msgid "I<sig> was invalid."
10010 msgstr "I<sig> が不正である。"
10011
10012 #. type: Plain text
10013 #: build/C/man3/sigqueue.3:108
10014 msgid ""
10015 "The process does not have permission to send the signal to the receiving "
10016 "process.  For the required permissions, see B<kill>(2)."
10017 msgstr ""
10018 "このプロセスには、受け取り側プロセスにシグナルを送る権限がない。 必要な権限に"
10019 "ついては、 B<kill>(2)  を参照すること。"
10020
10021 #. type: Plain text
10022 #: build/C/man3/sigqueue.3:112
10023 msgid "No process has a PID matching I<pid>."
10024 msgstr "I<pid> にマッチする PID のプロセスがない。"
10025
10026 #. type: Plain text
10027 #: build/C/man3/sigqueue.3:114
10028 msgid "This system call first appeared in Linux 2.2."
10029 msgstr "このシステムコールは Linux 2.2 で初めて登場した。"
10030
10031 #. type: Plain text
10032 #: build/C/man3/sigqueue.3:119
10033 msgid "The B<sigqueue>()  function is thread-safe."
10034 msgstr "B<sigqueue>() 関数はスレッドセーフである。"
10035
10036 #. type: Plain text
10037 #: build/C/man3/sigqueue.3:129
10038 msgid ""
10039 "If this function results in the sending of a signal to the process that "
10040 "invoked it, and that signal was not blocked by the calling thread, and no "
10041 "other threads were willing to handle this signal (either by having it "
10042 "unblocked, or by waiting for it using B<sigwait>(3)), then at least some "
10043 "signal must be delivered to this thread before this function returns."
10044 msgstr ""
10045 "この関数を呼び出したプロセスにこの関数がシグナルを送ったときに、 シグナルが呼"
10046 "び出し側スレッドにブロックされず、 かつ (シグナルがブロックされなかった、また"
10047 "は B<sigwait>(3)  を使用するのを待っていることにより)  このシグナルを扱うス"
10048 "レッドが何もない場合は、 この関数がリターンする前に、少なくとも そのスレッド"
10049 "に対してシグナルが配送されていなければならない。"
10050
10051 #. type: Plain text
10052 #: build/C/man3/sigqueue.3:144
10053 msgid ""
10054 "On Linux, this function is implemented using the B<rt_sigqueueinfo>(2)  "
10055 "system call.  The system call differs in its third argument, which is the "
10056 "I<siginfo_t> structure that will be supplied to the receiving process's "
10057 "signal handler or returned by the receiving process's B<sigtimedwait>(2)  "
10058 "call.  Inside the glibc B<sigqueue>()  wrapper, this argument, I<uinfo>, is "
10059 "initialized as follows:"
10060 msgstr ""
10061 "Linux では、この関数は B<rt_sigqueueinfo>(2)  システムコールを使って実装され"
10062 "ている。 両者には 3 番目の引き数に違いがあり、 B<rt_sigqueueinfo>(2)  では 3 "
10063 "番目の引き数は I<siginfo_t> 構造体である。 I<siginfo_t> 構造体は、シグナルを"
10064 "受信するプロセスのシグナルハンドラに渡されたり、 シグナル受信プロセスの "
10065 "B<sigtimedwait>(2)  システムコールから返されたりする。 glibc の "
10066 "B<sigqueue>()  ラッパー関数内部では、 この引き数 I<uinfo> は以下のように初期"
10067 "化される。"
10068
10069 #. type: Plain text
10070 #: build/C/man3/sigqueue.3:152
10071 #, no-wrap
10072 msgid ""
10073 "uinfo.si_signo = sig;      /* Argument supplied to sigqueue() */\n"
10074 "uinfo.si_code = SI_QUEUE;\n"
10075 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
10076 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
10077 "uinfo.si_value = val;      /* Argument supplied to sigqueue() */\n"
10078 msgstr ""
10079 "uinfo.si_signo = sig;      /* Argument supplied to sigqueue() */\n"
10080 "uinfo.si_code = SI_QUEUE;\n"
10081 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
10082 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
10083 "uinfo.si_value = val;      /* Argument supplied to sigqueue() */\n"
10084
10085 #. type: Plain text
10086 #: build/C/man3/sigqueue.3:162
10087 msgid ""
10088 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
10089 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
10090 msgstr ""
10091 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
10092 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
10093
10094 #. type: TH
10095 #: build/C/man2/sigreturn.2:30
10096 #, no-wrap
10097 msgid "SIGRETURN"
10098 msgstr "SIGRETURN"
10099
10100 #. type: Plain text
10101 #: build/C/man2/sigreturn.2:33
10102 msgid "sigreturn - return from signal handler and cleanup stack frame"
10103 msgstr "sigreturn - シグナルハンドラーから返り、スタックを掃除する"
10104
10105 #. type: Plain text
10106 #: build/C/man2/sigreturn.2:35
10107 msgid "B<int sigreturn(...);>"
10108 msgstr "B<int sigreturn(...);>"
10109
10110 #.  See arch/x86/kernel/signal.c::__setup_frame() [in 3.17 source code]
10111 #. type: Plain text
10112 #: build/C/man2/sigreturn.2:45
10113 msgid ""
10114 "If the Linux kernel determines that an unblocked signal is pending for a "
10115 "process, then, at the next transition back to user mode in that process (e."
10116 "g., upon return from a system call or when the process is rescheduled onto "
10117 "the CPU), it saves various pieces of process context (processor status word, "
10118 "registers, signal mask, and signal stack settings)  into the user-space "
10119 "stack."
10120 msgstr ""
10121 "Linux カーネルがプロセスに対してブロックされていないシグナルが処理待ちと判定"
10122 "した場合、 そのプロセスの次回のユーザーモードへの遷移 (すなわち、システムコー"
10123 "ルからのリターン時やそのプロセスが CPU に再スケジュールされる際)、 カーネルは"
10124 "プロセスコンテキストの種々の値 (プロセッサーのステータスワード、 レジスタ、 "
10125 "シグナルマスク、 シグナルスタック設定) をユーザー空間のスタックに保存する。"
10126
10127 #. type: Plain text
10128 #: build/C/man2/sigreturn.2:52
10129 msgid ""
10130 "The kernel also arranges that, during the transition back to user mode, the "
10131 "signal handler is called, and that, upon return from the handler, control "
10132 "passes to a piece of user-space code commonly called the \"signal trampoline"
10133 "\".  The signal trampoline code in turn calls B<sigreturn>()."
10134 msgstr ""
10135 "また、 カーネルは、 ユーザーモードへの遷移時にシグナルハンドラーが呼び出さ"
10136 "れ、 ハンドラーからのリターン時に、 制御が \"signal trampoline\" と呼ばれる"
10137 "ユーザー空間コードブロックに渡されるように、準備を行う。 signal trampoline の"
10138 "コードが B<sigreturn>() を呼び出す。"
10139
10140 #. type: Plain text
10141 #: build/C/man2/sigreturn.2:65
10142 msgid ""
10143 "This B<sigreturn>()  call undoes everything that was done\\(emchanging the "
10144 "process's signal mask, switching signal stacks (see "
10145 "B<sigaltstack>(2))\\(emin order to invoke the signal handler.  It restores "
10146 "the process's signal mask, switches stacks, and restores the process's "
10147 "context (processor flags and registers, including the stack pointer and "
10148 "instruction pointer), so that the process resumes execution at the point "
10149 "where it was interrupted by the signal."
10150 msgstr ""
10151 "B<sigreturn>()  は、シグナルハンドラを起動するために行ったことの全て \\(em プ"
10152 "ロセスのシグナルマスクの変更、 シグナルスタックの切り替え "
10153 "(B<sigaltstack>(2)  参照) \\(em の取り消しを行う。 プロセスのシグナルマスクの"
10154 "復元、 スタックの切り替え、 プロセスのコンテキスト (プロセッサフラグ、 レジス"
10155 "タ (スタックポインター、 命令ポインターを含む)) の復元を行い、 プロセスがシグ"
10156 "ナルにより割り込まれた場所から実行を再開できるようにする。"
10157
10158 #. type: Plain text
10159 #: build/C/man2/sigreturn.2:68
10160 msgid "B<sigreturn>()  never returns."
10161 msgstr "B<sigreturn>()  が返ることはない。"
10162
10163 #. type: Plain text
10164 #: build/C/man2/sigreturn.2:74
10165 msgid ""
10166 "Many UNIX-type systems have a B<sigreturn>()  system call or near "
10167 "equivalent.  However, this call is not specified in POSIX, and details of "
10168 "its behavior vary across systems."
10169 msgstr ""
10170 "多くの UNIX 系のシステムには B<sigreturn>() システムコールか似たようなシステ"
10171 "ムコールがある。 しかしながら、 このシステムコールは POSIX には規定されておら"
10172 "ず、 その動作の詳細はシステムにより異なる。"
10173
10174 #. type: Plain text
10175 #: build/C/man2/sigreturn.2:83
10176 msgid ""
10177 "B<sigreturn>()  exists only to allow the implementation of signal handlers.  "
10178 "It should B<never> be called directly.  Details of the arguments (if any) "
10179 "passed to B<sigreturn>()  vary depending on the architecture."
10180 msgstr ""
10181 "B<sigreturn>() はシグナルハンドラーを実装するためだけに存在している。 これら"
10182 "を直接呼び出すのはB<決して>行うべきではない。 B<sigreturn>() に渡される引き数"
10183 "の詳細はアーキテクチャーにより異なる。"
10184
10185 #.  See, for example, sysdeps/unix/sysv/linux/i386/sigaction.c and
10186 #.  sysdeps/unix/sysv/linux/x86_64/sigaction.c in the glibc (2.20) source.
10187 #. type: Plain text
10188 #: build/C/man2/sigreturn.2:106
10189 msgid ""
10190 "Once upon a time, UNIX systems placed the signal trampoline code onto the "
10191 "user stack.  Nowadays, pages of the user stack are protected so as to "
10192 "disallow code execution.  Thus, on contemporary Linux systems, depending on "
10193 "the architecture, the signal trampoline code lives either in the B<vdso>(7)  "
10194 "or in the C library.  In the latter case, the C library supplies the "
10195 "location of the trampoline code using the I<sa_restorer> field of the "
10196 "I<sigaction> structure that is passed to B<sigaction>(2), and sets the "
10197 "B<SA_RESTORER> flag in the I<sa_flags> field."
10198 msgstr ""
10199 "かつて、 UNIX システムでは signal trampoline コードがユーザースタックに置かれ"
10200 "ていた。 今日では、 ユーザースタックのページは保護され、 コードの実行は禁止さ"
10201 "れている。 したがって、 現代の Linux システムでは、 アーキテクチャー依存では"
10202 "あるが、 signal trampoline コードは B<vdso>(7) 内もしくは C ライブラリ内に置"
10203 "かれる。 後者の場合、 C ライブラリは trampoline code の場所を "
10204 "B<sigaction>(2) に渡される I<sigaction> 構造体の I<sa_restorer> フィールドを"
10205 "使って渡し、 I<sa_flags> フィールドの B<SA_RESTORER> フラグをセットする。"
10206
10207 #. type: Plain text
10208 #: build/C/man2/sigreturn.2:115
10209 msgid ""
10210 "The saved process context information is placed in a I<ucontext_t> structure "
10211 "(see I<E<lt>sys/ucontext.hE<gt>>).  That structure is visible within the "
10212 "signal handler as the third argument of a handler established with the "
10213 "B<SA_SIGINFO> flag."
10214 msgstr ""
10215 "保存されたプロセスコンテキスト情報は I<ucontext_t>構造体に置かれる "
10216 "(I<E<lt>sys/ucontext.hE<gt>> 参照)。 この構造体は、 B<SA_SIGINFO> フラグを付"
10217 "けて設定されたシグナルハンドラーの第 3 引き数としてシングルハンドラー内で参照"
10218 "できる。"
10219
10220 #. type: Plain text
10221 #: build/C/man2/sigreturn.2:123
10222 msgid ""
10223 "On some other UNIX systems, the operation of the signal trampoline differs a "
10224 "little.  In particular, on some systems, upon transitioning back to user "
10225 "mode, the kernel passes control to the trampoline (rather than the signal "
10226 "handler), and the trampoline code calls the signal handler (and then calls "
10227 "B<sigreturn>()  once the handler returns)."
10228 msgstr ""
10229 "他のいくつかの UNIX システムでは、 signal trampoline の扱いは少し異なる。 特"
10230 "に、 いくつかのシステムでは、 ユーザーモードに戻る際に、 カーネルは制御を (シ"
10231 "グナルハンドラーではなく) trampoline に渡し、 trampoline コードがシグナルハン"
10232 "ドラーを呼び出す (その後ハンドラーが返ると B<sigreturn>() を呼び出す)。"
10233
10234 #. type: Plain text
10235 #: build/C/man2/sigreturn.2:130
10236 msgid ""
10237 "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), "
10238 "B<getcontext>(3), B<signal>(7)"
10239 msgstr ""
10240 "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), "
10241 "B<getcontext>(3), B<signal>(7)"
10242
10243 #. type: TH
10244 #: build/C/man3/sigset.3:26
10245 #, no-wrap
10246 msgid "SIGSET"
10247 msgstr "SIGSET"
10248
10249 #. type: Plain text
10250 #: build/C/man3/sigset.3:29
10251 msgid "sigset, sighold, sigrelse, sigignore - System V signal API"
10252 msgstr "sigset, sighold, sigrelse, sigignore - System V 版シグナル API"
10253
10254 #. type: Plain text
10255 #: build/C/man3/sigset.3:35
10256 msgid "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
10257 msgstr "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
10258
10259 #. type: Plain text
10260 #: build/C/man3/sigset.3:37
10261 msgid "B<int sighold(int >I<sig>B<);>"
10262 msgstr "B<int sighold(int >I<sig>B<);>"
10263
10264 #. type: Plain text
10265 #: build/C/man3/sigset.3:39
10266 msgid "B<int sigrelse(int >I<sig>B<);>"
10267 msgstr "B<int sigrelse(int >I<sig>B<);>"
10268
10269 #. type: Plain text
10270 #: build/C/man3/sigset.3:41
10271 msgid "B<int sigignore(int >I<sig>B<);>"
10272 msgstr "B<int sigignore(int >I<sig>B<);>"
10273
10274 #. type: Plain text
10275 #: build/C/man3/sigset.3:52
10276 msgid "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
10277 msgstr "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
10278
10279 #. type: Plain text
10280 #: build/C/man3/sigset.3:56
10281 msgid ""
10282 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
10283 msgstr ""
10284 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
10285
10286 #. type: Plain text
10287 #: build/C/man3/sigset.3:65
10288 msgid ""
10289 "These functions are provided in glibc as a compatibility interface for "
10290 "programs that make use of the historical System V signal API.  This API is "
10291 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
10292 "B<sigprocmask>(2), etc.)"
10293 msgstr ""
10294 "これらの関数は、昔ながらの System V 版シグナル API を使用しているプログラム "
10295 "に対して互換性のあるインタフェースを glibc で提供するものである。 この API は"
10296 "過去のものであり、新しいアプリケーションでは POSIX シグナル API "
10297 "(B<sigaction>(2), B<sigprocmask>(2)  など) を使用すべきである。"
10298
10299 #. type: Plain text
10300 #: build/C/man3/sigset.3:74
10301 msgid ""
10302 "The B<sigset>()  function modifies the disposition of the signal I<sig>.  "
10303 "The I<disp> argument can be the address of a signal handler function, or one "
10304 "of the following constants:"
10305 msgstr ""
10306 "関数 B<sigset>()  はシグナル I<sig> のシグナルハンドラの動作を変更する。 "
10307 "I<disp> 引き数には、シグナルハンドラ関数のアドレスか、 以下の定数のいずれか一"
10308 "つを指定できる。"
10309
10310 #. type: TP
10311 #: build/C/man3/sigset.3:74
10312 #, no-wrap
10313 msgid "B<SIG_DFL>"
10314 msgstr "B<SIG_DFL>"
10315
10316 #. type: Plain text
10317 #: build/C/man3/sigset.3:79
10318 msgid "Reset the disposition of I<sig> to the default."
10319 msgstr "I<sig> の動作をデフォルトにリセットする。"
10320
10321 #. type: TP
10322 #: build/C/man3/sigset.3:79
10323 #, no-wrap
10324 msgid "B<SIG_IGN>"
10325 msgstr "B<SIG_IGN>"
10326
10327 #. type: Plain text
10328 #: build/C/man3/sigset.3:83
10329 msgid "Ignore I<sig>."
10330 msgstr "I<sig> を無視する。"
10331
10332 #. type: TP
10333 #: build/C/man3/sigset.3:83
10334 #, no-wrap
10335 msgid "B<SIG_HOLD>"
10336 msgstr "B<SIG_HOLD>"
10337
10338 #. type: Plain text
10339 #: build/C/man3/sigset.3:90
10340 msgid ""
10341 "Add I<sig> to the process's signal mask, but leave the disposition of I<sig> "
10342 "unchanged."
10343 msgstr ""
10344 "そのプロセスのシグナルマスクに I<sig> を追加するが、 I<sig> の動作は変更しな"
10345 "い。"
10346
10347 #. type: Plain text
10348 #: build/C/man3/sigset.3:96
10349 msgid ""
10350 "If I<disp> specifies the address of a signal handler, then I<sig> is added "
10351 "to the process's signal mask during execution of the handler."
10352 msgstr ""
10353 "I<disp> にシグナルハンドラのアドレスが指定された場合、 シグナルハンドラの実行"
10354 "中は、そのプロセスのシグナルマスクに I<sig> が追加される。"
10355
10356 #. type: Plain text
10357 #: build/C/man3/sigset.3:104
10358 msgid ""
10359 "If I<disp> was specified as a value other than B<SIG_HOLD>, then I<sig> is "
10360 "removed from the process's signal mask."
10361 msgstr ""
10362 "I<disp> に B<SIG_HOLD> 以外の値が指定された場合、 そのプロセスのシグナルマス"
10363 "クから I<sig> が削除される。"
10364
10365 #. type: Plain text
10366 #: build/C/man3/sigset.3:110 build/C/man3/sigvec.3:87
10367 msgid "The dispositions for B<SIGKILL> and B<SIGSTOP> cannot be changed."
10368 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> に対する動作は変更できない。"
10369
10370 #. type: Plain text
10371 #: build/C/man3/sigset.3:116
10372 msgid ""
10373 "The B<sighold>()  function adds I<sig> to the calling process's signal mask."
10374 msgstr ""
10375 "関数 B<sighold>()  は、呼び出し元プロセスのシグナルマスクに I<sig> を追加す"
10376 "る。"
10377
10378 #. type: Plain text
10379 #: build/C/man3/sigset.3:122
10380 msgid ""
10381 "The B<sigrelse>()  function removes I<sig> from the calling process's signal "
10382 "mask."
10383 msgstr ""
10384 "関数 B<sigrelse>()  は、呼び出し元プロセスのシグナルマスクから I<sig> を削除"
10385 "する。"
10386
10387 #. type: Plain text
10388 #: build/C/man3/sigset.3:129
10389 msgid ""
10390 "The B<sigignore>()  function sets the disposition of I<sig> to B<SIG_IGN>."
10391 msgstr "関数 B<sigignore>()  は、 I<sig> の動作を B<SIG_IGN> に設定する。"
10392
10393 #. type: Plain text
10394 #: build/C/man3/sigset.3:145
10395 msgid ""
10396 "On success, B<sigset>()  returns B<SIG_HOLD> if I<sig> was blocked before "
10397 "the call, or the signal's previous disposition if it was not blocked before "
10398 "the call.  On error, B<sigset>()  returns -1, with I<errno> set to indicate "
10399 "the error.  (But see BUGS below.)"
10400 msgstr ""
10401 "B<sigset>()  は成功すると、 呼び出し前に I<sig> がブロックされていた場合には "
10402 "B<SIG_HOLD> を返し、 ブロックされていなかった場合には 変更前のそのシグナルの"
10403 "動作を返す。 エラーの場合、 B<sigset>()  は -1 を返し、 I<errno> にエラーを示"
10404 "す値をセットする。 但し、以下の「バグ」の節も参照のこと。"
10405
10406 #. type: Plain text
10407 #: build/C/man3/sigset.3:154
10408 msgid ""
10409 "The B<sighold>(), B<sigrelse>(), and B<sigignore>()  functions return 0 on "
10410 "success; on error, these functions return -1 and set I<errno> to indicate "
10411 "the error."
10412 msgstr ""
10413 "関数 B<sighold>(), B<sigrelse>(), B<sigignore>()  は成功すると 0 を返す。エ"
10414 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値をセットする。"
10415
10416 #. type: Plain text
10417 #: build/C/man3/sigset.3:161
10418 msgid ""
10419 "For B<sigset>()  see the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
10420 msgstr ""
10421 "B<sigset>()  に関しては、 B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」"
10422 "の節を参照。"
10423
10424 #. type: Plain text
10425 #: build/C/man3/sigset.3:168
10426 msgid ""
10427 "For B<sighold>()  and B<sigrelse>()  see the ERRORS under B<sigprocmask>(2)."
10428 msgstr ""
10429 "B<sighold>()  と B<sigrelse>()  に関しては、 B<sigprocmask>(2)  の「エラー」"
10430 "の節を参照。"
10431
10432 #. type: Plain text
10433 #: build/C/man3/sigset.3:173
10434 msgid "For B<sigignore>(), see the errors under B<sigaction>(2)."
10435 msgstr "B<sigignore>()  に関しては、 B<sigaction>(2)  の「エラー」の節を参照。"
10436
10437 #. type: Plain text
10438 #: build/C/man3/sigset.3:190
10439 msgid ""
10440 "SVr4, POSIX.1-2001.  These functions are obsolete: do not use them in new "
10441 "programs.  POSIX.1-2008 marks B<sighold>(), B<sigignore>(), B<sigpause>(), "
10442 "B<sigrelse>(), and B<sigset>()  as obsolete, recommending the use of "
10443 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), and "
10444 "B<sigsuspend>(2)  instead."
10445 msgstr ""
10446 "SVr4, POSIX.1-2001.  これらの関数は廃止予定である。新しいプログラムでは使用し"
10447 "ないこと。 POSIX.1-2008 は、 B<sighold>(), B<sigignore>(), B<sigpause>(), "
10448 "B<sigrelse>(), B<sigset>()  を廃止予定としている。 代わりに、 "
10449 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), B<sigsuspend>(2)  "
10450 "の使用が推奨されている。"
10451
10452 #. type: Plain text
10453 #: build/C/man3/sigset.3:192
10454 msgid "These functions appeared in glibc version 2.1."
10455 msgstr "これらの関数は glibc 2.1 で登場した。"
10456
10457 #. type: Plain text
10458 #: build/C/man3/sigset.3:198
10459 msgid ""
10460 "The I<sighandler_t> type is a GNU extension; it is used on this page only to "
10461 "make the B<sigset>()  prototype more easily readable."
10462 msgstr ""
10463 "I<sighandler_t> 型は GNU による拡張であり、この man page で B<sigset>()  のプ"
10464 "ロトタイプをより読みやすくするために使われているだけである。"
10465
10466 #. type: Plain text
10467 #: build/C/man3/sigset.3:206
10468 msgid ""
10469 "The B<sigset>()  function provides reliable signal handling semantics (as "
10470 "when calling B<sigaction>(2)  with I<sa_mask> equal to 0)."
10471 msgstr ""
10472 "関数 B<sigset>()  は信頼性のあるシグナル処理機構を提供する (I<sa_mask> を 0 "
10473 "で B<sigaction>(2)  を呼び出したときと同様)。"
10474
10475 #. type: Plain text
10476 #: build/C/man3/sigset.3:224
10477 msgid ""
10478 "On System V, the B<signal>()  function provides unreliable semantics (as "
10479 "when calling B<sigaction>(2)  with I<sa_mask> equal to I<SA_RESETHAND | "
10480 "SA_NODEFER>).  On BSD, B<signal>()  provides reliable semantics.  "
10481 "POSIX.1-2001 leaves these aspects of B<signal>()  unspecified.  See "
10482 "B<signal>(2)  for further details."
10483 msgstr ""
10484 "System V では、関数 B<signal>()  が提供する処理機構は信頼性のないものである "
10485 "(I<sa_mask> を I<SA_RESETHAND | SA_NODEFER> として B<sigaction>(2)  を呼び出"
10486 "したときと同様)。 BSD では、 B<signal>()  は信頼性のある処理機構を提供する。 "
10487 "POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままとなっている。 さら"
10488 "なる詳細については B<signal>(2)  を参照。"
10489
10490 #. type: Plain text
10491 #: build/C/man3/sigset.3:232 build/C/man3/sigvec.3:272
10492 msgid ""
10493 "In order to wait for a signal, BSD and System V both provided a function "
10494 "named B<sigpause>(3), but this function has a different argument on the two "
10495 "systems.  See B<sigpause>(3)  for details."
10496 msgstr ""
10497 "BSD と System V のどちらのシステムでも シグナルを待つために、 "
10498 "B<sigpause>(3)  という名前の関数が提供されているが、 この関数の引き数は両方の"
10499 "システムで異なる。 詳細は B<sigpause>(3)  を参照。"
10500
10501 #. type: Plain text
10502 #: build/C/man3/sigset.3:241
10503 msgid ""
10504 "In versions of glibc before 2.2, B<sigset>()  did not unblock I<sig> if "
10505 "I<disp> was specified as a value other than B<SIG_HOLD>."
10506 msgstr ""
10507 "2.2 より前のバージョンの glibc では、 I<disp> に B<SIG_HOLD> 以外の値が指定さ"
10508 "れた場合、 I<sig> のブロック解除を行っていなかった。"
10509
10510 #.  See http://sourceware.org/bugzilla/show_bug.cgi?id=1951
10511 #. type: Plain text
10512 #: build/C/man3/sigset.3:266
10513 msgid ""
10514 "In versions of glibc before 2.5, B<sigset>()  does not correctly return the "
10515 "previous disposition of the signal in two cases.  First, if I<disp> is "
10516 "specified as B<SIG_HOLD>, then a successful B<sigset>()  always returns "
10517 "B<SIG_HOLD>.  Instead, it should return the previous disposition of the "
10518 "signal (unless the signal was blocked, in which case B<SIG_HOLD> should be "
10519 "returned).  Second, if the signal is currently blocked, then the return "
10520 "value of a successful B<sigset>()  should be B<SIG_HOLD>.  Instead, the "
10521 "previous disposition of the signal is returned.  These problems have been "
10522 "fixed since glibc 2.5."
10523 msgstr ""
10524 "2.3.5 以前の全てのバージョンの glibc では、 B<sigset>()  が変更前のシグナルの"
10525 "動作を正しく返さない場合が 2つある。 一つめは、 I<disp> に B<SIG_HOLD> が指定"
10526 "されると、成功した場合 B<sigset>()  は常に B<SIG_HOLD> を返すことである。 正"
10527 "しくは、(シグナルがブロックされていなかった場合には)  変更前のシグナルの動作"
10528 "を返すべきである (シグナルがブロックされていた場合には、 B<SIG_HOLD> が返され"
10529 "る)。 もう一つは、シグナルが現在ブロックされている場合には、 成功した場合の "
10530 "B<sigset>()  の返り値は B<SIG_HOLD> になるべきであるが、実際には 変更前のシグ"
10531 "ナルの動作が返されることである。 これらの問題は glibc 2.5 以降で修正されてい"
10532 "る。"
10533
10534 #. type: Plain text
10535 #: build/C/man3/sigset.3:276
10536 msgid ""
10537 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10538 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
10539 msgstr ""
10540 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10541 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
10542
10543 #. type: TH
10544 #: build/C/man3/sigsetops.3:31
10545 #, no-wrap
10546 msgid "SIGSETOPS"
10547 msgstr "SIGSETOPS"
10548
10549 #. type: TH
10550 #: build/C/man3/sigsetops.3:31
10551 #, no-wrap
10552 msgid "2014-04-14"
10553 msgstr "2014-04-14"
10554
10555 #. type: Plain text
10556 #: build/C/man3/sigsetops.3:35
10557 msgid ""
10558 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX signal "
10559 "set operations"
10560 msgstr ""
10561 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX シグナル集"
10562 "合の操作"
10563
10564 #. type: Plain text
10565 #: build/C/man3/sigsetops.3:39
10566 msgid "B<int sigemptyset(sigset_t *>I<set>B<);>"
10567 msgstr "B<int sigemptyset(sigset_t *>I<set>B<);>"
10568
10569 #. type: Plain text
10570 #: build/C/man3/sigsetops.3:41
10571 msgid "B<int sigfillset(sigset_t *>I<set>B<);>"
10572 msgstr "B<int sigfillset(sigset_t *>I<set>B<);>"
10573
10574 #. type: Plain text
10575 #: build/C/man3/sigsetops.3:43
10576 msgid "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10577 msgstr "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10578
10579 #. type: Plain text
10580 #: build/C/man3/sigsetops.3:45
10581 msgid "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10582 msgstr "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10583
10584 #. type: Plain text
10585 #: build/C/man3/sigsetops.3:47
10586 msgid "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
10587 msgstr "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
10588
10589 #. type: Plain text
10590 #: build/C/man3/sigsetops.3:59
10591 msgid ""
10592 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10593 "B<sigismember>():"
10594 msgstr ""
10595 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10596 "B<sigismember>():"
10597
10598 #. type: Plain text
10599 #: build/C/man3/sigsetops.3:61
10600 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10601 msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10602
10603 #. type: Plain text
10604 #: build/C/man3/sigsetops.3:65
10605 msgid "These functions allow the manipulation of POSIX signal sets."
10606 msgstr "これらの関数は POSIX シグナル集合(signal set)を操作するため使用する。"
10607
10608 #. type: Plain text
10609 #: build/C/man3/sigsetops.3:70
10610 msgid ""
10611 "B<sigemptyset>()  initializes the signal set given by I<set> to empty, with "
10612 "all signals excluded from the set."
10613 msgstr ""
10614 "B<sigemptyset>()  は I<set> で与えられたシグナル集合を空に初期化し、シグナル"
10615 "が一つも 含まれていない状態にする。"
10616
10617 #. type: Plain text
10618 #: build/C/man3/sigsetops.3:75
10619 msgid "B<sigfillset>()  initializes I<set> to full, including all signals."
10620 msgstr ""
10621 "B<sigfillset>()  は I<set> で与えられたシグナル集合が全てのシグナルを含むよう"
10622 "にする。"
10623
10624 #. type: Plain text
10625 #: build/C/man3/sigsetops.3:83
10626 msgid ""
10627 "B<sigaddset>()  and B<sigdelset>()  add and delete respectively signal "
10628 "I<signum> from I<set>."
10629 msgstr ""
10630 "B<sigaddset>()  と B<sigdelset>()  は I<set> に I<signum> シグナルをそれぞれ"
10631 "加えたり、削除したりする。"
10632
10633 #. type: Plain text
10634 #: build/C/man3/sigsetops.3:89
10635 msgid "B<sigismember>()  tests whether I<signum> is a member of I<set>."
10636 msgstr ""
10637 "B<sigismember>()  は I<signum> が I<set> に含まれているかどうかをテストする。"
10638
10639 #. type: Plain text
10640 #: build/C/man3/sigsetops.3:107
10641 msgid ""
10642 "Objects of type I<sigset_t> must be initialized by a call to either "
10643 "B<sigemptyset>()  or B<sigfillset>()  before being passed to the functions "
10644 "B<sigaddset>(), B<sigdelset>()  and B<sigismember>()  or the additional "
10645 "glibc functions described below (B<sigisemptyset>(), B<sigandset>(), and "
10646 "B<sigorset>()).  The results are undefined if this is not done."
10647 msgstr ""
10648 "I<sigset_t> 型のオブジェクトは、関数 B<sigaddset>(), B<sigdelset>(), "
10649 "B<sigismember>()  や後述の glibc の追加関数 (B<sigisemptyset>(), "
10650 "B<sigandset>(), B<sigorset>())  に渡す前に、 B<sigemptyset>()  か "
10651 "B<sigfillset>()  を呼び出して初期化しなければならない。 初期化しなかった場合"
10652 "の結果は未定義である。"
10653
10654 #. type: Plain text
10655 #: build/C/man3/sigsetops.3:114
10656 msgid ""
10657 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), and B<sigdelset>()  "
10658 "return 0 on success and -1 on error."
10659 msgstr ""
10660 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>()  は成功すれ"
10661 "ば 0 を、エラーの場合は -1 を返す。"
10662
10663 #. type: Plain text
10664 #: build/C/man3/sigsetops.3:123
10665 msgid ""
10666 "B<sigismember>()  returns 1 if I<signum> is a member of I<set>, 0 if "
10667 "I<signum> is not a member, and -1 on error."
10668 msgstr ""
10669 "B<sigismember>()  は I<signum> が I<set> のメンバの場合 1 を返し、メンバでな"
10670 "い場合 0 を返す。 エラーの場合、-1 を返す。"
10671
10672 #. type: Plain text
10673 #: build/C/man3/sigsetops.3:127
10674 msgid ""
10675 "On error, these functions set I<errno> to indicate the cause of the error."
10676 msgstr "エラーの場合、 I<errno> にエラーの原因を示す値を設定する。"
10677
10678 #. type: Plain text
10679 #: build/C/man3/sigsetops.3:132
10680 msgid "I<sig> is not a valid signal."
10681 msgstr "I<sig> が有効なシグナルではない。"
10682
10683 #. type: Plain text
10684 #: build/C/man3/sigsetops.3:145
10685 msgid ""
10686 "The B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10687 "B<sigismember>(), B<sigisemptyset>(), B<sigorset>(), and B<sigandset>()  "
10688 "functions are thread-safe."
10689 msgstr ""
10690 "関数 B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10691 "B<sigismember>(), B<sigisemptyset>(), B<sigorset>(), B<sigandset>() はスレッ"
10692 "ドセーフである。"
10693
10694 #. type: SS
10695 #: build/C/man3/sigsetops.3:148
10696 #, no-wrap
10697 msgid "Glibc notes"
10698 msgstr "glibc での注意"
10699
10700 #. type: Plain text
10701 #: build/C/man3/sigsetops.3:154
10702 msgid ""
10703 "If the B<_GNU_SOURCE> feature test macro is defined, then I<E<lt>signal."
10704 "hE<gt>> exposes three other functions for manipulating signal sets:"
10705 msgstr ""
10706 "B<_GNU_SOURCE> 機能検査マクロが定義されていると、 I<E<lt>signal.hE<gt>> でシ"
10707 "グナル集合を操作する 3 つの関数が追加で公開される。"
10708
10709 #. type: Plain text
10710 #: build/C/man3/sigsetops.3:161
10711 #, no-wrap
10712 msgid ""
10713 "B<int sigisemptyset(const sigset_t *>I<set>B<);>\n"
10714 "B<int sigorset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10715 "B<              const sigset_t *>I<right>B<);>\n"
10716 "B<int sigandset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10717 "B<              const sigset_t *>I<right>B<);>\n"
10718 msgstr ""
10719 "B<int sigisemptyset(const sigset_t *>I<set>B<);>\n"
10720 "B<int sigorset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10721 "B<              const sigset_t *>I<right>B<);>\n"
10722 "B<int sigandset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10723 "B<              const sigset_t *>I<right>B<);>\n"
10724
10725 #. type: Plain text
10726 #: build/C/man3/sigsetops.3:167
10727 msgid ""
10728 "B<sigisemptyset>()  returns 1 if I<set> contains no signals, and 0 otherwise."
10729 msgstr ""
10730 "B<sigisemptyset>() は I<set> にシグナルが一つも含まれていなければ 1 を返し、 "
10731 "それ以外は 0 を返す。"
10732
10733 #. type: Plain text
10734 #: build/C/man3/sigsetops.3:183
10735 msgid ""
10736 "B<sigorset>()  places the union of the sets I<left> and I<right> in "
10737 "I<dest>.  B<sigandset>()  places the intersection of the sets I<left> and "
10738 "I<right> in I<dest>.  Both functions return 0 on success, and -1 on failure."
10739 msgstr ""
10740 "B<sigorset>() は集合 I<left> と I<right> の和集合を I<dest> に設定する。 "
10741 "B<sigandset>() は集合 I<left> と I<right> の積集合を I<dest> に設定する。 ど"
10742 "ちらの関数も成功すると 0 を返し、失敗時には -1 を返す。"
10743
10744 #. type: Plain text
10745 #: build/C/man3/sigsetops.3:186
10746 msgid ""
10747 "These functions are nonstandard (a few other systems provide similar "
10748 "functions) and their use should be avoided in portable applications."
10749 msgstr ""
10750 "これらの関数は非標準であり、(他にも同様の関数を提供しているシステムも いくつ"
10751 "かはあるが) 移植性を考慮したアプリケーションでは使用を避けるべき である。"
10752
10753 #. type: Plain text
10754 #: build/C/man3/sigsetops.3:191
10755 msgid "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10756 msgstr "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10757
10758 #. type: TH
10759 #: build/C/man2/sigsuspend.2:29
10760 #, no-wrap
10761 msgid "SIGSUSPEND"
10762 msgstr "SIGSUSPEND"
10763
10764 #. type: Plain text
10765 #: build/C/man2/sigsuspend.2:32
10766 msgid "sigsuspend - wait for a signal"
10767 msgstr "sigsuspend - シグナルを待つ"
10768
10769 #. type: Plain text
10770 #: build/C/man2/sigsuspend.2:36
10771 msgid "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10772 msgstr "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10773
10774 #. type: Plain text
10775 #: build/C/man2/sigsuspend.2:45
10776 msgid ""
10777 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10778 "_POSIX_SOURCE"
10779 msgstr ""
10780 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10781 "_POSIX_SOURCE"
10782
10783 #. type: Plain text
10784 #: build/C/man2/sigsuspend.2:53
10785 msgid ""
10786 "B<sigsuspend>()  temporarily replaces the signal mask of the calling process "
10787 "with the mask given by I<mask> and then suspends the process until delivery "
10788 "of a signal whose action is to invoke a signal handler or to terminate a "
10789 "process."
10790 msgstr ""
10791 "B<sigsuspend>()  は、呼び出し元プロセスのシグナルマスクを I<mask> で指定され"
10792 "たマスクに一時的に置き換え、 シグナルハンドラの起動もしくはプロセスの終了がア"
10793 "クションとして 設定されたシグナルが配送されるまで、そのプロセスを停止する。"
10794
10795 #. type: Plain text
10796 #: build/C/man2/sigsuspend.2:62
10797 msgid ""
10798 "If the signal terminates the process, then B<sigsuspend>()  does not "
10799 "return.  If the signal is caught, then B<sigsuspend>()  returns after the "
10800 "signal handler returns, and the signal mask is restored to the state before "
10801 "the call to B<sigsuspend>()."
10802 msgstr ""
10803 "シグナルがプロセスを終了させるものの場合、 B<sigsuspend>()  は返らない。シグ"
10804 "ナルが捕捉された場合、 シグナルハンドラの処理が終わった後に B<sigsuspend>()  "
10805 "は返り、シグナルマスクは B<sigsuspend>()  が呼び出される前の状態に復元され"
10806 "る。"
10807
10808 #. type: Plain text
10809 #: build/C/man2/sigsuspend.2:70
10810 msgid ""
10811 "It is not possible to block B<SIGKILL> or B<SIGSTOP>; specifying these "
10812 "signals in I<mask>, has no effect on the process's signal mask."
10813 msgstr ""
10814 "B<SIGKILL> と B<SIGSTOP> を禁止 (block) することはできない; これらのシグナル"
10815 "を I<mask> に指定しても、プロセスのシグナルマスクは影響を受けない。"
10816
10817 #. type: Plain text
10818 #: build/C/man2/sigsuspend.2:76
10819 msgid ""
10820 "B<sigsuspend>()  always returns -1, with I<errno> set to indicate the error "
10821 "(normally, B<EINTR>)."
10822 msgstr ""
10823 "B<sigsuspend>() は常に -1 を返し、 I<errno> にエラーの原因を示す値 (通常は "
10824 "B<EINTR>) を設定する。"
10825
10826 #. type: Plain text
10827 #: build/C/man2/sigsuspend.2:81
10828 msgid ""
10829 "I<mask> points to memory which is not a valid part of the process address "
10830 "space."
10831 msgstr ""
10832 "I<mask> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
10833
10834 #. type: Plain text
10835 #: build/C/man2/sigsuspend.2:84
10836 msgid "The call was interrupted by a signal."
10837 msgstr "システムコールはシグナルにより割り込まれた。"
10838
10839 #. type: Plain text
10840 #: build/C/man2/sigsuspend.2:104
10841 msgid ""
10842 "Normally, B<sigsuspend>()  is used in conjunction with B<sigprocmask>(2)  in "
10843 "order to prevent delivery of a signal during the execution of a critical "
10844 "code section.  The caller first blocks the signals with B<sigprocmask>(2).  "
10845 "When the critical code has completed, the caller then waits for the signals "
10846 "by calling B<sigsuspend>()  with the signal mask that was returned by "
10847 "B<sigprocmask>(2)  (in the I<oldset> argument)."
10848 msgstr ""
10849 "B<sigsuspend>()  は、通常、クリティカル・コード・セクション (critical code "
10850 "section) の 実行中にシグナルが配送されるのを防止するために、 "
10851 "B<sigprocmask>(2)  と組み合わせて使用される。 まず最初に、呼び出し元は "
10852 "B<sigprocmask>(2)  を使ってシグナルを禁止する。 クリティカル・コードが完了す"
10853 "ると、呼び出し元は B<sigprocmask>(2)  が (I<oldset> 引き数で) 返すシグナルマ"
10854 "スクを指定して B<sigsuspend>()  を呼び出すことで、クリティカル・コード実行中"
10855 "に発生した シグナルを待つことができる。"
10856
10857 #. type: Plain text
10858 #: build/C/man2/sigsuspend.2:118
10859 msgid ""
10860 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10861 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10862 msgstr ""
10863 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10864 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10865
10866 #. type: TH
10867 #: build/C/man3/sigvec.3:26
10868 #, no-wrap
10869 msgid "SIGVEC"
10870 msgstr "SIGVEC"
10871
10872 #. type: Plain text
10873 #: build/C/man3/sigvec.3:29
10874 msgid "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD signal API"
10875 msgstr "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD 版シグナル API"
10876
10877 #. type: Plain text
10878 #: build/C/man3/sigvec.3:33
10879 msgid ""
10880 "B<int sigvec(int >I<sig>B<, const struct sigvec *>I<vec>B<, struct sigvec "
10881 "*>I<ovec>B<);>"
10882 msgstr ""
10883 "B<int sigvec(int >I<sig>B<, const struct sigvec *>I<vec>B<, struct sigvec "
10884 "*>I<ovec>B<);>"
10885
10886 #. type: Plain text
10887 #: build/C/man3/sigvec.3:35
10888 msgid "B<int sigmask(int >I<signum>B<);>"
10889 msgstr "B<int sigmask(int >I<signum>B<);>"
10890
10891 #. type: Plain text
10892 #: build/C/man3/sigvec.3:37
10893 msgid "B<int sigblock(int >I<mask>B<);>"
10894 msgstr "B<int sigblock(int >I<mask>B<);>"
10895
10896 #. type: Plain text
10897 #: build/C/man3/sigvec.3:39
10898 msgid "B<int sigsetmask(int >I<mask>B<);>"
10899 msgstr "B<int sigsetmask(int >I<mask>B<);>"
10900
10901 #. type: Plain text
10902 #: build/C/man3/sigvec.3:41
10903 msgid "B<int siggetmask(void);>"
10904 msgstr "B<int siggetmask(void);>"
10905
10906 #. type: Plain text
10907 #: build/C/man3/sigvec.3:49
10908 msgid "All functions shown above: _BSD_SOURCE"
10909 msgstr "上記の全ての関数: _BSD_SOURCE"
10910
10911 #. type: Plain text
10912 #: build/C/man3/sigvec.3:56
10913 msgid ""
10914 "These functions are provided in glibc as a compatibility interface for "
10915 "programs that make use of the historical BSD signal API.  This API is "
10916 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
10917 "B<sigprocmask>(2), etc.)."
10918 msgstr ""
10919 "これらの関数は、昔ながらの BSD 版シグナル API を使用しているプログラム に対し"
10920 "て互換性のあるインタフェースを glibc で提供するものである。 この API は過去の"
10921 "ものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>(2), "
10922 "B<sigprocmask>(2)  など) を使用すべきである。"
10923
10924 #. type: Plain text
10925 #: build/C/man3/sigvec.3:81
10926 msgid ""
10927 "The B<sigvec>()  function sets and/or gets the disposition of the signal "
10928 "I<sig> (like the POSIX B<sigaction>(2)).  If I<vec> is not NULL, it points "
10929 "to a I<sigvec> structure that defines the new disposition for I<sig>.  If "
10930 "I<ovec> is not NULL, it points to a I<sigvec> structure that is used to "
10931 "return the previous disposition of I<sig>.  To obtain the current "
10932 "disposition of I<sig> without changing it, specify NULL for I<vec>, and a "
10933 "non-null pointer for I<ovec>."
10934 msgstr ""
10935 "関数 B<sigvec>()  は、(POSIX の B<sigaction>(2)  と同様に) シグナル I<sig> の"
10936 "動作の設定・取得を行う。 I<vec> は、NULL 以外の場合、 I<sig> の新しい動作を定"
10937 "義した I<sigvec> 構造体へのポインタである。 I<ovec> は、NULL 以外の場合、 "
10938 "I<sig> の変更前の動作を返すために使用される I<sigvec> 構造体へのポインタであ"
10939 "る。 I<sig> の動作を変更せずに現在の動作を取得するためには、 I<vec> に NULL "
10940 "を指定し、 I<ovec> に NULL でないポインタを指定すればよい。"
10941
10942 #. type: Plain text
10943 #: build/C/man3/sigvec.3:91
10944 msgid "The I<sigvec> structure has the following form:"
10945 msgstr "I<sigvec> 構造体は以下の通りである:"
10946
10947 #. type: Plain text
10948 #: build/C/man3/sigvec.3:99
10949 #, no-wrap
10950 msgid ""
10951 "struct sigvec {\n"
10952 "    void (*sv_handler)(int); /* Signal disposition */\n"
10953 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10954 "    int    sv_flags;         /* Flags */\n"
10955 "};\n"
10956 msgstr ""
10957 "struct sigvec {\n"
10958 "    void (*sv_handler)(int); /* Signal disposition */\n"
10959 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10960 "    int    sv_flags;         /* Flags */\n"
10961 "};\n"
10962
10963 #. type: Plain text
10964 #: build/C/man3/sigvec.3:110
10965 msgid ""
10966 "The I<sv_handler> field specifies the disposition of the signal, and is "
10967 "either: the address of a signal handler function; B<SIG_DFL>, meaning the "
10968 "default disposition applies for the signal; or B<SIG_IGN>, meaning that the "
10969 "signal is ignored."
10970 msgstr ""
10971 "I<sv_handler> フィールドはシグナルの動作を指定するもので、 シグナルハンドラ関"
10972 "数のアドレスか、 B<SIG_DFL> と B<SIG_IGN> のいずれかを指定できる。 "
10973 "B<SIG_DFL> はシグナルに適用されるデフォルトの動作を意味し、 B<SIG_IGN> はシグ"
10974 "ナルを無視することを意味する。"
10975
10976 #. type: Plain text
10977 #: build/C/man3/sigvec.3:124
10978 msgid ""
10979 "If I<sv_handler> specifies the address of a signal handler, then I<sv_mask> "
10980 "specifies a mask of signals that are to be blocked while the handler is "
10981 "executing.  In addition, the signal for which the handler is invoked is also "
10982 "blocked.  Attempts to block B<SIGKILL> or B<SIGSTOP> are silently ignored."
10983 msgstr ""
10984 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_mask> はハン"
10985 "ドラが実行中にブロックされるべきシグナルのマスクを指定する。 また、ハンドラを"
10986 "起動したシグナル自身はブロックされる。 B<SIGKILL> か B<SIGSTOP> をブロックし"
10987 "ようとした場合には、黙って無視される。"
10988
10989 #. type: Plain text
10990 #: build/C/man3/sigvec.3:131
10991 msgid ""
10992 "If I<sv_handler> specifies the address of a signal handler, then the "
10993 "I<sv_flags> field specifies flags controlling what happens when the handler "
10994 "is called.  This field may contain zero or more of the following flags:"
10995 msgstr ""
10996 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_flags> フィー"
10997 "ルドはハンドラが呼ばれた際の挙動を制御するフラグを指定する。 このフィールドに"
10998 "は、0 か、以下のフラグを 1個以上指定できる:"
10999
11000 #. type: TP
11001 #: build/C/man3/sigvec.3:131
11002 #, no-wrap
11003 msgid "B<SV_INTERRUPT>"
11004 msgstr "B<SV_INTERRUPT>"
11005
11006 #. type: Plain text
11007 #: build/C/man3/sigvec.3:139
11008 msgid ""
11009 "If the signal handler interrupts a blocking system call, then upon return "
11010 "from the handler the system call will not be restarted: instead it will fail "
11011 "with the error B<EINTR>.  If this flag is not specified, then system calls "
11012 "are restarted by default."
11013 msgstr ""
11014 "シグナルハンドラが停止中のシステムコールを中断した場合、 ハンドラから復帰して"
11015 "も、システムコールは再開されず、 エラー B<EINTR> で失敗する。 このフラグを指"
11016 "定しなかった場合、システムコールは デフォルトで再開される。"
11017
11018 #. type: TP
11019 #: build/C/man3/sigvec.3:139
11020 #, no-wrap
11021 msgid "B<SV_RESETHAND>"
11022 msgstr "B<SV_RESETHAND>"
11023
11024 #. type: Plain text
11025 #: build/C/man3/sigvec.3:148
11026 msgid ""
11027 "Reset the disposition of the signal to the default before calling the signal "
11028 "handler.  If this flag is not specified, then the handler remains "
11029 "established until explicitly removed by a later call to B<sigvec>()  or "
11030 "until the process performs an B<execve>(2)."
11031 msgstr ""
11032 "シグナルハンドラを呼び出す前にシグナルの動作を デフォルトにリセットする。 こ"
11033 "のフラグを指定しなかった場合、もう一度 B<sigvec>()  を呼び出して明示的に削除"
11034 "されるか、プロセスが B<execve>(2)  を実行するまで、ハンドラは設定されたままと"
11035 "なる。"
11036
11037 #. type: TP
11038 #: build/C/man3/sigvec.3:148
11039 #, no-wrap
11040 msgid "B<SV_ONSTACK>"
11041 msgstr "B<SV_ONSTACK>"
11042
11043 #. type: Plain text
11044 #: build/C/man3/sigvec.3:155
11045 msgid ""
11046 "Handle the signal on the alternate signal stack (historically established "
11047 "under BSD using the obsolete B<sigstack>()  function; the POSIX replacement "
11048 "is B<sigaltstack>(2))."
11049 msgstr ""
11050 "代替シグナルスタック上でシグナルハンドラを実行する (歴史的に、BSD では代替シ"
11051 "グナルスタックは廃止された関数 B<sigstack>()  を使って設定する。POSIX では、"
11052 "代わりに B<sigaltstack>(2)  を使用する)。"
11053
11054 #. type: Plain text
11055 #: build/C/man3/sigvec.3:165
11056 msgid ""
11057 "The B<sigmask>()  macro constructs and returns a \"signal mask\" for "
11058 "I<signum>.  For example, we can initialize the I<vec.sv_mask> field given to "
11059 "B<sigvec>()  using code such as the following:"
11060 msgstr ""
11061 "マクロ B<sigmask>()  は I<signum> に対する「シグナルマスク」を構成して返す。 "
11062 "例えば、以下のようなコードを使うと、 B<sigvec>()  に渡す I<vec.sv_mask> を初"
11063 "期化できる。"
11064
11065 #. type: Plain text
11066 #: build/C/man3/sigvec.3:170
11067 #, no-wrap
11068 msgid ""
11069 "    vec.sv_mask = sigmask(SIGQUIT) | sigmask(SIGABRT);\n"
11070 "                /* Block SIGQUIT and SIGABRT during\n"
11071 "                   handler execution */\n"
11072 msgstr ""
11073 "    vec.sv_mask = sigmask(SIGQUIT) | sigmask(SIGABRT);\n"
11074 "                /* Block SIGQUIT and SIGABRT during\n"
11075 "                   handler execution */\n"
11076
11077 #. type: Plain text
11078 #: build/C/man3/sigvec.3:185
11079 msgid ""
11080 "The B<sigblock>()  function adds the signals in I<mask> to the process's "
11081 "signal mask (like POSIX I<sigprocmask(SIG_BLOCK)>), and returns the "
11082 "process's previous signal mask.  Attempts to block B<SIGKILL> or B<SIGSTOP> "
11083 "are silently ignored."
11084 msgstr ""
11085 "B<sigblock>()  関数は、 I<mask> にあるシグナルをプロセスのシグナルマスクに追"
11086 "加し (POSIX の I<sigprocmask(SIG_BLOCK)> と同様)、変更前のプロセスのシグナル"
11087 "マスクを返す。 B<SIGKILL> や B<SIGSTOP> をブロックしようとした場合には、黙っ"
11088 "て無視される。"
11089
11090 #. type: Plain text
11091 #: build/C/man3/sigvec.3:193
11092 msgid ""
11093 "The B<sigsetmask>()  function sets the process's signal mask to the value "
11094 "given in I<mask> (like POSIX I<sigprocmask(SIG_SETMASK)>), and returns the "
11095 "process's previous signal mask."
11096 msgstr ""
11097 "B<sigsetmask>()  関数はプロセスのシグナルマスクを I<mask> で指定された値に設"
11098 "定し (POSIX の I<sigprocmask(SIG_SETMASK)> と同様)、変更前のプロセスのシグナ"
11099 "ルマスクを返す。"
11100
11101 #. type: Plain text
11102 #: build/C/man3/sigvec.3:199
11103 msgid ""
11104 "The B<siggetmask>()  function returns the process's current signal mask.  "
11105 "This call is equivalent to I<sigblock(0)>."
11106 msgstr ""
11107 "B<siggetmask>()  関数はプロセスの現在のシグナルマスクを返す。この関数は "
11108 "I<sigblock(0)> と等価である。"
11109
11110 #. type: Plain text
11111 #: build/C/man3/sigvec.3:205
11112 msgid ""
11113 "The B<sigvec>()  function returns 0 on success; on error, it returns -1 and "
11114 "sets I<errno> to indicate the error."
11115 msgstr ""
11116 "B<sigvec>()  関数は成功すると 0 を返す。エラーの場合、-1 を返し、 I<errno> に"
11117 "エラーを示す値をセットする。"
11118
11119 #. type: Plain text
11120 #: build/C/man3/sigvec.3:211
11121 msgid ""
11122 "The B<sigblock>()  and B<sigsetmask>()  functions return the previous signal "
11123 "mask."
11124 msgstr "B<sigblock>()  と B<sigsetmask>()  は変更前のシグナルマスクを返す。"
11125
11126 #. type: Plain text
11127 #: build/C/man3/sigvec.3:216
11128 msgid "The B<sigmask>()  macro returns the signal mask for I<signum>."
11129 msgstr "B<sigmask>() マクロは I<signum> のシグナルマスクを返す。"
11130
11131 #. type: Plain text
11132 #: build/C/man3/sigvec.3:221
11133 msgid "See the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
11134 msgstr "B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」の節を参照。"
11135
11136 #. type: Plain text
11137 #: build/C/man3/sigvec.3:230
11138 msgid ""
11139 "The B<sigvec>(), B<sigblock>(), B<sigsetmask>(), and B<siggetmask>()  "
11140 "functions are thread-safe."
11141 msgstr ""
11142 "関数 B<sigvec>(), B<sigblock>(), B<sigsetmask>(), B<siggetmask>() はスレッド"
11143 "セーフである。"
11144
11145 #. type: Plain text
11146 #: build/C/man3/sigvec.3:234
11147 msgid "The B<sigmask>()  macro is thread-safe."
11148 msgstr "B<sigmask>() マクロはスレッドセーフである。"
11149
11150 #. type: Plain text
11151 #: build/C/man3/sigvec.3:241
11152 msgid ""
11153 "Starting with version 2.21, the GNU C library no longer exports the "
11154 "B<sigvec>()  function as part of the ABI.  (To ensure backward "
11155 "compatibility, the glibc symbol versioning scheme continues to export the "
11156 "interface to binaries linked against older versions of the library.)"
11157 msgstr ""
11158 "バージョン 2.21 以降では、 GNU C ライブラリはもはや B<sigvec>() 関数を ABI の"
11159 "一部として公開しなくなった。 (後方互換性を保証するために、glibc のシンボルの"
11160 "バージョン付け機構により、 古いバージョンのライブラリとリンクされたバイナリに"
11161 "対してはこのインタフェースが引き続き公開されている。)"
11162
11163 #. type: Plain text
11164 #: build/C/man3/sigvec.3:247
11165 msgid ""
11166 "All of these functions were in 4.3BSD, except B<siggetmask>(), whose origin "
11167 "is unclear.  These functions are obsolete: do not use them in new programs."
11168 msgstr ""
11169 "これらの関数のうち B<siggetmask>()  以外の全ては 4.3BSD にあった。 "
11170 "B<siggetmask>()  の出自ははっきりしない。 これらの関数は廃止予定であり、新し"
11171 "いプログラムでは使用しないこと。"
11172
11173 #. type: Plain text
11174 #: build/C/man3/sigvec.3:264
11175 msgid ""
11176 "On 4.3BSD, the B<signal>()  function provided reliable semantics (as when "
11177 "calling B<sigvec>()  with I<vec.sv_mask> equal to 0).  On System V, "
11178 "B<signal>()  provides unreliable semantics.  POSIX.1-2001 leaves these "
11179 "aspects of B<signal>()  unspecified.  See B<signal>(2)  for further details."
11180 msgstr ""
11181 "4.3BSD では、信頼性のあるシグナル処理機構を提供する (I<vec.sv_mask> を 0 で "
11182 "B<sigvec>()  を呼び出したときと同様)。 System V が提供する処理機構は信頼性の"
11183 "ないものである。 POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままと"
11184 "なっている。 さらなる詳細については B<signal>(2)  を参照。"
11185
11186 #. type: Plain text
11187 #: build/C/man3/sigvec.3:282
11188 msgid ""
11189 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
11190 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
11191 msgstr ""
11192 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
11193 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
11194
11195 #. type: TH
11196 #: build/C/man3/sigwait.3:26
11197 #, no-wrap
11198 msgid "SIGWAIT"
11199 msgstr "SIGWAIT"
11200
11201 #. type: Plain text
11202 #: build/C/man3/sigwait.3:29
11203 msgid "sigwait - wait for a signal"
11204 msgstr "sigwait - シグナルを待つ"
11205
11206 #. type: Plain text
11207 #: build/C/man3/sigwait.3:34
11208 #, no-wrap
11209 msgid "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
11210 msgstr "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
11211
11212 #. type: Plain text
11213 #: build/C/man3/sigwait.3:44
11214 msgid ""
11215 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
11216 msgstr ""
11217 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
11218
11219 #. type: Plain text
11220 #: build/C/man3/sigwait.3:56
11221 msgid ""
11222 "The B<sigwait>()  function suspends execution of the calling thread until "
11223 "one of the signals specified in the signal set I<set> becomes pending.  The "
11224 "function accepts the signal (removes it from the pending list of signals), "
11225 "and returns the signal number in I<sig>."
11226 msgstr ""
11227 "B<sigwait>()  関数は、シグナル集合 I<set> で指定されたシグナルの一つが処理待"
11228 "ち (pending) になるまで、 呼び出したスレッドの実行を中断する。 この関数はその"
11229 "シグナルを受け取り (つまり、処理待ちのシグナルのリスト からそのシグナルを削除"
11230 "し)、そのシグナル番号を I<sig> に格納して返す。"
11231
11232 #. type: Plain text
11233 #: build/C/man3/sigwait.3:62
11234 msgid ""
11235 "The operation of B<sigwait>()  is the same as B<sigwaitinfo>(2), except that:"
11236 msgstr ""
11237 "B<sigwait>()  の動作は B<sigwaitinfo>(2)  と同じだが、以下の点が異なる。"
11238
11239 #. type: Plain text
11240 #: build/C/man3/sigwait.3:67
11241 msgid ""
11242 "B<sigwait>()  returns only the signal number, rather than a I<siginfo_t> "
11243 "structure describing the signal."
11244 msgstr ""
11245 "B<sigwait>()  は、シグナルの内容を表す I<siginfo_t> 構造体を返すのではなく、"
11246 "単にシグナル番号を返す。"
11247
11248 #. type: Plain text
11249 #: build/C/man3/sigwait.3:69
11250 msgid "The return values of the two functions are different."
11251 msgstr "返り値が B<sigwaitinfo>(2)  とは異なる。"
11252
11253 #. type: Plain text
11254 #: build/C/man3/sigwait.3:74
11255 msgid ""
11256 "On success, B<sigwait>()  returns 0.  On error, it returns a positive error "
11257 "number (listed in ERRORS)."
11258 msgstr ""
11259 "成功すると、 B<sigwait>()  は 0 を返す。 エラーの場合、(「エラー」の節のリス"
11260 "トにある) 正のエラー番号を返す。"
11261
11262 #.  Does not occur for glibc.
11263 #. type: Plain text
11264 #: build/C/man3/sigwait.3:80
11265 msgid "I<set> contains an invalid signal number."
11266 msgstr "I<set> に無効なシグナル番号が入っている。"
11267
11268 #. type: Plain text
11269 #: build/C/man3/sigwait.3:85
11270 msgid "The B<sigwait>()  function is thread-safe."
11271 msgstr "B<sigwait>() 関数はスレッドセーフである。"
11272
11273 #. type: Plain text
11274 #: build/C/man3/sigwait.3:91
11275 msgid "B<sigwait>()  is implemented using B<sigtimedwait>(2)."
11276 msgstr "B<sigwait>()  は B<sigtimedwait>(2)  を使って実装されている。"
11277
11278 #. type: Plain text
11279 #: build/C/man3/sigwait.3:94
11280 msgid "See B<pthread_sigmask>(3)."
11281 msgstr "B<pthread_sigmask>(3)  を参照。"
11282
11283 #. type: Plain text
11284 #: build/C/man3/sigwait.3:102
11285 msgid ""
11286 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
11287 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
11288 msgstr ""
11289 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
11290 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
11291
11292 #. type: TH
11293 #: build/C/man2/sigwaitinfo.2:25
11294 #, no-wrap
11295 msgid "SIGWAITINFO"
11296 msgstr "SIGWAITINFO"
11297
11298 #. type: Plain text
11299 #: build/C/man2/sigwaitinfo.2:28
11300 msgid "sigwaitinfo, sigtimedwait - synchronously wait for queued signals"
11301 msgstr "sigwaitinfo, sigtimedwait - キューに入れられたシグナルを同期して待つ"
11302
11303 #. type: Plain text
11304 #: build/C/man2/sigwaitinfo.2:33
11305 #, no-wrap
11306 msgid "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
11307 msgstr "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
11308
11309 #. type: Plain text
11310 #: build/C/man2/sigwaitinfo.2:36
11311 #, no-wrap
11312 msgid ""
11313 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
11314 "B<                 const struct timespec *>I<timeout>B<);>\n"
11315 msgstr ""
11316 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
11317 "B<                 const struct timespec *>I<timeout>B<);>\n"
11318
11319 #. type: Plain text
11320 #: build/C/man2/sigwaitinfo.2:46
11321 msgid "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11322 msgstr ""
11323 "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11324
11325 #. type: Plain text
11326 #: build/C/man2/sigwaitinfo.2:56
11327 msgid ""
11328 "B<sigwaitinfo>()  suspends execution of the calling thread until one of the "
11329 "signals in I<set> is pending (If one of the signals in I<set> is already "
11330 "pending for the calling thread, B<sigwaitinfo>()  will return immediately.)"
11331 msgstr ""
11332 "B<sigwaitinfo>()  は I<set> のうちのどれかのシグナルが処理待ちになるまで、 呼"
11333 "び出しスレッドの実行を一時停止する (呼び出しスレッドに対して I<set> のうちの"
11334 "どれかのシグナルが既に待機中 (pending) である場合、 B<sigwaitinfo>()  はすぐ"
11335 "に戻る)。"
11336
11337 #. type: Plain text
11338 #: build/C/man2/sigwaitinfo.2:68
11339 msgid ""
11340 "B<sigwaitinfo>()  removes the signal from the set of pending signals and "
11341 "returns the signal number as its function result.  If the I<info> argument "
11342 "is not NULL, then the buffer that it points to is used to return a structure "
11343 "of type I<siginfo_t> (see B<sigaction>(2))  containing information about the "
11344 "signal."
11345 msgstr ""
11346 "B<sigwaitinfo>()  はそのシグナルを待機中のシグナルの集合から削除し、関数の結"
11347 "果としてシグナル番号を返す。 I<info> 引き数が NULL でない場合、配送されたシグ"
11348 "ナルの情報が入った I<siginfo_t> 型 (B<sigaction>(2)  を参照) の構造体を "
11349 "I<info> が指すバッファに入れて返す。"
11350
11351 #. type: Plain text
11352 #: build/C/man2/sigwaitinfo.2:76
11353 msgid ""
11354 "If multiple signals in I<set> are pending for the caller, the signal that is "
11355 "retrieved by B<sigwaitinfo>()  is determined according to the usual ordering "
11356 "rules; see B<signal>(7)  for further details."
11357 msgstr ""
11358 "呼び出し元に対して I<set> の複数のシグナルが処理待ちの場合、 "
11359 "B<sigwaitinfo>() で取得するシグナルは通常の順序決定ルールに基づいて決定され"
11360 "る。 詳細は B<signal>(7) を参照のこと。"
11361
11362 #. type: Plain text
11363 #: build/C/man2/sigwaitinfo.2:88
11364 msgid ""
11365 "B<sigtimedwait>()  operates in exactly the same way as B<sigwaitinfo>()  "
11366 "except that it has an additional argument, I<timeout>, which specifies the "
11367 "interval for which the thread is suspended waiting for a signal.  (This "
11368 "interval will be rounded up to the system clock granularity, and kernel "
11369 "scheduling delays mean that the interval may overrun by a small amount.)  "
11370 "This argument is of the following type:"
11371 msgstr ""
11372 "B<sigtimedwait>() は、 B<sigwaitinfo>() と次の点を除いて全く同じように動作す"
11373 "る。この関数にはもう 1 つの引き数 I<timeout> があり、シグナル待ちでスレッドが"
11374 "一時停止する時間を指定することができる(この時間はシステムクロックの粒度に切り"
11375 "上げられ、カーネルのスケジューリング遅延により少しだけ長くなる可能性がある)。"
11376 "この引き数の型は以下のとおりである:"
11377
11378 #. type: Plain text
11379 #: build/C/man2/sigwaitinfo.2:95
11380 #, no-wrap
11381 msgid ""
11382 "struct timespec {\n"
11383 "    long    tv_sec;         /* seconds */\n"
11384 "    long    tv_nsec;        /* nanoseconds */\n"
11385 "}\n"
11386 msgstr ""
11387 "struct timespec {\n"
11388 "    long    tv_sec;         /* 秒 */\n"
11389 "    long    tv_nsec;        /* ナノ秒 */\n"
11390 "}\n"
11391
11392 #. type: Plain text
11393 #: build/C/man2/sigwaitinfo.2:105
11394 msgid ""
11395 "If both fields of this structure are specified as 0, a poll is performed: "
11396 "B<sigtimedwait>()  returns immediately, either with information about a "
11397 "signal that was pending for the caller, or with an error if none of the "
11398 "signals in I<set> was pending."
11399 msgstr ""
11400 "この構造体の 2 つのフィールドがともに 0 の場合、ポーリングが行われる: "
11401 "B<sigtimedwait>()  は、呼び出し側プロセスに対して 待機しているシグナルの情報"
11402 "を返して戻るか、 I<set> のうちのどのシグナルも待機していない場合はエラーを返"
11403 "して戻る。"
11404
11405 #. type: Plain text
11406 #: build/C/man2/sigwaitinfo.2:114
11407 msgid ""
11408 "On success, both B<sigwaitinfo>()  and B<sigtimedwait>()  return a signal "
11409 "number (i.e., a value greater than zero).  On failure both calls return -1, "
11410 "with I<errno> set to indicate the error."
11411 msgstr ""
11412 "成功した場合、 B<sigwaitinfo>()  と B<sigtimedwait>()  はシグナル番号 (すなわ"
11413 "ち 0 より大きい数) を返す。 失敗した場合、2 つの関数は -1 を返し、 I<errno> "
11414 "はエラーを表す値に設定される。"
11415
11416 #. type: Plain text
11417 #: build/C/man2/sigwaitinfo.2:123
11418 msgid ""
11419 "No signal in I<set> was became pending within the I<timeout> period "
11420 "specified to B<sigtimedwait>()."
11421 msgstr ""
11422 "I<set> のうちのどのシグナルも B<sigtimedwait>()  に指定された I<timeout> の期"
11423 "間内に処理待ちにならなかった。"
11424
11425 #. type: Plain text
11426 #: build/C/man2/sigwaitinfo.2:129
11427 msgid ""
11428 "The wait was interrupted by a signal handler; see B<signal>(7).  (This "
11429 "handler was for a signal other than one of those in I<set>.)"
11430 msgstr ""
11431 "シグナル待ちがシグナルハンドラによって中断 (interrupt) された (このハンドラ"
11432 "は I<set> にあるシグナル以外のものである)。 B<signal>(7)  参照。"
11433
11434 #. type: Plain text
11435 #: build/C/man2/sigwaitinfo.2:133
11436 msgid "I<timeout> was invalid."
11437 msgstr "I<timeout> が不正である。"
11438
11439 #. type: Plain text
11440 #: build/C/man2/sigwaitinfo.2:153
11441 msgid ""
11442 "In normal usage, the calling program blocks the signals in I<set> via a "
11443 "prior call to B<sigprocmask>(2)  (so that the default disposition for these "
11444 "signals does not occur if they become pending between successive calls to "
11445 "B<sigwaitinfo>()  or B<sigtimedwait>())  and does not establish handlers for "
11446 "these signals.  In a multithreaded program, the signal should be blocked in "
11447 "all threads, in order to prevent the signal being treated according to its "
11448 "default disposition in a thread other than the one calling B<sigwaitinfo>()  "
11449 "or B<sigtimedwait>())."
11450 msgstr ""
11451 "通常の使用法では、呼び出し側プロセスはこれらの関数より先に "
11452 "B<sigprocmask>(2)  の呼び出すことにより I<set> に含まれるシグナルをブロック"
11453 "し (そのためにこれらのシグナルがこの後に続く B<sigwaitinfo>()  や "
11454 "B<sigtimedwait>()  の呼び出しの間に処理待ちになった場合には、デフォルトの動作"
11455 "は行われず)、 これらのシグナルに対するハンドラは設定しない。 マルチスレッドプ"
11456 "ログラムでは、 B<sigwaitinfo>()  や B<sigtimedwait>() を呼び出したスレッド以"
11457 "外のスレッドで、そのシグナルがデフォルトの動作に基いて処理されないように、全"
11458 "てのスレッドで該当シグナルをブロックすべきである。"
11459
11460 #. type: Plain text
11461 #: build/C/man2/sigwaitinfo.2:158
11462 msgid ""
11463 "The set of signals that is pending for a given thread is the union of the "
11464 "set of signals that is pending specifically for that thread and the set of "
11465 "signals that is pending for the process as a whole (see B<signal>(7))."
11466 msgstr ""
11467 "指定されたスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体宛ての"
11468 "処理待ちのシグナル集合と、プロセス全体宛ての 処理待ちのシグナル集合をあわせた"
11469 "ものである (B<signal>(7)  参照)。"
11470
11471 #. type: Plain text
11472 #: build/C/man2/sigwaitinfo.2:164
11473 msgid "Attempts to wait for B<SIGKILL> and B<SIGSTOP> are silently ignored."
11474 msgstr "B<SIGKILL> と B<SIGSTOP> を待とうとした場合、黙って無視される。"
11475
11476 #. type: Plain text
11477 #: build/C/man2/sigwaitinfo.2:173
11478 msgid ""
11479 "If multiple threads of a process are blocked waiting for the same signal(s) "
11480 "in B<sigwaitinfo>()  or B<sigtimedwait>(), then exactly one of the threads "
11481 "will actually receive the signal if it becomes pending for the process as a "
11482 "whole; which of the threads receives the signal is indeterminate."
11483 msgstr ""
11484 "一つのプロセス内の複数のスレッドが B<sigwaitinfo>()  や B<sigtimedwait>()  で"
11485 "同じシグナルを待って停止した場合、 プロセス全体宛てのシグナルが処理待ちになる"
11486 "と、複数のスレッドのうち一つだけが 実際にそのシグナルを受信することになる。 "
11487 "どのスレッドがシグナルを受信するかは決まっていない。"
11488
11489 #. type: Plain text
11490 #: build/C/man2/sigwaitinfo.2:183
11491 msgid ""
11492 "POSIX leaves the meaning of a NULL value for the I<timeout> argument of "
11493 "B<sigtimedwait>()  unspecified, permitting the possibility that this has the "
11494 "same meaning as a call to B<sigwaitinfo>(), and indeed this is what is done "
11495 "on Linux."
11496 msgstr ""
11497 "POSIX では B<sigtimedwait>()  の引き数 I<timeout> の値を NULL にした場合の意"
11498 "味を未定義としている。 B<sigwaitinfo>()  を呼び出したのと同じ意味としてもよい"
11499 "ことになっており、 実際 Linux ではこのように動作する。"
11500
11501 #. type: Plain text
11502 #: build/C/man2/sigwaitinfo.2:188
11503 msgid ""
11504 "On Linux, B<sigwaitinfo>()  is a library function implemented on top of "
11505 "B<sigtimedwait>()."
11506 msgstr ""
11507 "Linux では、 B<sigwaitinfo>()  は B<sigtimedwait>()  を用いて実装されたライブ"
11508 "ラリ関数である。"
11509
11510 #. type: Plain text
11511 #: build/C/man2/sigwaitinfo.2:201
11512 msgid ""
11513 "The raw B<sigtimedwait>()  system call has a fifth argument, I<size_t "
11514 "sigsetsize>, which specifies the size in bytes of the I<set> argument.  The "
11515 "glibc B<sigtimedwait>()  wrapper function specifies this argument as a fixed "
11516 "value (equal to I<sizeof(sigset_t)>)."
11517 msgstr ""
11518 "素の B<sigtimedwait>() システムコールは 5 番目の引き数 I<size_t sigsetsize> "
11519 "を取る。 この引き数は I<set> 引き数のバイト単位のサイズを指定する。 glibc の "
11520 "B<sigtimedwait>() のラッパー関数はこの引き数に固定値 (I<sizeof(sigset_t)> と"
11521 "同じ) を指定する。"
11522
11523 #. type: Plain text
11524 #: build/C/man2/sigwaitinfo.2:213
11525 msgid ""
11526 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
11527 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), "
11528 "B<signal>(7), B<time>(7)"
11529 msgstr ""
11530 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
11531 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), "
11532 "B<signal>(7), B<time>(7)"
11533
11534 #. type: TH
11535 #: build/C/man3/sysv_signal.3:25
11536 #, no-wrap
11537 msgid "SYSV_SIGNAL"
11538 msgstr "SYSV_SIGNAL"
11539
11540 #. type: TH
11541 #: build/C/man3/sysv_signal.3:25
11542 #, no-wrap
11543 msgid "2014-01-06"
11544 msgstr "2014-01-06"
11545
11546 #. type: Plain text
11547 #: build/C/man3/sysv_signal.3:28
11548 msgid "sysv_signal - signal handling with System V semantics"
11549 msgstr "sysv_signal - System V 方式のシグナル処理"
11550
11551 #. type: Plain text
11552 #: build/C/man3/sysv_signal.3:30
11553 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
11554 msgstr "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */"
11555
11556 #. type: Plain text
11557 #: build/C/man3/sysv_signal.3:36
11558 msgid ""
11559 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
11560 msgstr ""
11561 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
11562
11563 #. type: Plain text
11564 #: build/C/man3/sysv_signal.3:41
11565 msgid ""
11566 "The B<sysv_signal>()  function takes the same arguments, and performs the "
11567 "same task, as B<signal>(2)."
11568 msgstr ""
11569 "B<sysv_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
11570 "る。"
11571
11572 #. type: Plain text
11573 #: build/C/man3/sysv_signal.3:51
11574 msgid ""
11575 "However B<sysv_signal>()  provides the System V unreliable signal semantics, "
11576 "that is: a) the disposition of the signal is reset to the default when the "
11577 "handler is invoked; b) delivery of further instances of the signal is not "
11578 "blocked while the signal handler is executing; and c) if the handler "
11579 "interrupts (certain) blocking system calls, then the system call is not "
11580 "automatically restarted."
11581 msgstr ""
11582 "しかしながら、 B<sysv_signal>()  は System V の信頼性に欠けるシグナル処理方式"
11583 "を提供している。 信頼性に欠けるシグナル処理方式は以下の特徴を持つ。 a) ハンド"
11584 "ラが起動されると、シグナルの処理方法 (disposition) が デフォルトにリセットさ"
11585 "れる、 b) シグナルハンドラの実行中は、それ以降に発生した同じシグナルの配送が "
11586 "ブロックされない、 c) ハンドラが停止中の (blocking している) システムコールを"
11587 "中断した場合、 自動的に再開されないシステムコールがある。"
11588
11589 #. type: Plain text
11590 #: build/C/man3/sysv_signal.3:57
11591 msgid ""
11592 "The B<sysv_signal>()  function returns the previous value of the signal "
11593 "handler, or B<SIG_ERR> on error."
11594 msgstr ""
11595 "B<sysv_signal>()  関数はシグナルハンドラの直前の値を返す。 エラーの場合、 "
11596 "B<SIG_ERR> を返す。"
11597
11598 #. type: Plain text
11599 #: build/C/man3/sysv_signal.3:65
11600 msgid "The B<sysv_signal>()  function is thread-safe."
11601 msgstr "B<sysv_signal>() 関数はスレッドセーフである。"
11602
11603 #. type: Plain text
11604 #: build/C/man3/sysv_signal.3:67
11605 msgid "This function is nonstandard."
11606 msgstr "この関数は非標準である。"
11607
11608 #. type: Plain text
11609 #: build/C/man3/sysv_signal.3:73
11610 msgid ""
11611 "Use of B<sysv_signal>()  should be avoided; use B<sigaction>(2)  instead."
11612 msgstr ""
11613 "B<sysv_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使う"
11614 "こと。"
11615
11616 #. type: Plain text
11617 #: build/C/man3/sysv_signal.3:84
11618 msgid ""
11619 "On older Linux systems, B<sysv_signal>()  and B<signal>(2)  were "
11620 "equivalent.  But on newer systems, B<signal>(2)  provides reliable signal "
11621 "semantics; see B<signal>(2)  for details."
11622 msgstr ""
11623 "以前の Linux システムでは、 B<sysv_signal>()  と B<signal>(2)  は等価であっ"
11624 "た。しかし、新しめのシステムでは、 B<signal>(2)  は信頼性のあるシグナル処理方"
11625 "式を提供している。 詳細は B<signal>(2)  を参照。"
11626
11627 #. type: Plain text
11628 #: build/C/man3/sysv_signal.3:97
11629 msgid "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
11630 msgstr "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
11631
11632 #. type: TH
11633 #: build/C/man2/timer_create.2:33
11634 #, no-wrap
11635 msgid "TIMER_CREATE"
11636 msgstr "TIMER_CREATE"
11637
11638 #. type: Plain text
11639 #: build/C/man2/timer_create.2:36
11640 msgid "timer_create - create a POSIX per-process timer"
11641 msgstr ""
11642
11643 #. type: Plain text
11644 #: build/C/man2/timer_create.2:40
11645 #, no-wrap
11646 msgid ""
11647 "B<#include E<lt>signal.hE<gt>>\n"
11648 "B<#include E<lt>time.hE<gt>>\n"
11649 msgstr ""
11650 "B<#include E<lt>signal.hE<gt>>\n"
11651 "B<#include E<lt>time.hE<gt>>\n"
11652
11653 #. type: Plain text
11654 #: build/C/man2/timer_create.2:43
11655 #, no-wrap
11656 msgid ""
11657 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
11658 "B<                 timer_t *>I<timerid>B<);>\n"
11659 msgstr ""
11660 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
11661 "B<                 timer_t *>I<timerid>B<);>\n"
11662
11663 #. type: Plain text
11664 #: build/C/man2/timer_create.2:46 build/C/man2/timer_delete.2:37
11665 #: build/C/man2/timer_getoverrun.2:37 build/C/man2/timer_settime.2:41
11666 msgid "Link with I<-lrt>."
11667 msgstr "I<-lrt> でリンクする。"
11668
11669 #. type: Plain text
11670 #: build/C/man2/timer_create.2:54
11671 msgid "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11672 msgstr "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11673
11674 #. type: Plain text
11675 #: build/C/man2/timer_create.2:62
11676 msgid ""
11677 "B<timer_create>()  creates a new per-process interval timer.  The ID of the "
11678 "new timer is returned in the buffer pointed to by I<timerid>, which must be "
11679 "a non-null pointer.  This ID is unique within the process, until the timer "
11680 "is deleted.  The new timer is initially disarmed."
11681 msgstr ""
11682
11683 #. type: Plain text
11684 #: build/C/man2/timer_create.2:67
11685 msgid ""
11686 "The I<clockid> argument specifies the clock that the new timer uses to "
11687 "measure time.  It can be specified as one of the following values:"
11688 msgstr ""
11689
11690 #. type: TP
11691 #: build/C/man2/timer_create.2:67
11692 #, no-wrap
11693 msgid "B<CLOCK_REALTIME>"
11694 msgstr "B<CLOCK_REALTIME>"
11695
11696 #. type: Plain text
11697 #: build/C/man2/timer_create.2:70
11698 msgid "A settable system-wide real-time clock."
11699 msgstr ""
11700
11701 #. type: TP
11702 #: build/C/man2/timer_create.2:70
11703 #, no-wrap
11704 msgid "B<CLOCK_MONOTONIC>"
11705 msgstr "B<CLOCK_MONOTONIC>"
11706
11707 #.  Note: the CLOCK_MONOTONIC_RAW clock added for clock_gettime()
11708 #.  in 2.6.28 is not supported for POSIX timers -- mtk, Feb 2009
11709 #. type: Plain text
11710 #: build/C/man2/timer_create.2:77
11711 msgid ""
11712 "A nonsettable monotonically increasing clock that measures time from some "
11713 "unspecified point in the past that does not change after system startup."
11714 msgstr ""
11715
11716 #. type: TP
11717 #: build/C/man2/timer_create.2:77
11718 #, no-wrap
11719 msgid "B<CLOCK_PROCESS_CPUTIME_ID> (since Linux 2.6.12)"
11720 msgstr ""
11721
11722 #. type: Plain text
11723 #: build/C/man2/timer_create.2:81
11724 msgid ""
11725 "A clock that measures (user and system) CPU time consumed by (all of the "
11726 "threads in) the calling process."
11727 msgstr ""
11728
11729 #. type: TP
11730 #: build/C/man2/timer_create.2:81
11731 #, no-wrap
11732 msgid "B<CLOCK_THREAD_CPUTIME_ID> (since Linux 2.6.12)"
11733 msgstr ""
11734
11735 #.  The CLOCK_MONOTONIC_RAW that was added in 2.6.28 can't be used
11736 #.  to create a timer -- mtk, Feb 2009
11737 #. type: Plain text
11738 #: build/C/man2/timer_create.2:87
11739 msgid ""
11740 "A clock that measures (user and system) CPU time consumed by the calling "
11741 "thread."
11742 msgstr ""
11743
11744 #. type: Plain text
11745 #: build/C/man2/timer_create.2:96
11746 msgid ""
11747 "As well as the above values, I<clockid> can be specified as the I<clockid> "
11748 "returned by a call to B<clock_getcpuclockid>(3)  or "
11749 "B<pthread_getcpuclockid>(3)."
11750 msgstr ""
11751
11752 #. type: Plain text
11753 #: build/C/man2/timer_create.2:105
11754 msgid ""
11755 "The I<sevp> argument points to a I<sigevent> structure that specifies how "
11756 "the caller should be notified when the timer expires.  For the definition "
11757 "and general details of this structure, see B<sigevent>(7)."
11758 msgstr ""
11759
11760 #. type: Plain text
11761 #: build/C/man2/timer_create.2:109
11762 msgid "The I<sevp.sigev_notify> field can have the following values:"
11763 msgstr ""
11764
11765 #. type: Plain text
11766 #: build/C/man2/timer_create.2:114
11767 msgid ""
11768 "Don't asynchronously notify when the timer expires.  Progress of the timer "
11769 "can be monitored using B<timer_gettime>(2)."
11770 msgstr ""
11771
11772 #. type: Plain text
11773 #: build/C/man2/timer_create.2:132
11774 msgid ""
11775 "Upon timer expiration, generate the signal I<sigev_signo> for the process.  "
11776 "See B<sigevent>(7)  for general details.  The I<si_code> field of the "
11777 "I<siginfo_t> structure will be set to B<SI_TIMER>.  At any point in time, at "
11778 "most one signal is queued to the process for a given timer; see "
11779 "B<timer_getoverrun>(2)  for more details."
11780 msgstr ""
11781
11782 #. type: Plain text
11783 #: build/C/man2/timer_create.2:140
11784 msgid ""
11785 "Upon timer expiration, invoke I<sigev_notify_function> as if it were the "
11786 "start function of a new thread.  See B<sigevent>(7)  for details."
11787 msgstr ""
11788
11789 #. type: Plain text
11790 #: build/C/man2/timer_create.2:154
11791 msgid ""
11792 "As for B<SIGEV_SIGNAL>, but the signal is targeted at the thread whose ID is "
11793 "given in I<sigev_notify_thread_id>, which must be a thread in the same "
11794 "process as the caller.  The I<sigev_notify_thread_id> field specifies a "
11795 "kernel thread ID, that is, the value returned by B<clone>(2)  or "
11796 "B<gettid>(2).  This flag is intended only for use by threading libraries."
11797 msgstr ""
11798
11799 #. type: Plain text
11800 #: build/C/man2/timer_create.2:169
11801 msgid ""
11802 "Specifying I<sevp> as NULL is equivalent to specifying a pointer to a "
11803 "I<sigevent> structure in which I<sigev_notify> is B<SIGEV_SIGNAL>, "
11804 "I<sigev_signo> is B<SIGALRM>, and I<sigev_value.sival_int> is the timer ID."
11805 msgstr ""
11806
11807 #. type: Plain text
11808 #: build/C/man2/timer_create.2:177
11809 msgid ""
11810 "On success, B<timer_create>()  returns 0, and the ID of the new timer is "
11811 "placed in I<*timerid>.  On failure, -1 is returned, and I<errno> is set to "
11812 "indicate the error."
11813 msgstr ""
11814
11815 #. type: Plain text
11816 #: build/C/man2/timer_create.2:181
11817 msgid "Temporary error during kernel allocation of timer structures."
11818 msgstr ""
11819
11820 #. type: Plain text
11821 #: build/C/man2/timer_create.2:189
11822 msgid ""
11823 "Clock ID, I<sigev_notify>, I<sigev_signo>, or I<sigev_notify_thread_id> is "
11824 "invalid."
11825 msgstr ""
11826
11827 #.  glibc layer: malloc()
11828 #. type: Plain text
11829 #: build/C/man2/timer_create.2:193
11830 msgid "Could not allocate memory."
11831 msgstr ""
11832
11833 #. type: Plain text
11834 #: build/C/man2/timer_create.2:195 build/C/man2/timer_delete.2:67
11835 #: build/C/man2/timer_getoverrun.2:97
11836 msgid "This system call is available since Linux 2.6."
11837 msgstr "このシステムコールは Linux 2.6 以降で利用できる。"
11838
11839 #. type: Plain text
11840 #: build/C/man2/timer_create.2:200
11841 msgid "A program may create multiple interval timers using B<timer_create>()."
11842 msgstr ""
11843
11844 #. type: Plain text
11845 #: build/C/man2/timer_create.2:205
11846 msgid ""
11847 "Timers are not inherited by the child of a B<fork>(2), and are disarmed and "
11848 "deleted during an B<execve>(2)."
11849 msgstr ""
11850
11851 #. type: Plain text
11852 #: build/C/man2/timer_create.2:213
11853 msgid ""
11854 "The kernel preallocates a \"queued real-time signal\" for each timer created "
11855 "using B<timer_create>().  Consequently, the number of timers is limited by "
11856 "the B<RLIMIT_SIGPENDING> resource limit (see B<setrlimit>(2))."
11857 msgstr ""
11858
11859 #. type: Plain text
11860 #: build/C/man2/timer_create.2:218
11861 msgid ""
11862 "The timers created by B<timer_create>()  are commonly known as \"POSIX "
11863 "(interval) timers\".  The POSIX timers API consists of the following "
11864 "interfaces:"
11865 msgstr ""
11866
11867 #. type: Plain text
11868 #: build/C/man2/timer_create.2:221
11869 msgid "B<timer_create>(): Create a timer."
11870 msgstr ""
11871
11872 #. type: Plain text
11873 #: build/C/man2/timer_create.2:224
11874 msgid "B<timer_settime>(2): Arm (start) or disarm (stop) a timer."
11875 msgstr ""
11876
11877 #. type: Plain text
11878 #: build/C/man2/timer_create.2:228
11879 msgid ""
11880 "B<timer_gettime>(2): Fetch the time remaining until the next expiration of a "
11881 "timer, along with the interval setting of the timer."
11882 msgstr ""
11883
11884 #. type: Plain text
11885 #: build/C/man2/timer_create.2:231
11886 msgid ""
11887 "B<timer_getoverrun>(2): Return the overrun count for the last timer "
11888 "expiration."
11889 msgstr ""
11890
11891 #. type: Plain text
11892 #: build/C/man2/timer_create.2:234
11893 msgid "B<timer_delete>(2): Disarm and delete a timer."
11894 msgstr ""
11895
11896 #. type: Plain text
11897 #: build/C/man2/timer_create.2:243
11898 msgid ""
11899 "Since Linux 3.10, the I</proc/[pid]/timers> file can be used to list the "
11900 "POSIX timers for the process with PID I<pid>.  See B<proc>(5)  for further "
11901 "information."
11902 msgstr ""
11903
11904 #. type: Plain text
11905 #: build/C/man2/timer_create.2:246
11906 msgid ""
11907 "Part of the implementation of the POSIX timers API is provided by glibc.  In "
11908 "particular:"
11909 msgstr ""
11910
11911 #. type: Plain text
11912 #: build/C/man2/timer_create.2:250
11913 msgid ""
11914 "The functionality for B<SIGEV_THREAD> is implemented within glibc, rather "
11915 "than the kernel."
11916 msgstr ""
11917
11918 #.  See the glibc source file kernel-posix-timers.h for the structure
11919 #.  that glibc uses to map user-space timer IDs to kernel timer IDs
11920 #.  The kernel-level timer ID is exposed via siginfo.si_tid.
11921 #. type: Plain text
11922 #: build/C/man2/timer_create.2:256
11923 msgid ""
11924 "The timer IDs presented at user level are maintained by glibc, which maps "
11925 "these IDs to the timer IDs employed by the kernel."
11926 msgstr ""
11927
11928 #. type: Plain text
11929 #: build/C/man2/timer_create.2:264
11930 msgid ""
11931 "The POSIX timers system calls first appeared in Linux 2.6.  Prior to this, "
11932 "glibc provided an incomplete user-space implementation (B<CLOCK_REALTIME> "
11933 "timers only) using POSIX threads, and current glibc falls back to this "
11934 "implementation on systems running pre-2.6 Linux kernels."
11935 msgstr ""
11936
11937 #. type: Plain text
11938 #: build/C/man2/timer_create.2:276
11939 msgid ""
11940 "The program below takes two arguments: a sleep period in seconds, and a "
11941 "timer frequency in nanoseconds.  The program establishes a handler for the "
11942 "signal it uses for the timer, blocks that signal, creates and arms a timer "
11943 "that expires with the given frequency, sleeps for the specified number of "
11944 "seconds, and then unblocks the timer signal.  Assuming that the timer "
11945 "expired at least once while the program slept, the signal handler will be "
11946 "invoked, and the handler displays some information about the timer "
11947 "notification.  The program terminates after one invocation of the signal "
11948 "handler."
11949 msgstr ""
11950
11951 #. type: Plain text
11952 #: build/C/man2/timer_create.2:281
11953 msgid ""
11954 "In the following example run, the program sleeps for 1 second, after "
11955 "creating a timer that has a frequency of 100 nanoseconds.  By the time the "
11956 "signal is unblocked and delivered, there have been around ten million "
11957 "overruns."
11958 msgstr ""
11959
11960 #. type: Plain text
11961 #: build/C/man2/timer_create.2:293
11962 #, no-wrap
11963 msgid ""
11964 "$ B<./a.out 1 100>\n"
11965 "Establishing handler for signal 34\n"
11966 "Blocking signal 34\n"
11967 "timer ID is 0x804c008\n"
11968 "Sleeping for 1 seconds\n"
11969 "Unblocking signal 34\n"
11970 "Caught signal 34\n"
11971 "    sival_ptr = 0xbfb174f4;     *sival_ptr = 0x804c008\n"
11972 "    overrun count = 10004886\n"
11973 msgstr ""
11974
11975 #. type: Plain text
11976 #: build/C/man2/timer_create.2:303
11977 #, no-wrap
11978 msgid ""
11979 "#include E<lt>stdlib.hE<gt>\n"
11980 "#include E<lt>unistd.hE<gt>\n"
11981 "#include E<lt>stdio.hE<gt>\n"
11982 "#include E<lt>signal.hE<gt>\n"
11983 "#include E<lt>time.hE<gt>\n"
11984 msgstr ""
11985 "#include E<lt>stdlib.hE<gt>\n"
11986 "#include E<lt>unistd.hE<gt>\n"
11987 "#include E<lt>stdio.hE<gt>\n"
11988 "#include E<lt>signal.hE<gt>\n"
11989 "#include E<lt>time.hE<gt>\n"
11990
11991 #. type: Plain text
11992 #: build/C/man2/timer_create.2:306
11993 #, no-wrap
11994 msgid ""
11995 "#define CLOCKID CLOCK_REALTIME\n"
11996 "#define SIG SIGRTMIN\n"
11997 msgstr ""
11998 "#define CLOCKID CLOCK_REALTIME\n"
11999 "#define SIG SIGRTMIN\n"
12000
12001 #. type: Plain text
12002 #: build/C/man2/timer_create.2:309
12003 #, no-wrap
12004 msgid ""
12005 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
12006 "                        } while (0)\n"
12007 msgstr ""
12008 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
12009 "                        } while (0)\n"
12010
12011 #. type: Plain text
12012 #: build/C/man2/timer_create.2:315
12013 #, no-wrap
12014 msgid ""
12015 "static void\n"
12016 "print_siginfo(siginfo_t *si)\n"
12017 "{\n"
12018 "    timer_t *tidp;\n"
12019 "    int or;\n"
12020 msgstr ""
12021 "static void\n"
12022 "print_siginfo(siginfo_t *si)\n"
12023 "{\n"
12024 "    timer_t *tidp;\n"
12025 "    int or;\n"
12026
12027 #. type: Plain text
12028 #: build/C/man2/timer_create.2:317
12029 #, no-wrap
12030 msgid "    tidp = si-E<gt>si_value.sival_ptr;\n"
12031 msgstr "    tidp = si-E<gt>si_value.sival_ptr;\n"
12032
12033 #. type: Plain text
12034 #: build/C/man2/timer_create.2:320
12035 #, no-wrap
12036 msgid ""
12037 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
12038 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
12039 msgstr ""
12040 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
12041 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
12042
12043 #. type: Plain text
12044 #: build/C/man2/timer_create.2:327
12045 #, no-wrap
12046 msgid ""
12047 "    or = timer_getoverrun(*tidp);\n"
12048 "    if (or == -1)\n"
12049 "        errExit(\"timer_getoverrun\");\n"
12050 "    else\n"
12051 "        printf(\"    overrun count = %d\\en\", or);\n"
12052 "}\n"
12053 msgstr ""
12054 "    or = timer_getoverrun(*tidp);\n"
12055 "    if (or == -1)\n"
12056 "        errExit(\"timer_getoverrun\");\n"
12057 "    else\n"
12058 "        printf(\"    overrun count = %d\\en\", or);\n"
12059 "}\n"
12060
12061 #. type: Plain text
12062 #: build/C/man2/timer_create.2:334
12063 #, no-wrap
12064 msgid ""
12065 "static void\n"
12066 "handler(int sig, siginfo_t *si, void *uc)\n"
12067 "{\n"
12068 "    /* Note: calling printf() from a signal handler is not\n"
12069 "       strictly correct, since printf() is not async-signal-safe;\n"
12070 "       see signal(7) */\n"
12071 msgstr ""
12072 "static void\n"
12073 "handler(int sig, siginfo_t *si, void *uc)\n"
12074 "{\n"
12075 "    /* Note: calling printf() from a signal handler is not\n"
12076 "       strictly correct, since printf() is not async-signal-safe;\n"
12077 "       see signal(7) */\n"
12078
12079 #. type: Plain text
12080 #: build/C/man2/timer_create.2:339
12081 #, no-wrap
12082 msgid ""
12083 "    printf(\"Caught signal %d\\en\", sig);\n"
12084 "    print_siginfo(si);\n"
12085 "    signal(sig, SIG_IGN);\n"
12086 "}\n"
12087 msgstr ""
12088 "    printf(\"Caught signal %d\\en\", sig);\n"
12089 "    print_siginfo(si);\n"
12090 "    signal(sig, SIG_IGN);\n"
12091 "}\n"
12092
12093 #. type: Plain text
12094 #: build/C/man2/timer_create.2:349
12095 #, no-wrap
12096 msgid ""
12097 "int\n"
12098 "main(int argc, char *argv[])\n"
12099 "{\n"
12100 "    timer_t timerid;\n"
12101 "    struct sigevent sev;\n"
12102 "    struct itimerspec its;\n"
12103 "    long long freq_nanosecs;\n"
12104 "    sigset_t mask;\n"
12105 "    struct sigaction sa;\n"
12106 msgstr ""
12107 "int\n"
12108 "main(int argc, char *argv[])\n"
12109 "{\n"
12110 "    timer_t timerid;\n"
12111 "    struct sigevent sev;\n"
12112 "    struct itimerspec its;\n"
12113 "    long long freq_nanosecs;\n"
12114 "    sigset_t mask;\n"
12115 "    struct sigaction sa;\n"
12116
12117 #. type: Plain text
12118 #: build/C/man2/timer_create.2:355
12119 #, no-wrap
12120 msgid ""
12121 "    if (argc != 3) {\n"
12122 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
12123 "                argv[0]);\n"
12124 "        exit(EXIT_FAILURE);\n"
12125 "    }\n"
12126 msgstr ""
12127 "    if (argc != 3) {\n"
12128 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
12129 "                argv[0]);\n"
12130 "        exit(EXIT_FAILURE);\n"
12131 "    }\n"
12132
12133 #. type: Plain text
12134 #: build/C/man2/timer_create.2:357
12135 #, no-wrap
12136 msgid "    /* Establish handler for timer signal */\n"
12137 msgstr "    /* Establish handler for timer signal */\n"
12138
12139 #. type: Plain text
12140 #: build/C/man2/timer_create.2:364
12141 #, no-wrap
12142 msgid ""
12143 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
12144 "    sa.sa_flags = SA_SIGINFO;\n"
12145 "    sa.sa_sigaction = handler;\n"
12146 "    sigemptyset(&sa.sa_mask);\n"
12147 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
12148 "        errExit(\"sigaction\");\n"
12149 msgstr ""
12150 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
12151 "    sa.sa_flags = SA_SIGINFO;\n"
12152 "    sa.sa_sigaction = handler;\n"
12153 "    sigemptyset(&sa.sa_mask);\n"
12154 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
12155 "        errExit(\"sigaction\");\n"
12156
12157 #. type: Plain text
12158 #: build/C/man2/timer_create.2:366
12159 #, no-wrap
12160 msgid "    /* Block timer signal temporarily */\n"
12161 msgstr "    /* Block timer signal temporarily */\n"
12162
12163 #. type: Plain text
12164 #: build/C/man2/timer_create.2:372
12165 #, no-wrap
12166 msgid ""
12167 "    printf(\"Blocking signal %d\\en\", SIG);\n"
12168 "    sigemptyset(&mask);\n"
12169 "    sigaddset(&mask, SIG);\n"
12170 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
12171 "        errExit(\"sigprocmask\");\n"
12172 msgstr ""
12173 "    printf(\"Blocking signal %d\\en\", SIG);\n"
12174 "    sigemptyset(&mask);\n"
12175 "    sigaddset(&mask, SIG);\n"
12176 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
12177 "        errExit(\"sigprocmask\");\n"
12178
12179 #. type: Plain text
12180 #: build/C/man2/timer_create.2:374
12181 #, no-wrap
12182 msgid "    /* Create the timer */\n"
12183 msgstr "    /* Create the timer */\n"
12184
12185 #. type: Plain text
12186 #: build/C/man2/timer_create.2:380
12187 #, no-wrap
12188 msgid ""
12189 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
12190 "    sev.sigev_signo = SIG;\n"
12191 "    sev.sigev_value.sival_ptr = &timerid;\n"
12192 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
12193 "        errExit(\"timer_create\");\n"
12194 msgstr ""
12195 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
12196 "    sev.sigev_signo = SIG;\n"
12197 "    sev.sigev_value.sival_ptr = &timerid;\n"
12198 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
12199 "        errExit(\"timer_create\");\n"
12200
12201 #. type: Plain text
12202 #: build/C/man2/timer_create.2:382
12203 #, no-wrap
12204 msgid "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
12205 msgstr "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
12206
12207 #. type: Plain text
12208 #: build/C/man2/timer_create.2:384
12209 #, no-wrap
12210 msgid "    /* Start the timer */\n"
12211 msgstr "    /* Start the timer */\n"
12212
12213 #. type: Plain text
12214 #: build/C/man2/timer_create.2:390
12215 #, no-wrap
12216 msgid ""
12217 "    freq_nanosecs = atoll(argv[2]);\n"
12218 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
12219 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
12220 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
12221 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
12222 msgstr ""
12223 "    freq_nanosecs = atoll(argv[2]);\n"
12224 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
12225 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
12226 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
12227 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
12228
12229 #. type: Plain text
12230 #: build/C/man2/timer_create.2:393
12231 #, no-wrap
12232 msgid ""
12233 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
12234 "         errExit(\"timer_settime\");\n"
12235 msgstr ""
12236 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
12237 "         errExit(\"timer_settime\");\n"
12238
12239 #. type: Plain text
12240 #: build/C/man2/timer_create.2:396
12241 #, no-wrap
12242 msgid ""
12243 "    /* Sleep for a while; meanwhile, the timer may expire\n"
12244 "       multiple times */\n"
12245 msgstr ""
12246 "    /* Sleep for a while; meanwhile, the timer may expire\n"
12247 "       multiple times */\n"
12248
12249 #. type: Plain text
12250 #: build/C/man2/timer_create.2:399
12251 #, no-wrap
12252 msgid ""
12253 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
12254 "    sleep(atoi(argv[1]));\n"
12255 msgstr ""
12256 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
12257 "    sleep(atoi(argv[1]));\n"
12258
12259 #. type: Plain text
12260 #: build/C/man2/timer_create.2:402
12261 #, no-wrap
12262 msgid ""
12263 "    /* Unlock the timer signal, so that timer notification\n"
12264 "       can be delivered */\n"
12265 msgstr ""
12266 "    /* Unlock the timer signal, so that timer notification\n"
12267 "       can be delivered */\n"
12268
12269 #. type: Plain text
12270 #: build/C/man2/timer_create.2:406
12271 #, no-wrap
12272 msgid ""
12273 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
12274 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
12275 "        errExit(\"sigprocmask\");\n"
12276 msgstr ""
12277 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
12278 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
12279 "        errExit(\"sigprocmask\");\n"
12280
12281 #. type: Plain text
12282 #: build/C/man2/timer_create.2:409 build/C/man2/timerfd_create.2:547
12283 #, no-wrap
12284 msgid ""
12285 "    exit(EXIT_SUCCESS);\n"
12286 "}\n"
12287 msgstr ""
12288 "    exit(EXIT_SUCCESS);\n"
12289 "}\n"
12290
12291 #. type: Plain text
12292 #: build/C/man2/timer_create.2:425
12293 msgid ""
12294 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), "
12295 "B<timer_getoverrun>(2), B<timer_settime>(2), B<timerfd_create>(2), "
12296 "B<clock_getcpuclockid>(3), B<pthread_getcpuclockid>(3), B<pthreads>(7), "
12297 "B<sigevent>(7), B<signal>(7), B<time>(7)"
12298 msgstr ""
12299 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), "
12300 "B<timer_getoverrun>(2), B<timer_settime>(2), B<timerfd_create>(2), "
12301 "B<clock_getcpuclockid>(3), B<pthread_getcpuclockid>(3), B<pthreads>(7), "
12302 "B<sigevent>(7), B<signal>(7), B<time>(7)"
12303
12304 #. type: TH
12305 #: build/C/man2/timer_delete.2:26
12306 #, no-wrap
12307 msgid "TIMER_DELETE"
12308 msgstr "TIMER_DELETE"
12309
12310 #. type: TH
12311 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
12312 #, no-wrap
12313 msgid "2009-02-20"
12314 msgstr "2009-02-20"
12315
12316 #. type: Plain text
12317 #: build/C/man2/timer_delete.2:29
12318 msgid "timer_delete - delete a POSIX per-process timer"
12319 msgstr "timer_delete - プロセス単位の POSIX タイマーを削除する"
12320
12321 #. type: Plain text
12322 #: build/C/man2/timer_delete.2:32 build/C/man2/timer_getoverrun.2:32
12323 #: build/C/man2/timer_settime.2:33
12324 #, no-wrap
12325 msgid "B<#include E<lt>time.hE<gt>>\n"
12326 msgstr "B<#include E<lt>time.hE<gt>>\n"
12327
12328 #. type: Plain text
12329 #: build/C/man2/timer_delete.2:34
12330 #, no-wrap
12331 msgid "B<int timer_delete(timer_t >I<timerid>B<);>\n"
12332 msgstr "B<int timer_delete(timer_t >I<timerid>B<);>\n"
12333
12334 #. type: Plain text
12335 #: build/C/man2/timer_delete.2:45
12336 msgid "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12337 msgstr "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12338
12339 #. type: Plain text
12340 #: build/C/man2/timer_delete.2:53
12341 msgid ""
12342 "B<timer_delete>()  deletes the timer whose ID is given in I<timerid>.  If "
12343 "the timer was armed at the time of this call, it is disarmed before being "
12344 "deleted.  The treatment of any pending signal generated by the deleted timer "
12345 "is unspecified."
12346 msgstr ""
12347 "B<timer_delete>() は I<timerid> で指定された ID のタイマーを削除する。 "
12348 "B<timer_delete>() が呼び出された時点でタイマーが開始されている場合は、 削除す"
12349 "る前にタイマーの解除が行われる。 削除されるタイマーにより生成された処理待ちシ"
12350 "グナルの扱いは不定 (unspecified) である。"
12351
12352 #. type: Plain text
12353 #: build/C/man2/timer_delete.2:60
12354 msgid ""
12355 "On success, B<timer_delete>()  returns 0.  On failure, -1 is returned, and "
12356 "I<errno> is set to indicate the error."
12357 msgstr ""
12358 "成功すると、 B<timer_delete>() は 0 を返す。 失敗すると、 -1 が返り、 "
12359 "I<errno> にエラーを示す値が設定される。"
12360
12361 #. type: Plain text
12362 #: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
12363 msgid "I<timerid> is not a valid timer ID."
12364 msgstr "I<timerid> が有効なタイマー ID ではない。"
12365
12366 #. type: Plain text
12367 #: build/C/man2/timer_delete.2:75
12368 msgid ""
12369 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
12370 "B<timer_settime>(2), B<time>(7)"
12371 msgstr ""
12372 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
12373 "B<timer_settime>(2), B<time>(7)"
12374
12375 #. type: TH
12376 #: build/C/man2/timer_getoverrun.2:26
12377 #, no-wrap
12378 msgid "TIMER_GETOVERRUN"
12379 msgstr "TIMER_GETOVERRUN"
12380
12381 #. type: Plain text
12382 #: build/C/man2/timer_getoverrun.2:29
12383 msgid "timer_getoverrun - get overrun count for a POSIX per-process timer"
12384 msgstr ""
12385
12386 #. type: Plain text
12387 #: build/C/man2/timer_getoverrun.2:34
12388 #, no-wrap
12389 msgid "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
12390 msgstr "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
12391
12392 #. type: Plain text
12393 #: build/C/man2/timer_getoverrun.2:45
12394 msgid "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12395 msgstr "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12396
12397 #. type: Plain text
12398 #: build/C/man2/timer_getoverrun.2:56
12399 msgid ""
12400 "B<timer_getoverrun>()  returns the \"overrun count\" for the timer referred "
12401 "to by I<timerid>.  An application can use the overrun count to accurately "
12402 "calculate the number of timer expirations that would have occurred over a "
12403 "given time interval.  Timer overruns can occur both when receiving "
12404 "expiration notifications via signals (B<SIGEV_SIGNAL>), and via threads "
12405 "(B<SIGEV_THREAD>)."
12406 msgstr ""
12407
12408 #. type: Plain text
12409 #: build/C/man2/timer_getoverrun.2:76
12410 msgid ""
12411 "When expiration notifications are delivered via a signal, overruns can occur "
12412 "as follows.  Regardless of whether or not a real-time signal is used for "
12413 "timer notifications, the system queues at most one signal per timer.  (This "
12414 "is the behavior specified by POSIX.1-2001.  The alternative, queuing one "
12415 "signal for each timer expiration, could easily result in overflowing the "
12416 "allowed limits for queued signals on the system.)  Because of system "
12417 "scheduling delays, or because the signal may be temporarily blocked, there "
12418 "can be a delay between the time when the notification signal is generated "
12419 "and the time when it is delivered (e.g., caught by a signal handler) or "
12420 "accepted (e.g., using B<sigwaitinfo>(2)).  In this interval, further timer "
12421 "expirations may occur.  The timer overrun count is the number of additional "
12422 "timer expirations that occurred between the time when the signal was "
12423 "generated and when it was delivered or accepted."
12424 msgstr ""
12425
12426 #. type: Plain text
12427 #: build/C/man2/timer_getoverrun.2:82
12428 msgid ""
12429 "Timer overruns can also occur when expiration notifications are delivered "
12430 "via invocation of a thread, since there may be an arbitrary delay between an "
12431 "expiration of the timer and the invocation of the notification thread, and "
12432 "in that delay interval, additional timer expirations may occur."
12433 msgstr ""
12434
12435 #. type: Plain text
12436 #: build/C/man2/timer_getoverrun.2:90
12437 msgid ""
12438 "On success, B<timer_getoverrun>()  returns the overrun count of the "
12439 "specified timer; this count may be 0 if no overruns have occurred.  On "
12440 "failure, -1 is returned, and I<errno> is set to indicate the error."
12441 msgstr ""
12442
12443 #. type: Plain text
12444 #: build/C/man2/timer_getoverrun.2:111
12445 msgid ""
12446 "When timer notifications are delivered via signals (B<SIGEV_SIGNAL>), on "
12447 "Linux it is also possible to obtain the overrun count via the I<si_overrun> "
12448 "field of the I<siginfo_t> structure (see B<sigaction>(2)).  This allows an "
12449 "application to avoid the overhead of making a system call to obtain the "
12450 "overrun count, but is a nonportable extension to POSIX.1-2001."
12451 msgstr ""
12452
12453 #.  FIXME . Austin bug filed, 11 Feb 09
12454 #. type: Plain text
12455 #: build/C/man2/timer_getoverrun.2:115
12456 msgid ""
12457 "POSIX.1-2001 discusses timer overruns only in the context of timer "
12458 "notifications using signals."
12459 msgstr ""
12460
12461 #.  Bug filed: http://bugzilla.kernel.org/show_bug.cgi?id=12665
12462 #.  http://thread.gmane.org/gmane.linux.kernel/113276/
12463 #. type: Plain text
12464 #: build/C/man2/timer_getoverrun.2:128
12465 msgid ""
12466 "POSIX.1-2001 specifies that if the timer overrun count is equal to or "
12467 "greater than an implementation-defined maximum, B<DELAYTIMER_MAX>, then "
12468 "B<timer_getoverrun>()  should return B<DELAYTIMER_MAX>.  However, Linux does "
12469 "not implement this feature: instead, if the timer overrun value exceeds the "
12470 "maximum representable integer, the counter cycles, starting once more from "
12471 "low values."
12472 msgstr ""
12473
12474 #. type: Plain text
12475 #: build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212
12476 msgid "See B<timer_create>(2)."
12477 msgstr ""
12478
12479 #. type: Plain text
12480 #: build/C/man2/timer_getoverrun.2:141
12481 msgid ""
12482 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
12483 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
12484 "B<time>(7)"
12485 msgstr ""
12486 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
12487 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
12488 "B<time>(7)"
12489
12490 #. type: TH
12491 #: build/C/man2/timer_settime.2:26
12492 #, no-wrap
12493 msgid "TIMER_SETTIME"
12494 msgstr "TIMER_SETTIME"
12495
12496 #. type: TH
12497 #: build/C/man2/timer_settime.2:26
12498 #, no-wrap
12499 msgid "2012-10-15"
12500 msgstr "2012-10-15"
12501
12502 #. type: Plain text
12503 #: build/C/man2/timer_settime.2:30
12504 msgid ""
12505 "timer_settime, timer_gettime - arm/disarm and fetch state of POSIX per-"
12506 "process timer"
12507 msgstr ""
12508
12509 #. type: Plain text
12510 #: build/C/man2/timer_settime.2:38
12511 #, no-wrap
12512 msgid ""
12513 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
12514 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
12515 "B<                  struct itimerspec *>I<old_value>B<);>\n"
12516 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
12517 msgstr ""
12518 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
12519 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
12520 "B<                  struct itimerspec *>I<old_value>B<);>\n"
12521 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
12522
12523 #. type: Plain text
12524 #: build/C/man2/timer_settime.2:50
12525 msgid ""
12526 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12527 msgstr ""
12528 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12529
12530 #. type: Plain text
12531 #: build/C/man2/timer_settime.2:63
12532 msgid ""
12533 "B<timer_settime>()  arms or disarms the timer identified by I<timerid>.  The "
12534 "I<new_value> argument is pointer to an I<itimerspec> structure that "
12535 "specifies the new initial value and the new interval for the timer.  The "
12536 "I<itimerspec> structure is defined as follows:"
12537 msgstr ""
12538
12539 #. type: Plain text
12540 #: build/C/man2/timer_settime.2:70 build/C/man2/timerfd_create.2:135
12541 #, no-wrap
12542 msgid ""
12543 "struct timespec {\n"
12544 "    time_t tv_sec;                /* Seconds */\n"
12545 "    long   tv_nsec;               /* Nanoseconds */\n"
12546 "};\n"
12547 msgstr ""
12548 "struct timespec {\n"
12549 "    time_t tv_sec;                /* Seconds */\n"
12550 "    long   tv_nsec;               /* Nanoseconds */\n"
12551 "};\n"
12552
12553 #. type: Plain text
12554 #: build/C/man2/timer_settime.2:75
12555 #, no-wrap
12556 msgid ""
12557 "struct itimerspec {\n"
12558 "    struct timespec it_interval;  /* Timer interval */\n"
12559 "    struct timespec it_value;     /* Initial expiration */\n"
12560 "};\n"
12561 msgstr ""
12562 "struct itimerspec {\n"
12563 "    struct timespec it_interval;  /* Timer interval */\n"
12564 "    struct timespec it_value;     /* Initial expiration */\n"
12565 "};\n"
12566
12567 #. type: Plain text
12568 #: build/C/man2/timer_settime.2:87
12569 msgid ""
12570 "Each of the substructures of the I<itimerspec> structure is a I<timespec> "
12571 "structure that allows a time value to be specified in seconds and "
12572 "nanoseconds.  These time values are measured according to the clock that was "
12573 "specified when the timer was created by B<timer_create>(2)."
12574 msgstr ""
12575
12576 #. type: Plain text
12577 #: build/C/man2/timer_settime.2:101
12578 msgid ""
12579 "If I<new_value-E<gt>it_value> specifies a nonzero value (i.e., either "
12580 "subfield is nonzero), then B<timer_settime>()  arms (starts) the timer, "
12581 "setting it to initially expire at the given time.  (If the timer was already "
12582 "armed, then the previous settings are overwritten.)  If I<new_value-"
12583 "E<gt>it_value> specifies a zero value (i.e., both subfields are zero), then "
12584 "the timer is disarmed."
12585 msgstr ""
12586
12587 #. type: Plain text
12588 #: build/C/man2/timer_settime.2:113
12589 msgid ""
12590 "The I<new_value-E<gt>it_interval> field specifies the period of the timer, "
12591 "in seconds and nanoseconds.  If this field is nonzero, then each time that "
12592 "an armed timer expires, the timer is reloaded from the value specified in "
12593 "I<new_value-E<gt>it_interval>.  If I<new_value-E<gt>it_interval> specifies a "
12594 "zero value, then the timer expires just once, at the time specified by "
12595 "I<it_value>."
12596 msgstr ""
12597
12598 #.  By experiment: the overrun count is set correctly, for CLOCK_REALTIME.
12599 #. type: Plain text
12600 #: build/C/man2/timer_settime.2:134
12601 msgid ""
12602 "By default, the initial expiration time specified in I<new_value-"
12603 "E<gt>it_value> is interpreted relative to the current time on the timer's "
12604 "clock at the time of the call.  This can be modified by specifying "
12605 "B<TIMER_ABSTIME> in I<flags>, in which case I<new_value-E<gt>it_value> is "
12606 "interpreted as an absolute value as measured on the timer's clock; that is, "
12607 "the timer will expire when the clock value reaches the value specified by "
12608 "I<new_value-E<gt>it_value>.  If the specified absolute time has already "
12609 "passed, then the timer expires immediately, and the overrun count (see "
12610 "B<timer_getoverrun>(2))  will be set correctly."
12611 msgstr ""
12612
12613 #.  Similar remarks might apply with respect to process and thread CPU time
12614 #.  clocks, but these clocks are not currently (2.6.28) settable on Linux.
12615 #. type: Plain text
12616 #: build/C/man2/timer_settime.2:144
12617 msgid ""
12618 "If the value of the B<CLOCK_REALTIME> clock is adjusted while an absolute "
12619 "timer based on that clock is armed, then the expiration of the timer will be "
12620 "appropriately adjusted.  Adjustments to the B<CLOCK_REALTIME> clock have no "
12621 "effect on relative timers based on that clock."
12622 msgstr ""
12623
12624 #. type: Plain text
12625 #: build/C/man2/timer_settime.2:153
12626 msgid ""
12627 "If I<old_value> is not NULL, then it points to a buffer that is used to "
12628 "return the previous interval of the timer (in I<old_value-"
12629 "E<gt>it_interval>)  and the amount of time until the timer would previously "
12630 "have next expired (in I<old_value-E<gt>it_value>)."
12631 msgstr ""
12632
12633 #. type: Plain text
12634 #: build/C/man2/timer_settime.2:173
12635 msgid ""
12636 "B<timer_gettime>()  returns the time until next expiration, and the "
12637 "interval, for the timer specified by I<timerid>, in the buffer pointed to by "
12638 "I<curr_value>.  The time remaining until the next timer expiration is "
12639 "returned in I<curr_value-E<gt>it_value>; this is always a relative value, "
12640 "regardless of whether the B<TIMER_ABSTIME> flag was used when arming the "
12641 "timer.  If the value returned in I<curr_value-E<gt>it_value> is zero, then "
12642 "the timer is currently disarmed.  The timer interval is returned in "
12643 "I<curr_value-E<gt>it_interval>.  If the value returned in I<curr_value-"
12644 "E<gt>it_interval> is zero, then this is a \"one-shot\" timer."
12645 msgstr ""
12646
12647 #. type: Plain text
12648 #: build/C/man2/timer_settime.2:182
12649 msgid ""
12650 "On success, B<timer_settime>()  and B<timer_gettime>()  return 0.  On error, "
12651 "-1 is returned, and I<errno> is set to indicate the error."
12652 msgstr ""
12653
12654 #. type: Plain text
12655 #: build/C/man2/timer_settime.2:184
12656 msgid "These functions may fail with the following errors:"
12657 msgstr ""
12658
12659 #. type: Plain text
12660 #: build/C/man2/timer_settime.2:191
12661 msgid "I<new_value>, I<old_value>, or I<curr_value> is not a valid pointer."
12662 msgstr ""
12663
12664 #.  FIXME . eventually: invalid value in flags
12665 #. type: Plain text
12666 #: build/C/man2/timer_settime.2:196
12667 msgid "I<timerid> is invalid."
12668 msgstr ""
12669
12670 #. type: Plain text
12671 #: build/C/man2/timer_settime.2:199
12672 msgid "B<timer_settime>()  may fail with the following errors:"
12673 msgstr ""
12674
12675 #. type: Plain text
12676 #: build/C/man2/timer_settime.2:205
12677 msgid ""
12678 "I<new_value.it_value> is negative; or I<new_value.it_value.tv_nsec> is "
12679 "negative or greater than 999,999,999."
12680 msgstr ""
12681
12682 #. type: Plain text
12683 #: build/C/man2/timer_settime.2:207
12684 msgid "These system calls are available since Linux 2.6."
12685 msgstr "これらのシステムコールは Linux 2.6 以降で利用可能である。"
12686
12687 #. type: Plain text
12688 #: build/C/man2/timer_settime.2:216
12689 msgid "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12690 msgstr "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12691
12692 #. type: TH
12693 #: build/C/man2/timerfd_create.2:22
12694 #, no-wrap
12695 msgid "TIMERFD_CREATE"
12696 msgstr "TIMERFD_CREATE"
12697
12698 #. type: TH
12699 #: build/C/man2/timerfd_create.2:22
12700 #, no-wrap
12701 msgid "2011-09-14"
12702 msgstr "2011-09-14"
12703
12704 #. type: Plain text
12705 #: build/C/man2/timerfd_create.2:26
12706 msgid ""
12707 "timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via "
12708 "file descriptors"
12709 msgstr ""
12710 "timerfd_create, timerfd_settime, timerfd_gettime - ファイルディスクリプタ経由"
12711 "で通知するタイマー"
12712
12713 #. type: Plain text
12714 #: build/C/man2/timerfd_create.2:29
12715 #, no-wrap
12716 msgid "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12717 msgstr "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12718
12719 #. type: Plain text
12720 #: build/C/man2/timerfd_create.2:31
12721 #, no-wrap
12722 msgid "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12723 msgstr "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12724
12725 #. type: Plain text
12726 #: build/C/man2/timerfd_create.2:35
12727 #, no-wrap
12728 msgid ""
12729 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12730 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12731 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12732 msgstr ""
12733 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12734 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12735 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12736
12737 #. type: Plain text
12738 #: build/C/man2/timerfd_create.2:37
12739 #, no-wrap
12740 msgid "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12741 msgstr "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12742
12743 #. type: Plain text
12744 #: build/C/man2/timerfd_create.2:50
12745 msgid ""
12746 "These system calls create and operate on a timer that delivers timer "
12747 "expiration notifications via a file descriptor.  They provide an alternative "
12748 "to the use of B<setitimer>(2)  or B<timer_create>(2), with the advantage "
12749 "that the file descriptor may be monitored by B<select>(2), B<poll>(2), and "
12750 "B<epoll>(7)."
12751 msgstr ""
12752 "これらのシステムコールは、満了通知をファイルディスクリプタ経由で配送する タイ"
12753 "マーの生成と操作を行う。 これらは、 B<setitimer>(2)  や B<timer_create>(2)  "
12754 "を用いる方法の代わりとなるものであり、このファイルディスクリプタを "
12755 "B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
12756
12757 #. type: Plain text
12758 #: build/C/man2/timerfd_create.2:62
12759 msgid ""
12760 "The use of these three system calls is analogous to the use of "
12761 "B<timer_create>(2), B<timer_settime>(2), and B<timer_gettime>(2).  (There is "
12762 "no analog of B<timer_getoverrun>(2), since that functionality is provided by "
12763 "B<read>(2), as described below.)"
12764 msgstr ""
12765 "これらのシステムコールを使うのは、それぞれ B<timer_create>(2), "
12766 "B<timer_settime>(2), B<timer_gettime>(2)  を使うのと同様である "
12767 "(B<timer_getoverrun>(2)  に対応するものはなく、以下で説明するように この機能"
12768 "は B<read>(2)  により提供される)。"
12769
12770 #. type: SS
12771 #: build/C/man2/timerfd_create.2:62
12772 #, no-wrap
12773 msgid "timerfd_create()"
12774 msgstr "timerfd_create()"
12775
12776 #.  FIXME
12777 #.  Additional clocks are now supported:
12778 #.  CLOCK_REALTIME_ALARM and CLOCK_BOOTTIME_ALARM
12779 #.     Since Linux 3.11, commit 11ffa9d6065f344a9bd769a2452f26f2f671e5f8
12780 #.  CLOCK_BOOTTIME
12781 #.     Since Linux 3.15, commit 4a2378a943f09907fb1ae35c15de917f60289c14
12782 #. type: Plain text
12783 #: build/C/man2/timerfd_create.2:87
12784 msgid ""
12785 "B<timerfd_create>()  creates a new timer object, and returns a file "
12786 "descriptor that refers to that timer.  The I<clockid> argument specifies the "
12787 "clock that is used to mark the progress of the timer, and must be either "
12788 "B<CLOCK_REALTIME> or B<CLOCK_MONOTONIC>.  B<CLOCK_REALTIME> is a settable "
12789 "system-wide clock.  B<CLOCK_MONOTONIC> is a nonsettable clock that is not "
12790 "affected by discontinuous changes in the system clock (e.g., manual changes "
12791 "to system time).  The current value of each of these clocks can be retrieved "
12792 "using B<clock_gettime>(2)."
12793 msgstr ""
12794 "B<timerfd_create>()  は新規のタイマーオブジェクトを生成し、そのタイマーを参照"
12795 "するファイル ディスクリプタを返す。 I<clockid> 引き数は、タイマーの進捗を管理"
12796 "するためのクロックを指定するもので、 B<CLOCK_REALTIME> か B<CLOCK_MONOTONIC> "
12797 "のいずれかでなければならない。 B<CLOCK_REALTIME> はシステム全体で使用されるク"
12798 "ロックで、このクロックは変更可能である。 B<CLOCK_MONOTONIC> は変更されること"
12799 "のないクロックで、(システム時刻の手動での変更などの)  システムクロックの不連"
12800 "続な変化の影響を受けない。 これらのクロックの現在の値は B<clock_gettime>(2)  "
12801 "を使って取得できる。"
12802
12803 #. type: Plain text
12804 #: build/C/man2/timerfd_create.2:92
12805 msgid ""
12806 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
12807 "I<flags> to change the behavior of B<timerfd_create>():"
12808 msgstr ""
12809 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
12810 "ることで、 B<timerfd_create>()  の振舞いを変更することができる。"
12811
12812 #. type: TP
12813 #: build/C/man2/timerfd_create.2:92
12814 #, no-wrap
12815 msgid "B<TFD_NONBLOCK>"
12816 msgstr "B<TFD_NONBLOCK>"
12817
12818 #. type: TP
12819 #: build/C/man2/timerfd_create.2:100
12820 #, no-wrap
12821 msgid "B<TFD_CLOEXEC>"
12822 msgstr "B<TFD_CLOEXEC>"
12823
12824 #. type: Plain text
12825 #: build/C/man2/timerfd_create.2:114
12826 msgid ""
12827 "In Linux versions up to and including 2.6.26, I<flags> must be specified as "
12828 "zero."
12829 msgstr ""
12830 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
12831 "しなければならない。"
12832
12833 #. type: SS
12834 #: build/C/man2/timerfd_create.2:114
12835 #, no-wrap
12836 msgid "timerfd_settime()"
12837 msgstr "timerfd_settime()"
12838
12839 #. type: Plain text
12840 #: build/C/man2/timerfd_create.2:119
12841 msgid ""
12842 "B<timerfd_settime>()  arms (starts) or disarms (stops)  the timer referred "
12843 "to by the file descriptor I<fd>."
12844 msgstr ""
12845 "B<timerfd_settime>()  は、ファイルディスクリプタ I<fd> により参照されるタイ"
12846 "マーを開始したり停止したりする。"
12847
12848 #. type: Plain text
12849 #: build/C/man2/timerfd_create.2:128
12850 msgid ""
12851 "The I<new_value> argument specifies the initial expiration and interval for "
12852 "the timer.  The I<itimer> structure used for this argument contains two "
12853 "fields, each of which is in turn a structure of type I<timespec>:"
12854 msgstr ""
12855 "I<new_value> 引き数は、タイマーの満了時間 (expiration) の初期値と間隔 "
12856 "(interval) を 指定する。この引き数で使用されている I<itimerspec> 構造体には "
12857 "2 つのフィールドがあり、各フィールドは I<timespec> 型の構造体である。"
12858
12859 #. type: Plain text
12860 #: build/C/man2/timerfd_create.2:140
12861 #, no-wrap
12862 msgid ""
12863 "struct itimerspec {\n"
12864 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12865 "    struct timespec it_value;     /* Initial expiration */\n"
12866 "};\n"
12867 msgstr ""
12868 "struct itimerspec {\n"
12869 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12870 "    struct timespec it_value;     /* Initial expiration */\n"
12871 "};\n"
12872
12873 #. type: Plain text
12874 #: build/C/man2/timerfd_create.2:152
12875 msgid ""
12876 "I<new_value.it_value> specifies the initial expiration of the timer, in "
12877 "seconds and nanoseconds.  Setting either field of I<new_value.it_value> to a "
12878 "nonzero value arms the timer.  Setting both fields of I<new_value.it_value> "
12879 "to zero disarms the timer."
12880 msgstr ""
12881 "I<new_value.it_value> はタイマーの満了時間の初期値を、秒とナノ秒で指定する。 "
12882 "I<new_value.it_value> のフィールドのうち少なくとも一方に 0 以外の値を設定する"
12883 "と、 タイマーが開始される。 両方のフィールドに 0 を設定すると、タイマーが停止"
12884 "する。"
12885
12886 #. type: Plain text
12887 #: build/C/man2/timerfd_create.2:161
12888 msgid ""
12889 "Setting one or both fields of I<new_value.it_interval> to nonzero values "
12890 "specifies the period, in seconds and nanoseconds, for repeated timer "
12891 "expirations after the initial expiration.  If both fields of I<new_value."
12892 "it_interval> are zero, the timer expires just once, at the time specified by "
12893 "I<new_value.it_value>."
12894 msgstr ""
12895 "I<new_value.it_interval> はタイマーの一回目の満了後に繰り返しタイマーの満了間"
12896 "隔を、秒とナノ秒で指定する。 I<new_value.it_interval> のフィールドのうち少な"
12897 "くとも一方に 0 以外の値を設定すると、 繰り返しタイマーが有効になる。 両方の"
12898 "フィールドに 0 を設定した場合、タイマーは I<new_value.it_value> で指定された"
12899 "時間後に、一回だけ満了して停止する。"
12900
12901 #. type: Plain text
12902 #: build/C/man2/timerfd_create.2:177
12903 msgid ""
12904 "The I<flags> argument is either 0, to start a relative timer (I<new_value."
12905 "it_value> specifies a time relative to the current value of the clock "
12906 "specified by I<clockid>), or B<TFD_TIMER_ABSTIME>, to start an absolute "
12907 "timer (I<new_value.it_value> specifies an absolute time for the clock "
12908 "specified by I<clockid>; that is, the timer will expire when the value of "
12909 "that clock reaches the value specified in I<new_value.it_value>)."
12910 msgstr ""
12911 "I<flags> 引き数には 0 か B<TFD_TIMER_ABSTIME> を指定する。 0 は相対時刻タイ"
12912 "マーを意味し、 I<new_value.it_value> では I<clockid> で指定されたクロックの現"
12913 "在の値からの相対的な時刻を指定する。 B<TFD_TIMER_ABSTIME> は絶対時刻タイマー"
12914 "を意味し、 I<new_value.it_interval> では I<clockid> で指定されたクロックの絶"
12915 "対時刻を指定する。 つまり、クロックの値が I<new_value.it_interval> で指定され"
12916 "た時刻に達したら、タイマーが満了する。"
12917
12918 #. type: Plain text
12919 #: build/C/man2/timerfd_create.2:188
12920 msgid ""
12921 "If the I<old_value> argument is not NULL, then the I<itimerspec> structure "
12922 "that it points to is used to return the setting of the timer that was "
12923 "current at the time of the call; see the description of "
12924 "B<timerfd_gettime>()  following."
12925 msgstr ""
12926 "I<old_value> 引き数が NULL でない場合、 I<old_value> 引き数が指す "
12927 "I<itimerspec> 構造体は、 B<timerfd_settime>() を呼び出した時点でのタイマーの"
12928 "設定を返すのに使用される。 下記の B<timerfd_gettime>() の説明を参照。"
12929
12930 #. type: SS
12931 #: build/C/man2/timerfd_create.2:188
12932 #, no-wrap
12933 msgid "timerfd_gettime()"
12934 msgstr "timerfd_gettime()"
12935
12936 #. type: Plain text
12937 #: build/C/man2/timerfd_create.2:197
12938 msgid ""
12939 "B<timerfd_gettime>()  returns, in I<curr_value>, an I<itimerspec> structure "
12940 "that contains the current setting of the timer referred to by the file "
12941 "descriptor I<fd>."
12942 msgstr ""
12943 "B<timerfd_gettime>()  は、ファイルディスクリプタ I<fd> で参照されるタイマーの"
12944 "現在の設定が入った I<itimerspec> 構造体を、 I<curr_value> に格納して返す。"
12945
12946 #. type: Plain text
12947 #: build/C/man2/timerfd_create.2:207
12948 msgid ""
12949 "The I<it_value> field returns the amount of time until the timer will next "
12950 "expire.  If both fields of this structure are zero, then the timer is "
12951 "currently disarmed.  This field always contains a relative value, regardless "
12952 "of whether the B<TFD_TIMER_ABSTIME> flag was specified when setting the "
12953 "timer."
12954 msgstr ""
12955 "I<it_value> フィールドは、タイマーが次に満了するまでの残り時間を返す。 この構"
12956 "造体の両方のフィールドが 0 であれば、タイマーは現在停止している。 タイマー設"
12957 "定時に B<TFD_TIMER_ABSTIME> フラグが指定されたかに関わらず、このフィールドは"
12958 "常に相対値が格納される。"
12959
12960 #. type: Plain text
12961 #: build/C/man2/timerfd_create.2:214
12962 msgid ""
12963 "The I<it_interval> field returns the interval of the timer.  If both fields "
12964 "of this structure are zero, then the timer is set to expire just once, at "
12965 "the time specified by I<curr_value.it_value>."
12966 msgstr ""
12967 "I<it_interval> フィールドは、タイマーの間隔を返す。 この構造体の両方のフィー"
12968 "ルドが 0 であれば、タイマーは I<new_value.it_value> で指定された時間後に一回"
12969 "だけ満了して停止するように設定されている。"
12970
12971 #. type: SS
12972 #: build/C/man2/timerfd_create.2:214
12973 #, no-wrap
12974 msgid "Operating on a timer file descriptor"
12975 msgstr "タイマー・ファイルディスクリプタに対する操作"
12976
12977 #. type: Plain text
12978 #: build/C/man2/timerfd_create.2:218
12979 msgid ""
12980 "The file descriptor returned by B<timerfd_create>()  supports the following "
12981 "operations:"
12982 msgstr ""
12983 "B<timerfd_create>()  が返すファイルディスクリプタは以下の操作をサポートしてい"
12984 "る。"
12985
12986 #. type: Plain text
12987 #: build/C/man2/timerfd_create.2:232
12988 msgid ""
12989 "If the timer has already expired one or more times since its settings were "
12990 "last modified using B<timerfd_settime>(), or since the last successful "
12991 "B<read>(2), then the buffer given to B<read>(2)  returns an unsigned 8-byte "
12992 "integer (I<uint64_t>)  containing the number of expirations that have "
12993 "occurred.  (The returned value is in host byte order\\(emthat is, the native "
12994 "byte order for integers on the host machine.)"
12995 msgstr ""
12996 "B<timerfd_settime>()  を使ってタイマーの設定が最後変更されて以降、または "
12997 "B<read>(2)  の呼び出しに最後に成功して以降に、タイマーの満了が一回以上発生し"
12998 "ていれば、 B<read>(2)  に渡されたバッファに、タイマー満了回数を示す 8 バイト"
12999 "の unsigned 型の整数 (I<uint64_t>)  が返される (返される値はホストバイトオー"
13000 "ダ、つまりそのホストマシンにおける 整数の通常のバイトオーダである)。"
13001
13002 #. type: Plain text
13003 #: build/C/man2/timerfd_create.2:245
13004 msgid ""
13005 "If no timer expirations have occurred at the time of the B<read>(2), then "
13006 "the call either blocks until the next timer expiration, or fails with the "
13007 "error B<EAGAIN> if the file descriptor has been made nonblocking (via the "
13008 "use of the B<fcntl>(2)  B<F_SETFL> operation to set the B<O_NONBLOCK> flag)."
13009 msgstr ""
13010 "B<read>(2)  を行った時点でタイマーの満了が発生していなければ、 B<read>(2)  は"
13011 "停止 (block) する、もしくはファイルディスクリプタが 非停止 (nonblocking) に設"
13012 "定されている場合はエラー B<EAGAIN> で失敗する (非停止モードにするには、 "
13013 "B<fcntl>(2)  の B<F_SETFL> 命令で B<O_NONBLOCK> フラグをセットする)。"
13014
13015 #. type: Plain text
13016 #: build/C/man2/timerfd_create.2:251
13017 msgid ""
13018 "A B<read>(2)  will fail with the error B<EINVAL> if the size of the supplied "
13019 "buffer is less than 8 bytes."
13020 msgstr ""
13021 "渡されたバッファの大きさが 8 バイト未満の場合、 B<read>(2)  はエラー "
13022 "B<EINVAL> で失敗する。"
13023
13024 #. type: Plain text
13025 #: build/C/man2/timerfd_create.2:262
13026 msgid ""
13027 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
13028 "B<poll>(2)  B<POLLIN> flag)  if one or more timer expirations have occurred."
13029 msgstr ""
13030 "一つ以上のタイマー満了が発生していれば、 ファイルディスクリプタは読み出し可能"
13031 "となる (B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラ"
13032 "グ)。"
13033
13034 #. type: Plain text
13035 #: build/C/man2/timerfd_create.2:269
13036 msgid ""
13037 "The file descriptor also supports the other file-descriptor multiplexing "
13038 "APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
13039 msgstr ""
13040 "このファイルディスクリプタは、他のファイルディスクリプタ多重 API である "
13041 "B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
13042
13043 #. type: Plain text
13044 #: build/C/man2/timerfd_create.2:276
13045 msgid ""
13046 "When the file descriptor is no longer required it should be closed.  When "
13047 "all file descriptors associated with the same timer object have been closed, "
13048 "the timer is disarmed and its resources are freed by the kernel."
13049 msgstr ""
13050 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
13051 "る。 同じ timer オブジェクトに関連付けられたファイルディスクリプタが全て ク"
13052 "ローズされると、そのタイマーは解除され、 そのオブジェクト用の資源がカーネルに"
13053 "より解放される。"
13054
13055 #. type: Plain text
13056 #: build/C/man2/timerfd_create.2:288
13057 msgid ""
13058 "After a B<fork>(2), the child inherits a copy of the file descriptor created "
13059 "by B<timerfd_create>().  The file descriptor refers to the same underlying "
13060 "timer object as the corresponding file descriptor in the parent, and "
13061 "B<read>(2)s in the child will return information about expirations of the "
13062 "timer."
13063 msgstr ""
13064 "B<fork>(2)  が行われると、子プロセスは B<timerfd_create>()  により生成された"
13065 "ファイルディスクリプタのコピーを 継承する。そのファイルディスクリプタは、親プ"
13066 "ロセスの対応する ファイルディスクリプタと同じタイマーオブジェクトを参照してお"
13067 "り、 子プロセスの B<read>(2)  でも同じタイマーの満了に関する情報が返される。"
13068
13069 #. type: Plain text
13070 #: build/C/man2/timerfd_create.2:294
13071 msgid ""
13072 "A file descriptor created by B<timerfd_create>()  is preserved across "
13073 "B<execve>(2), and continues to generate timer expirations if the timer was "
13074 "armed."
13075 msgstr ""
13076 "B<execve>(2)  の前後で B<timerfd_create>()  により生成されたファイルディスク"
13077 "リプタは保持され、 タイマーが開始されていた場合にはタイマーの満了が発生し続け"
13078 "る。"
13079
13080 #. type: Plain text
13081 #: build/C/man2/timerfd_create.2:301
13082 msgid ""
13083 "On success, B<timerfd_create>()  returns a new file descriptor.  On error, "
13084 "-1 is returned and I<errno> is set to indicate the error."
13085 msgstr ""
13086 "成功すると、 B<timerfd_create>()  は新しいファイルディスクリプタを返す。 エ"
13087 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
13088
13089 #. type: Plain text
13090 #: build/C/man2/timerfd_create.2:309
13091 msgid ""
13092 "B<timerfd_settime>()  and B<timerfd_gettime>()  return 0 on success; on "
13093 "error they return -1, and set I<errno> to indicate the error."
13094 msgstr ""
13095 "B<timerfd_settime>()  と B<timerfd_gettime>()  は成功すると 0 を返す。 エラー"
13096 "の場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
13097
13098 #. type: Plain text
13099 #: build/C/man2/timerfd_create.2:312
13100 msgid "B<timerfd_create>()  can fail with the following errors:"
13101 msgstr "B<timerfd_create>()  は以下のエラーで失敗する可能性がある。"
13102
13103 #. type: Plain text
13104 #: build/C/man2/timerfd_create.2:320
13105 msgid ""
13106 "The I<clockid> argument is neither B<CLOCK_MONOTONIC> nor B<CLOCK_REALTIME>;"
13107 msgstr ""
13108 "I<clockid> 引き数が B<CLOCK_MONOTONIC> でも B<CLOCK_REALTIME> でもない。"
13109
13110 #. type: Plain text
13111 #: build/C/man2/timerfd_create.2:340
13112 msgid "There was insufficient kernel memory to create the timer."
13113 msgstr "タイマーを作成するのに十分なカーネルメモリがなかった。"
13114
13115 #. type: Plain text
13116 #: build/C/man2/timerfd_create.2:345
13117 msgid ""
13118 "B<timerfd_settime>()  and B<timerfd_gettime>()  can fail with the following "
13119 "errors:"
13120 msgstr ""
13121 "B<timerfd_settime>()  と B<timerfd_gettime>()  は以下のエラーで失敗する可能性"
13122 "がある。"
13123
13124 #. type: Plain text
13125 #: build/C/man2/timerfd_create.2:349
13126 msgid "I<fd> is not a valid file descriptor."
13127 msgstr "I<fd> が有効なファイルディスクリプタでない。"
13128
13129 #. type: Plain text
13130 #: build/C/man2/timerfd_create.2:360
13131 msgid "I<fd> is not a valid timerfd file descriptor."
13132 msgstr "I<fd> が有効な timerfd ファイルディスクリプタでない。"
13133
13134 #. type: Plain text
13135 #: build/C/man2/timerfd_create.2:363
13136 msgid "B<timerfd_settime>()  can also fail with the following errors:"
13137 msgstr "B<timerfd_settime>()  は以下のエラーで失敗することもある。"
13138
13139 #. type: Plain text
13140 #: build/C/man2/timerfd_create.2:369
13141 msgid ""
13142 "I<new_value> is not properly initialized (one of the I<tv_nsec> falls "
13143 "outside the range zero to 999,999,999)."
13144 msgstr ""
13145 "I<new_value> が適切に初期化されていない (I<tv_nsec> の一つが 0 から "
13146 "999,999,999 までの範囲に入っていない)。"
13147
13148 #.  This case only checked since 2.6.29, and 2.2.2[78].some-stable-version.
13149 #.  In older kernel versions, no check was made for invalid flags.
13150 #. type: Plain text
13151 #: build/C/man2/timerfd_create.2:375
13152 msgid "I<flags> is invalid."
13153 msgstr "I<flags> が無効である。"
13154
13155 #. type: Plain text
13156 #: build/C/man2/timerfd_create.2:378
13157 msgid ""
13158 "These system calls are available on Linux since kernel 2.6.25.  Library "
13159 "support is provided by glibc since version 2.8."
13160 msgstr ""
13161 "これらのシステムコールはカーネル 2.6.25 以降の Linux で利用可能である。 ライ"
13162 "ブラリ側のサポートはバージョン 2.8 以降の glibc で提供されている。"
13163
13164 #.  2.6.29
13165 #. type: Plain text
13166 #: build/C/man2/timerfd_create.2:386
13167 msgid ""
13168 "Currently, B<timerfd_create>()  supports fewer types of clock IDs than "
13169 "B<timer_create>(2)."
13170 msgstr ""
13171 "現在のところ、 B<timerfd_create>()  が対応している clockid の種類は "
13172 "B<timer_create>(2)  よりも少ない。"
13173
13174 #. type: Plain text
13175 #: build/C/man2/timerfd_create.2:395
13176 msgid ""
13177 "The following program creates a timer and then monitors its progress.  The "
13178 "program accepts up to three command-line arguments.  The first argument "
13179 "specifies the number of seconds for the initial expiration of the timer.  "
13180 "The second argument specifies the interval for the timer, in seconds.  The "
13181 "third argument specifies the number of times the program should allow the "
13182 "timer to expire before terminating.  The second and third command-line "
13183 "arguments are optional."
13184 msgstr ""
13185 "以下のプログラムは、タイマーを作成し、その進捗をモニターするものである。 この"
13186 "プログラムは最大で 3 個のコマンドライン引き数を取り、 第一引き数ではタイマー"
13187 "の満了時間の初期値 (秒数単位) を、 第二引き数ではタイマーの間隔 (秒数単位) "
13188 "を、 第三引き数ではタイマーが何回満了したらプログラムが終了するかを指定す"
13189 "る。 第二引き数と第三引き数は省略可能である。"
13190
13191 #. type: Plain text
13192 #: build/C/man2/timerfd_create.2:397 build/C/man2/wait.2:571
13193 msgid "The following shell session demonstrates the use of the program:"
13194 msgstr "以下のシェルのセッションはこのプログラムの使用例を示したものである。"
13195
13196 #. type: Plain text
13197 #: build/C/man2/timerfd_create.2:412
13198 #, no-wrap
13199 msgid ""
13200 "$B< a.out 3 1 100>\n"
13201 "0.000: timer started\n"
13202 "3.000: read: 1; total=1\n"
13203 "4.000: read: 1; total=2\n"
13204 "B<^Z >                 # type control-Z to suspend the program\n"
13205 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
13206 "$ B<fg>                # Resume execution after a few seconds\n"
13207 "a.out 3 1 100\n"
13208 "9.660: read: 5; total=7\n"
13209 "10.000: read: 1; total=8\n"
13210 "11.000: read: 1; total=9\n"
13211 "B<^C >                 # type control-C to suspend the program\n"
13212 msgstr ""
13213 "$B< a.out 3 1 100>\n"
13214 "0.000: timer started\n"
13215 "3.000: read: 1; total=1\n"
13216 "4.000: read: 1; total=2\n"
13217 "B<^Z >                 # type control-Z to suspend the program\n"
13218 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
13219 "$ B<fg>                # Resume execution after a few seconds\n"
13220 "a.out 3 1 100\n"
13221 "9.660: read: 5; total=7\n"
13222 "10.000: read: 1; total=8\n"
13223 "11.000: read: 1; total=9\n"
13224 "B<^C >                 # type control-C to suspend the program\n"
13225
13226 #.  The commented out code here is what we currently need until
13227 #.  the required stuff is in glibc
13228 #. /* Link with -lrt */
13229 #. #define _GNU_SOURCE
13230 #. #include <sys/syscall.h>
13231 #. #include <unistd.h>
13232 #. #include <time.h>
13233 #. #if defined(__i386__)
13234 #. #define __NR_timerfd_create 322
13235 #. #define __NR_timerfd_settime 325
13236 #. #define __NR_timerfd_gettime 326
13237 #. #endif
13238 #. static int
13239 #. timerfd_create(int clockid, int flags)
13240 #. {
13241 #.     return syscall(__NR_timerfd_create, clockid, flags);
13242 #. }
13243 #. static int
13244 #. timerfd_settime(int fd, int flags, struct itimerspec *new_value,
13245 #.         struct itimerspec *curr_value)
13246 #. {
13247 #.     return syscall(__NR_timerfd_settime, fd, flags, new_value,
13248 #.                    curr_value);
13249 #. }
13250 #. static int
13251 #. timerfd_gettime(int fd, struct itimerspec *curr_value)
13252 #. {
13253 #.     return syscall(__NR_timerfd_gettime, fd, curr_value);
13254 #. }
13255 #. #define TFD_TIMER_ABSTIME (1 << 0)
13256 #. ////////////////////////////////////////////////////////////
13257 #. type: Plain text
13258 #: build/C/man2/timerfd_create.2:461
13259 #, no-wrap
13260 msgid ""
13261 "#include E<lt>sys/timerfd.hE<gt>\n"
13262 "#include E<lt>time.hE<gt>\n"
13263 "#include E<lt>unistd.hE<gt>\n"
13264 "#include E<lt>stdlib.hE<gt>\n"
13265 "#include E<lt>stdio.hE<gt>\n"
13266 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
13267 msgstr ""
13268 "#include E<lt>sys/timerfd.hE<gt>\n"
13269 "#include E<lt>time.hE<gt>\n"
13270 "#include E<lt>unistd.hE<gt>\n"
13271 "#include E<lt>stdlib.hE<gt>\n"
13272 "#include E<lt>stdio.hE<gt>\n"
13273 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
13274
13275 #. type: Plain text
13276 #: build/C/man2/timerfd_create.2:464
13277 #, no-wrap
13278 msgid ""
13279 "#define handle_error(msg) \\e\n"
13280 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
13281 msgstr ""
13282 "#define handle_error(msg) \\e\n"
13283 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
13284
13285 #. type: Plain text
13286 #: build/C/man2/timerfd_create.2:472
13287 #, no-wrap
13288 msgid ""
13289 "static void\n"
13290 "print_elapsed_time(void)\n"
13291 "{\n"
13292 "    static struct timespec start;\n"
13293 "    struct timespec curr;\n"
13294 "    static int first_call = 1;\n"
13295 "    int secs, nsecs;\n"
13296 msgstr ""
13297 "static void\n"
13298 "print_elapsed_time(void)\n"
13299 "{\n"
13300 "    static struct timespec start;\n"
13301 "    struct timespec curr;\n"
13302 "    static int first_call = 1;\n"
13303 "    int secs, nsecs;\n"
13304
13305 #. type: Plain text
13306 #: build/C/man2/timerfd_create.2:478
13307 #, no-wrap
13308 msgid ""
13309 "    if (first_call) {\n"
13310 "        first_call = 0;\n"
13311 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
13312 "            handle_error(\"clock_gettime\");\n"
13313 "    }\n"
13314 msgstr ""
13315 "    if (first_call) {\n"
13316 "        first_call = 0;\n"
13317 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
13318 "            handle_error(\"clock_gettime\");\n"
13319 "    }\n"
13320
13321 #. type: Plain text
13322 #: build/C/man2/timerfd_create.2:481
13323 #, no-wrap
13324 msgid ""
13325 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
13326 "        handle_error(\"clock_gettime\");\n"
13327 msgstr ""
13328 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
13329 "        handle_error(\"clock_gettime\");\n"
13330
13331 #. type: Plain text
13332 #: build/C/man2/timerfd_create.2:490
13333 #, no-wrap
13334 msgid ""
13335 "    secs = curr.tv_sec - start.tv_sec;\n"
13336 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
13337 "    if (nsecs E<lt> 0) {\n"
13338 "        secs--;\n"
13339 "        nsecs += 1000000000;\n"
13340 "    }\n"
13341 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
13342 "}\n"
13343 msgstr ""
13344 "    secs = curr.tv_sec - start.tv_sec;\n"
13345 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
13346 "    if (nsecs E<lt> 0) {\n"
13347 "        secs--;\n"
13348 "        nsecs += 1000000000;\n"
13349 "    }\n"
13350 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
13351 "}\n"
13352
13353 #. type: Plain text
13354 #: build/C/man2/timerfd_create.2:499
13355 #, no-wrap
13356 msgid ""
13357 "int\n"
13358 "main(int argc, char *argv[])\n"
13359 "{\n"
13360 "    struct itimerspec new_value;\n"
13361 "    int max_exp, fd;\n"
13362 "    struct timespec now;\n"
13363 "    uint64_t exp, tot_exp;\n"
13364 "    ssize_t s;\n"
13365 msgstr ""
13366 "int\n"
13367 "main(int argc, char *argv[])\n"
13368 "{\n"
13369 "    struct itimerspec new_value;\n"
13370 "    int max_exp, fd;\n"
13371 "    struct timespec now;\n"
13372 "    uint64_t exp, tot_exp;\n"
13373 "    ssize_t s;\n"
13374
13375 #. type: Plain text
13376 #: build/C/man2/timerfd_create.2:505
13377 #, no-wrap
13378 msgid ""
13379 "    if ((argc != 2) && (argc != 4)) {\n"
13380 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
13381 "                argv[0]);\n"
13382 "        exit(EXIT_FAILURE);\n"
13383 "    }\n"
13384 msgstr ""
13385 "    if ((argc != 2) && (argc != 4)) {\n"
13386 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
13387 "                argv[0]);\n"
13388 "        exit(EXIT_FAILURE);\n"
13389 "    }\n"
13390
13391 #. type: Plain text
13392 #: build/C/man2/timerfd_create.2:508
13393 #, no-wrap
13394 msgid ""
13395 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
13396 "        handle_error(\"clock_gettime\");\n"
13397 msgstr ""
13398 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
13399 "        handle_error(\"clock_gettime\");\n"
13400
13401 #. type: Plain text
13402 #: build/C/man2/timerfd_create.2:511
13403 #, no-wrap
13404 msgid ""
13405 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
13406 "       expiration and interval as specified in command line */\n"
13407 msgstr ""
13408 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
13409 "       expiration and interval as specified in command line */\n"
13410
13411 #. type: Plain text
13412 #: build/C/man2/timerfd_create.2:522
13413 #, no-wrap
13414 msgid ""
13415 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
13416 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
13417 "    if (argc == 2) {\n"
13418 "        new_value.it_interval.tv_sec = 0;\n"
13419 "        max_exp = 1;\n"
13420 "    } else {\n"
13421 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
13422 "        max_exp = atoi(argv[3]);\n"
13423 "    }\n"
13424 "    new_value.it_interval.tv_nsec = 0;\n"
13425 msgstr ""
13426 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
13427 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
13428 "    if (argc == 2) {\n"
13429 "        new_value.it_interval.tv_sec = 0;\n"
13430 "        max_exp = 1;\n"
13431 "    } else {\n"
13432 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
13433 "        max_exp = atoi(argv[3]);\n"
13434 "    }\n"
13435 "    new_value.it_interval.tv_nsec = 0;\n"
13436
13437 #. type: Plain text
13438 #: build/C/man2/timerfd_create.2:526
13439 #, no-wrap
13440 msgid ""
13441 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
13442 "    if (fd == -1)\n"
13443 "        handle_error(\"timerfd_create\");\n"
13444 msgstr ""
13445 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
13446 "    if (fd == -1)\n"
13447 "        handle_error(\"timerfd_create\");\n"
13448
13449 #. type: Plain text
13450 #: build/C/man2/timerfd_create.2:529
13451 #, no-wrap
13452 msgid ""
13453 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
13454 "        handle_error(\"timerfd_settime\");\n"
13455 msgstr ""
13456 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
13457 "        handle_error(\"timerfd_settime\");\n"
13458
13459 #. type: Plain text
13460 #: build/C/man2/timerfd_create.2:532
13461 #, no-wrap
13462 msgid ""
13463 "    print_elapsed_time();\n"
13464 "    printf(\"timer started\\en\");\n"
13465 msgstr ""
13466 "    print_elapsed_time();\n"
13467 "    printf(\"timer started\\en\");\n"
13468
13469 #. type: Plain text
13470 #: build/C/man2/timerfd_create.2:537
13471 #, no-wrap
13472 msgid ""
13473 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
13474 "        s = read(fd, &exp, sizeof(uint64_t));\n"
13475 "        if (s != sizeof(uint64_t))\n"
13476 "            handle_error(\"read\");\n"
13477 msgstr ""
13478 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
13479 "        s = read(fd, &exp, sizeof(uint64_t));\n"
13480 "        if (s != sizeof(uint64_t))\n"
13481 "            handle_error(\"read\");\n"
13482
13483 #. type: Plain text
13484 #: build/C/man2/timerfd_create.2:544
13485 #, no-wrap
13486 msgid ""
13487 "        tot_exp += exp;\n"
13488 "        print_elapsed_time();\n"
13489 "        printf(\"read: %llu; total=%llu\\en\",\n"
13490 "                (unsigned long long) exp,\n"
13491 "                (unsigned long long) tot_exp);\n"
13492 "    }\n"
13493 msgstr ""
13494 "        tot_exp += exp;\n"
13495 "        print_elapsed_time();\n"
13496 "        printf(\"read: %llu; total=%llu\\en\",\n"
13497 "                (unsigned long long) exp,\n"
13498 "                (unsigned long long) tot_exp);\n"
13499 "    }\n"
13500
13501 #. type: Plain text
13502 #: build/C/man2/timerfd_create.2:560
13503 msgid ""
13504 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
13505 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), "
13506 "B<timer_settime>(2), B<epoll>(7), B<time>(7)"
13507 msgstr ""
13508 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
13509 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), "
13510 "B<timer_settime>(2), B<epoll>(7), B<time>(7)"
13511
13512 #. type: TH
13513 #: build/C/man2/tkill.2:29
13514 #, no-wrap
13515 msgid "TKILL"
13516 msgstr "TKILL"
13517
13518 #. type: Plain text
13519 #: build/C/man2/tkill.2:32
13520 msgid "tkill, tgkill - send a signal to a thread"
13521 msgstr "tkill, tgkill - スレッドにシグナルを送る"
13522
13523 #. type: Plain text
13524 #: build/C/man2/tkill.2:35
13525 #, no-wrap
13526 msgid "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
13527 msgstr "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
13528
13529 #. type: Plain text
13530 #: build/C/man2/tkill.2:37
13531 #, no-wrap
13532 msgid "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
13533 msgstr "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
13534
13535 #. type: Plain text
13536 #: build/C/man2/tkill.2:54
13537 msgid ""
13538 "B<tgkill>()  sends the signal I<sig> to the thread with the thread ID I<tid> "
13539 "in the thread group I<tgid>.  (By contrast, B<kill>(2)  can be used to send "
13540 "a signal only to a process (i.e., thread group)  as a whole, and the signal "
13541 "will be delivered to an arbitrary thread within that process.)"
13542 msgstr ""
13543 "B<tgkill>()  はスレッド・グループ I<tgid> に属するスレッド ID が I<tid> のス"
13544 "レッドにシグナル I<sig> を送る。 (これに対し、 B<kill>(2)  は一つのプロセス "
13545 "(すなわち、スレッド・グループ) にまとめてシグナルを 送るのにだけ利用できる。 "
13546 "B<kill>(2)  で送信されたシグナルはプロセス内の任意のスレッドに配送される。)"
13547
13548 #.  FIXME Maybe say something about the following:
13549 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=12889
13550 #.      Rich Felker <bugdal@aerifal.cx>
13551 #.      There is a race condition in pthread_kill: it is possible that,
13552 #.      between the time pthread_kill reads the pid/tid from the target
13553 #.      thread descriptor and the time it makes the tgkill syscall,
13554 #.      the target thread terminates and the same tid gets assigned
13555 #.      to a new thread in the same process.
13556 #.      (The tgkill syscall was designed to eliminate a similar race
13557 #.      condition in tkill, but it only succeeded in eliminating races
13558 #.      where the tid gets reused in a different process, and does not
13559 #.      help if the same tid gets assigned to a new thread in the
13560 #.      same process.)
13561 #.      The only solution I can see is to introduce a mutex that ensures
13562 #.      that a thread cannot exit while pthread_kill is being called on it.
13563 #.      Note that in most real-world situations, like almost all race
13564 #.      conditions, this one will be extremely rare. To make it
13565 #.      measurable, one could exhaust all but 1-2 available pid values,
13566 #.      possibly by lowering the max pid parameter in /proc, forcing
13567 #.      the same tid to be reused rapidly.
13568 #. type: Plain text
13569 #: build/C/man2/tkill.2:85
13570 msgid ""
13571 "B<tkill>()  is an obsolete predecessor to B<tgkill>().  It allows only the "
13572 "target thread ID to be specified, which may result in the wrong thread being "
13573 "signaled if a thread terminates and its thread ID is recycled.  Avoid using "
13574 "this system call."
13575 msgstr ""
13576 "B<tkill>()  はもう使われなくなった B<tgkill>()  の先祖である。 B<tkill>()  で"
13577 "はシグナルの送り先のスレッド ID しか指定できない。 そのため、スレッドが終了し"
13578 "て、そのスレッド ID が再利用される場合に、 意図しないスレッドにシグナルが送ら"
13579 "れる可能性がある。 このシステムコールの使用は避けること。"
13580
13581 #. type: Plain text
13582 #: build/C/man2/tkill.2:88
13583 msgid ""
13584 "These are the raw system call interfaces, meant for internal thread library "
13585 "use."
13586 msgstr ""
13587 "これらはシステムコールへの直接のインターフェースであり、 スレッド・ライブラリ"
13588 "内部での使用を意図したものである。"
13589
13590 #. type: Plain text
13591 #: build/C/man2/tkill.2:96
13592 msgid "An invalid thread ID, thread group ID, or signal was specified."
13593 msgstr "指定されたスレッド ID、スレッドグループ ID、シグナルが不正であった。"
13594
13595 #. type: Plain text
13596 #: build/C/man2/tkill.2:101
13597 msgid "Permission denied.  For the required permissions, see B<kill>(2)."
13598 msgstr ""
13599 "許可がなかった。どのような許可が必要かについては、 B<kill>(2)  を参照のこと。"
13600
13601 #. type: Plain text
13602 #: build/C/man2/tkill.2:104
13603 msgid "No process with the specified thread ID (and thread group ID) exists."
13604 msgstr ""
13605 "指定されたスレッドID (とスレッド・グループID) を持つプロセスが存在しない。"
13606
13607 #. type: Plain text
13608 #: build/C/man2/tkill.2:109
13609 msgid ""
13610 "B<tkill>()  is supported since Linux 2.4.19 / 2.5.4.  B<tgkill>()  was added "
13611 "in Linux 2.5.75."
13612 msgstr ""
13613 "B<tkill>()  は Linux 2.4.19 / 2.5.4 以降でサポートされ、 B<tgkill>()  は "
13614 "Linux 2.5.75 で追加された。"
13615
13616 #. type: Plain text
13617 #: build/C/man2/tkill.2:115
13618 msgid ""
13619 "B<tkill>()  and B<tgkill>()  are Linux-specific and should not be used in "
13620 "programs that are intended to be portable."
13621 msgstr ""
13622 "B<tkill>()  と B<tgkill>()  は Linux 固有であり、 移植を想定したプログラムで"
13623 "は使用すべきではない。"
13624
13625 #. type: Plain text
13626 #: build/C/man2/tkill.2:121
13627 msgid ""
13628 "See the description of B<CLONE_THREAD> in B<clone>(2)  for an explanation of "
13629 "thread groups."
13630 msgstr ""
13631 "スレッド・グループの説明については B<clone>(2)  の B<CLONE_THREAD> の説明を参"
13632 "照のこと。"
13633
13634 #. type: Plain text
13635 #: build/C/man2/tkill.2:124
13636 msgid ""
13637 "Glibc does not provide wrappers for these system calls; call them using "
13638 "B<syscall>(2)."
13639 msgstr ""
13640 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
13641 "B<syscall>(2)  を使って呼び出すこと。"
13642
13643 #. type: Plain text
13644 #: build/C/man2/tkill.2:129
13645 msgid "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
13646 msgstr "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
13647
13648 #. type: TH
13649 #: build/C/man2/wait.2:49
13650 #, no-wrap
13651 msgid "WAIT"
13652 msgstr "WAIT"
13653
13654 #. type: Plain text
13655 #: build/C/man2/wait.2:52
13656 msgid "wait, waitpid, waitid - wait for process to change state"
13657 msgstr "wait, waitpid, waitid - プロセスの状態変化を待つ"
13658
13659 #. type: Plain text
13660 #: build/C/man2/wait.2:54
13661 msgid "B<#include E<lt>sys/types.hE<gt>>"
13662 msgstr "B<#include E<lt>sys/types.hE<gt>>"
13663
13664 #. type: Plain text
13665 #: build/C/man2/wait.2:56
13666 msgid "B<#include E<lt>sys/wait.hE<gt>>"
13667 msgstr "B<#include E<lt>sys/wait.hE<gt>>"
13668
13669 #. type: Plain text
13670 #: build/C/man2/wait.2:58
13671 msgid "B<pid_t wait(int *>I<status>B<);>"
13672 msgstr "B<pid_t wait(int *>I<status>B<);>"
13673
13674 #. type: Plain text
13675 #: build/C/man2/wait.2:60
13676 msgid ""
13677 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
13678 msgstr ""
13679 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
13680
13681 #. type: Plain text
13682 #: build/C/man2/wait.2:65
13683 #, no-wrap
13684 msgid ""
13685 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, int >I<options>B<);>\n"
13686 "                /* This is the glibc and POSIX interface; see\n"
13687 "                   NOTES for information on the raw system call. */\n"
13688 msgstr ""
13689 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, int >I<options>B<);>\n"
13690 "                /* これは glibc と POSIX のインターフェイスである。\n"
13691 "                   生のシステムコールについての情報は「注意」の節を参照。 */\n"
13692
13693 #. type: Plain text
13694 #: build/C/man2/wait.2:74
13695 msgid "B<waitid>():"
13696 msgstr "B<waitid>():"
13697
13698 #. type: Plain text
13699 #: build/C/man2/wait.2:78
13700 msgid ""
13701 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13702 "_XOPEN_SOURCE_EXTENDED"
13703 msgstr ""
13704 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13705 "_XOPEN_SOURCE_EXTENDED"
13706
13707 #. type: Plain text
13708 #: build/C/man2/wait.2:93
13709 msgid ""
13710 "All of these system calls are used to wait for state changes in a child of "
13711 "the calling process, and obtain information about the child whose state has "
13712 "changed.  A state change is considered to be: the child terminated; the "
13713 "child was stopped by a signal; or the child was resumed by a signal.  In the "
13714 "case of a terminated child, performing a wait allows the system to release "
13715 "the resources associated with the child; if a wait is not performed, then "
13716 "the terminated child remains in a \"zombie\" state (see NOTES below)."
13717 msgstr ""
13718 "これらのシステムコールはいずれも、呼び出し元プロセスの子プロセスの 状態変化を"
13719 "待ち、状態が変化したその子プロセスの情報を取得するのに 使用される。 状態変化"
13720 "とは以下のいずれかである: 子プロセスの終了、シグナルによる子プロセスの停止、 "
13721 "シグナルによる子プロセスの再開。 子プロセスが終了した場合は、wait を実行する"
13722 "ことで、 システムがその子プロセスに関連するリソースを解放できるようになる。 "
13723 "wait が実行されなかった場合には、終了した子プロセスは 「ゾンビ」状態で残り続"
13724 "ける (下記の注意の章を参照のこと)。"
13725
13726 #. type: Plain text
13727 #: build/C/man2/wait.2:105
13728 msgid ""
13729 "If a child has already changed state, then these calls return immediately.  "
13730 "Otherwise, they block until either a child changes state or a signal handler "
13731 "interrupts the call (assuming that system calls are not automatically "
13732 "restarted using the B<SA_RESTART> flag of B<sigaction>(2)).  In the "
13733 "remainder of this page, a child whose state has changed and which has not "
13734 "yet been waited upon by one of these system calls is termed I<waitable>."
13735 msgstr ""
13736 "子プロセスの状態変化がすでに発生していた場合、これらのコールは すぐに復帰す"
13737 "る。それ以外の場合は、子プロセスの状態変化が起こるか、 シグナルハンドラにより"
13738 "システムコールが中断されるまで、 停止 (block) する (後者は、 "
13739 "B<sigaction>(2)  の B<SA_RESTART> フラグによりシステムコールが自動的に再ス"
13740 "タートするようになっていない 場合の動作である)。 以下の説明では、状態変化が起"
13741 "こったがこれらのシステムコールのいずれかに よって待たれていない子プロセスを "
13742 "I<waitable> (待ち可能) と呼ぶ。"
13743
13744 #. type: SS
13745 #: build/C/man2/wait.2:105
13746 #, no-wrap
13747 msgid "wait() and waitpid()"
13748 msgstr "wait() と waitpid()"
13749
13750 #. type: Plain text
13751 #: build/C/man2/wait.2:113
13752 msgid ""
13753 "The B<wait>()  system call suspends execution of the calling process until "
13754 "one of its children terminates.  The call I<wait(&status)> is equivalent to:"
13755 msgstr ""
13756 "B<wait>()  システムコールは、子プロセスのいずれかが終了するまで 呼び出し元の"
13757 "プロセスの実行を一時停止する。 呼び出し I<wait(&status)> は以下と等価である:"
13758
13759 #. type: Plain text
13760 #: build/C/man2/wait.2:116
13761 #, no-wrap
13762 msgid "    waitpid(-1, &status, 0);\n"
13763 msgstr "    waitpid(-1, &status, 0);\n"
13764
13765 #. type: Plain text
13766 #: build/C/man2/wait.2:130
13767 msgid ""
13768 "The B<waitpid>()  system call suspends execution of the calling process "
13769 "until a child specified by I<pid> argument has changed state.  By default, "
13770 "B<waitpid>()  waits only for terminated children, but this behavior is "
13771 "modifiable via the I<options> argument, as described below."
13772 msgstr ""
13773 "B<waitpid>()  システムコールは、 I<pid> 引き数で指定した子プロセスの状態変化"
13774 "が起こるまで、 呼び出し元のプロセスの実行を一時停止する。デフォルトでは、 "
13775 "B<waitpid>()  は子プロセスの終了だけを待つが、この動作は I<options> 引き数に"
13776 "より変更可能である。"
13777
13778 #. type: Plain text
13779 #: build/C/man2/wait.2:134
13780 msgid "The value of I<pid> can be:"
13781 msgstr "I<pid> に指定できる値は以下の通り:"
13782
13783 #. type: IP
13784 #: build/C/man2/wait.2:134
13785 #, no-wrap
13786 msgid "E<lt> -1"
13787 msgstr "E<lt> -1"
13788
13789 #. type: Plain text
13790 #: build/C/man2/wait.2:138
13791 msgid ""
13792 "meaning wait for any child process whose process group ID is equal to the "
13793 "absolute value of I<pid>."
13794 msgstr ""
13795 "プロセスグループID が I<pid> の絶対値に等しい子プロセスのいずれかが終了するま"
13796 "でを待つ。"
13797
13798 #. type: IP
13799 #: build/C/man2/wait.2:138
13800 #, no-wrap
13801 msgid "-1"
13802 msgstr "-1"
13803
13804 #. type: Plain text
13805 #: build/C/man2/wait.2:140
13806 msgid "meaning wait for any child process."
13807 msgstr "子プロセスのどれかが終了するまで待つ。"
13808
13809 #. type: IP
13810 #: build/C/man2/wait.2:140
13811 #, no-wrap
13812 msgid "0"
13813 msgstr "0"
13814
13815 #. type: Plain text
13816 #: build/C/man2/wait.2:143
13817 msgid ""
13818 "meaning wait for any child process whose process group ID is equal to that "
13819 "of the calling process."
13820 msgstr ""
13821 "プロセスグループID が呼び出したプロセスのものと等しい 子プロセスを待つ。"
13822
13823 #. type: IP
13824 #: build/C/man2/wait.2:143
13825 #, no-wrap
13826 msgid "E<gt> 0"
13827 msgstr "E<gt> 0"
13828
13829 #. type: Plain text
13830 #: build/C/man2/wait.2:147
13831 msgid ""
13832 "meaning wait for the child whose process ID is equal to the value of I<pid>."
13833 msgstr "プロセスID が I<pid> に等しい子プロセスを待つ。"
13834
13835 #. type: Plain text
13836 #: build/C/man2/wait.2:151
13837 msgid ""
13838 "The value of I<options> is an OR of zero or more of the following constants:"
13839 msgstr "I<options> の値は次の定数の 0 個以上の論理和である:"
13840
13841 #. type: TP
13842 #: build/C/man2/wait.2:151 build/C/man2/wait.2:280
13843 #, no-wrap
13844 msgid "B<WNOHANG>"
13845 msgstr "B<WNOHANG>"
13846
13847 #. type: Plain text
13848 #: build/C/man2/wait.2:154
13849 msgid "return immediately if no child has exited."
13850 msgstr "状態変化が起こった子プロセスがない場合にすぐに復帰する。"
13851
13852 #. type: TP
13853 #: build/C/man2/wait.2:154
13854 #, no-wrap
13855 msgid "B<WUNTRACED>"
13856 msgstr "B<WUNTRACED>"
13857
13858 #. type: Plain text
13859 #: build/C/man2/wait.2:163
13860 msgid ""
13861 "also return if a child has stopped (but not traced via B<ptrace>(2)).  "
13862 "Status for I<traced> children which have stopped is provided even if this "
13863 "option is not specified."
13864 msgstr ""
13865 "子プロセスが停止した場合にも復帰する (子プロセスが B<ptrace>(2)  でトレースさ"
13866 "れている場合は除く)。 このオプションが指定されていない場合でも、停止したプロ"
13867 "セスが 「トレース (traced)」されていれば、子プロセスの状態が報告される。"
13868
13869 #. type: TP
13870 #: build/C/man2/wait.2:163
13871 #, no-wrap
13872 msgid "B<WCONTINUED> (since Linux 2.6.10)"
13873 msgstr "B<WCONTINUED> (Linux 2.6.10 以降)"
13874
13875 #. type: Plain text
13876 #: build/C/man2/wait.2:167
13877 msgid ""
13878 "also return if a stopped child has been resumed by delivery of B<SIGCONT>."
13879 msgstr "停止した子プロセスが B<SIGCONT> の配送により再開した場合にも復帰する。"
13880
13881 #. type: Plain text
13882 #: build/C/man2/wait.2:169
13883 msgid "(For Linux-only options, see below.)"
13884 msgstr "(Linux 専用オプションについては後述する)"
13885
13886 #. type: Plain text
13887 #: build/C/man2/wait.2:183
13888 msgid ""
13889 "If I<status> is not NULL, B<wait>()  and B<waitpid>()  store status "
13890 "information in the I<int> to which it points.  This integer can be inspected "
13891 "with the following macros (which take the integer itself as an argument, not "
13892 "a pointer to it, as is done in B<wait>()  and B<waitpid>()!):"
13893 msgstr ""
13894 "I<status> が NULL でなければ、 B<wait>()  や B<waitpid>()  は I<status> で指"
13895 "す I<int> に状態情報を格納する。 この整数は以下のマクロを使って検査できる。 "
13896 "(これらのマクロの引き数には、 B<wait>()  や B<waitpid>()  が書き込んだ整数そ"
13897 "のものを指定する。ポインタではない!)"
13898
13899 #. type: TP
13900 #: build/C/man2/wait.2:183
13901 #, no-wrap
13902 msgid "B<WIFEXITED(>I<status>B<)>"
13903 msgstr "B<WIFEXITED(>I<status>B<)>"
13904
13905 #. type: Plain text
13906 #: build/C/man2/wait.2:191
13907 msgid ""
13908 "returns true if the child terminated normally, that is, by calling "
13909 "B<exit>(3)  or B<_exit>(2), or by returning from main()."
13910 msgstr ""
13911 "子プロセスが正常に終了した場合に真を返す。 「正常に」とは、 B<exit>(3)  か "
13912 "B<_exit>(2)  が呼び出された場合、もしくは main() から復帰した場合である。"
13913
13914 #. type: TP
13915 #: build/C/man2/wait.2:191
13916 #, no-wrap
13917 msgid "B<WEXITSTATUS(>I<status>B<)>"
13918 msgstr "B<WEXITSTATUS(>I<status>B<)>"
13919
13920 #. type: Plain text
13921 #: build/C/man2/wait.2:204
13922 msgid ""
13923 "returns the exit status of the child.  This consists of the least "
13924 "significant 8 bits of the I<status> argument that the child specified in a "
13925 "call to B<exit>(3)  or B<_exit>(2)  or as the argument for a return "
13926 "statement in main().  This macro should be employed only if B<WIFEXITED> "
13927 "returned true."
13928 msgstr ""
13929 "子プロセスの終了ステータスを返す。 終了ステータスは I<status> 引き数の下位 8"
13930 "ビットで構成されており、 B<exit>(3)  や B<_exit>(2)  の呼び出し時に渡された"
13931 "値、もしくは main() の return 文の 引き数として指定された値である。 このマク"
13932 "ロを使用するのは B<WIFEXITED> が真を返した場合だけにすべきである。"
13933
13934 #. type: TP
13935 #: build/C/man2/wait.2:204
13936 #, no-wrap
13937 msgid "B<WIFSIGNALED(>I<status>B<)>"
13938 msgstr "B<WIFSIGNALED(>I<status>B<)>"
13939
13940 #. type: Plain text
13941 #: build/C/man2/wait.2:207
13942 msgid "returns true if the child process was terminated by a signal."
13943 msgstr "子プロセスがシグナルにより終了した場合に真を返す。"
13944
13945 #. type: TP
13946 #: build/C/man2/wait.2:207
13947 #, no-wrap
13948 msgid "B<WTERMSIG(>I<status>B<)>"
13949 msgstr "B<WTERMSIG(>I<status>B<)>"
13950
13951 #. type: Plain text
13952 #: build/C/man2/wait.2:214
13953 msgid ""
13954 "returns the number of the signal that caused the child process to "
13955 "terminate.  This macro should be employed only if B<WIFSIGNALED> returned "
13956 "true."
13957 msgstr ""
13958 "子プロセス終了の原因となったシグナルの番号を返す。 このマクロを使用するのは "
13959 "B<WIFSIGNALED> が真を返した場合だけにすべきである。"
13960
13961 #. type: TP
13962 #: build/C/man2/wait.2:214
13963 #, no-wrap
13964 msgid "B<WCOREDUMP(>I<status>B<)>"
13965 msgstr "B<WCOREDUMP(>I<status>B<)>"
13966
13967 #. type: Plain text
13968 #: build/C/man2/wait.2:223
13969 msgid ""
13970 "returns true if the child produced a core dump.  This macro should be "
13971 "employed only if B<WIFSIGNALED> returned true.  This macro is not specified "
13972 "in POSIX.1-2001 and is not available on some UNIX implementations (e.g., "
13973 "AIX, SunOS).  Only use this enclosed in #ifdef WCOREDUMP ... #endif."
13974 msgstr ""
13975 "子プロセスがコアダンプを生成した場合に真を返す。 このマクロを使用するのは "
13976 "B<WIFSIGNALED> が真を返した場合だけにすべきである。 このマクロは "
13977 "POSIX.1-2001 では規定されておらず、 (AIX, SunOS などの) いくつかの UNIX の実"
13978 "装では利用できない。 必ず #ifdef WCOREDUMP ... #endif で括って使用すること。"
13979
13980 #. type: TP
13981 #: build/C/man2/wait.2:223
13982 #, no-wrap
13983 msgid "B<WIFSTOPPED(>I<status>B<)>"
13984 msgstr "B<WIFSTOPPED(>I<status>B<)>"
13985
13986 #. type: Plain text
13987 #: build/C/man2/wait.2:230
13988 msgid ""
13989 "returns true if the child process was stopped by delivery of a signal; this "
13990 "is possible only if the call was done using B<WUNTRACED> or when the child "
13991 "is being traced (see B<ptrace>(2))."
13992 msgstr ""
13993 "子プロセスがシグナルの配送により停止した場合に真を返す。 これが真になるのは、"
13994 "システムコールが B<WUNTRACED> を指定して呼び出された場合か、子プロセスがト"
13995 "レースされている場合 (B<ptrace>(2)  参照) だけである。"
13996
13997 #. type: TP
13998 #: build/C/man2/wait.2:230
13999 #, no-wrap
14000 msgid "B<WSTOPSIG(>I<status>B<)>"
14001 msgstr "B<WSTOPSIG(>I<status>B<)>"
14002
14003 #. type: Plain text
14004 #: build/C/man2/wait.2:236
14005 msgid ""
14006 "returns the number of the signal which caused the child to stop.  This macro "
14007 "should be employed only if B<WIFSTOPPED> returned true."
14008 msgstr ""
14009 "子プロセスを停止させたシグナルの番号を返す。 このマクロを使用するのは "
14010 "B<WIFSTOPPED> が 0 以外を返した場合だけにすべきである。"
14011
14012 #. type: TP
14013 #: build/C/man2/wait.2:236
14014 #, no-wrap
14015 msgid "B<WIFCONTINUED(>I<status>B<)>"
14016 msgstr "B<WIFCONTINUED(>I<status>B<)>"
14017
14018 #. type: Plain text
14019 #: build/C/man2/wait.2:241
14020 msgid ""
14021 "(since Linux 2.6.10)  returns true if the child process was resumed by "
14022 "delivery of B<SIGCONT>."
14023 msgstr ""
14024 "(Linux 2.6.10 以降)  子プロセスが B<SIGCONT> の配送により再開した場合に真を返"
14025 "す。"
14026
14027 #. type: SS
14028 #: build/C/man2/wait.2:241
14029 #, no-wrap
14030 msgid "waitid()"
14031 msgstr "waitid()"
14032
14033 #. type: Plain text
14034 #: build/C/man2/wait.2:246
14035 msgid ""
14036 "The B<waitid>()  system call (available since Linux 2.6.9) provides more "
14037 "precise control over which child state changes to wait for."
14038 msgstr ""
14039 "B<waitid>()  システムコール (Linux 2.6.9 以降で利用可能) を使うと、 子プロセ"
14040 "スのどの状態変化を待つかについてより細かな制御ができる。"
14041
14042 #. type: Plain text
14043 #: build/C/man2/wait.2:252
14044 msgid ""
14045 "The I<idtype> and I<id> arguments select the child(ren) to wait for, as "
14046 "follows:"
14047 msgstr "引き数 I<idtype> と I<id> でどの子プロセスを待つかを選択する:"
14048
14049 #. type: IP
14050 #: build/C/man2/wait.2:252
14051 #, no-wrap
14052 msgid "I<idtype> == B<P_PID>"
14053 msgstr "I<idtype> == B<P_PID>"
14054
14055 #. type: Plain text
14056 #: build/C/man2/wait.2:255
14057 msgid "Wait for the child whose process ID matches I<id>."
14058 msgstr "プロセスID が I<id> と一致する子プロセスを待つ。"
14059
14060 #. type: IP
14061 #: build/C/man2/wait.2:255
14062 #, no-wrap
14063 msgid "I<idtype> == B<P_PGID>"
14064 msgstr "I<idtype> == B<P_PGID>"
14065
14066 #. type: Plain text
14067 #: build/C/man2/wait.2:258
14068 msgid "Wait for any child whose process group ID matches I<id>."
14069 msgstr "プロセスグループID が I<id> と一致する子プロセスを待つ。"
14070
14071 #. type: IP
14072 #: build/C/man2/wait.2:258
14073 #, no-wrap
14074 msgid "I<idtype> == B<P_ALL>"
14075 msgstr "I<idtype> == B<P_ALL>"
14076
14077 #. type: Plain text
14078 #: build/C/man2/wait.2:262
14079 msgid "Wait for any child; I<id> is ignored."
14080 msgstr "子プロセス全部を対象に待つ。 I<id> は無視される。"
14081
14082 #. type: Plain text
14083 #: build/C/man2/wait.2:266
14084 msgid ""
14085 "The child state changes to wait for are specified by ORing one or more of "
14086 "the following flags in I<options>:"
14087 msgstr ""
14088 "子プロセスのどの状態変化を待つかは以下のフラグで指定する (I<options> には 1個"
14089 "以上のフラグの論理和をとって指定する):"
14090
14091 #. type: TP
14092 #: build/C/man2/wait.2:266
14093 #, no-wrap
14094 msgid "B<WEXITED>"
14095 msgstr "B<WEXITED>"
14096
14097 #. type: Plain text
14098 #: build/C/man2/wait.2:269
14099 msgid "Wait for children that have terminated."
14100 msgstr "子プロセスの終了を待つ。"
14101
14102 #. type: TP
14103 #: build/C/man2/wait.2:269
14104 #, no-wrap
14105 msgid "B<WSTOPPED>"
14106 msgstr "B<WSTOPPED>"
14107
14108 #. type: Plain text
14109 #: build/C/man2/wait.2:272
14110 msgid "Wait for children that have been stopped by delivery of a signal."
14111 msgstr "子プロセスがシグナルの配送により停止するのを待つ。"
14112
14113 #. type: TP
14114 #: build/C/man2/wait.2:272
14115 #, no-wrap
14116 msgid "B<WCONTINUED>"
14117 msgstr "B<WCONTINUED>"
14118
14119 #. type: Plain text
14120 #: build/C/man2/wait.2:277
14121 msgid ""
14122 "Wait for (previously stopped) children that have been resumed by delivery of "
14123 "B<SIGCONT>."
14124 msgstr "(停止していた) 子プロセスが B<SIGCONT> が配送されて再開するのを待つ。"
14125
14126 #. type: Plain text
14127 #: build/C/man2/wait.2:280
14128 msgid "The following flags may additionally be ORed in I<options>:"
14129 msgstr "さらに以下のフラグを論理和の形で I<options> に指定できる:"
14130
14131 #. type: Plain text
14132 #: build/C/man2/wait.2:284
14133 msgid "As for B<waitpid>()."
14134 msgstr "B<waitpid>()  と同様。"
14135
14136 #. type: TP
14137 #: build/C/man2/wait.2:284
14138 #, no-wrap
14139 msgid "B<WNOWAIT>"
14140 msgstr "B<WNOWAIT>"
14141
14142 #. type: Plain text
14143 #: build/C/man2/wait.2:288
14144 msgid ""
14145 "Leave the child in a waitable state; a later wait call can be used to again "
14146 "retrieve the child status information."
14147 msgstr ""
14148 "waitable 状態のプロセスをそのままにする。この後で wait コールを 使って、同じ"
14149 "子プロセスの状態情報をもう一度取得することができる。"
14150
14151 #. type: Plain text
14152 #: build/C/man2/wait.2:295
14153 msgid ""
14154 "Upon successful return, B<waitid>()  fills in the following fields of the "
14155 "I<siginfo_t> structure pointed to by I<infop>:"
14156 msgstr ""
14157 "成功した場合には、 B<waitid>()  は I<infop> が指す I<siginfo_t> 構造体の以下"
14158 "のフィールドを設定する:"
14159
14160 #. type: Plain text
14161 #: build/C/man2/wait.2:298
14162 msgid "The process ID of the child."
14163 msgstr "子プロセスのプロセスID。"
14164
14165 #. type: Plain text
14166 #: build/C/man2/wait.2:302
14167 msgid ""
14168 "The real user ID of the child.  (This field is not set on most other "
14169 "implementations.)"
14170 msgstr ""
14171 "子プロセスの実ユーザID (このフィールドは他のほとんどの実装では設定されない)。"
14172
14173 #. type: Plain text
14174 #: build/C/man2/wait.2:306
14175 msgid "Always set to B<SIGCHLD>."
14176 msgstr "常に B<SIGCHLD> が設定される。"
14177
14178 #. type: TP
14179 #: build/C/man2/wait.2:306
14180 #, no-wrap
14181 msgid "I<si_status>"
14182 msgstr "I<si_status>"
14183
14184 #. type: Plain text
14185 #: build/C/man2/wait.2:316
14186 msgid ""
14187 "Either the exit status of the child, as given to B<_exit>(2)  (or "
14188 "B<exit>(3)), or the signal that caused the child to terminate, stop, or "
14189 "continue.  The I<si_code> field can be used to determine how to interpret "
14190 "this field."
14191 msgstr ""
14192 "B<_exit>(2)  (か B<exit>(3))  に指定された子プロセスの終了ステータス、もしく"
14193 "は 子プロセスの終了、停止、再開の原因となったシグナルが設定される。 この"
14194 "フィールドをどう解釈するかは、 I<si_code> フィールドを参照して決めることがで"
14195 "きる。"
14196
14197 #. type: Plain text
14198 #: build/C/man2/wait.2:333
14199 msgid ""
14200 "Set to one of: B<CLD_EXITED> (child called B<_exit>(2)); B<CLD_KILLED> "
14201 "(child killed by signal); B<CLD_DUMPED> (child killed by signal, and dumped "
14202 "core); B<CLD_STOPPED> (child stopped by signal); B<CLD_TRAPPED> (traced "
14203 "child has trapped); or B<CLD_CONTINUED> (child continued by B<SIGCONT>)."
14204 msgstr ""
14205 "以下のいずれかが設定される: B<CLD_EXITED> (子プロセスが B<_exit>(2)  を呼び出"
14206 "した); B<CLD_KILLED> (シグナルにより子プロセスが kill された); B<CLD_DUMPED> "
14207 "(シグナルにより子プロセスが kill され、コア・ダンプが行われた); "
14208 "B<CLD_STOPPED> (シグナルにより子プロセスが停止した); B<CLD_TRAPPED> (トレース"
14209 "されていた子プロセスがトラップを受信した); B<CLD_CONTINUED> (B<SIGCONT> によ"
14210 "り子プロセスが再開された)。"
14211
14212 #.  POSIX.1-2001 leaves this possibility unspecified; most
14213 #.  implementations (including Linux) zero out the structure
14214 #.  in this case, but at least one implementation (AIX 5.1)
14215 #.  does not -- MTK Nov 04
14216 #. type: Plain text
14217 #: build/C/man2/wait.2:355
14218 msgid ""
14219 "If B<WNOHANG> was specified in I<options> and there were no children in a "
14220 "waitable state, then B<waitid>()  returns 0 immediately and the state of the "
14221 "I<siginfo_t> structure pointed to by I<infop> is unspecified.  To "
14222 "distinguish this case from that where a child was in a waitable state, zero "
14223 "out the I<si_pid> field before the call and check for a nonzero value in "
14224 "this field after the call returns."
14225 msgstr ""
14226 "B<WNOHANG> が I<options> に指定されていて、 waitable 状態の子プロセスがなかっ"
14227 "た場合には、 B<waitid>()  はすぐに 0 を返す。このとき、 I<infop> が指す "
14228 "I<siginfo_t> 構造体の内容は不定である。 この場合を waitable 状態の子プロセス"
14229 "があった場合と区別するには、 B<waitid>()  を呼び出す前に I<si_pid> を 0 にし"
14230 "ておき、コールが復帰した後でこのフィールドが 0 以外の値かどうか をチェックす"
14231 "ればよい。"
14232
14233 #. type: Plain text
14234 #: build/C/man2/wait.2:359
14235 msgid ""
14236 "B<wait>(): on success, returns the process ID of the terminated child; on "
14237 "error, -1 is returned."
14238 msgstr ""
14239 "B<wait>(): 成功すると、終了した子プロセスのプロセスID を返す。 エラーの場合 "
14240 "-1 を返す。"
14241
14242 #. type: Plain text
14243 #: build/C/man2/wait.2:368
14244 msgid ""
14245 "B<waitpid>(): on success, returns the process ID of the child whose state "
14246 "has changed; if B<WNOHANG> was specified and one or more child(ren) "
14247 "specified by I<pid> exist, but have not yet changed state, then 0 is "
14248 "returned.  On error, -1 is returned."
14249 msgstr ""
14250 "B<waitpid>(): 成功すると、状態が変化した子プロセスのプロセスID を返す。 "
14251 "B<WNOHANG> が指定されていて、 I<pid> で指示された子プロセスが一つ以上存在する"
14252 "が、どの子プロセスでも 状態変化が起こっていなかった場合は、 0 を返す。 エラー"
14253 "の場合 -1 を返す。"
14254
14255 #.  FIXME As reported by Vegard Nossum, if infop is NULL, then waitid()
14256 #.  returns the PID of the child.  Either this is a bug, or it is intended
14257 #.  behavior that needs to be documented.  See my Jan 2009 LKML mail
14258 #.  "waitid() return value strangeness when infop is NULL".
14259 #. type: Plain text
14260 #: build/C/man2/wait.2:381
14261 msgid ""
14262 "B<waitid>(): returns 0 on success or if B<WNOHANG> was specified and no "
14263 "child(ren) specified by I<id> has yet changed state; on error, -1 is "
14264 "returned."
14265 msgstr ""
14266 "B<waitid>(): 成功すると 0 を返す。 B<WNOHANG> が指定されていて、 I<pid> で指"
14267 "示された子プロセスで状態変化が起こっていなかった場合にも 0 を返す。"
14268
14269 #. type: Plain text
14270 #: build/C/man2/wait.2:385
14271 msgid ""
14272 "Each of these calls sets I<errno> to an appropriate value in the case of an "
14273 "error."
14274 msgstr ""
14275 "エラーの場合 -1 を返す。 エラーの場合、これらのシステムコールはいずれも "
14276 "I<errno> に適切な値を設定する。"
14277
14278 #. type: TP
14279 #: build/C/man2/wait.2:386 build/C/man2/wait.2:391
14280 #, no-wrap
14281 msgid "B<ECHILD>"
14282 msgstr "B<ECHILD>"
14283
14284 #. type: Plain text
14285 #: build/C/man2/wait.2:391
14286 msgid ""
14287 "(for B<wait>())  The calling process does not have any unwaited-for children."
14288 msgstr ""
14289 "(B<wait>()  の場合)  呼び出し元プロセスには、wait を行っていない子プロセスは"
14290 "ない。"
14291
14292 #. type: Plain text
14293 #: build/C/man2/wait.2:411
14294 msgid ""
14295 "(for B<waitpid>()  or B<waitid>())  The process specified by I<pid> "
14296 "(B<waitpid>())  or I<idtype> and I<id> (B<waitid>())  does not exist or is "
14297 "not a child of the calling process.  (This can happen for one's own child if "
14298 "the action for B<SIGCHLD> is set to B<SIG_IGN>.  See also the I<Linux Notes> "
14299 "section about threads.)"
14300 msgstr ""
14301 "(B<waitpid>()  か B<waitid>()  の場合)  I<pid> (B<waitpid>())  か I<idtype> "
14302 "と I<id> (B<waitid>())  で指定したプロセスが存在しないか、呼び出し元プロセス"
14303 "の子プロセスでない (B<SIGCHLD> の動作に B<SIG_IGN> を設定した場合には、自分自"
14304 "身の子プロセスでも起こりうる。 スレッドに関しては「Linux での注意」の節も参照"
14305 "すること)。"
14306
14307 #. type: Plain text
14308 #: build/C/man2/wait.2:418
14309 msgid ""
14310 "B<WNOHANG> was not set and an unblocked signal or a B<SIGCHLD> was caught; "
14311 "see B<signal>(7)."
14312 msgstr ""
14313 "B<WNOHANG> が設定されておらず、禁止 (block) されていないシグナルや "
14314 "B<SIGCHLD> を受信した。 B<signal>(7)  参照。"
14315
14316 #. type: Plain text
14317 #: build/C/man2/wait.2:423
14318 msgid "The I<options> argument was invalid."
14319 msgstr "I<options> 引き数が不正である。"
14320
14321 #. type: Plain text
14322 #: build/C/man2/wait.2:438
14323 msgid ""
14324 "A child that terminates, but has not been waited for becomes a \"zombie\".  "
14325 "The kernel maintains a minimal set of information about the zombie process "
14326 "(PID, termination status, resource usage information)  in order to allow the "
14327 "parent to later perform a wait to obtain information about the child.  As "
14328 "long as a zombie is not removed from the system via a wait, it will consume "
14329 "a slot in the kernel process table, and if this table fills, it will not be "
14330 "possible to create further processes.  If a parent process terminates, then "
14331 "its \"zombie\" children (if any)  are adopted by B<init>(1), which "
14332 "automatically performs a wait to remove the zombies."
14333 msgstr ""
14334 "終了したが、wait されていない子プロセスは「ゾンビ」になる。 後で親プロセスが "
14335 "wait を実行して子プロセスについての情報を取得できるように、 カーネルはゾンビ"
14336 "プロセスについて最小限の情報 (PID、終了ステータス、 リソース使用状況) を保持"
14337 "する。 ゾンビプロセスは、 wait によってシステムから削除されない限り、 カーネ"
14338 "ルのプロセステーブルの 1 エントリを消費する。このプロセステーブルが 一杯にな"
14339 "ると、新たにプロセスを作ることができなくなる。 親プロセスが終了すると、その親"
14340 "プロセスの「ゾンビ」の 子プロセスは (もしあれば)  B<init>(1)  の養子となる。 "
14341 "B<init>(1)  は wait を自動的に実行し、ゾンビを削除する。"
14342
14343 #. type: Plain text
14344 #: build/C/man2/wait.2:467
14345 msgid ""
14346 "POSIX.1-2001 specifies that if the disposition of B<SIGCHLD> is set to "
14347 "B<SIG_IGN> or the B<SA_NOCLDWAIT> flag is set for B<SIGCHLD> (see "
14348 "B<sigaction>(2)), then children that terminate do not become zombies and a "
14349 "call to B<wait>()  or B<waitpid>()  will block until all children have "
14350 "terminated, and then fail with I<errno> set to B<ECHILD>.  (The original "
14351 "POSIX standard left the behavior of setting B<SIGCHLD> to B<SIG_IGN> "
14352 "unspecified.  Note that even though the default disposition of B<SIGCHLD> is "
14353 "\"ignore\", explicitly setting the disposition to B<SIG_IGN> results in "
14354 "different treatment of zombie process children.)"
14355 msgstr ""
14356 "POSIX.1-2001 では以下のように規定されている。 B<SIGCHLD> の動作が B<SIG_IGN> "
14357 "に設定されたか、 B<SIGCHLD> に対して B<SA_NOCLDWAIT> フラグが設定された場合 "
14358 "(B<sigaction>(2)  参照)、終了した子プロセスはゾンビにはならず、 B<wait>()  "
14359 "や B<waitpid>()  の呼び出しは全ての子プロセスが終了するまで停止し、 子プロセ"
14360 "スが全部終了した後 I<errno> に B<ECHILD> を設定して失敗する。 (もともとの "
14361 "POSIX 標準は B<SIGCHLD> に B<SIG_IGN> を設定した場合の振る舞いを未規定のまま"
14362 "にしている。 B<SIGCHLD> のデフォルトの動作が「無視」であるにもかかわらず、 "
14363 "B<SIGCHLD> の動作として B<SIG_IGN> を明示的に設定した場合にはゾンビプロセスの"
14364 "子プロセスの扱いが 異なる点に注意すること。)"
14365
14366 #. type: Plain text
14367 #: build/C/man2/wait.2:480
14368 msgid ""
14369 "Linux 2.6 conforms to the POSIX requirements.  However, Linux 2.4 (and "
14370 "earlier) does not: if a B<wait>()  or B<waitpid>()  call is made while "
14371 "B<SIGCHLD> is being ignored, the call behaves just as though B<SIGCHLD> were "
14372 "not being ignored, that is, the call blocks until the next child terminates "
14373 "and then returns the process ID and status of that child."
14374 msgstr ""
14375 "Linux 2.6 はこの仕様に準拠している。 しかし、Linux 2.4 (とそれ以前のバージョ"
14376 "ン) はそうではない: B<SIGCHLD> が無視される状態で B<wait>()  または "
14377 "B<waitpid>()  が呼び出された場合、 B<SIGCHLD> が無視されていないかのように振"
14378 "る舞う。 つまり、呼び出しによって次の子プロセスの終了までブロックされ、 終了"
14379 "した子プロセスの PID と状態が返される。"
14380
14381 #. type: Plain text
14382 #: build/C/man2/wait.2:496
14383 msgid ""
14384 "In the Linux kernel, a kernel-scheduled thread is not a distinct construct "
14385 "from a process.  Instead, a thread is simply a process that is created using "
14386 "the Linux-unique B<clone>(2)  system call; other routines such as the "
14387 "portable B<pthread_create>(3)  call are implemented using B<clone>(2).  "
14388 "Before Linux 2.4, a thread was just a special case of a process, and as a "
14389 "consequence one thread could not wait on the children of another thread, "
14390 "even when the latter belongs to the same thread group.  However, POSIX "
14391 "prescribes such functionality, and since Linux 2.4 a thread can, and by "
14392 "default will, wait on children of other threads in the same thread group."
14393 msgstr ""
14394 "Linux カーネルでは、カーネルによってスケジュールされるスレッドは プロセスと明"
14395 "確に区別できる構成要素ではない。スレッドは Linux 固有の B<clone>(2)  システム"
14396 "コールを使用して生成されるプロセスに過ぎない。 移植性のある "
14397 "B<pthread_create>(3)  コールのような他のルーチンは B<clone>(2)  を使用して実"
14398 "装されている; これらでは B<waitid>()  を使うことはできない。 Linux 2.4 より前"
14399 "では、スレッドは単に特殊なプロセスであったので、 例え同じスレッドグループで"
14400 "あっても、 あるスレッドが別のスレッドの子プロセスが終了するのを待つことは出来"
14401 "なかった。 しかし、POSIX ではこのような機能を規定しており、 Linux 2.4 以降で"
14402 "は、あるスレッドが同じスレッドグループの他のスレッドの 子プロセスが終了するの"
14403 "を待つことができるようになった。 そして将来はこれがデフォルトの動作になるであ"
14404 "ろう。"
14405
14406 #. type: Plain text
14407 #: build/C/man2/wait.2:503
14408 msgid ""
14409 "The following Linux-specific I<options> are for use with children created "
14410 "using B<clone>(2); they cannot be used with B<waitid>():"
14411 msgstr ""
14412 "B<clone>(2)  を用いて作られた子プロセスには、以下の Linux 固有の I<options> "
14413 "が使用できる。"
14414
14415 #. type: TP
14416 #: build/C/man2/wait.2:503
14417 #, no-wrap
14418 msgid "B<__WCLONE>"
14419 msgstr "B<__WCLONE>"
14420
14421 #.  since 0.99pl10
14422 #. type: Plain text
14423 #: build/C/man2/wait.2:514
14424 msgid ""
14425 "Wait for \"clone\" children only.  If omitted, then wait for \"non-clone\" "
14426 "children only.  (A \"clone\" child is one which delivers no signal, or a "
14427 "signal other than B<SIGCHLD> to its parent upon termination.)  This option "
14428 "is ignored if B<__WALL> is also specified."
14429 msgstr ""
14430 "\"clone\" な子プロセスだけを待つ。 指定されなかった場合は非 \"clone\" な子プ"
14431 "ロセスだけを待つ (\"clone\" な子プロセスは、終了時に親プロセスへ全くシグナル"
14432 "を送らないか、 B<SIGCHLD> 以外のシグナルを送る)。 このオプションは B<__WALL> "
14433 "も指定された場合は無視される。"
14434
14435 #. type: TP
14436 #: build/C/man2/wait.2:514
14437 #, no-wrap
14438 msgid "B<__WALL> (since Linux 2.4)"
14439 msgstr "B<__WALL> (Linux 2.4 以降)"
14440
14441 #.  since patch-2.3.48
14442 #. type: Plain text
14443 #: build/C/man2/wait.2:519
14444 msgid "Wait for all children, regardless of type (\"clone\" or \"non-clone\")."
14445 msgstr "\"clone\" であるかないかに関わらず、 全ての子プロセスを待つ。"
14446
14447 #. type: TP
14448 #: build/C/man2/wait.2:519
14449 #, no-wrap
14450 msgid "B<__WNOTHREAD> (since Linux 2.4)"
14451 msgstr "B<__WNOTHREAD> (Linux 2.4 以降)"
14452
14453 #.  since patch-2.4.0-test8
14454 #. type: Plain text
14455 #: build/C/man2/wait.2:525
14456 msgid ""
14457 "Do not wait for children of other threads in the same thread group.  This "
14458 "was the default before Linux 2.4."
14459 msgstr ""
14460 "同じスレッドグループの他のスレッドの子プロセスは待たない。 Linux 2.4 より前で"
14461 "はデフォルトであった。"
14462
14463 #. type: Plain text
14464 #: build/C/man2/wait.2:537
14465 msgid ""
14466 "The raw B<waitid>()  system call takes a fifth argument, of type I<struct "
14467 "rusage\\ *>.  If this argument is non-NULL, then it is used to return "
14468 "resource usage information about the child, in the same manner as "
14469 "B<wait4>(2).  See B<getrusage>(2)  for details."
14470 msgstr ""
14471 "生の B<waitid>() システムコールは I<struct rusage\\ *> 型の第 5 引数を取る。 "
14472 "この引数が NULL 以外の場合、 この引数が子プロセスのリソース使用状況を返すのに"
14473 "使用される。 これは B<wait4>(2) と同じ方法である。 詳細は B<getrusage>(2) を"
14474 "参照。"
14475
14476 #. type: Plain text
14477 #: build/C/man2/wait.2:552
14478 msgid ""
14479 "According to POSIX.1-2008, an application calling B<waitid>()  must ensure "
14480 "that I<infop> points to a I<siginfo_t> structure (i.e., that it is a non-"
14481 "null pointer).  On Linux, if I<infop> is NULL, B<waitid>()  succeeds, and "
14482 "returns the process ID of the waited-for child.  Applications should avoid "
14483 "relying on this inconsistent, nonstandard, and unnecessary feature."
14484 msgstr ""
14485 "POSIX.1-2008 によると、 B<waitid>() を呼び出すアプリケーションは、 I<infop> "
14486 "が I<siginfo_t> 構造体を指していること (つまり I<infop> が NULL でないポイン"
14487 "タであること) を保証しなければならない。 Linux では、 I<infop> が NULL の場"
14488 "合、 B<waitid>() は成功し、wait している子プロセスのプロセス ID を返す。 アプ"
14489 "リケーションは、この食い違った、非標準で、不必要な機能に依存しないようにすべ"
14490 "きである。"
14491
14492 #.  fork.2 refers to this example program.
14493 #. type: Plain text
14494 #: build/C/man2/wait.2:569
14495 msgid ""
14496 "The following program demonstrates the use of B<fork>(2)  and B<waitpid>().  "
14497 "The program creates a child process.  If no command-line argument is "
14498 "supplied to the program, then the child suspends its execution using "
14499 "B<pause>(2), to allow the user to send signals to the child.  Otherwise, if "
14500 "a command-line argument is supplied, then the child exits immediately, using "
14501 "the integer supplied on the command line as the exit status.  The parent "
14502 "process executes a loop that monitors the child using B<waitpid>(), and uses "
14503 "the W*() macros described above to analyze the wait status value."
14504 msgstr ""
14505 "以下のプログラムは、 B<fork>(2)  と B<waitpid>()  の使用方法の例を示してい"
14506 "る。 このプログラムでは子プロセスを生成する。 コマンドライン引き数が指定され"
14507 "なかったときは、 子プロセスは B<pause>(2)  を使ってその実行を一時停止し、ユー"
14508 "ザがその子プロセスに シグナルを送信できるようにする。 コマンドライン引き数が"
14509 "指定された場合は、 子プロセスは直ちに終了し、 コマンドラインで指定された整数"
14510 "を終了ステータスとして使用する。 親プロセスは、 B<waitpid>()  を使って子プロ"
14511 "セスを監視し、 wait のステータス値を上記の W*() マクロを使って解析するという "
14512 "ループを実行する。"
14513
14514 #. type: Plain text
14515 #: build/C/man2/wait.2:585
14516 #, no-wrap
14517 msgid ""
14518 "$B< ./a.out &>\n"
14519 "Child PID is 32360\n"
14520 "[1] 32359\n"
14521 "$B< kill -STOP 32360>\n"
14522 "stopped by signal 19\n"
14523 "$B< kill -CONT 32360>\n"
14524 "continued\n"
14525 "$B< kill -TERM 32360>\n"
14526 "killed by signal 15\n"
14527 "[1]+  Done                    ./a.out\n"
14528 "$\n"
14529 msgstr ""
14530 "$B< ./a.out &>\n"
14531 "Child PID is 32360\n"
14532 "[1] 32359\n"
14533 "$B< kill -STOP 32360>\n"
14534 "stopped by signal 19\n"
14535 "$B< kill -CONT 32360>\n"
14536 "continued\n"
14537 "$B< kill -TERM 32360>\n"
14538 "killed by signal 15\n"
14539 "[1]+  Done                    ./a.out\n"
14540 "$\n"
14541
14542 #. type: Plain text
14543 #: build/C/man2/wait.2:594
14544 #, no-wrap
14545 msgid ""
14546 "#include E<lt>sys/wait.hE<gt>\n"
14547 "#include E<lt>stdlib.hE<gt>\n"
14548 "#include E<lt>unistd.hE<gt>\n"
14549 "#include E<lt>stdio.hE<gt>\n"
14550 msgstr ""
14551 "#include E<lt>sys/wait.hE<gt>\n"
14552 "#include E<lt>stdlib.hE<gt>\n"
14553 "#include E<lt>unistd.hE<gt>\n"
14554 "#include E<lt>stdio.hE<gt>\n"
14555
14556 #. type: Plain text
14557 #: build/C/man2/wait.2:600
14558 #, no-wrap
14559 msgid ""
14560 "int\n"
14561 "main(int argc, char *argv[])\n"
14562 "{\n"
14563 "    pid_t cpid, w;\n"
14564 "    int status;\n"
14565 msgstr ""
14566 "int\n"
14567 "main(int argc, char *argv[])\n"
14568 "{\n"
14569 "    pid_t cpid, w;\n"
14570 "    int status;\n"
14571
14572 #. type: Plain text
14573 #: build/C/man2/wait.2:606
14574 #, no-wrap
14575 msgid ""
14576 "    cpid = fork();\n"
14577 "    if (cpid == -1) {\n"
14578 "        perror(\"fork\");\n"
14579 "        exit(EXIT_FAILURE);\n"
14580 "    }\n"
14581 msgstr ""
14582 "    cpid = fork();\n"
14583 "    if (cpid == -1) {\n"
14584 "        perror(\"fork\");\n"
14585 "        exit(EXIT_FAILURE);\n"
14586 "    }\n"
14587
14588 #. type: Plain text
14589 #: build/C/man2/wait.2:612
14590 #, no-wrap
14591 msgid ""
14592 "    if (cpid == 0) {            /* Code executed by child */\n"
14593 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
14594 "        if (argc == 1)\n"
14595 "            pause();                    /* Wait for signals */\n"
14596 "        _exit(atoi(argv[1]));\n"
14597 msgstr ""
14598 "    if (cpid == 0) {            /* Code executed by child */\n"
14599 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
14600 "        if (argc == 1)\n"
14601 "            pause();                    /* Wait for signals */\n"
14602 "        _exit(atoi(argv[1]));\n"
14603
14604 #. type: Plain text
14605 #: build/C/man2/wait.2:620
14606 #, no-wrap
14607 msgid ""
14608 "    } else {                    /* Code executed by parent */\n"
14609 "        do {\n"
14610 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
14611 "            if (w == -1) {\n"
14612 "                perror(\"waitpid\");\n"
14613 "                exit(EXIT_FAILURE);\n"
14614 "            }\n"
14615 msgstr ""
14616 "    } else {                    /* Code executed by parent */\n"
14617 "        do {\n"
14618 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
14619 "            if (w == -1) {\n"
14620 "                perror(\"waitpid\");\n"
14621 "                exit(EXIT_FAILURE);\n"
14622 "            }\n"
14623
14624 #. type: Plain text
14625 #: build/C/man2/wait.2:634
14626 #, no-wrap
14627 msgid ""
14628 "            if (WIFEXITED(status)) {\n"
14629 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
14630 "            } else if (WIFSIGNALED(status)) {\n"
14631 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
14632 "            } else if (WIFSTOPPED(status)) {\n"
14633 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
14634 "            } else if (WIFCONTINUED(status)) {\n"
14635 "                printf(\"continued\\en\");\n"
14636 "            }\n"
14637 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
14638 "        exit(EXIT_SUCCESS);\n"
14639 "    }\n"
14640 "}\n"
14641 msgstr ""
14642 "            if (WIFEXITED(status)) {\n"
14643 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
14644 "            } else if (WIFSIGNALED(status)) {\n"
14645 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
14646 "            } else if (WIFSTOPPED(status)) {\n"
14647 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
14648 "            } else if (WIFCONTINUED(status)) {\n"
14649 "                printf(\"continued\\en\");\n"
14650 "            }\n"
14651 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
14652 "        exit(EXIT_SUCCESS);\n"
14653 "    }\n"
14654 "}\n"
14655
14656 #. type: Plain text
14657 #: build/C/man2/wait.2:647
14658 msgid ""
14659 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), "
14660 "B<sigaction>(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), "
14661 "B<credentials>(7), B<signal>(7)"
14662 msgstr ""
14663 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), "
14664 "B<sigaction>(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), "
14665 "B<credentials>(7), B<signal>(7)"
14666
14667 #. type: TH
14668 #: build/C/man2/wait4.2:33
14669 #, no-wrap
14670 msgid "WAIT4"
14671 msgstr "WAIT4"
14672
14673 #. type: TH
14674 #: build/C/man2/wait4.2:33
14675 #, no-wrap
14676 msgid "2012-09-23"
14677 msgstr "2012-09-23"
14678
14679 #. type: Plain text
14680 #: build/C/man2/wait4.2:36
14681 msgid "wait3, wait4 - wait for process to change state, BSD style"
14682 msgstr "wait3, wait4 - BSD スタイルでプロセスの状態変化を待つ"
14683
14684 #. type: Plain text
14685 #: build/C/man2/wait4.2:42
14686 #, no-wrap
14687 msgid ""
14688 "B<#include E<lt>sys/types.hE<gt>>\n"
14689 "B<#include E<lt>sys/time.hE<gt>>\n"
14690 "B<#include E<lt>sys/resource.hE<gt>>\n"
14691 "B<#include E<lt>sys/wait.hE<gt>>\n"
14692 msgstr ""
14693 "B<#include E<lt>sys/types.hE<gt>>\n"
14694 "B<#include E<lt>sys/time.hE<gt>>\n"
14695 "B<#include E<lt>sys/resource.hE<gt>>\n"
14696 "B<#include E<lt>sys/wait.hE<gt>>\n"
14697
14698 #. type: Plain text
14699 #: build/C/man2/wait4.2:45
14700 #, no-wrap
14701 msgid ""
14702 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14703 "B<            struct rusage *>I<rusage>B<);>\n"
14704 msgstr ""
14705 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14706 "B<            struct rusage *>I<rusage>B<);>\n"
14707
14708 #. type: Plain text
14709 #: build/C/man2/wait4.2:48
14710 #, no-wrap
14711 msgid ""
14712 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14713 "B<            struct rusage *>I<rusage>B<);>\n"
14714 msgstr ""
14715 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14716 "B<            struct rusage *>I<rusage>B<);>\n"
14717
14718 #. type: Plain text
14719 #: build/C/man2/wait4.2:57
14720 msgid "B<wait3>():"
14721 msgstr "B<wait3>():"
14722
14723 #. type: Plain text
14724 #: build/C/man2/wait4.2:63
14725 msgid "B<wait4>():"
14726 msgstr "B<wait4>():"
14727
14728 #. type: Plain text
14729 #: build/C/man2/wait4.2:65
14730 msgid "_BSD_SOURCE"
14731 msgstr "_BSD_SOURCE"
14732
14733 #. type: Plain text
14734 #: build/C/man2/wait4.2:73
14735 msgid ""
14736 "These functions are obsolete; use B<waitpid>(2)  or B<waitid>(2)  in new "
14737 "programs."
14738 msgstr ""
14739 "これらの関数は廃止予定である。 新しいプログラムでは B<waitpid>(2) や "
14740 "B<waitid>(2) を使用すること。"
14741
14742 #. type: Plain text
14743 #: build/C/man2/wait4.2:83
14744 msgid ""
14745 "The B<wait3>()  and B<wait4>()  system calls are similar to B<waitpid>(2), "
14746 "but additionally return resource usage information about the child in the "
14747 "structure pointed to by I<rusage>."
14748 msgstr ""
14749 "システムコール B<wait3>()  と B<wait4>()  は B<waitpid>(2)  と同様の動作をす"
14750 "る。それに加え、子プロセスのリソース使用状況の情報を I<rusage> が指す構造体に"
14751 "入れて返す。"
14752
14753 #. type: Plain text
14754 #: build/C/man2/wait4.2:89
14755 msgid ""
14756 "Other than the use of the I<rusage> argument, the following B<wait3>()  call:"
14757 msgstr "I<rusage> を使用する点を除けば、次の B<wait3>()  の呼び出し"
14758
14759 #. type: Plain text
14760 #: build/C/man2/wait4.2:92
14761 #, no-wrap
14762 msgid "    wait3(status, options, rusage);\n"
14763 msgstr "    wait3(status, options, rusage);\n"
14764
14765 #. type: Plain text
14766 #: build/C/man2/wait4.2:95 build/C/man2/wait4.2:109
14767 msgid "is equivalent to:"
14768 msgstr "は以下と等価である。"
14769
14770 #. type: Plain text
14771 #: build/C/man2/wait4.2:98
14772 #, no-wrap
14773 msgid "    waitpid(-1, status, options);\n"
14774 msgstr "    waitpid(-1, status, options);\n"
14775
14776 #. type: Plain text
14777 #: build/C/man2/wait4.2:103
14778 msgid "Similarly, the following B<wait4>()  call:"
14779 msgstr "同様に、次の B<wait4>()  の呼び出し"
14780
14781 #. type: Plain text
14782 #: build/C/man2/wait4.2:106
14783 #, no-wrap
14784 msgid "    wait4(pid, status, options, rusage);\n"
14785 msgstr "    wait4(pid, status, options, rusage);\n"
14786
14787 #. type: Plain text
14788 #: build/C/man2/wait4.2:112
14789 #, no-wrap
14790 msgid "    waitpid(pid, status, options);\n"
14791 msgstr "    waitpid(pid, status, options);\n"
14792
14793 #. type: Plain text
14794 #: build/C/man2/wait4.2:122
14795 msgid ""
14796 "In other words, B<wait3>()  waits of any child, while B<wait4>()  can be "
14797 "used to select a specific child, or children, on which to wait.  See "
14798 "B<wait>(2)  for further details."
14799 msgstr ""
14800 "言い換えると、 B<wait3>()  は全ての子プロセスを対象に待つが、 B<wait4>()  で"
14801 "は特定の子プロセス (複数可) を選んで待つことができる。"
14802
14803 #. type: Plain text
14804 #: build/C/man2/wait4.2:132
14805 msgid ""
14806 "If I<rusage> is not NULL, the I<struct rusage> to which it points will be "
14807 "filled with accounting information about the child.  See B<getrusage>(2)  "
14808 "for details."
14809 msgstr ""
14810 "I<rusage> が NULL でない場合、 I<rusage> が指す I<rusage 構造体> には子プロセ"
14811 "スのアカウント情報が格納される。 詳しくは B<getrusage>(2)  を参照のこと。"
14812
14813 #. type: Plain text
14814 #: build/C/man2/wait4.2:135 build/C/man2/wait4.2:138
14815 msgid "As for B<waitpid>(2)."
14816 msgstr "B<waitpid>(2)  と同様。"
14817
14818 #. type: Plain text
14819 #: build/C/man2/wait4.2:140
14820 msgid "4.3BSD."
14821 msgstr "4.3BSD."
14822
14823 #. type: Plain text
14824 #: build/C/man2/wait4.2:147
14825 msgid ""
14826 "SUSv1 included a specification of B<wait3>(); SUSv2 included B<wait3>(), but "
14827 "marked it LEGACY; SUSv3 removed it."
14828 msgstr ""
14829 "SUSv1 には B<wait3>() の規定があった。 SUSv2 には B<wait3>() が含まれていた"
14830 "が、「過去の名残 (LEGACY)」となっていた。 SUSv3 では B<wait3>() は削除され"
14831 "た。"
14832
14833 #. type: Plain text
14834 #: build/C/man2/wait4.2:159
14835 msgid ""
14836 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
14837 "portability.  (Indeed, I<E<lt>sys/resource.hE<gt>> defines the I<rusage> "
14838 "structure with fields of type I<struct timeval> defined in I<E<lt>sys/time."
14839 "hE<gt>>.)"
14840 msgstr ""
14841 "現在では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、インクルード"
14842 "しておくと 移植性を高めることができる (実際には I<E<lt>sys/resource.hE<gt>> "
14843 "で I<rusage> 構造体が定義されているが、そのフィールドで使用されている "
14844 "I<struct timeval> 型は I<E<lt>sys/time.hE<gt>> で定義されている)。"
14845
14846 #. type: Plain text
14847 #: build/C/man2/wait4.2:165
14848 msgid ""
14849 "On Linux, B<wait3>()  is a library function implemented on top of the "
14850 "B<wait4>()  system call."
14851 msgstr ""
14852 "Linux では、 B<wait3>()  はライブラリ関数であり、 B<wait4>()  システムコール"
14853 "を使って実装されている。"
14854
14855 #. type: Plain text
14856 #: build/C/man2/wait4.2:172
14857 msgid ""
14858 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14859 "B<signal>(7)"
14860 msgstr ""
14861 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14862 "B<signal>(7)"
14863
14864 #~ msgid "B<SI_MESGQ>"
14865 #~ msgstr "B<SI_MESGQ>"
14866
14867 #~ msgid "B<SI_TKILL>"
14868 #~ msgstr "B<SI_TKILL>"
14869
14870 #~ msgid "B<CLD_CONTINUED>"
14871 #~ msgstr "B<CLD_CONTINUED>"
14872
14873 #~ msgid ""
14874 #~ "The I<sa_restorer> element is obsolete and should not be used.  POSIX "
14875 #~ "does not specify a I<sa_restorer> element."
14876 #~ msgstr ""
14877 #~ "I<sa_restorer> 要素は廃止予定であり使用すべきではない。 POSIX には "
14878 #~ "I<sa_restorer> 要素に関する規定はない。"
14879
14880 #~ msgid ""
14881 #~ "When the Linux kernel creates the stack frame for a signal handler, a "
14882 #~ "call to B<sigreturn>()  is inserted into the stack frame so that upon "
14883 #~ "return from the signal handler, B<sigreturn>()  will be called."
14884 #~ msgstr ""
14885 #~ "Linux カーネルは、 シグナル・ハンドラ用にスタック・フレームを作成する際、 "
14886 #~ "B<sigreturn>()  をスタック・フレームに挿入し、シグナル・ハンドラが返るとき"
14887 #~ "に B<sigreturn>()  が呼ばれるようにする。"
14888
14889 #~ msgid ""
14890 #~ "B<sigreturn>()  is specific to Linux and should not be used in programs "
14891 #~ "intended to be portable."
14892 #~ msgstr ""
14893 #~ "B<sigreturn>()  は Linux 特有であり、移植を意図したプログラムでは使用して"
14894 #~ "はいけない。"
14895
14896 #~ msgid ""
14897 #~ "If I<tgid> is specified as -1, B<tgkill>()  is equivalent to B<tkill>()."
14898 #~ msgstr ""
14899 #~ "I<tgid> に -1 が指定された場合、 B<tgkill>()  は B<tkill>()  と等価であ"
14900 #~ "る。"
14901
14902 #~ msgid "Underlying Linux system calls"
14903 #~ msgstr "下層にある Linux のシステムコール"
14904
14905 #~ msgid ""
14906 #~ "The B<signal>()  function in Linux libc4 and libc5 provide System\\ V "
14907 #~ "semantics.  If one on a libc5 system includes I<E<lt>bsd/signal.hE<gt>> "
14908 #~ "instead of I<E<lt>signal.hE<gt>>, then B<signal>()  provides BSD "
14909 #~ "semantics."
14910 #~ msgstr ""
14911 #~ "Linux の libc4 と libc5 の B<signal>()  関数は System\\ V 方式である。 "
14912 #~ "libc5 システムにおいて I<E<lt>signal.hE<gt>> のかわりに I<E<lt>bsd/signal."
14913 #~ "hE<gt>> をインクルードすると、 B<signal>()  は B<__bsd_signal>()  に再定義"
14914 #~ "され、 B<signal>()  は BSD 方式となる。"
14915
14916 #~ msgid "Libc4 and libc5 know only about the BSD version."
14917 #~ msgstr "libc4 と libc5 には BSD 版しかない。"