OSDN Git Service

Update version in ja.po
[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-02-04 23:31+0900\n"
10 "PO-Revision-Date: 2015-02-04 23:50+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:892
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:912
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:1190 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:878
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:1204 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:890
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:1207 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:925
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:1215 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:933
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.79 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.79 の一部である。 プロジェクトの説明とバグ報告に関する情報は \\%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 バイトの整数を返す。 渡されたバッファーの大きさが "
600 "8 バイト未満の場合、 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:978 build/C/man2/prctl.2:983 build/C/man2/prctl.2:988
627 #: build/C/man2/prctl.2:998 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:711 build/C/man7/signal.7:718
640 #: build/C/man7/signal.7:723 build/C/man7/signal.7:725
641 #: build/C/man7/signal.7:729 build/C/man7/signal.7:748
642 #: build/C/man7/signal.7:762 build/C/man7/signal.7:773
643 #: build/C/man7/signal.7:780 build/C/man7/signal.7:789
644 #: build/C/man7/signal.7:797 build/C/man7/signal.7:803
645 #: build/C/man7/signal.7:823 build/C/man7/signal.7:837
646 #: build/C/man7/signal.7:848 build/C/man7/signal.7:851
647 #: build/C/man7/signal.7:854 build/C/man7/signal.7:857
648 #: build/C/man7/signal.7:864 build/C/man7/signal.7:870
649 #: build/C/man7/signal.7:874 build/C/man3/sigwait.3:62
650 #: build/C/man3/sigwait.3:67 build/C/man2/timer_create.2:218
651 #: build/C/man2/timer_create.2:221 build/C/man2/timer_create.2:224
652 #: build/C/man2/timer_create.2:228 build/C/man2/timer_create.2:231
653 #: build/C/man2/timer_create.2:246 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 以外になった時点で "
689 "B<read>(2) は上記で述べた通り実行を再開する)、 もしくはファイルディスクリプ"
690 "ターが非停止 (nonblocking) に設定されている場合はエラー B<EAGAIN> で失敗す"
691 "る。"
692
693 #. type: TP
694 #: build/C/man2/eventfd.2:124
695 #, no-wrap
696 msgid "B<write>(2)"
697 msgstr "B<write>(2)"
698
699 #. type: Plain text
700 #: build/C/man2/eventfd.2:141
701 msgid ""
702 "A B<write>(2)  call adds the 8-byte integer value supplied in its buffer to "
703 "the counter.  The maximum value that may be stored in the counter is the "
704 "largest unsigned 64-bit value minus 1 (i.e., 0xfffffffffffffffe).  If the "
705 "addition would cause the counter's value to exceed the maximum, then the "
706 "B<write>(2)  either blocks until a B<read>(2)  is performed on the file "
707 "descriptor, or fails with the error B<EAGAIN> if the file descriptor has "
708 "been made nonblocking."
709 msgstr ""
710 "B<write>(2)  は、引き数のバッファーで渡された 8 バイトの整数値をカウンターに"
711 "加算する。 カウンターに格納可能な最大値は unsigned の 64 ビット整数の最大値か"
712 "ら 1 を引いた値 (すなわち 0xfffffffffffffffe) である。 加算を行うとカウンター"
713 "値が最大値を超過する場合には、 そのファイルディスクリプターに対して "
714 "B<read>(2)  が実行されるまで、 B<write>(2)  は停止 (block) する、 もしくは"
715 "ファイルディスクリプターが非停止 (nonblocking)  に設定されている場合はエラー "
716 "B<EAGAIN> で失敗する。"
717
718 #. type: Plain text
719 #: build/C/man2/eventfd.2:148
720 msgid ""
721 "A B<write>(2)  will fail with the error B<EINVAL> if the size of the "
722 "supplied buffer is less than 8 bytes, or if an attempt is made to write the "
723 "value 0xffffffffffffffff."
724 msgstr ""
725 "渡されたバッファーの大きさが 8 バイト未満の場合、もしくは 値 "
726 "0xffffffffffffffff を書き込もうとした場合、 B<write>(2)  はエラー B<EINVAL> "
727 "で失敗する。"
728
729 #. type: TP
730 #: build/C/man2/eventfd.2:148 build/C/man2/signalfd.2:140
731 #: build/C/man2/timerfd_create.2:251
732 #, no-wrap
733 msgid "B<poll>(2), B<select>(2) (and similar)"
734 msgstr "B<poll>(2), B<select>(2) (と同様の操作)"
735
736 #. type: Plain text
737 #: build/C/man2/eventfd.2:157
738 msgid ""
739 "The returned file descriptor supports B<poll>(2)  (and analogously "
740 "B<epoll>(7))  and B<select>(2), as follows:"
741 msgstr ""
742 "返されたファイルディスクリプターは、 B<poll>(2)  (B<epoll>(7)  も同じ) や "
743 "B<select>(2)  をサポートしており、以下のような動作をする。"
744
745 #. type: Plain text
746 #: build/C/man2/eventfd.2:168
747 msgid ""
748 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
749 "B<poll>(2)  B<POLLIN> flag)  if the counter has a value greater than 0."
750 msgstr ""
751 "カウンターが 0 より大きい値の場合、 ファイルディスクリプターは読み出し可能と"
752 "なる (B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
753
754 #. type: Plain text
755 #: build/C/man2/eventfd.2:178
756 msgid ""
757 "The file descriptor is writable (the B<select>(2)  I<writefds> argument; the "
758 "B<poll>(2)  B<POLLOUT> flag)  if it is possible to write a value of at least "
759 "\"1\" without blocking."
760 msgstr ""
761 "少なくとも値 \"1\" を、停止 (block) を伴わずに書き込める場合、 ファイルディス"
762 "クリプターは書き込み可能となる (B<select>(2)  の I<writefds> 引き数や "
763 "B<poll>(2)  の B<POLLOUT> フラグ)。"
764
765 #. type: Plain text
766 #: build/C/man2/eventfd.2:198
767 msgid ""
768 "If an overflow of the counter value was detected, then B<select>(2)  "
769 "indicates the file descriptor as being both readable and writable, and "
770 "B<poll>(2)  returns a B<POLLERR> event.  As noted above, B<write>(2)  can "
771 "never overflow the counter.  However an overflow can occur if 2^64 eventfd "
772 "\"signal posts\" were performed by the KAIO subsystem (theoretically "
773 "possible, but practically unlikely).  If an overflow has occurred, then "
774 "B<read>(2)  will return that maximum I<uint64_t> value (i.e., "
775 "0xffffffffffffffff)."
776 msgstr ""
777 "カウンター値のオーバーフローが検出された場合、 B<select>(2)  はファイルディス"
778 "クリプターは読み出し可能と書き込み可能の両方を通知し、 B<poll>(2)  は "
779 "B<POLLERR> イベントを返す。 上述の通り、 B<write>(2)  でカウンターがオーバー"
780 "フローすることは決してない。 しかしながら、 KAIO サブシステムによって 2^64 回"
781 "の eventfd \"signal posts\" が 実行された場合にはオーバーフローが起こり得る "
782 "(理論的にはあり得るが、実用的にはあり得ない)。 オーバーフローが発生した場"
783 "合、 B<read>(2)  は I<uint64_t> の最大値 (すなわち 0xffffffffffffffff) を返"
784 "す。"
785
786 #. type: Plain text
787 #: build/C/man2/eventfd.2:205
788 msgid ""
789 "The eventfd file descriptor also supports the other file-descriptor "
790 "multiplexing APIs: B<pselect>(2)  and B<ppoll>(2)."
791 msgstr ""
792 "eventfd ファイルディスクリプターは、これ以外のファイルディスクリプター 多重 "
793 "API である B<pselect>(2) と B<ppoll>(2) もサポートしている。"
794
795 #. type: TP
796 #: build/C/man2/eventfd.2:205 build/C/man2/signalfd.2:160
797 #: build/C/man2/timerfd_create.2:269
798 #, no-wrap
799 msgid "B<close>(2)"
800 msgstr "B<close>(2)"
801
802 #. type: Plain text
803 #: build/C/man2/eventfd.2:210
804 msgid ""
805 "When the file descriptor is no longer required it should be closed.  When "
806 "all file descriptors associated with the same eventfd object have been "
807 "closed, the resources for object are freed by the kernel."
808 msgstr ""
809 "ファイルディスクリプターがそれ以降は必要なくなった際には、クローズすべきであ"
810 "る。 同じ eventfd オブジェクトに関連付けられたファイルディスクリプターが全て "
811 "クローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
812
813 #. type: Plain text
814 #: build/C/man2/eventfd.2:222
815 msgid ""
816 "A copy of the file descriptor created by B<eventfd>()  is inherited by the "
817 "child produced by B<fork>(2).  The duplicate file descriptor is associated "
818 "with the same eventfd object.  File descriptors created by B<eventfd>()  are "
819 "preserved across B<execve>(2), unless the close-on-exec flag has been set."
820 msgstr ""
821 "B<fork>(2) で生成された子プロセスは、 B<eventfd>() で生成されたファイルディス"
822 "クリプターのコピーを継承する。 複製されたファイルディスクリプターは同じ "
823 "eventfd オブジェクトに関連付けられる。 close-on-exec フラグが設定されていない"
824 "場合、 B<execve>(2) の前後で B<eventfd>() で生成されたファイルディスクリプ"
825 "ターは保持される。"
826
827 #. type: Plain text
828 #: build/C/man2/eventfd.2:229
829 msgid ""
830 "On success, B<eventfd>()  returns a new eventfd file descriptor.  On error, "
831 "-1 is returned and I<errno> is set to indicate the error."
832 msgstr ""
833 "成功すると、 B<eventfd>()  は新規の eventfd ファイルディスクリプターを返す。 "
834 "エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
835
836 #. type: TP
837 #: build/C/man2/eventfd.2:230 build/C/man2/getitimer.2:142
838 #: build/C/man2/kill.2:106 build/C/man2/killpg.2:95 build/C/man2/prctl.2:930
839 #: build/C/man2/prctl.2:935 build/C/man2/prctl.2:947 build/C/man2/prctl.2:952
840 #: build/C/man2/prctl.2:961 build/C/man2/prctl.2:971 build/C/man2/prctl.2:1011
841 #: build/C/man2/prctl.2:1021 build/C/man2/prctl.2:1029
842 #: build/C/man2/prctl.2:1040 build/C/man2/prctl.2:1049
843 #: build/C/man2/prctl.2:1063 build/C/man2/prctl.2:1075
844 #: build/C/man2/prctl.2:1086 build/C/man2/rt_sigqueueinfo.2:141
845 #: build/C/man2/s390_runtime_instr.2:66 build/C/man2/sigaction.2:738
846 #: build/C/man2/sigaltstack.2:142 build/C/man3/siginterrupt.3:84
847 #: build/C/man2/signal.2:106 build/C/man2/signalfd.2:271
848 #: build/C/man2/signalfd.2:279 build/C/man2/sigprocmask.2:107
849 #: build/C/man3/sigqueue.3:98 build/C/man3/sigsetops.3:128
850 #: build/C/man3/sigwait.3:75 build/C/man2/sigwaitinfo.2:129
851 #: build/C/man2/timer_create.2:181 build/C/man2/timer_delete.2:61
852 #: build/C/man2/timer_getoverrun.2:91 build/C/man2/timer_settime.2:191
853 #: build/C/man2/timer_settime.2:199 build/C/man2/timerfd_create.2:312
854 #: build/C/man2/timerfd_create.2:320 build/C/man2/timerfd_create.2:356
855 #: build/C/man2/timerfd_create.2:363 build/C/man2/timerfd_create.2:369
856 #: build/C/man2/tkill.2:93 build/C/man2/wait.2:418
857 #, no-wrap
858 msgid "B<EINVAL>"
859 msgstr "B<EINVAL>"
860
861 #. type: Plain text
862 #: build/C/man2/eventfd.2:234
863 msgid "An unsupported value was specified in I<flags>."
864 msgstr "I<flags> にサポートされていない値が指定された。"
865
866 #. type: TP
867 #: build/C/man2/eventfd.2:234 build/C/man2/signalfd.2:286
868 #: build/C/man2/timerfd_create.2:327
869 #, no-wrap
870 msgid "B<EMFILE>"
871 msgstr "B<EMFILE>"
872
873 #. type: Plain text
874 #: build/C/man2/eventfd.2:237
875 msgid "The per-process limit on open file descriptors has been reached."
876 msgstr ""
877 "オープン済みのファイルディスクリプターの数がプロセスあたりの上限に 達してい"
878 "た。"
879
880 #. type: TP
881 #: build/C/man2/eventfd.2:237 build/C/man2/signalfd.2:289
882 #: build/C/man2/timerfd_create.2:330
883 #, no-wrap
884 msgid "B<ENFILE>"
885 msgstr "B<ENFILE>"
886
887 #. type: Plain text
888 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
889 #: build/C/man2/timerfd_create.2:334
890 msgid ""
891 "The system-wide limit on the total number of open files has been reached."
892 msgstr "オープン済みのファイル総数がシステム全体の上限に達していた。"
893
894 #. type: TP
895 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
896 #: build/C/man2/timerfd_create.2:334
897 #, no-wrap
898 msgid "B<ENODEV>"
899 msgstr "B<ENODEV>"
900
901 #. type: Plain text
902 #: build/C/man2/eventfd.2:249 build/C/man2/signalfd.2:296
903 #: build/C/man2/timerfd_create.2:337
904 msgid "Could not mount (internal) anonymous inode device."
905 msgstr "(カーネル内の) 無名 inode デバイスをマウントできなかった。"
906
907 #. type: TP
908 #: build/C/man2/eventfd.2:249 build/C/man2/s390_runtime_instr.2:73
909 #: build/C/man2/sigaltstack.2:147 build/C/man2/signalfd.2:296
910 #: build/C/man2/timer_create.2:189 build/C/man2/timerfd_create.2:337
911 #, no-wrap
912 msgid "B<ENOMEM>"
913 msgstr "B<ENOMEM>"
914
915 #. type: Plain text
916 #: build/C/man2/eventfd.2:253
917 msgid "There was insufficient memory to create a new eventfd file descriptor."
918 msgstr ""
919 "新しい eventfd ファイルディスクリプターを生成するのに十分なメモリーがなかっ"
920 "た。"
921
922 #. type: SH
923 #: build/C/man2/eventfd.2:253 build/C/man2/prctl.2:1185
924 #: build/C/man3/psignal.3:95 build/C/man2/restart_syscall.2:96
925 #: build/C/man2/rt_sigqueueinfo.2:169 build/C/man2/s390_runtime_instr.2:79
926 #: build/C/man2/sgetmask.2:66 build/C/man2/signalfd.2:299
927 #: build/C/man3/sigqueue.3:112 build/C/man3/sigvec.3:234
928 #: build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:65
929 #: build/C/man2/timer_getoverrun.2:95 build/C/man2/timer_settime.2:205
930 #: build/C/man2/timerfd_create.2:375 build/C/man2/tkill.2:104
931 #, no-wrap
932 msgid "VERSIONS"
933 msgstr "バージョン"
934
935 #.  eventfd() is in glibc 2.7, but reportedly does not build
936 #. type: Plain text
937 #: build/C/man2/eventfd.2:266
938 msgid ""
939 "B<eventfd>()  is available on Linux since kernel 2.6.22.  Working support is "
940 "provided in glibc since version 2.8.  The B<eventfd2>()  system call (see "
941 "NOTES) is available on Linux since kernel 2.6.27.  Since version 2.9, the "
942 "glibc B<eventfd>()  wrapper will employ the B<eventfd2>()  system call, if "
943 "it is supported by the kernel."
944 msgstr ""
945 "B<eventfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
946 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<eventfd2>()  "
947 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
948 "る。 バージョン 2.9 以降では、glibc の B<eventfd>()  のラッパー関数は、カーネ"
949 "ルが対応していれば B<eventfd2>()  システムコールを利用する。"
950
951 #. type: Plain text
952 #: build/C/man2/eventfd.2:271
953 msgid "B<eventfd>()  and B<eventfd2>()  are Linux-specific."
954 msgstr "B<eventfd>()  と B<eventfd2>()  は Linux 固有である。"
955
956 #. type: Plain text
957 #: build/C/man2/eventfd.2:279
958 msgid ""
959 "Applications can use an eventfd file descriptor instead of a pipe (see "
960 "B<pipe>(2))  in all cases where a pipe is used simply to signal events.  The "
961 "kernel overhead of an eventfd file descriptor is much lower than that of a "
962 "pipe, and only one file descriptor is required (versus the two required for "
963 "a pipe)."
964 msgstr ""
965 "アプリケーションは、パイプをイベントを通知するためだけに使用している 全ての場"
966 "面において、パイプの代わりに eventfd ファイルディスクリプターを 使用すること"
967 "ができる。 eventfd ファイルディスクリプターを使う方が、パイプを使う場合に比べ"
968 "て カーネルでのオーバヘッドは比べるとずっと小さく、ファイルディスクリプター"
969 "も 一つしか必要としない (パイプの場合は二つ必要である)。"
970
971 #.  or eventually syslets/threadlets
972 #. type: Plain text
973 #: build/C/man2/eventfd.2:285
974 msgid ""
975 "When used in the kernel, an eventfd file descriptor can provide a bridge "
976 "from kernel to user space, allowing, for example, functionalities like KAIO "
977 "(kernel AIO)  to signal to a file descriptor that some operation is complete."
978 msgstr ""
979 "カーネル内で使用すると、eventfd ファイルディスクリプターはカーネル空間から"
980 "ユーザー空間へのブリッジ機能を提供することができ、 例えば KAIO (kernel AIO)  "
981 "のような機能が、あるファイルディスクリプターに何らかの操作が完了したことを 通"
982 "知することができる。"
983
984 #. type: Plain text
985 #: build/C/man2/eventfd.2:302
986 msgid ""
987 "A key point about an eventfd file descriptor is that it can be monitored "
988 "just like any other file descriptor using B<select>(2), B<poll>(2), or "
989 "B<epoll>(7).  This means that an application can simultaneously monitor the "
990 "readiness of \"traditional\" files and the readiness of other kernel "
991 "mechanisms that support the eventfd interface.  (Without the B<eventfd>()  "
992 "interface, these mechanisms could not be multiplexed via B<select>(2), "
993 "B<poll>(2), or B<epoll>(7).)"
994 msgstr ""
995 "eventfd ファイルディスクリプターの重要な点は、 eventfd ファイルディスクリプ"
996 "ターが B<select>(2), B<poll>(2), B<epoll>(7)  を使って他のファイルディスクリ"
997 "プターと全く同様に監視できる点である。 このことは、アプリケーションは「従来"
998 "の (traditional)」 ファイルの状態変化と eventfd インターフェースをサポートす"
999 "る他のカーネル機構の状態変化を同時に監視 できることを意味する (B<eventfd>()  "
1000 "インターフェースがない時には、これらのカーネル機構は B<select>(2), "
1001 "B<poll>(2), B<epoll>(7)  経由で多重することはできなかった)。"
1002
1003 #. type: SS
1004 #: build/C/man2/eventfd.2:302 build/C/man2/signalfd.2:326
1005 #: build/C/man2/sigwaitinfo.2:183 build/C/man2/timer_create.2:243
1006 #: build/C/man2/wait.2:525
1007 #, no-wrap
1008 msgid "C library/kernel ABI differences"
1009 msgstr "C ライブラリとカーネル ABI の違い"
1010
1011 #. type: Plain text
1012 #: build/C/man2/eventfd.2:316
1013 msgid ""
1014 "There are two underlying Linux system calls: B<eventfd>()  and the more "
1015 "recent B<eventfd2>().  The former system call does not implement a I<flags> "
1016 "argument.  The latter system call implements the I<flags> values described "
1017 "above.  The glibc wrapper function will use B<eventfd2>()  where it is "
1018 "available."
1019 msgstr ""
1020 "下層にある Linux システムコールは二種類あり、 B<eventfd>()  と、もっと新しい "
1021 "B<eventfd2>()  である。 B<eventfd>()  は I<flags> 引き数を実装していない。 "
1022 "B<eventfd2>()  では上記の値の I<flags> が実装されている。 glibc のラッパー関"
1023 "数は、 B<eventfd2>()  が利用可能であれば、これを使用する。"
1024
1025 #. type: SS
1026 #: build/C/man2/eventfd.2:316
1027 #, no-wrap
1028 msgid "Additional glibc features"
1029 msgstr "glibc の追加機能"
1030
1031 #. type: Plain text
1032 #: build/C/man2/eventfd.2:320
1033 msgid ""
1034 "The GNU C library defines an additional type, and two functions that attempt "
1035 "to abstract some of the details of reading and writing on an eventfd file "
1036 "descriptor:"
1037 msgstr ""
1038 "GNU C ライブラリは、eventfd ファイルディスクリプターの読み出しと書き込みに を"
1039 "関する詳細のいくつか抽象化するために、一つの型と、二つの関数を追加で 定義して"
1040 "いる。"
1041
1042 #. type: Plain text
1043 #: build/C/man2/eventfd.2:324
1044 #, no-wrap
1045 msgid "typedef uint64_t eventfd_t;\n"
1046 msgstr "typedef uint64_t eventfd_t;\n"
1047
1048 #. type: Plain text
1049 #: build/C/man2/eventfd.2:327
1050 #, no-wrap
1051 msgid ""
1052 "int eventfd_read(int fd, eventfd_t *value);\n"
1053 "int eventfd_write(int fd, eventfd_t value);\n"
1054 msgstr ""
1055 "int eventfd_read(int fd, eventfd_t *value);\n"
1056 "int eventfd_write(int fd, eventfd_t value);\n"
1057
1058 #. type: Plain text
1059 #: build/C/man2/eventfd.2:334
1060 msgid ""
1061 "The functions perform the read and write operations on an eventfd file "
1062 "descriptor, returning 0 if the correct number of bytes was transferred, or "
1063 "-1 otherwise."
1064 msgstr ""
1065 "これらの関数は、eventfd ファイルディスクリプターに対する読み出しと 書き込みの"
1066 "操作を実行し、正しいバイト数が転送された場合には 0 を返し、そうでない場合は "
1067 "-1 を返す。"
1068
1069 #. type: SH
1070 #: build/C/man2/eventfd.2:334 build/C/man2/sigaction.2:858
1071 #: build/C/man2/sigaltstack.2:217 build/C/man2/signalfd.2:360
1072 #: build/C/man3/sigwait.3:91 build/C/man2/timer_create.2:264
1073 #: build/C/man2/timer_getoverrun.2:128 build/C/man2/timer_settime.2:209
1074 #: build/C/man2/timerfd_create.2:386 build/C/man2/wait.2:552
1075 #, no-wrap
1076 msgid "EXAMPLE"
1077 msgstr "例"
1078
1079 #. type: Plain text
1080 #: build/C/man2/eventfd.2:343
1081 msgid ""
1082 "The following program creates an eventfd file descriptor and then forks to "
1083 "create a child process.  While the parent briefly sleeps, the child writes "
1084 "each of the integers supplied in the program's command-line arguments to the "
1085 "eventfd file descriptor.  When the parent has finished sleeping, it reads "
1086 "from the eventfd file descriptor."
1087 msgstr ""
1088 "以下のプログラムは eventfd ファイルディスクリプターを生成し、 その後 fork を"
1089 "実行して子プロセスを生成する。 親プロセスが少しの間 sleep する間に、子プロセ"
1090 "スは プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ eventfd "
1091 "ファイルディスクリプターに書き込む。 親プロセスは sleep を完了すると eventfd "
1092 "ファイルディスクリプターから 読み出しを行う。"
1093
1094 #. type: Plain text
1095 #: build/C/man2/eventfd.2:345
1096 msgid "The following shell session shows a sample run of the program:"
1097 msgstr "以下に示すシェルセッションにこのプログラムの使い方を示す。"
1098
1099 #. type: Plain text
1100 #: build/C/man2/eventfd.2:357
1101 #, no-wrap
1102 msgid ""
1103 "$B< ./a.out 1 2 4 7 14>\n"
1104 "Child writing 1 to efd\n"
1105 "Child writing 2 to efd\n"
1106 "Child writing 4 to efd\n"
1107 "Child writing 7 to efd\n"
1108 "Child writing 14 to efd\n"
1109 "Child completed write loop\n"
1110 "Parent about to read\n"
1111 "Parent read 28 (0x1c) from efd\n"
1112 msgstr ""
1113 "$B< ./a.out 1 2 4 7 14>\n"
1114 "Child writing 1 to efd\n"
1115 "Child writing 2 to efd\n"
1116 "Child writing 4 to efd\n"
1117 "Child writing 7 to efd\n"
1118 "Child writing 14 to efd\n"
1119 "Child completed write loop\n"
1120 "Parent about to read\n"
1121 "Parent read 28 (0x1c) from efd\n"
1122
1123 #. type: SS
1124 #: build/C/man2/eventfd.2:359 build/C/man2/signalfd.2:383
1125 #: build/C/man2/timer_create.2:295 build/C/man2/timerfd_create.2:414
1126 #: build/C/man2/wait.2:587
1127 #, no-wrap
1128 msgid "Program source"
1129 msgstr "プログラムのソース"
1130
1131 #. type: Plain text
1132 #: build/C/man2/eventfd.2:367
1133 #, no-wrap
1134 msgid ""
1135 "#include E<lt>sys/eventfd.hE<gt>\n"
1136 "#include E<lt>unistd.hE<gt>\n"
1137 "#include E<lt>stdlib.hE<gt>\n"
1138 "#include E<lt>stdio.hE<gt>\n"
1139 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1140 msgstr ""
1141 "#include E<lt>sys/eventfd.hE<gt>\n"
1142 "#include E<lt>unistd.hE<gt>\n"
1143 "#include E<lt>stdlib.hE<gt>\n"
1144 "#include E<lt>stdio.hE<gt>\n"
1145 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1146
1147 #. type: Plain text
1148 #: build/C/man2/eventfd.2:370 build/C/man2/signalfd.2:394
1149 #, no-wrap
1150 msgid ""
1151 "#define handle_error(msg) \\e\n"
1152 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1153 msgstr ""
1154 "#define handle_error(msg) \\e\n"
1155 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1156
1157 #. type: Plain text
1158 #: build/C/man2/eventfd.2:377
1159 #, no-wrap
1160 msgid ""
1161 "int\n"
1162 "main(int argc, char *argv[])\n"
1163 "{\n"
1164 "    int efd, j;\n"
1165 "    uint64_t u;\n"
1166 "    ssize_t s;\n"
1167 msgstr ""
1168 "int\n"
1169 "main(int argc, char *argv[])\n"
1170 "{\n"
1171 "    int efd, j;\n"
1172 "    uint64_t u;\n"
1173 "    ssize_t s;\n"
1174
1175 #. type: Plain text
1176 #: build/C/man2/eventfd.2:382
1177 #, no-wrap
1178 msgid ""
1179 "    if (argc E<lt> 2) {\n"
1180 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1181 "        exit(EXIT_FAILURE);\n"
1182 "    }\n"
1183 msgstr ""
1184 "    if (argc E<lt> 2) {\n"
1185 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1186 "        exit(EXIT_FAILURE);\n"
1187 "    }\n"
1188
1189 #. type: Plain text
1190 #: build/C/man2/eventfd.2:386
1191 #, no-wrap
1192 msgid ""
1193 "    efd = eventfd(0, 0);\n"
1194 "    if (efd == -1)\n"
1195 "        handle_error(\"eventfd\");\n"
1196 msgstr ""
1197 "    efd = eventfd(0, 0);\n"
1198 "    if (efd == -1)\n"
1199 "        handle_error(\"eventfd\");\n"
1200
1201 #. type: Plain text
1202 #: build/C/man2/eventfd.2:398
1203 #, no-wrap
1204 msgid ""
1205 "    switch (fork()) {\n"
1206 "    case 0:\n"
1207 "        for (j = 1; j E<lt> argc; j++) {\n"
1208 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1209 "            u = strtoull(argv[j], NULL, 0);\n"
1210 "                    /* strtoull() allows various bases */\n"
1211 "            s = write(efd, &u, sizeof(uint64_t));\n"
1212 "            if (s != sizeof(uint64_t))\n"
1213 "                handle_error(\"write\");\n"
1214 "        }\n"
1215 "        printf(\"Child completed write loop\\en\");\n"
1216 msgstr ""
1217 "    switch (fork()) {\n"
1218 "    case 0:\n"
1219 "        for (j = 1; j E<lt> argc; j++) {\n"
1220 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1221 "            u = strtoull(argv[j], NULL, 0);\n"
1222 "                    /* strtoull() allows various bases */\n"
1223 "            s = write(efd, &u, sizeof(uint64_t));\n"
1224 "            if (s != sizeof(uint64_t))\n"
1225 "                handle_error(\"write\");\n"
1226 "        }\n"
1227 "        printf(\"Child completed write loop\\en\");\n"
1228
1229 #. type: Plain text
1230 #: build/C/man2/eventfd.2:400
1231 #, no-wrap
1232 msgid "        exit(EXIT_SUCCESS);\n"
1233 msgstr "        exit(EXIT_SUCCESS);\n"
1234
1235 #. type: Plain text
1236 #: build/C/man2/eventfd.2:403
1237 #, no-wrap
1238 msgid ""
1239 "    default:\n"
1240 "        sleep(2);\n"
1241 msgstr ""
1242 "    default:\n"
1243 "        sleep(2);\n"
1244
1245 #. type: Plain text
1246 #: build/C/man2/eventfd.2:411
1247 #, no-wrap
1248 msgid ""
1249 "        printf(\"Parent about to read\\en\");\n"
1250 "        s = read(efd, &u, sizeof(uint64_t));\n"
1251 "        if (s != sizeof(uint64_t))\n"
1252 "            handle_error(\"read\");\n"
1253 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1254 "                (unsigned long long) u, (unsigned long long) u);\n"
1255 "        exit(EXIT_SUCCESS);\n"
1256 msgstr ""
1257 "        printf(\"Parent about to read\\en\");\n"
1258 "        s = read(efd, &u, sizeof(uint64_t));\n"
1259 "        if (s != sizeof(uint64_t))\n"
1260 "            handle_error(\"read\");\n"
1261 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1262 "                (unsigned long long) u, (unsigned long long) u);\n"
1263 "        exit(EXIT_SUCCESS);\n"
1264
1265 #. type: Plain text
1266 #: build/C/man2/eventfd.2:416
1267 #, no-wrap
1268 msgid ""
1269 "    case -1:\n"
1270 "        handle_error(\"fork\");\n"
1271 "    }\n"
1272 "}\n"
1273 msgstr ""
1274 "    case -1:\n"
1275 "        handle_error(\"fork\");\n"
1276 "    }\n"
1277 "}\n"
1278
1279 #. type: Plain text
1280 #: build/C/man2/eventfd.2:428
1281 msgid ""
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 msgstr ""
1286 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), "
1287 "B<signalfd>(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), "
1288 "B<sem_overview>(7)"
1289
1290 #. type: TH
1291 #: build/C/man2/getitimer.2:12
1292 #, no-wrap
1293 msgid "GETITIMER"
1294 msgstr "GETITIMER"
1295
1296 #. type: Plain text
1297 #: build/C/man2/getitimer.2:15
1298 msgid "getitimer, setitimer - get or set value of an interval timer"
1299 msgstr "getitimer, setitimer - インターバルタイマーの値を取得または設定する"
1300
1301 #. type: Plain text
1302 #: build/C/man2/getitimer.2:18
1303 #, no-wrap
1304 msgid "B<#include E<lt>sys/time.hE<gt>>\n"
1305 msgstr "B<#include E<lt>sys/time.hE<gt>>\n"
1306
1307 #. type: Plain text
1308 #: build/C/man2/getitimer.2:20
1309 #, no-wrap
1310 msgid "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1311 msgstr "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1312
1313 #. type: Plain text
1314 #: build/C/man2/getitimer.2:23
1315 #, no-wrap
1316 msgid ""
1317 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1318 "B<              struct itimerval *>I<old_value>B<);>\n"
1319 msgstr ""
1320 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1321 "B<              struct itimerval *>I<old_value>B<);>\n"
1322
1323 #. type: Plain text
1324 #: build/C/man2/getitimer.2:29
1325 msgid ""
1326 "The system provides each process with three interval timers, each "
1327 "decrementing in a distinct time domain.  When a timer expires, a signal is "
1328 "sent to the process, and the timer is reset to the specified interval (if "
1329 "nonzero)."
1330 msgstr ""
1331 "システムは 1 個のプロセスにつき 3 個のインターバルタイマーを提供する。 それぞ"
1332 "れのタイマーは別々の時間領域で減少する。 あるタイマーが満了すると、 プロセス"
1333 "にシグナルが送られ、 タイマーは (0 でなければ) 指定されたインターバルに再設定"
1334 "される。"
1335
1336 #. type: TP
1337 #: build/C/man2/getitimer.2:29
1338 #, no-wrap
1339 msgid "B<ITIMER_REAL>"
1340 msgstr "B<ITIMER_REAL>"
1341
1342 #. type: Plain text
1343 #: build/C/man2/getitimer.2:34
1344 msgid "decrements in real time, and delivers B<SIGALRM> upon expiration."
1345 msgstr "実時間 (real time) で減少し、満了すると B<SIGALRM> が送られる。"
1346
1347 #. type: TP
1348 #: build/C/man2/getitimer.2:34
1349 #, no-wrap
1350 msgid "B<ITIMER_VIRTUAL>"
1351 msgstr "B<ITIMER_VIRTUAL>"
1352
1353 #. type: Plain text
1354 #: build/C/man2/getitimer.2:39
1355 msgid ""
1356 "decrements only when the process is executing, and delivers B<SIGVTALRM> "
1357 "upon expiration."
1358 msgstr ""
1359 "プロセスが実行されている間のみ減少し、満了すると B<SIGVTALRM> が送られる。"
1360
1361 #. type: TP
1362 #: build/C/man2/getitimer.2:39
1363 #, no-wrap
1364 msgid "B<ITIMER_PROF>"
1365 msgstr "B<ITIMER_PROF>"
1366
1367 #. type: Plain text
1368 #: build/C/man2/getitimer.2:49
1369 msgid ""
1370 "decrements both when the process executes and when the system is executing "
1371 "on behalf of the process.  Coupled with B<ITIMER_VIRTUAL>, this timer is "
1372 "usually used to profile the time spent by the application in user and kernel "
1373 "space.  B<SIGPROF> is delivered upon expiration."
1374 msgstr ""
1375 "プロセスが実行されていて、 かつシステムがそのプロセスのために処理を行なってい"
1376 "る間に減少する。 多くの場合、このタイマーは B<ITIMER_VIRTUAL> と組み合わされ"
1377 "て、アプリケーションがカーネル空間とユーザー空間で どれだけの時間を過ごしたか"
1378 "をプロファイルするのに使用される。 満了すると B<SIGPROF> が送られる。"
1379
1380 #. type: Plain text
1381 #: build/C/man2/getitimer.2:51
1382 msgid "Timer values are defined by the following structures:"
1383 msgstr "タイマーの値は以下の構造体によって定義される:"
1384
1385 #. type: Plain text
1386 #: build/C/man2/getitimer.2:59
1387 #, no-wrap
1388 msgid ""
1389 "struct itimerval {\n"
1390 "    struct timeval it_interval; /* Interval for periodic timer */\n"
1391 "    struct timeval it_value;    /* Time until next expiration */\n"
1392 "};\n"
1393 msgstr ""
1394 "struct itimerval {\n"
1395 "    struct timeval it_interval; /* Interval for periodic timer */\n"
1396 "    struct timeval it_value;    /* Time until next expiration */\n"
1397 "};\n"
1398
1399 #. type: Plain text
1400 #: build/C/man2/getitimer.2:64
1401 #, no-wrap
1402 msgid ""
1403 "struct timeval {\n"
1404 "    time_t      tv_sec;         /* seconds */\n"
1405 "    suseconds_t tv_usec;        /* microseconds */\n"
1406 "};\n"
1407 msgstr ""
1408 "struct timeval {\n"
1409 "    time_t      tv_sec;         /* seconds */\n"
1410 "    suseconds_t tv_usec;        /* microseconds */\n"
1411 "};\n"
1412
1413 #. type: Plain text
1414 #: build/C/man2/getitimer.2:90
1415 msgid ""
1416 "The function B<getitimer>()  fills the structure pointed to by I<curr_value> "
1417 "with the current value (i.e., the amount of time remaining until the next "
1418 "expiration)  of the timer specified by I<which> (one of B<ITIMER_REAL>, "
1419 "B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>).  The subfields of the field "
1420 "I<it_value> are set to the amount of time remaining on the timer, or zero if "
1421 "the timer is disabled.  The I<it_interval> field is set to the timer "
1422 "interval (period); a value of zero returned in (both subfields of) this "
1423 "field indicates that this is a single-shot timer."
1424 msgstr ""
1425 "B<getitimer>()  関数は、 I<which> で指定されたタイマー (B<ITIMER_REAL>, "
1426 "B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれか) の現在の値 (すなわち、次のタイ"
1427 "マー満了までの残り時間) を、 I<curr_value> で指定された構造体に格納する。 "
1428 "I<it_value> フィールドのサブフィールドにはタイマーの残り時間が設定される。 タ"
1429 "イマーが無効になっている場合は ゼロが設定される。 I<it_interval> フィールドに"
1430 "はタイマーのインターバル (期間) が設定される。 I<it_interval> (の両方のサブ"
1431 "フィールド) で値 0 が返された場合は、 このタイマーが 1 回限りのタイマーである"
1432 "ことを示している。"
1433
1434 #. type: Plain text
1435 #: build/C/man2/getitimer.2:101
1436 msgid ""
1437 "The function B<setitimer>()  sets the specified timer to the value in "
1438 "I<new_value>.  If I<old_value> is non-NULL, the old value of the timer (i."
1439 "e., the same information as returned by B<getitimer>())  is stored there."
1440 msgstr ""
1441 "B<setitimer>()  関数は指定されたタイマーに I<new_value> の値を設定する。 "
1442 "I<old_value> が NULL 以外の場合、タイマーの古い値 (すなわち B<getitimer>() で"
1443 "返されるのと同じ情報) が I<old_value> に格納される。"
1444
1445 #. type: Plain text
1446 #: build/C/man2/getitimer.2:111
1447 msgid ""
1448 "Timers decrement from I<it_value> to zero, generate a signal, and reset to "
1449 "I<it_interval>.  A timer which is set to zero (I<it_value> is zero or the "
1450 "timer expires and I<it_interval> is zero) stops."
1451 msgstr ""
1452 "タイマーは I<it_value> からゼロへ向けて減っていき、シグナルを生成し、 "
1453 "I<it_interval> に初期化される。 タイマーがゼロに設定された場合 (I<it_value> "
1454 "がゼロか、タイマーが満了した時に I<it_interval> がゼロの場合) は停止する。"
1455
1456 #. type: Plain text
1457 #: build/C/man2/getitimer.2:117
1458 msgid ""
1459 "Both I<tv_sec> and I<tv_usec> are significant in determining the duration of "
1460 "a timer."
1461 msgstr "タイマーの期間は I<tv_sec> と I<tv_usec> の両方により決定される。"
1462
1463 #. type: Plain text
1464 #: build/C/man2/getitimer.2:129
1465 msgid ""
1466 "Timers will never expire before the requested time, but may expire some "
1467 "(short) time afterward, which depends on the system timer resolution and on "
1468 "the system load; see B<time>(7).  (But see BUGS below.)  Upon expiration, a "
1469 "signal will be generated and the timer reset.  If the timer expires while "
1470 "the process is active (always true for B<ITIMER_VIRTUAL>), the signal will "
1471 "be delivered immediately when generated.  Otherwise, the delivery will be "
1472 "offset by a small time dependent on the system loading."
1473 msgstr ""
1474 "要求した時間がくる前にタイマーが満了することはないが、 逆にある (短い) 時間だ"
1475 "け満了が遅れることはある。 どれだけ遅れるかはシステムの時間分解能とシステムの"
1476 "負荷に依存する (B<time>(7)  参照; 但し、バグの項も参照のこと)。 タイマーが満"
1477 "了するとシグナルが生成され、タイマーは初期化される。 プロセスがアクティブな"
1478 "時 (B<ITIMER_VIRTUAL> の場合には常にそうである) にタイマーが満了した場合、生"
1479 "成されたシグナルは すぐに配送される。それ以外の場合は、システムの負荷により少"
1480 "しの時間だけ 遅れて配送される。"
1481
1482 #. type: Plain text
1483 #: build/C/man2/getitimer.2:134 build/C/man2/killpg.2:94
1484 #: build/C/man2/tkill.2:92
1485 msgid ""
1486 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1487 "appropriately."
1488 msgstr ""
1489 "成功した場合、0 が返される。エラーが発生した場合、-1 が返され、 I<errno> が適"
1490 "切に設定される。"
1491
1492 #. type: TP
1493 #: build/C/man2/getitimer.2:135 build/C/man2/prctl.2:913
1494 #: build/C/man2/prctl.2:917 build/C/man2/sigaction.2:734
1495 #: build/C/man2/sigaltstack.2:138 build/C/man2/sigpending.2:60
1496 #: build/C/man2/sigprocmask.2:100 build/C/man2/sigsuspend.2:77
1497 #: build/C/man2/timer_settime.2:184 build/C/man2/timerfd_create.2:349
1498 #, no-wrap
1499 msgid "B<EFAULT>"
1500 msgstr "B<EFAULT>"
1501
1502 #. type: Plain text
1503 #: build/C/man2/getitimer.2:142 build/C/man2/timerfd_create.2:356
1504 msgid "I<new_value>, I<old_value>, or I<curr_value> is not valid a pointer."
1505 msgstr "I<new_value>, I<old_value>, I<curr_value> が有効なポインターではない。"
1506
1507 #. type: Plain text
1508 #: build/C/man2/getitimer.2:155
1509 msgid ""
1510 "I<which> is not one of B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>; "
1511 "or (since Linux 2.6.22) one of the I<tv_usec> fields in the structure "
1512 "pointed to by I<new_value> contains a value outside the range 0 to 999999."
1513 msgstr ""
1514 "I<which> が B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれでもな"
1515 "い。 または (Linux 2.6.22 以降で)  I<new_value> で指定された構造体の "
1516 "I<tv_usec> フィールドの一つが 0 以上 999999 以下の範囲に入らない値である。"
1517
1518 #. type: Plain text
1519 #: build/C/man2/getitimer.2:165
1520 msgid ""
1521 "POSIX.1-2001, SVr4, 4.4BSD (this call first appeared in 4.2BSD).  "
1522 "POSIX.1-2008 marks B<getitimer>()  and B<setitimer>()  obsolete, "
1523 "recommending the use of the POSIX timers API (B<timer_gettime>(2), "
1524 "B<timer_settime>(2), etc.) instead."
1525 msgstr ""
1526 "POSIX.1-2001, SVr4, 4.4BSD (このコールは 4.2BSD で始めて現われた).  "
1527 "POSIX.1-2008 では、 B<getitimer>()  と B<setitimer>()  は廃止予定とされてお"
1528 "り、 代わりに POSIX タイマー API (B<timer_gettime>(2), B<timer_settime>(2)  "
1529 "など) を使うことが推奨されている。"
1530
1531 #. type: Plain text
1532 #: build/C/man2/getitimer.2:171
1533 msgid ""
1534 "A child created via B<fork>(2)  does not inherit its parent's interval "
1535 "timers.  Interval timers are preserved across an B<execve>(2)."
1536 msgstr ""
1537 "B<fork>(2)  で作成された子プロセスは、 親プロセスのインターバルタイマーを継承"
1538 "しない。 B<execve>(2)  の前後ではインターバルタイマーは保存される。"
1539
1540 #. type: Plain text
1541 #: build/C/man2/getitimer.2:181
1542 msgid ""
1543 "POSIX.1 leaves the interaction between B<setitimer>()  and the three "
1544 "interfaces B<alarm>(2), B<sleep>(3), and B<usleep>(3)  unspecified."
1545 msgstr ""
1546 "POSIX.1 では、 B<setitimer>()  と、 B<alarm>(2), B<sleep>(3), B<usleep>(3)  "
1547 "という 3 つのインターフェースとの相互の影響については規定していない。"
1548
1549 #. type: Plain text
1550 #: build/C/man2/getitimer.2:183
1551 msgid "The standards are silent on the meaning of the call:"
1552 msgstr "標準では、次の呼び出しの意味については規定されていない。"
1553
1554 #. type: Plain text
1555 #: build/C/man2/getitimer.2:185
1556 #, no-wrap
1557 msgid "    setitimer(which, NULL, &old_value);\n"
1558 msgstr "    setitimer(which, NULL, &old_value);\n"
1559
1560 #. type: Plain text
1561 #: build/C/man2/getitimer.2:188
1562 msgid ""
1563 "Many systems (Solaris, the BSDs, and perhaps others)  treat this as "
1564 "equivalent to:"
1565 msgstr ""
1566 "(Solaris, BSD 系やおそらく他のシステムもそうだが) 多くのシステムでは、この呼"
1567 "び出しは以下と等価である。"
1568
1569 #. type: Plain text
1570 #: build/C/man2/getitimer.2:190
1571 #, no-wrap
1572 msgid "    getitimer(which, &old_value);\n"
1573 msgstr "    getitimer(which, &old_value);\n"
1574
1575 #. type: Plain text
1576 #: build/C/man2/getitimer.2:196
1577 msgid ""
1578 "In Linux, this is treated as being equivalent to a call in which the "
1579 "I<new_value> fields are zero; that is, the timer is disabled.  I<Don't use "
1580 "this Linux misfeature>: it is nonportable and unnecessary."
1581 msgstr ""
1582 "Linux では、この呼び出しは I<new_value> フィールドが 0 の呼び出しと等価なもの"
1583 "と扱われる。 つまり、タイマーが無効になる。 I<Linux のこの間違った機能を使用"
1584 "しないこと>。移植性もなく、不必要な機能である。"
1585
1586 #. type: SH
1587 #: build/C/man2/getitimer.2:196 build/C/man2/kill.2:161
1588 #: build/C/man3/profil.3:72 build/C/man3/psignal.3:101
1589 #: build/C/man2/sigaction.2:849 build/C/man2/signalfd.2:352
1590 #: build/C/man2/sigpending.2:85 build/C/man3/sigset.3:232
1591 #: build/C/man2/timer_getoverrun.2:115 build/C/man2/timerfd_create.2:380
1592 #: build/C/man2/wait.2:537
1593 #, no-wrap
1594 msgid "BUGS"
1595 msgstr "バグ"
1596
1597 #. type: Plain text
1598 #: build/C/man2/getitimer.2:205
1599 msgid ""
1600 "The generation and delivery of a signal are distinct, and only one instance "
1601 "of each of the signals listed above may be pending for a process.  Under "
1602 "very heavy loading, an B<ITIMER_REAL> timer may expire before the signal "
1603 "from a previous expiration has been delivered.  The second signal in such an "
1604 "event will be lost."
1605 msgstr ""
1606 "シグナルの生成と配送は別個のものであり、 前述のシグナルのそれぞれについて一つ"
1607 "だけがプロセスのために 待機する。 非常に重い負荷の下では、 B<ITIMER_REAL> タ"
1608 "イマーでは、時間切れにより生成された一つ前のシグナルが配送される前に、 次の時"
1609 "間切れが起こる場合がある。 そのような場合、 2 個めのイベントに対するシグナル"
1610 "は失われてしまう。"
1611
1612 #. type: Plain text
1613 #: build/C/man2/getitimer.2:220
1614 msgid ""
1615 "On Linux kernels before 2.6.16, timer values are represented in jiffies.  If "
1616 "a request is made set a timer with a value whose jiffies representation "
1617 "exceeds B<MAX_SEC_IN_JIFFIES> (defined in I<include/linux/jiffies.h>), then "
1618 "the timer is silently truncated to this ceiling value.  On Linux/i386 "
1619 "(where, since Linux 2.6.13, the default jiffy is 0.004 seconds), this means "
1620 "that the ceiling value for a timer is approximately 99.42 days.  Since Linux "
1621 "2.6.16, the kernel uses a different internal representation for times, and "
1622 "this ceiling is removed."
1623 msgstr ""
1624 "バージョン 2.6.16 より前の Linux カーネルでは、 タイマーの値は jiffy で表現さ"
1625 "れる。 要求が jiffy 表現で (I<include/linux/jiffies.h> で定義されている)  "
1626 "B<MAX_SEC_IN_JIFFIES> を越える値をタイマーに設定しようとするものの場合、 タイ"
1627 "マーは暗黙にこの上限値に切り詰められる。 Linux/i386 の場合 (Linux 2.6.13 以降"
1628 "では jiffy は 0.004 秒) の場合、 これはタイマーの上限値がおよそ 99.42 日にな"
1629 "ることを意味する。 Linux 2.6.16 以降では、カーネルは時間に関する内部表現とし"
1630 "て 異なる表現を使うようになっており、この上限はなくなった。"
1631
1632 #.  4 Jul 2005: It looks like this bug may remain in 2.4.x.
1633 #.      http://lkml.org/lkml/2005/7/1/165
1634 #. type: Plain text
1635 #: build/C/man2/getitimer.2:227
1636 msgid ""
1637 "On certain systems (including i386), Linux kernels before version 2.6.12 "
1638 "have a bug which will produce premature timer expirations of up to one jiffy "
1639 "under some circumstances.  This bug is fixed in kernel 2.6.12."
1640 msgstr ""
1641 "(i386 を含む) いくつかのシステムでは、 バージョン 2.6.12 以前の Linux カーネ"
1642 "ルは ある種の状況では 1 jiffy 早くタイマーが終了してしまうというバグがあっ"
1643 "た。 このバグはカーネル 2.6.12 で修正された。"
1644
1645 #.  Bugzilla report 25 Apr 2006:
1646 #.  http://bugzilla.kernel.org/show_bug.cgi?id=6443
1647 #.  "setitimer() should reject noncanonical arguments"
1648 #. type: Plain text
1649 #: build/C/man2/getitimer.2:246
1650 msgid ""
1651 "POSIX.1-2001 says that B<setitimer>()  should fail if a I<tv_usec> value is "
1652 "specified that is outside of the range 0 to 999999.  However, in kernels up "
1653 "to and including 2.6.21, Linux does not give an error, but instead silently "
1654 "adjusts the corresponding seconds value for the timer.  From kernel 2.6.22 "
1655 "onward, this nonconformance has been repaired: an improper I<tv_usec> value "
1656 "results in an B<EINVAL> error."
1657 msgstr ""
1658 "POSIX.1-2001 では B<setitimer>()  は I<tv_usec> の値が 0 から 999999 の範囲外"
1659 "である場合には失敗するべきだとしている。 しかし、2.6.21 以前のカーネルの "
1660 "Linux ではエラーにならず、 対応する秒数の分だけそのタイマーの秒の値が暗黙に調"
1661 "整される。 カーネル 2.6.22 以降では、この標準非準拠の動作は修正され、 "
1662 "I<tv_usec> の値が不適切な場合には B<EINVAL> エラーとなる。"
1663
1664 #. type: Plain text
1665 #: build/C/man2/getitimer.2:253
1666 msgid ""
1667 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1668 "B<timerfd_create>(2), B<time>(7)"
1669 msgstr ""
1670 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1671 "B<timerfd_create>(2), B<time>(7)"
1672
1673 #. type: TH
1674 #: build/C/man3/gsignal.3:27
1675 #, no-wrap
1676 msgid "GSIGNAL"
1677 msgstr "GSIGNAL"
1678
1679 #. type: TH
1680 #: build/C/man3/gsignal.3:27
1681 #, no-wrap
1682 msgid "2007-07-26"
1683 msgstr "2007-07-26"
1684
1685 #. type: Plain text
1686 #: build/C/man3/gsignal.3:30
1687 msgid "gsignal, ssignal - software signal facility"
1688 msgstr "gsignal, ssignal - ソフトウェアシグナル機能"
1689
1690 #. type: Plain text
1691 #: build/C/man3/gsignal.3:33 build/C/man2/kill.2:52 build/C/man3/psignal.3:36
1692 #: build/C/man3/raise.3:35 build/C/man2/sigaction.2:55
1693 #: build/C/man3/siginterrupt.3:37 build/C/man3/sigpause.3:31
1694 #: build/C/man3/sigwait.3:32 build/C/man2/sigwaitinfo.2:31
1695 #, no-wrap
1696 msgid "B<#include E<lt>signal.hE<gt>>\n"
1697 msgstr "B<#include E<lt>signal.hE<gt>>\n"
1698
1699 #. type: Plain text
1700 #: build/C/man3/gsignal.3:35
1701 #, no-wrap
1702 msgid "B<typedef void (*sighandler_t)(int);>\n"
1703 msgstr "B<typedef void (*sighandler_t)(int);>\n"
1704
1705 #. type: Plain text
1706 #: build/C/man3/gsignal.3:37
1707 #, no-wrap
1708 msgid "B<int gsignal(int >I<signum>B<);>\n"
1709 msgstr "B<int gsignal(int >I<signum>B<);>\n"
1710
1711 #. type: Plain text
1712 #: build/C/man3/gsignal.3:39
1713 #, no-wrap
1714 msgid "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1715 msgstr "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1716
1717 #. type: Plain text
1718 #: build/C/man3/gsignal.3:44 build/C/man2/kill.2:59 build/C/man2/killpg.2:53
1719 #: build/C/man3/profil.3:42 build/C/man3/psignal.3:46
1720 #: build/C/man2/sigaction.2:63 build/C/man2/sigaltstack.2:38
1721 #: build/C/man3/siginterrupt.3:44 build/C/man2/sigpending.2:40
1722 #: build/C/man2/sigprocmask.2:41 build/C/man3/sigqueue.3:39
1723 #: build/C/man3/sigset.3:45 build/C/man3/sigsetops.3:51
1724 #: build/C/man2/sigsuspend.2:40 build/C/man3/sigvec.3:45
1725 #: build/C/man3/sigwait.3:39 build/C/man2/sigwaitinfo.2:41
1726 #: build/C/man2/timer_create.2:50 build/C/man2/timer_delete.2:41
1727 #: build/C/man2/timer_getoverrun.2:41 build/C/man2/timer_settime.2:45
1728 #: build/C/man2/wait.2:69 build/C/man2/wait4.2:53
1729 msgid ""
1730 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
1731 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7)  参照):"
1732
1733 #. type: Plain text
1734 #: build/C/man3/gsignal.3:49
1735 msgid "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1736 msgstr "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1737
1738 #. type: Plain text
1739 #: build/C/man3/gsignal.3:57
1740 msgid ""
1741 "Don't use these functions under Linux.  Due to a historical mistake, under "
1742 "Linux these functions are aliases for B<raise>(3)  and B<signal>(2), "
1743 "respectively."
1744 msgstr ""
1745 "Linux ではこれらの関数を使用しないこと。 過去に間違いがあり、Linux では "
1746 "B<gsignal>()  と B<ssignal>()  はそれぞれ B<raise>(3)  と B<signal>(2)  の別"
1747 "名になっている。"
1748
1749 #. type: Plain text
1750 #: build/C/man3/gsignal.3:95
1751 msgid ""
1752 "Elsewhere, on System V-like systems, these functions implement software "
1753 "signaling, entirely independent of the classical B<signal>(2)  and "
1754 "B<kill>(2)  functions.  The function B<ssignal>()  defines the action to "
1755 "take when the software signal with number I<signum> is raised using the "
1756 "function B<gsignal>(), and returns the previous such action or B<SIG_DFL>.  "
1757 "The function B<gsignal>()  does the following: if no action (or the action "
1758 "B<SIG_DFL>)  was specified for I<signum>, then it does nothing and returns "
1759 "0.  If the action B<SIG_IGN> was specified for I<signum>, then it does "
1760 "nothing and returns 1.  Otherwise, it resets the action to B<SIG_DFL> and "
1761 "calls the action function with argument I<signum>, and returns the value "
1762 "returned by that function.  The range of possible values I<signum> varies "
1763 "(often 1-15 or 1-17)."
1764 msgstr ""
1765 "一方、System V 風のシステムでは、これらの関数で、 従来の B<signal>(2)  や "
1766 "B<kill>(2)  の関数群とは完全に独立な、 ソフトウェアシグナリングを実現してい"
1767 "る。 B<ssignal>()  関数は、番号 I<signum> のソフトウェアシグナルが "
1768 "B<gsignal>()  関数を使って発生された時にとるべきアクションを定義する。 "
1769 "B<gsignal>()  の返り値は、一つ前に指定されていたアクション、もしくは "
1770 "B<SIG_DFL> である。 B<gsignal>()  は以下のような動作を行う: I<signum> に対し"
1771 "てアクションが指定されていないか、アクション B<SIG_DFL> が指定されていた場"
1772 "合、何もせずに 0 を返す。 I<signum> に対して アクション B<SIG_IGN> が指定され"
1773 "ていた場合、何もせずに 1 を返す。 それ以外の場合、アクションを B<SIG_DFL> に"
1774 "リセットし、引き数に I<signum> を指定してアクション関数を呼び出して、アクショ"
1775 "ン関数の返り値を返す。 I<signum> がとり得る値の範囲は実装により異なる (多くの"
1776 "場合 1〜15 か 1〜17 である)。"
1777
1778 #. type: Plain text
1779 #: build/C/man3/gsignal.3:103
1780 msgid ""
1781 "These functions are available under AIX, DG/UX, HP-UX, SCO, Solaris, Tru64.  "
1782 "They are called obsolete under most of these systems, and are broken under "
1783 "Linux libc and glibc.  Some systems also have B<gsignal_r>()  and "
1784 "B<ssignal_r>()."
1785 msgstr ""
1786 "これらの関数は、AIX, DG/UX, HP-UX, SCO, Solaris, Tru64 で使用可能である。 こ"
1787 "れらのシステムのほとんどで廃止されたことになっており、 Linux の libc および "
1788 "glibc では正しく実装されていない。 B<gsignal_r>()  と B<ssignal_r>()  が実装"
1789 "されているシステムもある。"
1790
1791 #. type: Plain text
1792 #: build/C/man3/gsignal.3:107
1793 msgid "B<kill>(2), B<signal>(2), B<raise>(3)"
1794 msgstr "B<kill>(2), B<signal>(2), B<raise>(3)"
1795
1796 #. type: TH
1797 #: build/C/man2/kill.2:44
1798 #, no-wrap
1799 msgid "KILL"
1800 msgstr "KILL"
1801
1802 #. type: TH
1803 #: build/C/man2/kill.2:44
1804 #, no-wrap
1805 msgid "2013-09-17"
1806 msgstr "2013-09-17"
1807
1808 #. type: Plain text
1809 #: build/C/man2/kill.2:47
1810 msgid "kill - send signal to a process"
1811 msgstr "kill - プロセスにシグナルを送る"
1812
1813 #. type: Plain text
1814 #: build/C/man2/kill.2:50
1815 #, no-wrap
1816 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
1817 msgstr "B<#include E<lt>sys/types.hE<gt>>\n"
1818
1819 #. type: Plain text
1820 #: build/C/man2/kill.2:54
1821 #, no-wrap
1822 msgid "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1823 msgstr "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1824
1825 #. type: Plain text
1826 #: build/C/man2/kill.2:64
1827 msgid ""
1828 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1829 msgstr ""
1830 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1831
1832 #. type: Plain text
1833 #: build/C/man2/kill.2:70
1834 msgid ""
1835 "The B<kill>()  system call can be used to send any signal to any process "
1836 "group or process."
1837 msgstr ""
1838 "システムコールの B<kill>()  は、任意のプロセスグループもしくはプロセスにシグ"
1839 "ナルを 送るのに使われる。"
1840
1841 #. type: Plain text
1842 #: build/C/man2/kill.2:73
1843 msgid ""
1844 "If I<pid> is positive, then signal I<sig> is sent to the process with the ID "
1845 "specified by I<pid>."
1846 msgstr ""
1847 "I<pid> に正の値を指定した場合、シグナル I<sig> が I<pid> で指定された ID を持"
1848 "つプロセスに送られる。"
1849
1850 #. type: Plain text
1851 #: build/C/man2/kill.2:76
1852 msgid ""
1853 "If I<pid> equals 0, then I<sig> is sent to every process in the process "
1854 "group of the calling process."
1855 msgstr ""
1856 "I<pid> に 0 を指定した場合、 呼び出し元のプロセスのプロセスグループに属するす"
1857 "べてのプロセスに I<sig> で指定したシグナルが送られる。"
1858
1859 #. type: Plain text
1860 #: build/C/man2/kill.2:80
1861 msgid ""
1862 "If I<pid> equals -1, then I<sig> is sent to every process for which the "
1863 "calling process has permission to send signals, except for process 1 "
1864 "(I<init>), but see below."
1865 msgstr ""
1866 "I<pid> に -1 を指定した場合、 I<sig> で指定したシグナルが、 呼び出し元のプロ"
1867 "セスがシグナルを送る許可を持つ全てのプロセスに 送られる。但し、プロセス番号 "
1868 "1 (I<init>) へはシグナルは送られない。 以下の関連部分も参照のこと。"
1869
1870 #. type: Plain text
1871 #: build/C/man2/kill.2:83
1872 msgid ""
1873 "If I<pid> is less than -1, then I<sig> is sent to every process in the "
1874 "process group whose ID is I<-pid>."
1875 msgstr ""
1876 "I<pid> に -1 より小さな値を指定した場合、 ID が I<-pid> のプロセスグループに"
1877 "属するすべてのプロセスに I<sig> で指定したシグナルが送られる。"
1878
1879 #. type: Plain text
1880 #: build/C/man2/kill.2:88
1881 msgid ""
1882 "If I<sig> is 0, then no signal is sent, but error checking is still "
1883 "performed; this can be used to check for the existence of a process ID or "
1884 "process group ID."
1885 msgstr ""
1886 "I<sig> に 0 を指定した場合、シグナルは送られないが、 エラーのチェックは行われ"
1887 "る。これを使って、プロセス ID や プロセスグループ ID の存在確認を行うことがで"
1888 "きる。"
1889
1890 #. type: Plain text
1891 #: build/C/man2/kill.2:100
1892 msgid ""
1893 "For a process to have permission to send a signal it must either be "
1894 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
1895 "effective user ID of the sending process must equal the real or saved set-"
1896 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
1897 "the sending and receiving processes belong to the same session.  "
1898 "(Historically, the rules were different; see NOTES.)"
1899 msgstr ""
1900 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
1901 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
1902 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
1903 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
1904 "プロセスが 同じセッションに属していれば十分である。 (過去には、 ルールは違っ"
1905 "ていた; 「注意」の節を参照。)"
1906
1907 #. type: Plain text
1908 #: build/C/man2/kill.2:105
1909 msgid ""
1910 "On success (at least one signal was sent), zero is returned.  On error, -1 "
1911 "is returned, and I<errno> is set appropriately."
1912 msgstr ""
1913 "成功した場合 (少なくとも一つのシグナルが送信された場合)、 0 が返される。エ"
1914 "ラーの場合 -1 が返され、 I<errno> が適切に設定される。"
1915
1916 #. type: Plain text
1917 #: build/C/man2/kill.2:109
1918 msgid "An invalid signal was specified."
1919 msgstr "無効なシグナルを指定した。"
1920
1921 #. type: TP
1922 #: build/C/man2/kill.2:109 build/C/man2/killpg.2:99 build/C/man2/prctl.2:1098
1923 #: build/C/man2/prctl.2:1110 build/C/man2/prctl.2:1120
1924 #: build/C/man2/prctl.2:1128 build/C/man2/rt_sigqueueinfo.2:148
1925 #: build/C/man2/sigaltstack.2:153 build/C/man3/sigqueue.3:102
1926 #: build/C/man2/tkill.2:96
1927 #, no-wrap
1928 msgid "B<EPERM>"
1929 msgstr "B<EPERM>"
1930
1931 #. type: Plain text
1932 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103
1933 msgid ""
1934 "The process does not have permission to send the signal to any of the target "
1935 "processes."
1936 msgstr ""
1937 "プロセスが、受信するプロセスのいずれに対しても シグナルを送る許可を持っていな"
1938 "い。"
1939
1940 #. type: TP
1941 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103 build/C/man2/killpg.2:107
1942 #: build/C/man2/rt_sigqueueinfo.2:156 build/C/man3/sigqueue.3:108
1943 #: build/C/man2/tkill.2:101
1944 #, no-wrap
1945 msgid "B<ESRCH>"
1946 msgstr "B<ESRCH>"
1947
1948 #. type: Plain text
1949 #: build/C/man2/kill.2:121
1950 msgid ""
1951 "The pid or process group does not exist.  Note that an existing process "
1952 "might be a zombie, a process which already committed termination, but has "
1953 "not yet been B<wait>(2)ed for."
1954 msgstr ""
1955 "指定したプロセスまたはプロセスグループが存在しなかった。 ゾンビプロセスは存在"
1956 "するプロセスとしてみなされる。 ゾンビプロセスとはすでに処理は終了しているが、"
1957 "親プロセスによる B<wait>()  処理が行われていないプロセスのことである。"
1958
1959 #. type: Plain text
1960 #: build/C/man2/kill.2:123 build/C/man2/pause.2:59 build/C/man2/wait.2:425
1961 msgid "SVr4, 4.3BSD, POSIX.1-2001."
1962 msgstr "SVr4, 4.3BSD, POSIX.1-2001."
1963
1964 #. type: Plain text
1965 #: build/C/man2/kill.2:131
1966 msgid ""
1967 "The only signals that can be sent to process ID 1, the I<init> process, are "
1968 "those for which I<init> has explicitly installed signal handlers.  This is "
1969 "done to assure the system is not brought down accidentally."
1970 msgstr ""
1971 "プロセス番号 1 の I<init> プロセスに送ることができるシグナルは、 I<init> が明"
1972 "示的にシグナルハンドラーを設定したシグナルだけである。 こうなっているのは、"
1973 "誤ってシステムをダウンさせないようにするためである。"
1974
1975 #. type: Plain text
1976 #: build/C/man2/kill.2:137
1977 msgid ""
1978 "POSIX.1-2001 requires that I<kill(-1,sig)> send I<sig> to all processes that "
1979 "the calling process may send signals to, except possibly for some "
1980 "implementation-defined system processes.  Linux allows a process to signal "
1981 "itself, but on Linux the call I<kill(-1,sig)> does not signal the calling "
1982 "process."
1983 msgstr ""
1984 "POSIX.1-2001 では、 I<kill(-1,sig)> が 呼び出し元のプロセスがシグナルを送るこ"
1985 "とが出来るプロセス全てに I<sig> を送ることを要求している。 但し、システム実装"
1986 "時に定められたシステムプロセスは シグナルの送信対象から除外される。 Linux で"
1987 "は、プロセスが自分自身にシグナルを送れるようになっているが、 Linux の "
1988 "I<kill(-1,sig)> は呼び出し元のプロセスにはシグナルを送らない。"
1989
1990 #. type: Plain text
1991 #: build/C/man2/kill.2:147
1992 msgid ""
1993 "POSIX.1-2001 requires that if a process sends a signal to itself, and the "
1994 "sending thread does not have the signal blocked, and no other thread has it "
1995 "unblocked or is waiting for it in B<sigwait>(3), at least one unblocked "
1996 "signal must be delivered to the sending thread before the B<kill>()  returns."
1997 msgstr ""
1998 "POSIX.1-2001 では以下の動作になることを要求している。 自分自身にシグナルを送"
1999 "ると、シグナルを送ったスレッドがそのシグナルをブロック しておらず、他のどのス"
2000 "レッドもそのシグナルを受ける状態にもなく B<sigwait>(3)  でそのシグナルを待っ"
2001 "てもいない場合、 B<kill>()  が返る前に少なくとも一つのブロックされていない シ"
2002 "グナルがシグナルを送ったスレッドに配送されなければならない。"
2003
2004 #. type: SS
2005 #: build/C/man2/kill.2:147 build/C/man3/sigpause.3:82 build/C/man2/wait.2:480
2006 #, no-wrap
2007 msgid "Linux notes"
2008 msgstr "Linux での注意"
2009
2010 #.  In the 0.* kernels things chopped and changed quite
2011 #.  a bit - MTK, 24 Jul 02
2012 #. type: Plain text
2013 #: build/C/man2/kill.2:161
2014 msgid ""
2015 "Across different kernel versions, Linux has enforced different rules for the "
2016 "permissions required for an unprivileged process to send a signal to another "
2017 "process.  In kernels 1.0 to 1.2.2, a signal could be sent if the effective "
2018 "user ID of the sender matched effective user ID of the target, or the real "
2019 "user ID of the sender matched the real user ID of the target.  From kernel "
2020 "1.2.3 until 1.3.77, a signal could be sent if the effective user ID of the "
2021 "sender matched either the real or effective user ID of the target.  The "
2022 "current rules, which conform to POSIX.1-2001, were adopted in kernel 1.3.78."
2023 msgstr ""
2024 "Linux では、特権のないプロセスが他のプロセスにシグナルを送信するために必要な"
2025 "権限についてのルールが、カーネルバージョンにより違っている。 カーネル 1.0 か"
2026 "ら 1.2.2 では、送信側の実効ユーザー ID が送信対象の実効ユーザー ID と一致する"
2027 "か、 送信側の実ユーザー ID が送信対象の実ユーザー ID と一致すれば、 シグナル"
2028 "を送信できた。 カーネル 1.2.3 から 1.3.77では、送信側の実効ユーザー ID が送信"
2029 "対象の実ユーザー ID か実効ユーザー ID のいずれかと一致すればシグナルを送信で"
2030 "きた。 現在のルールは、POSIX.1-2001 に準拠しており、カーネル 1.3.78 以降で 適"
2031 "用されている。"
2032
2033 #. type: Plain text
2034 #: build/C/man2/kill.2:171
2035 msgid ""
2036 "In 2.6 kernels up to and including 2.6.7, there was a bug that meant that "
2037 "when sending signals to a process group, B<kill>()  failed with the error "
2038 "B<EPERM> if the caller did not have permission to send the signal to I<any> "
2039 "(rather than I<all>) of the members of the process group.  Notwithstanding "
2040 "this error return, the signal was still delivered to all of the processes "
2041 "for which the caller had permission to signal."
2042 msgstr ""
2043 "バージョン 2.6.7 以前の 2.6 系のカーネルには、 プロセスグループにシグナルを"
2044 "送ったときに、 呼び出し元のプロセスがプロセスグループの (全メンバーではなく) "
2045 "一部のメンバーに対してのみシグナルを送る許可を持っていない場合に、 "
2046 "B<kill>()  がエラー B<EPERM> で失敗するというバグがある。 このエラーが返るに"
2047 "もかかわらず、そのシグナルは呼び出し元が シグナルを送る許可を持つ全てのプロセ"
2048 "スへ送られる。"
2049
2050 #. type: Plain text
2051 #: build/C/man2/kill.2:181
2052 msgid ""
2053 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), "
2054 "B<sigqueue>(3), B<capabilities>(7), B<credentials>(7), B<signal>(7)"
2055 msgstr ""
2056 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), "
2057 "B<sigqueue>(3), B<credentials>(7), B<capabilities>(7), B<signal>(7)"
2058
2059 #. type: TH
2060 #: build/C/man2/killpg.2:42
2061 #, no-wrap
2062 msgid "KILLPG"
2063 msgstr "KILLPG"
2064
2065 #. type: TH
2066 #: build/C/man2/killpg.2:42 build/C/man3/sigset.3:26
2067 #, no-wrap
2068 msgid "2010-09-20"
2069 msgstr "2010-09-20"
2070
2071 #. type: Plain text
2072 #: build/C/man2/killpg.2:45
2073 msgid "killpg - send signal to a process group"
2074 msgstr "killpg - シグナルをプロセスグループに送る"
2075
2076 #. type: Plain text
2077 #: build/C/man2/killpg.2:49
2078 msgid "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2079 msgstr "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2080
2081 #. type: TP
2082 #: build/C/man2/killpg.2:55
2083 #, no-wrap
2084 msgid "B<killpg>():"
2085 msgstr "B<killpg>():"
2086
2087 #. type: Plain text
2088 #: build/C/man2/killpg.2:59 build/C/man2/sigaltstack.2:46
2089 #: build/C/man3/siginterrupt.3:51 build/C/man2/wait4.2:60
2090 msgid ""
2091 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2092 "_XOPEN_SOURCE_EXTENDED"
2093 msgstr ""
2094 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2095 "_XOPEN_SOURCE_EXTENDED"
2096
2097 #. type: Plain text
2098 #: build/C/man2/killpg.2:69
2099 msgid ""
2100 "B<killpg>()  sends the signal I<sig> to the process group I<pgrp>.  See "
2101 "B<signal>(7)  for a list of signals."
2102 msgstr ""
2103 "B<killpg>()  は I<sig> で指定したシグナルを I<pgrp> で指定したプロセスグルー"
2104 "プに送る。 シグナルの定義の一覧は B<signal>(7)  を参照のこと。"
2105
2106 #. type: Plain text
2107 #: build/C/man2/killpg.2:78
2108 msgid ""
2109 "If I<pgrp> is 0, B<killpg>()  sends the signal to the calling process's "
2110 "process group.  (POSIX says: If I<pgrp> is less than or equal to 1, the "
2111 "behavior is undefined.)"
2112 msgstr ""
2113 "引き数 I<pgrp> に 0 を指定した場合には B<killpg>()  は呼び出し元のプロセスが"
2114 "属しているプロセスグループに対してシグナルを送る。 (POSIX では以下のように記"
2115 "述されている: I<pgrp> が 1 以下である場合、動作は未定義である。)"
2116
2117 #. type: Plain text
2118 #: build/C/man2/killpg.2:89
2119 msgid ""
2120 "For a process to have permission to send a signal it must either be "
2121 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
2122 "effective user ID of the sending process must equal the real or saved set-"
2123 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
2124 "the sending and receiving processes belong to the same session."
2125 msgstr ""
2126 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
2127 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
2128 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
2129 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
2130 "プロセスが 同じセッションに属していれば十分である。"
2131
2132 #. type: Plain text
2133 #: build/C/man2/killpg.2:99
2134 msgid "I<sig> is not a valid signal number."
2135 msgstr "I<sig> で指定された値は無効なシグナル番号である。"
2136
2137 #. type: Plain text
2138 #: build/C/man2/killpg.2:107
2139 msgid "No process can be found in the process group specified by I<pgrp>."
2140 msgstr "I<pgrp> で指定されたプロセスグループに属するプロセスが存在しなかった。"
2141
2142 #. type: Plain text
2143 #: build/C/man2/killpg.2:111
2144 msgid ""
2145 "The process group was given as 0 but the sending process does not have a "
2146 "process group."
2147 msgstr ""
2148 "プロセスグループとして 0 が指定されたが、送信プロセスは プロセスグループを"
2149 "持っていない。"
2150
2151 #. type: Plain text
2152 #: build/C/man2/killpg.2:115
2153 msgid ""
2154 "SVr4, 4.4BSD (the B<killpg>()  function call first appeared in 4BSD), "
2155 "POSIX.1-2001."
2156 msgstr "SVr4, 4.4BSD (B<killpg>()  は 4BSD で初めて追加された), POSIX.1-2001。"
2157
2158 #. type: Plain text
2159 #: build/C/man2/killpg.2:129
2160 msgid ""
2161 "There are various differences between the permission checking in BSD-type "
2162 "systems and System\\ V-type systems.  See the POSIX rationale for "
2163 "B<kill>().  A difference not mentioned by POSIX concerns the return value "
2164 "B<EPERM>: BSD documents that no signal is sent and B<EPERM> returned when "
2165 "the permission check failed for at least one target process, while POSIX "
2166 "documents B<EPERM> only when the permission check failed for all target "
2167 "processes."
2168 msgstr ""
2169 "BSD 系システムと System\\ V 系システムでは、 許可のチェックに様々な違いがあ"
2170 "る。 B<kill>(2)  についての POSIX の原理 (rationale) を参照すること。 POSIX "
2171 "で記述されていない違いとしては、返り値 B<EPERM> がある。 BSD では「送信先プロ"
2172 "セスの許可のチェックが 1 つでも失敗した場合は、 シグナルが送信されず、 "
2173 "B<EPERM> が返される」と記述されている。 POSIX では「送信先プロセスの許可の"
2174 "チェックが全て失敗した場合にのみ、 B<EPERM> が返される」と記述されている。"
2175
2176 #. type: Plain text
2177 #: build/C/man2/killpg.2:134
2178 msgid ""
2179 "On Linux, B<killpg>()  is implemented as a library function that makes the "
2180 "call I<kill(-pgrp,\\ sig)>."
2181 msgstr ""
2182 "Linux では、 B<killpg>()  はライブラリ関数として実装されており、 I<kill(-"
2183 "pgrp,\\ sig)> の呼び出しが行われる。"
2184
2185 #. type: Plain text
2186 #: build/C/man2/killpg.2:140
2187 msgid ""
2188 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<capabilities>(7), "
2189 "B<credentials>(7)"
2190 msgstr ""
2191 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<credentials>(7), "
2192 "B<capabilities>(7)"
2193
2194 #. type: TH
2195 #: build/C/man2/pause.2:30
2196 #, no-wrap
2197 msgid "PAUSE"
2198 msgstr "PAUSE"
2199
2200 #. type: TH
2201 #: build/C/man2/pause.2:30
2202 #, no-wrap
2203 msgid "2008-10-06"
2204 msgstr "2008-10-06"
2205
2206 #. type: Plain text
2207 #: build/C/man2/pause.2:33
2208 msgid "pause - wait for signal"
2209 msgstr "pause - シグナルを待つ"
2210
2211 #. type: Plain text
2212 #: build/C/man2/pause.2:35
2213 msgid "B<#include E<lt>unistd.hE<gt>>"
2214 msgstr "B<#include E<lt>unistd.hE<gt>>"
2215
2216 #. type: Plain text
2217 #: build/C/man2/pause.2:37
2218 msgid "B<int pause(void);>"
2219 msgstr "B<int pause(void);>"
2220
2221 #. type: Plain text
2222 #: build/C/man2/pause.2:42
2223 msgid ""
2224 "B<pause>()  causes the calling process (or thread) to sleep until a signal "
2225 "is delivered that either terminates the process or causes the invocation of "
2226 "a signal-catching function."
2227 msgstr ""
2228 "B<pause>()  は、呼び出したプロセス (またはスレッド) を、 そのプロセスを終了さ"
2229 "せたり、シグナル捕捉関数が起動されるような シグナルが配送されるまで、スリープ"
2230 "させる。"
2231
2232 #.  .BR ERESTARTNOHAND .
2233 #. type: Plain text
2234 #: build/C/man2/pause.2:53
2235 msgid ""
2236 "B<pause>()  returns only when a signal was caught and the signal-catching "
2237 "function returned.  In this case, B<pause>()  returns -1, and I<errno> is "
2238 "set to B<EINTR>."
2239 msgstr ""
2240 "B<pause>()  が返るのは、シグナルを受け取りシグナル捕獲関数から返った場合だけ"
2241 "である。 この場合は B<pause>()  は -1 を返し、 I<errno> に B<EINTR> が設定さ"
2242 "れる。"
2243
2244 #. type: TP
2245 #: build/C/man2/pause.2:54 build/C/man2/sigsuspend.2:81
2246 #: build/C/man2/sigwaitinfo.2:123 build/C/man2/wait.2:411
2247 #, no-wrap
2248 msgid "B<EINTR>"
2249 msgstr "B<EINTR>"
2250
2251 #. type: Plain text
2252 #: build/C/man2/pause.2:57
2253 msgid "a signal was caught and the signal-catching function returned."
2254 msgstr "シグナルを受け取り、シグナル捕獲関数から帰ってきた。"
2255
2256 #. type: Plain text
2257 #: build/C/man2/pause.2:64
2258 msgid "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2259 msgstr "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2260
2261 #. type: TH
2262 #: build/C/man2/prctl.2:54
2263 #, no-wrap
2264 msgid "PRCTL"
2265 msgstr "PRCTL"
2266
2267 #. type: TH
2268 #: build/C/man2/prctl.2:54 build/C/man7/signal.7:46
2269 #, fuzzy, no-wrap
2270 #| msgid "2015-01-22"
2271 msgid "2015-02-01"
2272 msgstr "2015-01-22"
2273
2274 #. type: Plain text
2275 #: build/C/man2/prctl.2:57
2276 msgid "prctl - operations on a process"
2277 msgstr "prctl - プロセスの操作を行なう"
2278
2279 #. type: Plain text
2280 #: build/C/man2/prctl.2:60
2281 #, no-wrap
2282 msgid "B<#include E<lt>sys/prctl.hE<gt>>\n"
2283 msgstr "B<#include E<lt>sys/prctl.hE<gt>>\n"
2284
2285 #. type: Plain text
2286 #: build/C/man2/prctl.2:63
2287 #, no-wrap
2288 msgid ""
2289 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2290 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2291 msgstr ""
2292 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2293 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2294
2295 #. type: Plain text
2296 #: build/C/man2/prctl.2:70
2297 msgid ""
2298 "B<prctl>()  is called with a first argument describing what to do (with "
2299 "values defined in I<E<lt>linux/prctl.hE<gt>>), and further arguments with a "
2300 "significance depending on the first one.  The first argument can be:"
2301 msgstr ""
2302 "B<prctl>()  の動作は最初の引き数によって決定される (この値は I<E<lt>linux/"
2303 "prctl.hE<gt>> に定義されている)。 残りの引き数は最初の引き数によって変化す"
2304 "る。 一番目の引き数として以下のものを指定できる:"
2305
2306 #. type: TP
2307 #: build/C/man2/prctl.2:70
2308 #, no-wrap
2309 msgid "B<PR_CAPBSET_READ> (since Linux 2.6.25)"
2310 msgstr "B<PR_CAPBSET_READ> (Linux 2.6.25 以降)"
2311
2312 #. type: Plain text
2313 #: build/C/man2/prctl.2:82
2314 msgid ""
2315 "Return (as the function result) 1 if the capability specified in I<arg2> is "
2316 "in the calling thread's capability bounding set, or 0 if it is not.  (The "
2317 "capability constants are defined in I<E<lt>linux/capability.hE<gt>>.)  The "
2318 "capability bounding set dictates whether the process can receive the "
2319 "capability through a file's permitted capability set on a subsequent call to "
2320 "B<execve>(2)."
2321 msgstr ""
2322 "で指定されたケーパビリティが呼び出したスレッドのケーパビリティ バインディング"
2323 "セット (capability bounding set) に含まれている場合、 (関数の結果として) 1 を"
2324 "返し、そうでない場合 0 を返す (ケーパビリティ定数は I<E<lt>linux/capability."
2325 "hE<gt>> で定義されている)。 ケーパビリティバウンディングセットは、 "
2326 "B<execve>(2)  を呼び出した際に、ファイルの許可 (permitted) ケーパビリティの中"
2327 "で そのプロセスが獲得できるケーパビリティを指示するものである。"
2328
2329 #. type: Plain text
2330 #: build/C/man2/prctl.2:87
2331 msgid ""
2332 "If the capability specified in I<arg2> is not valid, then the call fails "
2333 "with the error B<EINVAL>."
2334 msgstr ""
2335 "I<arg2> に指定されたケーパビリティが有効でない場合、 呼び出しはエラー "
2336 "B<EINVAL> で失敗する。"
2337
2338 #. type: TP
2339 #: build/C/man2/prctl.2:87
2340 #, no-wrap
2341 msgid "B<PR_CAPBSET_DROP> (since Linux 2.6.25)"
2342 msgstr "B<PR_CAPBSET_DROP> (Linux 2.6.25 以降)"
2343
2344 #. type: Plain text
2345 #: build/C/man2/prctl.2:96
2346 msgid ""
2347 "If the calling thread has the B<CAP_SETPCAP> capability, then drop the "
2348 "capability specified by I<arg2> from the calling thread's capability "
2349 "bounding set.  Any children of the calling thread will inherit the newly "
2350 "reduced bounding set."
2351 msgstr ""
2352 "呼び出したスレッドがケーパビリティ B<CAP_SETPCAP> を持っている場合、 呼び出し"
2353 "たスレッドのケーパビリティバウンディングセットから I<arg2> で指定されたケーパ"
2354 "ビリティを外す。 呼び出したスレッドの子プロセスは変更後のバウンディングセット"
2355 "を 継承する。"
2356
2357 #. type: Plain text
2358 #: build/C/man2/prctl.2:108
2359 msgid ""
2360 "The call fails with the error: B<EPERM> if the calling thread does not have "
2361 "the B<CAP_SETPCAP>; B<EINVAL> if I<arg2> does not represent a valid "
2362 "capability; or B<EINVAL> if file capabilities are not enabled in the kernel, "
2363 "in which case bounding sets are not supported."
2364 msgstr ""
2365 "呼び出したスレッドが B<CAP_SETPCAP> を持っていない場合、呼び出しはエラー "
2366 "B<EPERM> で失敗する。 I<arg2> に指定されたケーパビリティが有効でない場合、 "
2367 "B<EINVAL> で失敗する。 ファイルケーパビリティがカーネルで有効になっていない場"
2368 "合 (この場合にはバウンディングセットがサポートされない)、 B<EINVAL> で失敗す"
2369 "る。"
2370
2371 #. type: TP
2372 #: build/C/man2/prctl.2:108
2373 #, no-wrap
2374 msgid "B<PR_SET_CHILD_SUBREAPER> (since Linux 3.4)"
2375 msgstr "B<PR_SET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2376
2377 #.  commit ebec18a6d3aa1e7d84aab16225e87fd25170ec2b
2378 #. type: Plain text
2379 #: build/C/man2/prctl.2:133
2380 msgid ""
2381 "If I<arg2> is nonzero, set the \"child subreaper\" attribute of the calling "
2382 "process; if I<arg2> is zero, unset the attribute.  When a process is marked "
2383 "as a child subreaper, all of the children that it creates, and their "
2384 "descendants, will be marked as having a subreaper.  In effect, a subreaper "
2385 "fulfills the role of B<init>(1)  for its descendant processes.  Upon "
2386 "termination of a process that is orphaned (i.e., its immediate parent has "
2387 "already terminated)  and marked as having a subreaper, the nearest still "
2388 "living ancestor subreaper will receive a B<SIGCHLD> signal and be able to "
2389 "B<wait>(2)  on the process to discover its termination status."
2390 msgstr ""
2391 "I<arg2> が 0 以外の場合、 呼び出し元プロセスの \"child subreaper\" 属性をセッ"
2392 "トする。 I<arg2> が 0 の場合、 この属性をクリアする。 プロセスが child "
2393 "subreaper のマークが付いている場合、 このプロセスの子プロセスやその子孫にはす"
2394 "べて subreaper のマークが付与される。 subreaper は事実上その子孫のプロセスに"
2395 "対して B<init>(1) の役割を果たす。 孤児になったプロセス (直接の親プロセスがす"
2396 "でに終了しているプロセス) が終了した際、 そのプロセスに subreaper のマークが"
2397 "付いていると、 最も近い存在する先祖の subreaper プロセスに B<SIGCHLD> シグナ"
2398 "ルが送られ、 そのプロセスの B<wait> を使って終了ステータスを知ることができ"
2399 "る。"
2400
2401 #. type: TP
2402 #: build/C/man2/prctl.2:133
2403 #, no-wrap
2404 msgid "B<PR_GET_CHILD_SUBREAPER> (since Linux 3.4)"
2405 msgstr "B<PR_GET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2406
2407 #. type: Plain text
2408 #: build/C/man2/prctl.2:138
2409 msgid ""
2410 "Return the \"child subreaper\" setting of the caller, in the location "
2411 "pointed to by I<(int\\ *) arg2>."
2412 msgstr ""
2413 "呼び出し元の \"child subreaper\" 設定を、 I<(int\\ *) arg2> が指す場所に返"
2414 "す。"
2415
2416 #. type: TP
2417 #: build/C/man2/prctl.2:138
2418 #, no-wrap
2419 msgid "B<PR_SET_DUMPABLE> (since Linux 2.3.20)"
2420 msgstr "B<PR_SET_DUMPABLE> (Linux 2.3.20 以降)"
2421
2422 #.  See http://marc.theaimsgroup.com/?l=linux-kernel&m=115270289030630&w=2
2423 #.  Subject:    Fix prctl privilege escalation (CVE-2006-2451)
2424 #.  From:       Marcel Holtmann <marcel () holtmann ! org>
2425 #.  Date:       2006-07-12 11:12:00
2426 #. type: Plain text
2427 #: build/C/man2/prctl.2:164
2428 msgid ""
2429 "Set the state of the flag determining whether core dumps are produced for "
2430 "the calling process upon delivery of a signal whose default behavior is to "
2431 "produce a core dump.  (Normally, this flag is set for a process by default, "
2432 "but it is cleared when a set-user-ID or set-group-ID program is executed and "
2433 "also by various system calls that manipulate process UIDs and GIDs).  In "
2434 "kernels up to and including 2.6.12, I<arg2> must be either 0 (process is not "
2435 "dumpable) or 1 (process is dumpable).  Between kernels 2.6.13 and 2.6.17, "
2436 "the value 2 was also permitted, which caused any binary which normally would "
2437 "not be dumped to be dumped readable by root only; for security reasons, this "
2438 "feature has been removed.  (See also the description of I</proc/sys/fs/"
2439 "suid_dumpable> in B<proc>(5).)  Processes that are not dumpable can not be "
2440 "attached via B<ptrace>(2)  B<PTRACE_ATTACH>."
2441 msgstr ""
2442 "(Linux 2.3.20 以降) デフォルトの振る舞いではコアダンプを引き起こすようなシグ"
2443 "ナルを受信したときに、呼び出し元のプロセスでコアダンプを生成するかどうかを決"
2444 "定するフラグを設定する (通常このフラグは、デフォルトではセットされているが、 "
2445 "set-user-ID あるいは set-group-ID プログラムが実行されたり、 さまざまなシステ"
2446 "ムコールによってプロセスの UID や GID が操作されたときに クリアされる)。 "
2447 "2.6.12 以前のカーネルでは、 I<arg2> は 0 (プロセスはダンプ不可) あるいは 1 "
2448 "(プロセスはダンプ可能) の どちらかでなければならない。 2.6.13 から 2.6.17 ま"
2449 "でのカーネルでは、値 2 も認められていた。 この値を指定すると、通常はダンプさ"
2450 "れないバイナリが root だけが 読み込み可能な形でダンプされた。 セキュリティ上"
2451 "の理由から、この機能は削除された (B<proc>(5) の I</proc/sys/fs/"
2452 "suid_dumpable> の説明も参照)。 ダンプ不可のプロセスを B<ptrace>(2) "
2453 "B<PTRACE_ATTACH> 経由で接続することはできない。"
2454
2455 #. type: TP
2456 #: build/C/man2/prctl.2:164
2457 #, no-wrap
2458 msgid "B<PR_GET_DUMPABLE> (since Linux 2.3.20)"
2459 msgstr "B<PR_GET_DUMPABLE> (Linux 2.3.20 以降)"
2460
2461 #.  Since Linux 2.6.13, the dumpable flag can have the value 2,
2462 #.  but in 2.6.13 PR_GET_DUMPABLE simply returns 1 if the dumpable
2463 #.  flags has a nonzero value.  This was fixed in 2.6.14.
2464 #. type: Plain text
2465 #: build/C/man2/prctl.2:171
2466 msgid ""
2467 "Return (as the function result) the current state of the calling process's "
2468 "dumpable flag."
2469 msgstr ""
2470 "(Linux 2.3.20 以降)  呼び出し元プロセスにおけるダンプ可能フラグの 現在の状態"
2471 "を (関数の結果として) 返す。"
2472
2473 #. type: TP
2474 #: build/C/man2/prctl.2:171
2475 #, no-wrap
2476 msgid "B<PR_SET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2477 msgstr "B<PR_SET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2478
2479 #.  Respectively 0, 1, 2
2480 #. type: Plain text
2481 #: build/C/man2/prctl.2:181
2482 msgid ""
2483 "Set the endian-ness of the calling process to the value given in I<arg2>, "
2484 "which should be one of the following: B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2485 "or B<PR_ENDIAN_PPC_LITTLE> (PowerPC pseudo little endian)."
2486 msgstr ""
2487 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<arg2> で指定された値"
2488 "に設定する。 指定できる値は B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2489 "B<PR_ENDIAN_PPC_LITTLE> (PowerPC 擬似リトルエンディアン)  のいずれか一つであ"
2490 "る。"
2491
2492 #. type: TP
2493 #: build/C/man2/prctl.2:181
2494 #, no-wrap
2495 msgid "B<PR_GET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2496 msgstr "B<PR_GET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2497
2498 #. type: Plain text
2499 #: build/C/man2/prctl.2:186
2500 msgid ""
2501 "Return the endian-ness of the calling process, in the location pointed to by "
2502 "I<(int\\ *) arg2>."
2503 msgstr ""
2504 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<(int\\ *) arg2> が指"
2505 "す場所に格納して返す。"
2506
2507 #. type: TP
2508 #: build/C/man2/prctl.2:186
2509 #, no-wrap
2510 msgid "B<PR_SET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2511 msgstr "B<PR_SET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2512
2513 #. type: Plain text
2514 #: build/C/man2/prctl.2:193
2515 msgid ""
2516 "Set floating-point emulation control bits to I<arg2>.  Pass "
2517 "B<PR_FPEMU_NOPRINT> to silently emulate fp operations accesses, or "
2518 "B<PR_FPEMU_SIGFPE> to not emulate fp operations and send B<SIGFPE> instead."
2519 msgstr ""
2520 "浮動小数点エミュレーション (floating-point emulation) 制御ビットを I<arg2> で"
2521 "指定された値に設定する。 指定できる値は B<PR_FPEMU_NOPRINT> (浮動小数点命令ア"
2522 "クセスを黙って エミュレートする) か B<PR_FPEMU_SIGFPE> (浮動小数点命令をエ"
2523 "ミュレートせず、 代わりに B<SIGFPE> を送る) である。"
2524
2525 #. type: TP
2526 #: build/C/man2/prctl.2:193
2527 #, no-wrap
2528 msgid "B<PR_GET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2529 msgstr "B<PR_GET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2530
2531 #. type: Plain text
2532 #: build/C/man2/prctl.2:198
2533 msgid ""
2534 "Return floating-point emulation control bits, in the location pointed to by "
2535 "I<(int\\ *) arg2>."
2536 msgstr ""
2537 "浮動小数点エミュレーション制御ビットの値を I<(int\\ *) arg2> が指す場所に格納"
2538 "して返す。"
2539
2540 #. type: TP
2541 #: build/C/man2/prctl.2:198
2542 #, no-wrap
2543 msgid "B<PR_SET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2544 msgstr "B<PR_SET_FPEXC> (Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2545
2546 #. type: Plain text
2547 #: build/C/man2/prctl.2:211
2548 msgid ""
2549 "Set floating-point exception mode to I<arg2>.  Pass B<PR_FP_EXC_SW_ENABLE> "
2550 "to use FPEXC for FP exception enables, B<PR_FP_EXC_DIV> for floating-point "
2551 "divide by zero, B<PR_FP_EXC_OVF> for floating-point overflow, "
2552 "B<PR_FP_EXC_UND> for floating-point underflow, B<PR_FP_EXC_RES> for floating-"
2553 "point inexact result, B<PR_FP_EXC_INV> for floating-point invalid operation, "
2554 "B<PR_FP_EXC_DISABLED> for FP exceptions disabled, B<PR_FP_EXC_NONRECOV> for "
2555 "async nonrecoverable exception mode, B<PR_FP_EXC_ASYNC> for async "
2556 "recoverable exception mode, B<PR_FP_EXC_PRECISE> for precise exception mode."
2557 msgstr ""
2558 "浮動小数点例外モード (floating-point exception mode) を I<arg2> で指定された"
2559 "値に設定する。 指定できるのは以下の値である: B<PR_FP_EXC_SW_ENABLE> (FPEXC で"
2560 "浮動小数点例外を有効にする)、 B<PR_FP_EXC_DIV> (0 除算)、 B<PR_FP_EXC_OVF> "
2561 "(オーバーフロー)、 B<PR_FP_EXC_UND> (アンダーフロー)、 B<PR_FP_EXC_RES> (不正"
2562 "確な結果 (inexact result))、 B<PR_FP_EXC_INV> (不正な命令 (invalid "
2563 "operation))、 B<PR_FP_EXC_DISABLED> (浮動小数点例外を無効にする)、 "
2564 "B<PR_FP_EXC_NONRECOV> (async nonrecoverable exception mode)、 "
2565 "B<PR_FP_EXC_ASYNC> (async recoverable exception mode)、 B<PR_FP_EXC_PRECISE> "
2566 "(precise exception mode)。"
2567
2568 #. type: TP
2569 #: build/C/man2/prctl.2:211
2570 #, no-wrap
2571 msgid "B<PR_GET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2572 msgstr "B<PR_GET_FPEXC>(Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2573
2574 #. type: Plain text
2575 #: build/C/man2/prctl.2:216
2576 msgid ""
2577 "Return floating-point exception mode, in the location pointed to by I<(int\\ "
2578 "*) arg2>."
2579 msgstr ""
2580 "浮動小数点例外モードの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
2581
2582 #. type: TP
2583 #: build/C/man2/prctl.2:216
2584 #, no-wrap
2585 msgid "B<PR_SET_KEEPCAPS> (since Linux 2.2.18)"
2586 msgstr "B<PR_SET_KEEPCAPS> (Linux 2.2.18 以降)"
2587
2588 #. type: Plain text
2589 #: build/C/man2/prctl.2:234
2590 msgid ""
2591 "Set the state of the thread's \"keep capabilities\" flag, which determines "
2592 "whether the threads's permitted capability set is cleared when a change is "
2593 "made to the threads's user IDs such that the threads's real UID, effective "
2594 "UID, and saved set-user-ID all become nonzero when at least one of them "
2595 "previously had the value 0.  By default, the permitted capability set is "
2596 "cleared when such a change is made; setting the \"keep capabilities\" flag "
2597 "prevents it from being cleared.  I<arg2> must be either 0 (permitted "
2598 "capabilities are cleared)  or 1 (permitted capabilities are kept).  (A "
2599 "thread's I<effective> capability set is always cleared when such a "
2600 "credential change is made, regardless of the setting of the \"keep "
2601 "capabilities\" flag.)  The \"keep capabilities\" value will be reset to 0 on "
2602 "subsequent calls to B<execve>(2)."
2603 msgstr ""
2604 "スレッドの「ケーパビリティ保持」フラグを設定する。 このフラグは、スレッドの"
2605 "実 UID、実効 UID、保存 set-user-ID のうち少なくとも一つが 0 であった状態か"
2606 "ら、これら全てが 0 以外に変更されたとき、 スレッドの許可ケーパビリティ集合が"
2607 "クリアされるかどうかを決定する。 デフォルトでは、このような変更が行われた場"
2608 "合、許可ケーパビリティセットはクリアされる。「ケーパビリティ保持」フラグを設"
2609 "定すると、許可ケーパビリティセットはクリアされなくなる。 I<arg2> は 0 (許可"
2610 "ケーパビリティをクリアする) か 1 (許可ケーパビリティを保持する) の どちらかで"
2611 "なければならない。 (このような ID の変更が行われた場合、「ケーパビリティ保"
2612 "持」フラグの設定に関わらず、スレッドのI<実効>ケーパビリティセットは常にクリア"
2613 "される。) B<execve>(2) が呼び出されると、「ケーパビリティ保持」フラグは 0 に"
2614 "リセットされる。"
2615
2616 #. type: TP
2617 #: build/C/man2/prctl.2:234
2618 #, no-wrap
2619 msgid "B<PR_GET_KEEPCAPS> (since Linux 2.2.18)"
2620 msgstr "B<PR_GET_KEEPCAPS> (Linux 2.2.18 以降)"
2621
2622 #. type: Plain text
2623 #: build/C/man2/prctl.2:238
2624 msgid ""
2625 "Return (as the function result) the current state of the calling threads's "
2626 "\"keep capabilities\" flag."
2627 msgstr ""
2628 "呼び出し元スレッドにおける「ケーパビリティ保持」フラグの 現在の状態を (関数の"
2629 "結果として) 返す。"
2630
2631 #. type: TP
2632 #: build/C/man2/prctl.2:238
2633 #, no-wrap
2634 msgid "B<PR_SET_NAME> (since Linux 2.6.9)"
2635 msgstr "B<PR_SET_NAME> (Linux 2.6.9 以降)"
2636
2637 #.  TASK_COMM_LEN in include/linux/sched.h
2638 #. type: Plain text
2639 #: build/C/man2/prctl.2:257
2640 msgid ""
2641 "Set the name of the calling thread, using the value in the location pointed "
2642 "to by I<(char\\ *) arg2>.  The name can be up to 16 bytes long, including "
2643 "the terminating null byte.  (If the length of the string, including the "
2644 "terminating null byte, exceeds 16 bytes, the string is silently truncated.)  "
2645 "This is the same attribute that can be set via B<pthread_setname_np>(3)  and "
2646 "retrieved using B<pthread_getname_np>(3).  The attribute is likewise "
2647 "accessible via I</proc/self/task/[tid]/comm>, where I<tid> is the name of "
2648 "the calling thread."
2649 msgstr ""
2650 "呼び出し元スレッドのプロセス名を I<(char\\ *) arg2> が指す場所に格納された値"
2651 "を使って設定する。 名前は終端の NULL バイトを含めて最大で 16 バイトである (終"
2652 "端の NULL バイトを含めた文字列の長さが 16 バイトを超える場合、 文字列は黙って"
2653 "切り詰められる)。 これは、 B<pthread_setname_np>(3) で設定でき、 "
2654 "B<pthread_getname_np>(3) で取得できるのと同じ属性である。 同様に、 I<tid> が"
2655 "呼び出し元スレッドの ID の場合、 この属性は I</proc/self/task/[tid]/comm> 経"
2656 "由でもアクセス可能である。"
2657
2658 #. type: TP
2659 #: build/C/man2/prctl.2:257
2660 #, no-wrap
2661 msgid "B<PR_GET_NAME> (since Linux 2.6.11)"
2662 msgstr "B<PR_GET_NAME> (Linux 2.6.11 以降)"
2663
2664 #. type: Plain text
2665 #: build/C/man2/prctl.2:264
2666 msgid ""
2667 "Return the name of the calling thread, in the buffer pointed to by I<(char\\ "
2668 "*) arg2>.  The buffer should allow space for up to 16 bytes; the returned "
2669 "string will be null-terminated."
2670 msgstr ""
2671 "呼び出し元スレッドの名前を I<(char\\ *) arg2> が指す場所に格納して返す。 バッ"
2672 "ファーは最大で 16 バイトを格納できるようにすべきである。 返される文字列はヌル"
2673 "終端される。"
2674
2675 #. type: TP
2676 #: build/C/man2/prctl.2:264
2677 #, no-wrap
2678 msgid "B<PR_SET_NO_NEW_PRIVS> (since Linux 3.5)"
2679 msgstr "B<PR_SET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2680
2681 #. type: Plain text
2682 #: build/C/man2/prctl.2:287
2683 msgid ""
2684 "Set the calling process's I<no_new_privs> bit to the value in I<arg2>.  With "
2685 "I<no_new_privs> set to 1, B<execve>(2)  promises not to grant privileges to "
2686 "do anything that could not have been done without the B<execve>(2)  call "
2687 "(for example, rendering the set-user-ID and set-group-ID permission bits, "
2688 "and file capabilities non-functional).  Once set, this bit cannot be unset.  "
2689 "The setting of this bit is inherited by children created by B<fork>(2)  and "
2690 "B<clone>(2), and preserved across B<execve>(2)."
2691 msgstr ""
2692 "呼び出し元プロセスの I<no_new_privs> ビットを I<arg2> の値に設定する。 "
2693 "I<no_new_privs> が 1 に設定されると、 B<execve>(2) は、 B<execve>(2) の呼び出"
2694 "しなしでは実行できなかったことに対する特権を許可しなくなる (例えば、 set-"
2695 "user-ID/set-group-ID 許可ビットやファイルケーパビリティが動作しなくなる)。 一"
2696 "度設定される、 このビットは解除することができない。 このビットの設定は "
2697 "B<fork>(2) や B<clone>(2) で作成された子プロセスに継承され、 B<execve>(2) の"
2698 "前後で保持される。"
2699
2700 #. type: Plain text
2701 #: build/C/man2/prctl.2:290
2702 msgid ""
2703 "For more information, see the kernel source file I<Documentation/prctl/"
2704 "no_new_privs.txt>."
2705 msgstr ""
2706 "詳しい情報は、カーネルソースファイル I<Documentation/prctl/no_new_privs.txt> "
2707 "を参照。"
2708
2709 #. type: TP
2710 #: build/C/man2/prctl.2:290
2711 #, no-wrap
2712 msgid "B<PR_GET_NO_NEW_PRIVS> (since Linux 3.5)"
2713 msgstr "B<PR_GET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2714
2715 #. type: Plain text
2716 #: build/C/man2/prctl.2:301
2717 msgid ""
2718 "Return (as the function result) the value of the I<no_new_privs> bit for the "
2719 "current process.  A value of 0 indicates the regular B<execve>(2)  "
2720 "behavior.  A value of 1 indicates B<execve>(2)  will operate in the "
2721 "privilege-restricting mode described above."
2722 msgstr ""
2723 "現在のプロセスの I<no_new_privs> ビットの値を (関数の結果として) 返す。 値 0 "
2724 "は通常の B<execve>(2) の動作を意味する。 値 1 は B<execve>(2) が上記で述べた"
2725 "特権を制限する動作をすることを示す。"
2726
2727 #. type: TP
2728 #: build/C/man2/prctl.2:301
2729 #, no-wrap
2730 msgid "B<PR_SET_PDEATHSIG> (since Linux 2.1.57)"
2731 msgstr "B<PR_SET_PDEATHSIG> (Linux 2.1.57 以降)"
2732
2733 #. type: Plain text
2734 #: build/C/man2/prctl.2:314
2735 msgid ""
2736 "Set the parent process death signal of the calling process to I<arg2> "
2737 "(either a signal value in the range 1..maxsig, or 0 to clear).  This is the "
2738 "signal that the calling process will get when its parent dies.  This value "
2739 "is cleared for the child of a B<fork>(2)  and (since Linux 2.4.36 / 2.6.23)  "
2740 "when executing a set-user-ID or set-group-ID binary.  This value is "
2741 "preserved across B<execve>(2)."
2742 msgstr ""
2743 "親プロセス死亡シグナル (parent process death signal) を I<arg2> に設定する "
2744 "(設定できるシグナル値の範囲は 1..maxsig であり、0 は通知の解除である)。 呼び"
2745 "出し元プロセスの親プロセスが死んだ際に、ここで設定した値が シグナルとして通知"
2746 "される。この値は B<fork>(2) の子プロセスでは解除される。 (Linux 2.4.36 以降お"
2747 "よび 2.6.23 以降では) set-user-ID もしくは set-group-ID されたバイナリを実行"
2748 "した場合にも、このフラグは解除される。この値は B<execve>(2) の前後で保持され"
2749 "る。"
2750
2751 #. type: TP
2752 #: build/C/man2/prctl.2:314
2753 #, no-wrap
2754 msgid "B<PR_GET_PDEATHSIG> (since Linux 2.3.15)"
2755 msgstr "B<PR_GET_PDEATHSIG> (Linux 2.3.15 以降)"
2756
2757 #. type: Plain text
2758 #: build/C/man2/prctl.2:319
2759 msgid ""
2760 "Return the current value of the parent process death signal, in the location "
2761 "pointed to by I<(int\\ *) arg2>."
2762 msgstr ""
2763 "親プロセス死亡シグナルの現在の値を I<(int\\ *) arg2> が指す場所に格納して返"
2764 "す。"
2765
2766 #. type: TP
2767 #: build/C/man2/prctl.2:319
2768 #, no-wrap
2769 msgid "B<PR_SET_PTRACER> (since Linux 3.4)"
2770 msgstr "B<PR_SET_PTRACER> (Linux 3.4 以降)"
2771
2772 #.  commit 2d514487faf188938a4ee4fb3464eeecfbdcf8eb
2773 #.  commit bf06189e4d14641c0148bea16e9dd24943862215
2774 #. type: Plain text
2775 #: build/C/man2/prctl.2:344
2776 msgid ""
2777 "This is meaningful only when the Yama LSM is enabled and in mode 1 "
2778 "(\"restricted ptrace\", visible via I</proc/sys/kernel/yama/ptrace_scope>).  "
2779 "When a \"ptracer process ID\" is passed in I<arg2>, the caller is declaring "
2780 "that the ptracer process can B<ptrace>(2)  the calling process as if it were "
2781 "a direct process ancestor.  Each B<PR_SET_PTRACER> operation replaces the "
2782 "previous \"ptracer process ID\".  Employing B<PR_SET_PTRACER> with I<arg2> "
2783 "set to 0 clears the caller's \"ptracer process ID\".  If I<arg2> is "
2784 "B<PR_SET_PTRACER_ANY>, the ptrace restrictions introduced by Yama are "
2785 "effectively disabled for the calling process."
2786 msgstr ""
2787 "この設定は Yama LSM が有効になっていてモード 1 (\"restricted ptrace\") の場合"
2788 "のみに意味を持つ (モードは I</proc/sys/kernel/yama/ptrace_scope> で参照可"
2789 "能)。 \"ptrace プロセス ID\" が I<arg2> で渡された場合、 呼び出し元は "
2790 "ptracer プロセスがそのプロセスが直接のプロセスの先祖であるかのよう呼び出した"
2791 "プロセスを B<ptrace> できる、 と宣言しているということだ。 B<PR_SET_PTRACER> "
2792 "操作を行う毎に、 直前の \"ptracer プロセス ID\" は置きかえられる。 I<arg2> "
2793 "で B<PR_SET_PTRACER> を 0 に設定すると、 呼び出し元の \"ptracer プロセス ID"
2794 "\" がクリアされる。 I<arg2> が B<PR_SET_PTRACER> の場合、 Yama が導入した "
2795 "ptrace の制限は呼び出し元プロセスに対しては無効になる。"
2796
2797 #. type: Plain text
2798 #: build/C/man2/prctl.2:347
2799 msgid ""
2800 "For further information, see the kernel source file I<Documentation/security/"
2801 "Yama.txt>."
2802 msgstr ""
2803 "詳しい情報は、カーネルソースファイル I<Documentation/security/Yama.txt> を参"
2804 "照。"
2805
2806 #. type: TP
2807 #: build/C/man2/prctl.2:347
2808 #, no-wrap
2809 msgid "B<PR_SET_SECCOMP> (since Linux 2.6.23)"
2810 msgstr "B<PR_SET_SECCOMP> (Linux 2.6.23 以降)"
2811
2812 #.  See http://thread.gmane.org/gmane.linux.kernel/542632
2813 #.  [PATCH 0 of 2] seccomp updates
2814 #.  andrea@cpushare.com
2815 #. type: Plain text
2816 #: build/C/man2/prctl.2:358
2817 msgid ""
2818 "Set the secure computing (seccomp) mode for the calling thread, to limit the "
2819 "available system calls.  The more recent B<seccomp>(2)  system call provides "
2820 "a superset of the functionality of B<PR_SET_SECCOMP>."
2821 msgstr ""
2822 "呼び出したスレッドのセキュアコンピューティング (seccomp) モードを設定する。 "
2823 "最近の B<seccomp>(2) システムコールは B<PR_SET_SECCOMP> の上位互換の機能を提"
2824 "供する。"
2825
2826 #. type: Plain text
2827 #: build/C/man2/prctl.2:363
2828 msgid ""
2829 "The seccomp mode is selected via I<arg2>.  (The seccomp constants are "
2830 "defined in I<E<lt>linux/seccomp.hE<gt>>.)"
2831 msgstr ""
2832 "seccomp モードは I<arg2> で指定できる (seccomp 定数は I<E<lt>linux/seccomp."
2833 "hE<gt>> で定義されている)。"
2834
2835 #. type: Plain text
2836 #: build/C/man2/prctl.2:384
2837 msgid ""
2838 "With I<arg2> set to B<SECCOMP_MODE_STRICT>, the only system calls that the "
2839 "thread is permitted to make are B<read>(2), B<write>(2), B<_exit>(2), and "
2840 "B<sigreturn>(2).  Other system calls result in the delivery of a B<SIGKILL> "
2841 "signal.  Strict secure computing mode is useful for number-crunching "
2842 "applications that may need to execute untrusted byte code, perhaps obtained "
2843 "by reading from a pipe or socket.  This operation is available only if the "
2844 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2845 msgstr ""
2846 "I<arg2> を B<SECCOMP_MODE_STRICT> に設定すると、 そのスレッドが呼び出しを許可"
2847 "されるシステムコールは B<read>(2), B<write>(2), B<_exit>(2), B<sigreturn>(2) "
2848 "だけになる。 それ以外のシステムコールを呼び出すと、シグナル B<SIGKILL> が配送"
2849 "される。 パイプやソケットから読み込んだ、 信頼できないバイトコードを実行する"
2850 "必要がある大量の演算を行うアプリケーションにおいて、 strict secure computing "
2851 "モードは役立つ。 この操作は利用できるのは、 カーネルが B<CONFIG_SECCOMP> を有"
2852 "効にして作成されている場合だけである。"
2853
2854 #. type: Plain text
2855 #: build/C/man2/prctl.2:399
2856 msgid ""
2857 "With I<arg2> set to B<SECCOMP_MODE_FILTER> (since Linux 3.5), the system "
2858 "calls allowed are defined by a pointer to a Berkeley Packet Filter passed in "
2859 "I<arg3>.  This argument is a pointer to I<struct sock_fprog>; it can be "
2860 "designed to filter arbitrary system calls and system call arguments.  This "
2861 "mode is available only if the kernel is configured with "
2862 "B<CONFIG_SECCOMP_FILTER> enabled."
2863 msgstr ""
2864 "I<arg2> を B<SECCOMP_MODE_FILTER> (Linux 3.5 以降) に設定すると、 許可される"
2865 "システムコールは I<arg3> で渡された Berkeley Packet Filter へのポインターで定"
2866 "義される。 この引き数は I<struct sock_fprog> へのポインターである。 これは任"
2867 "意のシステムコールやシステムコール引き数をフィルタリングするために設計され"
2868 "た。 このモードはカーネルで B<CONFIG_SECCOMP_FILTER> が有効になっている場合に"
2869 "のみ利用可能である。"
2870
2871 #. type: Plain text
2872 #: build/C/man2/prctl.2:414
2873 msgid ""
2874 "If B<SECCOMP_MODE_FILTER> filters permit B<fork>(2), then the seccomp mode "
2875 "is inherited by children created by B<fork>(2); if B<execve>(2)  is "
2876 "permitted, then the seccomp mode is preserved across B<execve>(2).  If the "
2877 "filters permit B<prctl>()  calls, then additional filters can be added; they "
2878 "are run in order until the first non-allow result is seen."
2879 msgstr ""
2880 "B<SECCOMP_MODE_FILTER> フィルターで B<fork>(2) が許可されている場合、 "
2881 "seccomp モードは B<fork>(2) で作成された子プロセスに継承される。 "
2882 "B<execve>(2) が許可されている場合、 seccomp モードは B<execve>(2) の前後で維"
2883 "持される。 フィルターで B<prctl>() コールが許可されている場合、 追加でフィル"
2884 "ターが定義され、 これらのフィルターは許可されないものが見つかるまで指定された"
2885 "順序で実行される。"
2886
2887 #. type: Plain text
2888 #: build/C/man2/prctl.2:417
2889 msgid ""
2890 "For further information, see the kernel source file I<Documentation/prctl/"
2891 "seccomp_filter.txt>."
2892 msgstr ""
2893 "詳しい情報は、カーネルソースファイル I<Documentation/prctl/seccomp_filter."
2894 "txt> を参照。"
2895
2896 #. type: TP
2897 #: build/C/man2/prctl.2:417
2898 #, no-wrap
2899 msgid "B<PR_GET_SECCOMP> (since Linux 2.6.23)"
2900 msgstr "B<PR_GET_SECCOMP> (Linux 2.6.23 以降)"
2901
2902 #. type: Plain text
2903 #: build/C/man2/prctl.2:435
2904 msgid ""
2905 "Return (as the function result)  the secure computing mode of the calling "
2906 "thread.  If the caller is not in secure computing mode, this operation "
2907 "returns 0; if the caller is in strict secure computing mode, then the "
2908 "B<prctl>()  call will cause a B<SIGKILL> signal to be sent to the process.  "
2909 "If the caller is in filter mode, and this system call is allowed by the "
2910 "seccomp filters, it returns 2; otherwise, the process is killed with a "
2911 "B<SIGKILL> signal.  This operation is available only if the kernel is "
2912 "configured with B<CONFIG_SECCOMP> enabled."
2913 msgstr ""
2914 "呼び出したスレッドの secure computing モードを (関数の結果として) 返す。 呼び"
2915 "出したスレッドが secure computing モードでなかった場合、 この操作は 0 を返"
2916 "し、 呼び出したスレッドが strict secure computing モードの場合、 B<prctl>()  "
2917 "を呼び出すとシグナル B<SIGKILL> がそのプロセスに送信される。 呼び出したスレッ"
2918 "ドがフィルタモードで、 このシステムコールが seccomp フィルタにより許可されて"
2919 "いる場合、 2 を返し、 そうでない場合プロセスは B<SIGKILL> シグナルで kill さ"
2920 "れづ。 この操作が利用できるのは、カーネルが B<CONFIG_SECCOMP> を有効にして作"
2921 "成されている場合だけである。"
2922
2923 #. type: Plain text
2924 #: build/C/man2/prctl.2:443
2925 msgid ""
2926 "Since Linux 3.8, the I<Seccomp> field of the I</proc/[pid]/status> file "
2927 "provides a method of obtaining the same information, without the risk that "
2928 "the process is killed; see B<proc>(5)."
2929 msgstr ""
2930 "Linux 3.8 以降では、 I</proc/[pid]/status> の I<seccomp> フィールドからも同じ"
2931 "情報を取得できる。 この方法の場合はプロセスが kill される危険はない。 "
2932 "B<proc>(5) を参照。"
2933
2934 #. type: TP
2935 #: build/C/man2/prctl.2:443
2936 #, no-wrap
2937 msgid "B<PR_SET_SECUREBITS> (since Linux 2.6.26)"
2938 msgstr "B<PR_SET_SECUREBITS> (Linux 2.6.26 以降)"
2939
2940 #. type: Plain text
2941 #: build/C/man2/prctl.2:449
2942 msgid ""
2943 "Set the \"securebits\" flags of the calling thread to the value supplied in "
2944 "I<arg2>.  See B<capabilities>(7)."
2945 msgstr ""
2946 "呼び出したスレッドの \"securebits\" フラグを I<arg2> で渡された値に設定す"
2947 "る。 B<capabilities>(7)  参照。"
2948
2949 #. type: TP
2950 #: build/C/man2/prctl.2:449
2951 #, no-wrap
2952 msgid "B<PR_GET_SECUREBITS> (since Linux 2.6.26)"
2953 msgstr "B<PR_GET_SECUREBITS> (Linux 2.6.26 以降)"
2954
2955 #. type: Plain text
2956 #: build/C/man2/prctl.2:455
2957 msgid ""
2958 "Return (as the function result)  the \"securebits\" flags of the calling "
2959 "thread.  See B<capabilities>(7)."
2960 msgstr ""
2961 "呼び出したスレッドの \"securebits\" フラグを (関数の結果として) 返す。 "
2962 "B<capabilities>(7)  参照。"
2963
2964 #. type: TP
2965 #: build/C/man2/prctl.2:455
2966 #, no-wrap
2967 msgid "B<PR_SET_THP_DISABLE> (since Linux 3.15)"
2968 msgstr "B<PR_SET_THP_DISABLE> (Linux 3.15 以降)"
2969
2970 #.  commit a0715cc22601e8830ace98366c0c2bd8da52af52
2971 #. type: Plain text
2972 #: build/C/man2/prctl.2:471
2973 msgid ""
2974 "Set the state of the \"THP disable\" flag for the calling thread.  If "
2975 "I<arg2> has a nonzero value, the flag is set, otherwise it is cleared.  "
2976 "Setting this flag provides a method for disabling transparent huge pages for "
2977 "jobs where the code cannot be modified, and using a malloc hook with "
2978 "B<madvise>(2)  is not an option (i.e., statically allocated data).  The "
2979 "setting of the \"THP disable\" flag is inherited by a child created via "
2980 "B<fork>(2)  and is preserved across B<execve>(2)."
2981 msgstr ""
2982 "呼び出したスレッドの \"THP disable\" (THP 無効) フラグの状態を設定する。 "
2983 "I<arg2> が 0 以外の場合、フラグは有効になり、そうでない場合はクリーンされ"
2984 "る。 このフラグを設定する方法により、 コードを変更できなかったり "
2985 "B<madvise>(2) の malloc hook をが有効ではないジョブ (この方法は静的に割り当て"
2986 "られたデータには有効ではない)に対して、 transparent huge pages を無効にする手"
2987 "段が提供される。 \"THP disable\" フラグの設定は B<fork>(2) で作成された子プロ"
2988 "セスに継承され、 B<execve> の前後で維持される。"
2989
2990 #. type: TP
2991 #: build/C/man2/prctl.2:471
2992 #, no-wrap
2993 msgid "B<PR_GET_THP_DISABLE> (since Linux 3.15)"
2994 msgstr "B<PR_GET_THP_DISABLE> (Linux 3.15 以降)"
2995
2996 #. type: Plain text
2997 #: build/C/man2/prctl.2:476
2998 msgid ""
2999 "Return (via the function result) the current setting of the \"THP disable\" "
3000 "flag for the calling thread: either 1, if the flag is set, or 0, if it is "
3001 "not."
3002 msgstr ""
3003 "呼び出し元スレッドの \"THP disable\" フラグの現在の設定を (関数の結果として) "
3004 "返す。フラグがセットされている場合は 1 が、セットされていない場合は 0 が返"
3005 "る。"
3006
3007 #. type: TP
3008 #: build/C/man2/prctl.2:476
3009 #, no-wrap
3010 msgid "B<PR_GET_TID_ADDRESS> (since Linux 3.5)"
3011 msgstr "B<PR_GET_TID_ADDRESS> (Linux 3.5 以降)"
3012
3013 #.  commit 300f786b2683f8bb1ec0afb6e1851183a479c86d
3014 #. type: Plain text
3015 #: build/C/man2/prctl.2:491
3016 msgid ""
3017 "Retrieve the I<clear_child_tid> address set by B<set_tid_address>(2)  and "
3018 "the B<clone>(2)  B<CLONE_CHILD_CLEARTID> flag, in the location pointed to by "
3019 "I<(int\\ **)\\ arg2>.  This feature is available only if the kernel is built "
3020 "with the B<CONFIG_CHECKPOINT_RESTORE> option enabled."
3021 msgstr ""
3022 "B<set_tid_address>(2) や B<clone>(2) B<CLONE_CHILD_CLEARTID> フラグで設定され"
3023 "た I<clear_child_tid> を取得し、 I<(int\\ **)\\ arg2> が指す場所に格納して返"
3024 "す。 この機能はカーネルが B<CONFIG_CHECKPOINT_RESTORE> オプションを有効にして"
3025 "作成されている場合にのみ利用できる。"
3026
3027 #. type: TP
3028 #: build/C/man2/prctl.2:491
3029 #, no-wrap
3030 msgid "B<PR_SET_TIMERSLACK> (since Linux 2.6.28)"
3031 msgstr "B<PR_SET_TIMERSLACK> (Linux 2.6.28 以降)"
3032
3033 #.  See https://lwn.net/Articles/369549/
3034 #.  commit 6976675d94042fbd446231d1bd8b7de71a980ada
3035 #.  It seems that it's not possible to set the timer slack to zero;
3036 #.  The minimum value is 1? Seems a little strange.
3037 #. type: Plain text
3038 #: build/C/man2/prctl.2:510
3039 msgid ""
3040 "Set the current timer slack for the calling thread to the nanosecond value "
3041 "supplied in I<arg2>.  If I<arg2> is less than or equal to zero, reset the "
3042 "current timer slack to the thread's default timer slack value.  The timer "
3043 "slack is used by the kernel to group timer expirations for the calling "
3044 "thread that are close to one another; as a consequence, timer expirations "
3045 "for the thread may be up to the specified number of nanoseconds late (but "
3046 "will never expire early).  Grouping timer expirations can help reduce system "
3047 "power consumption by minimizing CPU wake-ups."
3048 msgstr ""
3049 "呼び出し元スレッドの現在の timer slack を I<arg2> で指定されたナノ秒に設定す"
3050 "る。 I<arg2> が 0 以下の場合、 現在の timer slack をそのスレッドのデフォルト"
3051 "の timer slack 値にリセットする。 カーネルは timer slack を使って、 呼び出し"
3052 "元スレッドのタイマー満了のうち、どのくらい近いものグルーピングする (一纏めに"
3053 "する) かを決める。 その結果、 そのスレッドのタイマーの満了は最大で指定された"
3054 "ナノ秒分だけ遅れる場合がある。 タイマー満了をグルーピングすることで、 CPU を"
3055 "起こす回数が最小化されシステムの消費電力を減らすことができる。"
3056
3057 #.  List obtained by grepping for futex usage in glibc source
3058 #. type: Plain text
3059 #: build/C/man2/prctl.2:530
3060 msgid ""
3061 "The timer expirations affected by timer slack are those set by B<select>(2), "
3062 "B<pselect>(2), B<poll>(2), B<ppoll>(2), B<epoll_wait>(2), B<epoll_pwait>(2), "
3063 "B<clock_nanosleep>(2), B<nanosleep>(2), and B<futex>(2)  (and thus the "
3064 "library functions implemented via futexes, including "
3065 "B<pthread_cond_timedwait>(3), B<pthread_mutex_timedlock>(3), "
3066 "B<pthread_rwlock_timedrdlock>(3), B<pthread_rwlock_timedwrlock>(3), and "
3067 "B<sem_timedwait>(3))."
3068 msgstr ""
3069 "timer slack の影響を受けるのは、 システムコール B<select>(2), B<pselect>(2), "
3070 "B<poll>(2), B<ppoll>(2), B<epoll_wait>(2), B<epoll_pwait>(2), "
3071 "B<clock_nanosleep>(2), B<nanosleep>(2), B<futex>(2) により設定されたタイマー"
3072 "満了である \n"
3073 "(また、 futex を使って実装されているライブラリ関数 "
3074 "B<pthread_cond_timedwait>(3), B<pthread_mutex_timedlock>(3), "
3075 "B<pthread_rwlock_timedrdlock>(3), B<pthread_rwlock_timedwrlock>(3), "
3076 "B<sem_timedwait>(3) も影響を受ける)。"
3077
3078 #. type: Plain text
3079 #: build/C/man2/prctl.2:534
3080 msgid ""
3081 "Timer slack is not applied to threads that are scheduled under a real-time "
3082 "scheduling policy (see B<sched_setscheduler>(2))."
3083 msgstr ""
3084 "timer slack はリアルタイムスケジューリングポリシーでスケジューリングされるス"
3085 "レッドには提供されない (B<sched_setscheduler>(2) 参照)。"
3086
3087 #. type: Plain text
3088 #: build/C/man2/prctl.2:551
3089 msgid ""
3090 "Each thread has two associated timer slack values: a \"default\" value, and "
3091 "a \"current\" value.  The current value is the one that governs grouping of "
3092 "timer expirations.  When a new thread is created, the two timer slack values "
3093 "are made the same as the current value of the creating thread.  Thereafter, "
3094 "a thread can adjust its current timer slack value via B<PR_SET_TIMERSLACK> "
3095 "(the default value can't be changed).  The timer slack values of I<init> "
3096 "(PID 1), the ancestor of all processes, are 50,000 nanoseconds (50 "
3097 "microseconds).  The timer slack values are preserved across B<execve>(2)."
3098 msgstr ""
3099 "各スレッドには timer slack に関連する値が 2 つある。 「デフォルト値」と「現在"
3100 "値」である。 現在値はタイマー満了のグルーピングを制御する。 新しいスレッドが"
3101 "作成される際、 2 つの timer slack 値はそのスレッドを作成したスレッドの現在値"
3102 "と同じに設定される。 その後、 スレッドは B<PR_SET_TIMERSLACK> で現在の timer "
3103 "slack 値を調整できる (デフォルト値は変更できない)。 すべてのプロセスの先祖と"
3104 "なる I<init> (PID 1) の timer slack 値は 50,000 ナノ秒 (50 ミリ秒) である。 "
3105 "timer slack 値は B<execve>(2) の前後で保持される。"
3106
3107 #. type: TP
3108 #: build/C/man2/prctl.2:551
3109 #, no-wrap
3110 msgid "B<PR_GET_TIMERSLACK> (since Linux 2.6.28)"
3111 msgstr "B<PR_GET_TIMERSLACK> (Linux 2.6.28 以降)"
3112
3113 #. type: Plain text
3114 #: build/C/man2/prctl.2:555
3115 msgid ""
3116 "Return (as the function result)  the current timer slack value of the "
3117 "calling thread."
3118 msgstr ""
3119 "呼び出し元スレッドの現在のタイマーのスラック値を (関数の結果として) 返す。"
3120
3121 #. type: TP
3122 #: build/C/man2/prctl.2:555
3123 #, no-wrap
3124 msgid "B<PR_SET_TIMING> (since Linux 2.6.0-test4)"
3125 msgstr "B<PR_SET_TIMING> (Linux 2.6.0-test4 以降)"
3126
3127 #.  0
3128 #.  1
3129 #.  PR_TIMING_TIMESTAMP doesn't do anything in 2.6.26-rc8,
3130 #.  and looking at the patch history, it appears
3131 #.  that it never did anything.
3132 #. type: Plain text
3133 #: build/C/man2/prctl.2:572
3134 msgid ""
3135 "Set whether to use (normal, traditional) statistical process timing or "
3136 "accurate timestamp-based process timing, by passing B<PR_TIMING_STATISTICAL> "
3137 "or B<PR_TIMING_TIMESTAMP> to I<arg2>.  B<PR_TIMING_TIMESTAMP> is not "
3138 "currently implemented (attempting to set this mode will yield the error "
3139 "B<EINVAL>)."
3140 msgstr ""
3141 "(通常の、伝統的に使われてきた) 統計的なプロセスタイミングを使用するか、 正確"
3142 "なタイムスタンプに基づくプロセスタイミングを使用するかを設定する。 I<arg2> に"
3143 "指定できる値は B<PR_TIMING_STATISTICAL> か B<PR_TIMING_TIMESTAMP> である。 "
3144 "B<PR_TIMING_TIMESTAMP> は現在のところ実装されていない (このモードに設定しよう"
3145 "とするとエラー B<EINVAL> が起こることだろう)。"
3146
3147 #. type: TP
3148 #: build/C/man2/prctl.2:572
3149 #, no-wrap
3150 msgid "B<PR_GET_TIMING> (since Linux 2.6.0-test4)"
3151 msgstr "B<PR_GET_TIMING> (Linux 2.6.0-test4 以降)"
3152
3153 #. type: Plain text
3154 #: build/C/man2/prctl.2:576
3155 msgid ""
3156 "Return (as the function result) which process timing method is currently in "
3157 "use."
3158 msgstr "現在使用中のプロセスタイミングを決める方法を (関数の結果として) 返す。"
3159
3160 #. type: TP
3161 #: build/C/man2/prctl.2:576
3162 #, no-wrap
3163 msgid "B<PR_TASK_PERF_EVENTS_DISABLE> (since Linux 2.6.31)"
3164 msgstr "B<PR_TASK_PERF_EVENTS_DISABLE> (Linux 2.6.31 以降)"
3165
3166 #. type: Plain text
3167 #: build/C/man2/prctl.2:585
3168 msgid ""
3169 "Disable all performance counters attached to the calling process, regardless "
3170 "of whether the counters were created by this process or another process.  "
3171 "Performance counters created by the calling process for other processes are "
3172 "unaffected.  For more information on performance counters, see the Linux "
3173 "kernel source file I<tools/perf/design.txt>."
3174 msgstr ""
3175 "呼び出したプロセスに接続されたすべての性能カウンターを無効にする。 カウンター"
3176 "がこのプロセスにより作成されたか他のプロセスにより作成されたかは関係ない。 呼"
3177 "び出したプロセスが他のプロセス用に作成した性能カウンターは影響を受けない。 性"
3178 "能カウンターの詳細については Linux カーネルソースの I<tools/perf/design.txt> "
3179 "を参照。"
3180
3181 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3182 #. type: Plain text
3183 #: build/C/man2/prctl.2:591
3184 msgid ""
3185 "Originally called B<PR_TASK_PERF_COUNTERS_DISABLE>; renamed (with same "
3186 "numerical value)  in Linux 2.6.32."
3187 msgstr ""
3188 "以前は B<PR_TASK_PERF_COUNTERS_DISABLE> と呼ばれていた。 Linux 2.6.32 で名前"
3189 "が変更された (数値は同じままである)。"
3190
3191 #. type: TP
3192 #: build/C/man2/prctl.2:591
3193 #, no-wrap
3194 msgid "B<PR_TASK_PERF_EVENTS_ENABLE> (since Linux 2.6.31)"
3195 msgstr "B<PR_TASK_PERF_EVENTS_ENABLE> (Linux 2.6.31 以降)"
3196
3197 #. type: Plain text
3198 #: build/C/man2/prctl.2:596
3199 msgid ""
3200 "The converse of B<PR_TASK_PERF_EVENTS_DISABLE>; enable performance counters "
3201 "attached to the calling process."
3202 msgstr ""
3203 "B<PR_TASK_PERF_EVENTS_DISABLE> の逆。 呼び出したプロセスに接続された性能カウ"
3204 "ンターを有効にする。"
3205
3206 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3207 #.  commit cdd6c482c9ff9c55475ee7392ec8f672eddb7be6
3208 #. type: Plain text
3209 #: build/C/man2/prctl.2:603
3210 msgid ""
3211 "Originally called B<PR_TASK_PERF_COUNTERS_ENABLE>; renamed in Linux 2.6.32."
3212 msgstr ""
3213 "以前は B<PR_TASK_PERF_COUNTERS_ENABLE> と呼ばれていた。 Linux 2.6.32 で名前が"
3214 "変更された。"
3215
3216 #. type: TP
3217 #: build/C/man2/prctl.2:603
3218 #, no-wrap
3219 msgid "B<PR_SET_TSC> (since Linux 2.6.26, x86 only)"
3220 msgstr "B<PR_SET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3221
3222 #. type: Plain text
3223 #: build/C/man2/prctl.2:616
3224 msgid ""
3225 "Set the state of the flag determining whether the timestamp counter can be "
3226 "read by the process.  Pass B<PR_TSC_ENABLE> to I<arg2> to allow it to be "
3227 "read, or B<PR_TSC_SIGSEGV> to generate a B<SIGSEGV> when the process tries "
3228 "to read the timestamp counter."
3229 msgstr ""
3230 "そのプロセスがタイムスタンプカウンターを読み出せるかを決定する フラグの状態を"
3231 "設定する。 読み出しを許可する場合は I<arg2> に B<PR_TSC_ENABLE> を、そのプロ"
3232 "セスがタイムスタンプカウンターを読み出そうとした際に B<SIGSEGV> を発生させる"
3233 "場合には B<PR_TSC_SIGSEGV> を渡す。"
3234
3235 #. type: TP
3236 #: build/C/man2/prctl.2:616
3237 #, no-wrap
3238 msgid "B<PR_GET_TSC> (since Linux 2.6.26, x86 only)"
3239 msgstr "B<PR_GET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3240
3241 #. type: Plain text
3242 #: build/C/man2/prctl.2:622
3243 msgid ""
3244 "Return the state of the flag determining whether the timestamp counter can "
3245 "be read, in the location pointed to by I<(int\\ *) arg2>."
3246 msgstr ""
3247 "そのプロセスがタイムスタンプカウンターを読み出せるかを決定する フラグの状態"
3248 "を I<(int\\ *) arg2> が指す場所に格納して返す。"
3249
3250 #. type: TP
3251 #: build/C/man2/prctl.2:622
3252 #, no-wrap
3253 msgid "B<PR_SET_UNALIGN>"
3254 msgstr "B<PR_SET_UNALIGN>"
3255
3256 #. type: Plain text
3257 #: build/C/man2/prctl.2:632
3258 msgid ""
3259 "(Only on: ia64, since Linux 2.3.48; parisc, since Linux 2.6.15; PowerPC, "
3260 "since Linux 2.6.18; Alpha, since Linux 2.6.22)  Set unaligned access control "
3261 "bits to I<arg2>.  Pass B<PR_UNALIGN_NOPRINT> to silently fix up unaligned "
3262 "user accesses, or B<PR_UNALIGN_SIGBUS> to generate B<SIGBUS> on unaligned "
3263 "user access."
3264 msgstr ""
3265 "(ia64 では Linux 2.3.48 以降; parisc では Linux 2.6.15 以降; PowerPC では "
3266 "Linux 2.6.18 以降; Alpha では Linux 2.6.22 以降; これらのアーキテクチャーの"
3267 "み)  unaligned アクセス制御ビットを I<arg2> で指定された値に設定する。 指定で"
3268 "きる値は B<PR_UNALIGN_NOPRINT> (unaligned なユーザーアクセスを黙って 修正す"
3269 "る) か B<PR_UNALIGN_SIGBUS> (unaligned なユーザーアクセスがあった場合 "
3270 "B<SIGBUS> を生成する) である。"
3271
3272 #. type: TP
3273 #: build/C/man2/prctl.2:632
3274 #, no-wrap
3275 msgid "B<PR_GET_UNALIGN>"
3276 msgstr "B<PR_GET_UNALIGN>"
3277
3278 #. type: Plain text
3279 #: build/C/man2/prctl.2:639
3280 msgid ""
3281 "(see B<PR_SET_UNALIGN> for information on versions and architectures)  "
3282 "Return unaligned access control bits, in the location pointed to by I<(int\\ "
3283 "*) arg2>."
3284 msgstr ""
3285 "(バージョンとアーキテクチャーの情報は B<PR_SET_UNALIGN> 参照)  unaligned アク"
3286 "セス制御ビットの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
3287
3288 #. type: TP
3289 #: build/C/man2/prctl.2:639
3290 #, no-wrap
3291 msgid "B<PR_MCE_KILL> (since Linux 2.6.32)"
3292 msgstr "B<PR_MCE_KILL> (Linux 2.6.32 以降)"
3293
3294 #. type: Plain text
3295 #: build/C/man2/prctl.2:679
3296 msgid ""
3297 "Set the machine check memory corruption kill policy for the current thread.  "
3298 "If I<arg2> is B<PR_MCE_KILL_CLEAR>, clear the thread memory corruption kill "
3299 "policy and use the system-wide default.  (The system-wide default is defined "
3300 "by I</proc/sys/vm/memory_failure_early_kill>; see B<proc>(5).)  If I<arg2> "
3301 "is B<PR_MCE_KILL_SET>, use a thread-specific memory corruption kill policy.  "
3302 "In this case, I<arg3> defines whether the policy is I<early kill> "
3303 "(B<PR_MCE_KILL_EARLY>), I<late kill> (B<PR_MCE_KILL_LATE>), or the system-"
3304 "wide default (B<PR_MCE_KILL_DEFAULT>).  Early kill means that the thread "
3305 "receives a B<SIGBUS> signal as soon as hardware memory corruption is "
3306 "detected inside its address space.  In late kill mode, the process is killed "
3307 "only when it accesses a corrupted page.  See B<sigaction>(2)  for more "
3308 "information on the B<SIGBUS> signal.  The policy is inherited by children.  "
3309 "The remaining unused B<prctl>()  arguments must be zero for future "
3310 "compatibility."
3311 msgstr ""
3312 "現在のスレッドの machine check memory corruption kill ポリシーを設定する。 "
3313 "I<arg2> が B<PR_MCE_KILL_CLEAR> の場合、 このスレッドの memory corruption "
3314 "kill ポリシーをクリアし、 システム全体のデフォルト値を使用する (システム全体"
3315 "のデフォルトは I</proc/sys/vm/memory_failure_early_kill> で定義される。 "
3316 "B<proc>(5) 参照)。 I<arg2> が B<PR_MCE_KILL_SET> の場合、 スレッド固有の "
3317 "memory corruption kill ポリシーを使用する。 この場合、 I<arg3> によりこのポリ"
3318 "シーが I<early kill> (B<PR_MCE_KILL_EARLY> か、 I<late kill> "
3319 "(B<PR_MCE_KILL_LATE>) か、 システム全体のデフォルト値 "
3320 "(B<PR_MCE_KILL_DEFAULT>) が指定される。 early kill は、 ハードウェアメモリー"
3321 "破壊 (corruption) がスレッドのアドレス空間内で検出されるとすぐに、 そのスレッ"
3322 "ドが B<SIGBUS> シグナルを受信することを意味する。 late kill モードでは、 メモ"
3323 "リー破壊が起こったページにアクセスした場合にのみ、 そのプロセスが kill され"
3324 "る。 B<SIGBUS> シグナルの詳細は B<sigaction>(2) を参照。 このポリシーは子プロ"
3325 "セスに継承される。 未使用の残りの B<prctl>() の引き数は将来の互換性のため 0 "
3326 "にしなければならない。"
3327
3328 #. type: TP
3329 #: build/C/man2/prctl.2:679
3330 #, no-wrap
3331 msgid "B<PR_MCE_KILL_GET> (since Linux 2.6.32)"
3332 msgstr "B<PR_MCE_KILL_GET> (Linux 2.6.32 以降)"
3333
3334 #. type: Plain text
3335 #: build/C/man2/prctl.2:685
3336 msgid ""
3337 "Return the current per-process machine check kill policy.  All unused "
3338 "B<prctl>()  arguments must be zero."
3339 msgstr ""
3340 "現在のプロセス単位の machine check kill ポリシーを返す。 未使用の B<prctl>() "
3341 "の引き数はすべて 0 にしなければならない。"
3342
3343 #. type: TP
3344 #: build/C/man2/prctl.2:685
3345 #, no-wrap
3346 msgid "B<PR_SET_MM> (since Linux 3.3)"
3347 msgstr "B<PR_SET_MM> (Linux 3.3 以降)"
3348
3349 #.  commit 028ee4be34a09a6d48bdf30ab991ae933a7bc036
3350 #. type: Plain text
3351 #: build/C/man2/prctl.2:706
3352 msgid ""
3353 "Modify certain kernel memory map descriptor fields of the calling process.  "
3354 "Usually these fields are set by the kernel and dynamic loader (see B<ld."
3355 "so>(8)  for more information) and a regular application should not use this "
3356 "feature.  However, there are cases, such as self-modifying programs, where a "
3357 "program might find it useful to change its own memory map.  This feature is "
3358 "available only if the kernel is built with the B<CONFIG_CHECKPOINT_RESTORE> "
3359 "option enabled.  The calling process must have the B<CAP_SYS_RESOURCE> "
3360 "capability.  The value in I<arg2> is one of the options below, while I<arg3> "
3361 "provides a new value for the option."
3362 msgstr ""
3363 "呼び出したプロセスのカーネルメモリーマップディスクリプターのフィールドを変更"
3364 "する。 これらのフィールドは通常カーネルと動的リンカーにより設定される (詳しい"
3365 "情報は B<ld.so> を参照)。 通常のアプリケーションはこの機能を利用すべきではな"
3366 "い。 しかしながら、自分を書き換えるプログラムなど、 プログラムが自分自身のメ"
3367 "モリーマップを変更するのが有用な場面もある。 この機能はカーネルが "
3368 "B<CONFIG_CHECKPOINT_RESTORE> オプションを有効にして作成されている場合にのみ利"
3369 "用できる。 呼び出したプロセスは B<CAP_SYS_RESOURCE> ケーパビリティを持ってい"
3370 "なければならない。 I<arg2> の値には以下のいずれかを指定し、 I<arg3> でそのオ"
3371 "プションの新しい値を指定する。"
3372
3373 #. type: TP
3374 #: build/C/man2/prctl.2:707
3375 #, no-wrap
3376 msgid "B<PR_SET_MM_START_CODE>"
3377 msgstr "B<PR_SET_MM_START_CODE>"
3378
3379 #. type: Plain text
3380 #: build/C/man2/prctl.2:716
3381 msgid ""
3382 "Set the address above which the program text can run.  The corresponding "
3383 "memory area must be readable and executable, but not writable or sharable "
3384 "(see B<mprotect>(2)  and B<mmap>(2)  for more information)."
3385 msgstr ""
3386 "プログラムテキストを実行できるアドレスの上限を設定する。 対応するメモリー領域"
3387 "は読み出し可能で実行可能でなければならないが、 書き込み可能だったり共有可能"
3388 "だったりしてはならない (詳しい情報は B<mprotect>(2) と B<mmap>(2) 参照)。"
3389
3390 #. type: TP
3391 #: build/C/man2/prctl.2:716
3392 #, no-wrap
3393 msgid "B<PR_SET_MM_END_CODE>"
3394 msgstr "B<PR_SET_MM_END_CODE>"
3395
3396 #. type: Plain text
3397 #: build/C/man2/prctl.2:721
3398 msgid ""
3399 "Set the address below which the program text can run.  The corresponding "
3400 "memory area must be readable and executable, but not writable or sharable."
3401 msgstr ""
3402 "プログラムテキストを実行できるアドレスの下限を設定する。 対応するメモリー領域"
3403 "は読み出し可能で実行可能でなければならないが、 書き込み可能だったり共有可能"
3404 "だったりしてはならない。"
3405
3406 #. type: TP
3407 #: build/C/man2/prctl.2:721
3408 #, no-wrap
3409 msgid "B<PR_SET_MM_START_DATA>"
3410 msgstr "B<PR_SET_MM_START_DATA>"
3411
3412 #. type: Plain text
3413 #: build/C/man2/prctl.2:727
3414 msgid ""
3415 "Set the address above which initialized and uninitialized (bss) data are "
3416 "placed.  The corresponding memory area must be readable and writable, but "
3417 "not executable or sharable."
3418 msgstr ""
3419 "初期化済データや未初期化 (bss) データを配置する領域のアドレス上限を指定す"
3420 "る。 対応するメモリー領域は読み書き可能でなければならないが、 実行可能だった"
3421 "り共有可能だったりしてはならない。"
3422
3423 #. type: TP
3424 #: build/C/man2/prctl.2:727
3425 #, no-wrap
3426 msgid "B<PR_SET_MM_END_DATA>"
3427 msgstr "B<PR_SET_MM_END_DATA>"
3428
3429 #. type: Plain text
3430 #: build/C/man2/prctl.2:733
3431 msgid ""
3432 "Set the address below which initialized and uninitialized (bss) data are "
3433 "placed.  The corresponding memory area must be readable and writable, but "
3434 "not executable or sharable."
3435 msgstr ""
3436 "初期化済データや未初期化 (bss) データを配置する領域のアドレス下限を指定す"
3437 "る。 対応するメモリー領域は読み書き可能でなければならないが、 実行可能だった"
3438 "り共有可能だったりしてはならない。"
3439
3440 #. type: TP
3441 #: build/C/man2/prctl.2:733
3442 #, no-wrap
3443 msgid "B<PR_SET_MM_START_STACK>"
3444 msgstr "B<PR_SET_MM_START_STACK>"
3445
3446 #. type: Plain text
3447 #: build/C/man2/prctl.2:737
3448 msgid ""
3449 "Set the start address of the stack.  The corresponding memory area must be "
3450 "readable and writable."
3451 msgstr ""
3452 "スタックの開始アドレスを設定する。 対応するメモリー領域は読み書き可能でなけれ"
3453 "ばならない。"
3454
3455 #. type: TP
3456 #: build/C/man2/prctl.2:737
3457 #, no-wrap
3458 msgid "B<PR_SET_MM_START_BRK>"
3459 msgstr "B<PR_SET_MM_START_BRK>"
3460
3461 #. type: Plain text
3462 #: build/C/man2/prctl.2:749
3463 msgid ""
3464 "Set the address above which the program heap can be expanded with B<brk>(2)  "
3465 "call.  The address must be greater than the ending address of the current "
3466 "program data segment.  In addition, the combined size of the resulting heap "
3467 "and the size of the data segment can't exceed the B<RLIMIT_DATA> resource "
3468 "limit (see B<setrlimit>(2))."
3469 msgstr ""
3470 "B<brk>(2) コールで拡張できるプログラムのヒープ領域のアドレス上限を設定する。 "
3471 "このアドレスは、プログラムの現在のデータセグメントの最終アドレスより大きくな"
3472 "ければならない。 また、 変更後のヒープとデータセグメントのサイズを合わせたサ"
3473 "イズが B<RLIMIT_DATA> リソースリミットを超えることはできない "
3474 "(B<setrlimit>(2) 参照)。"
3475
3476 #. type: TP
3477 #: build/C/man2/prctl.2:749
3478 #, no-wrap
3479 msgid "B<PR_SET_MM_BRK>"
3480 msgstr "B<PR_SET_MM_BRK>"
3481
3482 #. type: Plain text
3483 #: build/C/man2/prctl.2:757
3484 msgid ""
3485 "Set the current B<brk>(2)  value.  The requirements for the address are the "
3486 "same as for the B<PR_SET_MM_START_BRK> option."
3487 msgstr ""
3488 "現在の B<brk>(2) 値を設定する。 このアドレスの要件は B<PR_SET_MM_START_BRK> "
3489 "オプションと同じである。"
3490
3491 #.  commit fe8c7f5cbf91124987106faa3bdf0c8b955c4cf7
3492 #. type: Plain text
3493 #: build/C/man2/prctl.2:760
3494 msgid "The following options are available since Linux 3.5."
3495 msgstr "以下のオプションは Linux 3.5 以降で利用できる。"
3496
3497 #. type: TP
3498 #: build/C/man2/prctl.2:760
3499 #, no-wrap
3500 msgid "B<PR_SET_MM_ARG_START>"
3501 msgstr "B<PR_SET_MM_ARG_START>"
3502
3503 #. type: Plain text
3504 #: build/C/man2/prctl.2:763
3505 msgid "Set the address above which the program command line is placed."
3506 msgstr "プログラムのコマンドラインを配置するアドレスの上限を設定する。"
3507
3508 #. type: TP
3509 #: build/C/man2/prctl.2:763
3510 #, no-wrap
3511 msgid "B<PR_SET_MM_ARG_END>"
3512 msgstr "B<PR_SET_MM_ARG_END>"
3513
3514 #. type: Plain text
3515 #: build/C/man2/prctl.2:766
3516 msgid "Set the address below which the program command line is placed."
3517 msgstr "プログラムのコマンドラインを配置するアドレスの下限を設定する。"
3518
3519 #. type: TP
3520 #: build/C/man2/prctl.2:766
3521 #, no-wrap
3522 msgid "B<PR_SET_MM_ENV_START>"
3523 msgstr "B<PR_SET_MM_ENV_START>"
3524
3525 #. type: Plain text
3526 #: build/C/man2/prctl.2:769
3527 msgid "Set the address above which the program environment is placed."
3528 msgstr ""
3529 "プログラムの環境情報 (environment) を配置するアドレスの上限を設定する。"
3530
3531 #. type: TP
3532 #: build/C/man2/prctl.2:769
3533 #, no-wrap
3534 msgid "B<PR_SET_MM_ENV_END>"
3535 msgstr "B<PR_SET_MM_ENV_END>"
3536
3537 #. type: Plain text
3538 #: build/C/man2/prctl.2:772
3539 msgid "Set the address below which the program environment is placed."
3540 msgstr ""
3541 "プログラムの環境情報 (environment) を配置するアドレスの下限を設定する。"
3542
3543 #. type: Plain text
3544 #: build/C/man2/prctl.2:785
3545 msgid ""
3546 "The address passed with B<PR_SET_MM_ARG_START>, B<PR_SET_MM_ARG_END>, "
3547 "B<PR_SET_MM_ENV_START>, and B<PR_SET_MM_ENV_END> should belong to a process "
3548 "stack area.  Thus, the corresponding memory area must be readable, writable, "
3549 "and (depending on the kernel configuration) have the B<MAP_GROWSDOWN> "
3550 "attribute set (see B<mmap>(2))."
3551 msgstr ""
3552 "B<PR_SET_MM_ARG_START>, B<PR_SET_MM_ARG_END>, B<PR_SET_MM_ENV_START>, "
3553 "B<PR_SET_MM_ENV_END> で指定されるアドレスはプロセスのスタック領域に属している"
3554 "必要がある。 したがって、これらのメモリー領域は読み書き可能でなければならな"
3555 "い。 また、 (カーネル設定によっては) B<MAP_GROWSDOWN> 属性がセットされていな"
3556 "ければならない (B<mmap>(2) 参照)。"
3557
3558 #. type: TP
3559 #: build/C/man2/prctl.2:785
3560 #, no-wrap
3561 msgid "B<PR_SET_MM_AUXV>"
3562 msgstr "B<PR_SET_MM_AUXV>"
3563
3564 #. type: Plain text
3565 #: build/C/man2/prctl.2:794
3566 msgid ""
3567 "Set a new auxiliary vector.  The I<arg3> argument should provide the address "
3568 "of the vector.  The I<arg4> is the size of the vector."
3569 msgstr ""
3570 "新しい補助ベクトル (auxiliary vector) を設定する。 I<arg3> 引き数はベクトルの"
3571 "アドレスを指定し、 I<arg4> はベクトルのサイズを指定する。"
3572
3573 #. type: TP
3574 #: build/C/man2/prctl.2:794
3575 #, no-wrap
3576 msgid "B<PR_SET_MM_EXE_FILE>"
3577 msgstr "B<PR_SET_MM_EXE_FILE>"
3578
3579 #.  commit b32dfe377102ce668775f8b6b1461f7ad428f8b6
3580 #. type: Plain text
3581 #: build/C/man2/prctl.2:806
3582 msgid ""
3583 "Supersede the I</proc/pid/exe> symbolic link with a new one pointing to a "
3584 "new executable file identified by the file descriptor provided in I<arg3> "
3585 "argument.  The file descriptor should be obtained with a regular B<open>(2)  "
3586 "call."
3587 msgstr ""
3588 "I</proc/pid/exe> シンボリックリンクを I<arg3> 引き数で渡された新しい実行可能"
3589 "なファイルディスクリプターを指すシンボリックリンクで置き換える。 ファイルディ"
3590 "スクリプターは通常の B<open>(2) コールで取得すべきである。"
3591
3592 #. type: Plain text
3593 #: build/C/man2/prctl.2:813
3594 msgid ""
3595 "To change the symbolic link, one needs to unmap all existing executable "
3596 "memory areas, including those created by the kernel itself (for example the "
3597 "kernel usually creates at least one executable memory area for the ELF I<."
3598 "text> section)."
3599 msgstr ""
3600 "シンボリックリンクを変更するには、 既存の実行可能なメモリー領域のすべてをアン"
3601 "マップする必要がある。これにはカーネル自身が作成した領域も含まれる (例えば、"
3602 "カーネルは通常 ELF I<.text> セクションに少なくとも一つの実行可能なメモリー領"
3603 "域を作成する)。"
3604
3605 #. type: Plain text
3606 #: build/C/man2/prctl.2:819
3607 msgid ""
3608 "The second limitation is that such transitions can be done only once in a "
3609 "process life time.  Any further attempts will be rejected.  This should help "
3610 "system administrators monitor unusual symbolic-link transitions over all "
3611 "processes running on a system."
3612 msgstr ""
3613 "二つ目の制限は、このような変更はプロセスの生存期間で一度だけ行うことができる"
3614 "という点である。 一度変更を行った後で変更を行おうとすると拒否される。 この動"
3615 "作は、 システム管理者が、 システムで動作するすべてのプロセスが行う、 普通でな"
3616 "いシンボリックリンクの変更を監視するのを楽にする。"
3617
3618 #. type: TP
3619 #: build/C/man2/prctl.2:820
3620 #, no-wrap
3621 msgid "B<PR_MPX_ENABLE_MANAGEMENT>, B<PR_MPX_DISABLE_MANAGEMENT> (since Linux 3.19) "
3622 msgstr "B<PR_MPX_ENABLE_MANAGEMENT>, B<PR_MPX_DISABLE_MANAGEMENT> (Linux 3.19 以降) "
3623
3624 #.  commit fe3d197f84319d3bce379a9c0dc17b1f48ad358c
3625 #.  See also http://lwn.net/Articles/582712/
3626 #.  See also https://gcc.gnu.org/wiki/Intel%20MPX%20support%20in%20the%20GCC%20compiler
3627 #.  commit e9d1b4f3c60997fe197bf0243cb4a41a44387a88
3628 #. type: Plain text
3629 #: build/C/man2/prctl.2:835
3630 #, fuzzy
3631 #| msgid ""
3632 #| "Enable or disable kernel management of Memory Protection eXtensions "
3633 #| "(MPX)  bounds tables."
3634 msgid ""
3635 "Enable or disable kernel management of Memory Protection eXtensions (MPX)  "
3636 "bounds tables.  The I<arg2>, I<arg3>, I<arg4>, and I<arg5> arguments must be "
3637 "zero."
3638 msgstr ""
3639 "Memory Protection eXtensions (MPX) の境界テーブル (bounds table) のカーネル管"
3640 "理の有効化/無効化を行う。"
3641
3642 #. type: Plain text
3643 #: build/C/man2/prctl.2:848
3644 msgid ""
3645 "MPX is a hardware-assisted mechanism for performing bounds checking on "
3646 "pointers.  It consists of a set of registers storing bounds information and "
3647 "a set of special instruction prefixes that tell the CPU on which "
3648 "instructions it should do bounds enforcement.  There is a limited number of "
3649 "these registers and when there are more pointers than registers, their "
3650 "contents must be \"spilled\" into a set of tables.  These tables are called "
3651 "\"bounds tables\" and the MPX B<prctl>()  operations control whether the "
3652 "kernel manages their allocation and freeing."
3653 msgstr ""
3654 "MPX は、 ポインターの境界チェックを行うハードウェア支援機構である。 この機能"
3655 "は、 境界情報を格納するレジスター群と、 境界チェックをどの命令に課すかを CPU "
3656 "に教えるための特別な命令プレフィックスの集合で構成される。 これらのレジスター"
3657 "数は限られており、 レジスター数よりも多くのポインターがある場合には、 その内"
3658 "容をテーブル群に退避する (spilled) 必要がある。 これらのテーブル群は「境界"
3659 "テーブル (bounds tables)」と呼ばれ、 MPX B<prctl> 命令はカーネルがこれらの割"
3660 "り当てと解放を行うかどうかを制御する。"
3661
3662 #. type: Plain text
3663 #: build/C/man2/prctl.2:858
3664 msgid ""
3665 "When management is enabled, the kernel will take over allocation and freeing "
3666 "of the bounds tables.  It does this by trapping the #BR exceptions that "
3667 "result at first use of missing bounds tables and instead of delivering the "
3668 "exception to user space, it allocates the table and populates the bounds "
3669 "directory with the location of the new table.  For freeing, the kernel "
3670 "checks to see if bounds tables are present for memory which is not "
3671 "allocated, and frees them if so."
3672 msgstr ""
3673 "管理が有効になっている場合、 カーネルが境界テーブルの割り当てと解放を担当す"
3674 "る。 最初に存在しない境界テーブルを使おうとした際に上がる #BR 例外を捕捉し、 "
3675 "ユーザー空間に例外を配送せずに、 テーブルの割り当てを行い、 新しいテーブルに"
3676 "境界情報 (bounds directory) を書き込む。 解放に関しては、 カーネルが割り当て"
3677 "られていないメモリーに対応する境界テーブルが存在するかを確認し、 そうであれば"
3678 "解放を行う。"
3679
3680 #. type: Plain text
3681 #: build/C/man2/prctl.2:865
3682 msgid ""
3683 "Before enabling MPX management using B<PR_MPX_ENABLE_MANAGEMENT>, the "
3684 "application must first have allocated a user-space buffer for the bounds "
3685 "directory and placed the location of that directory in the I<bndcfgu> "
3686 "register."
3687 msgstr ""
3688 "B<PR_MPX_ENABLE_MANAGEMENT> を使って MPX 管理を有効にする前に、 アプリケー"
3689 "ションはまず境界情報管理用のユーザー空間バッファーを割り当て、 その管理情報の"
3690 "場所を I<bndcfgu> レジスターに設定しなければならない。"
3691
3692 #. type: Plain text
3693 #: build/C/man2/prctl.2:872
3694 msgid ""
3695 "These calls will fail if the CPU or kernel does not support MPX.  Kernel "
3696 "support for MPX is enabled via the B<CONFIG_X86_INTEL_MPX> configuration "
3697 "option.  You can check whether the CPU supports MPX by looking for the 'mpx' "
3698 "CPUID bit, like with the following command:"
3699 msgstr ""
3700 "CPU やカーネルが MPX をサポートしていない場合、 これらの呼び出しは失敗する。 "
3701 "カーネルによる MPX のサポートは B<CONFIG_X86_INTEL_MPX> 設定オプションで有効"
3702 "にできる。 CPU が MPX をサポートしているかを確認するには、 以下のように "
3703 "'mpx' CPUID ビットを見ればよい。"
3704
3705 #. type: Plain text
3706 #: build/C/man2/prctl.2:874
3707 msgid "  cat /proc/cpuinfo | grep ' mpx '"
3708 msgstr "  cat /proc/cpuinfo | grep ' mpx '"
3709
3710 #. type: Plain text
3711 #: build/C/man2/prctl.2:877
3712 msgid ""
3713 "A thread may not switch in or out of long (64-bit) mode while MPX is enabled."
3714 msgstr ""
3715 "MPX が有効になっている間は、 スレッドはロング (64 ビット) モードのオン/オフの"
3716 "切り替えはできない。"
3717
3718 #. type: Plain text
3719 #: build/C/man2/prctl.2:879
3720 msgid "All threads in a process are affected by these calls."
3721 msgstr "プロセス内のすべてのスレッドがこれらの呼び出しの影響を受ける。"
3722
3723 #. type: Plain text
3724 #: build/C/man2/prctl.2:888
3725 msgid ""
3726 "The child of a B<fork>(2)  inherits the state of MPX management.  During "
3727 "B<execve>(2), MPX management is reset to a state as if "
3728 "B<PR_MPX_DISABLE_MANAGEMENT> had been called."
3729 msgstr ""
3730 "B<fork>(2) で作成された子プロセスは MPX 管理の状態を継承する。 B<execve>(2) "
3731 "の中で、 MPX 管理は B<PR_MPX_DISABLE_MANAGEMENT> が呼ばれた場合と同じ状態がリ"
3732 "セットされる。"
3733
3734 #. type: Plain text
3735 #: build/C/man2/prctl.2:892
3736 msgid ""
3737 "For further information on Intel MPX, see the kernel source file "
3738 "I<Documentation/x86/intel_mpx.txt>."
3739 msgstr ""
3740 "Intel MPX についての詳しい情報は、カーネルソースファイル I<Documentation/x86/"
3741 "intel_mpx.txt> を参照。"
3742
3743 #. type: Plain text
3744 #: build/C/man2/prctl.2:912
3745 msgid ""
3746 "On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3747 "B<PR_GET_THP_DISABLE>, B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, "
3748 "B<PR_GET_TIMERSLACK>, B<PR_GET_SECUREBITS>, B<PR_MCE_KILL_GET>, and (if it "
3749 "returns)  B<PR_GET_SECCOMP> return the nonnegative values described above.  "
3750 "All other I<option> values return 0 on success.  On error, -1 is returned, "
3751 "and I<errno> is set appropriately."
3752 msgstr ""
3753 "成功すると、 B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3754 "B<PR_GET_THP_DISABLE>, B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, "
3755 "B<PR_GET_TIMERSLACK>, B<PR_GET_SECUREBITS>, B<PR_MCE_KILL_GET>, "
3756 "B<PR_GET_SECCOMP> は上述の負でない値を返す (なお、B<PR_GET_SECCOMP> は返らな"
3757 "い場合もある)。 I<option> が他の値の場合は成功時に 0 を返す。 エラーの場"
3758 "合、-1 を返し、 I<errno> に適切な値を設定する。"
3759
3760 #. type: Plain text
3761 #: build/C/man2/prctl.2:917
3762 msgid "I<arg2> is an invalid address."
3763 msgstr "I<arg2> が不正なアドレスである。"
3764
3765 #. type: Plain text
3766 #: build/C/man2/prctl.2:930
3767 msgid ""
3768 "I<option> is B<PR_SET_SECCOMP>, I<arg2> is B<SECCOMP_MODE_FILTER>, the "
3769 "system was built with B<CONFIG_SECCOMP_FILTER>, and I<arg3> is an invalid "
3770 "address."
3771 msgstr ""
3772 "I<option> が B<PR_SET_SECCOMP> で、 I<arg2> が B<SECCOMP_MODE_FILTER> で、 "
3773 "カーネルが B<CONFIG_SECCOMP_FILTER> を有効にして作成されており、 I<arg3> が無"
3774 "効なアドレスである。"
3775
3776 #. type: Plain text
3777 #: build/C/man2/prctl.2:935
3778 msgid "The value of I<option> is not recognized."
3779 msgstr "I<option> の値が理解できない。"
3780
3781 #. type: Plain text
3782 #: build/C/man2/prctl.2:947
3783 msgid ""
3784 "I<option> is B<PR_MCE_KILL> or B<PR_MCE_KILL_GET> or B<PR_SET_MM>, and "
3785 "unused B<prctl>()  arguments were not specified as zero."
3786 msgstr ""
3787 "I<option> が B<PR_MCE_KILL>, B<PR_MCE_KILL_GET>, B<PR_SET_MM> のいずれかで、"
3788 "かつ未使用の B<prctl>() 引き数に 0 が指定されていなかった。"
3789
3790 #. type: Plain text
3791 #: build/C/man2/prctl.2:952
3792 msgid "I<arg2> is not valid value for this I<option>."
3793 msgstr "I<arg2> が指定された I<option> で有効な値ではない。"
3794
3795 #. type: Plain text
3796 #: build/C/man2/prctl.2:961
3797 msgid ""
3798 "I<option> is B<PR_SET_SECCOMP> or B<PR_GET_SECCOMP>, and the kernel was not "
3799 "configured with B<CONFIG_SECCOMP>."
3800 msgstr ""
3801 "I<option> が B<PR_SET_SECCOMP> か B<PR_GET_SECCOMP> だが、カーネルが "
3802 "B<CONFIG_SECCOMP> を有効にして作成されていなかった。"
3803
3804 #. type: Plain text
3805 #: build/C/man2/prctl.2:971
3806 msgid ""
3807 "I<option> is B<PR_SET_SECCOMP>, I<arg2> is B<SECCOMP_MODE_FILTER>, and the "
3808 "kernel was not configured with B<CONFIG_SECCOMP_FILTER>."
3809 msgstr ""
3810 "I<option> が B<PR_SET_SECCOMP> で、 I<arg2> が B<SECCOMP_MODE_FILTER> で、 "
3811 "カーネルが B<CONFIG_SECCOMP> を有効にして作成されていなかった。"
3812
3813 #. type: Plain text
3814 #: build/C/man2/prctl.2:977
3815 msgid "I<option> is B<PR_SET_MM>, and one of the following is true"
3816 msgstr "I<option> が B<PR_SET_MM> で、以下のいずれかが真である。"
3817
3818 #. type: Plain text
3819 #: build/C/man2/prctl.2:983
3820 msgid "I<arg4> or I<arg5> is nonzero;"
3821 msgstr "I<arg4> が I<arg5> で 0 以外である。"
3822
3823 #. type: Plain text
3824 #: build/C/man2/prctl.2:988
3825 msgid ""
3826 "I<arg3> is greater than B<TASK_SIZE> (the limit on the size of the user "
3827 "address space for this architecture);"
3828 msgstr ""
3829 "I<arg3> が B<TASK_SIZE> よりも大きい  (B<TASK_SIZE> はこのアーキテクチャーで"
3830 "ユーザー空間アドレススペースの最大サイズである)。"
3831
3832 #. type: Plain text
3833 #: build/C/man2/prctl.2:998
3834 msgid ""
3835 "I<arg2> is B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3836 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, or B<PR_SET_MM_START_STACK>, "
3837 "and the permissions of the corresponding memory area are not as required;"
3838 msgstr ""
3839 "I<arg2> が B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3840 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, B<PR_SET_MM_START_STACK> のど"
3841 "れかで、対応するメモリー領域のアクセス許可が要件を満たしていない。"
3842
3843 #. type: Plain text
3844 #: build/C/man2/prctl.2:1010
3845 msgid ""
3846 "I<arg2> is B<PR_SET_MM_START_BRK> or B<PR_SET_MM_BRK>, and I<arg3> is less "
3847 "than or equal to the end of the data segment or specifies a value that would "
3848 "cause the B<RLIMIT_DATA> resource limit to be exceeded."
3849 msgstr ""
3850 "I<arg2> が B<PR_SET_MM_START_BRK> か B<PR_SET_MM_BRK> で、 I<arg3> データセグ"
3851 "メントの末尾と同じかそれより前か、 I<arg3> に B<RLIMIT_DATA> リソースリミット"
3852 "を超えてしまうような値が指定されている。"
3853
3854 #. type: Plain text
3855 #: build/C/man2/prctl.2:1021
3856 msgid ""
3857 "I<option> is B<PR_SET_PTRACER> and I<arg2> is not 0, B<PR_SET_PTRACER_ANY>, "
3858 "or the PID of an existing process."
3859 msgstr ""
3860 "I<option> が B<PR_SET_PTRACER> で I<arg2> が 0, B<PR_SET_PTRACER_ANY>, 既存プ"
3861 "ロセスの PID のいずれでもない。"
3862
3863 #. type: Plain text
3864 #: build/C/man2/prctl.2:1029
3865 msgid ""
3866 "I<option> is B<PR_SET_PDEATHSIG> and I<arg2> is not a valid signal number."
3867 msgstr ""
3868 "I<option> が B<PR_SET_PDEATHSIG> で、 I<arg2> で指定された値は無効なシグナル"
3869 "番号である。"
3870
3871 #. type: Plain text
3872 #: build/C/man2/prctl.2:1040
3873 msgid ""
3874 "I<option> is B<PR_SET_DUMPABLE> and I<arg2> is neither B<SUID_DUMP_DISABLE> "
3875 "nor B<SUID_DUMP_USER>."
3876 msgstr ""
3877 "I<option> が B<PR_SET_DUMPABLE> で、 I<arg2> が B<SUID_DUMP_DISABLE> でも "
3878 "B<SUID_DUMP_USER> でもない。"
3879
3880 #. type: Plain text
3881 #: build/C/man2/prctl.2:1049
3882 msgid ""
3883 "I<option> is B<PR_SET_TIMING> and I<arg2> is not B<PR_TIMING_STATISTICAL>."
3884 msgstr ""
3885 "I<option> が B<PR_SET_TIMING> で、 I<arg2> が B<PR_TIMING_STATISTICAL> ではな"
3886 "い。"
3887
3888 #. type: Plain text
3889 #: build/C/man2/prctl.2:1063
3890 msgid ""
3891 "I<option> is B<PR_SET_NO_NEW_PRIVS> and I<arg2> is not equal to 1 or "
3892 "I<arg3>, I<arg4>, or I<arg5> is nonzero."
3893 msgstr ""
3894 "I<option> が B<PR_SET_NO_NEW_PRIVS> で、 I<arg2> が 1 以外か、 I<arg3>, "
3895 "I<arg4>, I<arg5> のどれかが 0 ではない。"
3896
3897 #. type: Plain text
3898 #: build/C/man2/prctl.2:1075
3899 msgid ""
3900 "I<option> is B<PR_GET_NO_NEW_PRIVS> and I<arg2>, I<arg3>, I<arg4>, or "
3901 "I<arg5> is nonzero."
3902 msgstr ""
3903 "I<option> が B<PR_GET_NO_NEW_PRIVS> で、 I<arg2>, I<arg3>, I<arg4>, I<arg5> "
3904 "のどれかが 0 ではない。"
3905
3906 #. type: Plain text
3907 #: build/C/man2/prctl.2:1086
3908 msgid ""
3909 "I<option> is B<PR_SET_THP_DISABLE> and I<arg3>, I<arg4>, or I<arg5> is "
3910 "nonzero."
3911 msgstr ""
3912 "I<option> が B<PR_SET_THP_DISABLE> で I<arg3>, I<arg4>, I<arg5> のどれかが 0 "
3913 "ではない。"
3914
3915 #. type: Plain text
3916 #: build/C/man2/prctl.2:1098
3917 msgid ""
3918 "I<option> is B<PR_GET_THP_DISABLE> and I<arg2>, I<arg3>, I<arg4>, or I<arg5> "
3919 "is nonzero."
3920 msgstr ""
3921 "I<option> が B<PR_GET_THP_DISABLE> で I<arg2>, I<arg3>, I<arg4>, I<arg5> のい"
3922 "ずれが 0 ではない。"
3923
3924 #. type: Plain text
3925 #: build/C/man2/prctl.2:1110
3926 msgid ""
3927 "I<option> is B<PR_SET_SECUREBITS>, and the caller does not have the "
3928 "B<CAP_SETPCAP> capability, or tried to unset a \"locked\" flag, or tried to "
3929 "set a flag whose corresponding locked flag was set (see B<capabilities>(7))."
3930 msgstr ""
3931 "I<option> が B<PR_SET_SECUREBITS> で、呼び出し元がケーパビリティ "
3932 "B<CAP_SETPCAP> を持っていない。 または、\"locked\" フラグを解除しようとし"
3933 "た。 または、locked フラグがセットされているフラグをセットしようとした "
3934 "(B<capabilities>(7)  参照)。"
3935
3936 #. type: Plain text
3937 #: build/C/man2/prctl.2:1120
3938 msgid ""
3939 "I<option> is B<PR_SET_KEEPCAPS>, and the callers's "
3940 "B<SECURE_KEEP_CAPS_LOCKED> flag is set (see B<capabilities>(7))."
3941 msgstr ""
3942 "I<option> が B<PR_SET_KEEPCAPS> で、呼び出し元のフラグ "
3943 "B<SECURE_KEEP_CAPS_LOCKED> がセットされている (B<capabilities>(7)  参照)。"
3944
3945 #. type: Plain text
3946 #: build/C/man2/prctl.2:1128
3947 msgid ""
3948 "I<option> is B<PR_CAPBSET_DROP>, and the caller does not have the "
3949 "B<CAP_SETPCAP> capability."
3950 msgstr ""
3951 "I<option> が B<PR_CAPBSET_DROP> で、呼び出し元がケーパビリティ "
3952 "B<CAP_SETPCAP> を持っていない。"
3953
3954 #. type: Plain text
3955 #: build/C/man2/prctl.2:1136
3956 msgid ""
3957 "I<option> is B<PR_SET_MM>, and the caller does not have the "
3958 "B<CAP_SYS_RESOURCE> capability."
3959 msgstr ""
3960 "I<option> が B<PR_SET_MM> で、呼び出し元がケーパビリティ B<CAP_SYS_RESOURCE> "
3961 "を持っていない。"
3962
3963 #. type: TP
3964 #: build/C/man2/prctl.2:1136
3965 #, no-wrap
3966 msgid "B<EACCES>"
3967 msgstr "B<EACCES>"
3968
3969 #. type: Plain text
3970 #: build/C/man2/prctl.2:1146
3971 msgid ""
3972 "I<option> is B<PR_SET_MM>, and I<arg3> is B<PR_SET_MM_EXE_FILE>, the file is "
3973 "not executable."
3974 msgstr ""
3975 "I<option> が B<PR_SET_MM>、かつ I<arg3> が B<PR_SET_MM_EXE_FILE> で、ファイル"
3976 "が実行可能ではない。"
3977
3978 #. type: TP
3979 #: build/C/man2/prctl.2:1146
3980 #, no-wrap
3981 msgid "B<EBUSY>"
3982 msgstr "B<EBUSY>"
3983
3984 #. type: Plain text
3985 #: build/C/man2/prctl.2:1157
3986 msgid ""
3987 "I<option> is B<PR_SET_MM>, I<arg3> is B<PR_SET_MM_EXE_FILE>, and this the "
3988 "second attempt to change the I</proc/pid/exe> symbolic link, which is "
3989 "prohibited."
3990 msgstr ""
3991 "I<option> が B<PR_SET_MM> で、 I<arg3> が B<PR_SET_MM_EXE_FILE> で、 I</proc/"
3992 "pid/exe> シンボリックリンクを変更しようとしたが、 禁止されている。"
3993
3994 #. type: TP
3995 #: build/C/man2/prctl.2:1157 build/C/man2/signalfd.2:266
3996 #: build/C/man2/timerfd_create.2:345
3997 #, no-wrap
3998 msgid "B<EBADF>"
3999 msgstr "B<EBADF>"
4000
4001 #.  The following can't actually happen, because prctl() in
4002 #.  seccomp mode will cause SIGKILL.
4003 #.  .TP
4004 #.  .B EPERM
4005 #.  .I option
4006 #.  is
4007 #.  .BR PR_SET_SECCOMP ,
4008 #.  and secure computing mode is already 1.
4009 #. type: Plain text
4010 #: build/C/man2/prctl.2:1176
4011 msgid ""
4012 "I<option> is B<PR_SET_MM>, I<arg3> is B<PR_SET_MM_EXE_FILE>, and the file "
4013 "descriptor passed in I<arg4> is not valid."
4014 msgstr ""
4015 "I<option> が B<PR_SET_MM> で、 I<arg3> が B<PR_SET_MM_EXE_FILE> で、 I<arg4> "
4016 "で渡されたファイルディスクリプターが有効ではない。"
4017
4018 #. type: TP
4019 #: build/C/man2/prctl.2:1176
4020 #, no-wrap
4021 msgid "B<ENXIO>"
4022 msgstr "B<ENXIO>"
4023
4024 #. type: Plain text
4025 #: build/C/man2/prctl.2:1185
4026 msgid ""
4027 "I<option> was B<PR_MPX_ENABLE_MANAGEMENT> or B<PR_MPX_DISABLE_MANAGEMENT> "
4028 "and the kernel or the CPU does not support MPX management.  Check that the "
4029 "kernel and processor have MPX support."
4030 msgstr ""
4031 "I<option> が B<PR_MPX_ENABLE_MANAGEMENT> か B<PR_MPX_DISABLE_MANAGEMENT> "
4032 "で、 カーネルか CPU が MPX の管理をサポートしていない。 カーネルとプロセスが "
4033 "MPX をサポートしているか確認すること。"
4034
4035 #.  The library interface was added in glibc 2.0.6
4036 #. type: Plain text
4037 #: build/C/man2/prctl.2:1190
4038 msgid "The B<prctl>()  system call was introduced in Linux 2.1.57."
4039 msgstr "B<prctl>()  システムコールは Linux 2.1.57 で導入された。"
4040
4041 #. type: Plain text
4042 #: build/C/man2/prctl.2:1197
4043 msgid ""
4044 "This call is Linux-specific.  IRIX has a B<prctl>()  system call (also "
4045 "introduced in Linux 2.1.44 as irix_prctl on the MIPS architecture), with "
4046 "prototype"
4047 msgstr ""
4048 "このコールは Linux 特有である。 IRIX には B<prctl>()  システムコールがあるが "
4049 "(MIPS アーキテクチャーにおいて irix_prctl として Linux 2.1.44 で同様に導入さ"
4050 "れた)、 そのプロトタイプは"
4051
4052 #. type: Plain text
4053 #: build/C/man2/prctl.2:1199
4054 msgid "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
4055 msgstr "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
4056
4057 #. type: Plain text
4058 #: build/C/man2/prctl.2:1204
4059 msgid ""
4060 "and options to get the maximum number of processes per user, get the maximum "
4061 "number of processors the calling process can use, find out whether a "
4062 "specified process is currently blocked, get or set the maximum stack size, "
4063 "and so on."
4064 msgstr ""
4065 "である。ユーザー当りのプロセス最大数を取得するオプション、 プロセスの使用でき"
4066 "る最大プロッサー数を取得するオプション、 現在特定のプロセスが停止(block)させ"
4067 "られているかどうか調べるオプション、 スタックサイズの最大値の取得や設定を行な"
4068 "うオプションなどがある。"
4069
4070 #. type: Plain text
4071 #: build/C/man2/prctl.2:1207
4072 msgid "B<signal>(2), B<core>(5)"
4073 msgstr "B<signal>(2), B<core>(5)"
4074
4075 #. type: TH
4076 #: build/C/man3/profil.3:28
4077 #, no-wrap
4078 msgid "PROFIL"
4079 msgstr "PROFIL"
4080
4081 #. type: Plain text
4082 #: build/C/man3/profil.3:31
4083 msgid "profil - execution time profile"
4084 msgstr "profil - 実行時間プロファイル (profile)"
4085
4086 #. type: Plain text
4087 #: build/C/man3/profil.3:34
4088 #, no-wrap
4089 msgid "B<#include E<lt>unistd.hE<gt>>\n"
4090 msgstr "B<#include E<lt>unistd.hE<gt>>\n"
4091
4092 #. type: Plain text
4093 #: build/C/man3/profil.3:37
4094 #, no-wrap
4095 msgid ""
4096 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
4097 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
4098 msgstr ""
4099 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
4100 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
4101
4102 #. type: Plain text
4103 #: build/C/man3/profil.3:46
4104 msgid ""
4105 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
4106 msgstr ""
4107 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
4108
4109 #. type: Plain text
4110 #: build/C/man3/profil.3:68
4111 msgid ""
4112 "This routine provides a means to find out in what areas your program spends "
4113 "most of its time.  The argument I<buf> points to I<bufsiz> bytes of core.  "
4114 "Every virtual 10 milliseconds, the user's program counter (PC)  is examined: "
4115 "I<offset> is subtracted and the result is multiplied by I<scale> and divided "
4116 "by 65536.  If the resulting value is less than I<bufsiz>, then the "
4117 "corresponding entry in I<buf> is incremented.  If I<buf> is NULL, profiling "
4118 "is disabled."
4119 msgstr ""
4120 "このルーティンはプログラムのどこの部分で時間を費やしているかを調べる 手段を提"
4121 "供する。引き数 I<buf> は I<bufsiz> バイトのメモリーを指している。仮想の 10 ミ"
4122 "リ秒ごとに、ユーザーの プログラムカウンター (PC) が検査される: I<offset> が引"
4123 "かれ、その結果が I<scale> 倍され 65536 で割られる。 結果が I<bufsiz> より小さ"
4124 "い場合は I<buf> の対応するエントリーがインクリメントされる。 I<buf> が NULL "
4125 "ならば、プロファイル (profile) は無効にされる。"
4126
4127 #. type: Plain text
4128 #: build/C/man3/profil.3:70
4129 msgid "Zero is always returned."
4130 msgstr "常に 0 が返される。"
4131
4132 #. type: Plain text
4133 #: build/C/man3/profil.3:72
4134 msgid "Similar to a call in SVr4 (but not POSIX.1-2001)."
4135 msgstr "SVr4 のコールに似ている (しかし POSIX.1-2001 ではない)。"
4136
4137 #. type: Plain text
4138 #: build/C/man3/profil.3:78
4139 msgid ""
4140 "B<profil>()  cannot be used on a program that also uses B<ITIMER_PROF> "
4141 "interval timers (see B<setitimer>(2))."
4142 msgstr ""
4143 "B<profil>()  は B<ITIMER_PROF> インターバルタイマーも使用しているプログラムで"
4144 "は使用できない (B<setitimer>(2)  参照)。"
4145
4146 #. type: Plain text
4147 #: build/C/man3/profil.3:81
4148 msgid ""
4149 "True kernel profiling provides more accurate results.  Libc 4.4 contained a "
4150 "kernel patch providing a system call profil."
4151 msgstr ""
4152 "本当のカーネルプロファイルはより正確な結果を与える。 libc 4.4 にはシステム"
4153 "コール profil を提供するための カーネルパッチが含まれていた。"
4154
4155 #. type: Plain text
4156 #: build/C/man3/profil.3:87
4157 msgid ""
4158 "B<gprof>(1), B<sprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
4159 msgstr ""
4160 "B<gprof>(1), B<sprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
4161
4162 #. type: TH
4163 #: build/C/man3/psignal.3:30
4164 #, no-wrap
4165 msgid "PSIGNAL"
4166 msgstr "PSIGNAL"
4167
4168 #. type: TH
4169 #: build/C/man3/psignal.3:30
4170 #, no-wrap
4171 msgid "2010-10-06"
4172 msgstr "2010-10-06"
4173
4174 #. type: TH
4175 #: build/C/man3/psignal.3:30 build/C/man3/raise.3:29
4176 #: build/C/man7/sigevent.7:26
4177 #, no-wrap
4178 msgid "GNU"
4179 msgstr "GNU"
4180
4181 #. type: Plain text
4182 #: build/C/man3/psignal.3:33
4183 msgid "psignal, psiginfo - print signal message"
4184 msgstr "psignal, psiginfo - シグナルメッセージを表示"
4185
4186 #. type: Plain text
4187 #: build/C/man3/psignal.3:39
4188 #, no-wrap
4189 msgid ""
4190 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
4191 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
4192 msgstr ""
4193 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
4194 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
4195
4196 #. type: Plain text
4197 #: build/C/man3/psignal.3:41
4198 #, no-wrap
4199 msgid "B<extern const char *const >I<sys_siglist>B<[];>\n"
4200 msgstr "B<extern const char *const >I<sys_siglist>B<[];>\n"
4201
4202 #. type: Plain text
4203 #: build/C/man3/psignal.3:50
4204 msgid "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
4205 msgstr "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
4206
4207 #. type: Plain text
4208 #: build/C/man3/psignal.3:53
4209 msgid ""
4210 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
4211 "200809L"
4212 msgstr ""
4213 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
4214 "200809L"
4215
4216 #. type: Plain text
4217 #: build/C/man3/psignal.3:56
4218 msgid "I<sys_siglist>: _BSD_SOURCE"
4219 msgstr "I<sys_siglist>: _BSD_SOURCE"
4220
4221 #. type: Plain text
4222 #: build/C/man3/psignal.3:65
4223 msgid ""
4224 "The B<psignal>()  function displays a message on I<stderr> consisting of the "
4225 "string I<s>, a colon, a space, a string describing the signal number I<sig>, "
4226 "and a trailing newline.  If the string I<s> is NULL or empty, the colon and "
4227 "space are omitted.  If I<sig> is invalid, the message displayed will "
4228 "indicate an unknown signal."
4229 msgstr ""
4230 "B<psignal>() 関数は、文字列 I<s>、コロン、スペース、シグナル番号 I<sig> を説"
4231 "明する文字列、終端の改行から構成されるメッセージを I<stderr> に表示する。 文"
4232 "字列 I<s> が NULL か空の場合、コロンとスペースは省略される。 I<sig> が不正な"
4233 "らば、表示される メッセージは未知のシグナルを示す。"
4234
4235 #. type: Plain text
4236 #: build/C/man3/psignal.3:86
4237 msgid ""
4238 "The B<psiginfo>()  function is like B<psignal>(), except that it displays "
4239 "information about the signal described by I<pinfo>, which should point to a "
4240 "valid I<siginfo_t> structure.  As well as the signal description, "
4241 "B<psiginfo>()  displays information about the origin of the signal, and "
4242 "other information relevant to the signal (e.g., the relevant memory address "
4243 "for hardware-generated signals, the child process ID for B<SIGCHLD>, and the "
4244 "user ID and process ID of the sender, for signals set using B<kill>(2)  or "
4245 "B<sigqueue>(3))."
4246 msgstr ""
4247 "B<psiginfo>() 関数は B<psignal>() と同じだが、 I<pinfo> に書かれたシグナルの"
4248 "情報を表示する点が異なる。 I<pinfo> は有効な I<siginfo_t> 構造体を指している"
4249 "必要がある。 B<psiginfo>() は、 シグナルの説明だけでなく、 シグナルの送信元や"
4250 "そのシグナルに関連するその他の情報も表示する (例えば、ハードウェアが発生した"
4251 "シグナルの関連メモリーアドレス、 B<SIGCHLD> の子プロセス ID、 I<kill>(2) や "
4252 "B<sigqueue>(3) を使って送信されたシグナルの送信元プロセスのユーザー ID とプロ"
4253 "セス ID など)。"
4254
4255 #. type: Plain text
4256 #: build/C/man3/psignal.3:89
4257 msgid ""
4258 "The array I<sys_siglist> holds the signal description strings indexed by "
4259 "signal number."
4260 msgstr ""
4261 "配列 I<sys_siglist> はシグナルを説明する文字列を保持しており、 配列へのアクセ"
4262 "スにはシグナル番号を添え字として用いる事ができる。"
4263
4264 #. type: Plain text
4265 #: build/C/man3/psignal.3:95
4266 msgid "The B<psignal>()  and B<psiginfo>()  functions return no value."
4267 msgstr "関数 B<psignal>() と B<psiginfo>() は、値を返さない。"
4268
4269 #. type: Plain text
4270 #: build/C/man3/psignal.3:99
4271 msgid "The B<psiginfo>()  function was added to glibc in version 2.10."
4272 msgstr "B<psiginfo>() 関数は glibc バージョン 2.10 で追加された。"
4273
4274 #. type: Plain text
4275 #: build/C/man3/psignal.3:101
4276 msgid "POSIX.1-2008, 4.3BSD."
4277 msgstr "POSIX.1-2008, 4.3BSD."
4278
4279 #. type: Plain text
4280 #: build/C/man3/psignal.3:105
4281 msgid "In glibc versions up to 2.12, B<psiginfo>()  had the following bugs:"
4282 msgstr ""
4283 "バージョン 2.12 までの glibc では B<psiginfo>() には以下のバグがあった。"
4284
4285 #.  FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=12107
4286 #.  Reportedly now fixed; check glibc 2.13
4287 #. type: Plain text
4288 #: build/C/man3/psignal.3:109
4289 msgid "In some circumstances, a trailing newline is not printed."
4290 msgstr "特定の状況で、末尾の改行が出力されない。"
4291
4292 #.  FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=12108
4293 #.  Reportedly now fixed; check glibc 2.13
4294 #. type: Plain text
4295 #: build/C/man3/psignal.3:113
4296 msgid "Additional details are not displayed for real-time signals."
4297 msgstr "リアルタイムシグナルの場合に、追加の詳細情報が表示されない。"
4298
4299 #. type: Plain text
4300 #: build/C/man3/psignal.3:118
4301 msgid "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
4302 msgstr "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
4303
4304 #. type: TH
4305 #: build/C/man3/raise.3:29
4306 #, no-wrap
4307 msgid "RAISE"
4308 msgstr "RAISE"
4309
4310 #. type: TH
4311 #: build/C/man3/raise.3:29
4312 #, no-wrap
4313 msgid "2014-03-10"
4314 msgstr "2014-03-10"
4315
4316 #. type: Plain text
4317 #: build/C/man3/raise.3:32
4318 msgid "raise - send a signal to the caller"
4319 msgstr "raise - 呼び出し元にシグナルを送る"
4320
4321 #. type: Plain text
4322 #: build/C/man3/raise.3:37
4323 #, no-wrap
4324 msgid "B<int raise(int >I<sig>B<);>\n"
4325 msgstr "B<int raise(int >I<sig>B<);>\n"
4326
4327 #. type: Plain text
4328 #: build/C/man3/raise.3:43
4329 msgid ""
4330 "The B<raise>()  function sends a signal to the calling process or thread.  "
4331 "In a single-threaded program it is equivalent to"
4332 msgstr ""
4333 "B<raise>()  関数は、呼び出し元のプロセスもしくはスレッドにシグナルを送る。 シ"
4334 "ングルスレッドのプログラムでは、以下と等価である。"
4335
4336 #. type: Plain text
4337 #: build/C/man3/raise.3:47
4338 #, no-wrap
4339 msgid "kill(getpid(), sig);\n"
4340 msgstr "kill(getpid(), sig);\n"
4341
4342 #. type: Plain text
4343 #: build/C/man3/raise.3:51
4344 msgid "In a multithreaded program it is equivalent to"
4345 msgstr "マルチスレッドのプログラムでは、以下と等価である。"
4346
4347 #. type: Plain text
4348 #: build/C/man3/raise.3:55
4349 #, no-wrap
4350 msgid "pthread_kill(pthread_self(), sig);\n"
4351 msgstr "pthread_kill(pthread_self(), sig);\n"
4352
4353 #. type: Plain text
4354 #: build/C/man3/raise.3:61
4355 msgid ""
4356 "If the signal causes a handler to be called, B<raise>()  will return only "
4357 "after the signal handler has returned."
4358 msgstr ""
4359 "シグナルに起因してシグナルハンドラーが呼び出される場合には、 B<raise>()  が返"
4360 "るのは必ずシグナルハンドラーが返った後になる。"
4361
4362 #. type: Plain text
4363 #: build/C/man3/raise.3:64
4364 msgid "B<raise>()  returns 0 on success, and nonzero for failure."
4365 msgstr "成功した場合は 0 を、失敗した場合は 0 以外の値を返す。"
4366
4367 #. type: Plain text
4368 #: build/C/man3/raise.3:69
4369 msgid "The B<raise>()  function is thread-safe."
4370 msgstr "B<raise>() 関数はスレッドセーフである。"
4371
4372 #. type: Plain text
4373 #: build/C/man3/raise.3:71 build/C/man2/signal.2:112
4374 msgid "C89, C99, POSIX.1-2001."
4375 msgstr "C89, C99, POSIX.1-2001."
4376
4377 #.  2.3.2 used the obsolete tkill(), if available.
4378 #. type: Plain text
4379 #: build/C/man3/raise.3:82
4380 msgid ""
4381 "Since version 2.3.3, glibc implements B<raise>()  by calling B<tgkill>(2), "
4382 "if the kernel supports that system call.  Older glibc versions implemented "
4383 "B<raise>()  using B<kill>(2)."
4384 msgstr ""
4385 "glibc バージョン 2.3.3 以降では、カーネルが B<tgkill>(2) システムコールをサ"
4386 "ポートしている場合はB<raise>() は B<tgkill>(2) を使って実装されている。古い"
4387 "バージョンの glibc では、B<raise>() は B<kill>(2) を使って実装されている。"
4388
4389 #. type: Plain text
4390 #: build/C/man3/raise.3:89
4391 msgid ""
4392 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
4393 "B<signal>(7)"
4394 msgstr ""
4395 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
4396 "B<signal>(7)"
4397
4398 #. type: TH
4399 #: build/C/man2/restart_syscall.2:33
4400 #, no-wrap
4401 msgid "RESTART_SYSCALL"
4402 msgstr "RESTART_SYSCALL"
4403
4404 #. type: TH
4405 #: build/C/man2/restart_syscall.2:33 build/C/man2/sgetmask.2:26
4406 #: build/C/man2/sigreturn.2:30 build/C/man3/sigvec.3:26
4407 #: build/C/man2/tkill.2:29
4408 #, no-wrap
4409 msgid "2014-12-31"
4410 msgstr "2014-12-31"
4411
4412 #. type: Plain text
4413 #: build/C/man2/restart_syscall.2:36
4414 msgid ""
4415 "restart_syscall - restart a system call after interruption by a stop signal"
4416 msgstr ""
4417 "restart_syscall - 一時停止シグナルによる割り込み後にシステムコールを再開する"
4418
4419 #. type: Plain text
4420 #: build/C/man2/restart_syscall.2:38
4421 msgid "B<int restart_syscall(void);>"
4422 msgstr "B<int restart_syscall(void);>"
4423
4424 #. type: Plain text
4425 #: build/C/man2/restart_syscall.2:41
4426 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
4427 msgstr ""
4428 "I<注>: このシステムコールには、glibc のラッパー関数はない。「注意」の節を参"
4429 "照。"
4430
4431 #. type: Plain text
4432 #: build/C/man2/restart_syscall.2:53
4433 msgid ""
4434 "The B<restart_syscall>()  system call is used to restart certain system "
4435 "calls after a process that was stopped by a signal (e.g., B<SIGSTOP> or "
4436 "B<SIGTSTP>)  is later resumed after receiving a B<SIGCONT> signal.  This "
4437 "system call is designed only for internal use by the kernel."
4438 msgstr ""
4439 "B<restart_syscall>() システムコールは、 シグナル (B<SIGSTOP> や B<SIGTSTP> な"
4440 "ど) によって停止されたプロセスが B<SIGCONT> シグナルを受信して再開された後"
4441 "に、 特定のシステムコールを再開するのに使用される。 このシステムコールはカー"
4442 "ネル内部での利用のみを想定している。"
4443
4444 #.  These system calls correspond to the special internal errno value
4445 #.  ERESTART_RESTARTBLOCK. Each of the system calls has a "restart"
4446 #.  helper function that is invoked by restart_syscall().
4447 #.  Notable (as at Linux 3.17) is that poll() has such a "restart"
4448 #.  function, but ppoll(), select(), and pselect() do not.
4449 #.  This means that the latter system calls do not take account of the
4450 #.  time spent in the stopped state when restarting.
4451 #. type: Plain text
4452 #: build/C/man2/restart_syscall.2:88
4453 msgid ""
4454 "B<restart_syscall>()  is used for restarting only those system calls that, "
4455 "when restarted, should adjust their time-related parameters\\(emnamely "
4456 "B<poll>(2)  (since Linux 2.6.24), B<nanosleep>(2)  (since Linux 2.6), "
4457 "B<clock_nanosleep>(2)  (since Linux 2.6), and B<futex>(2), when employed "
4458 "with the B<FUTEX_WAIT> (since Linux 2.6.22)  and B<FUTEX_WAIT_BITSET> (since "
4459 "Linux 2.6.31)  operations.  B<restart_syscall>()  restarts the interrupted "
4460 "system call with a time argument that is suitably adjusted to account for "
4461 "the time that has already elapsed (including the time where the process was "
4462 "stopped by a signal).  Without the B<restart_syscall>()  mechanism, "
4463 "restarting these system calls would not correctly deduct the already elapsed "
4464 "time when the process continued execution."
4465 msgstr ""
4466 "B<restart_syscall>() は、 再開時に時刻関連のパラメーターを調整する必要がある"
4467 "システムコールを再開させる場合にのみ使用される。 概要するシステムコールは "
4468 "B<poll>(2) (Linux 2.6.24 以降)、 B<nanosleep>(2) (Linux 2.6 以降)、 "
4469 "B<clock_nanosleep>(2) (Linux 2.6 以降)、 B<FUTEX_WAIT> (Linux 2.6.22 以降) "
4470 "や B<FUTEX_WAIT_BITSET> (Linux 2.6.31 以降) 操作を利用した場合の B<futex>(2) "
4471 "である。 B<restart_syscall>() は、 中断されたシステムコールを、 経過した時間 "
4472 "(プロセスがシグナルにより停止されていた時間も含む) を考慮に入れて適切に調整し"
4473 "た時刻引き数で再開する。 B<restart_syscall>() の仕組みがないと、 これらのシス"
4474 "テムコールの再開で、 プロセスが実行を継続する際にすでに経過した時間を正しく減"
4475 "算できない。"
4476
4477 #. type: Plain text
4478 #: build/C/man2/restart_syscall.2:92
4479 msgid ""
4480 "The return value of B<restart_syscall>()  is the return value of whatever "
4481 "system call is being restarted."
4482 msgstr ""
4483 "B<restart_syscall>() の返り値は、 再開中のシステムコールの返り値となる。"
4484
4485 #. type: Plain text
4486 #: build/C/man2/restart_syscall.2:96
4487 msgid ""
4488 "I<errno> is set as per the errors for whatever system call is being "
4489 "restarted by B<restart_syscall>()."
4490 msgstr ""
4491 "I<errno> は B<restart_syscall>() が再開しているシステムコールのエラーに基づい"
4492 "て設定される。"
4493
4494 #. type: Plain text
4495 #: build/C/man2/restart_syscall.2:100
4496 msgid "The B<restart_syscall>()  system call is present since Linux 2.6."
4497 msgstr "B<restart_syscall>() システムコールは Linux 2.6 以降に存在する。"
4498
4499 #. type: Plain text
4500 #: build/C/man2/restart_syscall.2:102
4501 msgid "This system call is Linux-specific."
4502 msgstr "このシステムコールは Linux 固有である。"
4503
4504 #. type: Plain text
4505 #: build/C/man2/restart_syscall.2:106
4506 msgid ""
4507 "There is no glibc wrapper for this system call, because it is intended for "
4508 "use only by the kernel and should never be called by applications."
4509 msgstr ""
4510 "このシステムコールには glibc のラッパー関数はない。 それはカーネルによる利用"
4511 "だけが想定されており、 アプリケーションは決してこのシステムコールを呼び出すべ"
4512 "きではない。"
4513
4514 #. type: Plain text
4515 #: build/C/man2/restart_syscall.2:128
4516 msgid ""
4517 "The kernel uses B<restart_syscall>()  to ensure that when a system call is "
4518 "restarted after a process has been stopped by a signal and then resumed by "
4519 "B<SIGCONT>, then the time that the process spent in the stopped state is "
4520 "counted against the timeout interval specified in the original system call.  "
4521 "In the case of system calls that take a timeout argument and automatically "
4522 "restart after a stop signal plus B<SIGCONT>, but which do not have the "
4523 "B<restart_syscall>()  mechanism built in, then, after the process resumes "
4524 "execution, the time that the process spent in the stop state is I<not> "
4525 "counted against the timeout value.  Notable examples of system calls that "
4526 "suffer this problem are B<ppoll>(2), B<select>(2), and B<pselect>(2)."
4527 msgstr ""
4528 "カーネルは B<restart_syscall>() を使用することで、 シグナルにより停止されたプ"
4529 "ロセスが B<SIGCONT> により再開された後にシステムコールが再開される際に、 元の"
4530 "システムコールに指定されたタイムアウト時間の計算に、 プロセスが停止中に経過し"
4531 "た時間が含まれることを保証する。 タイムアウト引き数を取り、停止シグナルの後"
4532 "に B<SIGCONT> があった場合自動的に再開するシステムコールだが、 そのシステム"
4533 "コールに B<restart_syscall>() の仕組みが組込まれていない場合には、 プロセスの"
4534 "実行が再開された後、 停止中にプロセスが消費した時間はタイムアウト値としてカウ"
4535 "ント「されない」。 この問題を持つ有名なシステムコールとしては B<ppoll>(2), "
4536 "B<select>(2), B<pselect>(2) がある。"
4537
4538 #
4539 #. type: Plain text
4540 #: build/C/man2/restart_syscall.2:135
4541 msgid ""
4542 "From user space, the operation of B<restart_syscall>()  is largely "
4543 "invisible: to the process that made the system call that is restarted, it "
4544 "appears as though that system call executed and returned in the usual "
4545 "fashion."
4546 msgstr ""
4547 "ユーザー空間からは B<restart_syscall>() の動作はほとんど見えない。 再開された"
4548 "システムコールを呼び出したプロセスには、 そのシステムコールが通常通り実行され"
4549 "返ったように見える。"
4550
4551 #.  FIXME . ppoll(2), select(2), and pselect(2)
4552 #.      should probably get the restart_syscall() treatment:
4553 #.      If a select() call is suspended by stop-sig+SIGCONT, the time
4554 #.      spent suspended is *not* deducted when the select() is restarted.
4555 #.  FIXME . check whether recvmmsg() handles stop-sig+SIGCONT properly.
4556 #. type: Plain text
4557 #: build/C/man2/restart_syscall.2:144
4558 msgid "B<sigaction>(2), B<sigreturn>(2), B<signal>(7)"
4559 msgstr "B<sigaction>(2), B<sigreturn>(2), B<signal>(7)"
4560
4561 #. type: TH
4562 #: build/C/man2/rt_sigqueueinfo.2:25
4563 #, no-wrap
4564 msgid "RT_SIGQUEUEINFO"
4565 msgstr "RT_SIGQUEUEINFO"
4566
4567 #. type: TH
4568 #: build/C/man2/rt_sigqueueinfo.2:25
4569 #, no-wrap
4570 msgid "2012-07-13"
4571 msgstr "2012-07-13"
4572
4573 #. type: Plain text
4574 #: build/C/man2/rt_sigqueueinfo.2:28
4575 msgid "rt_sigqueueinfo, rt_tgsigqueueinfo - queue a signal and data"
4576 msgstr ""
4577
4578 #. type: Plain text
4579 #: build/C/man2/rt_sigqueueinfo.2:31
4580 #, no-wrap
4581 msgid "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
4582 msgstr "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
4583
4584 #. type: Plain text
4585 #: build/C/man2/rt_sigqueueinfo.2:34
4586 #, no-wrap
4587 msgid ""
4588 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
4589 "B<                      siginfo_t *>I<uinfo>B<);>\n"
4590 msgstr ""
4591 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
4592 "B<                      siginfo_t *>I<uinfo>B<);>\n"
4593
4594 #. type: Plain text
4595 #: build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/sgetmask.2:36
4596 #: build/C/man2/tkill.2:41
4597 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
4598 msgstr ""
4599 "I<注>: これらのシステムコールには、glibc のラッパー関数はない。「注意」の節を"
4600 "参照。"
4601
4602 #. type: Plain text
4603 #: build/C/man2/rt_sigqueueinfo.2:50
4604 msgid ""
4605 "The B<rt_sigqueueinfo>()  and B<rt_tgsigqueueinfo>()  system calls are the "
4606 "low-level interfaces used to send a signal plus data to a process or "
4607 "thread.  The receiver of the signal can obtain the accompanying data by "
4608 "establishing a signal handler with the B<sigaction>(2)  B<SA_SIGINFO> flag."
4609 msgstr ""
4610
4611 #. type: Plain text
4612 #: build/C/man2/rt_sigqueueinfo.2:56
4613 msgid ""
4614 "These system calls are not intended for direct application use; they are "
4615 "provided to allow the implementation of B<sigqueue>(3)  and "
4616 "B<pthread_sigqueue>(3)."
4617 msgstr ""
4618
4619 #. type: Plain text
4620 #: build/C/man2/rt_sigqueueinfo.2:68
4621 msgid ""
4622 "The B<rt_sigqueueinfo>()  system call sends the signal I<sig> to the thread "
4623 "group with the ID I<tgid>.  (The term \"thread group\" is synonymous with "
4624 "\"process\", and I<tid> corresponds to the traditional UNIX process ID.)  "
4625 "The signal will be delivered to an arbitrary member of the thread group (i."
4626 "e., one of the threads that is not currently blocking the signal)."
4627 msgstr ""
4628
4629 #. type: Plain text
4630 #: build/C/man2/rt_sigqueueinfo.2:79
4631 msgid ""
4632 "The I<uinfo> argument specifies the data to accompany the signal.  This "
4633 "argument is a pointer to a structure of type I<siginfo_t>, described in "
4634 "B<sigaction>(2)  (and defined by including I<E<lt>sigaction.hE<gt>>).  The "
4635 "caller should set the following fields in this structure:"
4636 msgstr ""
4637
4638 #. type: TP
4639 #: build/C/man2/rt_sigqueueinfo.2:79 build/C/man7/sigevent.7:88
4640 #: build/C/man2/wait.2:316
4641 #, no-wrap
4642 msgid "I<si_code>"
4643 msgstr "I<si_code>"
4644
4645 #.  tkill(2) or
4646 #. type: Plain text
4647 #: build/C/man2/rt_sigqueueinfo.2:95
4648 msgid ""
4649 "This must be one of the B<SI_*> codes in the Linux kernel source file "
4650 "I<include/asm-generic/siginfo.h>, with the restriction that the code must be "
4651 "negative (i.e., cannot be B<SI_USER>, which is used by the kernel to "
4652 "indicate a signal sent by B<kill>(2))  and cannot (since Linux 2.6.39) be "
4653 "B<SI_TKILL> (which is used by the kernel to indicate a signal sent using "
4654 "B<tgkill>(2))."
4655 msgstr ""
4656
4657 #. type: TP
4658 #: build/C/man2/rt_sigqueueinfo.2:95 build/C/man2/wait.2:295
4659 #, no-wrap
4660 msgid "I<si_pid>"
4661 msgstr "I<si_pid>"
4662
4663 #. type: Plain text
4664 #: build/C/man2/rt_sigqueueinfo.2:99
4665 msgid ""
4666 "This should be set to a process ID, typically the process ID of the sender."
4667 msgstr ""
4668
4669 #. type: TP
4670 #: build/C/man2/rt_sigqueueinfo.2:99 build/C/man2/wait.2:298
4671 #, no-wrap
4672 msgid "I<si_uid>"
4673 msgstr "I<si_uid>"
4674
4675 #. type: Plain text
4676 #: build/C/man2/rt_sigqueueinfo.2:103
4677 msgid ""
4678 "This should be set to a user ID, typically the real user ID of the sender."
4679 msgstr ""
4680
4681 #. type: TP
4682 #: build/C/man2/rt_sigqueueinfo.2:103 build/C/man7/sigevent.7:96
4683 #, no-wrap
4684 msgid "I<si_value>"
4685 msgstr "I<si_value>"
4686
4687 #. type: Plain text
4688 #: build/C/man2/rt_sigqueueinfo.2:110
4689 msgid ""
4690 "This field contains the user data to accompany the signal.  For more "
4691 "information, see the description of the last (I<union sigval>)  argument of "
4692 "B<sigqueue>(3)."
4693 msgstr ""
4694
4695 #. type: Plain text
4696 #: build/C/man2/rt_sigqueueinfo.2:117
4697 msgid ""
4698 "Internally, the kernel sets the I<si_signo> field to the value specified in "
4699 "I<sig>, so that the receiver of the signal can also obtain the signal number "
4700 "via that field."
4701 msgstr ""
4702
4703 #. type: Plain text
4704 #: build/C/man2/rt_sigqueueinfo.2:129
4705 msgid ""
4706 "The B<rt_tgsigqueueinfo>()  system call is like B<rt_sigqueueinfo>(), but "
4707 "sends the signal and data to the single thread specified by the combination "
4708 "of I<tgid>, a thread group ID, and I<tid>, a thread in that thread group."
4709 msgstr ""
4710
4711 #. type: Plain text
4712 #: build/C/man2/rt_sigqueueinfo.2:134
4713 msgid ""
4714 "On success, these system calls return 0.  On error, they return -1 and "
4715 "I<errno> is set to indicate the error."
4716 msgstr ""
4717
4718 #. type: TP
4719 #: build/C/man2/rt_sigqueueinfo.2:135 build/C/man3/sigqueue.3:92
4720 #: build/C/man2/sigwaitinfo.2:115 build/C/man2/timer_create.2:178
4721 #, no-wrap
4722 msgid "B<EAGAIN>"
4723 msgstr "B<EAGAIN>"
4724
4725 #. type: Plain text
4726 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man3/sigqueue.3:98
4727 msgid ""
4728 "The limit of signals which may be queued has been reached.  (See "
4729 "B<signal>(7)  for further information.)"
4730 msgstr ""
4731 "待ち行列に入れられるシグナルの最大数に達した (より詳しい情報は B<signal>(7)  "
4732 "を参照すること)。"
4733
4734 #. type: Plain text
4735 #: build/C/man2/rt_sigqueueinfo.2:148
4736 msgid "I<sig>, I<tgid>, or I<tid> was invalid."
4737 msgstr ""
4738
4739 #. type: Plain text
4740 #: build/C/man2/rt_sigqueueinfo.2:156
4741 msgid ""
4742 "The caller does not have permission to send the signal to the target.  For "
4743 "the required permissions, see B<kill>(2).  Or: I<uinfo-E<gt>si_code> is "
4744 "invalid."
4745 msgstr ""
4746
4747 #. type: Plain text
4748 #: build/C/man2/rt_sigqueueinfo.2:162
4749 msgid "B<rt_sigqueueinfo>(): No thread group matching I<tgid> was found."
4750 msgstr ""
4751
4752 #. type: Plain text
4753 #: build/C/man2/rt_sigqueueinfo.2:169
4754 msgid "B<rt_tgsigqueinfo>(): No thread matching I<tgid> and I<tid> was found."
4755 msgstr ""
4756
4757 #. type: Plain text
4758 #: build/C/man2/rt_sigqueueinfo.2:176
4759 msgid ""
4760 "The B<rt_sigqueueinfo>()  system call was added to Linux in version 2.2.  "
4761 "The B<rt_tgsigqueueinfo>()  system call was added to Linux in version 2.6.31."
4762 msgstr ""
4763
4764 #. type: Plain text
4765 #: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/sgetmask.2:75
4766 #: build/C/man2/timerfd_create.2:380
4767 msgid "These system calls are Linux-specific."
4768 msgstr "これらのシステムコールは Linux 固有である。"
4769
4770 #. type: Plain text
4771 #: build/C/man2/rt_sigqueueinfo.2:183
4772 msgid ""
4773 "Since these system calls are not intended for application use, there are no "
4774 "glibc wrapper functions; use B<syscall>(2)  in the unlikely case that you "
4775 "want to call them directly."
4776 msgstr ""
4777 "これらのシステムコールはアプリケーションでの使用を目的として用意されたわけで"
4778 "はないので、 glibc のラッパー関数は存在しない。おそらくないと思うが、このシス"
4779 "テムコールを直接呼び出したい場合は B<syscall>(2) を使うこと。"
4780
4781 #. type: Plain text
4782 #: build/C/man2/rt_sigqueueinfo.2:188
4783 msgid ""
4784 "As with B<kill>(2), the null signal (0) can be used to check if the "
4785 "specified process or thread exists."
4786 msgstr ""
4787
4788 #. type: Plain text
4789 #: build/C/man2/rt_sigqueueinfo.2:196
4790 msgid ""
4791 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4792 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4793 msgstr ""
4794 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4795 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4796
4797 #. type: TH
4798 #: build/C/man2/s390_runtime_instr.2:25
4799 #, no-wrap
4800 msgid "S390_RUNTIME_INSTR"
4801 msgstr ""
4802
4803 #. type: TH
4804 #: build/C/man2/s390_runtime_instr.2:25
4805 #, no-wrap
4806 msgid "2012-12-17"
4807 msgstr "2012-12-17"
4808
4809 #. type: Plain text
4810 #: build/C/man2/s390_runtime_instr.2:28
4811 msgid "s390_runtime_instr - enable/disable s390 CPU run-time instrumentation"
4812 msgstr ""
4813
4814 #. type: Plain text
4815 #: build/C/man2/s390_runtime_instr.2:31
4816 #, no-wrap
4817 msgid "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4818 msgstr "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4819
4820 #. type: Plain text
4821 #: build/C/man2/s390_runtime_instr.2:33
4822 #, no-wrap
4823 msgid "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4824 msgstr "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4825
4826 #. type: Plain text
4827 #: build/C/man2/s390_runtime_instr.2:39
4828 msgid ""
4829 "The B<s390_runtime_instr>()  system call starts or stops CPU run-time "
4830 "instrumentation for the calling thread."
4831 msgstr ""
4832
4833 #. type: Plain text
4834 #: build/C/man2/s390_runtime_instr.2:47
4835 msgid ""
4836 "The I<command> argument controls whether run-time instrumentation is started "
4837 "(B<S390_RUNTIME_INSTR_START>, 1) or stopped (B<S390_RUNTIME_INSTR_STOP>, 2) "
4838 "for the calling thread."
4839 msgstr ""
4840
4841 #. type: Plain text
4842 #: build/C/man2/s390_runtime_instr.2:54
4843 msgid ""
4844 "The I<signum> argument specifies the number of a real-time signal.  The real-"
4845 "time signal is sent to the thread if the run-time instrumentation buffer is "
4846 "full or if the run-time-instrumentation-halted interrupt occurred."
4847 msgstr ""
4848
4849 #. type: Plain text
4850 #: build/C/man2/s390_runtime_instr.2:65
4851 msgid ""
4852 "On success, B<s390_runtime_instr>()  returns 0 and enables the thread for "
4853 "run-time instrumentation by assigning the thread a default run-time "
4854 "instrumentation control block.  The caller can then read and modify the "
4855 "control block and start the run-time instrumentation.  On error, -1 is "
4856 "returned and I<errno> is set to one of the error codes listed below."
4857 msgstr ""
4858
4859 #. type: Plain text
4860 #: build/C/man2/s390_runtime_instr.2:73
4861 msgid ""
4862 "The value specified in I<command> is not a valid command or the value "
4863 "specified in I<signum> is not a real-time signal number."
4864 msgstr ""
4865
4866 #. type: Plain text
4867 #: build/C/man2/s390_runtime_instr.2:76
4868 msgid ""
4869 "Allocating memory for the run-time instrumentation control block failed."
4870 msgstr ""
4871
4872 #. type: TP
4873 #: build/C/man2/s390_runtime_instr.2:76
4874 #, no-wrap
4875 msgid "B<EOPNOTSUPP>"
4876 msgstr ""
4877
4878 #. type: Plain text
4879 #: build/C/man2/s390_runtime_instr.2:79
4880 msgid "The run-time instrumentation facility is not available."
4881 msgstr ""
4882
4883 #. type: Plain text
4884 #: build/C/man2/s390_runtime_instr.2:81
4885 msgid "This system call is available since Linux 3.7."
4886 msgstr "このシステムコールは Linux 3.7 で初めて登場した。"
4887
4888 #. type: Plain text
4889 #: build/C/man2/s390_runtime_instr.2:84
4890 msgid ""
4891 "This Linux-specific system call is available only on the s390 architecture.  "
4892 "The run-time instrumentation facility is available beginning with System z "
4893 "EC12."
4894 msgstr ""
4895
4896 #. type: Plain text
4897 #: build/C/man2/s390_runtime_instr.2:88
4898 msgid ""
4899 "Glibc does not provide a wrapper for this system call, use B<syscall>(2)  to "
4900 "call it."
4901 msgstr ""
4902 "glibc はこのシステムコールに対するラッパー関数を提供していない。 "
4903 "B<syscall>(2) を使用すること。"
4904
4905 #. type: Plain text
4906 #: build/C/man2/s390_runtime_instr.2:91
4907 msgid "B<syscall>(2), B<signal>(7)"
4908 msgstr "B<syscall>(2), B<signal>(7)"
4909
4910 #. type: TH
4911 #: build/C/man2/sgetmask.2:26
4912 #, no-wrap
4913 msgid "SGETMASK"
4914 msgstr "SGETMASK"
4915
4916 #. type: Plain text
4917 #: build/C/man2/sgetmask.2:29
4918 msgid "sgetmask, ssetmask - manipulation of signal mask (obsolete)"
4919 msgstr "sgetmask, ssetmask - シグナルマスクの操作 (廃止予定)"
4920
4921 #. type: Plain text
4922 #: build/C/man2/sgetmask.2:31
4923 msgid "B<long sgetmask(void);>"
4924 msgstr "B<long sgetmask(void);>"
4925
4926 #. type: Plain text
4927 #: build/C/man2/sgetmask.2:33
4928 msgid "B<long ssetmask(long >I<newmask>B<);>"
4929 msgstr "B<long ssetmask(long >I<newmask>B<);>"
4930
4931 #. type: Plain text
4932 #: build/C/man2/sgetmask.2:42
4933 msgid ""
4934 "These system calls are obsolete.  I<Do not use them>; use B<sigprocmask>(2)  "
4935 "instead."
4936 msgstr ""
4937 "これらのシステムコールは廃止予定であり、 「使用しないこと」。 代わりに "
4938 "B<sigprocmask>(2)  を使用すること。"
4939
4940 #. type: Plain text
4941 #: build/C/man2/sgetmask.2:45
4942 msgid "B<sgetmask>()  returns the signal mask of the calling process."
4943 msgstr "B<sgetmask>()  は、呼び出し元プロセスのシグナルマスクを返す。"
4944
4945 #. type: Plain text
4946 #: build/C/man2/sgetmask.2:50
4947 msgid ""
4948 "B<ssetmask>()  sets the signal mask of the calling process to the value "
4949 "given in I<newmask>.  The previous signal mask is returned."
4950 msgstr ""
4951 "B<ssetmask>()  は、呼び出し元プロセスのシグナルマスクを I<newmask> で指定され"
4952 "た値に設定し、変更前のシグナルマスクを返す。"
4953
4954 #. type: Plain text
4955 #: build/C/man2/sgetmask.2:59
4956 msgid ""
4957 "The signal masks dealt with by these two system calls are plain bit masks "
4958 "(unlike the I<sigset_t> used by B<sigprocmask>(2)); use B<sigmask>(3)  to "
4959 "create and inspect these masks."
4960 msgstr ""
4961 "これら二つのシステムコールが扱うシグナルマスクは、 単純なビットマスクである "
4962 "(この点が B<sigprocmask>(2)  で使用される I<sigset_t> と異なる)。 これらのマ"
4963 "スクを作成したり検査するには B<sigmask>(3)  を使用すること。"
4964
4965 #. type: Plain text
4966 #: build/C/man2/sgetmask.2:64
4967 msgid ""
4968 "B<sgetmask>()  always successfully returns the signal mask.  B<ssetmask>()  "
4969 "always succeeds, and returns the previous signal mask."
4970 msgstr ""
4971 "B<sgetmask>()  は常に成功し、シグナルマスクを返す。 B<ssetmask>()  は常に成功"
4972 "し、直前のシグナルマスクを返す。"
4973
4974 #. type: Plain text
4975 #: build/C/man2/sgetmask.2:66
4976 msgid "These system calls always succeed."
4977 msgstr "これらのシステムコールは常に成功する。"
4978
4979 #.  f6187769dae48234f3877df3c4d99294cc2254fa
4980 #. type: Plain text
4981 #: build/C/man2/sgetmask.2:73
4982 msgid ""
4983 "Since Linux 3.16, support for these system calls is optional, depending on "
4984 "whether the kernel was built with the B<CONFIG_SGETMASK_SYSCALL> option."
4985 msgstr ""
4986 "Linux 3.16 以降では、これらのシステムコールのサポートは任意となり、利用できる"
4987 "かはカーネルが B<CONFIG_SGETMASK_SYSCALL> オプションを有効にしてコンパイルさ"
4988 "れているかに依存する。"
4989
4990 #. type: Plain text
4991 #: build/C/man2/sgetmask.2:79
4992 msgid ""
4993 "Glibc does not provide wrappers for these obsolete system calls; in the "
4994 "unlikely event that you want to call them, use B<syscall>(2)."
4995 msgstr ""
4996 "glibc はこれらの古いシステムコールに対するラッパー関数を提供していない。 あま"
4997 "りないと思うが、これらを呼び出したい場合には B<syscall>(2) を使うこと。"
4998
4999 #. type: Plain text
5000 #: build/C/man2/sgetmask.2:82
5001 msgid ""
5002 "These system calls are unaware of signal numbers greater than 31 (i.e., real-"
5003 "time signals)."
5004 msgstr ""
5005 "これらのシステムコールは、 31 より大きいシグナル番号 (つまり、リアルタイムシ"
5006 "グナル) を扱えない。"
5007
5008 #. type: Plain text
5009 #: build/C/man2/sgetmask.2:84
5010 msgid "These system calls do not exist on x86-64."
5011 msgstr "これらのシステムコールは x86-64 には存在しない。"
5012
5013 #. type: Plain text
5014 #: build/C/man2/sgetmask.2:89
5015 msgid "It is not possible to block B<SIGSTOP> or B<SIGKILL>."
5016 msgstr "B<SIGSTOP> や B<SIGKILL> をブロックすることはできない。"
5017
5018 #. type: Plain text
5019 #: build/C/man2/sgetmask.2:92
5020 msgid "B<sigprocmask>(2), B<signal>(7)"
5021 msgstr "B<sigprocmask>(2), B<signal>(7)"
5022
5023 #. type: TH
5024 #: build/C/man2/sigaction.2:49
5025 #, no-wrap
5026 msgid "SIGACTION"
5027 msgstr "SIGACTION"
5028
5029 #. type: TH
5030 #: build/C/man2/sigaction.2:49
5031 #, no-wrap
5032 msgid "2015-01-22"
5033 msgstr "2015-01-22"
5034
5035 #. type: Plain text
5036 #: build/C/man2/sigaction.2:52
5037 msgid "sigaction - examine and change a signal action"
5038 msgstr "sigaction - シグナルの動作の確認と変更"
5039
5040 #. type: Plain text
5041 #: build/C/man2/sigaction.2:58
5042 #, no-wrap
5043 msgid ""
5044 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
5045 "B<              struct sigaction *>I<oldact>B<);>\n"
5046 msgstr ""
5047 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
5048 "B<              struct sigaction *>I<oldact>B<);>\n"
5049
5050 #. type: Plain text
5051 #: build/C/man2/sigaction.2:68
5052 msgid ""
5053 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
5054 "_POSIX_SOURCE"
5055 msgstr ""
5056 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
5057 "_POSIX_SOURCE"
5058
5059 #. type: Plain text
5060 #: build/C/man2/sigaction.2:71
5061 msgid "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
5062 msgstr "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
5063
5064 #. type: Plain text
5065 #: build/C/man2/sigaction.2:80
5066 msgid ""
5067 "The B<sigaction>()  system call is used to change the action taken by a "
5068 "process on receipt of a specific signal.  (See B<signal>(7)  for an overview "
5069 "of signals.)"
5070 msgstr ""
5071 "B<sigaction>()  システムコールは、特定のシグナルを受信した際の プロセスの動作"
5072 "を変更するのに使用される (シグナルの概要については B<signal>(7)  を参照)。"
5073
5074 #. type: Plain text
5075 #: build/C/man2/sigaction.2:86
5076 msgid ""
5077 "I<signum> specifies the signal and can be any valid signal except B<SIGKILL> "
5078 "and B<SIGSTOP>."
5079 msgstr ""
5080 "I<signum> には、 B<SIGKILL> と B<SIGSTOP> 以外の有効なシグナルをどれでも指定"
5081 "できる。"
5082
5083 #. type: Plain text
5084 #: build/C/man2/sigaction.2:97
5085 msgid ""
5086 "If I<act> is non-NULL, the new action for signal I<signum> is installed from "
5087 "I<act>.  If I<oldact> is non-NULL, the previous action is saved in I<oldact>."
5088 msgstr ""
5089 "I<act> が NULL 以外であれば、シグナル I<signum> の新しい動作 (action) として "
5090 "I<act> が設定される。 I<oldact> が NULL でなければ、今までの動作が I<oldact> "
5091 "に格納される。"
5092
5093 #. type: Plain text
5094 #: build/C/man2/sigaction.2:101
5095 msgid "The I<sigaction> structure is defined as something like:"
5096 msgstr "I<sigaction> 構造体は以下のような感じに定義される。"
5097
5098 #. type: Plain text
5099 #: build/C/man2/sigaction.2:111
5100 #, no-wrap
5101 msgid ""
5102 "struct sigaction {\n"
5103 "    void     (*sa_handler)(int);\n"
5104 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
5105 "    sigset_t   sa_mask;\n"
5106 "    int        sa_flags;\n"
5107 "    void     (*sa_restorer)(void);\n"
5108 "};\n"
5109 msgstr ""
5110 "struct sigaction {\n"
5111 "    void     (*sa_handler)(int);\n"
5112 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
5113 "    sigset_t   sa_mask;\n"
5114 "    int        sa_flags;\n"
5115 "    void     (*sa_restorer)(void);\n"
5116 "};\n"
5117
5118 #. type: Plain text
5119 #: build/C/man2/sigaction.2:118
5120 msgid ""
5121 "On some architectures a union is involved: do not assign to both "
5122 "I<sa_handler> and I<sa_sigaction>."
5123 msgstr ""
5124 "アーキテクチャーによっては共用体 (union) が用いられており、その場合には "
5125 "I<sa_handler> と I<sa_sigaction> の両方を同時に割り当てることはできない。"
5126
5127 #. type: Plain text
5128 #: build/C/man2/sigaction.2:127
5129 msgid ""
5130 "The I<sa_restorer> field is not intended for application use.  (POSIX does "
5131 "not specify a I<sa_restorer> field.)  Some further details of purpose of "
5132 "this field can be found in B<sigreturn>(2)."
5133 msgstr ""
5134 "I<sa_restorer> はアプリケーションが使用することを意図したフィールドではない "
5135 "(POSIX は I<sa_restorer> フィールドを規定していない)。 このフィールドの詳細な"
5136 "目的については B<sigreturn>(2) に書かれている。"
5137
5138 #. type: Plain text
5139 #: build/C/man2/sigaction.2:137
5140 msgid ""
5141 "I<sa_handler> specifies the action to be associated with I<signum> and may "
5142 "be B<SIG_DFL> for the default action, B<SIG_IGN> to ignore this signal, or a "
5143 "pointer to a signal handling function.  This function receives the signal "
5144 "number as its only argument."
5145 msgstr ""
5146 "I<sa_handler> は I<signum> に対応する動作を指定するもので、 デフォルトの動作"
5147 "を行う B<SIG_DFL>、 そのシグナルを無視する B<SIG_IGN>、 シグナルハンドラー関"
5148 "数へのポインターが設定できる。 シグナルハンドラー関数の引き数は一つであり、シ"
5149 "グナル番号が引き数として 渡される。"
5150
5151 #. type: Plain text
5152 #: build/C/man2/sigaction.2:159
5153 msgid ""
5154 "If B<SA_SIGINFO> is specified in I<sa_flags>, then I<sa_sigaction> (instead "
5155 "of I<sa_handler>)  specifies the signal-handling function for I<signum>.  "
5156 "This function receives the signal number as its first argument, a pointer to "
5157 "a I<siginfo_t> as its second argument and a pointer to a I<ucontext_t> (cast "
5158 "to I<void\\ *>) as its third argument.  (Commonly, the handler function "
5159 "doesn't make any use of the third argument.  See B<getcontext>(3)  for "
5160 "further information about I<ucontext_t>.)"
5161 msgstr ""
5162 "I<sa_flags> に B<SA_SIGINFO> が指定された場合、 (I<sa_handler> ではなく) "
5163 "I<sa_sigaction> により I<signum> に対応するシグナルハンドラー関数が指定され"
5164 "る。指定される関数は、最初の引き数としてシグナル番号を、二番目の引き数として "
5165 "I<siginfo_t> へのポインターを、三番目の引き数として (I<void\\ *> にキャストし"
5166 "た) I<ucontext_t> へのポインターを受けとる。 (一般的には、ハンドラー関数の三"
5167 "番目の引き数が使用されない。I<ucontext_t> についての詳しい情報は "
5168 "B<getcontext>(3) を参照。)"
5169
5170 #. type: Plain text
5171 #: build/C/man2/sigaction.2:169
5172 msgid ""
5173 "I<sa_mask> specifies a mask of signals which should be blocked (i.e., added "
5174 "to the signal mask of the thread in which the signal handler is invoked)  "
5175 "during execution of the signal handler.  In addition, the signal which "
5176 "triggered the handler will be blocked, unless the B<SA_NODEFER> flag is used."
5177 msgstr ""
5178 "I<sa_mask> は、シグナルハンドラー実行中に禁止 (block) すべきシグナルのマスク"
5179 "を指定する (ハンドラー実行中のシグナルの禁止は、シグナルハンドラーが起動され"
5180 "たスレッド のシグナルのマスクに追加することで行われる)。 さらに、 "
5181 "B<SA_NODEFER> フラグが指定されていない場合は、ハンドラーを起動するきっかけと"
5182 "なる シグナルにも I<sa_mask> が適用される。"
5183
5184 #. type: Plain text
5185 #: build/C/man2/sigaction.2:173
5186 msgid ""
5187 "I<sa_flags> specifies a set of flags which modify the behavior of the "
5188 "signal.  It is formed by the bitwise OR of zero or more of the following:"
5189 msgstr ""
5190 "I<sa_flags> はシグナルハンドラーの動作を変更するためのフラグの集合を指定す"
5191 "る。 I<sa_flags> には、以下に示すフラグの (0 個以上の) 論理和をとったものを指"
5192 "定する。"
5193
5194 #. type: TP
5195 #: build/C/man2/sigaction.2:174
5196 #, no-wrap
5197 msgid "B<SA_NOCLDSTOP>"
5198 msgstr "B<SA_NOCLDSTOP>"
5199
5200 #. type: Plain text
5201 #: build/C/man2/sigaction.2:191
5202 msgid ""
5203 "If I<signum> is B<SIGCHLD>, do not receive notification when child processes "
5204 "stop (i.e., when they receive one of B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, or "
5205 "B<SIGTTOU>)  or resume (i.e., they receive B<SIGCONT>)  (see B<wait>(2)).  "
5206 "This flag is meaningful only when establishing a handler for B<SIGCHLD>."
5207 msgstr ""
5208 "I<signum> が B<SIGCHLD> の場合、 子プロセスが停止したり (子プロセスが "
5209 "B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, B<SIGTTOU> を受けたとき) 再開したり (子プ"
5210 "ロセスが B<SIGCONT> を受けたとき) したときに B<SIGCHLD> の通知を受けない。 こ"
5211 "のフラグは、 B<SIGCHLD> に対してハンドラーを設定する際にのみ意味を持つ。"
5212
5213 #. type: TP
5214 #: build/C/man2/sigaction.2:191
5215 #, no-wrap
5216 msgid "B<SA_NOCLDWAIT> (since Linux 2.6)"
5217 msgstr "B<SA_NOCLDWAIT> (Linux 2.6 以降)"
5218
5219 #.  To be precise: Linux 2.5.60 -- MTK
5220 #. type: Plain text
5221 #: build/C/man2/sigaction.2:205
5222 msgid ""
5223 "If I<signum> is B<SIGCHLD>, do not transform children into zombies when they "
5224 "terminate.  See also B<waitpid>(2).  This flag is meaningful only when "
5225 "establishing a handler for B<SIGCHLD>, or when setting that signal's "
5226 "disposition to B<SIG_DFL>."
5227 msgstr ""
5228 "(Linux 2.6 以降)  I<signum> が B<SIGCHLD> の場合、子プロセスが終了したときに "
5229 "子プロセスをゾンビプロセスに変化させない (B<waitpid>(2)  も参照)。 このフラグ"
5230 "は、 B<SIGCHLD> に対してハンドラーを設定する際、もしくはそのシグナルの処理方"
5231 "法を B<SIG_DFL> に設定する際にのみ意味を持つ。"
5232
5233 #. type: Plain text
5234 #: build/C/man2/sigaction.2:217
5235 msgid ""
5236 "If the B<SA_NOCLDWAIT> flag is set when establishing a handler for "
5237 "B<SIGCHLD>, POSIX.1 leaves it unspecified whether a B<SIGCHLD> signal is "
5238 "generated when a child process terminates.  On Linux, a B<SIGCHLD> signal is "
5239 "generated in this case; on some other implementations, it is not."
5240 msgstr ""
5241 "B<SIGCHLD> に対してハンドラーを設定する際に B<SA_NOCLDWAIT> フラグをセットし"
5242 "た場合、 子プロセスが終了した際に B<SIGCHLD> シグナルが生成されるかどうか"
5243 "は、 POSIX.1 では規定されていない。 Linux では、この状況で B<SIGCHLD> シグナ"
5244 "ルは生成される。 いくつかの他の実装では生成されない。"
5245
5246 #. type: TP
5247 #: build/C/man2/sigaction.2:217
5248 #, no-wrap
5249 msgid "B<SA_NODEFER>"
5250 msgstr "B<SA_NODEFER>"
5251
5252 #. type: Plain text
5253 #: build/C/man2/sigaction.2:224
5254 msgid ""
5255 "Do not prevent the signal from being received from within its own signal "
5256 "handler.  This flag is meaningful only when establishing a signal handler.  "
5257 "B<SA_NOMASK> is an obsolete, nonstandard synonym for this flag."
5258 msgstr ""
5259 "それ自身のシグナルハンドラーの内部にいる時でも そのシグナルをマスクしないよう"
5260 "にする。 このフラグはシグナルハンドラーを設定する際にのみ意味を持つ。 "
5261 "B<SA_NOMASK> はこのフラグと同じ意味だが、廃止されており、非標準である。"
5262
5263 #. type: TP
5264 #: build/C/man2/sigaction.2:224
5265 #, no-wrap
5266 msgid "B<SA_ONSTACK>"
5267 msgstr "B<SA_ONSTACK>"
5268
5269 #. type: Plain text
5270 #: build/C/man2/sigaction.2:230
5271 msgid ""
5272 "Call the signal handler on an alternate signal stack provided by "
5273 "B<sigaltstack>(2).  If an alternate stack is not available, the default "
5274 "stack will be used.  This flag is meaningful only when establishing a signal "
5275 "handler."
5276 msgstr ""
5277 "B<sigaltstack>(2)  で提供される別のシグナルスタックでシグナルハンドラーを呼び"
5278 "出す。 別のシグナルスタックが利用可能でなければ、デフォルトのスタックが 使用"
5279 "される。 このフラグはシグナルハンドラーを設定する際にのみ意味を持つ。"
5280
5281 #. type: TP
5282 #: build/C/man2/sigaction.2:230
5283 #, no-wrap
5284 msgid "B<SA_RESETHAND>"
5285 msgstr "B<SA_RESETHAND>"
5286
5287 #. type: Plain text
5288 #: build/C/man2/sigaction.2:236
5289 msgid ""
5290 "Restore the signal action to the default upon entry to the signal handler.  "
5291 "This flag is meaningful only when establishing a signal handler.  "
5292 "B<SA_ONESHOT> is an obsolete, nonstandard synonym for this flag."
5293 msgstr ""
5294 "シグナルハンドラーを設定する際に、シグナルの動作をデフォルトに戻す。 このフラ"
5295 "グはシグナルハンドラーを設定する際にのみ意味を持つ。 B<SA_ONESHOT> はこのフラ"
5296 "グと同じ意味だが、廃止されており、非標準である。"
5297
5298 #. type: TP
5299 #: build/C/man2/sigaction.2:236
5300 #, no-wrap
5301 msgid "B<SA_RESTART>"
5302 msgstr "B<SA_RESTART>"
5303
5304 #. type: Plain text
5305 #: build/C/man2/sigaction.2:244
5306 msgid ""
5307 "Provide behavior compatible with BSD signal semantics by making certain "
5308 "system calls restartable across signals.  This flag is meaningful only when "
5309 "establishing a signal handler.  See B<signal>(7)  for a discussion of system "
5310 "call restarting."
5311 msgstr ""
5312 "いくつかのシステムコールをシグナルの通知の前後で再開できるようにして、 BSD シ"
5313 "グナル方式 (semantics) と互換性のある動作を提供する。 このフラグはシグナルハ"
5314 "ンドラーを設定する際にのみ意味を持つ。 B<signal>(7)  に書かれているシステム"
5315 "コールの再開に関する議論を参照のこと。"
5316
5317 #. type: TP
5318 #: build/C/man2/sigaction.2:244
5319 #, no-wrap
5320 msgid "B<SA_RESTORER>"
5321 msgstr "B<SA_RESTORER>"
5322
5323 #. type: Plain text
5324 #: build/C/man2/sigaction.2:253
5325 msgid ""
5326 "I<Not intended for application use>.  This flag is used by C libraries to "
5327 "indicate that the I<sa_restorer> field contains the address of a \"signal "
5328 "trampoline\".  See B<sigreturn>(2)  for more details."
5329 msgstr ""
5330 "I<アプリケーションでの使用を意図したものではない>。 このフラグは C ライブラリ"
5331 "が I<sa_restorer> フィールドに \"signal trampoline\" のアドレスが入っているこ"
5332 "とを示すために使用される。 詳細は B<sigreturn>(2) を参照。"
5333
5334 #. type: TP
5335 #: build/C/man2/sigaction.2:253
5336 #, no-wrap
5337 msgid "B<SA_SIGINFO> (since Linux 2.2)"
5338 msgstr "B<SA_SIGINFO> (Linux 2.2 以降)"
5339
5340 #.  (The
5341 #.  .I sa_sigaction
5342 #.  field was added in Linux 2.1.86.)
5343 #. type: Plain text
5344 #: build/C/man2/sigaction.2:264
5345 msgid ""
5346 "The signal handler takes three arguments, not one.  In this case, "
5347 "I<sa_sigaction> should be set instead of I<sa_handler>.  This flag is "
5348 "meaningful only when establishing a signal handler."
5349 msgstr ""
5350 "シグナルハンドラーは一つではなく、三つの引き数を持つ。この場合は "
5351 "I<sa_handler> のかわりに I<sa_sigaction> を設定しなければならない このフラグ"
5352 "はシグナルハンドラーを設定する際にのみ意味を持つ。"
5353
5354 #. type: Plain text
5355 #: build/C/man2/sigaction.2:271
5356 msgid ""
5357 "The I<siginfo_t> argument to I<sa_sigaction> is a struct with the following "
5358 "fields:"
5359 msgstr ""
5360 "I<sa_sigaction> のパラメーター I<siginfo_t> は以下のフィールドを持つ構造体で"
5361 "ある:"
5362
5363 #.  FIXME
5364 #.  The siginfo_t 'si_trapno' field seems to be used only on SPARC and Alpha;
5365 #.  this page could use a little more detail on its purpose there.
5366 #.  In the kernel: si_tid
5367 #. type: Plain text
5368 #: build/C/man2/sigaction.2:309
5369 #, no-wrap
5370 msgid ""
5371 "siginfo_t {\n"
5372 "    int      si_signo;     /* Signal number */\n"
5373 "    int      si_errno;     /* An errno value */\n"
5374 "    int      si_code;      /* Signal code */\n"
5375 "    int      si_trapno;    /* Trap number that caused\n"
5376 "                              hardware-generated signal\n"
5377 "                              (unused on most architectures) */\n"
5378 "    pid_t    si_pid;       /* Sending process ID */\n"
5379 "    uid_t    si_uid;       /* Real user ID of sending process */\n"
5380 "    int      si_status;    /* Exit value or signal */\n"
5381 "    clock_t  si_utime;     /* User time consumed */\n"
5382 "    clock_t  si_stime;     /* System time consumed */\n"
5383 "    sigval_t si_value;     /* Signal value */\n"
5384 "    int      si_int;       /* POSIX.1b signal */\n"
5385 "    void    *si_ptr;       /* POSIX.1b signal */\n"
5386 "    int      si_overrun;   /* Timer overrun count;\n"
5387 "                              POSIX.1b timers */\n"
5388 "    int      si_timerid;   /* Timer ID; POSIX.1b timers */\n"
5389 "    void    *si_addr;      /* Memory location which caused fault */\n"
5390 "    long     si_band;      /* Band event (was I<int> in\n"
5391 "                              glibc 2.3.2 and earlier) */\n"
5392 "    int      si_fd;        /* File descriptor */\n"
5393 "    short    si_addr_lsb;  /* Least significant bit of address\n"
5394 "                              (since Linux 2.6.32) */\n"
5395 "    void    *si_call_addr; /* Address of system call instruction\n"
5396 "                              (since Linux 3.5) */\n"
5397 "    int      si_syscall;   /* Number of attempted system call\n"
5398 "                              (since Linux 3.5) */\n"
5399 "    unsigned int si_arch;  /* Architecture of attempted system call\n"
5400 "                              (since Linux 3.5) */\n"
5401 "}\n"
5402 msgstr ""
5403 "siginfo_t {\n"
5404 "    int      si_signo;     /* Signal number */\n"
5405 "    int      si_errno;     /* An errno value */\n"
5406 "    int      si_code;      /* Signal code */\n"
5407 "    int      si_trapno;    /* Trap number that caused\n"
5408 "                              hardware-generated signal\n"
5409 "                              (unused on most architectures) */\n"
5410 "    pid_t    si_pid;       /* Sending process ID */\n"
5411 "    uid_t    si_uid;       /* Real user ID of sending process */\n"
5412 "    int      si_status;    /* Exit value or signal */\n"
5413 "    clock_t  si_utime;     /* User time consumed */\n"
5414 "    clock_t  si_stime;     /* System time consumed */\n"
5415 "    sigval_t si_value;     /* Signal value */\n"
5416 "    int      si_int;       /* POSIX.1b signal */\n"
5417 "    void    *si_ptr;       /* POSIX.1b signal */\n"
5418 "    int      si_overrun;   /* Timer overrun count;\n"
5419 "                              POSIX.1b timers */\n"
5420 "    int      si_timerid;   /* Timer ID; POSIX.1b timers */\n"
5421 "    void    *si_addr;      /* Memory location which caused fault */\n"
5422 "    long     si_band;      /* Band event (was I<int> in\n"
5423 "                              glibc 2.3.2 and earlier) */\n"
5424 "    int      si_fd;        /* File descriptor */\n"
5425 "    short    si_addr_lsb;  /* Least significant bit of address\n"
5426 "                              (since Linux 2.6.32) */\n"
5427 "    void    *si_call_addr; /* Address of system call instruction\n"
5428 "                              (since Linux 3.5) */\n"
5429 "    int      si_syscall;   /* Number of attempted system call\n"
5430 "                              (since Linux 3.5) */\n"
5431 "    unsigned int si_arch;  /* Architecture of attempted system call\n"
5432 "                              (since Linux 3.5) */\n"
5433 "}\n"
5434
5435 #. type: Plain text
5436 #: build/C/man2/sigaction.2:318
5437 msgid ""
5438 "I<si_signo>, I<si_errno> and I<si_code> are defined for all signals.  "
5439 "(I<si_errno> is generally unused on Linux.)  The rest of the struct may be a "
5440 "union, so that one should read only the fields that are meaningful for the "
5441 "given signal:"
5442 msgstr ""
5443 "I<si_signo>, I<si_errno>, I<si_code> は全てのシグナルに対して定義されている "
5444 "(I<si_errno> は Linux では一般的には使用されない)。 構造体の残りの部分は、共"
5445 "用体 (union) になっているかもしれない。 その場合は該当するシグナルにおいて意"
5446 "味のあるフィールドのみを読み込む ことができる。"
5447
5448 #. type: Plain text
5449 #: build/C/man2/sigaction.2:333
5450 msgid ""
5451 "Signals sent with B<kill>(2)  and B<sigqueue>(3)  fill in I<si_pid> and "
5452 "I<si_uid>.  In addition, signals sent with B<sigqueue>(3)  fill in I<si_int> "
5453 "and I<si_ptr> with the values specified by the sender of the signal; see "
5454 "B<sigqueue>(3)  for more details."
5455 msgstr ""
5456 "B<kill>(2) や B<sigqueue>(3) で送信されたシグナルでは I<si_pid> と I<si_uid> "
5457 "が設定される。 さらに、 B<sigqueue>(3) で送信されたシグナルでは I<si_int> と "
5458 "I<si_pid> にシグナルの送信者により指定された値が設定される。詳細は "
5459 "B<sigqueue>(3) を参照。"
5460
5461 #. type: Plain text
5462 #: build/C/man2/sigaction.2:349
5463 msgid ""
5464 "Signals sent by POSIX.1b timers (since Linux 2.6) fill in I<si_overrun> and "
5465 "I<si_timerid>.  The I<si_timerid> field is an internal ID used by the kernel "
5466 "to identify the timer; it is not the same as the timer ID returned by "
5467 "B<timer_create>(2).  The I<si_overrun> field is the timer overrun count; "
5468 "this is the same information as is obtained by a call to "
5469 "B<timer_getoverrun>(2).  These fields are nonstandard Linux extensions."
5470 msgstr ""
5471 "POSIX.1b タイマー (Linux 2.6 以降) は I<si_overrun> と I<si_timerid> を設定す"
5472 "る。 I<si_timerid> フィールドはカーネルがタイマーを特定するのに使用する内部 "
5473 "ID であり、 B<timer_create>(2) が返すタイマー ID と同じではない。 "
5474 "I<si_overrun> フィールドはタイマーが回り切った回数である。 これは "
5475 "B<timer_getoverrun>(2) の呼び出しで取得できる情報と同じである。 これらの"
5476 "フィールドは非標準で Linux による拡張である。"
5477
5478 #. type: Plain text
5479 #: build/C/man2/sigaction.2:364
5480 msgid ""
5481 "Signals sent for message queue notification (see the description of "
5482 "B<SIGEV_SIGNAL> in B<mq_notify>(3))  fill in I<si_int>/I<si_ptr>, with the "
5483 "I<sigev_value> supplied to B<mq_notify>(3); I<si_pid>, with the process ID "
5484 "of the message sender; and I<si_uid>, with the real user ID of the message "
5485 "sender."
5486 msgstr ""
5487 "メッセージキューの通知用に送信されたシグナル (B<mq_notify>(3) の "
5488 "B<SIGEV_SIGNAL> の説明を参照) では、 I<si_int>/I<si_ptr> に B<mq_notify>(3) "
5489 "に渡された I<sigev_value> が設定される。 I<si_pid> にはメッセージ送信者のプロ"
5490 "セス ID が設定され、 I<si_uid> にはメッセージ送信者の実ユーザー ID が設定され"
5491 "る。"
5492
5493 #.  FIXME .
5494 #.  When si_utime and si_stime where originally implemented, the
5495 #.  measurement unit was HZ, which was the same as clock ticks
5496 #.  (sysconf(_SC_CLK_TCK)).  In 2.6, HZ became configurable, and
5497 #.  was *still* used as the unit to return the info these fields,
5498 #.  with the result that the field values depended on the the
5499 #.  configured HZ.  Of course, the should have been measured in
5500 #.  USER_HZ instead, so that sysconf(_SC_CLK_TCK) could be used to
5501 #.  convert to seconds.  I have a queued patch to fix this:
5502 #.  http://thread.gmane.org/gmane.linux.kernel/698061/ .
5503 #.  This patch made it into 2.6.27.
5504 #.  But note that these fields still don't return the times of
5505 #.  waited-for children (as is done by getrusage() and times()
5506 #.  and wait4()).  Solaris 8 does include child times.
5507 #. type: Plain text
5508 #: build/C/man2/sigaction.2:411
5509 msgid ""
5510 "B<SIGCHLD> fills in I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>, and "
5511 "I<si_stime>, providing information about the child.  The I<si_pid> field is "
5512 "the process ID of the child; I<si_uid> is the child's real user ID.  The "
5513 "I<si_status> field contains the exit status of the child (if I<si_code> is "
5514 "B<CLD_EXITED>), or the signal number that caused the process to change "
5515 "state.  The I<si_utime> and I<si_stime> contain the user and system CPU time "
5516 "used by the child process; these fields do not include the times used by "
5517 "waited-for children (unlike B<getrusage>(2)  and B<times>(2)).  In kernels "
5518 "up to 2.6, and since 2.6.27, these fields report CPU time in units of "
5519 "I<sysconf(_SC_CLK_TCK)>.  In 2.6 kernels before 2.6.27, a bug meant that "
5520 "these fields reported time in units of the (configurable) system jiffy (see "
5521 "B<time>(7))."
5522 msgstr ""
5523 "B<SIGCHLD> は I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>, I<si_stime> を"
5524 "設定し、子プロセスに関する情報を提供する。 I<si_pid> フィールドは子プロセスの"
5525 "プロセス ID で、 I<si_uid> フィールドは子プロセスの実ユーザー ID である。 "
5526 "I<si_stime> フィールドには、 (I<si_code> が B<CLD_EXITED> の場合は) 子プロセ"
5527 "スの終了ステータスが、それ以外の場合は状態が変化する原因となったシグナル番号"
5528 "が格納される。 I<si_utime> と I<si_stime> には子プロセスが使用したユーザー "
5529 "CPU 時間とシステム CPU 時間がそれぞれ格納される。(B<getrusage>(2) や "
5530 "B<times>(2) と異なり) これらのフィールドには wait 待ちの子プロセスにより使用"
5531 "された時間は含まれない。 2.6 より前と 2.6.27 以降のカーネルでは、 これらの"
5532 "フィールドに格納される CPU 時間の単位は I<sysconf(_SC_CLK_TCK)> である。 "
5533 "2.6.27 より前の 2.6 系のカーネルでは、バグがあり、 これらのフィールドの CPU "
5534 "時間の単位が (カーネルのコンフィグで指定される) システムの jiffy であった "
5535 "(B<time>(7) 参照)。"
5536
5537 #. type: Plain text
5538 #: build/C/man2/sigaction.2:458
5539 msgid ""
5540 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, and B<SIGTRAP> fill in "
5541 "I<si_addr> with the address of the fault.  On some architectures, these "
5542 "signals also fill in the I<si_trapno> field.  Some suberrors of B<SIGBUS>, "
5543 "in particular B<BUS_MCEERR_AO> and B<BUS_MCEERR_AR>, also fill in "
5544 "I<si_addr_lsb>.  This field indicates the least significant bit of the "
5545 "reported address and therefore the extent of the corruption.  For example, "
5546 "if a full page was corrupted, I<si_addr_lsb> contains "
5547 "I<log2(sysconf(_SC_PAGESIZE))>.  When B<SIGTRAP> is delivered in response to "
5548 "a B<ptrace>(2)  event (PTRACE_EVENT_foo), I<si_addr> is not populated, but "
5549 "I<si_pid> and I<si_uid> are populated with the respective process ID and "
5550 "user ID responsible for delivering the trap.  In the case of B<seccomp>(2), "
5551 "the tracee will be shown as delivering the event.  B<BUS_MCEERR_*> and "
5552 "I<si_addr_lsb> are Linux-specific extensions."
5553 msgstr ""
5554 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, B<SIGTRAP> では、 I<si_addr> に "
5555 "fault が発生したアドレスが設定される。 いくつかのアーキテクチャーでは、 これ"
5556 "らのシグナルは I<si_trapno> フィールドにも設定される。 B<SIGBUS> が発生するエ"
5557 "ラーのいくつか、特に B<BUS_MCEERR_AO> と B<BUS_MCEERR_AR> では、 "
5558 "I<si_addr_lsb> も設定される。 このフィールドは報告されるアドレスの最下位ビッ"
5559 "トを示し、 これによりメモリー破壊の程度を知ることができる。 例えば、ページ全"
5560 "体が壊れている場合には I<si_addr_lsb> には I<log2(sysconf(_SC_PAGESIZE))> が"
5561 "入る。 B<SIGTRAP> が B<ptrace>(2) イベント (PTRACE_EVENT_foo) に対応して配送"
5562 "される際、 I<si_addr> は設定されないが、 I<si_pid> と I<si_uid> にはトラップ"
5563 "の配送に責任を負うプロセス ID とユーザー ID がそれぞれ格納される。 "
5564 "B<seccomp>(2) の場合、 トレース対象はイベントを配送した元として示される。 "
5565 "B<BUS_MCEERR_*> と I<si_addr_lsb> は Linux 固有の拡張である。"
5566
5567 #. type: Plain text
5568 #: build/C/man2/sigaction.2:472
5569 msgid ""
5570 "B<SIGIO>/B<SIGPOLL> (the two names are synonyms on Linux)  fills in "
5571 "I<si_band> and I<si_fd>.  The I<si_band> event is a bit mask containing the "
5572 "same values as are filled in the I<revents> field by B<poll>(2).  The "
5573 "I<si_fd> field indicates the file descriptor for which the I/O event "
5574 "occurred."
5575 msgstr ""
5576 "B<SIGIO>/B<SIGPOLL> (2 つの名前は Linux では同義語) では I<si_band> と "
5577 "I<si_fd> が設定される。 I<si_band> イベントは、 B<poll>(2) が I<revents> "
5578 "フィールドに設定するのと同じ値が入ったビットマスクである。 I<si_fd> フィール"
5579 "ドは I/O イベントが発生したファイルディスクリプターを示す。"
5580
5581 #.  commit a0727e8ce513fe6890416da960181ceb10fbfae6
5582 #. type: Plain text
5583 #: build/C/man2/sigaction.2:485
5584 msgid ""
5585 "B<SIGSYS>, generated (since Linux 3.5)  when a seccomp filter returns "
5586 "B<SECCOMP_RET_TRAP>, fills in I<si_call_addr>, I<si_syscall>, I<si_arch>, "
5587 "I<si_errno>, and other fields as described in B<seccomp>(2)."
5588 msgstr ""
5589 "seccomp フィルターが B<SECCOMP_RET_TRAP> を返す際に (Linux 3.5 以降で) 生成さ"
5590 "れる B<SIGSYS> シグナルでは、 I<si_call_addr>, I<si_syscall>, I<si_arch>, "
5591 "I<si_arch> や B<seccomp>(2) で説明されている他のフィールドが設定される。"
5592
5593 #. type: Plain text
5594 #: build/C/man2/sigaction.2:495
5595 msgid ""
5596 "I<si_code> is a value (not a bit mask) indicating why this signal was sent.  "
5597 "For a B<ptrace>(2)  event, I<si_code> will contain B<SIGTRAP> and have the "
5598 "ptrace event in the high byte:"
5599 msgstr ""
5600 "I<si_code> は、そのシグナルが送信された理由を示す値である (ビットマスクではな"
5601 "い)。 B<ptrace>(2) イベントでは、 I<si_code> には B<SIGTRAP> が入り、 上位バ"
5602 "イトには ptrace イベントが入る。"
5603
5604 #. type: Plain text
5605 #: build/C/man2/sigaction.2:498
5606 #, no-wrap
5607 msgid "    (SIGTRAP | PTRACE_EVENT_foo E<lt>E<lt> 8).\n"
5608 msgstr "    (SIGTRAP | PTRACE_EVENT_foo E<lt>E<lt> 8).\n"
5609
5610 #. type: Plain text
5611 #: build/C/man2/sigaction.2:504
5612 msgid ""
5613 "For a regular signal, the following list shows the values which can be "
5614 "placed in I<si_code> for any signal, along with reason that the signal was "
5615 "generated."
5616 msgstr ""
5617 "通常のシグナルの場合には、 以下のリストに示す値がどのシグナルの場合でも "
5618 "I<si_code> に入りうる。シグナルが生成された理由も記載している。"
5619
5620 #. type: TP
5621 #: build/C/man2/sigaction.2:505
5622 #, no-wrap
5623 msgid "B<SI_USER>"
5624 msgstr "B<SI_USER>"
5625
5626 #. type: Plain text
5627 #: build/C/man2/sigaction.2:508
5628 msgid "B<kill>(2)."
5629 msgstr "B<kill>(2)"
5630
5631 #. type: TP
5632 #: build/C/man2/sigaction.2:508
5633 #, no-wrap
5634 msgid "B<SI_KERNEL>"
5635 msgstr "B<SI_KERNEL>"
5636
5637 #. type: Plain text
5638 #: build/C/man2/sigaction.2:511
5639 msgid "Sent by the kernel."
5640 msgstr "カーネルにより送信された"
5641
5642 #. type: TP
5643 #: build/C/man2/sigaction.2:511
5644 #, no-wrap
5645 msgid "B<SI_QUEUE>"
5646 msgstr "B<SI_QUEUE>"
5647
5648 #. type: Plain text
5649 #: build/C/man2/sigaction.2:514
5650 msgid "B<sigqueue>(3)."
5651 msgstr "B<sigqueue>(3)"
5652
5653 #. type: TP
5654 #: build/C/man2/sigaction.2:514
5655 #, no-wrap
5656 msgid "B<SI_TIMER>"
5657 msgstr "B<SI_TIMER>"
5658
5659 #. type: Plain text
5660 #: build/C/man2/sigaction.2:517
5661 msgid "POSIX timer expired."
5662 msgstr "POSIX タイマーが満了した"
5663
5664 #. type: TP
5665 #: build/C/man2/sigaction.2:517
5666 #, no-wrap
5667 msgid "B<SI_MESGQ> (since Linux 2.6.6)"
5668 msgstr "B<SI_MESGQ> (Linux 2.6.6 以降)"
5669
5670 #. type: Plain text
5671 #: build/C/man2/sigaction.2:521
5672 msgid "POSIX message queue state changed; see B<mq_notify>(3)."
5673 msgstr "POSIX メッセージキューの状態が変化した; B<mq_notify>(3) 参照"
5674
5675 #. type: TP
5676 #: build/C/man2/sigaction.2:521
5677 #, no-wrap
5678 msgid "B<SI_ASYNCIO>"
5679 msgstr "B<SI_ASYNCIO>"
5680
5681 #. type: Plain text
5682 #: build/C/man2/sigaction.2:524
5683 msgid "AIO completed."
5684 msgstr "非同期 IO (AIO) が完了した"
5685
5686 #. type: TP
5687 #: build/C/man2/sigaction.2:524
5688 #, no-wrap
5689 msgid "B<SI_SIGIO>"
5690 msgstr "B<SI_SIGIO>"
5691
5692 #. type: Plain text
5693 #: build/C/man2/sigaction.2:533
5694 msgid ""
5695 "Queued B<SIGIO> (only in kernels up to Linux 2.2; from Linux 2.4 onward "
5696 "B<SIGIO>/B<SIGPOLL> fills in I<si_code> as described below)."
5697 msgstr ""
5698 "B<SIGIO> がキューイングされた (Linux 2.2 以下のカーネルのみ; Linux 2.4 以降で"
5699 "は以下で説明する B<SIGIO>/B<SIGPOLL> の I<si_code> が入る)"
5700
5701 #. type: TP
5702 #: build/C/man2/sigaction.2:533
5703 #, no-wrap
5704 msgid "B<SI_TKILL> (since Linux 2.4.19)"
5705 msgstr "B<SI_TKILL> (Linux 2.4.19 以降)"
5706
5707 #.  SI_DETHREAD is defined in 2.6.9 sources, but isn't implemented
5708 #.  It appears to have been an idea that was tried during 2.5.6
5709 #.  through to 2.5.24 and then was backed out.
5710 #. type: Plain text
5711 #: build/C/man2/sigaction.2:541
5712 msgid "B<tkill>(2)  or B<tgkill>(2)."
5713 msgstr "B<tkill>(2) または B<tgkill>(2)"
5714
5715 #. type: Plain text
5716 #: build/C/man2/sigaction.2:548
5717 msgid ""
5718 "The following values can be placed in I<si_code> for a B<SIGILL> signal:"
5719 msgstr "B<SIGILL> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5720
5721 #. type: TP
5722 #: build/C/man2/sigaction.2:549
5723 #, no-wrap
5724 msgid "B<ILL_ILLOPC>"
5725 msgstr "B<ILL_ILLOPC>"
5726
5727 #. type: Plain text
5728 #: build/C/man2/sigaction.2:552
5729 msgid "Illegal opcode."
5730 msgstr "不正な命令コード"
5731
5732 #. type: TP
5733 #: build/C/man2/sigaction.2:552
5734 #, no-wrap
5735 msgid "B<ILL_ILLOPN>"
5736 msgstr "B<ILL_ILLOPN>"
5737
5738 #. type: Plain text
5739 #: build/C/man2/sigaction.2:555
5740 msgid "Illegal operand."
5741 msgstr "不正なオペランド"
5742
5743 #. type: TP
5744 #: build/C/man2/sigaction.2:555
5745 #, no-wrap
5746 msgid "B<ILL_ILLADR>"
5747 msgstr "B<ILL_ILLADR>"
5748
5749 #. type: Plain text
5750 #: build/C/man2/sigaction.2:558
5751 msgid "Illegal addressing mode."
5752 msgstr "不正なアドレッシングモード"
5753
5754 #. type: TP
5755 #: build/C/man2/sigaction.2:558
5756 #, no-wrap
5757 msgid "B<ILL_ILLTRP>"
5758 msgstr "B<ILL_ILLTRP>"
5759
5760 #. type: Plain text
5761 #: build/C/man2/sigaction.2:561
5762 msgid "Illegal trap."
5763 msgstr "不正なトラップ"
5764
5765 #. type: TP
5766 #: build/C/man2/sigaction.2:561
5767 #, no-wrap
5768 msgid "B<ILL_PRVOPC>"
5769 msgstr "B<ILL_PRVOPC>"
5770
5771 #. type: Plain text
5772 #: build/C/man2/sigaction.2:564
5773 msgid "Privileged opcode."
5774 msgstr "特権が必要な命令コード"
5775
5776 #. type: TP
5777 #: build/C/man2/sigaction.2:564
5778 #, no-wrap
5779 msgid "B<ILL_PRVREG>"
5780 msgstr "B<ILL_PRVREG>"
5781
5782 #. type: Plain text
5783 #: build/C/man2/sigaction.2:567
5784 msgid "Privileged register."
5785 msgstr "特権が必要なレジスター"
5786
5787 #. type: TP
5788 #: build/C/man2/sigaction.2:567
5789 #, no-wrap
5790 msgid "B<ILL_COPROC>"
5791 msgstr "B<ILL_COPROC>"
5792
5793 #. type: Plain text
5794 #: build/C/man2/sigaction.2:570
5795 msgid "Coprocessor error."
5796 msgstr "コプロセッサのエラー"
5797
5798 #. type: TP
5799 #: build/C/man2/sigaction.2:570
5800 #, no-wrap
5801 msgid "B<ILL_BADSTK>"
5802 msgstr "B<ILL_BADSTK>"
5803
5804 #. type: Plain text
5805 #: build/C/man2/sigaction.2:573
5806 msgid "Internal stack error."
5807 msgstr "内部スタックエラー"
5808
5809 #. type: Plain text
5810 #: build/C/man2/sigaction.2:580
5811 msgid ""
5812 "The following values can be placed in I<si_code> for a B<SIGFPE> signal:"
5813 msgstr "B<SIGFPE> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5814
5815 #. type: TP
5816 #: build/C/man2/sigaction.2:581
5817 #, no-wrap
5818 msgid "B<FPE_INTDIV>"
5819 msgstr "B<FPE_INTDIV>"
5820
5821 #. type: Plain text
5822 #: build/C/man2/sigaction.2:584
5823 msgid "Integer divide by zero."
5824 msgstr "整数の 0 による除算"
5825
5826 #. type: TP
5827 #: build/C/man2/sigaction.2:584
5828 #, no-wrap
5829 msgid "B<FPE_INTOVF>"
5830 msgstr "B<FPE_INTOVF>"
5831
5832 #. type: Plain text
5833 #: build/C/man2/sigaction.2:587
5834 msgid "Integer overflow."
5835 msgstr "整数のオーバーフロー"
5836
5837 #. type: TP
5838 #: build/C/man2/sigaction.2:587
5839 #, no-wrap
5840 msgid "B<FPE_FLTDIV>"
5841 msgstr "B<FPE_FLTDIV>"
5842
5843 #. type: Plain text
5844 #: build/C/man2/sigaction.2:590
5845 msgid "Floating-point divide by zero."
5846 msgstr "浮動小数点の 0 による除算"
5847
5848 #. type: TP
5849 #: build/C/man2/sigaction.2:590
5850 #, no-wrap
5851 msgid "B<FPE_FLTOVF>"
5852 msgstr "B<FPE_FLTOVF>"
5853
5854 #. type: Plain text
5855 #: build/C/man2/sigaction.2:593
5856 msgid "Floating-point overflow."
5857 msgstr "浮動小数点のオーバーフロー"
5858
5859 #. type: TP
5860 #: build/C/man2/sigaction.2:593
5861 #, no-wrap
5862 msgid "B<FPE_FLTUND>"
5863 msgstr "B<FPE_FLTUND>"
5864
5865 #. type: Plain text
5866 #: build/C/man2/sigaction.2:596
5867 msgid "Floating-point underflow."
5868 msgstr "浮動小数点のアンダーフロー"
5869
5870 #. type: TP
5871 #: build/C/man2/sigaction.2:596
5872 #, no-wrap
5873 msgid "B<FPE_FLTRES>"
5874 msgstr "B<FPE_FLTRES>"
5875
5876 #. type: Plain text
5877 #: build/C/man2/sigaction.2:599
5878 msgid "Floating-point inexact result."
5879 msgstr "浮動小数点の不正確な演算結果 (inexact result)"
5880
5881 #. type: TP
5882 #: build/C/man2/sigaction.2:599
5883 #, no-wrap
5884 msgid "B<FPE_FLTINV>"
5885 msgstr "B<FPE_FLTINV>"
5886
5887 #. type: Plain text
5888 #: build/C/man2/sigaction.2:602
5889 msgid "Floating-point invalid operation."
5890 msgstr "浮動小数点の不正な操作"
5891
5892 #. type: TP
5893 #: build/C/man2/sigaction.2:602
5894 #, no-wrap
5895 msgid "B<FPE_FLTSUB>"
5896 msgstr "B<FPE_FLTSUB>"
5897
5898 #. type: Plain text
5899 #: build/C/man2/sigaction.2:605
5900 msgid "Subscript out of range."
5901 msgstr "範囲外の添字 (subscript)"
5902
5903 #. type: Plain text
5904 #: build/C/man2/sigaction.2:612
5905 msgid ""
5906 "The following values can be placed in I<si_code> for a B<SIGSEGV> signal:"
5907 msgstr "B<SIGSEGV> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5908
5909 #. type: TP
5910 #: build/C/man2/sigaction.2:613
5911 #, no-wrap
5912 msgid "B<SEGV_MAPERR>"
5913 msgstr "B<SEGV_MAPERR>"
5914
5915 #. type: Plain text
5916 #: build/C/man2/sigaction.2:616
5917 msgid "Address not mapped to object."
5918 msgstr "オブジェクトにマッピングされていないアドレス"
5919
5920 #. type: TP
5921 #: build/C/man2/sigaction.2:616
5922 #, no-wrap
5923 msgid "B<SEGV_ACCERR>"
5924 msgstr "B<SEGV_ACCERR>"
5925
5926 #. type: Plain text
5927 #: build/C/man2/sigaction.2:619
5928 msgid "Invalid permissions for mapped object."
5929 msgstr "マッピングされたオブジェクトに対するアクセス許可がない"
5930
5931 #. type: Plain text
5932 #: build/C/man2/sigaction.2:626
5933 msgid ""
5934 "The following values can be placed in I<si_code> for a B<SIGBUS> signal:"
5935 msgstr "B<SIGBUS> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5936
5937 #. type: TP
5938 #: build/C/man2/sigaction.2:627
5939 #, no-wrap
5940 msgid "B<BUS_ADRALN>"
5941 msgstr "B<BUS_ADRALN>"
5942
5943 #. type: Plain text
5944 #: build/C/man2/sigaction.2:630
5945 msgid "Invalid address alignment."
5946 msgstr "不正なアドレスアライメント (alignment)"
5947
5948 #. type: TP
5949 #: build/C/man2/sigaction.2:630
5950 #, no-wrap
5951 msgid "B<BUS_ADRERR>"
5952 msgstr "B<BUS_ADRERR>"
5953
5954 #. type: Plain text
5955 #: build/C/man2/sigaction.2:633
5956 msgid "Nonexistent physical address."
5957 msgstr "存在しない物理アドレス"
5958
5959 #. type: TP
5960 #: build/C/man2/sigaction.2:633
5961 #, no-wrap
5962 msgid "B<BUS_OBJERR>"
5963 msgstr "B<BUS_OBJERR>"
5964
5965 #. type: Plain text
5966 #: build/C/man2/sigaction.2:636
5967 msgid "Object-specific hardware error."
5968 msgstr "オブジェクト固有のハードウェアエラー"
5969
5970 #. type: TP
5971 #: build/C/man2/sigaction.2:636
5972 #, no-wrap
5973 msgid "B<BUS_MCEERR_AR> (since Linux 2.6.32)"
5974 msgstr "B<BUS_MCEERR_AR> (Linux 2.6.32 以降)"
5975
5976 #. type: Plain text
5977 #: build/C/man2/sigaction.2:639
5978 msgid "Hardware memory error consumed on a machine check; action required."
5979 msgstr ""
5980 "マシンチェックで使用中のハードウェアメモリーのエラーが検出された。対応が必"
5981 "須。"
5982
5983 #. type: TP
5984 #: build/C/man2/sigaction.2:639
5985 #, no-wrap
5986 msgid "B<BUS_MCEERR_AO> (since Linux 2.6.32)"
5987 msgstr "B<BUS_MCEERR_AO> (Linux 2.6.32  以降)"
5988
5989 #. type: Plain text
5990 #: build/C/man2/sigaction.2:642
5991 msgid ""
5992 "Hardware memory error detected in process but not consumed; action optional."
5993 msgstr ""
5994 "実行中にハードウェアメモリーエラーが検出されたが、使用中のメモリーではない。"
5995 "対応は必須ではない。"
5996
5997 #. type: Plain text
5998 #: build/C/man2/sigaction.2:649
5999 msgid ""
6000 "The following values can be placed in I<si_code> for a B<SIGTRAP> signal:"
6001 msgstr "B<SIGTRAP> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
6002
6003 #. type: TP
6004 #: build/C/man2/sigaction.2:650
6005 #, no-wrap
6006 msgid "B<TRAP_BRKPT>"
6007 msgstr "B<TRAP_BRKPT>"
6008
6009 #. type: Plain text
6010 #: build/C/man2/sigaction.2:653
6011 msgid "Process breakpoint."
6012 msgstr "プロセスのブレークポイント"
6013
6014 #. type: TP
6015 #: build/C/man2/sigaction.2:653
6016 #, no-wrap
6017 msgid "B<TRAP_TRACE>"
6018 msgstr "B<TRAP_TRACE>"
6019
6020 #. type: Plain text
6021 #: build/C/man2/sigaction.2:656
6022 msgid "Process trace trap."
6023 msgstr "プロセスのトレーストラップ"
6024
6025 #. type: TP
6026 #: build/C/man2/sigaction.2:656
6027 #, no-wrap
6028 msgid "B<TRAP_BRANCH> (since Linux 2.4)"
6029 msgstr "B<TRAP_BRANCH> (Linux 2.4 以降)"
6030
6031 #. type: Plain text
6032 #: build/C/man2/sigaction.2:659
6033 msgid "Process taken branch trap."
6034 msgstr "プロセスのブランチトラップ"
6035
6036 #. type: TP
6037 #: build/C/man2/sigaction.2:659
6038 #, no-wrap
6039 msgid "B<TRAP_HWBKPT> (since Linux 2.4)"
6040 msgstr "B<TRAP_HWBKPT> (Linux 2.4 以降)"
6041
6042 #. type: Plain text
6043 #: build/C/man2/sigaction.2:662
6044 msgid "Hardware breakpoint/watchpoint."
6045 msgstr "ハードウェアのブレークポイント/ウォッチポイント"
6046
6047 #. type: Plain text
6048 #: build/C/man2/sigaction.2:669
6049 msgid ""
6050 "The following values can be placed in I<si_code> for a B<SIGCHLD> signal:"
6051 msgstr "B<SIGCHLD> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
6052
6053 #. type: TP
6054 #: build/C/man2/sigaction.2:670
6055 #, no-wrap
6056 msgid "B<CLD_EXITED>"
6057 msgstr "B<CLD_EXITED>"
6058
6059 #. type: Plain text
6060 #: build/C/man2/sigaction.2:673
6061 msgid "Child has exited."
6062 msgstr "子プロセスが終了した (exited)"
6063
6064 #. type: TP
6065 #: build/C/man2/sigaction.2:673
6066 #, no-wrap
6067 msgid "B<CLD_KILLED>"
6068 msgstr "B<CLD_KILLED>"
6069
6070 #. type: Plain text
6071 #: build/C/man2/sigaction.2:676
6072 msgid "Child was killed."
6073 msgstr "子プロセスが kill された"
6074
6075 #. type: TP
6076 #: build/C/man2/sigaction.2:676
6077 #, no-wrap
6078 msgid "B<CLD_DUMPED>"
6079 msgstr "B<CLD_DUMPED>"
6080
6081 #. type: Plain text
6082 #: build/C/man2/sigaction.2:679
6083 msgid "Child terminated abnormally."
6084 msgstr "子プロセスが異常終了した"
6085
6086 #. type: TP
6087 #: build/C/man2/sigaction.2:679
6088 #, no-wrap
6089 msgid "B<CLD_TRAPPED>"
6090 msgstr "B<CLD_TRAPPED>"
6091
6092 #. type: Plain text
6093 #: build/C/man2/sigaction.2:682
6094 msgid "Traced child has trapped."
6095 msgstr "トレース対象の子プロセスがトラップを上げた"
6096
6097 #. type: TP
6098 #: build/C/man2/sigaction.2:682
6099 #, no-wrap
6100 msgid "B<CLD_STOPPED>"
6101 msgstr "B<CLD_STOPPED>"
6102
6103 #. type: Plain text
6104 #: build/C/man2/sigaction.2:685
6105 msgid "Child has stopped."
6106 msgstr "子プロセスが停止 (stop) した"
6107
6108 #. type: TP
6109 #: build/C/man2/sigaction.2:685
6110 #, no-wrap
6111 msgid "B<CLD_CONTINUED> (since Linux 2.6.9)"
6112 msgstr "B<CLD_CONTINUED> (Linux 2.6.9 以降)"
6113
6114 #. type: Plain text
6115 #: build/C/man2/sigaction.2:688
6116 msgid "Stopped child has continued."
6117 msgstr "停止していた子プロセスが再開した"
6118
6119 #. type: Plain text
6120 #: build/C/man2/sigaction.2:695
6121 msgid ""
6122 "The following values can be placed in I<si_code> for a B<SIGIO>/B<SIGPOLL> "
6123 "signal:"
6124 msgstr ""
6125 "B<SIGIO>/B<SIGPOLL> シグナルの場合、 I<si_code> には以下の値が入る可能性があ"
6126 "る:"
6127
6128 #. type: TP
6129 #: build/C/man2/sigaction.2:696
6130 #, no-wrap
6131 msgid "B<POLL_IN>"
6132 msgstr "B<POLL_IN>"
6133
6134 #. type: Plain text
6135 #: build/C/man2/sigaction.2:699
6136 msgid "Data input available."
6137 msgstr "入力データが利用可能"
6138
6139 #. type: TP
6140 #: build/C/man2/sigaction.2:699
6141 #, no-wrap
6142 msgid "B<POLL_OUT>"
6143 msgstr "B<POLL_OUT>"
6144
6145 #. type: Plain text
6146 #: build/C/man2/sigaction.2:702
6147 msgid "Output buffers available."
6148 msgstr "出力バッファーが利用可能"
6149
6150 #. type: TP
6151 #: build/C/man2/sigaction.2:702
6152 #, no-wrap
6153 msgid "B<POLL_MSG>"
6154 msgstr "B<POLL_MSG>"
6155
6156 #. type: Plain text
6157 #: build/C/man2/sigaction.2:705
6158 msgid "Input message available."
6159 msgstr "入力メッセージが利用可能"
6160
6161 #. type: TP
6162 #: build/C/man2/sigaction.2:705
6163 #, no-wrap
6164 msgid "B<POLL_ERR>"
6165 msgstr "B<POLL_ERR>"
6166
6167 #. type: Plain text
6168 #: build/C/man2/sigaction.2:708
6169 msgid "I/O error."
6170 msgstr "I/O エラー"
6171
6172 #. type: TP
6173 #: build/C/man2/sigaction.2:708
6174 #, no-wrap
6175 msgid "B<POLL_PRI>"
6176 msgstr "B<POLL_PRI>"
6177
6178 #. type: Plain text
6179 #: build/C/man2/sigaction.2:711
6180 msgid "High priority input available."
6181 msgstr "高優先の入力が利用可能"
6182
6183 #. type: TP
6184 #: build/C/man2/sigaction.2:711
6185 #, no-wrap
6186 msgid "B<POLL_HUP>"
6187 msgstr "B<POLL_HUP>"
6188
6189 #. type: Plain text
6190 #: build/C/man2/sigaction.2:714
6191 msgid "Device disconnected."
6192 msgstr "デバイスが接続されていない"
6193
6194 #. type: Plain text
6195 #: build/C/man2/sigaction.2:721
6196 msgid "The following value can be placed in I<si_code> for a B<SIGSYS> signal:"
6197 msgstr "B<SIGSYS> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
6198
6199 #. type: TP
6200 #: build/C/man2/sigaction.2:722
6201 #, no-wrap
6202 msgid "B<SYS_SECCOMP> (since Linux 3.5)"
6203 msgstr "B<SYS_SECCOMP> (Linux 3.5 以降)"
6204
6205 #. type: Plain text
6206 #: build/C/man2/sigaction.2:727
6207 msgid "Triggered by a B<seccomp>(2)  filter rule."
6208 msgstr "B<seccomp>(2) のフィルタールールによる配送された"
6209
6210 #. type: Plain text
6211 #: build/C/man2/sigaction.2:733
6212 msgid ""
6213 "B<sigaction>()  returns 0 on success; on error, -1 is returned, and I<errno> "
6214 "is set to indicate the error."
6215 msgstr ""
6216 "B<sigaction>() 関数は成功すると 0 を返す。 エラーの場合、-1 を返し、 "
6217 "I<errno> にエラーを示す値をセットする。"
6218
6219 #. type: Plain text
6220 #: build/C/man2/sigaction.2:738
6221 msgid ""
6222 "I<act> or I<oldact> points to memory which is not a valid part of the "
6223 "process address space."
6224 msgstr ""
6225 "I<act> か I<oldact> が指しているメモリーが正しいプロセスのアドレス空間にな"
6226 "い。"
6227
6228 #. type: Plain text
6229 #: build/C/man2/sigaction.2:745
6230 msgid ""
6231 "An invalid signal was specified.  This will also be generated if an attempt "
6232 "is made to change the action for B<SIGKILL> or B<SIGSTOP>, which cannot be "
6233 "caught or ignored."
6234 msgstr ""
6235 "無効なシグナルが指定された。補足 (catch) したり無視したりできない シグナルで"
6236 "ある B<SIGKILL> や B<SIGSTOP> に対する動作を変更しようとした場合にも発生す"
6237 "る。"
6238
6239 #.  SVr4 does not document the EINTR condition.
6240 #. type: Plain text
6241 #: build/C/man2/sigaction.2:748
6242 msgid "POSIX.1-2001, SVr4."
6243 msgstr "POSIX.1-2001, SVr4."
6244
6245 #. type: Plain text
6246 #: build/C/man2/sigaction.2:756 build/C/man7/signal.7:105
6247 msgid ""
6248 "A child created via B<fork>(2)  inherits a copy of its parent's signal "
6249 "dispositions.  During an B<execve>(2), the dispositions of handled signals "
6250 "are reset to the default; the dispositions of ignored signals are left "
6251 "unchanged."
6252 msgstr ""
6253 "B<fork>(2) 経由で作成された子プロセスは、親プロセスのシグナルの処理方法の コ"
6254 "ピーを継承する。 B<execve>(2) の前後で、ハンドラーが設定されているシグナルの"
6255 "処理方法はデフォルトにリセットされ、 無視が設定されているシグナルの処理方法は"
6256 "変更されずそのままとなる。"
6257
6258 #. type: Plain text
6259 #: build/C/man2/sigaction.2:774 build/C/man2/signal.2:134
6260 msgid ""
6261 "According to POSIX, the behavior of a process is undefined after it ignores "
6262 "a B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> signal that was not generated by "
6263 "B<kill>(2)  or B<raise>(3).  Integer division by zero has undefined result.  "
6264 "On some architectures it will generate a B<SIGFPE> signal.  (Also dividing "
6265 "the most negative integer by -1 may generate B<SIGFPE>.)  Ignoring this "
6266 "signal might lead to an endless loop."
6267 msgstr ""
6268 "POSIX では、 B<kill>(2)  や B<raise>(3)  で生成できないシグナル B<SIGFPE>, "
6269 "B<SIGILL>, B<SIGSEGV> を無視 (ignore) した場合、その後の動作は未定義である。 "
6270 "ゼロによる整数割り算の結果は未定義となる。 アーキテクチャーによっては、このと"
6271 "き B<SIGFPE> シグナルが生成される。 (同様に負の最大整数を -1 で割ると "
6272 "B<SIGFPE> が生成されるかもしれない)  このシグナルを無視すると無限ループに陥る"
6273 "かもしれない。"
6274
6275 #. type: Plain text
6276 #: build/C/man2/sigaction.2:791
6277 msgid ""
6278 "POSIX.1-1990 disallowed setting the action for B<SIGCHLD> to B<SIG_IGN>.  "
6279 "POSIX.1-2001 allows this possibility, so that ignoring B<SIGCHLD> can be "
6280 "used to prevent the creation of zombies (see B<wait>(2)).  Nevertheless, the "
6281 "historical BSD and System\\ V behaviors for ignoring B<SIGCHLD> differ, so "
6282 "that the only completely portable method of ensuring that terminated "
6283 "children do not become zombies is to catch the B<SIGCHLD> signal and perform "
6284 "a B<wait>(2)  or similar."
6285 msgstr ""
6286 "POSIX.1-1990 では B<SIGCHLD> に B<SIG_IGN> を設定することを認めていない。 "
6287 "POSIX.1-2001 では認められており、 B<SIGCHLD> を無視することでゾンビプロセスの"
6288 "生成を防止することができる (B<wait>(2)  を参照)。 さらに、BSD と System\\ V "
6289 "では B<SIGCHLD> を無視した際の動作が異なっている。 そのため、完全に移植性があ"
6290 "る方法で、終了した子プロセスがゾンビにならないこと を保証するには、 "
6291 "B<SIGCHLD> シグナルを補足し、 B<wait>(2)  などを実行するしかない。"
6292
6293 #. type: Plain text
6294 #: build/C/man2/sigaction.2:804
6295 msgid ""
6296 "POSIX.1-1990 specified only B<SA_NOCLDSTOP>.  POSIX.1-2001 added "
6297 "B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, and B<SA_SIGINFO>.  Use of "
6298 "these latter values in I<sa_flags> may be less portable in applications "
6299 "intended for older UNIX implementations."
6300 msgstr ""
6301 "POSIX.1-1990 の仕様では B<SA_NOCLDSTOP> のみが定義されている。 POSIX.1-2001 "
6302 "では B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, B<SA_SIGINFO> が追加さ"
6303 "れた。 UNIX の古い実装で動かすアプリケーションで、 他の I<sa_flags> フラグを"
6304 "使用すると移植性が下がる。"
6305
6306 #. type: Plain text
6307 #: build/C/man2/sigaction.2:808
6308 msgid ""
6309 "The B<SA_RESETHAND> flag is compatible with the SVr4 flag of the same name."
6310 msgstr "B<SA_RESETHAND> フラグは SVr4 の同じ名前のフラグと互換性がある。"
6311
6312 #. type: Plain text
6313 #: build/C/man2/sigaction.2:818
6314 msgid ""
6315 "The B<SA_NODEFER> flag is compatible with the SVr4 flag of the same name "
6316 "under kernels 1.3.9 and newer.  On older kernels the Linux implementation "
6317 "allowed the receipt of any signal, not just the one we are installing "
6318 "(effectively overriding any I<sa_mask> settings)."
6319 msgstr ""
6320 "B<SA_NODEFER> フラグは 1.3.9 以降のカーネルでは同じ名前の SVr4 のフラグと互換"
6321 "性がある。 ぞれ以前の Linux カーネルの実装では、このフラグを設定しているシグ"
6322 "ナル だけでなく、どのシグナルでも受けることを許していた (実際には I<sa_mask> "
6323 "の設定により無効にできる)。"
6324
6325 #. type: Plain text
6326 #: build/C/man2/sigaction.2:824
6327 msgid ""
6328 "B<sigaction>()  can be called with a NULL second argument to query the "
6329 "current signal handler.  It can also be used to check whether a given signal "
6330 "is valid for the current machine by calling it with NULL second and third "
6331 "arguments."
6332 msgstr ""
6333 "B<sigaction>()  の二番目の引き数に NULL を指定して呼び出すと、現在のシグナル"
6334 "ハンドラーを確認する ことができる。また、二番目と三番目の引き数を NULL にて呼"
6335 "び出すことで、 指定されたシグナルが現在のマシンで使えるかどうかチェックでき"
6336 "る。"
6337
6338 #. type: Plain text
6339 #: build/C/man2/sigaction.2:830
6340 msgid ""
6341 "It is not possible to block B<SIGKILL> or B<SIGSTOP> (by specifying them in "
6342 "I<sa_mask>).  Attempts to do so are silently ignored."
6343 msgstr ""
6344 "B<SIGKILL> や B<SIGSTOP> を (I<sa_mask> に指定して) 禁止することはできない。 "
6345 "禁止しようとしても黙って無視される。"
6346
6347 #. type: Plain text
6348 #: build/C/man2/sigaction.2:834 build/C/man2/sigpending.2:70
6349 #: build/C/man2/sigprocmask.2:144 build/C/man2/sigsuspend.2:108
6350 msgid "See B<sigsetops>(3)  for details on manipulating signal sets."
6351 msgstr "シグナル集合の操作に関する詳細は B<sigsetops>(3)  を参照のこと。"
6352
6353 #. type: Plain text
6354 #: build/C/man2/sigaction.2:839
6355 msgid ""
6356 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
6357 "safely called inside from inside a signal handler."
6358 msgstr ""
6359 "シグナルハンドラー内から安全に呼び出すことができる、 async-signal-safe "
6360 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
6361 "照。"
6362
6363 #. type: SS
6364 #: build/C/man2/sigaction.2:839
6365 #, no-wrap
6366 msgid "Undocumented"
6367 msgstr "非公式"
6368
6369 #. type: Plain text
6370 #: build/C/man2/sigaction.2:849
6371 msgid ""
6372 "Before the introduction of B<SA_SIGINFO> it was also possible to get some "
6373 "additional information, namely by using a I<sa_handler> with second argument "
6374 "of type I<struct sigcontext>.  See the relevant Linux kernel sources for "
6375 "details.  This use is obsolete now."
6376 msgstr ""
6377 "B<SA_SIGINFO> が導入される前は、 I<struct sigcontext> 型の二番目の引き数と一"
6378 "緒に I<sa_handler> を使用することで、 いくつかの追加の情報を入手することがで"
6379 "きた。 詳細については Linux カーネルソースの関連部分を見てほしい。 現在はこの"
6380 "使用法は廃止されている。"
6381
6382 #. type: Plain text
6383 #: build/C/man2/sigaction.2:858
6384 msgid ""
6385 "In kernels up to and including 2.6.13, specifying B<SA_NODEFER> in "
6386 "I<sa_flags> prevents not only the delivered signal from being masked during "
6387 "execution of the handler, but also the signals specified in I<sa_mask>.  "
6388 "This bug was fixed in kernel 2.6.14."
6389 msgstr ""
6390 "2.6.13 以前のカーネルでは、 I<sa_flags> に B<SA_NODEFER> を指定した場合、 ハ"
6391 "ンドラーが実行中に配送されたシグナル自身がマスクされなくなるだけでなく、 "
6392 "I<sa_mask> に指定されたシグナルもマスクされなくなる。 このバグは、カーネル "
6393 "2.6.14 で修正された。"
6394
6395 #. type: Plain text
6396 #: build/C/man2/sigaction.2:861
6397 msgid "See B<mprotect>(2)."
6398 msgstr "B<mprotect>(2)  参照。"
6399
6400 #. type: Plain text
6401 #: build/C/man2/sigaction.2:883
6402 msgid ""
6403 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
6404 "B<seccomp>(2)  B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), "
6405 "B<sigpending>(2), B<sigreturn>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6406 "B<wait>(2), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6407 "B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
6408 msgstr ""
6409 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
6410 "B<seccomp>(2)  B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), "
6411 "B<sigpending>(2), B<sigreturn>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6412 "B<wait>(2), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6413 "B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
6414
6415 #. type: TH
6416 #: build/C/man2/sigaltstack.2:27
6417 #, no-wrap
6418 msgid "SIGALTSTACK"
6419 msgstr "SIGALTSTACK"
6420
6421 #. type: TH
6422 #: build/C/man2/sigaltstack.2:27
6423 #, no-wrap
6424 msgid "2010-09-26"
6425 msgstr "2010-09-26"
6426
6427 #. type: Plain text
6428 #: build/C/man2/sigaltstack.2:30
6429 msgid "sigaltstack - set and/or get signal stack context"
6430 msgstr "sigaltstack - シグナルスタックのコンテキストを設定・取得する"
6431
6432 #. type: Plain text
6433 #: build/C/man2/sigaltstack.2:34
6434 msgid "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
6435 msgstr "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
6436
6437 #. type: Plain text
6438 #: build/C/man2/sigaltstack.2:41
6439 msgid "B<sigaltstack>():"
6440 msgstr "B<sigaltstack>():"
6441
6442 #. type: Plain text
6443 #: build/C/man2/sigaltstack.2:48 build/C/man3/siginterrupt.3:53
6444 #: build/C/man2/wait.2:80
6445 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
6446 msgstr "|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
6447
6448 #. type: Plain text
6449 #: build/C/man2/sigaltstack.2:60
6450 msgid ""
6451 "B<sigaltstack>()  allows a process to define a new alternate signal stack "
6452 "and/or retrieve the state of an existing alternate signal stack.  An "
6453 "alternate signal stack is used during the execution of a signal handler if "
6454 "the establishment of that handler (see B<sigaction>(2))  requested it."
6455 msgstr ""
6456 "B<sigaltstack>()  を使うと、 プロセスは新しい代替シグナルスタックを定義した"
6457 "り、 既存の代替シグナルスタックの状態を取得できる。 シグナルハンドラーが代替"
6458 "シグナルスタックを要求するように設定されていると (B<sigaction>(2)  参照)、ハ"
6459 "ンドラーの実行中はそのシグナルスタックが使われる。"
6460
6461 #. type: Plain text
6462 #: build/C/man2/sigaltstack.2:63
6463 msgid ""
6464 "The normal sequence of events for using an alternate signal stack is the "
6465 "following:"
6466 msgstr "代替シグナルスタックを使う際の一般的な手順は、以下の通りである:"
6467
6468 #. type: IP
6469 #: build/C/man2/sigaltstack.2:63 build/C/man7/signal.7:387
6470 #, no-wrap
6471 msgid "1."
6472 msgstr "1."
6473
6474 #. type: Plain text
6475 #: build/C/man2/sigaltstack.2:67
6476 msgid "Allocate an area of memory to be used for the alternate signal stack."
6477 msgstr "代替シグナルスタックで使うメモリー領域を確保する。"
6478
6479 #. type: IP
6480 #: build/C/man2/sigaltstack.2:67 build/C/man7/signal.7:391
6481 #, no-wrap
6482 msgid "2."
6483 msgstr "2."
6484
6485 #. type: Plain text
6486 #: build/C/man2/sigaltstack.2:73
6487 msgid ""
6488 "Use B<sigaltstack>()  to inform the system of the existence and location of "
6489 "the alternate signal stack."
6490 msgstr ""
6491 "B<sigaltstack>()  を使って、 代替シグナルスタックの存在と場所をシステムに知ら"
6492 "せる。"
6493
6494 #. type: IP
6495 #: build/C/man2/sigaltstack.2:73 build/C/man7/signal.7:411
6496 #, no-wrap
6497 msgid "3."
6498 msgstr "3."
6499
6500 #. type: Plain text
6501 #: build/C/man2/sigaltstack.2:80
6502 msgid ""
6503 "When establishing a signal handler using B<sigaction>(2), inform the system "
6504 "that the signal handler should be executed on the alternate signal stack by "
6505 "specifying the B<SA_ONSTACK> flag."
6506 msgstr ""
6507 "B<sigaction>(2)  を使ってシグナルハンドラーを確立する際、 B<SA_ONSTACK> フラ"
6508 "グを指定することにより、 そのシグナルハンドラーを代替シグナルスタック上で実行"
6509 "することを システムに知らせる。"
6510
6511 #. type: Plain text
6512 #: build/C/man2/sigaltstack.2:88
6513 msgid ""
6514 "The I<ss> argument is used to specify a new alternate signal stack, while "
6515 "the I<oss> argument is used to retrieve information about the currently "
6516 "established signal stack.  If we are interested in performing just one of "
6517 "these tasks, then the other argument can be specified as NULL.  Each of "
6518 "these arguments is a structure of the following type:"
6519 msgstr ""
6520 "I<ss> 引き数は、新しいシグナルスタックを指定するために使う。 また I<oss> 引き"
6521 "数は、現在確立されている シグナルスタックの情報を取得するために使う。 この操"
6522 "作のうち 1 つだけを実行させるには、 使用しない引き数を NULL に指定すればよ"
6523 "い。 引き数となる構造体は、以下のような型である:"
6524
6525 #. type: Plain text
6526 #: build/C/man2/sigaltstack.2:96
6527 #, no-wrap
6528 msgid ""
6529 "typedef struct {\n"
6530 "    void  *ss_sp;     /* Base address of stack */\n"
6531 "    int    ss_flags;  /* Flags */\n"
6532 "    size_t ss_size;   /* Number of bytes in stack */\n"
6533 "} stack_t;\n"
6534 msgstr ""
6535 "typedef struct {\n"
6536 "    void  *ss_sp;     /* スタックのベースアドレス */\n"
6537 "    int    ss_flags;  /* フラグ */\n"
6538 "    size_t ss_size;   /* スタックのバイト数 */\n"
6539 "} stack_t;\n"
6540
6541 #. type: Plain text
6542 #: build/C/man2/sigaltstack.2:107
6543 msgid ""
6544 "To establish a new alternate signal stack, I<ss.ss_flags> is set to zero, "
6545 "and I<ss.ss_sp> and I<ss.ss_size> specify the starting address and size of "
6546 "the stack.  The constant B<SIGSTKSZ> is defined to be large enough to cover "
6547 "the usual size requirements for an alternate signal stack, and the constant "
6548 "B<MINSIGSTKSZ> defines the minimum size required to execute a signal handler."
6549 msgstr ""
6550 "新規の代替シグナルスタックを確立するには、 I<ss.ss_flags> を 0 に設定し、 "
6551 "I<ss.ss_sp> と I<ss.ss_size> に スタックの開始アドレスとスタックサイズを指定"
6552 "する。 定数 B<SIGSTKSZ> は、代替シグナルスタックが通常必要する サイズよりも充"
6553 "分大きく定義されている。 また定数 B<MINSIGSTKSZ> は、 シグナルハンドラーの実"
6554 "行に必要な最小サイズに定義されている。"
6555
6556 #. type: Plain text
6557 #: build/C/man2/sigaltstack.2:111
6558 msgid ""
6559 "When a signal handler is invoked on the alternate stack, the kernel "
6560 "automatically aligns the address given in I<ss.ss_sp> to a suitable address "
6561 "boundary for the underlying hardware architecture."
6562 msgstr ""
6563 "代替スタックでシグナルハンドラーが起動された場合には、 カーネルにより自動的"
6564 "に、I<ss.ss_sp> で指定されたアドレスは 動作しているハードウェアアーキテク"
6565 "チャーに適したアドレス境界に 調整される。"
6566
6567 #. type: Plain text
6568 #: build/C/man2/sigaltstack.2:116
6569 msgid ""
6570 "To disable an existing stack, specify I<ss.ss_flags> as B<SS_DISABLE>.  In "
6571 "this case, the remaining fields in I<ss> are ignored."
6572 msgstr ""
6573 "既存のスタックを無効にするには、 I<ss.ss_flags> を B<SS_DISABLE> に指定す"
6574 "る。 この場合、I<ss> の他のフィールドは無視される。"
6575
6576 #. type: Plain text
6577 #: build/C/man2/sigaltstack.2:124
6578 msgid ""
6579 "If I<oss> is not NULL, then it is used to return information about the "
6580 "alternate signal stack which was in effect prior to the call to "
6581 "B<sigaltstack>().  The I<oss.ss_sp> and I<oss.ss_size> fields return the "
6582 "starting address and size of that stack.  The I<oss.ss_flags> may return "
6583 "either of the following values:"
6584 msgstr ""
6585 "I<oss> が NULL 以外の場合、 I<oss> に代替シグナルスタックの情報が返される。 "
6586 "これは (実質的に)  B<sigaltstack>()  の呼び出しより先に行われる。 I<oss."
6587 "ss_sp> と I<oss.ss_size> フィールドに スタックの開始アドレスとスタックサイズ"
6588 "が返される。 I<oss.ss_flags> には以下のどちらかの値が返される:"
6589
6590 #. type: TP
6591 #: build/C/man2/sigaltstack.2:124
6592 #, no-wrap
6593 msgid "B<SS_ONSTACK>"
6594 msgstr "B<SS_ONSTACK>"
6595
6596 #. type: Plain text
6597 #: build/C/man2/sigaltstack.2:130
6598 msgid ""
6599 "The process is currently executing on the alternate signal stack.  (Note "
6600 "that it is not possible to change the alternate signal stack if the process "
6601 "is currently executing on it.)"
6602 msgstr ""
6603 "プロセスが代替シグナルスタック上で実行されている (プロセスが既にそのシグナル"
6604 "スタック上で実行されている場合は、 それと同じシグナルスタックには変更できない"
6605 "点に注意すること)。"
6606
6607 #. type: TP
6608 #: build/C/man2/sigaltstack.2:130
6609 #, no-wrap
6610 msgid "B<SS_DISABLE>"
6611 msgstr "B<SS_DISABLE>"
6612
6613 #. type: Plain text
6614 #: build/C/man2/sigaltstack.2:133
6615 msgid "The alternate signal stack is currently disabled."
6616 msgstr "代替シグナルスタックが現在無効になっている。"
6617
6618 #. type: Plain text
6619 #: build/C/man2/sigaltstack.2:137
6620 msgid ""
6621 "B<sigaltstack>()  returns 0 on success, or -1 on failure with I<errno> set "
6622 "to indicate the error."
6623 msgstr ""
6624 "B<sigaltstack>()  は成功した場合 0 を返す。 失敗した場合は -1 を返して、 エ"
6625 "ラーを示す値に I<errno> を設定する。"
6626
6627 #. type: Plain text
6628 #: build/C/man2/sigaltstack.2:142
6629 msgid ""
6630 "Either I<ss> or I<oss> is not NULL and points to an area outside of the "
6631 "process's address space."
6632 msgstr ""
6633 "I<ss> または I<oss> のどちらが、NULL 以外で、 かつプロセスのアドレス空間の外"
6634 "を指している。"
6635
6636 #. type: Plain text
6637 #: build/C/man2/sigaltstack.2:147
6638 msgid ""
6639 "I<ss> is not NULL and the I<ss_flags> field contains a nonzero value other "
6640 "than B<SS_DISABLE>."
6641 msgstr ""
6642 "I<ss> が NULL 以外で、I<ss_flags> フィールドが B<SS_DISABLE> 以外の 0 でない"
6643 "値になっている。"
6644
6645 #. type: Plain text
6646 #: build/C/man2/sigaltstack.2:153
6647 msgid ""
6648 "The specified size of the new alternate signal stack I<ss.ss_size> was less "
6649 "than B<MINSTKSZ>."
6650 msgstr ""
6651 "新しい代替シグナルスタック (I<ss.ss_size>) に指定したサイズが B<MINSTKSZ> よ"
6652 "り小さかった。"
6653
6654 #. type: Plain text
6655 #: build/C/man2/sigaltstack.2:158
6656 msgid ""
6657 "An attempt was made to change the alternate signal stack while it was active "
6658 "(i.e., the process was already executing on the current alternate signal "
6659 "stack)."
6660 msgstr ""
6661 "代替シグナルスタックが有効であるときに変更を行おうとした (つまり、プロセスが"
6662 "既に現在の代替シグナルスタック上で実行されていた)。"
6663
6664 #. type: Plain text
6665 #: build/C/man2/sigaltstack.2:160
6666 msgid "SUSv2, SVr4, POSIX.1-2001."
6667 msgstr "SUSv2, SVr4, POSIX.1-2001."
6668
6669 #. type: Plain text
6670 #: build/C/man2/sigaltstack.2:168
6671 msgid ""
6672 "The most common usage of an alternate signal stack is to handle the "
6673 "B<SIGSEGV> signal that is generated if the space available for the normal "
6674 "process stack is exhausted: in this case, a signal handler for B<SIGSEGV> "
6675 "cannot be invoked on the process stack; if we wish to handle it, we must use "
6676 "an alternate signal stack."
6677 msgstr ""
6678 "代替シグナルスタックを使用する最もよくある場面は、 B<SIGSEGV> シグナルを扱う"
6679 "ときである。 B<SIGSEGV> はプロセスの通常のスタックが利用できる空間が使い果た"
6680 "された際に 生成されるシグナルである。この場合には、 B<SIGSEGV> 用のシグナルハ"
6681 "ンドラーをプロセスのスタック上では起動することができない。 そのため、このシグ"
6682 "ナルを扱おうとする場合には、 代替シグナルスタックを使用しなければならない。"
6683
6684 #. type: Plain text
6685 #: build/C/man2/sigaltstack.2:178
6686 msgid ""
6687 "Establishing an alternate signal stack is useful if a process expects that "
6688 "it may exhaust its standard stack.  This may occur, for example, because the "
6689 "stack grows so large that it encounters the upwardly growing heap, or it "
6690 "reaches a limit established by a call to B<setrlimit(RLIMIT_STACK, &rlim)>.  "
6691 "If the standard stack is exhausted, the kernel sends the process a "
6692 "B<SIGSEGV> signal.  In these circumstances the only way to catch this signal "
6693 "is on an alternate signal stack."
6694 msgstr ""
6695 "プロセスが標準のシグナルスタックを使い果たすことが予想される場合は、 代替シグ"
6696 "ナルスタックを確立すると便利である。 例えば、スタックが最上位アドレスから 下"
6697 "位アドレス方向に非常にたくさん積まれてしまうことで、 最下位アドレスから上位ア"
6698 "ドレス方向に積まれるヒープとぶつかってしまう場合や、 "
6699 "B<setrlimit(RLIMIT_STACK, &rlim)> の呼び出しで確立された 制限に達してしまった"
6700 "場合に、この様な事が起こる。 標準のスタックを使い果たしてしまうと、 カーネル"
6701 "はプロセスに B<SIGSEGV> シグナルを送る。 このような状況では、代替シグナルス"
6702 "タック上でしかシグナルをキャッチできない。"
6703
6704 #. type: Plain text
6705 #: build/C/man2/sigaltstack.2:184
6706 msgid ""
6707 "On most hardware architectures supported by Linux, stacks grow downward.  "
6708 "B<sigaltstack>()  automatically takes account of the direction of stack "
6709 "growth."
6710 msgstr ""
6711 "Linux がサポートする多くのハードウェアアーキテクチャーでは、 スタックは下位ア"
6712 "ドレス方向に積まれる。 B<sigaltstack>()  はスタックが積まれる方向を自動的に決"
6713 "定する。"
6714
6715 #. type: Plain text
6716 #: build/C/man2/sigaltstack.2:193
6717 msgid ""
6718 "Functions called from a signal handler executing on an alternate signal "
6719 "stack will also use the alternate signal stack.  (This also applies to any "
6720 "handlers invoked for other signals while the process is executing on the "
6721 "alternate signal stack.)  Unlike the standard stack, the system does not "
6722 "automatically extend the alternate signal stack.  Exceeding the allocated "
6723 "size of the alternate signal stack will lead to unpredictable results."
6724 msgstr ""
6725 "代替シグナルスタック上で実行されている シグナルハンドラーから呼ばれる関数も、"
6726 "代替シグナルハンドラーを使う (プロセスが代替シグナルスタック上で実行されてい"
6727 "る場合、 他のシグナルで呼び出されるハンドラーもこの代替シグナルハンドラーを使"
6728 "う)。 標準のスタックとは異なり、 システムは代替シグナルスタックを自動的に拡張"
6729 "しない。 代替シグナルスタック用に確保したサイズを越えた場合、 結果は予想でき"
6730 "ない。"
6731
6732 #. type: Plain text
6733 #: build/C/man2/sigaltstack.2:201
6734 msgid ""
6735 "A successful call to B<execve>(2)  removes any existing alternate signal "
6736 "stack.  A child process created via B<fork>(2)  inherits a copy of its "
6737 "parent's alternate signal stack settings."
6738 msgstr ""
6739 "B<execve>(2)  の呼び出しが成功すると、 既存の全ての代替シグナルスタックが削除"
6740 "される。 B<fork>(2)  経由で作成された子プロセスは、親プロセスの代替シグナルス"
6741 "タックの 設定のコピーを継承する。"
6742
6743 #. type: Plain text
6744 #: build/C/man2/sigaltstack.2:210
6745 msgid ""
6746 "B<sigaltstack>()  supersedes the older B<sigstack>()  call.  For backward "
6747 "compatibility, glibc also provides B<sigstack>().  All new applications "
6748 "should be written using B<sigaltstack>()."
6749 msgstr ""
6750 "B<sigaltstack>()  は以前の B<sigstack>()  を置き換えるものである。 過去プログ"
6751 "ラムとの互換性のため、glibc では B<sigstack>()  も提供している。 新しいのアプ"
6752 "リケーションは全て B<sigaltstack>()  を使って書くべきである。"
6753
6754 #. type: SS
6755 #: build/C/man2/sigaltstack.2:210 build/C/man3/sigpause.3:66
6756 #, no-wrap
6757 msgid "History"
6758 msgstr "歴史"
6759
6760 #. type: Plain text
6761 #: build/C/man2/sigaltstack.2:217
6762 msgid ""
6763 "4.2BSD had a B<sigstack>()  system call.  It used a slightly different "
6764 "struct, and had the major disadvantage that the caller had to know the "
6765 "direction of stack growth."
6766 msgstr ""
6767 "4.2BSD には B<sigstack>()  システムコールがあった。 この関数は少し異なった構"
6768 "造体を使っており、 呼び出した側がスタックの積まれる方向を知っていなければなら"
6769 "ないという 大きな欠点があった。"
6770
6771 #. type: Plain text
6772 #: build/C/man2/sigaltstack.2:220
6773 msgid "The following code segment demonstrates the use of B<sigaltstack>():"
6774 msgstr "以下のコードで B<sigaltstack>()  の使用法の一部を示す:"
6775
6776 #. type: Plain text
6777 #: build/C/man2/sigaltstack.2:224
6778 #, no-wrap
6779 msgid "stack_t ss;\n"
6780 msgstr "stack_t ss;\n"
6781
6782 #. type: Plain text
6783 #: build/C/man2/sigaltstack.2:232
6784 #, no-wrap
6785 msgid ""
6786 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6787 "if (ss.ss_sp == NULL)\n"
6788 "    /* Handle error */;\n"
6789 "ss.ss_size = SIGSTKSZ;\n"
6790 "ss.ss_flags = 0;\n"
6791 "if (sigaltstack(&ss, NULL) == -1)\n"
6792 "    /* Handle error */;\n"
6793 msgstr ""
6794 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6795 "if (ss.ss_sp == NULL)\n"
6796 "    /* ハンドルエラー */;\n"
6797 "ss.ss_size = SIGSTKSZ;\n"
6798 "ss.ss_flags = 0;\n"
6799 "if (sigaltstack(&ss, NULL) == -1)\n"
6800 "    /* ハンドルエラー */;\n"
6801
6802 #. type: Plain text
6803 #: build/C/man2/sigaltstack.2:241
6804 msgid ""
6805 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6806 "B<sigsetjmp>(3), B<signal>(7)"
6807 msgstr ""
6808 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6809 "B<sigsetjmp>(3), B<signal>(7)"
6810
6811 #. type: TH
6812 #: build/C/man7/sigevent.7:26
6813 #, no-wrap
6814 msgid "SIGEVENT"
6815 msgstr "SIGEVENT"
6816
6817 #. type: TH
6818 #: build/C/man7/sigevent.7:26
6819 #, no-wrap
6820 msgid "2011-09-09"
6821 msgstr "2011-09-09"
6822
6823 #. type: Plain text
6824 #: build/C/man7/sigevent.7:29
6825 msgid "sigevent - structure for notification from asynchronous routines"
6826 msgstr "sigevent - 非同期ルーチンからの通知用の構造体"
6827
6828 #. type: Plain text
6829 #: build/C/man7/sigevent.7:36
6830 #, no-wrap
6831 msgid ""
6832 "union sigval {          /* Data passed with notification */\n"
6833 "    int     sival_int;         /* Integer value */\n"
6834 "    void   *sival_ptr;         /* Pointer value */\n"
6835 "};\n"
6836 msgstr ""
6837 "union sigval {          /* Data passed with notification */\n"
6838 "    int     sival_int;         /* Integer value */\n"
6839 "    void   *sival_ptr;         /* Pointer value */\n"
6840 "};\n"
6841
6842 #. type: Plain text
6843 #: build/C/man7/sigevent.7:51
6844 #, no-wrap
6845 msgid ""
6846 "struct sigevent {\n"
6847 "    int          sigev_notify; /* Notification method */\n"
6848 "    int          sigev_signo;  /* Notification signal */\n"
6849 "    union sigval sigev_value;  /* Data passed with\n"
6850 "                                  notification */\n"
6851 "    void       (*sigev_notify_function) (union sigval);\n"
6852 "                     /* Function used for thread\n"
6853 "                        notification (SIGEV_THREAD) */\n"
6854 "    void        *sigev_notify_attributes;\n"
6855 "                     /* Attributes for notification thread\n"
6856 "                        (SIGEV_THREAD) */\n"
6857 "    pid_t        sigev_notify_thread_id;\n"
6858 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6859 "};\n"
6860 msgstr ""
6861 "struct sigevent {\n"
6862 "    int          sigev_notify; /* Notification method */\n"
6863 "    int          sigev_signo;  /* Notification signal */\n"
6864 "    union sigval sigev_value;  /* Data passed with\n"
6865 "                                  notification */\n"
6866 "    void       (*sigev_notify_function) (union sigval);\n"
6867 "                     /* Function used for thread\n"
6868 "                        notification (SIGEV_THREAD) */\n"
6869 "    void        *sigev_notify_attributes;\n"
6870 "                     /* Attributes for notification thread\n"
6871 "                        (SIGEV_THREAD) */\n"
6872 "    pid_t        sigev_notify_thread_id;\n"
6873 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6874 "};\n"
6875
6876 #. type: Plain text
6877 #: build/C/man7/sigevent.7:60
6878 msgid ""
6879 "The I<sigevent> structure is used by various APIs to describe the way a "
6880 "process is to be notified about an event (e.g., completion of an "
6881 "asynchronous request, expiration of a timer, or the arrival of a message)."
6882 msgstr ""
6883 "I<sigevent> 構造体は、イベントに関する情報をプロセスに通知するために様々な "
6884 "API で使用される (イベントの例としては、 非同期処理要求の完了、 タイマーの満"
6885 "了、 メッセージの到着など)。"
6886
6887 #. type: Plain text
6888 #: build/C/man7/sigevent.7:68
6889 msgid ""
6890 "The definition shown in the SYNOPSIS is approximate: some of the fields in "
6891 "the I<sigevent> structure may be defined as part of a union.  Programs "
6892 "should employ only those fields relevant to the value specified in "
6893 "I<sigev_notify>."
6894 msgstr ""
6895 "「書式」に記載されている定義はおおよそのものである。 I<sigevent> 構造体のいく"
6896 "つかのフィールドは、 共用体の一部として定義されているものもある。 プログラム"
6897 "は、 I<sigev_notify> で指定された値に応じたフィールドだけを利用すべきである。"
6898
6899 #. type: Plain text
6900 #: build/C/man7/sigevent.7:73
6901 msgid ""
6902 "The I<sigev_notify> field specifies how notification is to be performed.  "
6903 "This field can have one of the following values:"
6904 msgstr ""
6905 "I<sigev_notify> フィールドは、通知をどのように処理すべきかを指定する。 この"
6906 "フィールドは、以下のいずれかの値である。"
6907
6908 #. type: TP
6909 #: build/C/man7/sigevent.7:73 build/C/man2/timer_create.2:109
6910 #, no-wrap
6911 msgid "B<SIGEV_NONE>"
6912 msgstr "B<SIGEV_NONE>"
6913
6914 #. type: Plain text
6915 #: build/C/man7/sigevent.7:76
6916 msgid "A \"null\" notification: don't do anything when the event occurs."
6917 msgstr "「空 (null)」の通知。 イベントが発生時には何もしないこと。"
6918
6919 #. type: TP
6920 #: build/C/man7/sigevent.7:76 build/C/man2/timer_create.2:114
6921 #, no-wrap
6922 msgid "B<SIGEV_SIGNAL>"
6923 msgstr "B<SIGEV_SIGNAL>"
6924
6925 #. type: Plain text
6926 #: build/C/man7/sigevent.7:80
6927 msgid "Notify the process by sending the signal specified in I<sigev_signo>."
6928 msgstr ""
6929 "I<sigev_signo> で指定されたシグナルを送信することで、プロセスへの通知を行う。"
6930
6931 #. type: Plain text
6932 #: build/C/man7/sigevent.7:87
6933 msgid ""
6934 "If the signal is caught with a signal handler that was registered using the "
6935 "B<sigaction>(2)  B<SA_SIGINFO> flag, then the following fields are set in "
6936 "the I<siginfo_t> structure that is passed as the second argument of the "
6937 "handler:"
6938 msgstr ""
6939 "B<sigaction>(2) の B<SA_SIGINFO> フラグを使った登録されたシグナルハンドラーに"
6940 "よりシグナルが捕捉されると、 シグナルハンドラーの 2 番目の引き数として渡され"
6941 "た I<siginfo_t> 構造体の以下のフィールドが設定される。"
6942
6943 #. type: Plain text
6944 #: build/C/man7/sigevent.7:92
6945 msgid ""
6946 "This field is set to a value that depends on the API delivering the "
6947 "notification."
6948 msgstr "このフィールドには通知を配送した API に応じた決まる値が設定される。"
6949
6950 #. type: TP
6951 #: build/C/man7/sigevent.7:92 build/C/man2/wait.2:302
6952 #, no-wrap
6953 msgid "I<si_signo>"
6954 msgstr "I<si_signo>"
6955
6956 #. type: Plain text
6957 #: build/C/man7/sigevent.7:96
6958 msgid ""
6959 "This field is set to the signal number (i.e., the same value as in "
6960 "I<sigev_signo>)."
6961 msgstr ""
6962 "このフィールドにはシグナル番号 (すなわち I<sigev_signo> と同じ値) が設定され"
6963 "る。"
6964
6965 #. type: Plain text
6966 #: build/C/man7/sigevent.7:100
6967 msgid "This field is set to the value specified in I<sigev_value>."
6968 msgstr "このフィールドには I<sigev_value> で指定された値が設定される。"
6969
6970 #. type: Plain text
6971 #: build/C/man7/sigevent.7:105
6972 msgid ""
6973 "Depending on the API, other fields may also be set in the I<siginfo_t> "
6974 "structure."
6975 msgstr ""
6976 "API によっては I<siginfo_t> 構造体の他のフィールドが設定される場合もある。"
6977
6978 #. type: Plain text
6979 #: build/C/man7/sigevent.7:108
6980 msgid ""
6981 "The same information is also available if the signal is accepted using "
6982 "B<sigwaitinfo>(2)."
6983 msgstr ""
6984 "シグナルを受け取ったときには B<sigwaitinfo>(2) でも同じ情報が得られる。"
6985
6986 #. type: TP
6987 #: build/C/man7/sigevent.7:108 build/C/man2/timer_create.2:132
6988 #, no-wrap
6989 msgid "B<SIGEV_THREAD>"
6990 msgstr "B<SIGEV_THREAD>"
6991
6992 #. type: Plain text
6993 #: build/C/man7/sigevent.7:125
6994 msgid ""
6995 "Notify the process by invoking I<sigev_notify_function> \"as if\" it were "
6996 "the start function of a new thread.  (Among the implementation possibilities "
6997 "here are that each timer notification could result in the creation of a new "
6998 "thread, or that a single thread is created to receive all notifications.)  "
6999 "The function is invoked with I<sigev_value> as its sole argument.  If "
7000 "I<sigev_notify_attributes> is not NULL, it should point to a "
7001 "I<pthread_attr_t> structure that defines attributes for the new thread (see "
7002 "B<pthread_attr_init>(3))."
7003 msgstr ""
7004 "「あたかも」新しいスレッドセーフの開始関数であるかのように "
7005 "I<sigev_notify_function> を起動することで、 プロセスへの通知を行う (実装の可"
7006 "能性としては、 タイマー通知の度に新しいスレッドセーフが作成される場合も、 一"
7007 "つのスレッドを作成してすべての通知を受信する場合もある)。 この関数は "
7008 "I<sigev_value> を唯一の引き数として起動される。 I<sigev_notify_attributes> "
7009 "は、 NULL 以外の場合は、 新しいスレッドセーフの属性を定義する "
7010 "I<pthread_attr_t> 構造体を指していなければならない (B<pthread_attr_init>(3) "
7011 "参照)。"
7012
7013 #. type: TP
7014 #: build/C/man7/sigevent.7:125 build/C/man2/timer_create.2:140
7015 #, no-wrap
7016 msgid "B<SIGEV_THREAD_ID> (Linux-specific)"
7017 msgstr "B<SIGEV_THREAD_ID> (Linux 固有)"
7018
7019 #.  | SIGEV_SIGNAL vs not?
7020 #. type: Plain text
7021 #: build/C/man7/sigevent.7:130
7022 msgid "Currently used only by POSIX timers; see B<timer_create>(2)."
7023 msgstr "現在のところ POSIX でのみ使用されている。 B<timer_create>(2) 参照。"
7024
7025 #. type: Plain text
7026 #: build/C/man7/sigevent.7:132 build/C/man2/sigpending.2:66
7027 #: build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:121
7028 #: build/C/man3/sigsetops.3:147 build/C/man2/sigsuspend.2:86
7029 #: build/C/man3/sigwait.3:87 build/C/man2/sigwaitinfo.2:135
7030 #: build/C/man2/timer_create.2:197 build/C/man2/timer_delete.2:69
7031 #: build/C/man2/timer_getoverrun.2:99 build/C/man2/timer_settime.2:209
7032 msgid "POSIX.1-2001."
7033 msgstr "POSIX.1-2001."
7034
7035 #. type: Plain text
7036 #: build/C/man7/sigevent.7:142
7037 msgid ""
7038 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
7039 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
7040 "B<pthreads>(7)"
7041 msgstr ""
7042 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
7043 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
7044 "B<pthreads>(7)"
7045
7046 #. type: TH
7047 #: build/C/man3/siginterrupt.3:31
7048 #, no-wrap
7049 msgid "SIGINTERRUPT"
7050 msgstr "SIGINTERRUPT"
7051
7052 #. type: TH
7053 #: build/C/man3/siginterrupt.3:31
7054 #, no-wrap
7055 msgid "2014-06-13"
7056 msgstr "2014-06-13"
7057
7058 #. type: Plain text
7059 #: build/C/man3/siginterrupt.3:34
7060 msgid "siginterrupt - allow signals to interrupt system calls"
7061 msgstr "siginterrupt - シグナルでシステムコールに割り込むことを許す"
7062
7063 #. type: Plain text
7064 #: build/C/man3/siginterrupt.3:39
7065 #, no-wrap
7066 msgid "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
7067 msgstr "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
7068
7069 #. type: Plain text
7070 #: build/C/man3/siginterrupt.3:47
7071 msgid "B<siginterrupt>():"
7072 msgstr "B<siginterrupt>():"
7073
7074 #. type: Plain text
7075 #: build/C/man3/siginterrupt.3:64
7076 msgid ""
7077 "The B<siginterrupt>()  function changes the restart behavior when a system "
7078 "call is interrupted by the signal I<sig>.  If the I<flag> argument is false "
7079 "(0), then system calls will be restarted if interrupted by the specified "
7080 "signal I<sig>.  This is the default behavior in Linux."
7081 msgstr ""
7082 "B<siginterrupt>()  関数は、システムコールがシグナル I<sig> によって割り込まれ"
7083 "た後、再実行の際の振る舞いを変更する。 I<flag> 引き数が偽 (0) ならば、システ"
7084 "ムコールが指定した シグナル I<sig> によって割り込まれた後に、そのシステムコー"
7085 "ルは 再実行される。これは Linux においてデフォルトの動作である。"
7086
7087 #. type: Plain text
7088 #: build/C/man3/siginterrupt.3:69
7089 msgid ""
7090 "If the I<flag> argument is true (1) and no data has been transferred, then a "
7091 "system call interrupted by the signal I<sig> will return -1 and I<errno> "
7092 "will be set to B<EINTR>."
7093 msgstr ""
7094 "I<flag> 引き数が真 (1) でデータの転送が全く行なわれていないならば、 シグナル "
7095 "I<sig> でシステムコールは中断されて、-1 が返され、 I<errno> に B<EINTR> が設"
7096 "定される。"
7097
7098 #. type: Plain text
7099 #: build/C/man3/siginterrupt.3:73
7100 msgid ""
7101 "If the I<flag> argument is true (1) and data transfer has started, then the "
7102 "system call will be interrupted and will return the actual amount of data "
7103 "transferred."
7104 msgstr ""
7105 "I<flag> 引き数が真 (1) でデータの転送が開始されていれば、 システムコールは中"
7106 "断され、それまでに実際に転送されたデータ の量が返される。"
7107
7108 #. type: Plain text
7109 #: build/C/man3/siginterrupt.3:83
7110 msgid ""
7111 "The B<siginterrupt>()  function returns 0 on success.  It returns -1 if the "
7112 "signal number I<sig> is invalid, with I<errno> set to indicate the cause of "
7113 "the error."
7114 msgstr ""
7115 "B<siginterrupt>()  関数は成功した場合 0 を返す。 シグナル番号 I<sig> が不正な"
7116 "場合、 -1 を返し、 I<errno> にエラーの原因を示す値を設定する。"
7117
7118 #. type: Plain text
7119 #: build/C/man3/siginterrupt.3:87
7120 msgid "The specified signal number is invalid."
7121 msgstr "指定したシグナル番号が不正である。"
7122
7123 #. type: Plain text
7124 #: build/C/man3/siginterrupt.3:93
7125 msgid ""
7126 "The B<siginterrupt>()  function uses a global variable that is not "
7127 "protected, so it is not thread-safe."
7128 msgstr ""
7129 "B<siginterrupt>() 関数は保護されていないグローバル変数を使用しているので、ス"
7130 "レッドセーフではない。"
7131
7132 #. type: Plain text
7133 #: build/C/man3/siginterrupt.3:102
7134 msgid ""
7135 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 marks B<siginterrupt>()  as obsolete, "
7136 "recommending the use of B<sigaction>(2)  with the B<SA_RESTART> flag instead."
7137 msgstr ""
7138 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 は、 B<siginterrupt>()  を廃止予定として"
7139 "いる。 代わりに、 B<sigaction>(2)  に B<SA_RESTART> フラグを指定して使うこと"
7140 "を推奨している。"
7141
7142 #. type: Plain text
7143 #: build/C/man3/siginterrupt.3:104
7144 msgid "B<signal>(2)"
7145 msgstr "B<signal>(2)"
7146
7147 #. type: TH
7148 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
7149 #, no-wrap
7150 msgid "SIGNAL"
7151 msgstr "SIGNAL"
7152
7153 #. type: TH
7154 #: build/C/man2/signal.2:36 build/C/man3/sigpause.3:25
7155 #: build/C/man2/sigwaitinfo.2:25 build/C/man2/timer_create.2:33
7156 #: build/C/man2/wait.2:49
7157 #, no-wrap
7158 msgid "2014-08-19"
7159 msgstr "2014-08-19"
7160
7161 #. type: Plain text
7162 #: build/C/man2/signal.2:39
7163 msgid "signal - ANSI C signal handling"
7164 msgstr "signal - ANSI C シグナル操作"
7165
7166 #. type: Plain text
7167 #: build/C/man2/signal.2:45
7168 msgid "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
7169 msgstr ""
7170 "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<sighandler>B<);>"
7171
7172 #. type: Plain text
7173 #: build/C/man2/signal.2:54
7174 msgid ""
7175 "The behavior of B<signal>()  varies across UNIX versions, and has also "
7176 "varied historically across different versions of Linux.  B<Avoid its use>: "
7177 "use B<sigaction>(2)  instead.  See I<Portability> below."
7178 msgstr ""
7179 "B<signal>()  の動作は UNIX のバージョンにより異なる。 また、歴史的に見て "
7180 "Linux のバージョンによっても異なっている。 B<このシステムコールの使用は避け、"
7181 "> 代わりに B<sigaction>(2)  を使用すること。 下記の「移植性」を参照。"
7182
7183 #. type: Plain text
7184 #: build/C/man2/signal.2:64
7185 msgid ""
7186 "B<signal>()  sets the disposition of the signal I<signum> to I<handler>, "
7187 "which is either B<SIG_IGN>, B<SIG_DFL>, or the address of a programmer-"
7188 "defined function (a \"signal handler\")."
7189 msgstr ""
7190 "B<signal>()  はシグナル I<signum> の処理方法を I<handler> に設定する。 "
7191 "I<handler> には、 B<SIG_IGN>、 B<SIG_DFL>、 プログラマが定義した関数 (「シグ"
7192 "ナルハンドラー」) のアドレスの いずれかを指定する。"
7193
7194 #. type: Plain text
7195 #: build/C/man2/signal.2:68
7196 msgid ""
7197 "If the signal I<signum> is delivered to the process, then one of the "
7198 "following happens:"
7199 msgstr ""
7200 "シグナル I<signum> がプロセスに配送されると、以下のいずれかが発生する。"
7201
7202 #. type: Plain text
7203 #: build/C/man2/signal.2:73
7204 msgid "If the disposition is set to B<SIG_IGN>, then the signal is ignored."
7205 msgstr "処理方法が B<SIG_IGN> に設定されている場合、そのシグナルは無視される。"
7206
7207 #. type: Plain text
7208 #: build/C/man2/signal.2:80
7209 msgid ""
7210 "If the disposition is set to B<SIG_DFL>, then the default action associated "
7211 "with the signal (see B<signal>(7))  occurs."
7212 msgstr ""
7213 "処理方法が B<SIG_DFL> に設定されている場合、シグナルに関連づけられた デフォル"
7214 "トの動作が行われる (B<signal>(7)  参照)。"
7215
7216 #. type: Plain text
7217 #: build/C/man2/signal.2:91
7218 msgid ""
7219 "If the disposition is set to a function, then first either the disposition "
7220 "is reset to B<SIG_DFL>, or the signal is blocked (see I<Portability> below), "
7221 "and then I<handler> is called with argument I<signum>.  If invocation of the "
7222 "handler caused the signal to be blocked, then the signal is unblocked upon "
7223 "return from the handler."
7224 msgstr ""
7225 "処理方法として関数が設定されている場合、 まず最初に処理方法が B<SIG_DFL> にリ"
7226 "セットされるかそのシグナルのブロックが実行された後、 I<signum> を引き数とし"
7227 "て I<handler> が呼び出される。 ハンドラーが起動される際にシグナルがブロックさ"
7228 "れた場合、 ハンドラーが返る際にそのシグナルのブロックが解除される。"
7229
7230 #. type: Plain text
7231 #: build/C/man2/signal.2:97
7232 msgid "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught or ignored."
7233 msgstr ""
7234 "シグナル B<SIGKILL> と B<SIGSTOP> は捕捉できず、無視することもできない。"
7235
7236 #. type: Plain text
7237 #: build/C/man2/signal.2:105
7238 msgid ""
7239 "B<signal>()  returns the previous value of the signal handler, or B<SIG_ERR> "
7240 "on error.  In the event of an error, I<errno> is set to indicate the cause."
7241 msgstr ""
7242 "B<signal>()  は、今までのシグナルハンドラーの値を返す。 エラーの場合は "
7243 "B<SIG_ERR> を返し、 I<errno> にエラーの原因を示す値を設定する。"
7244
7245 #. type: Plain text
7246 #: build/C/man2/signal.2:110
7247 msgid "I<signum> is invalid."
7248 msgstr "I<signum> が不正である。"
7249
7250 #. type: Plain text
7251 #: build/C/man2/signal.2:116
7252 msgid "The effects of B<signal>()  in a multithreaded process are unspecified."
7253 msgstr ""
7254 "マルチスレッドプロセスにおける B<signal>()  の結果は、指定されていない。"
7255
7256 #. type: Plain text
7257 #: build/C/man2/signal.2:141
7258 msgid ""
7259 "See B<sigaction>(2)  for details on what happens when B<SIGCHLD> is set to "
7260 "B<SIG_IGN>."
7261 msgstr ""
7262 "B<SIGCHLD> の動作として B<SIG_IGN> を設定した場合の詳細な動作については、 "
7263 "B<sigaction>(2)  を参照すること。"
7264
7265 #. type: Plain text
7266 #: build/C/man2/signal.2:146
7267 msgid ""
7268 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
7269 "safely called from inside a signal handler."
7270 msgstr ""
7271 "シグナルハンドラー内から安全に呼び出すことができる、 async-signal-safe "
7272 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
7273 "照。"
7274
7275 #.  libc4 and libc5 define
7276 #.  .IR SignalHandler ;
7277 #. type: Plain text
7278 #: build/C/man2/signal.2:162
7279 msgid ""
7280 "The use of I<sighandler_t> is a GNU extension, exposed if B<_GNU_SOURCE> is "
7281 "defined; glibc also defines (the BSD-derived)  I<sig_t> if B<_BSD_SOURCE> is "
7282 "defined.  Without use of such a type, the declaration of B<signal>()  is the "
7283 "somewhat harder to read:"
7284 msgstr ""
7285 "I<sighandler_t> の使用は GNU 拡張であり、 B<_GNU_SOURCE> が定義された場合に公"
7286 "開される。glibc では B<_BSD_SOURCE> が定義された場合には (BSD 由来の) "
7287 "I<sig_t> も定義される。このような型を使用しないと、 B<signal>() の宣言は読み"
7288 "にくいものとなる。"
7289
7290 #. type: Plain text
7291 #: build/C/man2/signal.2:166
7292 #, no-wrap
7293 msgid "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
7294 msgstr "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
7295
7296 #. type: SS
7297 #: build/C/man2/signal.2:168
7298 #, no-wrap
7299 msgid "Portability"
7300 msgstr "移植性"
7301
7302 #. type: Plain text
7303 #: build/C/man2/signal.2:180
7304 msgid ""
7305 "The only portable use of B<signal>()  is to set a signal's disposition to "
7306 "B<SIG_DFL> or B<SIG_IGN>.  The semantics when using B<signal>()  to "
7307 "establish a signal handler vary across systems (and POSIX.1 explicitly "
7308 "permits this variation); B<do not use it for this purpose.>"
7309 msgstr ""
7310 "移植性のある B<signal>()  の使い方は、シグナルの処理方法を B<SIG_DFL> か "
7311 "B<SIG_IGN> に設定する方法だけである。 シグナルハンドラーを設定するのに "
7312 "B<signal>()  を使ったときの動作はシステムにより異なる (POSIX.1 は明示的にこの"
7313 "違いを認めている)。 B<移植性が必要なときはこのシステムコールを使用しないこ"
7314 "と。>"
7315
7316 #. type: Plain text
7317 #: build/C/man2/signal.2:186
7318 msgid ""
7319 "POSIX.1 solved the portability mess by specifying B<sigaction>(2), which "
7320 "provides explicit control of the semantics when a signal handler is invoked; "
7321 "use that interface instead of B<signal>()."
7322 msgstr ""
7323 "POSIX.1 は、 B<sigaction>(2)  を規定することで移植性に関する混乱を解決した。 "
7324 "B<sigaction>(2)  はシグナルハンドラーが起動される際の挙動を明示的に制御でき"
7325 "る。 B<signal>()  の代わりにこのインターフェイスを使うこと。"
7326
7327 #. type: Plain text
7328 #: build/C/man2/signal.2:196
7329 msgid ""
7330 "In the original UNIX systems, when a handler that was established using "
7331 "B<signal>()  was invoked by the delivery of a signal, the disposition of the "
7332 "signal would be reset to B<SIG_DFL>, and the system did not block delivery "
7333 "of further instances of the signal.  This is equivalent to calling "
7334 "B<sigaction>(2)  with the following flags:"
7335 msgstr ""
7336 "オリジナルの UNIX システムでは、 B<signal>()  を使って設定されたハンドラーが"
7337 "シグナルの配送により起動されると、 そのシグナルの処理方法は B<SIG_DFL> にリ"
7338 "セットされ、システムは同じシグナルがさらに生成されても シグナルの配送をブロッ"
7339 "クしなかった。これは、以下のフラグで B<sigaction>(2) を呼び出すのと等価であ"
7340 "る。"
7341
7342 #. type: Plain text
7343 #: build/C/man2/signal.2:198
7344 #, no-wrap
7345 msgid "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
7346 msgstr "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
7347
7348 #. type: Plain text
7349 #: build/C/man2/signal.2:205
7350 msgid ""
7351 "System\\ V also provides these semantics for B<signal>().  This was bad "
7352 "because the signal might be delivered again before the handler had a chance "
7353 "to reestablish itself.  Furthermore, rapid deliveries of the same signal "
7354 "could result in recursive invocations of the handler."
7355 msgstr ""
7356 "System\\ V でも、 B<signal>()  に対してこれらの挙動を規定している。 こうした"
7357 "挙動はまずく、ハンドラーがハンドラー自身を再設定する機会が 来るより前に、同じ"
7358 "シグナルがまた配送される可能性がある。 さらに、同じシグナルが立て続けに配送さ"
7359 "れると、同じシグナルが ハンドラーを繰り返し起動されることになる。"
7360
7361 #. type: Plain text
7362 #: build/C/man2/signal.2:220
7363 msgid ""
7364 "BSD improved on this situation, but unfortunately also changed the semantics "
7365 "of the existing B<signal>()  interface while doing so.  On BSD, when a "
7366 "signal handler is invoked, the signal disposition is not reset, and further "
7367 "instances of the signal are blocked from being delivered while the handler "
7368 "is executing.  Furthermore, certain blocking system calls are automatically "
7369 "restarted if interrupted by a signal handler (see B<signal>(7)).  The BSD "
7370 "semantics are equivalent to calling B<sigaction>(2)  with the following "
7371 "flags:"
7372 msgstr ""
7373 "BSD はこの状況が改善したが、残念なことに、その過程で既存の B<signal>() の挙動"
7374 "も変更された。 BSD では、シグナルハンドラーが起動された際、 シグナルの処理方"
7375 "法はリセットされず、 ハンドラーの実行中は、同じシグナルのさらなる生成は配送が"
7376 "ブロックされる。 また、 シグナルハンドラーが中断された場合、 停止中のシステム"
7377 "コールのいくつかは自動的に再スタートされる。 BSD の挙動は、 以下のフラグを指"
7378 "定した B<sigaction>(2) の呼び出しと等価である。"
7379
7380 #. type: Plain text
7381 #: build/C/man2/signal.2:222
7382 #, no-wrap
7383 msgid "    sa.sa_flags = SA_RESTART;\n"
7384 msgstr "    sa.sa_flags = SA_RESTART;\n"
7385
7386 #. type: Plain text
7387 #: build/C/man2/signal.2:224
7388 msgid "The situation on Linux is as follows:"
7389 msgstr "Linux での状況は以下の通りである。"
7390
7391 #. type: Plain text
7392 #: build/C/man2/signal.2:228
7393 msgid "The kernel's B<signal>()  system call provides System\\ V semantics."
7394 msgstr ""
7395 "カーネルの B<signal>()  システムコールは System\\ V 方式を提供している。"
7396
7397 #. type: Plain text
7398 #: build/C/man2/signal.2:244
7399 msgid ""
7400 "By default, in glibc 2 and later, the B<signal>()  wrapper function does not "
7401 "invoke the kernel system call.  Instead, it calls B<sigaction>(2)  using "
7402 "flags that supply BSD semantics.  This default behavior is provided as long "
7403 "as the B<_BSD_SOURCE> feature test macro is defined.  By default, "
7404 "B<_BSD_SOURCE> is defined; it is also implicitly defined if one defines "
7405 "B<_GNU_SOURCE>, and can of course be explicitly defined."
7406 msgstr ""
7407 "デフォルトでは、glibc 2 以降では、 B<signal>()  ラッパー関数はカーネルのシス"
7408 "テムコールを起動しない。 代わりに、ラッパー関数は BSD 方式を示すフラグを使っ"
7409 "て B<sigaction>(2)  を呼び出す。 機能検査マクロ B<_BSD_SOURCE> を定義していれ"
7410 "ば、このデフォルトの動作となる。 デフォルトでは、 B<_BSD_SOURCE> が定義され"
7411 "る。 B<_BSD_SOURCE> は B<_GNU_SOURCE> が定義された場合には暗黙のうちに定義さ"
7412 "れ、 もちろん明示的に定義することもできる。"
7413
7414 #.  System V semantics are also provided if one uses the separate
7415 #.  .BR sysv_signal (3)
7416 #.  function.
7417 #.  .IP *
7418 #.  The
7419 #.  .BR signal ()
7420 #.  function in Linux libc4 and libc5 provide System\ V semantics.
7421 #.  If one on a libc5 system includes
7422 #.  .I <bsd/signal.h>
7423 #.  instead of
7424 #.  .IR <signal.h> ,
7425 #.  then
7426 #.  .BR signal ()
7427 #.  provides BSD semantics.
7428 #. type: Plain text
7429 #: build/C/man2/signal.2:278
7430 msgid ""
7431 "On glibc 2 and later, if the B<_BSD_SOURCE> feature test macro is not "
7432 "defined, then B<signal>()  provides System\\ V semantics.  (The default "
7433 "implicit definition of B<_BSD_SOURCE> is not provided if one invokes "
7434 "B<gcc>(1)  in one of its standard modes (I<-std=xxx> or I<-ansi>)  or "
7435 "defines various other feature test macros such as B<_POSIX_SOURCE>, "
7436 "B<_XOPEN_SOURCE>, or B<_SVID_SOURCE>; see B<feature_test_macros>(7).)"
7437 msgstr ""
7438 "glibc 2 以降では、機能検査マクロ B<_BSD_SOURCE> が定義されていなければ、 "
7439 "B<signal>()  は System\\ V 方式となる。 (B<gcc>(1)  が標準指定モード (I<-"
7440 "std=xxx> or I<-ansi>)  で起動された場合、もしくは B<_POSIX_SOURCE>, "
7441 "B<_XOPEN_SOURCE>, B<_SVID_SOURCE> といった他の様々な機能検査マクロが定義され"
7442 "た場合、 デフォルトの B<_BSD_SOURCE> の暗黙の定義は行われない。 "
7443 "B<feature_test_macros>(7)  を参照のこと。)"
7444
7445 #. type: Plain text
7446 #: build/C/man2/signal.2:297
7447 msgid ""
7448 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), "
7449 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
7450 "B<sigsuspend>(2), B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), "
7451 "B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), "
7452 "B<signal>(7)"
7453 msgstr ""
7454 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), "
7455 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
7456 "B<sigsuspend>(2), B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), "
7457 "B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), "
7458 "B<signal>(7)"
7459
7460 #. type: Plain text
7461 #: build/C/man7/signal.7:49
7462 msgid "signal - overview of signals"
7463 msgstr "signal - シグナルの概要"
7464
7465 #. type: Plain text
7466 #: build/C/man7/signal.7:52
7467 msgid ""
7468 "Linux supports both POSIX reliable signals (hereinafter \"standard signals"
7469 "\") and POSIX real-time signals."
7470 msgstr ""
7471 "Linux は POSIX 信頼シグナル (reliable signal; 以後 \"標準シグナル\"と表記)  "
7472 "と POSIX リアルタイムシグナルの両方に対応している。"
7473
7474 #. type: SS
7475 #: build/C/man7/signal.7:52
7476 #, no-wrap
7477 msgid "Signal dispositions"
7478 msgstr "シグナル処理方法"
7479
7480 #. type: Plain text
7481 #: build/C/man7/signal.7:57
7482 msgid ""
7483 "Each signal has a current I<disposition>, which determines how the process "
7484 "behaves when it is delivered the signal."
7485 msgstr ""
7486 "シグナルはそれぞれ現在の「処理方法 (disposition)」を保持しており、 この処理方"
7487 "法によりシグナルが配送された際にプロセスが どのような振舞いをするかが決まる。"
7488
7489 #. type: Plain text
7490 #: build/C/man7/signal.7:60
7491 msgid ""
7492 "The entries in the \"Action\" column of the tables below specify the default "
7493 "disposition for each signal, as follows:"
7494 msgstr ""
7495 "後述の表の \"動作\" の欄のエントリーは各シグナルのデフォルトの 処理方法を示し"
7496 "ており、以下のような意味を持つ。"
7497
7498 #. type: IP
7499 #: build/C/man7/signal.7:60
7500 #, no-wrap
7501 msgid "Term"
7502 msgstr "Term"
7503
7504 #. type: Plain text
7505 #: build/C/man7/signal.7:62
7506 msgid "Default action is to terminate the process."
7507 msgstr "デフォルトの動作はプロセス終了。"
7508
7509 #. type: IP
7510 #: build/C/man7/signal.7:62
7511 #, no-wrap
7512 msgid "Ign"
7513 msgstr "Ign"
7514
7515 #. type: Plain text
7516 #: build/C/man7/signal.7:64
7517 msgid "Default action is to ignore the signal."
7518 msgstr "デフォルトの動作はこのシグナルの無視。"
7519
7520 #. type: IP
7521 #: build/C/man7/signal.7:64
7522 #, no-wrap
7523 msgid "Core"
7524 msgstr "Core"
7525
7526 #. type: Plain text
7527 #: build/C/man7/signal.7:67
7528 msgid ""
7529 "Default action is to terminate the process and dump core (see B<core>(5))."
7530 msgstr "デフォルトの動作はプロセス終了とコアダンプ出力 (B<core>(5)  参照)。"
7531
7532 #. type: IP
7533 #: build/C/man7/signal.7:67
7534 #, no-wrap
7535 msgid "Stop"
7536 msgstr "Stop"
7537
7538 #. type: Plain text
7539 #: build/C/man7/signal.7:69
7540 msgid "Default action is to stop the process."
7541 msgstr "デフォルトの動作はプロセスの一時停止。"
7542
7543 #. type: IP
7544 #: build/C/man7/signal.7:69
7545 #, no-wrap
7546 msgid "Cont"
7547 msgstr "Cont"
7548
7549 #. type: Plain text
7550 #: build/C/man7/signal.7:71
7551 msgid "Default action is to continue the process if it is currently stopped."
7552 msgstr "デフォルトの動作は、プロセスが停止中の場合にその実行の再開。"
7553
7554 #. type: Plain text
7555 #: build/C/man7/signal.7:93
7556 msgid ""
7557 "A process can change the disposition of a signal using B<sigaction>(2)  or "
7558 "B<signal>(2).  (The latter is less portable when establishing a signal "
7559 "handler; see B<signal>(2)  for details.)  Using these system calls, a "
7560 "process can elect one of the following behaviors to occur on delivery of the "
7561 "signal: perform the default action; ignore the signal; or catch the signal "
7562 "with a I<signal handler>, a programmer-defined function that is "
7563 "automatically invoked when the signal is delivered.  (By default, the signal "
7564 "handler is invoked on the normal process stack.  It is possible to arrange "
7565 "that the signal handler uses an alternate stack; see B<sigaltstack>(2)  for "
7566 "a discussion of how to do this and when it might be useful.)"
7567 msgstr ""
7568 "プロセスは、 B<sigaction>(2)  や B<signal>(2)  を使って、シグナルの処理方法を"
7569 "変更することができる (B<signal>(2)  の方がシグナルハンドラーを設定する際の移"
7570 "植性が低い; 詳細は B<signal>(2)  を参照)。 シグナルの配送時に起こる動作とし"
7571 "て プロセスが選択できるのは、次のいずれか一つである。 デフォルトの動作を実行"
7572 "する、シグナルを無視する、 I<シグナルハンドラー (signal handler)> でシグナル"
7573 "を捕捉する。シグナルハンドラーとは、シグナル配送時に 自動的に起動されるプログ"
7574 "ラマ定義の関数である。 (デフォルトでは、シグナルハンドラーは通常のプロセスの"
7575 "スタック上で起動される。 シグナルハンドラーが代替スタック (alternate stack) "
7576 "を使用するように設定する こともできる。代替スタックを使用するように設定する方"
7577 "法と、どのような際に 代替スタックが役に立つかについての議論については "
7578 "B<sigaltstack>(2)  を参照のこと。"
7579
7580 #. type: Plain text
7581 #: build/C/man7/signal.7:97
7582 msgid ""
7583 "The signal disposition is a per-process attribute: in a multithreaded "
7584 "application, the disposition of a particular signal is the same for all "
7585 "threads."
7586 msgstr ""
7587 "シグナルの処理方法はプロセス単位の属性である。 マルチスレッドのアプリケーショ"
7588 "ンでは、あるシグナルの処理方法は 全てのスレッドで同じである。"
7589
7590 #. type: SS
7591 #: build/C/man7/signal.7:105
7592 #, no-wrap
7593 msgid "Sending a signal"
7594 msgstr "シグナルの送信"
7595
7596 #. type: Plain text
7597 #: build/C/man7/signal.7:108
7598 msgid ""
7599 "The following system calls and library functions allow the caller to send a "
7600 "signal:"
7601 msgstr ""
7602 "以下のシステムコールとライブラリ関数を使って、 呼び出し者はシグナルを送信する"
7603 "ことができる。"
7604
7605 #. type: TP
7606 #: build/C/man7/signal.7:108
7607 #, no-wrap
7608 msgid "B<raise>(3)"
7609 msgstr "B<raise>(3)"
7610
7611 #. type: Plain text
7612 #: build/C/man7/signal.7:111
7613 msgid "Sends a signal to the calling thread."
7614 msgstr "呼び出したスレッドにシグナルを送る。"
7615
7616 #. type: TP
7617 #: build/C/man7/signal.7:111
7618 #, no-wrap
7619 msgid "B<kill>(2)"
7620 msgstr "B<kill>(2)"
7621
7622 #. type: Plain text
7623 #: build/C/man7/signal.7:116
7624 msgid ""
7625 "Sends a signal to a specified process, to all members of a specified process "
7626 "group, or to all processes on the system."
7627 msgstr ""
7628 "指定されたプロセスや、指定されたプロセスグループの全メンバー、 システムの全プ"
7629 "ロセスにシグナルを送る。"
7630
7631 #. type: TP
7632 #: build/C/man7/signal.7:116
7633 #, no-wrap
7634 msgid "B<killpg>(2)"
7635 msgstr "B<killpg>(2)"
7636
7637 #. type: Plain text
7638 #: build/C/man7/signal.7:119
7639 msgid "Sends a signal to all of the members of a specified process group."
7640 msgstr "指定されたプロセスグループの全メンバーにシグナルを送る。"
7641
7642 #. type: TP
7643 #: build/C/man7/signal.7:119
7644 #, no-wrap
7645 msgid "B<pthread_kill>(3)"
7646 msgstr "B<pthread_kill>(3)"
7647
7648 #. type: Plain text
7649 #: build/C/man7/signal.7:123
7650 msgid ""
7651 "Sends a signal to a specified POSIX thread in the same process as the caller."
7652 msgstr ""
7653 "呼び出し者と同じプロセス内の指定された POSIX スレッドにシグナルを送る。"
7654
7655 #. type: TP
7656 #: build/C/man7/signal.7:123
7657 #, no-wrap
7658 msgid "B<tgkill>(2)"
7659 msgstr "B<tgkill>(2)"
7660
7661 #. type: Plain text
7662 #: build/C/man7/signal.7:128
7663 msgid ""
7664 "Sends a signal to a specified thread within a specific process.  (This is "
7665 "the system call used to implement B<pthread_kill>(3).)"
7666 msgstr ""
7667 "指定されたプロセス内の指定されたスレッドにシグナルを送る (このシステムコール"
7668 "を使って B<pthread_kill>(3)  は実装されている)。"
7669
7670 #. type: TP
7671 #: build/C/man7/signal.7:128
7672 #, no-wrap
7673 msgid "B<sigqueue>(3)"
7674 msgstr "B<sigqueue>(3)"
7675
7676 #. type: Plain text
7677 #: build/C/man7/signal.7:131
7678 msgid "Sends a real-time signal with accompanying data to a specified process."
7679 msgstr "指定されたプロセスに付属データとともにリアルタイムシグナルを送る。"
7680
7681 #. type: SS
7682 #: build/C/man7/signal.7:131
7683 #, no-wrap
7684 msgid "Waiting for a signal to be caught"
7685 msgstr "シグナルが捕捉されるのを待つ"
7686
7687 #. type: Plain text
7688 #: build/C/man7/signal.7:135
7689 msgid ""
7690 "The following system calls suspend execution of the calling process or "
7691 "thread until a signal is caught (or an unhandled signal terminates the "
7692 "process):"
7693 msgstr ""
7694 "以下のシステムコールを使って、シグナルが捕捉されるまで 呼び出したプロセスやス"
7695 "レッドの実行を中断 (suspend) することができる (ハンドラーが設定されていないシ"
7696 "グナルによりそのプロセスが終了した 場合にも実行の停止は終了する)。"
7697
7698 #. type: TP
7699 #: build/C/man7/signal.7:135
7700 #, no-wrap
7701 msgid "B<pause>(2)"
7702 msgstr "B<pause>(2)"
7703
7704 #. type: Plain text
7705 #: build/C/man7/signal.7:138
7706 msgid "Suspends execution until any signal is caught."
7707 msgstr "何かシグナルが捕捉されるまで実行を停止する。"
7708
7709 #. type: TP
7710 #: build/C/man7/signal.7:138
7711 #, no-wrap
7712 msgid "B<sigsuspend>(2)"
7713 msgstr "B<sigsuspend>(2)"
7714
7715 #. type: Plain text
7716 #: build/C/man7/signal.7:142
7717 msgid ""
7718 "Temporarily changes the signal mask (see below) and suspends execution until "
7719 "one of the unmasked signals is caught."
7720 msgstr ""
7721 "一時的にシグナルマスク (下記参照) を変更し、 マスクされていないシグナルのいず"
7722 "れかが捕捉されるまで 実行を中断する。"
7723
7724 #. type: SS
7725 #: build/C/man7/signal.7:142
7726 #, no-wrap
7727 msgid "Synchronously accepting a signal"
7728 msgstr "シグナルの同期受信"
7729
7730 #. type: Plain text
7731 #: build/C/man7/signal.7:149
7732 msgid ""
7733 "Rather than asynchronously catching a signal via a signal handler, it is "
7734 "possible to synchronously accept the signal, that is, to block execution "
7735 "until the signal is delivered, at which point the kernel returns information "
7736 "about the signal to the caller.  There are two general ways to do this:"
7737 msgstr ""
7738 "シグナルハンドラー経由でシグナルを非同期 (asynchronously) で捕捉する以外に"
7739 "も、 シグナルを同期 (synchronously) して受け付けることもできる。 同期して受け"
7740 "付けるとは、シグナルが配送されるまで実行を停止 (block)  するということであ"
7741 "る。シグナルを受け付けた際に、カーネルは そのシグナルに関する情報を呼び出し者"
7742 "に返す。 これを行う一般的な方法が二つある。"
7743
7744 #. type: Plain text
7745 #: build/C/man7/signal.7:157
7746 msgid ""
7747 "B<sigwaitinfo>(2), B<sigtimedwait>(2), and B<sigwait>(3)  suspend execution "
7748 "until one of the signals in a specified set is delivered.  Each of these "
7749 "calls returns information about the delivered signal."
7750 msgstr ""
7751 "B<sigwaitinfo>(2), B<sigtimedwait>(2), B<sigwait>(3)  は、指定されたシグナル"
7752 "集合のシグナルの一つが配送されるまで実行を中断する。 どのシステムコールや関数"
7753 "でも、配送されたシグナルに関する情報が返される。"
7754
7755 #. type: Plain text
7756 #: build/C/man7/signal.7:170
7757 msgid ""
7758 "B<signalfd>(2)  returns a file descriptor that can be used to read "
7759 "information about signals that are delivered to the caller.  Each "
7760 "B<read>(2)  from this file descriptor blocks until one of the signals in the "
7761 "set specified in the B<signalfd>(2)  call is delivered to the caller.  The "
7762 "buffer returned by B<read>(2)  contains a structure describing the signal."
7763 msgstr ""
7764 "B<signalfd>(2)  が返すファイルディスクリプターを使うと、呼び出し元に配送され"
7765 "た シグナルに関する情報を読み出すことができる。 このファイルディスクリプター"
7766 "からの B<read>(2)  は、 B<signalfd>(2)  の呼び出し時に指定されたシグナル集合"
7767 "のシグナルの一つが呼び出し元に 配送されるまで停止 (block) する。 B<read>(2)  "
7768 "が返すバッファーにはシグナルに関する情報を格納した構造体が入っている。"
7769
7770 #. type: SS
7771 #: build/C/man7/signal.7:170
7772 #, no-wrap
7773 msgid "Signal mask and pending signals"
7774 msgstr "シグナルマスクと処理待ちシグナル"
7775
7776 #. type: Plain text
7777 #: build/C/man7/signal.7:177
7778 msgid ""
7779 "A signal may be I<blocked>, which means that it will not be delivered until "
7780 "it is later unblocked.  Between the time when it is generated and when it is "
7781 "delivered a signal is said to be I<pending>."
7782 msgstr ""
7783 "シグナルは I<ブロック (block)> されることがある。ブロックされると、そのシグナ"
7784 "ルは その後ブロックを解除されるまで配送されなくなる。 シグナルが生成されてか"
7785 "ら配送されるまでの間、そのシグナルは I<処理待ち (pending)> であると呼ばれる。"
7786
7787 #. type: Plain text
7788 #: build/C/man7/signal.7:186
7789 msgid ""
7790 "Each thread in a process has an independent I<signal mask>, which indicates "
7791 "the set of signals that the thread is currently blocking.  A thread can "
7792 "manipulate its signal mask using B<pthread_sigmask>(3).  In a traditional "
7793 "single-threaded application, B<sigprocmask>(2)  can be used to manipulate "
7794 "the signal mask."
7795 msgstr ""
7796 "プロセス内の各スレッドは、それぞれ独立な I<シグナルマスク (signal mask)> を持"
7797 "つ。シグナルマスクはそのスレッドが現在ブロックしている シグナル集合を示すもの"
7798 "である。 スレッドは、 B<pthread_sigmask>(3)  を使って自分のシグナルマスクを操"
7799 "作できる。 伝統的なシングルスレッドのアプリケーションでは、 "
7800 "B<sigprocmask>(2)  を使って、シグナルマスクを操作できる。"
7801
7802 #. type: Plain text
7803 #: build/C/man7/signal.7:192 build/C/man2/sigprocmask.2:126
7804 msgid ""
7805 "A child created via B<fork>(2)  inherits a copy of its parent's signal mask; "
7806 "the signal mask is preserved across B<execve>(2)."
7807 msgstr ""
7808 "B<fork>(2)  経由で作成された子プロセスは親プロセスのシグナルマスクのコピーを"
7809 "継承する。 B<execve>(2)  の前後でシグナルマスクは保持される。"
7810
7811 #. type: Plain text
7812 #: build/C/man7/signal.7:209
7813 msgid ""
7814 "A signal may be generated (and thus pending)  for a process as a whole (e."
7815 "g., when sent using B<kill>(2))  or for a specific thread (e.g., certain "
7816 "signals, such as B<SIGSEGV> and B<SIGFPE>, generated as a consequence of "
7817 "executing a specific machine-language instruction are thread directed, as "
7818 "are signals targeted at a specific thread using B<pthread_kill>(3)).  A "
7819 "process-directed signal may be delivered to any one of the threads that does "
7820 "not currently have the signal blocked.  If more than one of the threads has "
7821 "the signal unblocked, then the kernel chooses an arbitrary thread to which "
7822 "to deliver the signal."
7823 msgstr ""
7824 "生成されるシグナル (したがって処理待ちとなるシグナル) には、 プロセス全体宛て"
7825 "と特定のスレッド宛てがある。 例えば、プロセス全体宛てのシグナルは "
7826 "B<kill>(2)  を使って送信される。 特定のマシン語の命令の実行の結果として生成さ"
7827 "れる、 B<SIGSEGV> や B<SIGFPE> などのシグナルは、スレッド宛てとなる。 また、 "
7828 "B<pthread_kill>(3)  を使って特定のスレッド宛てに生成されたシグナルも スレッド"
7829 "宛てとなる。 プロセス宛てのシグナルは、そのシグナルをブロックしていないスレッ"
7830 "ドのうち いずれかの一つに配送することができる。そのシグナルをブロックしていな"
7831 "い スレッドが複数ある場合、シグナルを配送するスレッドはカーネルが 無作為に選"
7832 "択する。"
7833
7834 #. type: Plain text
7835 #: build/C/man7/signal.7:216
7836 msgid ""
7837 "A thread can obtain the set of signals that it currently has pending using "
7838 "B<sigpending>(2).  This set will consist of the union of the set of pending "
7839 "process-directed signals and the set of signals pending for the calling "
7840 "thread."
7841 msgstr ""
7842 "スレッドは、 B<sigpending>(2)  を使って、現在処理待ちのシグナル集合を取得する"
7843 "ことができる。 この集合は、プロセス宛ての処理待ちシグナルと 呼び出したスレッ"
7844 "ド宛てのシグナルの両方から構成される。"
7845
7846 #. type: Plain text
7847 #: build/C/man7/signal.7:222 build/C/man2/sigpending.2:85
7848 msgid ""
7849 "A child created via B<fork>(2)  initially has an empty pending signal set; "
7850 "the pending signal set is preserved across an B<execve>(2)."
7851 msgstr ""
7852 "B<fork>(2)  経由で作成された子プロセスでは、処理待ちのシグナル集合は空の集合"
7853 "で初期化される。 B<execve>(2)  の前後で、処理待ちのシグナル集合は保持される。"
7854
7855 #. type: SS
7856 #: build/C/man7/signal.7:222
7857 #, no-wrap
7858 msgid "Standard signals"
7859 msgstr "標準シグナル"
7860
7861 #. type: Plain text
7862 #: build/C/man7/signal.7:234
7863 msgid ""
7864 "Linux supports the standard signals listed below.  Several signal numbers "
7865 "are architecture-dependent, as indicated in the \"Value\" column.  (Where "
7866 "three values are given, the first one is usually valid for alpha and sparc, "
7867 "the middle one for x86, arm, and most other architectures, and the last one "
7868 "for mips.  (Values for parisc are I<not> shown; see the Linux kernel source "
7869 "for signal numbering on that architecture.)  A - denotes that a signal is "
7870 "absent on the corresponding architecture.)"
7871 msgstr ""
7872 "Linux は以下に示す標準シグナルに対応している。シグナル番号の一部はアーキテク"
7873 "チャー依存であり、\"値\" 欄に示す通りである。 (3つの値が書かれているものは、 "
7874 "1つ目が alpha と sparc で通常有効な値、 真ん中が x86, arm や他のほとんどの"
7875 "アーキテクチャーでの有効な値、最後が mips での値である。 (parisc での値は記載"
7876 "されてI<いない>。 parisc でのシグナル番号は Linux カーネルソースを参照してほ"
7877 "しい)。 - はそのアーキテクチャーにおいて対応するシグナルがないことを示す。)"
7878
7879 #. type: Plain text
7880 #: build/C/man7/signal.7:236
7881 msgid "First the signals described in the original POSIX.1-1990 standard."
7882 msgstr "最初に、POSIX.1-1990 に定義されているシグナルを示す。"
7883
7884 #. type: tbl table
7885 #: build/C/man7/signal.7:240 build/C/man7/signal.7:276
7886 #: build/C/man7/signal.7:305
7887 #, no-wrap
7888 msgid "Signal\tValue\tAction\tComment\n"
7889 msgstr "シグナル\t値\t動作\tコメント\n"
7890
7891 #. type: tbl table
7892 #: build/C/man7/signal.7:241
7893 #, no-wrap
7894 msgid "SIGHUP\t\\01\tTerm\tHangup detected on controlling terminal\n"
7895 msgstr "SIGHUP\t\\01\tTerm\t制御端末(controlling terminal)のハングアップ検出、\n"
7896
7897 #. type: tbl table
7898 #: build/C/man7/signal.7:242
7899 #, no-wrap
7900 msgid "\t\t\tor death of controlling process\n"
7901 msgstr "\t\t\tまたは制御しているプロセスの死\n"
7902
7903 #. type: tbl table
7904 #: build/C/man7/signal.7:243
7905 #, no-wrap
7906 msgid "SIGINT\t\\02\tTerm\tInterrupt from keyboard\n"
7907 msgstr "SIGINT\t\\02\tTerm\tキーボードからの割り込み (Interrupt)\n"
7908
7909 #. type: tbl table
7910 #: build/C/man7/signal.7:244
7911 #, no-wrap
7912 msgid "SIGQUIT\t\\03\tCore\tQuit from keyboard\n"
7913 msgstr "SIGQUIT\t\\03\tCore\tキーボードによる中止 (Quit)\n"
7914
7915 #. type: tbl table
7916 #: build/C/man7/signal.7:245
7917 #, no-wrap
7918 msgid "SIGILL\t\\04\tCore\tIllegal Instruction\n"
7919 msgstr "SIGILL\t\\04\tCore\t不正な命令\n"
7920
7921 #. type: tbl table
7922 #: build/C/man7/signal.7:246
7923 #, no-wrap
7924 msgid "SIGABRT\t\\06\tCore\tAbort signal from B<abort>(3)\n"
7925 msgstr "SIGABRT\t\\06\tCore\tB<abort>(3) からの中断 (Abort) シグナル\n"
7926
7927 #. type: tbl table
7928 #: build/C/man7/signal.7:247
7929 #, no-wrap
7930 msgid "SIGFPE\t\\08\tCore\tFloating point exception\n"
7931 msgstr "SIGFPE\t\\08\tCore\t浮動小数点例外\n"
7932
7933 #. type: tbl table
7934 #: build/C/man7/signal.7:248
7935 #, no-wrap
7936 msgid "SIGKILL\t\\09\tTerm\tKill signal\n"
7937 msgstr "SIGKILL\t\\09\tTerm\tKill シグナル\n"
7938
7939 #. type: tbl table
7940 #: build/C/man7/signal.7:249
7941 #, no-wrap
7942 msgid "SIGSEGV\t11\tCore\tInvalid memory reference\n"
7943 msgstr "SIGSEGV\t11\tCore\t不正なメモリー参照\n"
7944
7945 #. type: tbl table
7946 #: build/C/man7/signal.7:250
7947 #, no-wrap
7948 msgid "SIGPIPE\t13\tTerm\tBroken pipe: write to pipe with no\n"
7949 msgstr "SIGPIPE\t13\tTerm\tパイプ破壊:\n"
7950
7951 #. type: tbl table
7952 #: build/C/man7/signal.7:251
7953 #, no-wrap
7954 msgid "\t\t\treaders\n"
7955 msgstr "\t\t\t読み手の無いパイプへの書き出し\n"
7956
7957 #. type: tbl table
7958 #: build/C/man7/signal.7:252
7959 #, no-wrap
7960 msgid "SIGALRM\t14\tTerm\tTimer signal from B<alarm>(2)\n"
7961 msgstr "SIGALRM\t14\tTerm\tB<alarm>(2) からのタイマーシグナル\n"
7962
7963 #. type: tbl table
7964 #: build/C/man7/signal.7:253
7965 #, no-wrap
7966 msgid "SIGTERM\t15\tTerm\tTermination signal\n"
7967 msgstr "SIGTERM\t15\tTerm\t終了 (termination) シグナル\n"
7968
7969 #. type: tbl table
7970 #: build/C/man7/signal.7:254
7971 #, no-wrap
7972 msgid "SIGUSR1\t30,10,16\tTerm\tUser-defined signal 1\n"
7973 msgstr "SIGUSR1\t30,10,16\tTerm\tユーザー定義シグナル 1\n"
7974
7975 #. type: tbl table
7976 #: build/C/man7/signal.7:255
7977 #, no-wrap
7978 msgid "SIGUSR2\t31,12,17\tTerm\tUser-defined signal 2\n"
7979 msgstr "SIGUSR2\t31,12,17\tTerm\tユーザー定義シグナル 2\n"
7980
7981 #. type: tbl table
7982 #: build/C/man7/signal.7:256
7983 #, no-wrap
7984 msgid "SIGCHLD\t20,17,18\tIgn\tChild stopped or terminated\n"
7985 msgstr "SIGCHLD\t20,17,18\tIgn\t子プロセスの一時停止 (stop) または終了\n"
7986
7987 #. type: tbl table
7988 #: build/C/man7/signal.7:257
7989 #, no-wrap
7990 msgid "SIGCONT\t19,18,25\tCont\tContinue if stopped\n"
7991 msgstr "SIGCONT\t19,18,25\tCont\t一時停止 (stop) からの再開\n"
7992
7993 #. type: tbl table
7994 #: build/C/man7/signal.7:258
7995 #, no-wrap
7996 msgid "SIGSTOP\t17,19,23\tStop\tStop process\n"
7997 msgstr "SIGSTOP\t17,19,23\tStop\tプロセスの一時停止 (stop)\n"
7998
7999 #. type: tbl table
8000 #: build/C/man7/signal.7:259
8001 #, no-wrap
8002 msgid "SIGTSTP\t18,20,24\tStop\tStop typed at terminal\n"
8003 msgstr "SIGTSTP\t18,20,24\tStop\t端末より入力された一時停止 (stop)\n"
8004
8005 #. type: tbl table
8006 #: build/C/man7/signal.7:260
8007 #, no-wrap
8008 msgid "SIGTTIN\t21,21,26\tStop\tTerminal input for background process\n"
8009 msgstr "SIGTTIN\t21,21,26\tStop\tバックグランドプロセスの端末入力\n"
8010
8011 #. type: tbl table
8012 #: build/C/man7/signal.7:261
8013 #, no-wrap
8014 msgid "SIGTTOU\t22,22,27\tStop\tTerminal output for background process\n"
8015 msgstr "SIGTTOU\t22,22,27\tStop\tバックグランドプロセスの端末出力\n"
8016
8017 #. type: Plain text
8018 #: build/C/man7/signal.7:269
8019 msgid ""
8020 "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught, blocked, or ignored."
8021 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> はキャッチ、ブロック、無視できない。"
8022
8023 #. type: Plain text
8024 #: build/C/man7/signal.7:272
8025 msgid ""
8026 "Next the signals not in the POSIX.1-1990 standard but described in SUSv2 and "
8027 "POSIX.1-2001."
8028 msgstr ""
8029 "次に、 POSIX.1-1990 標準にはないが、 SUSv2 と POSIX.1-2001 に記述されているシ"
8030 "グナルを示す。"
8031
8032 #. type: tbl table
8033 #: build/C/man7/signal.7:277
8034 #, no-wrap
8035 msgid "SIGBUS\t10,7,10\tCore\tBus error (bad memory access)\n"
8036 msgstr "SIGBUS\t10,7,10\tCore\tバスエラー (不正なメモリーアクセス)\n"
8037
8038 #. type: tbl table
8039 #: build/C/man7/signal.7:278
8040 #, no-wrap
8041 msgid "SIGPOLL\t\tTerm\tPollable event (Sys V).\n"
8042 msgstr "SIGPOLL\t\tTerm\tポーリング可能なイベント (Sys V)。\n"
8043
8044 #. type: tbl table
8045 #: build/C/man7/signal.7:279
8046 #, no-wrap
8047 msgid "\t\t\tSynonym for B<SIGIO>\n"
8048 msgstr "\t\t\tB<SIGIO> と同義\n"
8049
8050 #. type: tbl table
8051 #: build/C/man7/signal.7:280
8052 #, no-wrap
8053 msgid "SIGPROF\t27,27,29\tTerm\tProfiling timer expired\n"
8054 msgstr "SIGPROF\t27,27,29\tTerm\tprofiling タイマーの時間切れ\n"
8055
8056 #. type: tbl table
8057 #: build/C/man7/signal.7:281
8058 #, no-wrap
8059 msgid "SIGSYS\t12,31,12\tCore\tBad argument to routine (SVr4)\n"
8060 msgstr "SIGSYS\t12,31,12\tCore\tルーチンへの引き数が不正 (SVr4)\n"
8061
8062 #. type: tbl table
8063 #: build/C/man7/signal.7:282
8064 #, no-wrap
8065 msgid "SIGTRAP\t5\tCore\tTrace/breakpoint trap\n"
8066 msgstr "SIGTRAP\t5\tCore\tトレース/ブレークポイント トラップ\n"
8067
8068 #. type: tbl table
8069 #: build/C/man7/signal.7:283
8070 #, no-wrap
8071 msgid "SIGURG\t16,23,21\tIgn\tUrgent condition on socket (4.2BSD)\n"
8072 msgstr "SIGURG\t16,23,21\tIgn\tソケットの緊急事態 (urgent condition) (4.2BSD)\n"
8073
8074 #. type: tbl table
8075 #: build/C/man7/signal.7:284
8076 #, no-wrap
8077 msgid "SIGVTALRM\t26,26,28\tTerm\tVirtual alarm clock (4.2BSD)\n"
8078 msgstr "SIGVTALRM\t26,26,28\tTerm\t仮想アラームクロック (4.2BSD)\n"
8079
8080 #. type: tbl table
8081 #: build/C/man7/signal.7:285
8082 #, no-wrap
8083 msgid "SIGXCPU\t24,24,30\tCore\tCPU time limit exceeded (4.2BSD)\n"
8084 msgstr "SIGXCPU\t24,24,30\tCore\tCPU時間制限超過 (4.2BSD)\n"
8085
8086 #. type: tbl table
8087 #: build/C/man7/signal.7:286
8088 #, no-wrap
8089 msgid "SIGXFSZ\t25,25,31\tCore\tFile size limit exceeded (4.2BSD)\n"
8090 msgstr "SIGXFSZ\t25,25,31\tCore\tファイルサイズ制限の超過 (4.2BSD)\n"
8091
8092 #. type: Plain text
8093 #: build/C/man7/signal.7:299
8094 msgid ""
8095 "Up to and including Linux 2.2, the default behavior for B<SIGSYS>, "
8096 "B<SIGXCPU>, B<SIGXFSZ>, and (on architectures other than SPARC and MIPS)  "
8097 "B<SIGBUS> was to terminate the process (without a core dump).  (On some "
8098 "other UNIX systems the default action for B<SIGXCPU> and B<SIGXFSZ> is to "
8099 "terminate the process without a core dump.)  Linux 2.4 conforms to the "
8100 "POSIX.1-2001 requirements for these signals, terminating the process with a "
8101 "core dump."
8102 msgstr ""
8103 "Linux 2.2 以前では、 B<SIGSYS>, B<SIGXCPU>, B<SIGXFSZ> および SPARC と MIPS "
8104 "以外のアーキテクチャーでの B<SIGBUS> のデフォルトの振る舞いは (コアダンプ出力"
8105 "なしの) プロセス終了であった。 (他の UNIX システムにも B<SIGXCPU> と "
8106 "B<SIGXFSZ> のデフォルトの動作がコアダンプなしのプロセス終了のものがある。)  "
8107 "Linux 2.4 では、POSIX.1-2001 での要求仕様に準拠して、 これらのシグナルで、プ"
8108 "ロセスを終了させ、コアダンプを出力する ようになっている。"
8109
8110 #. type: Plain text
8111 #: build/C/man7/signal.7:301
8112 msgid "Next various other signals."
8113 msgstr "次にその他の各種シグナルを示す。"
8114
8115 #. type: tbl table
8116 #: build/C/man7/signal.7:306
8117 #, no-wrap
8118 msgid "SIGIOT\t6\tCore\tIOT trap. A synonym for B<SIGABRT>\n"
8119 msgstr "SIGIOT\t6\tCore\tIOT トラップ。B<SIGABRT> と同義\n"
8120
8121 #. type: tbl table
8122 #: build/C/man7/signal.7:307
8123 #, no-wrap
8124 msgid "SIGEMT\t7,-,7\tTerm\n"
8125 msgstr "SIGEMT\t7,-,7\tTerm\n"
8126
8127 #. type: tbl table
8128 #: build/C/man7/signal.7:308
8129 #, no-wrap
8130 msgid "SIGSTKFLT\t-,16,-\tTerm\tStack fault on coprocessor (unused)\n"
8131 msgstr "SIGSTKFLT\t-,16,-\tA\t数値演算プロセッサにおけるスタックフォルト (未使用)\n"
8132
8133 #. type: tbl table
8134 #: build/C/man7/signal.7:309
8135 #, no-wrap
8136 msgid "SIGIO\t23,29,22\tTerm\tI/O now possible (4.2BSD)\n"
8137 msgstr "SIGIO\t23,29,22\tTerm\t入出力が可能になった (4.2BSD)\n"
8138
8139 #. type: tbl table
8140 #: build/C/man7/signal.7:310
8141 #, no-wrap
8142 msgid "SIGCLD\t-,-,18\tIgn\tA synonym for B<SIGCHLD>\n"
8143 msgstr "SIGCLD\t-,-,18\tIgn\tB<SIGCHLD> と同義\n"
8144
8145 #. type: tbl table
8146 #: build/C/man7/signal.7:311
8147 #, no-wrap
8148 msgid "SIGPWR\t29,30,19\tTerm\tPower failure (System V)\n"
8149 msgstr "SIGPWR\t29,30,19\tTerm\t電源喪失 (Power failure) (System V)\n"
8150
8151 #. type: tbl table
8152 #: build/C/man7/signal.7:312
8153 #, no-wrap
8154 msgid "SIGINFO\t29,-,-\t\tA synonym for B<SIGPWR>\n"
8155 msgstr "SIGINFO\t29,-,-\t \tB<SIGPWR> と同義\n"
8156
8157 #. type: tbl table
8158 #: build/C/man7/signal.7:313
8159 #, no-wrap
8160 msgid "SIGLOST\t-,-,-\tTerm\tFile lock lost (unused)\n"
8161 msgstr "SIGLOST\t-,-,-\tTerm\tファイルロックが失われた (未使用)\n"
8162
8163 #. type: tbl table
8164 #: build/C/man7/signal.7:314
8165 #, no-wrap
8166 msgid "SIGWINCH\t28,28,20\tIgn\tWindow resize signal (4.3BSD, Sun)\n"
8167 msgstr "SIGWINCH\t28,28,20\tIgn\tウィンドウ リサイズ シグナル (4.3BSD, Sun)\n"
8168
8169 #. type: tbl table
8170 #: build/C/man7/signal.7:315
8171 #, no-wrap
8172 msgid "SIGUNUSED\t-,31,-\tCore\tSynonymous with B<SIGSYS>\n"
8173 msgstr "SIGUNUSED\t-,31,-\tCore\tB<SIGSYS> と同義\n"
8174
8175 #. type: Plain text
8176 #: build/C/man7/signal.7:325
8177 msgid ""
8178 "(Signal 29 is B<SIGINFO> / B<SIGPWR> on an alpha but B<SIGLOST> on a sparc.)"
8179 msgstr ""
8180 "(シグナル 29 は alpha では B<SIGINFO> / B<SIGPWR> だが、sparc では "
8181 "B<SIGLOST> である。)"
8182
8183 #. type: Plain text
8184 #: build/C/man7/signal.7:331
8185 msgid ""
8186 "B<SIGEMT> is not specified in POSIX.1-2001, but nevertheless appears on most "
8187 "other UNIX systems, where its default action is typically to terminate the "
8188 "process with a core dump."
8189 msgstr ""
8190 "B<SIGEMT> は POSIX.1-2001 に規定されていないが、 その他の多くの UNIX システム"
8191 "に存在する。 デフォルトの動作は多くの場合、コアダンプ出力を伴うプロセスの終了"
8192 "である。"
8193
8194 #. type: Plain text
8195 #: build/C/man7/signal.7:335
8196 msgid ""
8197 "B<SIGPWR> (which is not specified in POSIX.1-2001) is typically ignored by "
8198 "default on those other UNIX systems where it appears."
8199 msgstr ""
8200 "B<SIGPWR> は (POSIX.1-2001 に規定されていないが) このシグナルが存在する 他の "
8201 "UNIX システムでは多くの場合、デフォルト動作は無視である。"
8202
8203 #. type: Plain text
8204 #: build/C/man7/signal.7:339
8205 msgid ""
8206 "B<SIGIO> (which is not specified in POSIX.1-2001) is ignored by default on "
8207 "several other UNIX systems."
8208 msgstr ""
8209 "B<SIGIO> は (POSIX.1-2001 に規定されていないが) いくつかの他の UNIX システム"
8210 "では デフォルト動作は無視である。"
8211
8212 #.  parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31
8213 #. type: Plain text
8214 #: build/C/man7/signal.7:346
8215 msgid ""
8216 "Where defined, B<SIGUNUSED> is synonymous with B<SIGSYS> on most "
8217 "architectures."
8218 msgstr ""
8219 "B<SIGUNUSED> が定義されている場合には、ほとんどのアーキテクチャーで "
8220 "B<SIGSYS> の同義語となっている。"
8221
8222 #. type: SS
8223 #: build/C/man7/signal.7:346
8224 #, no-wrap
8225 msgid "Real-time signals"
8226 msgstr "リアルタイムシグナル"
8227
8228 #. type: Plain text
8229 #: build/C/man7/signal.7:356
8230 msgid ""
8231 "Linux supports real-time signals as originally defined in the POSIX.1b real-"
8232 "time extensions (and now included in POSIX.1-2001).  The range of supported "
8233 "real-time signals is defined by the macros B<SIGRTMIN> and B<SIGRTMAX>.  "
8234 "POSIX.1-2001 requires that an implementation support at least "
8235 "B<_POSIX_RTSIG_MAX> (8) real-time signals."
8236 msgstr ""
8237 "Linux はリアルタイムシグナルをサポートしている。 リアルタイムシグナルは元々 "
8238 "POSIX.1b のリアルタイム拡張で定義されて いるものであり、現在では "
8239 "POSIX.1-2001 に含まれている。 対応しているリアルタイムシグナルの範囲は、マク"
8240 "ロ B<SIGRTMIN> と B<SIGRTMAX> で定義される。 POSIX.1-2001 では、少なくとも "
8241 "B<_POSIX_RTSIG_MAX> (8) 個のリアルタイムシグナルに対応した実装が要求されてい"
8242 "る。"
8243
8244 #. type: Plain text
8245 #: build/C/man7/signal.7:378
8246 msgid ""
8247 "The Linux kernel supports a range of 32 different real-time signals, "
8248 "numbered 33 to 64.  However, the glibc POSIX threads implementation "
8249 "internally uses two (for NPTL) or three (for LinuxThreads) real-time signals "
8250 "(see B<pthreads>(7)), and adjusts the value of B<SIGRTMIN> suitably (to 34 "
8251 "or 35).  Because the range of available real-time signals varies according "
8252 "to the glibc threading implementation (and this variation can occur at run "
8253 "time according to the available kernel and glibc), and indeed the range of "
8254 "real-time signals varies across UNIX systems, programs should I<never refer "
8255 "to real-time signals using hard-coded numbers>, but instead should always "
8256 "refer to real-time signals using the notation B<SIGRTMIN>+n, and include "
8257 "suitable (run-time) checks that B<SIGRTMIN>+n does not exceed B<SIGRTMAX>."
8258 msgstr ""
8259 "Linux は、32 個の異なるリアルタイムシグナルに対応しており、 その番号は 33 か"
8260 "ら 64 である。 しかしながら、glibc の POSIX スレッド実装は、 内部で 2個 "
8261 "(NPTL の場合) か 3個 (LinuxThreads の場合) の リアルタイムシグナルを使用して"
8262 "おり (B<pthreads>(7)  参照)、 B<SIGRTMIN> の値を適切に (34 か 35 に) 調整す"
8263 "る。 利用可能なリアルタイムシグナルの範囲は glibc のスレッド実装により 異なる"
8264 "し (使用するカーネルと glibc により実行時にも変化する)、 UNIX システムの種類"
8265 "によっても異なる。したがって、 プログラムでは「ハードコーディングした数字を"
8266 "使ってのリアルタイムシグナルの 参照は決してすべきではなく」、代わりに "
8267 "B<SIGRTMIN>+n の形で参照すべきである。また、 B<SIGRTMIN>+n が B<SIGRTMAX> を"
8268 "超えていないかのチェックを (実行時に) 適切に行うべきである。"
8269
8270 #. type: Plain text
8271 #: build/C/man7/signal.7:382
8272 msgid ""
8273 "Unlike standard signals, real-time signals have no predefined meanings: the "
8274 "entire set of real-time signals can be used for application-defined purposes."
8275 msgstr ""
8276 "標準シグナルと異なり、リアルタイムシグナルには 事前に定義された意味はない。 "
8277 "リアルタイムシグナルの全部をアプリケーションで定義した用途に使える。"
8278
8279 #. type: Plain text
8280 #: build/C/man7/signal.7:385
8281 msgid ""
8282 "The default action for an unhandled real-time signal is to terminate the "
8283 "receiving process."
8284 msgstr ""
8285 "ハンドリングしないリアルタイムシグナルのデフォルトの動作は 受信したプロセスの"
8286 "終了である。"
8287
8288 #. type: Plain text
8289 #: build/C/man7/signal.7:387
8290 msgid "Real-time signals are distinguished by the following:"
8291 msgstr "リアルタイムシグナルは以下の特徴がある:"
8292
8293 #. type: Plain text
8294 #: build/C/man7/signal.7:391
8295 msgid ""
8296 "Multiple instances of real-time signals can be queued.  By contrast, if "
8297 "multiple instances of a standard signal are delivered while that signal is "
8298 "currently blocked, then only one instance is queued."
8299 msgstr ""
8300 "リアルタイムシグナルは複数の実体をキューに入れることができる。 一方、標準シグ"
8301 "ナルの場合、そのシグナルがブロックされている間に 同じシグナルの複数のインスタ"
8302 "ンスが配送されても、 1 つだけがキューに入れられる。"
8303
8304 #. type: Plain text
8305 #: build/C/man7/signal.7:411
8306 msgid ""
8307 "If the signal is sent using B<sigqueue>(3), an accompanying value (either an "
8308 "integer or a pointer) can be sent with the signal.  If the receiving process "
8309 "establishes a handler for this signal using the B<SA_SIGINFO> flag to "
8310 "B<sigaction>(2), then it can obtain this data via the I<si_value> field of "
8311 "the I<siginfo_t> structure passed as the second argument to the handler.  "
8312 "Furthermore, the I<si_pid> and I<si_uid> fields of this structure can be "
8313 "used to obtain the PID and real user ID of the process sending the signal."
8314 msgstr ""
8315 "シグナルが B<sigqueue>(3)  を用いて送信された場合、 付属データ (整数かポイン"
8316 "ター) をシグナルと共に送信できる。 受信側プロセスが B<sigaction>(2)  に "
8317 "B<SA_SIGINFO> フラグを指定してシグナルハンドラーを設定した場合、 このデータ"
8318 "は I<siginfo_t> 構造体の I<si_value> フィールド経由でハンドラーの第 2 引き数"
8319 "として渡され、 利用することができる。 さらに、この構造体の I<si_pid> と "
8320 "I<si_uid> フィールドでシグナルを送信したプロセスの PID と実ユーザー ID を 得"
8321 "ることができる。"
8322
8323 #. type: Plain text
8324 #: build/C/man7/signal.7:420
8325 msgid ""
8326 "Real-time signals are delivered in a guaranteed order.  Multiple real-time "
8327 "signals of the same type are delivered in the order they were sent.  If "
8328 "different real-time signals are sent to a process, they are delivered "
8329 "starting with the lowest-numbered signal.  (I.e., low-numbered signals have "
8330 "highest priority.)  By contrast, if multiple standard signals are pending "
8331 "for a process, the order in which they are delivered is unspecified."
8332 msgstr ""
8333 "リアルタイムシグナルでは配送される順序が保証される。 同じタイプのリアルタイム"
8334 "シグナルは送信された順番に到着する。 異なるリアルタイムシグナルが一つのプロセ"
8335 "スに送信された場合、 番号の小さいシグナルから先に到着する。 (つまり小さい番号"
8336 "のシグナルが高い優先順位を持つ。)  対照的に、一つのプロセスに対して複数の標準"
8337 "シグナルが処理待ちとなった場合、 これらのシグナルが配送される順序は不定であ"
8338 "る。"
8339
8340 #. type: Plain text
8341 #: build/C/man7/signal.7:425
8342 msgid ""
8343 "If both standard and real-time signals are pending for a process, POSIX "
8344 "leaves it unspecified which is delivered first.  Linux, like many other "
8345 "implementations, gives priority to standard signals in this case."
8346 msgstr ""
8347 "一つのプロセスに対して標準シグナルとリアルタイムシグナルの両方が 処理待ちの場"
8348 "合、POSIX はどちらが先に配送されるかを規定していない。 Linux では、他の多くの"
8349 "実装と同様、このような場合には 標準シグナルが優先される。"
8350
8351 #. type: Plain text
8352 #: build/C/man7/signal.7:448
8353 msgid ""
8354 "According to POSIX, an implementation should permit at least "
8355 "B<_POSIX_SIGQUEUE_MAX> (32) real-time signals to be queued to a process.  "
8356 "However, Linux does things differently.  In kernels up to and including "
8357 "2.6.7, Linux imposes a system-wide limit on the number of queued real-time "
8358 "signals for all processes.  This limit can be viewed and (with privilege) "
8359 "changed via the I</proc/sys/kernel/rtsig-max> file.  A related file, I</proc/"
8360 "sys/kernel/rtsig-nr>, can be used to find out how many real-time signals are "
8361 "currently queued.  In Linux 2.6.8, these I</proc> interfaces were replaced "
8362 "by the B<RLIMIT_SIGPENDING> resource limit, which specifies a per-user limit "
8363 "for queued signals; see B<setrlimit>(2)  for further details."
8364 msgstr ""
8365 "POSIX によれば、1 プロセス毎に最低 B<_POSIX_SIGQUEUE_MAX> (32) 個のリアルタイ"
8366 "ムシグナルをキューに入れられるべきとしている。 しかし、 Linux では違った実装"
8367 "になっている。カーネル 2.6.7 までは (2.6.7 を含む)、全プロセスでキューに入っ"
8368 "ているリアルタイムシグナル の数の合計についてシステム全体での制限がある。 こ"
8369 "の制限は I</proc/sys/kernel/rtsig-max> ファイルで見ることができ、 (権限があれ"
8370 "ば) 変更もできる。 関係するファイルとして、 I</proc/sys/kernel/rtsig-nr> を見"
8371 "ることで、いくつのリアルタイムシグナルが現在キューに入っているかを 知ることが"
8372 "できる。 Linux 2.6.8 で、これらの I</proc> 経由のインターフェースは、 "
8373 "B<RLIMIT_SIGPENDING> リソース制限に置き換えられた。 これは、キューに入るシグ"
8374 "ナル数に関してユーザー単位に 上限を指定するものである。 詳しくは "
8375 "B<setrlimit>(2)  を参照。"
8376
8377 #. type: SS
8378 #: build/C/man7/signal.7:448
8379 #, no-wrap
8380 msgid "Async-signal-safe functions"
8381 msgstr "非同期シグナルで安全な関数 (async-signal-safe functions)"
8382
8383 #. type: Plain text
8384 #: build/C/man7/signal.7:457
8385 msgid ""
8386 "A signal handler function must be very careful, since processing elsewhere "
8387 "may be interrupted at some arbitrary point in the execution of the program.  "
8388 "POSIX has the concept of \"safe function\".  If a signal interrupts the "
8389 "execution of an unsafe function, and I<handler> calls an unsafe function, "
8390 "then the behavior of the program is undefined."
8391 msgstr ""
8392 "シグナルハンドラー関数には非常に注意しなければならない。 他の場所の処理はプロ"
8393 "グラム実行の任意の箇所で中断される可能性があるためである。 POSIX には「安全な"
8394 "関数 (safe function)」という概念がある。 シグナルが安全でない関数の実行を中断"
8395 "し、かつ I<handler> が安全でない関数を呼び出した場合、プログラムの挙動は未定"
8396 "義である。"
8397
8398 #. type: Plain text
8399 #: build/C/man7/signal.7:461
8400 msgid ""
8401 "POSIX.1-2004 (also known as POSIX.1-2001 Technical Corrigendum 2)  requires "
8402 "an implementation to guarantee that the following functions can be safely "
8403 "called inside a signal handler:"
8404 msgstr ""
8405 "POSIX.1-2004 (POSIX.1-2001 Technical Corrigendum (正誤表) 2 とも言う) では、 "
8406 "シグナルハンドラー内での安全な呼び出しを保証することが必須の関数として 以下が"
8407 "規定されている。"
8408
8409 #. type: Plain text
8410 #: build/C/man7/signal.7:582
8411 #, no-wrap
8412 msgid ""
8413 "_Exit()\n"
8414 "_exit()\n"
8415 "abort()\n"
8416 "accept()\n"
8417 "access()\n"
8418 "aio_error()\n"
8419 "aio_return()\n"
8420 "aio_suspend()\n"
8421 "alarm()\n"
8422 "bind()\n"
8423 "cfgetispeed()\n"
8424 "cfgetospeed()\n"
8425 "cfsetispeed()\n"
8426 "cfsetospeed()\n"
8427 "chdir()\n"
8428 "chmod()\n"
8429 "chown()\n"
8430 "clock_gettime()\n"
8431 "close()\n"
8432 "connect()\n"
8433 "creat()\n"
8434 "dup()\n"
8435 "dup2()\n"
8436 "execle()\n"
8437 "execve()\n"
8438 "fchmod()\n"
8439 "fchown()\n"
8440 "fcntl()\n"
8441 "fdatasync()\n"
8442 "fork()\n"
8443 "fpathconf()\n"
8444 "fstat()\n"
8445 "fsync()\n"
8446 "ftruncate()\n"
8447 "getegid()\n"
8448 "geteuid()\n"
8449 "getgid()\n"
8450 "getgroups()\n"
8451 "getpeername()\n"
8452 "getpgrp()\n"
8453 "getpid()\n"
8454 "getppid()\n"
8455 "getsockname()\n"
8456 "getsockopt()\n"
8457 "getuid()\n"
8458 "kill()\n"
8459 "link()\n"
8460 "listen()\n"
8461 "lseek()\n"
8462 "lstat()\n"
8463 "mkdir()\n"
8464 "mkfifo()\n"
8465 "open()\n"
8466 "pathconf()\n"
8467 "pause()\n"
8468 "pipe()\n"
8469 "poll()\n"
8470 "posix_trace_event()\n"
8471 "pselect()\n"
8472 "raise()\n"
8473 "read()\n"
8474 "readlink()\n"
8475 "recv()\n"
8476 "recvfrom()\n"
8477 "recvmsg()\n"
8478 "rename()\n"
8479 "rmdir()\n"
8480 "select()\n"
8481 "sem_post()\n"
8482 "send()\n"
8483 "sendmsg()\n"
8484 "sendto()\n"
8485 "setgid()\n"
8486 "setpgid()\n"
8487 "setsid()\n"
8488 "setsockopt()\n"
8489 "setuid()\n"
8490 "shutdown()\n"
8491 "sigaction()\n"
8492 "sigaddset()\n"
8493 "sigdelset()\n"
8494 "sigemptyset()\n"
8495 "sigfillset()\n"
8496 "sigismember()\n"
8497 "signal()\n"
8498 "sigpause()\n"
8499 "sigpending()\n"
8500 "sigprocmask()\n"
8501 "sigqueue()\n"
8502 "sigset()\n"
8503 "sigsuspend()\n"
8504 "sleep()\n"
8505 "sockatmark()\n"
8506 "socket()\n"
8507 "socketpair()\n"
8508 "stat()\n"
8509 "symlink()\n"
8510 "sysconf()\n"
8511 "tcdrain()\n"
8512 "tcflow()\n"
8513 "tcflush()\n"
8514 "tcgetattr()\n"
8515 "tcgetpgrp()\n"
8516 "tcsendbreak()\n"
8517 "tcsetattr()\n"
8518 "tcsetpgrp()\n"
8519 "time()\n"
8520 "timer_getoverrun()\n"
8521 "timer_gettime()\n"
8522 "timer_settime()\n"
8523 "times()\n"
8524 "umask()\n"
8525 "uname()\n"
8526 "unlink()\n"
8527 "utime()\n"
8528 "wait()\n"
8529 "waitpid()\n"
8530 "write()\n"
8531 msgstr ""
8532 "_Exit()\n"
8533 "_exit()\n"
8534 "abort()\n"
8535 "accept()\n"
8536 "access()\n"
8537 "aio_error()\n"
8538 "aio_return()\n"
8539 "aio_suspend()\n"
8540 "alarm()\n"
8541 "bind()\n"
8542 "cfgetispeed()\n"
8543 "cfgetospeed()\n"
8544 "cfsetispeed()\n"
8545 "cfsetospeed()\n"
8546 "chdir()\n"
8547 "chmod()\n"
8548 "chown()\n"
8549 "clock_gettime()\n"
8550 "close()\n"
8551 "connect()\n"
8552 "creat()\n"
8553 "dup()\n"
8554 "dup2()\n"
8555 "execle()\n"
8556 "execve()\n"
8557 "fchmod()\n"
8558 "fchown()\n"
8559 "fcntl()\n"
8560 "fdatasync()\n"
8561 "fork()\n"
8562 "fpathconf()\n"
8563 "fstat()\n"
8564 "fsync()\n"
8565 "ftruncate()\n"
8566 "getegid()\n"
8567 "geteuid()\n"
8568 "getgid()\n"
8569 "getgroups()\n"
8570 "getpeername()\n"
8571 "getpgrp()\n"
8572 "getpid()\n"
8573 "getppid()\n"
8574 "getsockname()\n"
8575 "getsockopt()\n"
8576 "getuid()\n"
8577 "kill()\n"
8578 "link()\n"
8579 "listen()\n"
8580 "lseek()\n"
8581 "lstat()\n"
8582 "mkdir()\n"
8583 "mkfifo()\n"
8584 "open()\n"
8585 "pathconf()\n"
8586 "pause()\n"
8587 "pipe()\n"
8588 "poll()\n"
8589 "posix_trace_event()\n"
8590 "pselect()\n"
8591 "raise()\n"
8592 "read()\n"
8593 "readlink()\n"
8594 "recv()\n"
8595 "recvfrom()\n"
8596 "recvmsg()\n"
8597 "rename()\n"
8598 "rmdir()\n"
8599 "select()\n"
8600 "sem_post()\n"
8601 "send()\n"
8602 "sendmsg()\n"
8603 "sendto()\n"
8604 "setgid()\n"
8605 "setpgid()\n"
8606 "setsid()\n"
8607 "setsockopt()\n"
8608 "setuid()\n"
8609 "shutdown()\n"
8610 "sigaction()\n"
8611 "sigaddset()\n"
8612 "sigdelset()\n"
8613 "sigemptyset()\n"
8614 "sigfillset()\n"
8615 "sigismember()\n"
8616 "signal()\n"
8617 "sigpause()\n"
8618 "sigpending()\n"
8619 "sigprocmask()\n"
8620 "sigqueue()\n"
8621 "sigset()\n"
8622 "sigsuspend()\n"
8623 "sleep()\n"
8624 "sockatmark()\n"
8625 "socket()\n"
8626 "socketpair()\n"
8627 "stat()\n"
8628 "symlink()\n"
8629 "sysconf()\n"
8630 "tcdrain()\n"
8631 "tcflow()\n"
8632 "tcflush()\n"
8633 "tcgetattr()\n"
8634 "tcgetpgrp()\n"
8635 "tcsendbreak()\n"
8636 "tcsetattr()\n"
8637 "tcsetpgrp()\n"
8638 "time()\n"
8639 "timer_getoverrun()\n"
8640 "timer_gettime()\n"
8641 "timer_settime()\n"
8642 "times()\n"
8643 "umask()\n"
8644 "uname()\n"
8645 "unlink()\n"
8646 "utime()\n"
8647 "wait()\n"
8648 "waitpid()\n"
8649 "write()\n"
8650
8651 #. type: Plain text
8652 #: build/C/man7/signal.7:587
8653 msgid ""
8654 "POSIX.1-2008 removes fpathconf(), pathconf(), and sysconf()  from the above "
8655 "list, and adds the following functions:"
8656 msgstr ""
8657 "POSIX.1-2008 では、上記のリストのうち fpathconf(), pathconf(), sysconf()  が"
8658 "削除され、以下の関数が追加された。"
8659
8660 #. type: Plain text
8661 #: build/C/man7/signal.7:610
8662 #, no-wrap
8663 msgid ""
8664 "execl()\n"
8665 "execv()\n"
8666 "faccessat()\n"
8667 "fchmodat()\n"
8668 "fchownat()\n"
8669 "fexecve()\n"
8670 "fstatat()\n"
8671 "futimens()\n"
8672 "linkat()\n"
8673 "mkdirat()\n"
8674 "mkfifoat()\n"
8675 "mknod()\n"
8676 "mknodat()\n"
8677 "openat()\n"
8678 "readlinkat()\n"
8679 "renameat()\n"
8680 "symlinkat()\n"
8681 "unlinkat()\n"
8682 "utimensat()\n"
8683 "utimes()\n"
8684 msgstr ""
8685 "execl()\n"
8686 "execv()\n"
8687 "faccessat()\n"
8688 "fchmodat()\n"
8689 "fchownat()\n"
8690 "fexecve()\n"
8691 "fstatat()\n"
8692 "futimens()\n"
8693 "linkat()\n"
8694 "mkdirat()\n"
8695 "mkfifoat()\n"
8696 "mknod()\n"
8697 "mknodat()\n"
8698 "openat()\n"
8699 "readlinkat()\n"
8700 "renameat()\n"
8701 "symlinkat()\n"
8702 "unlinkat()\n"
8703 "utimensat()\n"
8704 "utimes()\n"
8705
8706 #. type: SS
8707 #: build/C/man7/signal.7:612
8708 #, no-wrap
8709 msgid "Interruption of system calls and library functions by signal handlers"
8710 msgstr "シグナルハンドラーによるシステムコールやライブラリ関数への割り込み"
8711
8712 #. type: Plain text
8713 #: build/C/man7/signal.7:615
8714 msgid ""
8715 "If a signal handler is invoked while a system call or library function call "
8716 "is blocked, then either:"
8717 msgstr ""
8718 "システムコールやライブラリが停止 (block) している間にシグナルハンドラーが 起"
8719 "動されると、以下のどちらかとなる。"
8720
8721 #. type: Plain text
8722 #: build/C/man7/signal.7:617
8723 msgid ""
8724 "the call is automatically restarted after the signal handler returns; or"
8725 msgstr "シグナルが返った後、呼び出しは自動的に再スタートされる。"
8726
8727 #. type: Plain text
8728 #: build/C/man7/signal.7:620
8729 msgid "the call fails with the error B<EINTR>."
8730 msgstr "呼び出しはエラー B<EINTR> で失敗する。"
8731
8732 #. type: Plain text
8733 #: build/C/man7/signal.7:628
8734 msgid ""
8735 "Which of these two behaviors occurs depends on the interface and whether or "
8736 "not the signal handler was established using the B<SA_RESTART> flag (see "
8737 "B<sigaction>(2)).  The details vary across UNIX systems; below, the details "
8738 "for Linux."
8739 msgstr ""
8740 "これらの二つの挙動のうちどちらが起こるかは、インターフェイスにより依存し、 シ"
8741 "グナルハンドラーが B<SA_RESTART> フラグ (B<sigaction>(2)  参照) を使って設定"
8742 "されていたかにも依存する。 詳細は UNIX システムによって異なる。 Linux におけ"
8743 "る詳細を以下で説明する。"
8744
8745 #.  The following system calls use ERESTARTSYS,
8746 #.  so that they are restartable
8747 #. type: Plain text
8748 #: build/C/man7/signal.7:637
8749 msgid ""
8750 "If a blocked call to one of the following interfaces is interrupted by a "
8751 "signal handler, then the call will be automatically restarted after the "
8752 "signal handler returns if the B<SA_RESTART> flag was used; otherwise the "
8753 "call will fail with the error B<EINTR>:"
8754 msgstr ""
8755 "以下のインターフェイスのいずれかの呼び出しが停止している間に シグナルハンド"
8756 "ラーにより割り込まれた場合、 B<SA_RESTART> フラグが使用されていれば、シグナル"
8757 "ハンドラーが返った後に その呼び出しは自動的に再スタートされることになる。 そ"
8758 "れ以外の場合は、その呼び出しはエラー B<EINTR> で失敗することになる。"
8759
8760 #.  commit 1ca39ab9d21ac93f94b9e3eb364ea9a5cf2aba06
8761 #. type: Plain text
8762 #: build/C/man7/signal.7:672
8763 msgid ""
8764 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), and B<ioctl>(2)  calls "
8765 "on \"slow\" devices.  A \"slow\" device is one where the I/O call may block "
8766 "for an indefinite time, for example, a terminal, pipe, or socket.  (A disk "
8767 "is not a slow device according to this definition.)  A B<read>(2)  on an "
8768 "B<eventfd>(2), B<signalfd>(2), B<timerfd>(2), B<fanotify>(7), or "
8769 "B<inotify>(7)  file descriptor is also considered to be a \"slow\" "
8770 "operation.  (Before Linux 3.8, reads from an B<inotify>(7)  file descriptor "
8771 "were not restartable; when interrupted by a signal handler, B<read>(2)  "
8772 "always failed with the error B<EINTR>.)  If an I/O call on a slow device has "
8773 "already transferred some data by the time it is interrupted by a signal "
8774 "handler, then the call will return a success status (normally, the number of "
8775 "bytes transferred)."
8776 msgstr ""
8777 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), B<ioctl>(2)  の「遅い "
8778 "(slow)」デバイスに対する呼び出し。 ここでいう「遅い」デバイスとは、I/O 呼び出"
8779 "しが無期限に停止 (block) する 可能性のあるデバイスのことで、例としては端末、"
8780 "パイプ、ソケットがある (この定義では、ディスクは遅いデバイスではない)。 "
8781 "B<eventfd>(2), B<signalfd>(2), B<timerfd>(2), B<fanotify>(7), B<inotify>(7) "
8782 "のファイルディスクリプターに対する B<read>(2) も「遅い」操作と考えられる。 "
8783 "(Linux 3.8 より前であh, B<inotify>(7) ファイルディスクリプターからの読み出"
8784 "しは再開できなかった。シグナルハンドラーによって割り込まれた場合、 "
8785 "B<read>(2) は常にエラー B<EINTR> で失敗していた。) 遅いデバイスに対する I/O "
8786 "呼び出しが、 シグナルハンドラーにより割り込まれた時点までに何らかのデータを "
8787 "すでに転送していれば、呼び出しは成功ステータス (通常は、転送されたバイト数) "
8788 "を返すことだろう。"
8789
8790 #. type: Plain text
8791 #: build/C/man7/signal.7:676
8792 msgid ""
8793 "B<open>(2), if it can block (e.g., when opening a FIFO; see B<fifo>(7))."
8794 msgstr ""
8795 "停止 (block) する可能性のある B<open>(2)  (例えば、FIFO のオープン時; "
8796 "B<fifo>(7)  参照)。"
8797
8798 #. type: Plain text
8799 #: build/C/man7/signal.7:683
8800 msgid "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), and B<waitpid>(2)."
8801 msgstr "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), B<waitpid>(2)."
8802
8803 #.  If a timeout (setsockopt()) is in effect on the socket, then these
8804 #.  system calls switch to using EINTR.  Consequently, they and are not
8805 #.  automatically restarted, and they show the stop/cont behavior
8806 #.  described below.  (Verified from 2.6.26 source, and by experiment; mtk)
8807 #.  FIXME . What about sendmmsg()?
8808 #. type: Plain text
8809 #: build/C/man7/signal.7:701
8810 msgid ""
8811 "Socket interfaces: B<accept>(2), B<connect>(2), B<recv>(2), B<recvfrom>(2), "
8812 "B<recvmmsg>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), "
8813 "unless a timeout has been set on the socket (see below)."
8814 msgstr ""
8815 "ソケットインターフェイス: B<accept>(2), B<connect>(2), B<recv>(2), "
8816 "B<recvfrom>(2), B<recvmmsg>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), "
8817 "B<sendmsg>(2).  但し、ソケットにタイムアウトが設定されていない場合 (下記参"
8818 "照)。"
8819
8820 #. type: Plain text
8821 #: build/C/man7/signal.7:711
8822 #, fuzzy
8823 #| msgid "File locking interfaces: B<flock>(2)  and B<fcntl>(2)  B<F_SETLKW>."
8824 msgid ""
8825 "File locking interfaces: B<flock>(2)  and the B<F_SETLKW> and "
8826 "B<F_OFD_SETLKW> operations of B<fcntl>(2)"
8827 msgstr ""
8828 "ファイルロック用インターフェイス: B<flock>(2), B<fcntl>(2)  B<F_SETLKW>."
8829
8830 #. type: Plain text
8831 #: build/C/man7/signal.7:718
8832 msgid ""
8833 "POSIX message queue interfaces: B<mq_receive>(3), B<mq_timedreceive>(3), "
8834 "B<mq_send>(3), and B<mq_timedsend>(3)."
8835 msgstr ""
8836 "POSIX メッセージキューインターフェイス: B<mq_receive>(3), "
8837 "B<mq_timedreceive>(3), B<mq_send>(3), B<mq_timedsend>(3)."
8838
8839 #. type: Plain text
8840 #: build/C/man7/signal.7:723
8841 msgid ""
8842 "B<futex>(2)  B<FUTEX_WAIT> (since Linux 2.6.22; beforehand, always failed "
8843 "with B<EINTR>)."
8844 msgstr ""
8845 "B<futex>(2)  B<FUTEX_WAIT> (Linux 2.6.22 以降; それ以前は常に B<EINTR> で失敗"
8846 "していた)。"
8847
8848 #. type: Plain text
8849 #: build/C/man7/signal.7:725
8850 #, fuzzy
8851 #| msgid "B<read>(2)"
8852 msgid "B<getrandom>(2)."
8853 msgstr "B<read>(2)"
8854
8855 #. type: Plain text
8856 #: build/C/man7/signal.7:729
8857 msgid "B<pthread_mutex_lock>(3), B<pthread_cond_wait>(3), and related APIs."
8858 msgstr "B<pthread_mutex_lock>(3), B<pthread_cond_wait>(3) と関連 API。"
8859
8860 #. type: Plain text
8861 #: build/C/man7/signal.7:736
8862 msgid ""
8863 "POSIX semaphore interfaces: B<sem_wait>(3)  and B<sem_timedwait>(3)  (since "
8864 "Linux 2.6.22; beforehand, always failed with B<EINTR>)."
8865 msgstr ""
8866 "POSIX セマフォインターフェイス: B<sem_wait>(3), B<sem_timedwait>(3)  (Linux "
8867 "2.6.22 以降; それ以前は常に B<EINTR> で失敗していた)。"
8868
8869 #.  These are the system calls that give EINTR or ERESTARTNOHAND
8870 #.  on interruption by a signal handler.
8871 #. type: Plain text
8872 #: build/C/man7/signal.7:747
8873 msgid ""
8874 "The following interfaces are never restarted after being interrupted by a "
8875 "signal handler, regardless of the use of B<SA_RESTART>; they always fail "
8876 "with the error B<EINTR> when interrupted by a signal handler:"
8877 msgstr ""
8878 "以下のインターフェイスは、 B<SA_RESTART> を使っているどうかに関わらず、シグナ"
8879 "ルハンドラーにより割り込まれた後、 再スタートすることは決してない。 これら"
8880 "は、シグナルハンドラーにより割り込まれると、常にエラー B<EINTR> で失敗する。"
8881
8882 #. type: Plain text
8883 #: build/C/man7/signal.7:762 build/C/man7/signal.7:837
8884 msgid ""
8885 "\"Input\" socket interfaces, when a timeout (B<SO_RCVTIMEO>)  has been set "
8886 "on the socket using B<setsockopt>(2): B<accept>(2), B<recv>(2), "
8887 "B<recvfrom>(2), B<recvmmsg>(2)  (also with a non-NULL I<timeout> argument), "
8888 "and B<recvmsg>(2)."
8889 msgstr ""
8890 "B<setsockopt>(2)  を使ってタイムアウト (B<SO_RCVTIMEO>) が設定されている「入"
8891 "力」ソケットインターフェース: B<accept>(2), B<recv>(2), B<recvfrom>(2), "
8892 "B<recvmmsg>(2) (NULL 以外の I<timeout> 引き数も指定されている場合), "
8893 "B<recvmsg>(2)"
8894
8895 #.  FIXME . What about sendmmsg()?
8896 #. type: Plain text
8897 #: build/C/man7/signal.7:773 build/C/man7/signal.7:848
8898 msgid ""
8899 "\"Output\" socket interfaces, when a timeout (B<SO_SNDTIMEO>)  has been set "
8900 "on the socket using B<setsockopt>(2): B<connect>(2), B<send>(2), "
8901 "B<sendto>(2), and B<sendmsg>(2)."
8902 msgstr ""
8903 "B<setsockopt>(2)  を使ってタイムアウト (B<SO_SNDTIMEO>) が設定されているソ"
8904 "ケットインターフェース: B<connect>(2), B<send>(2), B<sendto>(2), "
8905 "B<sendmsg>(2)"
8906
8907 #. type: Plain text
8908 #: build/C/man7/signal.7:780
8909 msgid ""
8910 "Interfaces used to wait for signals: B<pause>(2), B<sigsuspend>(2), "
8911 "B<sigtimedwait>(2), and B<sigwaitinfo>(2)."
8912 msgstr ""
8913 "シグナル待ちに使われるインターフェイス: B<pause>(2), B<sigsuspend>(2), "
8914 "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8915
8916 #. type: Plain text
8917 #: build/C/man7/signal.7:789
8918 msgid ""
8919 "File descriptor multiplexing interfaces: B<epoll_wait>(2), "
8920 "B<epoll_pwait>(2), B<poll>(2), B<ppoll>(2), B<select>(2), and B<pselect>(2)."
8921 msgstr ""
8922 "ファイルディスクリプター多重インターフェイス: B<epoll_wait>(2), "
8923 "B<epoll_pwait>(2), B<poll>(2), B<ppoll>(2), B<select>(2), B<pselect>(2)."
8924
8925 #.  On some other systems, SA_RESTART does restart these system calls
8926 #. type: Plain text
8927 #: build/C/man7/signal.7:797
8928 msgid ""
8929 "System V IPC interfaces: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), and "
8930 "B<semtimedop>(2)."
8931 msgstr ""
8932 "System V IPC インターフェイス: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), "
8933 "B<semtimedop>(2)."
8934
8935 #. type: Plain text
8936 #: build/C/man7/signal.7:803
8937 msgid ""
8938 "Sleep interfaces: B<clock_nanosleep>(2), B<nanosleep>(2), and B<usleep>(3)."
8939 msgstr ""
8940 "スリープ用のインターフェイス: B<clock_nanosleep>(2), B<nanosleep>(2), "
8941 "B<usleep>(3)."
8942
8943 #. type: Plain text
8944 #: build/C/man7/signal.7:805
8945 msgid "B<io_getevents>(2)."
8946 msgstr "B<io_getevents>(2)."
8947
8948 #. type: Plain text
8949 #: build/C/man7/signal.7:811
8950 msgid ""
8951 "The B<sleep>(3)  function is also never restarted if interrupted by a "
8952 "handler, but gives a success return: the number of seconds remaining to "
8953 "sleep."
8954 msgstr ""
8955 "B<sleep>(3)  関数も、ハンドラーにより割り込まれた場合、決して再スタートされる"
8956 "ことはない。 しかし、成功となり、残っている停止時間を返す。"
8957
8958 #. type: SS
8959 #: build/C/man7/signal.7:811
8960 #, no-wrap
8961 msgid "Interruption of system calls and library functions by stop signals"
8962 msgstr "一時停止シグナルによるシステムコールやライブラリ関数への割り込み"
8963
8964 #. type: Plain text
8965 #: build/C/man7/signal.7:820
8966 msgid ""
8967 "On Linux, even in the absence of signal handlers, certain blocking "
8968 "interfaces can fail with the error B<EINTR> after the process is stopped by "
8969 "one of the stop signals and then resumed via B<SIGCONT>.  This behavior is "
8970 "not sanctioned by POSIX.1, and doesn't occur on other systems."
8971 msgstr ""
8972 "Linux では、シグナルハンドラーが設定されていない場合でも、 いくつかのブロッキ"
8973 "ング型のインターフェイスは、 プロセスが一時停止 (stop) シグナルの一つにより停"
8974 "止され、 B<SIGCONT> により再開された後に、エラー B<EINTR> で失敗する可能性が"
8975 "ある。 この挙動は POSIX.1 で認められておらず、他のシステムでは起こらない。"
8976
8977 #. type: Plain text
8978 #: build/C/man7/signal.7:822
8979 msgid "The Linux interfaces that display this behavior are:"
8980 msgstr "この挙動を示す Linux のインターフェイスは以下の通りである。"
8981
8982 #. type: Plain text
8983 #: build/C/man7/signal.7:851
8984 msgid "B<epoll_wait>(2), B<epoll_pwait>(2)."
8985 msgstr "B<epoll_wait>(2), B<epoll_pwait>(2)."
8986
8987 #. type: Plain text
8988 #: build/C/man7/signal.7:854
8989 msgid "B<semop>(2), B<semtimedop>(2)."
8990 msgstr "B<semop>(2), B<semtimedop>(2)."
8991
8992 #. type: Plain text
8993 #: build/C/man7/signal.7:857
8994 msgid "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8995 msgstr "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8996
8997 #.  commit 1ca39ab9d21ac93f94b9e3eb364ea9a5cf2aba06
8998 #. type: Plain text
8999 #: build/C/man7/signal.7:864
9000 msgid ""
9001 "Linux 3.7 and earlier: B<read>(2)  from an B<inotify>(7)  file descriptor."
9002 msgstr ""
9003 "Linux 3.7 以前: B<inotify>(7)  ファイルディスクリプターからの B<read>(2)."
9004
9005 #. type: Plain text
9006 #: build/C/man7/signal.7:870
9007 msgid ""
9008 "Linux 2.6.21 and earlier: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
9009 "B<sem_wait>(3)."
9010 msgstr ""
9011 "Linux 2.6.21 以前: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
9012 "B<sem_wait>(3)."
9013
9014 #. type: Plain text
9015 #: build/C/man7/signal.7:874
9016 msgid "Linux 2.6.8 and earlier: B<msgrcv>(2), B<msgsnd>(2)."
9017 msgstr "Linux 2.6.8 以前: B<msgrcv>(2), B<msgsnd>(2)."
9018
9019 #. type: Plain text
9020 #: build/C/man7/signal.7:877
9021 msgid "Linux 2.4 and earlier: B<nanosleep>(2)."
9022 msgstr "Linux 2.4 以前: B<nanosleep>(2)."
9023
9024 #.  It must be a *very* long time since this was true:
9025 #.  .SH BUGS
9026 #.  .B SIGIO
9027 #.  and
9028 #.  .B SIGLOST
9029 #.  have the same value.
9030 #.  The latter is commented out in the kernel source, but
9031 #.  the build process of some software still thinks that
9032 #.  signal 29 is
9033 #.  .BR SIGLOST .
9034 #. type: Plain text
9035 #: build/C/man7/signal.7:890
9036 msgid "POSIX.1, except as noted."
9037 msgstr "POSIX.1 (注記した内容以外)。"
9038
9039 #. type: Plain text
9040 #: build/C/man7/signal.7:925
9041 msgid ""
9042 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), "
9043 "B<restart_syscall>(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), "
9044 "B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), B<sigaltstack>(2), "
9045 "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
9046 "B<sigreturn>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), "
9047 "B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), "
9048 "B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), "
9049 "B<strsignal>(3), B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), "
9050 "B<sigevent>(7)"
9051 msgstr ""
9052 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), "
9053 "B<restart_syscall>(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), "
9054 "B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), B<sigaltstack>(2), "
9055 "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
9056 "B<sigreturn>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), "
9057 "B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), "
9058 "B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), "
9059 "B<strsignal>(3), B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), "
9060 "B<sigevent>(7)"
9061
9062 #. type: TH
9063 #: build/C/man2/signalfd.2:20
9064 #, no-wrap
9065 msgid "SIGNALFD"
9066 msgstr "SIGNALFD"
9067
9068 #. type: Plain text
9069 #: build/C/man2/signalfd.2:23
9070 msgid "signalfd - create a file descriptor for accepting signals"
9071 msgstr "signalfd - シグナル受け付け用のファイルディスクリプターを生成する"
9072
9073 #. type: Plain text
9074 #: build/C/man2/signalfd.2:25
9075 msgid "B<#include E<lt>sys/signalfd.hE<gt>>"
9076 msgstr "B<#include E<lt>sys/signalfd.hE<gt>>"
9077
9078 #. type: Plain text
9079 #: build/C/man2/signalfd.2:27
9080 msgid ""
9081 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
9082 msgstr ""
9083 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
9084
9085 #. type: Plain text
9086 #: build/C/man2/signalfd.2:38
9087 msgid ""
9088 "B<signalfd>()  creates a file descriptor that can be used to accept signals "
9089 "targeted at the caller.  This provides an alternative to the use of a signal "
9090 "handler or B<sigwaitinfo>(2), and has the advantage that the file descriptor "
9091 "may be monitored by B<select>(2), B<poll>(2), and B<epoll>(7)."
9092 msgstr ""
9093 "B<signalfd>()  は、呼び出し元宛てのシグナルを受け付けるために使用されるファイ"
9094 "ル ディスクリプターを生成する。 この方法はシグナルハンドラーや "
9095 "B<sigwaitinfo>(2)  を用いる方法の代わりとなるものであり、このファイルディスク"
9096 "リプターを B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点があ"
9097 "る。"
9098
9099 #. type: Plain text
9100 #: build/C/man2/signalfd.2:58
9101 msgid ""
9102 "The I<mask> argument specifies the set of signals that the caller wishes to "
9103 "accept via the file descriptor.  This argument is a signal set whose "
9104 "contents can be initialized using the macros described in B<sigsetops>(3).  "
9105 "Normally, the set of signals to be received via the file descriptor should "
9106 "be blocked using B<sigprocmask>(2), to prevent the signals being handled "
9107 "according to their default dispositions.  It is not possible to receive "
9108 "B<SIGKILL> or B<SIGSTOP> signals via a signalfd file descriptor; these "
9109 "signals are silently ignored if specified in I<mask>."
9110 msgstr ""
9111 "I<mask> 引き数には、呼び出し元がこのファイルディスクリプター経由で受け付けた"
9112 "い シグナル集合を指定する。この引き数で指定するシグナル集合の内容は、 "
9113 "B<sigsetops>(3)  で説明されているマクロを使って初期化することができる。 通"
9114 "常、ファイルディスクリプター経由で受信するシグナル集合は、 そのシグナルがデ"
9115 "フォルトの配送方法に基いて処理されるのを防ぐために、 B<sigprocmask>(2)  を"
9116 "使ってブロックしておくべきである。 シグナル B<SIGKILL> と B<SIGSTOP> を "
9117 "signalfd ファイルディスクリプター経由で受信することはできない。 これらのシグ"
9118 "ナルが I<mask> で指定された場合には黙って無視される。"
9119
9120 #. type: Plain text
9121 #: build/C/man2/signalfd.2:72
9122 msgid ""
9123 "If the I<fd> argument is -1, then the call creates a new file descriptor and "
9124 "associates the signal set specified in I<mask> with that descriptor.  If "
9125 "I<fd> is not -1, then it must specify a valid existing signalfd file "
9126 "descriptor, and I<mask> is used to replace the signal set associated with "
9127 "that descriptor."
9128 msgstr ""
9129 "I<fd> 引き数が -1 の場合、 B<signalfd>()  は新しいファイルディスクリプターを"
9130 "生成し、 I<mask> で指定されたシグナル集合をそのファイルディスクリプターに関連"
9131 "付ける。 I<fd> 引き数が -1 以外の場合、 I<fd> には有効な既存の signalfd ファ"
9132 "イルディスクリプターを指定しなければならず、 そのディスクリプターに関連付けら"
9133 "れているシグナル集合は I<mask> を使って置き換えられる。"
9134
9135 #. type: Plain text
9136 #: build/C/man2/signalfd.2:77
9137 msgid ""
9138 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
9139 "I<flags> to change the behavior of B<signalfd>():"
9140 msgstr ""
9141 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
9142 "ることで、 B<signalfd>()  の振舞いを変更することができる。"
9143
9144 #. type: TP
9145 #: build/C/man2/signalfd.2:77
9146 #, no-wrap
9147 msgid "B<SFD_NONBLOCK>"
9148 msgstr "B<SFD_NONBLOCK>"
9149
9150 #. type: TP
9151 #: build/C/man2/signalfd.2:85
9152 #, no-wrap
9153 msgid "B<SFD_CLOEXEC>"
9154 msgstr "B<SFD_CLOEXEC>"
9155
9156 #. type: Plain text
9157 #: build/C/man2/signalfd.2:102
9158 msgid ""
9159 "B<signalfd>()  returns a file descriptor that supports the following "
9160 "operations:"
9161 msgstr ""
9162 "B<signalfd>()  が返すファイルディスクリプターは以下の操作をサポートしている。"
9163
9164 #. type: Plain text
9165 #: build/C/man2/signalfd.2:121
9166 msgid ""
9167 "If one or more of the signals specified in I<mask> is pending for the "
9168 "process, then the buffer supplied to B<read>(2)  is used to return one or "
9169 "more I<signalfd_siginfo> structures (see below) that describe the signals.  "
9170 "The B<read>(2)  returns information for as many signals as are pending and "
9171 "will fit in the supplied buffer.  The buffer must be at least "
9172 "I<sizeof(struct signalfd_siginfo)> bytes.  The return value of the "
9173 "B<read>(2)  is the total number of bytes read."
9174 msgstr ""
9175 "I<mask> に指定されているシグナルのうち一つ以上がそのプロセスに対して 処理待"
9176 "ち (pending) であれば、それらのシグナルの情報が B<read>(2)  に渡されたバッ"
9177 "ファーを使って、 I<signalfd_siginfo> 構造体に格納されて返される。 "
9178 "B<read>(2)  は、バッファーに格納可能な範囲でできるだけ多くの処理待ちのシグナ"
9179 "ルに ついての情報を返す。 バッファーは最低でも I<sizeof(struct "
9180 "signalfd_siginfo)> バイトの大きさがなければならない。 B<read>(2)  の返り値は"
9181 "読み出されたトータルのバイト数である。"
9182
9183 #. type: Plain text
9184 #: build/C/man2/signalfd.2:129
9185 msgid ""
9186 "As a consequence of the B<read>(2), the signals are consumed, so that they "
9187 "are no longer pending for the process (i.e., will not be caught by signal "
9188 "handlers, and cannot be accepted using B<sigwaitinfo>(2))."
9189 msgstr ""
9190 "B<read>(2)  が行われた結果、シグナルは消費され、 これらのシグナルはそのプロセ"
9191 "スに対しては処理待ちではなくなる (つまり、シグナルハンドラーで捕捉されること"
9192 "もなく、 B<sigwaitinfo>(2)  を使って受け取ることもできなくなる)。"
9193
9194 #. type: Plain text
9195 #: build/C/man2/signalfd.2:140
9196 msgid ""
9197 "If none of the signals in I<mask> is pending for the process, then the "
9198 "B<read>(2)  either blocks until one of the signals in I<mask> is generated "
9199 "for the process, or fails with the error B<EAGAIN> if the file descriptor "
9200 "has been made nonblocking."
9201 msgstr ""
9202 "I<mask> に指定されているシグナルがそのプロセスに対して一つも処理待ちでなけれ"
9203 "ば、 B<read>(2)  は、 I<mask> で指定されたシグナルのうちいずれか一つがそのプ"
9204 "ロセスに対して発生するまで 停止 (block) する、もしくはファイルディスクリプ"
9205 "ターが非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗す"
9206 "る。"
9207
9208 #. type: Plain text
9209 #: build/C/man2/signalfd.2:153
9210 msgid ""
9211 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
9212 "B<poll>(2)  B<POLLIN> flag)  if one or more of the signals in I<mask> is "
9213 "pending for the process."
9214 msgstr ""
9215 "I<mask> に指定されたシグナルのうち一つ以上がそのプロセスに対して処理待ちであ"
9216 "れば、 ファイルディスクリプターは読み出し可能となる (B<select>(2)  の "
9217 "I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
9218
9219 #. type: Plain text
9220 #: build/C/man2/signalfd.2:160
9221 msgid ""
9222 "The signalfd file descriptor also supports the other file-descriptor "
9223 "multiplexing APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
9224 msgstr ""
9225 "signalfd ファイルディスクリプターは、これ以外のファイルディスクリプター 多重 "
9226 "API である B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
9227
9228 #. type: Plain text
9229 #: build/C/man2/signalfd.2:165
9230 msgid ""
9231 "When the file descriptor is no longer required it should be closed.  When "
9232 "all file descriptors associated with the same signalfd object have been "
9233 "closed, the resources for object are freed by the kernel."
9234 msgstr ""
9235 "ファイルディスクリプターがそれ以降は必要なくなった際には、クローズすべきであ"
9236 "る。 同じ signalfd オブジェクトに関連付けられたファイルディスクリプターが全"
9237 "て クローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
9238
9239 #. type: SS
9240 #: build/C/man2/signalfd.2:165
9241 #, no-wrap
9242 msgid "The signalfd_siginfo structure"
9243 msgstr "signalfd_siginfo 構造体"
9244
9245 #. type: Plain text
9246 #: build/C/man2/signalfd.2:171
9247 msgid ""
9248 "The format of the I<signalfd_siginfo> structure(s) returned by B<read>(2)s "
9249 "from a signalfd file descriptor is as follows:"
9250 msgstr ""
9251 "signalfd ファイルディスクリプターからの B<read>(2)  で返される "
9252 "I<signalfd_siginfo> 構造体のフォーマットは以下の通りである。"
9253
9254 #.  ssi_trapno is unused on most arches
9255 #.  FIXME Since Linux 2.6.37 there is 'uint16_t ssi_addr_lsb'
9256 #.  in the signalfd_siginfo structure. This needs to be documented.
9257 #. type: Plain text
9258 #: build/C/man2/signalfd.2:198
9259 #, no-wrap
9260 msgid ""
9261 "struct signalfd_siginfo {\n"
9262 "    uint32_t ssi_signo;   /* Signal number */\n"
9263 "    int32_t  ssi_errno;   /* Error number (unused) */\n"
9264 "    int32_t  ssi_code;    /* Signal code */\n"
9265 "    uint32_t ssi_pid;     /* PID of sender */\n"
9266 "    uint32_t ssi_uid;     /* Real UID of sender */\n"
9267 "    int32_t  ssi_fd;      /* File descriptor (SIGIO) */\n"
9268 "    uint32_t ssi_tid;     /* Kernel timer ID (POSIX timers)\n"
9269 "    uint32_t ssi_band;    /* Band event (SIGIO) */\n"
9270 "    uint32_t ssi_overrun; /* POSIX timer overrun count */\n"
9271 "    uint32_t ssi_trapno;  /* Trap number that caused signal */\n"
9272 "    int32_t  ssi_status;  /* Exit status or signal (SIGCHLD) */\n"
9273 "    int32_t  ssi_int;     /* Integer sent by sigqueue(3) */\n"
9274 "    uint64_t ssi_ptr;     /* Pointer sent by sigqueue(3) */\n"
9275 "    uint64_t ssi_utime;   /* User CPU time consumed (SIGCHLD) */\n"
9276 "    uint64_t ssi_stime;   /* System CPU time consumed (SIGCHLD) */\n"
9277 "    uint64_t ssi_addr;    /* Address that generated signal\n"
9278 "                             (for hardware-generated signals) */\n"
9279 "    uint8_t  pad[I<X>];      /* Pad size to 128 bytes (allow for\n"
9280 "                              additional fields in the future) */\n"
9281 "};\n"
9282 msgstr ""
9283 "struct signalfd_siginfo {\n"
9284 "struct signalfd_siginfo {\n"
9285 "    uint32_t ssi_signo;   /* シグナル番号 */\n"
9286 "    int32_t  ssi_errno;   /* エラー番号 (未使用) */\n"
9287 "    int32_t  ssi_code;    /* シグナルコード */\n"
9288 "    uint32_t ssi_pid;     /* 送信元の PID */\n"
9289 "    uint32_t ssi_uid;     /* 送信元の実 UID */\n"
9290 "    int32_t  ssi_fd;      /* ファイルディスクリプター (SIGIO) */\n"
9291 "    uint32_t ssi_tid;     /* カーネルタイマー ID (POSIX タイマー)\n"
9292 "    uint32_t ssi_band;    /* Band イベント (SIGIO) */\n"
9293 "    uint32_t ssi_overrun; /* POSIX タイマーのオーバーラン回数 */\n"
9294 "    uint32_t ssi_trapno;  /* シグナルの原因となったトラップ番号 */\n"
9295 "    int32_t  ssi_status;  /* 終了ステータスかシグナル (SIGCHLD) */\n"
9296 "    int32_t  ssi_int;     /* sigqueue(3) から送られた整数 */\n"
9297 "    uint64_t ssi_ptr;     /* sigqueue(3) から送られたポインター */\n"
9298 "    uint64_t ssi_utime;   /* 消費したユーザー CPU 時間 (SIGCHLD) */\n"
9299 "    uint64_t ssi_stime;   /* 消費したシステム CPU 時間 (SIGCHLD) */\n"
9300 "    uint64_t ssi_addr;    /* シグナルを生成したアドレス\n"
9301 "                             (ハードウェアが生成したシグナルの場合) */\n"
9302 "    uint8_t  pad[I<X>];      /* pad の大きさは 128 バイト\n"
9303 "                             (将来のフィールド追加用の場所の確保) */\n"
9304 "};\n"
9305
9306 #. type: Plain text
9307 #: build/C/man2/signalfd.2:221
9308 msgid ""
9309 "Each of the fields in this structure is analogous to the similarly named "
9310 "field in the I<siginfo_t> structure.  The I<siginfo_t> structure is "
9311 "described in B<sigaction>(2).  Not all fields in the returned "
9312 "I<signalfd_siginfo> structure will be valid for a specific signal; the set "
9313 "of valid fields can be determined from the value returned in the I<ssi_code> "
9314 "field.  This field is the analog of the I<siginfo_t> I<si_code> field; see "
9315 "B<sigaction>(2)  for details."
9316 msgstr ""
9317 "I<signalfd_siginfo> 構造体の各フィールドは、 I<siginfo_t> 構造体の同じような"
9318 "名前のフィールドと同様である。 I<siginfo_t> 構造体については "
9319 "B<sigaction>(2)  に説明がある。 返された I<signalfd_siginfo> 構造体の全ての"
9320 "フィールドがあるシグナルに対して有効なわけではない。 どのフィールドが有効か"
9321 "は、 I<ssi_code> フィールドで返される値から判定することができる。 このフィー"
9322 "ルドは I<siginfo_t> の I<si_code> フィールドと同様である。詳細は "
9323 "B<sigaction>(2)  を参照。"
9324
9325 #. type: SS
9326 #: build/C/man2/signalfd.2:221 build/C/man2/timerfd_create.2:276
9327 #, no-wrap
9328 msgid "fork(2) semantics"
9329 msgstr "fork(2) での扱い"
9330
9331 #. type: Plain text
9332 #: build/C/man2/signalfd.2:229
9333 msgid ""
9334 "After a B<fork>(2), the child inherits a copy of the signalfd file "
9335 "descriptor.  A B<read>(2)  from the file descriptor in the child will return "
9336 "information about signals queued to the child."
9337 msgstr ""
9338 "B<fork>(2)  が行われると、子プロセスは signalfd ファイルディスクリプターのコ"
9339 "ピーを 継承する。 子プロセスでこのファイルディスクリプターから B<read>(2)  を"
9340 "行うと、子プロセスに対するキューに入っているシグナルに関する 情報が返される。"
9341
9342 #. type: SS
9343 #: build/C/man2/signalfd.2:229 build/C/man2/timerfd_create.2:288
9344 #, no-wrap
9345 msgid "execve(2) semantics"
9346 msgstr "execve(2) での扱い"
9347
9348 #. type: Plain text
9349 #: build/C/man2/signalfd.2:241
9350 msgid ""
9351 "Just like any other file descriptor, a signalfd file descriptor remains open "
9352 "across an B<execve>(2), unless it has been marked for close-on-exec (see "
9353 "B<fcntl>(2)).  Any signals that were available for reading before the "
9354 "B<execve>(2)  remain available to the newly loaded program.  (This is "
9355 "analogous to traditional signal semantics, where a blocked signal that is "
9356 "pending remains pending across an B<execve>(2).)"
9357 msgstr ""
9358 "他のファイルディスクリプターと全く同様に、 signalfd ファイルディスクリプター"
9359 "も B<execve>(2)  の前後でオープンされたままとなる。但し、そのファイルディスク"
9360 "リプターに close-on-exec のマーク (B<fcntl>(2)  参照) が付いている場合はク"
9361 "ローズされる。 B<execve>(2)  の前に読み出し可能となっていた全てのシグナルは新"
9362 "しく起動されたプログラム でも引き続き読み出し可能である (これは伝統的なシグナ"
9363 "ルの扱いと同じであり、 処理待ちのブロックされたシグナルは B<execve>(2)  の前"
9364 "後で処理待ちのままとなる)。"
9365
9366 #. type: SS
9367 #: build/C/man2/signalfd.2:241
9368 #, no-wrap
9369 msgid "Thread semantics"
9370 msgstr "スレッドでの扱い"
9371
9372 #. type: Plain text
9373 #: build/C/man2/signalfd.2:251
9374 msgid ""
9375 "The semantics of signalfd file descriptors in a multithreaded program mirror "
9376 "the standard semantics for signals.  In other words, when a thread reads "
9377 "from a signalfd file descriptor, it will read the signals that are directed "
9378 "to the thread itself and the signals that are directed to the process (i.e., "
9379 "the entire thread group).  (A thread will not be able to read signals that "
9380 "are directed to other threads in the process.)"
9381 msgstr ""
9382 "マルチスレッドプログラムにおける signalfd ファイルディスクリプターの扱いは シ"
9383 "グナルの標準的な扱いと全く同じである。 言い換えると、あるスレッドが signalfd "
9384 "ファイルディスクリプターから 読み出しを行うと、そのスレッド自身宛てのシグナル"
9385 "とプロセス (すなわち スレッドグループ全体) 宛てのシグナルが読み出される。 (ス"
9386 "レッドは同じプロセスの他のスレッド宛てのシグナルを読み出すことはできない。)"
9387
9388 #. type: Plain text
9389 #: build/C/man2/signalfd.2:265
9390 msgid ""
9391 "On success, B<signalfd>()  returns a signalfd file descriptor; this is "
9392 "either a new file descriptor (if I<fd> was -1), or I<fd> if I<fd> was a "
9393 "valid signalfd file descriptor.  On error, -1 is returned and I<errno> is "
9394 "set to indicate the error."
9395 msgstr ""
9396 "成功すると、 B<signalfd>()  は signalfd ファイルディスクリプターを返す。 返さ"
9397 "れるファイルディスクリプターは、 I<fd> が -1 の場合は新規のファイルディスクリ"
9398 "プターであり、 I<fd> が有効な signalfd ファイルディスクリプターだった場合は "
9399 "I<fd> 自身である。 エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定"
9400 "する。"
9401
9402 #. type: Plain text
9403 #: build/C/man2/signalfd.2:271
9404 msgid "The I<fd> file descriptor is not a valid file descriptor."
9405 msgstr ""
9406 "ファイルディスクリプター I<fd> が有効なファイルディスクリプターでない。"
9407
9408 #.  or, the
9409 #.  .I sizemask
9410 #.  argument is not equal to
9411 #.  .IR sizeof(sigset_t) ;
9412 #. type: Plain text
9413 #: build/C/man2/signalfd.2:279
9414 msgid "I<fd> is not a valid signalfd file descriptor."
9415 msgstr "I<fd> が有効な signalfd ファイルディスクリプターではない。"
9416
9417 #. type: Plain text
9418 #: build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:327
9419 msgid ""
9420 "I<flags> is invalid; or, in Linux 2.6.26 or earlier, I<flags> is nonzero."
9421 msgstr ""
9422 "I<flags> が無効である。もしくは、Linux 2.6.26 以前の場合には I<flags> が 0 以"
9423 "外である。"
9424
9425 #. type: Plain text
9426 #: build/C/man2/signalfd.2:289 build/C/man2/timerfd_create.2:330
9427 msgid "The per-process limit of open file descriptors has been reached."
9428 msgstr ""
9429 "オープン済みのファイルディスクリプターの数がプロセスあたりの上限に 達してい"
9430 "た。"
9431
9432 #. type: Plain text
9433 #: build/C/man2/signalfd.2:299
9434 msgid "There was insufficient memory to create a new signalfd file descriptor."
9435 msgstr ""
9436 "新しい signalfd ファイルディスクリプターを生成するのに十分なメモリーがなかっ"
9437 "た。"
9438
9439 #.  signalfd() is in glibc 2.7, but reportedly does not build
9440 #. type: Plain text
9441 #: build/C/man2/signalfd.2:307
9442 msgid ""
9443 "B<signalfd>()  is available on Linux since kernel 2.6.22.  Working support "
9444 "is provided in glibc since version 2.8.  The B<signalfd4>()  system call "
9445 "(see NOTES) is available on Linux since kernel 2.6.27."
9446 msgstr ""
9447 "B<signalfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
9448 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<signalfd4>()  "
9449 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
9450 "る。"
9451
9452 #. type: Plain text
9453 #: build/C/man2/signalfd.2:312
9454 msgid "B<signalfd>()  and B<signalfd4>()  are Linux-specific."
9455 msgstr "B<signalfd>()  と B<signalfd4>()  は Linux 固有である。"
9456
9457 #. type: Plain text
9458 #: build/C/man2/signalfd.2:326
9459 msgid ""
9460 "A process can create multiple signalfd file descriptors.  This makes it "
9461 "possible to accept different signals on different file descriptors.  (This "
9462 "may be useful if monitoring the file descriptors using B<select>(2), "
9463 "B<poll>(2), or B<epoll>(7): the arrival of different signals will make "
9464 "different descriptors ready.)  If a signal appears in the I<mask> of more "
9465 "than one of the file descriptors, then occurrences of that signal can be "
9466 "read (once) from any one of the descriptors."
9467 msgstr ""
9468 "一つのプロセスは複数の signalfd ファイルディスクリプターを生成することができ"
9469 "る。 これにより、異なるファイルディスクリプターで異なるシグナルを受け取ること"
9470 "が できる (この機能は B<select>(2), B<poll>(2), B<epoll>(7)  を使ってファイル"
9471 "ディスクリプターを監視する場合に有用かもしれない。 異なるシグナルが到着する"
9472 "と、異なるファイルディスクリプターが利用可能に なるからだ)。 一つのシグナルが"
9473 "二つ以上のファイルディスクリプターの I<mask> に含まれている場合、そのシグナル"
9474 "の発生はそのシグナルを I<mask> に含むファイルディスクリプターのうちいずれか一"
9475 "つから読み出すことができる。"
9476
9477 #. type: Plain text
9478 #: build/C/man2/signalfd.2:336
9479 msgid ""
9480 "The underlying Linux system call requires an additional argument, I<size_t "
9481 "sizemask>, which specifies the size of the I<mask> argument.  The glibc "
9482 "B<signalfd>()  wrapper function does not include this argument, since it "
9483 "provides the required value for the underlying system call."
9484 msgstr ""
9485 "実際の Linux のシステムコールでは I<size_t sizemask> という引き数が追加で必要"
9486 "である。この引き数で I<mask> のサイズを指定する。 glibc の B<signalfd>()  "
9487 "ラッパー関数にはこの引き数は含まれず、 ラッパー関数が必要な値を計算して内部で"
9488 "呼び出すシステムコールに提供する。"
9489
9490 #. type: Plain text
9491 #: build/C/man2/signalfd.2:352
9492 msgid ""
9493 "There are two underlying Linux system calls: B<signalfd>()  and the more "
9494 "recent B<signalfd4>().  The former system call does not implement a I<flags> "
9495 "argument.  The latter system call implements the I<flags> values described "
9496 "above.  Starting with glibc 2.9, the B<signalfd>()  wrapper function will "
9497 "use B<signalfd4>()  where it is available."
9498 msgstr ""
9499 "下層にある Linux システムコールは二種類あり、 B<signalfd>()  と、もっと新し"
9500 "い B<signalfd4>()  である。 B<signalfd>()  は I<flags> 引き数を実装していな"
9501 "い。 B<signalfd4>()  では上記の値の I<flags> が実装されている。 glibc 2.9 以"
9502 "降では、 B<signalfd>()  のラッパー関数は、 B<signalfd4>()  が利用可能であれ"
9503 "ば、これを使用する。"
9504
9505 #.  The fix also was put into 2.6.24.5
9506 #. type: Plain text
9507 #: build/C/man2/signalfd.2:360
9508 msgid ""
9509 "In kernels before 2.6.25, the I<ssi_ptr> and I<ssi_int> fields are not "
9510 "filled in with the data accompanying a signal sent by B<sigqueue>(3)."
9511 msgstr ""
9512 "カーネル 2.6.25 より前では、 B<sigqueue>(3)  により送信されたシグナルと一緒に"
9513 "渡されるデータでは、フィールド I<ssi_ptr> と I<ssi_int> は設定されない。"
9514
9515 #. type: Plain text
9516 #: build/C/man2/signalfd.2:370
9517 msgid ""
9518 "The program below accepts the signals B<SIGINT> and B<SIGQUIT> via a "
9519 "signalfd file descriptor.  The program terminates after accepting a "
9520 "B<SIGQUIT> signal.  The following shell session demonstrates the use of the "
9521 "program:"
9522 msgstr ""
9523 "下記のプログラムは、シグナル B<SIGINT> と B<SIGQUIT> を signalfd ファイルディ"
9524 "スクリプター経由で受信する。 シグナル B<SIGQUIT> 受信後にプログラムは終了す"
9525 "る。 以下に示すシェルセッションにこのプログラムの使い方を示す。"
9526
9527 #. type: Plain text
9528 #: build/C/man2/signalfd.2:381
9529 #, no-wrap
9530 msgid ""
9531 "$B< ./signalfd_demo>\n"
9532 "B<^C>                   # Control-C generates SIGINT\n"
9533 "Got SIGINT\n"
9534 "B<^C>\n"
9535 "Got SIGINT\n"
9536 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
9537 "Got SIGQUIT\n"
9538 "$\n"
9539 msgstr ""
9540 "$B< ./signalfd_demo>\n"
9541 "B<^C>                   # Control-C generates SIGINT\n"
9542 "Got SIGINT\n"
9543 "B<^C>\n"
9544 "Got SIGINT\n"
9545 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
9546 "Got SIGQUIT\n"
9547 "$\n"
9548
9549 #. type: Plain text
9550 #: build/C/man2/signalfd.2:391
9551 #, no-wrap
9552 msgid ""
9553 "#include E<lt>sys/signalfd.hE<gt>\n"
9554 "#include E<lt>signal.hE<gt>\n"
9555 "#include E<lt>unistd.hE<gt>\n"
9556 "#include E<lt>stdlib.hE<gt>\n"
9557 "#include E<lt>stdio.hE<gt>\n"
9558 msgstr ""
9559 "#include E<lt>sys/signalfd.hE<gt>\n"
9560 "#include E<lt>signal.hE<gt>\n"
9561 "#include E<lt>unistd.hE<gt>\n"
9562 "#include E<lt>stdlib.hE<gt>\n"
9563 "#include E<lt>stdio.hE<gt>\n"
9564
9565 #. type: Plain text
9566 #: build/C/man2/signalfd.2:402
9567 #, no-wrap
9568 msgid ""
9569 "int\n"
9570 "main(int argc, char *argv[])\n"
9571 "{\n"
9572 "    sigset_t mask;\n"
9573 "    int sfd;\n"
9574 "    struct signalfd_siginfo fdsi;\n"
9575 "    ssize_t s;\n"
9576 msgstr ""
9577 "int\n"
9578 "main(int argc, char *argv[])\n"
9579 "{\n"
9580 "    sigset_t mask;\n"
9581 "    int sfd;\n"
9582 "    struct signalfd_siginfo fdsi;\n"
9583 "    ssize_t s;\n"
9584
9585 #. type: Plain text
9586 #: build/C/man2/signalfd.2:406
9587 #, no-wrap
9588 msgid ""
9589 "    sigemptyset(&mask);\n"
9590 "    sigaddset(&mask, SIGINT);\n"
9591 "    sigaddset(&mask, SIGQUIT);\n"
9592 msgstr ""
9593 "    sigemptyset(&mask);\n"
9594 "    sigaddset(&mask, SIGINT);\n"
9595 "    sigaddset(&mask, SIGQUIT);\n"
9596
9597 #. type: Plain text
9598 #: build/C/man2/signalfd.2:409
9599 #, no-wrap
9600 msgid ""
9601 "    /* Block signals so that they aren\\(aqt handled\n"
9602 "       according to their default dispositions */\n"
9603 msgstr ""
9604 "    /* Block signals so that they aren\\(aqt handled\n"
9605 "       according to their default dispositions */\n"
9606
9607 #. type: Plain text
9608 #: build/C/man2/signalfd.2:412
9609 #, no-wrap
9610 msgid ""
9611 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
9612 "        handle_error(\"sigprocmask\");\n"
9613 msgstr ""
9614 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
9615 "        handle_error(\"sigprocmask\");\n"
9616
9617 #. type: Plain text
9618 #: build/C/man2/signalfd.2:416
9619 #, no-wrap
9620 msgid ""
9621 "    sfd = signalfd(-1, &mask, 0);\n"
9622 "    if (sfd == -1)\n"
9623 "        handle_error(\"signalfd\");\n"
9624 msgstr ""
9625 "    sfd = signalfd(-1, &mask, 0);\n"
9626 "    if (sfd == -1)\n"
9627 "        handle_error(\"signalfd\");\n"
9628
9629 #. type: Plain text
9630 #: build/C/man2/signalfd.2:421
9631 #, no-wrap
9632 msgid ""
9633 "    for (;;) {\n"
9634 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
9635 "        if (s != sizeof(struct signalfd_siginfo))\n"
9636 "            handle_error(\"read\");\n"
9637 msgstr ""
9638 "    for (;;) {\n"
9639 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
9640 "        if (s != sizeof(struct signalfd_siginfo))\n"
9641 "            handle_error(\"read\");\n"
9642
9643 #. type: Plain text
9644 #: build/C/man2/signalfd.2:432
9645 #, no-wrap
9646 msgid ""
9647 "        if (fdsi.ssi_signo == SIGINT) {\n"
9648 "            printf(\"Got SIGINT\\en\");\n"
9649 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
9650 "            printf(\"Got SIGQUIT\\en\");\n"
9651 "            exit(EXIT_SUCCESS);\n"
9652 "        } else {\n"
9653 "            printf(\"Read unexpected signal\\en\");\n"
9654 "        }\n"
9655 "    }\n"
9656 "}\n"
9657 msgstr ""
9658 "        if (fdsi.ssi_signo == SIGINT) {\n"
9659 "            printf(\"Got SIGINT\\en\");\n"
9660 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
9661 "            printf(\"Got SIGQUIT\\en\");\n"
9662 "            exit(EXIT_SUCCESS);\n"
9663 "        } else {\n"
9664 "            printf(\"Read unexpected signal\\en\");\n"
9665 "        }\n"
9666 "    }\n"
9667 "}\n"
9668
9669 #. type: Plain text
9670 #: build/C/man2/signalfd.2:446
9671 msgid ""
9672 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
9673 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
9674 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
9675 msgstr ""
9676 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
9677 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
9678 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
9679
9680 #. type: TH
9681 #: build/C/man3/sigpause.3:25
9682 #, no-wrap
9683 msgid "SIGPAUSE"
9684 msgstr "SIGPAUSE"
9685
9686 #. type: Plain text
9687 #: build/C/man3/sigpause.3:28
9688 msgid "sigpause - atomically release blocked signals and wait for interrupt"
9689 msgstr "sigpause - ブロックされたシグナルをアトミックに解放して割り込みを待つ"
9690
9691 #. type: Plain text
9692 #: build/C/man3/sigpause.3:33
9693 #, no-wrap
9694 msgid "B<int sigpause(int >I<sigmask>B<);  /* BSD (but see NOTES) */>\n"
9695 msgstr "B<int sigpause(int >I<sigmask>B<);  /* BSD (ただし「備考」を参照) */>\n"
9696
9697 #. type: Plain text
9698 #: build/C/man3/sigpause.3:35
9699 #, no-wrap
9700 msgid "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
9701 msgstr "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
9702
9703 #. type: Plain text
9704 #: build/C/man3/sigpause.3:41
9705 msgid "Don't use this function.  Use B<sigsuspend>(2)  instead."
9706 msgstr "この関数を使わないこと。 代わりに B<sigsuspend>(2)  を使うこと。"
9707
9708 #. type: Plain text
9709 #: build/C/man3/sigpause.3:48
9710 msgid ""
9711 "The function B<sigpause>()  is designed to wait for some signal.  It changes "
9712 "the process's signal mask (set of blocked signals), and then waits for a "
9713 "signal to arrive.  Upon arrival of a signal, the original signal mask is "
9714 "restored."
9715 msgstr ""
9716 "関数 B<sigpause>()  はシグナルを待つように設計されている。 この関数はプロセス"
9717 "のシグナルマスク (ブロックされたシグナルのセット) を変更し、 シグナルが到着す"
9718 "るのを待つ。 シグナルが到着すると、シグナルマスクは元に戻される。"
9719
9720 #. type: Plain text
9721 #: build/C/man3/sigpause.3:56
9722 msgid ""
9723 "If B<sigpause>()  returns, it was interrupted by a signal and the return "
9724 "value is -1 with I<errno> set to B<EINTR>."
9725 msgstr ""
9726 "B<sigpause>()  が返った場合、この関数はシグナルによって割り込まれている。 返"
9727 "り値は -1 で、 I<errno> は B<EINTR> に設定される。"
9728
9729 #. type: Plain text
9730 #: build/C/man3/sigpause.3:61
9731 msgid "The B<sigpause>()  function is thread-safe."
9732 msgstr "B<sigpause>() 関数はスレッドセーフである。"
9733
9734 #. type: Plain text
9735 #: build/C/man3/sigpause.3:65
9736 msgid "The System V version of B<sigpause>()  is standardized in POSIX.1-2001."
9737 msgstr "System V 版の B<sigpause>()  は POSIX.1-2001 で標準化されている。"
9738
9739 #.  __xpg_sigpause: UNIX 95, spec 1170, SVID, SVr4, XPG
9740 #. type: Plain text
9741 #: build/C/man3/sigpause.3:82
9742 msgid ""
9743 "The classical BSD version of this function appeared in 4.2BSD.  It sets the "
9744 "process's signal mask to I<sigmask>.  UNIX 95 standardized the incompatible "
9745 "System V version of this function, which removes only the specified signal "
9746 "I<sig> from the process's signal mask.  The unfortunate situation with two "
9747 "incompatible functions with the same name was solved by the B<\\"
9748 "%sigsuspend>(2)  function, that takes a I<sigset_t\\ *> argument (instead of "
9749 "an I<int>)."
9750 msgstr ""
9751 "この関数の古典的な BSD 版は 4.2BSD で登場した。 この関数はプロセスのシグナル"
9752 "マスクを I<sigmask> に設定する。 UNIX 95 では BSD 版と互換性のない System V "
9753 "版のこの関数が標準化された。 UNIX 95 版は、指定されたシグナル I<sig> をプロセ"
9754 "スのシグナルマスクから削除するだけである。 同じ名前で互換性のない 2 つの関数"
9755 "があるという不幸な事態は、 B<\\%sigsuspend>(2)  関数によって解消された。 この"
9756 "関数は (I<int> の代わりに)  B<sigset_t\\ *> 引き数をとる。"
9757
9758 #. type: Plain text
9759 #: build/C/man3/sigpause.3:85
9760 msgid ""
9761 "On Linux, this routine is a system call only on the Sparc (sparc64)  "
9762 "architecture."
9763 msgstr ""
9764 "Linux では、このルーチンは Sparc (sparc64) アーキテクチャーでのみ システム"
9765 "コールとなっている。"
9766
9767 #.  Libc4 and libc5 know only about the BSD version.
9768 #.  For the BSD version, one usually uses a zero
9769 #.  .I sigmask
9770 #.  to indicate that no signals are to be blocked.
9771 #. type: Plain text
9772 #: build/C/man3/sigpause.3:111
9773 msgid ""
9774 "Glibc uses the BSD version if the B<_BSD_SOURCE> feature test macro is "
9775 "defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
9776 "B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined.  Otherwise, the System V "
9777 "version is used (and B<_XOPEN_SOURCE> must be defined to obtain the "
9778 "declaration).  Since glibc 2.19, only the System V version is exposed by "
9779 "I<E<lt>signal.hE<gt>>; applications that formerly used the BSD "
9780 "B<sigpause>()  should be amended to use B<sigsuspend>(2)."
9781 msgstr ""
9782 "機能検査マクロ B<_BSD_SOURCE> が定義され、 B<_POSIX_SOURCE>, "
9783 "B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, B<_GNU_SOURCE>, B<_SVID_SOURCE> のいず"
9784 "れも定義されていない場合、 glibc は BSD 版を使う。 それ以外の場合には、"
9785 "System V 版を使用する (宣言を得るためには B<_XOPEN_SOURCE> が定義されていなけ"
9786 "ればならない)。 glibc 2.19 以降では、 I<E<lt>signal.hE<gt>> では System V 版"
9787 "だけが公開される。 BSD 版の B<sigpause>() を使用していたアプリケーションは "
9788 "B<sigsuspend>(2) を使用するように修正すべきである。"
9789
9790 #. type: Plain text
9791 #: build/C/man3/sigpause.3:119
9792 msgid ""
9793 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
9794 "B<sigblock>(3), B<sigvec>(3), B<feature_test_macros>(7)"
9795 msgstr ""
9796 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
9797 "B<sigblock>(3), B<sigvec>(3), B<feature_test_macros>(7)"
9798
9799 #. type: TH
9800 #: build/C/man2/sigpending.2:29
9801 #, no-wrap
9802 msgid "SIGPENDING"
9803 msgstr "SIGPENDING"
9804
9805 #. type: TH
9806 #: build/C/man2/sigpending.2:29
9807 #, no-wrap
9808 msgid "2013-12-11"
9809 msgstr "2013-12-11"
9810
9811 #. type: Plain text
9812 #: build/C/man2/sigpending.2:32
9813 msgid "sigpending - examine pending signals"
9814 msgstr "sigpending - 処理待ちのシグナルの検査"
9815
9816 #. type: Plain text
9817 #: build/C/man2/sigpending.2:36
9818 msgid "B<int sigpending(sigset_t *>I<set>B<);>"
9819 msgstr "B<int sigpending(sigset_t *>I<set>B<);>"
9820
9821 #. type: Plain text
9822 #: build/C/man2/sigpending.2:45
9823 msgid ""
9824 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9825 "_POSIX_SOURCE"
9826 msgstr ""
9827 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9828 "_POSIX_SOURCE"
9829
9830 #. type: Plain text
9831 #: build/C/man2/sigpending.2:53
9832 msgid ""
9833 "B<sigpending>()  returns the set of signals that are pending for delivery to "
9834 "the calling thread (i.e., the signals which have been raised while "
9835 "blocked).  The mask of pending signals is returned in I<set>."
9836 msgstr ""
9837 "B<sigpending>()  は、呼び出し元のスレッドへの配送を待っている (pending) シグ"
9838 "ナル集合 (すなわち、禁止中に発生したシグナル) を返す。 処理待ちのシグナルのマ"
9839 "スクが I<set> に格納される。"
9840
9841 #. type: Plain text
9842 #: build/C/man2/sigpending.2:59
9843 msgid ""
9844 "B<sigpending>()  returns 0 on success and -1 on error.  In the event of an "
9845 "error, I<errno> is set to indicate the cause."
9846 msgstr ""
9847 "B<sigpending>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、I<errno> "
9848 "にエラーの原因を示す値を設定する。"
9849
9850 #. type: Plain text
9851 #: build/C/man2/sigpending.2:64
9852 msgid ""
9853 "I<set> points to memory which is not a valid part of the process address "
9854 "space."
9855 msgstr ""
9856 "I<set> が指しているメモリーが、プロセスのアドレス空間の有効な部分ではない。"
9857
9858 #. type: Plain text
9859 #: build/C/man2/sigpending.2:74
9860 msgid ""
9861 "If a signal is both blocked and has a disposition of \"ignored\", it is "
9862 "I<not> added to the mask of pending signals when generated."
9863 msgstr ""
9864 "シグナルが禁止 (ブロック) されており、かつ配送方法が \"ignored\" (無視) に"
9865 "なっている場合、そのシグナルが発生した場合に処理待ちシグナルのマスクにそのシ"
9866 "グナルは追加I<されない>。"
9867
9868 #. type: Plain text
9869 #: build/C/man2/sigpending.2:79
9870 msgid ""
9871 "The set of signals that is pending for a thread is the union of the set of "
9872 "signals that is pending for that thread and the set of signals that is "
9873 "pending for the process as a whole; see B<signal>(7)."
9874 msgstr ""
9875 "あるスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体への処理待ち"
9876 "のシグナル集合と、プロセス全体への処理待ちの シグナル集合をあわせたものであ"
9877 "る。 B<signal>(7)  参照。"
9878
9879 #. type: Plain text
9880 #: build/C/man2/sigpending.2:91
9881 msgid ""
9882 "In versions of glibc up to and including 2.2.1, there is a bug in the "
9883 "wrapper function for B<sigpending>()  which means that information about "
9884 "pending real-time signals is not correctly returned."
9885 msgstr ""
9886 "バージョン 2.2.1 以前の glibc では、 B<sigpending>()  のラッパー関数に、処理"
9887 "待ちのリアルタイムシグナルに関する情報が 正しく返されないというバグがある。"
9888
9889 #. type: Plain text
9890 #: build/C/man2/sigpending.2:99
9891 msgid ""
9892 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9893 "B<sigsuspend>(2), B<sigsetops>(3), B<signal>(7)"
9894 msgstr ""
9895 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9896 "B<sigsuspend>(2), B<sigsetops>(3), B<signal>(7)"
9897
9898 #. type: TH
9899 #: build/C/man2/sigprocmask.2:29
9900 #, no-wrap
9901 msgid "SIGPROCMASK"
9902 msgstr "SIGPROCMASK"
9903
9904 #. type: TH
9905 #: build/C/man2/sigprocmask.2:29 build/C/man2/sigsuspend.2:29
9906 #, no-wrap
9907 msgid "2013-04-19"
9908 msgstr "2013-04-19"
9909
9910 #. type: Plain text
9911 #: build/C/man2/sigprocmask.2:32
9912 msgid "sigprocmask - examine and change blocked signals"
9913 msgstr "sigprocmask - 禁止するシグナルの確認と変更"
9914
9915 #. type: Plain text
9916 #: build/C/man2/sigprocmask.2:37
9917 msgid ""
9918 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9919 "*>I<oldset>B<);>"
9920 msgstr ""
9921 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9922 "*>I<oldset>B<);>"
9923
9924 #. type: Plain text
9925 #: build/C/man2/sigprocmask.2:46
9926 msgid ""
9927 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9928 "_POSIX_SOURCE"
9929 msgstr ""
9930 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9931 "_POSIX_SOURCE"
9932
9933 #. type: Plain text
9934 #: build/C/man2/sigprocmask.2:55
9935 msgid ""
9936 "B<sigprocmask>()  is used to fetch and/or change the signal mask of the "
9937 "calling thread.  The signal mask is the set of signals whose delivery is "
9938 "currently blocked for the caller (see also B<signal>(7)  for more details)."
9939 msgstr ""
9940 "B<sigprocmask>()  を使うと、呼び出したスレッドのシグナルマスクの取得/変更がで"
9941 "きる。 シグナルマスクは、呼び出し元に対して現在配送が禁止されているシグナル"
9942 "の 集合のことである (詳細については B<signal>(7)  も参照のこと)。"
9943
9944 #. type: Plain text
9945 #: build/C/man2/sigprocmask.2:59
9946 msgid ""
9947 "The behavior of the call is dependent on the value of I<how>, as follows."
9948 msgstr "このコールの動作は I<how> の値によって決まる:"
9949
9950 #. type: TP
9951 #: build/C/man2/sigprocmask.2:59
9952 #, no-wrap
9953 msgid "B<SIG_BLOCK>"
9954 msgstr "B<SIG_BLOCK>"
9955
9956 #. type: Plain text
9957 #: build/C/man2/sigprocmask.2:64
9958 msgid ""
9959 "The set of blocked signals is the union of the current set and the I<set> "
9960 "argument."
9961 msgstr ""
9962 "禁止されたシグナルの集合は現在の値と I<set> 引き数を結合したものとなる。"
9963
9964 #. type: TP
9965 #: build/C/man2/sigprocmask.2:64
9966 #, no-wrap
9967 msgid "B<SIG_UNBLOCK>"
9968 msgstr "B<SIG_UNBLOCK>"
9969
9970 #. type: Plain text
9971 #: build/C/man2/sigprocmask.2:70
9972 msgid ""
9973 "The signals in I<set> are removed from the current set of blocked signals.  "
9974 "It is permissible to attempt to unblock a signal which is not blocked."
9975 msgstr ""
9976 "現在禁止されているシグナルの集合から I<set> にあるシグナルを取り除く。禁止さ"
9977 "れていないシグナルを取り除こうと することも認められている。"
9978
9979 #. type: TP
9980 #: build/C/man2/sigprocmask.2:70
9981 #, no-wrap
9982 msgid "B<SIG_SETMASK>"
9983 msgstr "B<SIG_SETMASK>"
9984
9985 #. type: Plain text
9986 #: build/C/man2/sigprocmask.2:74
9987 msgid "The set of blocked signals is set to the argument I<set>."
9988 msgstr "禁止されているシグナルの集合に I<set> 引き数を設定する。"
9989
9990 #. type: Plain text
9991 #: build/C/man2/sigprocmask.2:79
9992 msgid ""
9993 "If I<oldset> is non-NULL, the previous value of the signal mask is stored in "
9994 "I<oldset>."
9995 msgstr ""
9996 "I<oldset> が NULL でなければ、シグナルマスクの今までの値を I<oldset> に格納す"
9997 "る。"
9998
9999 #. type: Plain text
10000 #: build/C/man2/sigprocmask.2:88
10001 msgid ""
10002 "If I<set> is NULL, then the signal mask is unchanged (i.e., I<how> is "
10003 "ignored), but the current value of the signal mask is nevertheless returned "
10004 "in I<oldset> (if it is not NULL)."
10005 msgstr ""
10006 "I<set> が NULL であれば、シグナルマスクは変更されない (すなわち、 I<how> は無"
10007 "視される)。 I<set> の値にかかわらず、現在のシグナルマスクの値は I<oldset> に"
10008 "入れて返される (但し、 I<oldset> が NULL でない場合)。"
10009
10010 #. type: Plain text
10011 #: build/C/man2/sigprocmask.2:93
10012 msgid ""
10013 "The use of B<sigprocmask>()  is unspecified in a multithreaded process; see "
10014 "B<pthread_sigmask>(3)."
10015 msgstr ""
10016 "マルチスレッドのプロセスで B<sigprocmask>()  を使用した場合の動作は規定されて"
10017 "いない。 B<pthread_sigmask>(3)  を参照のこと。"
10018
10019 #. type: Plain text
10020 #: build/C/man2/sigprocmask.2:99
10021 msgid ""
10022 "B<sigprocmask>()  returns 0 on success and -1 on error.  In the event of an "
10023 "error, I<errno> is set to indicate the cause."
10024 msgstr ""
10025 "B<sigprocmask>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、 "
10026 "I<errno> にエラーの原因を示す値を設定する。"
10027
10028 #. type: Plain text
10029 #: build/C/man2/sigprocmask.2:107
10030 msgid ""
10031 "the I<set> or I<oldset> argument points outside the process's allocated "
10032 "address space."
10033 msgstr ""
10034 "引き数 I<set> か I<oldset> がプロセスに割り当てられたアドレス空間の外を指して"
10035 "いる。"
10036
10037 #. type: Plain text
10038 #: build/C/man2/sigprocmask.2:112
10039 msgid "The value specified in I<how> was invalid."
10040 msgstr "I<how> に指定された値が有効ではない。"
10041
10042 #. type: Plain text
10043 #: build/C/man2/sigprocmask.2:118
10044 msgid ""
10045 "It is not possible to block B<SIGKILL> or B<SIGSTOP>.  Attempts to do so are "
10046 "silently ignored."
10047 msgstr ""
10048 "B<SIGKILL> や B<SIGSTOP> を禁止することはできない。 禁止しようとしても黙って"
10049 "無視される。"
10050
10051 #. type: Plain text
10052 #: build/C/man2/sigprocmask.2:120
10053 msgid "Each of the threads in a process has its own signal mask."
10054 msgstr "プロセス内の各スレッドはそれぞれ専用のシグナルマスクを持つ。"
10055
10056 #. type: Plain text
10057 #: build/C/man2/sigprocmask.2:140
10058 msgid ""
10059 "If B<SIGBUS>, B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> are generated while they "
10060 "are blocked, the result is undefined, unless the signal was generated by "
10061 "B<kill>(2), B<sigqueue>(3), or B<raise>(3)."
10062 msgstr ""
10063 "シグナル B<SIGBUS>, B<SIGFPE>, B<SIGILL>, B<SIGSEGV> が禁止されている間に生成"
10064 "された場合で、 そのシグナルが B<kill>(2), B<sigqueue>(3), B<raise>(3)  によっ"
10065 "て生成されたものでないときには、 その後の動作は未定義である。"
10066
10067 #. type: Plain text
10068 #: build/C/man2/sigprocmask.2:155
10069 msgid ""
10070 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
10071 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
10072 "B<signal>(7)"
10073 msgstr ""
10074 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
10075 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
10076 "B<signal>(7)"
10077
10078 #. type: TH
10079 #: build/C/man3/sigqueue.3:28
10080 #, no-wrap
10081 msgid "SIGQUEUE"
10082 msgstr "SIGQUEUE"
10083
10084 #. type: TH
10085 #: build/C/man3/sigqueue.3:28 build/C/man3/sigwait.3:26
10086 #, no-wrap
10087 msgid "2013-12-16"
10088 msgstr "2013-12-16"
10089
10090 #. type: Plain text
10091 #: build/C/man3/sigqueue.3:31
10092 msgid "sigqueue - queue a signal and data to a process"
10093 msgstr "sigqueue - シグナルとデータをプロセスに送る"
10094
10095 #. type: Plain text
10096 #: build/C/man3/sigqueue.3:35
10097 msgid ""
10098 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
10099 ">I<value>B<);>"
10100 msgstr ""
10101 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
10102 ">I<value>B<);>"
10103
10104 #. type: Plain text
10105 #: build/C/man3/sigqueue.3:43
10106 msgid "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10107 msgstr "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10108
10109 #. type: Plain text
10110 #: build/C/man3/sigqueue.3:55
10111 msgid ""
10112 "B<sigqueue>()  sends the signal specified in I<sig> to the process whose PID "
10113 "is given in I<pid>.  The permissions required to send a signal are the same "
10114 "as for B<kill>(2).  As with B<kill>(2), the null signal (0) can be used to "
10115 "check if a process with a given PID exists."
10116 msgstr ""
10117 "B<sigqueue>()  は I<sig> で指定されたシグナルを、PID が I<pid> であるプロセス"
10118 "に送る。 シグナルを送るのに必要な権限は B<kill>(2)  と同じである。 "
10119 "B<kill>(2)  と同様に、ヌルシグナル (0) を使って 指定した PID のプロセスが存在"
10120 "するかをチェックすることができる。"
10121
10122 #. type: Plain text
10123 #: build/C/man3/sigqueue.3:60
10124 msgid ""
10125 "The I<value> argument is used to specify an accompanying item of data "
10126 "(either an integer or a pointer value) to be sent with the signal, and has "
10127 "the following type:"
10128 msgstr ""
10129 "I<value> 引き数はシグナルと一緒に送るデータの付属アイテムを指定する。 "
10130 "I<value> は (整数またはポインターの値であり) 以下のような型である。"
10131
10132 #. type: Plain text
10133 #: build/C/man3/sigqueue.3:67
10134 #, no-wrap
10135 msgid ""
10136 "union sigval {\n"
10137 "    int   sival_int;\n"
10138 "    void *sival_ptr;\n"
10139 "};\n"
10140 msgstr ""
10141 "union sigval {\n"
10142 "    int   sival_int;\n"
10143 "    void *sival_ptr;\n"
10144 "};\n"
10145
10146 #. type: Plain text
10147 #: build/C/man3/sigqueue.3:83
10148 msgid ""
10149 "If the receiving process has installed a handler for this signal using the "
10150 "B<SA_SIGINFO> flag to B<sigaction>(2), then it can obtain this data via the "
10151 "I<si_value> field of the I<siginfo_t> structure passed as the second "
10152 "argument to the handler.  Furthermore, the I<si_code> field of that "
10153 "structure will be set to B<SI_QUEUE>."
10154 msgstr ""
10155 "受取先のプロセスに、このシグナルに対するハンドラーを (B<sigaction>(2)  に "
10156 "B<SA_SIGINFO> を指定して) インストールしておくと、 そのハンドラーの第 2 引き"
10157 "数に渡される I<siginfo_t> 構造体の I<si_value> フィールドによって、このデータ"
10158 "を取得できる。 さらに、この構造体の I<si_code> フィールドは B<SI_QUEUE> に設"
10159 "定される。"
10160
10161 #. type: Plain text
10162 #: build/C/man3/sigqueue.3:91
10163 msgid ""
10164 "On success, B<sigqueue>()  returns 0, indicating that the signal was "
10165 "successfully queued to the receiving process.  Otherwise, -1 is returned and "
10166 "I<errno> is set to indicate the error."
10167 msgstr ""
10168 "成功した場合、 B<sigqueue>()  は 0 を返す。 これは受け取り側プロセスの待ち行"
10169 "列に シグナルが正しく入れられたことを示す。 失敗した場合は -1 が返され、 "
10170 "I<errno> がエラーを表す値に設定される。"
10171
10172 #. type: Plain text
10173 #: build/C/man3/sigqueue.3:102
10174 msgid "I<sig> was invalid."
10175 msgstr "I<sig> が不正である。"
10176
10177 #. type: Plain text
10178 #: build/C/man3/sigqueue.3:108
10179 msgid ""
10180 "The process does not have permission to send the signal to the receiving "
10181 "process.  For the required permissions, see B<kill>(2)."
10182 msgstr ""
10183 "このプロセスには、受け取り側プロセスにシグナルを送る権限がない。 必要な権限に"
10184 "ついては、 B<kill>(2)  を参照すること。"
10185
10186 #. type: Plain text
10187 #: build/C/man3/sigqueue.3:112
10188 msgid "No process has a PID matching I<pid>."
10189 msgstr "I<pid> にマッチする PID のプロセスがない。"
10190
10191 #. type: Plain text
10192 #: build/C/man3/sigqueue.3:114
10193 msgid "This system call first appeared in Linux 2.2."
10194 msgstr "このシステムコールは Linux 2.2 で初めて登場した。"
10195
10196 #. type: Plain text
10197 #: build/C/man3/sigqueue.3:119
10198 msgid "The B<sigqueue>()  function is thread-safe."
10199 msgstr "B<sigqueue>() 関数はスレッドセーフである。"
10200
10201 #. type: Plain text
10202 #: build/C/man3/sigqueue.3:129
10203 msgid ""
10204 "If this function results in the sending of a signal to the process that "
10205 "invoked it, and that signal was not blocked by the calling thread, and no "
10206 "other threads were willing to handle this signal (either by having it "
10207 "unblocked, or by waiting for it using B<sigwait>(3)), then at least some "
10208 "signal must be delivered to this thread before this function returns."
10209 msgstr ""
10210 "この関数を呼び出したプロセスにこの関数がシグナルを送ったときに、 シグナルが呼"
10211 "び出し側スレッドにブロックされず、 かつ (シグナルがブロックされなかった、また"
10212 "は B<sigwait>(3)  を使用するのを待っていることにより)  このシグナルを扱うス"
10213 "レッドが何もない場合は、 この関数がリターンする前に、少なくとも そのスレッド"
10214 "に対してシグナルが配送されていなければならない。"
10215
10216 #. type: Plain text
10217 #: build/C/man3/sigqueue.3:144
10218 msgid ""
10219 "On Linux, this function is implemented using the B<rt_sigqueueinfo>(2)  "
10220 "system call.  The system call differs in its third argument, which is the "
10221 "I<siginfo_t> structure that will be supplied to the receiving process's "
10222 "signal handler or returned by the receiving process's B<sigtimedwait>(2)  "
10223 "call.  Inside the glibc B<sigqueue>()  wrapper, this argument, I<uinfo>, is "
10224 "initialized as follows:"
10225 msgstr ""
10226 "Linux では、この関数は B<rt_sigqueueinfo>(2)  システムコールを使って実装され"
10227 "ている。 両者には 3 番目の引き数に違いがあり、 B<rt_sigqueueinfo>(2)  では 3 "
10228 "番目の引き数は I<siginfo_t> 構造体である。 I<siginfo_t> 構造体は、シグナルを"
10229 "受信するプロセスのシグナルハンドラーに渡されたり、 シグナル受信プロセスの "
10230 "B<sigtimedwait>(2)  システムコールから返されたりする。 glibc の "
10231 "B<sigqueue>()  ラッパー関数内部では、 この引き数 I<uinfo> は以下のように初期"
10232 "化される。"
10233
10234 #. type: Plain text
10235 #: build/C/man3/sigqueue.3:152
10236 #, no-wrap
10237 msgid ""
10238 "uinfo.si_signo = sig;      /* Argument supplied to sigqueue() */\n"
10239 "uinfo.si_code = SI_QUEUE;\n"
10240 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
10241 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
10242 "uinfo.si_value = val;      /* Argument supplied to sigqueue() */\n"
10243 msgstr ""
10244 "uinfo.si_signo = sig;      /* Argument supplied to sigqueue() */\n"
10245 "uinfo.si_code = SI_QUEUE;\n"
10246 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
10247 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
10248 "uinfo.si_value = val;      /* Argument supplied to sigqueue() */\n"
10249
10250 #. type: Plain text
10251 #: build/C/man3/sigqueue.3:162
10252 msgid ""
10253 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
10254 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
10255 msgstr ""
10256 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
10257 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
10258
10259 #. type: TH
10260 #: build/C/man2/sigreturn.2:30
10261 #, no-wrap
10262 msgid "SIGRETURN"
10263 msgstr "SIGRETURN"
10264
10265 #. type: Plain text
10266 #: build/C/man2/sigreturn.2:33
10267 msgid "sigreturn - return from signal handler and cleanup stack frame"
10268 msgstr "sigreturn - シグナルハンドラーから返り、スタックを掃除する"
10269
10270 #. type: Plain text
10271 #: build/C/man2/sigreturn.2:35
10272 msgid "B<int sigreturn(...);>"
10273 msgstr "B<int sigreturn(...);>"
10274
10275 #.  See arch/x86/kernel/signal.c::__setup_frame() [in 3.17 source code]
10276 #. type: Plain text
10277 #: build/C/man2/sigreturn.2:45
10278 msgid ""
10279 "If the Linux kernel determines that an unblocked signal is pending for a "
10280 "process, then, at the next transition back to user mode in that process (e."
10281 "g., upon return from a system call or when the process is rescheduled onto "
10282 "the CPU), it saves various pieces of process context (processor status word, "
10283 "registers, signal mask, and signal stack settings)  into the user-space "
10284 "stack."
10285 msgstr ""
10286 "Linux カーネルがプロセスに対してブロックされていないシグナルが処理待ちと判定"
10287 "した場合、 そのプロセスの次回のユーザーモードへの遷移 (すなわち、システムコー"
10288 "ルからのリターン時やそのプロセスが CPU に再スケジュールされる際)、 カーネルは"
10289 "プロセスコンテキストの種々の値 (プロセッサーのステータスワード、 レジス"
10290 "ター、 シグナルマスク、 シグナルスタック設定) をユーザー空間のスタックに保存"
10291 "する。"
10292
10293 #. type: Plain text
10294 #: build/C/man2/sigreturn.2:52
10295 msgid ""
10296 "The kernel also arranges that, during the transition back to user mode, the "
10297 "signal handler is called, and that, upon return from the handler, control "
10298 "passes to a piece of user-space code commonly called the \"signal trampoline"
10299 "\".  The signal trampoline code in turn calls B<sigreturn>()."
10300 msgstr ""
10301 "また、 カーネルは、 ユーザーモードへの遷移時にシグナルハンドラーが呼び出さ"
10302 "れ、 ハンドラーからのリターン時に、 制御が \"signal trampoline\" と呼ばれる"
10303 "ユーザー空間コードブロックに渡されるように、準備を行う。 signal trampoline の"
10304 "コードが B<sigreturn>() を呼び出す。"
10305
10306 #. type: Plain text
10307 #: build/C/man2/sigreturn.2:65
10308 msgid ""
10309 "This B<sigreturn>()  call undoes everything that was done\\(emchanging the "
10310 "process's signal mask, switching signal stacks (see "
10311 "B<sigaltstack>(2))\\(emin order to invoke the signal handler.  It restores "
10312 "the process's signal mask, switches stacks, and restores the process's "
10313 "context (processor flags and registers, including the stack pointer and "
10314 "instruction pointer), so that the process resumes execution at the point "
10315 "where it was interrupted by the signal."
10316 msgstr ""
10317 "B<sigreturn>()  は、シグナルハンドラーを起動するために行ったことの全て \\(em "
10318 "プロセスのシグナルマスクの変更、 シグナルスタックの切り替え "
10319 "(B<sigaltstack>(2)  参照) \\(em の取り消しを行う。 プロセスのシグナルマスクの"
10320 "復元、 スタックの切り替え、 プロセスのコンテキスト (プロセッサフラグ、 レジス"
10321 "ター (スタックポインター、 命令ポインターを含む)) の復元を行い、 プロセスがシ"
10322 "グナルにより割り込まれた場所から実行を再開できるようにする。"
10323
10324 #. type: Plain text
10325 #: build/C/man2/sigreturn.2:68
10326 msgid "B<sigreturn>()  never returns."
10327 msgstr "B<sigreturn>()  が返ることはない。"
10328
10329 #. type: Plain text
10330 #: build/C/man2/sigreturn.2:74
10331 msgid ""
10332 "Many UNIX-type systems have a B<sigreturn>()  system call or near "
10333 "equivalent.  However, this call is not specified in POSIX, and details of "
10334 "its behavior vary across systems."
10335 msgstr ""
10336 "多くの UNIX 系のシステムには B<sigreturn>() システムコールか似たようなシステ"
10337 "ムコールがある。 しかしながら、 このシステムコールは POSIX には規定されておら"
10338 "ず、 その動作の詳細はシステムにより異なる。"
10339
10340 #. type: Plain text
10341 #: build/C/man2/sigreturn.2:83
10342 msgid ""
10343 "B<sigreturn>()  exists only to allow the implementation of signal handlers.  "
10344 "It should B<never> be called directly.  Details of the arguments (if any) "
10345 "passed to B<sigreturn>()  vary depending on the architecture."
10346 msgstr ""
10347 "B<sigreturn>() はシグナルハンドラーを実装するためだけに存在している。 これら"
10348 "を直接呼び出すのはB<決して>行うべきではない。 B<sigreturn>() に渡される引き数"
10349 "の詳細はアーキテクチャーにより異なる。"
10350
10351 #.  See, for example, sysdeps/unix/sysv/linux/i386/sigaction.c and
10352 #.  sysdeps/unix/sysv/linux/x86_64/sigaction.c in the glibc (2.20) source.
10353 #. type: Plain text
10354 #: build/C/man2/sigreturn.2:106
10355 msgid ""
10356 "Once upon a time, UNIX systems placed the signal trampoline code onto the "
10357 "user stack.  Nowadays, pages of the user stack are protected so as to "
10358 "disallow code execution.  Thus, on contemporary Linux systems, depending on "
10359 "the architecture, the signal trampoline code lives either in the B<vdso>(7)  "
10360 "or in the C library.  In the latter case, the C library supplies the "
10361 "location of the trampoline code using the I<sa_restorer> field of the "
10362 "I<sigaction> structure that is passed to B<sigaction>(2), and sets the "
10363 "B<SA_RESTORER> flag in the I<sa_flags> field."
10364 msgstr ""
10365 "かつて、 UNIX システムでは signal trampoline コードがユーザースタックに置かれ"
10366 "ていた。 今日では、 ユーザースタックのページは保護され、 コードの実行は禁止さ"
10367 "れている。 したがって、 現代の Linux システムでは、 アーキテクチャー依存では"
10368 "あるが、 signal trampoline コードは B<vdso>(7) 内もしくは C ライブラリ内に置"
10369 "かれる。 後者の場合、 C ライブラリは trampoline code の場所を "
10370 "B<sigaction>(2) に渡される I<sigaction> 構造体の I<sa_restorer> フィールドを"
10371 "使って渡し、 I<sa_flags> フィールドの B<SA_RESTORER> フラグをセットする。"
10372
10373 #. type: Plain text
10374 #: build/C/man2/sigreturn.2:115
10375 msgid ""
10376 "The saved process context information is placed in a I<ucontext_t> structure "
10377 "(see I<E<lt>sys/ucontext.hE<gt>>).  That structure is visible within the "
10378 "signal handler as the third argument of a handler established with the "
10379 "B<SA_SIGINFO> flag."
10380 msgstr ""
10381 "保存されたプロセスコンテキスト情報は I<ucontext_t>構造体に置かれる "
10382 "(I<E<lt>sys/ucontext.hE<gt>> 参照)。 この構造体は、 B<SA_SIGINFO> フラグを付"
10383 "けて設定されたシグナルハンドラーの第 3 引き数としてシングルハンドラー内で参照"
10384 "できる。"
10385
10386 #. type: Plain text
10387 #: build/C/man2/sigreturn.2:123
10388 msgid ""
10389 "On some other UNIX systems, the operation of the signal trampoline differs a "
10390 "little.  In particular, on some systems, upon transitioning back to user "
10391 "mode, the kernel passes control to the trampoline (rather than the signal "
10392 "handler), and the trampoline code calls the signal handler (and then calls "
10393 "B<sigreturn>()  once the handler returns)."
10394 msgstr ""
10395 "他のいくつかの UNIX システムでは、 signal trampoline の扱いは少し異なる。 特"
10396 "に、 いくつかのシステムでは、 ユーザーモードに戻る際に、 カーネルは制御を (シ"
10397 "グナルハンドラーではなく) trampoline に渡し、 trampoline コードがシグナルハン"
10398 "ドラーを呼び出す (その後ハンドラーが返ると B<sigreturn>() を呼び出す)。"
10399
10400 #. type: Plain text
10401 #: build/C/man2/sigreturn.2:130
10402 msgid ""
10403 "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), "
10404 "B<getcontext>(3), B<signal>(7)"
10405 msgstr ""
10406 "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), "
10407 "B<getcontext>(3), B<signal>(7)"
10408
10409 #. type: TH
10410 #: build/C/man3/sigset.3:26
10411 #, no-wrap
10412 msgid "SIGSET"
10413 msgstr "SIGSET"
10414
10415 #. type: Plain text
10416 #: build/C/man3/sigset.3:29
10417 msgid "sigset, sighold, sigrelse, sigignore - System V signal API"
10418 msgstr "sigset, sighold, sigrelse, sigignore - System V 版シグナル API"
10419
10420 #. type: Plain text
10421 #: build/C/man3/sigset.3:35
10422 msgid "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
10423 msgstr "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
10424
10425 #. type: Plain text
10426 #: build/C/man3/sigset.3:37
10427 msgid "B<int sighold(int >I<sig>B<);>"
10428 msgstr "B<int sighold(int >I<sig>B<);>"
10429
10430 #. type: Plain text
10431 #: build/C/man3/sigset.3:39
10432 msgid "B<int sigrelse(int >I<sig>B<);>"
10433 msgstr "B<int sigrelse(int >I<sig>B<);>"
10434
10435 #. type: Plain text
10436 #: build/C/man3/sigset.3:41
10437 msgid "B<int sigignore(int >I<sig>B<);>"
10438 msgstr "B<int sigignore(int >I<sig>B<);>"
10439
10440 #. type: Plain text
10441 #: build/C/man3/sigset.3:52
10442 msgid "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
10443 msgstr "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
10444
10445 #. type: Plain text
10446 #: build/C/man3/sigset.3:56
10447 msgid ""
10448 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
10449 msgstr ""
10450 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
10451
10452 #. type: Plain text
10453 #: build/C/man3/sigset.3:65
10454 msgid ""
10455 "These functions are provided in glibc as a compatibility interface for "
10456 "programs that make use of the historical System V signal API.  This API is "
10457 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
10458 "B<sigprocmask>(2), etc.)"
10459 msgstr ""
10460 "これらの関数は、昔ながらの System V 版シグナル API を使用しているプログラム "
10461 "に対して互換性のあるインターフェースを glibc で提供するものである。 この API "
10462 "は過去のものであり、新しいアプリケーションでは POSIX シグナル API "
10463 "(B<sigaction>(2), B<sigprocmask>(2)  など) を使用すべきである。"
10464
10465 #. type: Plain text
10466 #: build/C/man3/sigset.3:74
10467 msgid ""
10468 "The B<sigset>()  function modifies the disposition of the signal I<sig>.  "
10469 "The I<disp> argument can be the address of a signal handler function, or one "
10470 "of the following constants:"
10471 msgstr ""
10472 "関数 B<sigset>()  はシグナル I<sig> のシグナルハンドラーの動作を変更する。 "
10473 "I<disp> 引き数には、シグナルハンドラー関数のアドレスか、 以下の定数のいずれか"
10474 "一つを指定できる。"
10475
10476 #. type: TP
10477 #: build/C/man3/sigset.3:74
10478 #, no-wrap
10479 msgid "B<SIG_DFL>"
10480 msgstr "B<SIG_DFL>"
10481
10482 #. type: Plain text
10483 #: build/C/man3/sigset.3:79
10484 msgid "Reset the disposition of I<sig> to the default."
10485 msgstr "I<sig> の動作をデフォルトにリセットする。"
10486
10487 #. type: TP
10488 #: build/C/man3/sigset.3:79
10489 #, no-wrap
10490 msgid "B<SIG_IGN>"
10491 msgstr "B<SIG_IGN>"
10492
10493 #. type: Plain text
10494 #: build/C/man3/sigset.3:83
10495 msgid "Ignore I<sig>."
10496 msgstr "I<sig> を無視する。"
10497
10498 #. type: TP
10499 #: build/C/man3/sigset.3:83
10500 #, no-wrap
10501 msgid "B<SIG_HOLD>"
10502 msgstr "B<SIG_HOLD>"
10503
10504 #. type: Plain text
10505 #: build/C/man3/sigset.3:90
10506 msgid ""
10507 "Add I<sig> to the process's signal mask, but leave the disposition of I<sig> "
10508 "unchanged."
10509 msgstr ""
10510 "そのプロセスのシグナルマスクに I<sig> を追加するが、 I<sig> の動作は変更しな"
10511 "い。"
10512
10513 #. type: Plain text
10514 #: build/C/man3/sigset.3:96
10515 msgid ""
10516 "If I<disp> specifies the address of a signal handler, then I<sig> is added "
10517 "to the process's signal mask during execution of the handler."
10518 msgstr ""
10519 "I<disp> にシグナルハンドラーのアドレスが指定された場合、 シグナルハンドラーの"
10520 "実行中は、そのプロセスのシグナルマスクに I<sig> が追加される。"
10521
10522 #. type: Plain text
10523 #: build/C/man3/sigset.3:104
10524 msgid ""
10525 "If I<disp> was specified as a value other than B<SIG_HOLD>, then I<sig> is "
10526 "removed from the process's signal mask."
10527 msgstr ""
10528 "I<disp> に B<SIG_HOLD> 以外の値が指定された場合、 そのプロセスのシグナルマス"
10529 "クから I<sig> が削除される。"
10530
10531 #. type: Plain text
10532 #: build/C/man3/sigset.3:110 build/C/man3/sigvec.3:87
10533 msgid "The dispositions for B<SIGKILL> and B<SIGSTOP> cannot be changed."
10534 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> に対する動作は変更できない。"
10535
10536 #. type: Plain text
10537 #: build/C/man3/sigset.3:116
10538 msgid ""
10539 "The B<sighold>()  function adds I<sig> to the calling process's signal mask."
10540 msgstr ""
10541 "関数 B<sighold>()  は、呼び出し元プロセスのシグナルマスクに I<sig> を追加す"
10542 "る。"
10543
10544 #. type: Plain text
10545 #: build/C/man3/sigset.3:122
10546 msgid ""
10547 "The B<sigrelse>()  function removes I<sig> from the calling process's signal "
10548 "mask."
10549 msgstr ""
10550 "関数 B<sigrelse>()  は、呼び出し元プロセスのシグナルマスクから I<sig> を削除"
10551 "する。"
10552
10553 #. type: Plain text
10554 #: build/C/man3/sigset.3:129
10555 msgid ""
10556 "The B<sigignore>()  function sets the disposition of I<sig> to B<SIG_IGN>."
10557 msgstr "関数 B<sigignore>()  は、 I<sig> の動作を B<SIG_IGN> に設定する。"
10558
10559 #. type: Plain text
10560 #: build/C/man3/sigset.3:145
10561 msgid ""
10562 "On success, B<sigset>()  returns B<SIG_HOLD> if I<sig> was blocked before "
10563 "the call, or the signal's previous disposition if it was not blocked before "
10564 "the call.  On error, B<sigset>()  returns -1, with I<errno> set to indicate "
10565 "the error.  (But see BUGS below.)"
10566 msgstr ""
10567 "B<sigset>()  は成功すると、 呼び出し前に I<sig> がブロックされていた場合には "
10568 "B<SIG_HOLD> を返し、 ブロックされていなかった場合には 変更前のそのシグナルの"
10569 "動作を返す。 エラーの場合、 B<sigset>()  は -1 を返し、 I<errno> にエラーを示"
10570 "す値をセットする。 但し、以下の「バグ」の節も参照のこと。"
10571
10572 #. type: Plain text
10573 #: build/C/man3/sigset.3:154
10574 msgid ""
10575 "The B<sighold>(), B<sigrelse>(), and B<sigignore>()  functions return 0 on "
10576 "success; on error, these functions return -1 and set I<errno> to indicate "
10577 "the error."
10578 msgstr ""
10579 "関数 B<sighold>(), B<sigrelse>(), B<sigignore>()  は成功すると 0 を返す。エ"
10580 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値をセットする。"
10581
10582 #. type: Plain text
10583 #: build/C/man3/sigset.3:161
10584 msgid ""
10585 "For B<sigset>()  see the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
10586 msgstr ""
10587 "B<sigset>()  に関しては、 B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」"
10588 "の節を参照。"
10589
10590 #. type: Plain text
10591 #: build/C/man3/sigset.3:168
10592 msgid ""
10593 "For B<sighold>()  and B<sigrelse>()  see the ERRORS under B<sigprocmask>(2)."
10594 msgstr ""
10595 "B<sighold>()  と B<sigrelse>()  に関しては、 B<sigprocmask>(2)  の「エラー」"
10596 "の節を参照。"
10597
10598 #. type: Plain text
10599 #: build/C/man3/sigset.3:173
10600 msgid "For B<sigignore>(), see the errors under B<sigaction>(2)."
10601 msgstr "B<sigignore>()  に関しては、 B<sigaction>(2)  の「エラー」の節を参照。"
10602
10603 #. type: Plain text
10604 #: build/C/man3/sigset.3:190
10605 msgid ""
10606 "SVr4, POSIX.1-2001.  These functions are obsolete: do not use them in new "
10607 "programs.  POSIX.1-2008 marks B<sighold>(), B<sigignore>(), B<sigpause>(), "
10608 "B<sigrelse>(), and B<sigset>()  as obsolete, recommending the use of "
10609 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), and "
10610 "B<sigsuspend>(2)  instead."
10611 msgstr ""
10612 "SVr4, POSIX.1-2001.  これらの関数は廃止予定である。新しいプログラムでは使用し"
10613 "ないこと。 POSIX.1-2008 は、 B<sighold>(), B<sigignore>(), B<sigpause>(), "
10614 "B<sigrelse>(), B<sigset>()  を廃止予定としている。 代わりに、 "
10615 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), B<sigsuspend>(2)  "
10616 "の使用が推奨されている。"
10617
10618 #. type: Plain text
10619 #: build/C/man3/sigset.3:192
10620 msgid "These functions appeared in glibc version 2.1."
10621 msgstr "これらの関数は glibc 2.1 で登場した。"
10622
10623 #. type: Plain text
10624 #: build/C/man3/sigset.3:198
10625 msgid ""
10626 "The I<sighandler_t> type is a GNU extension; it is used on this page only to "
10627 "make the B<sigset>()  prototype more easily readable."
10628 msgstr ""
10629 "I<sighandler_t> 型は GNU による拡張であり、この man page で B<sigset>()  のプ"
10630 "ロトタイプをより読みやすくするために使われているだけである。"
10631
10632 #. type: Plain text
10633 #: build/C/man3/sigset.3:206
10634 msgid ""
10635 "The B<sigset>()  function provides reliable signal handling semantics (as "
10636 "when calling B<sigaction>(2)  with I<sa_mask> equal to 0)."
10637 msgstr ""
10638 "関数 B<sigset>()  は信頼性のあるシグナル処理機構を提供する (I<sa_mask> を 0 "
10639 "で B<sigaction>(2)  を呼び出したときと同様)。"
10640
10641 #. type: Plain text
10642 #: build/C/man3/sigset.3:224
10643 msgid ""
10644 "On System V, the B<signal>()  function provides unreliable semantics (as "
10645 "when calling B<sigaction>(2)  with I<sa_mask> equal to I<SA_RESETHAND | "
10646 "SA_NODEFER>).  On BSD, B<signal>()  provides reliable semantics.  "
10647 "POSIX.1-2001 leaves these aspects of B<signal>()  unspecified.  See "
10648 "B<signal>(2)  for further details."
10649 msgstr ""
10650 "System V では、関数 B<signal>()  が提供する処理機構は信頼性のないものである "
10651 "(I<sa_mask> を I<SA_RESETHAND | SA_NODEFER> として B<sigaction>(2)  を呼び出"
10652 "したときと同様)。 BSD では、 B<signal>()  は信頼性のある処理機構を提供する。 "
10653 "POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままとなっている。 さら"
10654 "なる詳細については B<signal>(2)  を参照。"
10655
10656 #. type: Plain text
10657 #: build/C/man3/sigset.3:232 build/C/man3/sigvec.3:272
10658 msgid ""
10659 "In order to wait for a signal, BSD and System V both provided a function "
10660 "named B<sigpause>(3), but this function has a different argument on the two "
10661 "systems.  See B<sigpause>(3)  for details."
10662 msgstr ""
10663 "BSD と System V のどちらのシステムでも シグナルを待つために、 "
10664 "B<sigpause>(3)  という名前の関数が提供されているが、 この関数の引き数は両方の"
10665 "システムで異なる。 詳細は B<sigpause>(3)  を参照。"
10666
10667 #. type: Plain text
10668 #: build/C/man3/sigset.3:241
10669 msgid ""
10670 "In versions of glibc before 2.2, B<sigset>()  did not unblock I<sig> if "
10671 "I<disp> was specified as a value other than B<SIG_HOLD>."
10672 msgstr ""
10673 "2.2 より前のバージョンの glibc では、 I<disp> に B<SIG_HOLD> 以外の値が指定さ"
10674 "れた場合、 I<sig> のブロック解除を行っていなかった。"
10675
10676 #.  See http://sourceware.org/bugzilla/show_bug.cgi?id=1951
10677 #. type: Plain text
10678 #: build/C/man3/sigset.3:266
10679 msgid ""
10680 "In versions of glibc before 2.5, B<sigset>()  does not correctly return the "
10681 "previous disposition of the signal in two cases.  First, if I<disp> is "
10682 "specified as B<SIG_HOLD>, then a successful B<sigset>()  always returns "
10683 "B<SIG_HOLD>.  Instead, it should return the previous disposition of the "
10684 "signal (unless the signal was blocked, in which case B<SIG_HOLD> should be "
10685 "returned).  Second, if the signal is currently blocked, then the return "
10686 "value of a successful B<sigset>()  should be B<SIG_HOLD>.  Instead, the "
10687 "previous disposition of the signal is returned.  These problems have been "
10688 "fixed since glibc 2.5."
10689 msgstr ""
10690 "2.3.5 以前の全てのバージョンの glibc では、 B<sigset>()  が変更前のシグナルの"
10691 "動作を正しく返さない場合が 2つある。 一つめは、 I<disp> に B<SIG_HOLD> が指定"
10692 "されると、成功した場合 B<sigset>()  は常に B<SIG_HOLD> を返すことである。 正"
10693 "しくは、(シグナルがブロックされていなかった場合には)  変更前のシグナルの動作"
10694 "を返すべきである (シグナルがブロックされていた場合には、 B<SIG_HOLD> が返され"
10695 "る)。 もう一つは、シグナルが現在ブロックされている場合には、 成功した場合の "
10696 "B<sigset>()  の返り値は B<SIG_HOLD> になるべきであるが、実際には 変更前のシグ"
10697 "ナルの動作が返されることである。 これらの問題は glibc 2.5 以降で修正されてい"
10698 "る。"
10699
10700 #. type: Plain text
10701 #: build/C/man3/sigset.3:276
10702 msgid ""
10703 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10704 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
10705 msgstr ""
10706 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10707 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
10708
10709 #. type: TH
10710 #: build/C/man3/sigsetops.3:31
10711 #, no-wrap
10712 msgid "SIGSETOPS"
10713 msgstr "SIGSETOPS"
10714
10715 #. type: TH
10716 #: build/C/man3/sigsetops.3:31
10717 #, no-wrap
10718 msgid "2014-04-14"
10719 msgstr "2014-04-14"
10720
10721 #. type: Plain text
10722 #: build/C/man3/sigsetops.3:35
10723 msgid ""
10724 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX signal "
10725 "set operations"
10726 msgstr ""
10727 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX シグナル集"
10728 "合の操作"
10729
10730 #. type: Plain text
10731 #: build/C/man3/sigsetops.3:39
10732 msgid "B<int sigemptyset(sigset_t *>I<set>B<);>"
10733 msgstr "B<int sigemptyset(sigset_t *>I<set>B<);>"
10734
10735 #. type: Plain text
10736 #: build/C/man3/sigsetops.3:41
10737 msgid "B<int sigfillset(sigset_t *>I<set>B<);>"
10738 msgstr "B<int sigfillset(sigset_t *>I<set>B<);>"
10739
10740 #. type: Plain text
10741 #: build/C/man3/sigsetops.3:43
10742 msgid "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10743 msgstr "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10744
10745 #. type: Plain text
10746 #: build/C/man3/sigsetops.3:45
10747 msgid "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10748 msgstr "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10749
10750 #. type: Plain text
10751 #: build/C/man3/sigsetops.3:47
10752 msgid "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
10753 msgstr "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
10754
10755 #. type: Plain text
10756 #: build/C/man3/sigsetops.3:59
10757 msgid ""
10758 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10759 "B<sigismember>():"
10760 msgstr ""
10761 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10762 "B<sigismember>():"
10763
10764 #. type: Plain text
10765 #: build/C/man3/sigsetops.3:61
10766 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10767 msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10768
10769 #. type: Plain text
10770 #: build/C/man3/sigsetops.3:65
10771 msgid "These functions allow the manipulation of POSIX signal sets."
10772 msgstr "これらの関数は POSIX シグナル集合(signal set)を操作するため使用する。"
10773
10774 #. type: Plain text
10775 #: build/C/man3/sigsetops.3:70
10776 msgid ""
10777 "B<sigemptyset>()  initializes the signal set given by I<set> to empty, with "
10778 "all signals excluded from the set."
10779 msgstr ""
10780 "B<sigemptyset>()  は I<set> で与えられたシグナル集合を空に初期化し、シグナル"
10781 "が一つも 含まれていない状態にする。"
10782
10783 #. type: Plain text
10784 #: build/C/man3/sigsetops.3:75
10785 msgid "B<sigfillset>()  initializes I<set> to full, including all signals."
10786 msgstr ""
10787 "B<sigfillset>()  は I<set> で与えられたシグナル集合が全てのシグナルを含むよう"
10788 "にする。"
10789
10790 #. type: Plain text
10791 #: build/C/man3/sigsetops.3:83
10792 msgid ""
10793 "B<sigaddset>()  and B<sigdelset>()  add and delete respectively signal "
10794 "I<signum> from I<set>."
10795 msgstr ""
10796 "B<sigaddset>()  と B<sigdelset>()  は I<set> に I<signum> シグナルをそれぞれ"
10797 "加えたり、削除したりする。"
10798
10799 #. type: Plain text
10800 #: build/C/man3/sigsetops.3:89
10801 msgid "B<sigismember>()  tests whether I<signum> is a member of I<set>."
10802 msgstr ""
10803 "B<sigismember>()  は I<signum> が I<set> に含まれているかどうかをテストする。"
10804
10805 #. type: Plain text
10806 #: build/C/man3/sigsetops.3:107
10807 msgid ""
10808 "Objects of type I<sigset_t> must be initialized by a call to either "
10809 "B<sigemptyset>()  or B<sigfillset>()  before being passed to the functions "
10810 "B<sigaddset>(), B<sigdelset>()  and B<sigismember>()  or the additional "
10811 "glibc functions described below (B<sigisemptyset>(), B<sigandset>(), and "
10812 "B<sigorset>()).  The results are undefined if this is not done."
10813 msgstr ""
10814 "I<sigset_t> 型のオブジェクトは、関数 B<sigaddset>(), B<sigdelset>(), "
10815 "B<sigismember>()  や後述の glibc の追加関数 (B<sigisemptyset>(), "
10816 "B<sigandset>(), B<sigorset>())  に渡す前に、 B<sigemptyset>()  か "
10817 "B<sigfillset>()  を呼び出して初期化しなければならない。 初期化しなかった場合"
10818 "の結果は未定義である。"
10819
10820 #. type: Plain text
10821 #: build/C/man3/sigsetops.3:114
10822 msgid ""
10823 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), and B<sigdelset>()  "
10824 "return 0 on success and -1 on error."
10825 msgstr ""
10826 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>()  は成功すれ"
10827 "ば 0 を、エラーの場合は -1 を返す。"
10828
10829 #. type: Plain text
10830 #: build/C/man3/sigsetops.3:123
10831 msgid ""
10832 "B<sigismember>()  returns 1 if I<signum> is a member of I<set>, 0 if "
10833 "I<signum> is not a member, and -1 on error."
10834 msgstr ""
10835 "B<sigismember>()  は I<signum> が I<set> のメンバの場合 1 を返し、メンバでな"
10836 "い場合 0 を返す。 エラーの場合、-1 を返す。"
10837
10838 #. type: Plain text
10839 #: build/C/man3/sigsetops.3:127
10840 msgid ""
10841 "On error, these functions set I<errno> to indicate the cause of the error."
10842 msgstr "エラーの場合、 I<errno> にエラーの原因を示す値を設定する。"
10843
10844 #. type: Plain text
10845 #: build/C/man3/sigsetops.3:132
10846 msgid "I<sig> is not a valid signal."
10847 msgstr "I<sig> が有効なシグナルではない。"
10848
10849 #. type: Plain text
10850 #: build/C/man3/sigsetops.3:145
10851 msgid ""
10852 "The B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10853 "B<sigismember>(), B<sigisemptyset>(), B<sigorset>(), and B<sigandset>()  "
10854 "functions are thread-safe."
10855 msgstr ""
10856 "関数 B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10857 "B<sigismember>(), B<sigisemptyset>(), B<sigorset>(), B<sigandset>() はスレッ"
10858 "ドセーフである。"
10859
10860 #. type: SS
10861 #: build/C/man3/sigsetops.3:148
10862 #, no-wrap
10863 msgid "Glibc notes"
10864 msgstr "glibc での注意"
10865
10866 #. type: Plain text
10867 #: build/C/man3/sigsetops.3:154
10868 msgid ""
10869 "If the B<_GNU_SOURCE> feature test macro is defined, then I<E<lt>signal."
10870 "hE<gt>> exposes three other functions for manipulating signal sets:"
10871 msgstr ""
10872 "B<_GNU_SOURCE> 機能検査マクロが定義されていると、 I<E<lt>signal.hE<gt>> でシ"
10873 "グナル集合を操作する 3 つの関数が追加で公開される。"
10874
10875 #. type: Plain text
10876 #: build/C/man3/sigsetops.3:161
10877 #, no-wrap
10878 msgid ""
10879 "B<int sigisemptyset(const sigset_t *>I<set>B<);>\n"
10880 "B<int sigorset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10881 "B<              const sigset_t *>I<right>B<);>\n"
10882 "B<int sigandset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10883 "B<              const sigset_t *>I<right>B<);>\n"
10884 msgstr ""
10885 "B<int sigisemptyset(const sigset_t *>I<set>B<);>\n"
10886 "B<int sigorset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10887 "B<              const sigset_t *>I<right>B<);>\n"
10888 "B<int sigandset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10889 "B<              const sigset_t *>I<right>B<);>\n"
10890
10891 #. type: Plain text
10892 #: build/C/man3/sigsetops.3:167
10893 msgid ""
10894 "B<sigisemptyset>()  returns 1 if I<set> contains no signals, and 0 otherwise."
10895 msgstr ""
10896 "B<sigisemptyset>() は I<set> にシグナルが一つも含まれていなければ 1 を返し、 "
10897 "それ以外は 0 を返す。"
10898
10899 #. type: Plain text
10900 #: build/C/man3/sigsetops.3:183
10901 msgid ""
10902 "B<sigorset>()  places the union of the sets I<left> and I<right> in "
10903 "I<dest>.  B<sigandset>()  places the intersection of the sets I<left> and "
10904 "I<right> in I<dest>.  Both functions return 0 on success, and -1 on failure."
10905 msgstr ""
10906 "B<sigorset>() は集合 I<left> と I<right> の和集合を I<dest> に設定する。 "
10907 "B<sigandset>() は集合 I<left> と I<right> の積集合を I<dest> に設定する。 ど"
10908 "ちらの関数も成功すると 0 を返し、失敗時には -1 を返す。"
10909
10910 #. type: Plain text
10911 #: build/C/man3/sigsetops.3:186
10912 msgid ""
10913 "These functions are nonstandard (a few other systems provide similar "
10914 "functions) and their use should be avoided in portable applications."
10915 msgstr ""
10916 "これらの関数は非標準であり、(他にも同様の関数を提供しているシステムも いくつ"
10917 "かはあるが) 移植性を考慮したアプリケーションでは使用を避けるべき である。"
10918
10919 #. type: Plain text
10920 #: build/C/man3/sigsetops.3:191
10921 msgid "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10922 msgstr "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10923
10924 #. type: TH
10925 #: build/C/man2/sigsuspend.2:29
10926 #, no-wrap
10927 msgid "SIGSUSPEND"
10928 msgstr "SIGSUSPEND"
10929
10930 #. type: Plain text
10931 #: build/C/man2/sigsuspend.2:32
10932 msgid "sigsuspend - wait for a signal"
10933 msgstr "sigsuspend - シグナルを待つ"
10934
10935 #. type: Plain text
10936 #: build/C/man2/sigsuspend.2:36
10937 msgid "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10938 msgstr "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10939
10940 #. type: Plain text
10941 #: build/C/man2/sigsuspend.2:45
10942 msgid ""
10943 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10944 "_POSIX_SOURCE"
10945 msgstr ""
10946 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10947 "_POSIX_SOURCE"
10948
10949 #. type: Plain text
10950 #: build/C/man2/sigsuspend.2:53
10951 msgid ""
10952 "B<sigsuspend>()  temporarily replaces the signal mask of the calling process "
10953 "with the mask given by I<mask> and then suspends the process until delivery "
10954 "of a signal whose action is to invoke a signal handler or to terminate a "
10955 "process."
10956 msgstr ""
10957 "B<sigsuspend>()  は、呼び出し元プロセスのシグナルマスクを I<mask> で指定され"
10958 "たマスクに一時的に置き換え、 シグナルハンドラーの起動もしくはプロセスの終了が"
10959 "アクションとして 設定されたシグナルが配送されるまで、そのプロセスを停止する。"
10960
10961 #. type: Plain text
10962 #: build/C/man2/sigsuspend.2:62
10963 msgid ""
10964 "If the signal terminates the process, then B<sigsuspend>()  does not "
10965 "return.  If the signal is caught, then B<sigsuspend>()  returns after the "
10966 "signal handler returns, and the signal mask is restored to the state before "
10967 "the call to B<sigsuspend>()."
10968 msgstr ""
10969 "シグナルがプロセスを終了させるものの場合、 B<sigsuspend>()  は返らない。シグ"
10970 "ナルが捕捉された場合、 シグナルハンドラーの処理が終わった後に "
10971 "B<sigsuspend>()  は返り、シグナルマスクは B<sigsuspend>()  が呼び出される前の"
10972 "状態に復元される。"
10973
10974 #. type: Plain text
10975 #: build/C/man2/sigsuspend.2:70
10976 msgid ""
10977 "It is not possible to block B<SIGKILL> or B<SIGSTOP>; specifying these "
10978 "signals in I<mask>, has no effect on the process's signal mask."
10979 msgstr ""
10980 "B<SIGKILL> と B<SIGSTOP> を禁止 (block) することはできない; これらのシグナル"
10981 "を I<mask> に指定しても、プロセスのシグナルマスクは影響を受けない。"
10982
10983 #. type: Plain text
10984 #: build/C/man2/sigsuspend.2:76
10985 msgid ""
10986 "B<sigsuspend>()  always returns -1, with I<errno> set to indicate the error "
10987 "(normally, B<EINTR>)."
10988 msgstr ""
10989 "B<sigsuspend>() は常に -1 を返し、 I<errno> にエラーの原因を示す値 (通常は "
10990 "B<EINTR>) を設定する。"
10991
10992 #. type: Plain text
10993 #: build/C/man2/sigsuspend.2:81
10994 msgid ""
10995 "I<mask> points to memory which is not a valid part of the process address "
10996 "space."
10997 msgstr ""
10998 "I<mask> が指しているメモリーが、プロセスのアドレス空間の有効な部分ではない。"
10999
11000 #. type: Plain text
11001 #: build/C/man2/sigsuspend.2:84
11002 msgid "The call was interrupted by a signal."
11003 msgstr "システムコールはシグナルにより割り込まれた。"
11004
11005 #. type: Plain text
11006 #: build/C/man2/sigsuspend.2:104
11007 msgid ""
11008 "Normally, B<sigsuspend>()  is used in conjunction with B<sigprocmask>(2)  in "
11009 "order to prevent delivery of a signal during the execution of a critical "
11010 "code section.  The caller first blocks the signals with B<sigprocmask>(2).  "
11011 "When the critical code has completed, the caller then waits for the signals "
11012 "by calling B<sigsuspend>()  with the signal mask that was returned by "
11013 "B<sigprocmask>(2)  (in the I<oldset> argument)."
11014 msgstr ""
11015 "B<sigsuspend>()  は、通常、クリティカルコードセクション (critical code "
11016 "section) の 実行中にシグナルが配送されるのを防止するために、 "
11017 "B<sigprocmask>(2)  と組み合わせて使用される。 まず最初に、呼び出し元は "
11018 "B<sigprocmask>(2)  を使ってシグナルを禁止する。 クリティカルコードが完了する"
11019 "と、呼び出し元は B<sigprocmask>(2)  が (I<oldset> 引き数で) 返すシグナルマス"
11020 "クを指定して B<sigsuspend>()  を呼び出すことで、クリティカルコード実行中に発"
11021 "生した シグナルを待つことができる。"
11022
11023 #. type: Plain text
11024 #: build/C/man2/sigsuspend.2:118
11025 msgid ""
11026 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
11027 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
11028 msgstr ""
11029 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
11030 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
11031
11032 #. type: TH
11033 #: build/C/man3/sigvec.3:26
11034 #, no-wrap
11035 msgid "SIGVEC"
11036 msgstr "SIGVEC"
11037
11038 #. type: Plain text
11039 #: build/C/man3/sigvec.3:29
11040 msgid "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD signal API"
11041 msgstr "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD 版シグナル API"
11042
11043 #. type: Plain text
11044 #: build/C/man3/sigvec.3:33
11045 msgid ""
11046 "B<int sigvec(int >I<sig>B<, const struct sigvec *>I<vec>B<, struct sigvec "
11047 "*>I<ovec>B<);>"
11048 msgstr ""
11049 "B<int sigvec(int >I<sig>B<, const struct sigvec *>I<vec>B<, struct sigvec "
11050 "*>I<ovec>B<);>"
11051
11052 #. type: Plain text
11053 #: build/C/man3/sigvec.3:35
11054 msgid "B<int sigmask(int >I<signum>B<);>"
11055 msgstr "B<int sigmask(int >I<signum>B<);>"
11056
11057 #. type: Plain text
11058 #: build/C/man3/sigvec.3:37
11059 msgid "B<int sigblock(int >I<mask>B<);>"
11060 msgstr "B<int sigblock(int >I<mask>B<);>"
11061
11062 #. type: Plain text
11063 #: build/C/man3/sigvec.3:39
11064 msgid "B<int sigsetmask(int >I<mask>B<);>"
11065 msgstr "B<int sigsetmask(int >I<mask>B<);>"
11066
11067 #. type: Plain text
11068 #: build/C/man3/sigvec.3:41
11069 msgid "B<int siggetmask(void);>"
11070 msgstr "B<int siggetmask(void);>"
11071
11072 #. type: Plain text
11073 #: build/C/man3/sigvec.3:49
11074 msgid "All functions shown above: _BSD_SOURCE"
11075 msgstr "上記の全ての関数: _BSD_SOURCE"
11076
11077 #. type: Plain text
11078 #: build/C/man3/sigvec.3:56
11079 msgid ""
11080 "These functions are provided in glibc as a compatibility interface for "
11081 "programs that make use of the historical BSD signal API.  This API is "
11082 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
11083 "B<sigprocmask>(2), etc.)."
11084 msgstr ""
11085 "これらの関数は、昔ながらの BSD 版シグナル API を使用しているプログラム に対し"
11086 "て互換性のあるインターフェースを glibc で提供するものである。 この API は過去"
11087 "のものであり、新しいアプリケーションでは POSIX シグナル API "
11088 "(B<sigaction>(2), B<sigprocmask>(2)  など) を使用すべきである。"
11089
11090 #. type: Plain text
11091 #: build/C/man3/sigvec.3:81
11092 msgid ""
11093 "The B<sigvec>()  function sets and/or gets the disposition of the signal "
11094 "I<sig> (like the POSIX B<sigaction>(2)).  If I<vec> is not NULL, it points "
11095 "to a I<sigvec> structure that defines the new disposition for I<sig>.  If "
11096 "I<ovec> is not NULL, it points to a I<sigvec> structure that is used to "
11097 "return the previous disposition of I<sig>.  To obtain the current "
11098 "disposition of I<sig> without changing it, specify NULL for I<vec>, and a "
11099 "non-null pointer for I<ovec>."
11100 msgstr ""
11101 "関数 B<sigvec>()  は、(POSIX の B<sigaction>(2)  と同様に) シグナル I<sig> の"
11102 "動作の設定・取得を行う。 I<vec> は、NULL 以外の場合、 I<sig> の新しい動作を定"
11103 "義した I<sigvec> 構造体へのポインターである。 I<ovec> は、NULL 以外の場合、 "
11104 "I<sig> の変更前の動作を返すために使用される I<sigvec> 構造体へのポインターで"
11105 "ある。 I<sig> の動作を変更せずに現在の動作を取得するためには、 I<vec> に "
11106 "NULL を指定し、 I<ovec> に NULL でないポインターを指定すればよい。"
11107
11108 #. type: Plain text
11109 #: build/C/man3/sigvec.3:91
11110 msgid "The I<sigvec> structure has the following form:"
11111 msgstr "I<sigvec> 構造体は以下の通りである:"
11112
11113 #. type: Plain text
11114 #: build/C/man3/sigvec.3:99
11115 #, no-wrap
11116 msgid ""
11117 "struct sigvec {\n"
11118 "    void (*sv_handler)(int); /* Signal disposition */\n"
11119 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
11120 "    int    sv_flags;         /* Flags */\n"
11121 "};\n"
11122 msgstr ""
11123 "struct sigvec {\n"
11124 "    void (*sv_handler)(int); /* Signal disposition */\n"
11125 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
11126 "    int    sv_flags;         /* Flags */\n"
11127 "};\n"
11128
11129 #. type: Plain text
11130 #: build/C/man3/sigvec.3:110
11131 msgid ""
11132 "The I<sv_handler> field specifies the disposition of the signal, and is "
11133 "either: the address of a signal handler function; B<SIG_DFL>, meaning the "
11134 "default disposition applies for the signal; or B<SIG_IGN>, meaning that the "
11135 "signal is ignored."
11136 msgstr ""
11137 "I<sv_handler> フィールドはシグナルの動作を指定するもので、 シグナルハンドラー"
11138 "関数のアドレスか、 B<SIG_DFL> と B<SIG_IGN> のいずれかを指定できる。 "
11139 "B<SIG_DFL> はシグナルに適用されるデフォルトの動作を意味し、 B<SIG_IGN> はシグ"
11140 "ナルを無視することを意味する。"
11141
11142 #. type: Plain text
11143 #: build/C/man3/sigvec.3:124
11144 msgid ""
11145 "If I<sv_handler> specifies the address of a signal handler, then I<sv_mask> "
11146 "specifies a mask of signals that are to be blocked while the handler is "
11147 "executing.  In addition, the signal for which the handler is invoked is also "
11148 "blocked.  Attempts to block B<SIGKILL> or B<SIGSTOP> are silently ignored."
11149 msgstr ""
11150 "I<sv_handler> にシグナルハンドラーのアドレスを指定した場合、 I<sv_mask> はハ"
11151 "ンドラーが実行中にブロックされるべきシグナルのマスクを指定する。 また、ハンド"
11152 "ラーを起動したシグナル自身はブロックされる。 B<SIGKILL> か B<SIGSTOP> をブ"
11153 "ロックしようとした場合には、黙って無視される。"
11154
11155 #. type: Plain text
11156 #: build/C/man3/sigvec.3:131
11157 msgid ""
11158 "If I<sv_handler> specifies the address of a signal handler, then the "
11159 "I<sv_flags> field specifies flags controlling what happens when the handler "
11160 "is called.  This field may contain zero or more of the following flags:"
11161 msgstr ""
11162 "I<sv_handler> にシグナルハンドラーのアドレスを指定した場合、 I<sv_flags> "
11163 "フィールドはハンドラーが呼ばれた際の挙動を制御するフラグを指定する。 この"
11164 "フィールドには、0 か、以下のフラグを 1個以上指定できる:"
11165
11166 #. type: TP
11167 #: build/C/man3/sigvec.3:131
11168 #, no-wrap
11169 msgid "B<SV_INTERRUPT>"
11170 msgstr "B<SV_INTERRUPT>"
11171
11172 #. type: Plain text
11173 #: build/C/man3/sigvec.3:139
11174 msgid ""
11175 "If the signal handler interrupts a blocking system call, then upon return "
11176 "from the handler the system call will not be restarted: instead it will fail "
11177 "with the error B<EINTR>.  If this flag is not specified, then system calls "
11178 "are restarted by default."
11179 msgstr ""
11180 "シグナルハンドラーが停止中のシステムコールを中断した場合、 ハンドラーから復帰"
11181 "しても、システムコールは再開されず、 エラー B<EINTR> で失敗する。 このフラグ"
11182 "を指定しなかった場合、システムコールは デフォルトで再開される。"
11183
11184 #. type: TP
11185 #: build/C/man3/sigvec.3:139
11186 #, no-wrap
11187 msgid "B<SV_RESETHAND>"
11188 msgstr "B<SV_RESETHAND>"
11189
11190 #. type: Plain text
11191 #: build/C/man3/sigvec.3:148
11192 msgid ""
11193 "Reset the disposition of the signal to the default before calling the signal "
11194 "handler.  If this flag is not specified, then the handler remains "
11195 "established until explicitly removed by a later call to B<sigvec>()  or "
11196 "until the process performs an B<execve>(2)."
11197 msgstr ""
11198 "シグナルハンドラーを呼び出す前にシグナルの動作を デフォルトにリセットする。 "
11199 "このフラグを指定しなかった場合、もう一度 B<sigvec>()  を呼び出して明示的に削"
11200 "除されるか、プロセスが B<execve>(2)  を実行するまで、ハンドラーは設定されたま"
11201 "まとなる。"
11202
11203 #. type: TP
11204 #: build/C/man3/sigvec.3:148
11205 #, no-wrap
11206 msgid "B<SV_ONSTACK>"
11207 msgstr "B<SV_ONSTACK>"
11208
11209 #. type: Plain text
11210 #: build/C/man3/sigvec.3:155
11211 msgid ""
11212 "Handle the signal on the alternate signal stack (historically established "
11213 "under BSD using the obsolete B<sigstack>()  function; the POSIX replacement "
11214 "is B<sigaltstack>(2))."
11215 msgstr ""
11216 "代替シグナルスタック上でシグナルハンドラーを実行する (歴史的に、BSD では代替"
11217 "シグナルスタックは廃止された関数 B<sigstack>()  を使って設定する。POSIX で"
11218 "は、代わりに B<sigaltstack>(2)  を使用する)。"
11219
11220 #. type: Plain text
11221 #: build/C/man3/sigvec.3:165
11222 msgid ""
11223 "The B<sigmask>()  macro constructs and returns a \"signal mask\" for "
11224 "I<signum>.  For example, we can initialize the I<vec.sv_mask> field given to "
11225 "B<sigvec>()  using code such as the following:"
11226 msgstr ""
11227 "マクロ B<sigmask>()  は I<signum> に対する「シグナルマスク」を構成して返す。 "
11228 "例えば、以下のようなコードを使うと、 B<sigvec>()  に渡す I<vec.sv_mask> を初"
11229 "期化できる。"
11230
11231 #. type: Plain text
11232 #: build/C/man3/sigvec.3:170
11233 #, no-wrap
11234 msgid ""
11235 "    vec.sv_mask = sigmask(SIGQUIT) | sigmask(SIGABRT);\n"
11236 "                /* Block SIGQUIT and SIGABRT during\n"
11237 "                   handler execution */\n"
11238 msgstr ""
11239 "    vec.sv_mask = sigmask(SIGQUIT) | sigmask(SIGABRT);\n"
11240 "                /* Block SIGQUIT and SIGABRT during\n"
11241 "                   handler execution */\n"
11242
11243 #. type: Plain text
11244 #: build/C/man3/sigvec.3:185
11245 msgid ""
11246 "The B<sigblock>()  function adds the signals in I<mask> to the process's "
11247 "signal mask (like POSIX I<sigprocmask(SIG_BLOCK)>), and returns the "
11248 "process's previous signal mask.  Attempts to block B<SIGKILL> or B<SIGSTOP> "
11249 "are silently ignored."
11250 msgstr ""
11251 "B<sigblock>()  関数は、 I<mask> にあるシグナルをプロセスのシグナルマスクに追"
11252 "加し (POSIX の I<sigprocmask(SIG_BLOCK)> と同様)、変更前のプロセスのシグナル"
11253 "マスクを返す。 B<SIGKILL> や B<SIGSTOP> をブロックしようとした場合には、黙っ"
11254 "て無視される。"
11255
11256 #. type: Plain text
11257 #: build/C/man3/sigvec.3:193
11258 msgid ""
11259 "The B<sigsetmask>()  function sets the process's signal mask to the value "
11260 "given in I<mask> (like POSIX I<sigprocmask(SIG_SETMASK)>), and returns the "
11261 "process's previous signal mask."
11262 msgstr ""
11263 "B<sigsetmask>()  関数はプロセスのシグナルマスクを I<mask> で指定された値に設"
11264 "定し (POSIX の I<sigprocmask(SIG_SETMASK)> と同様)、変更前のプロセスのシグナ"
11265 "ルマスクを返す。"
11266
11267 #. type: Plain text
11268 #: build/C/man3/sigvec.3:199
11269 msgid ""
11270 "The B<siggetmask>()  function returns the process's current signal mask.  "
11271 "This call is equivalent to I<sigblock(0)>."
11272 msgstr ""
11273 "B<siggetmask>()  関数はプロセスの現在のシグナルマスクを返す。この関数は "
11274 "I<sigblock(0)> と等価である。"
11275
11276 #. type: Plain text
11277 #: build/C/man3/sigvec.3:205
11278 msgid ""
11279 "The B<sigvec>()  function returns 0 on success; on error, it returns -1 and "
11280 "sets I<errno> to indicate the error."
11281 msgstr ""
11282 "B<sigvec>()  関数は成功すると 0 を返す。エラーの場合、-1 を返し、 I<errno> に"
11283 "エラーを示す値をセットする。"
11284
11285 #. type: Plain text
11286 #: build/C/man3/sigvec.3:211
11287 msgid ""
11288 "The B<sigblock>()  and B<sigsetmask>()  functions return the previous signal "
11289 "mask."
11290 msgstr "B<sigblock>()  と B<sigsetmask>()  は変更前のシグナルマスクを返す。"
11291
11292 #. type: Plain text
11293 #: build/C/man3/sigvec.3:216
11294 msgid "The B<sigmask>()  macro returns the signal mask for I<signum>."
11295 msgstr "B<sigmask>() マクロは I<signum> のシグナルマスクを返す。"
11296
11297 #. type: Plain text
11298 #: build/C/man3/sigvec.3:221
11299 msgid "See the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
11300 msgstr "B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」の節を参照。"
11301
11302 #. type: Plain text
11303 #: build/C/man3/sigvec.3:230
11304 msgid ""
11305 "The B<sigvec>(), B<sigblock>(), B<sigsetmask>(), and B<siggetmask>()  "
11306 "functions are thread-safe."
11307 msgstr ""
11308 "関数 B<sigvec>(), B<sigblock>(), B<sigsetmask>(), B<siggetmask>() はスレッド"
11309 "セーフである。"
11310
11311 #. type: Plain text
11312 #: build/C/man3/sigvec.3:234
11313 msgid "The B<sigmask>()  macro is thread-safe."
11314 msgstr "B<sigmask>() マクロはスレッドセーフである。"
11315
11316 #. type: Plain text
11317 #: build/C/man3/sigvec.3:241
11318 msgid ""
11319 "Starting with version 2.21, the GNU C library no longer exports the "
11320 "B<sigvec>()  function as part of the ABI.  (To ensure backward "
11321 "compatibility, the glibc symbol versioning scheme continues to export the "
11322 "interface to binaries linked against older versions of the library.)"
11323 msgstr ""
11324 "バージョン 2.21 以降では、 GNU C ライブラリはもはや B<sigvec>() 関数を ABI の"
11325 "一部として公開しなくなった。 (後方互換性を保証するために、glibc のシンボルの"
11326 "バージョン付け機構により、 古いバージョンのライブラリとリンクされたバイナリに"
11327 "対してはこのインターフェースが引き続き公開されている。)"
11328
11329 #. type: Plain text
11330 #: build/C/man3/sigvec.3:247
11331 msgid ""
11332 "All of these functions were in 4.3BSD, except B<siggetmask>(), whose origin "
11333 "is unclear.  These functions are obsolete: do not use them in new programs."
11334 msgstr ""
11335 "これらの関数のうち B<siggetmask>()  以外の全ては 4.3BSD にあった。 "
11336 "B<siggetmask>()  の出自ははっきりしない。 これらの関数は廃止予定であり、新し"
11337 "いプログラムでは使用しないこと。"
11338
11339 #. type: Plain text
11340 #: build/C/man3/sigvec.3:264
11341 msgid ""
11342 "On 4.3BSD, the B<signal>()  function provided reliable semantics (as when "
11343 "calling B<sigvec>()  with I<vec.sv_mask> equal to 0).  On System V, "
11344 "B<signal>()  provides unreliable semantics.  POSIX.1-2001 leaves these "
11345 "aspects of B<signal>()  unspecified.  See B<signal>(2)  for further details."
11346 msgstr ""
11347 "4.3BSD では、信頼性のあるシグナル処理機構を提供する (I<vec.sv_mask> を 0 で "
11348 "B<sigvec>()  を呼び出したときと同様)。 System V が提供する処理機構は信頼性の"
11349 "ないものである。 POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままと"
11350 "なっている。 さらなる詳細については B<signal>(2)  を参照。"
11351
11352 #. type: Plain text
11353 #: build/C/man3/sigvec.3:282
11354 msgid ""
11355 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
11356 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
11357 msgstr ""
11358 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
11359 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
11360
11361 #. type: TH
11362 #: build/C/man3/sigwait.3:26
11363 #, no-wrap
11364 msgid "SIGWAIT"
11365 msgstr "SIGWAIT"
11366
11367 #. type: Plain text
11368 #: build/C/man3/sigwait.3:29
11369 msgid "sigwait - wait for a signal"
11370 msgstr "sigwait - シグナルを待つ"
11371
11372 #. type: Plain text
11373 #: build/C/man3/sigwait.3:34
11374 #, no-wrap
11375 msgid "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
11376 msgstr "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
11377
11378 #. type: Plain text
11379 #: build/C/man3/sigwait.3:44
11380 msgid ""
11381 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
11382 msgstr ""
11383 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
11384
11385 #. type: Plain text
11386 #: build/C/man3/sigwait.3:56
11387 msgid ""
11388 "The B<sigwait>()  function suspends execution of the calling thread until "
11389 "one of the signals specified in the signal set I<set> becomes pending.  The "
11390 "function accepts the signal (removes it from the pending list of signals), "
11391 "and returns the signal number in I<sig>."
11392 msgstr ""
11393 "B<sigwait>()  関数は、シグナル集合 I<set> で指定されたシグナルの一つが処理待"
11394 "ち (pending) になるまで、 呼び出したスレッドの実行を中断する。 この関数はその"
11395 "シグナルを受け取り (つまり、処理待ちのシグナルのリスト からそのシグナルを削除"
11396 "し)、そのシグナル番号を I<sig> に格納して返す。"
11397
11398 #. type: Plain text
11399 #: build/C/man3/sigwait.3:62
11400 msgid ""
11401 "The operation of B<sigwait>()  is the same as B<sigwaitinfo>(2), except that:"
11402 msgstr ""
11403 "B<sigwait>()  の動作は B<sigwaitinfo>(2)  と同じだが、以下の点が異なる。"
11404
11405 #. type: Plain text
11406 #: build/C/man3/sigwait.3:67
11407 msgid ""
11408 "B<sigwait>()  returns only the signal number, rather than a I<siginfo_t> "
11409 "structure describing the signal."
11410 msgstr ""
11411 "B<sigwait>()  は、シグナルの内容を表す I<siginfo_t> 構造体を返すのではなく、"
11412 "単にシグナル番号を返す。"
11413
11414 #. type: Plain text
11415 #: build/C/man3/sigwait.3:69
11416 msgid "The return values of the two functions are different."
11417 msgstr "返り値が B<sigwaitinfo>(2)  とは異なる。"
11418
11419 #. type: Plain text
11420 #: build/C/man3/sigwait.3:74
11421 msgid ""
11422 "On success, B<sigwait>()  returns 0.  On error, it returns a positive error "
11423 "number (listed in ERRORS)."
11424 msgstr ""
11425 "成功すると、 B<sigwait>()  は 0 を返す。 エラーの場合、(「エラー」の節のリス"
11426 "トにある) 正のエラー番号を返す。"
11427
11428 #.  Does not occur for glibc.
11429 #. type: Plain text
11430 #: build/C/man3/sigwait.3:80
11431 msgid "I<set> contains an invalid signal number."
11432 msgstr "I<set> に無効なシグナル番号が入っている。"
11433
11434 #. type: Plain text
11435 #: build/C/man3/sigwait.3:85
11436 msgid "The B<sigwait>()  function is thread-safe."
11437 msgstr "B<sigwait>() 関数はスレッドセーフである。"
11438
11439 #. type: Plain text
11440 #: build/C/man3/sigwait.3:91
11441 msgid "B<sigwait>()  is implemented using B<sigtimedwait>(2)."
11442 msgstr "B<sigwait>()  は B<sigtimedwait>(2)  を使って実装されている。"
11443
11444 #. type: Plain text
11445 #: build/C/man3/sigwait.3:94
11446 msgid "See B<pthread_sigmask>(3)."
11447 msgstr "B<pthread_sigmask>(3)  を参照。"
11448
11449 #. type: Plain text
11450 #: build/C/man3/sigwait.3:102
11451 msgid ""
11452 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
11453 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
11454 msgstr ""
11455 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
11456 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
11457
11458 #. type: TH
11459 #: build/C/man2/sigwaitinfo.2:25
11460 #, no-wrap
11461 msgid "SIGWAITINFO"
11462 msgstr "SIGWAITINFO"
11463
11464 #. type: Plain text
11465 #: build/C/man2/sigwaitinfo.2:28
11466 msgid "sigwaitinfo, sigtimedwait - synchronously wait for queued signals"
11467 msgstr "sigwaitinfo, sigtimedwait - キューに入れられたシグナルを同期して待つ"
11468
11469 #. type: Plain text
11470 #: build/C/man2/sigwaitinfo.2:33
11471 #, no-wrap
11472 msgid "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
11473 msgstr "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
11474
11475 #. type: Plain text
11476 #: build/C/man2/sigwaitinfo.2:36
11477 #, no-wrap
11478 msgid ""
11479 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
11480 "B<                 const struct timespec *>I<timeout>B<);>\n"
11481 msgstr ""
11482 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
11483 "B<                 const struct timespec *>I<timeout>B<);>\n"
11484
11485 #. type: Plain text
11486 #: build/C/man2/sigwaitinfo.2:46
11487 msgid "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11488 msgstr ""
11489 "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11490
11491 #. type: Plain text
11492 #: build/C/man2/sigwaitinfo.2:56
11493 msgid ""
11494 "B<sigwaitinfo>()  suspends execution of the calling thread until one of the "
11495 "signals in I<set> is pending (If one of the signals in I<set> is already "
11496 "pending for the calling thread, B<sigwaitinfo>()  will return immediately.)"
11497 msgstr ""
11498 "B<sigwaitinfo>()  は I<set> のうちのどれかのシグナルが処理待ちになるまで、 呼"
11499 "び出しスレッドの実行を一時停止する (呼び出しスレッドに対して I<set> のうちの"
11500 "どれかのシグナルが既に待機中 (pending) である場合、 B<sigwaitinfo>()  はすぐ"
11501 "に戻る)。"
11502
11503 #. type: Plain text
11504 #: build/C/man2/sigwaitinfo.2:68
11505 msgid ""
11506 "B<sigwaitinfo>()  removes the signal from the set of pending signals and "
11507 "returns the signal number as its function result.  If the I<info> argument "
11508 "is not NULL, then the buffer that it points to is used to return a structure "
11509 "of type I<siginfo_t> (see B<sigaction>(2))  containing information about the "
11510 "signal."
11511 msgstr ""
11512 "B<sigwaitinfo>()  はそのシグナルを待機中のシグナルの集合から削除し、関数の結"
11513 "果としてシグナル番号を返す。 I<info> 引き数が NULL でない場合、配送されたシグ"
11514 "ナルの情報が入った I<siginfo_t> 型 (B<sigaction>(2)  を参照) の構造体を "
11515 "I<info> が指すバッファーに入れて返す。"
11516
11517 #. type: Plain text
11518 #: build/C/man2/sigwaitinfo.2:76
11519 msgid ""
11520 "If multiple signals in I<set> are pending for the caller, the signal that is "
11521 "retrieved by B<sigwaitinfo>()  is determined according to the usual ordering "
11522 "rules; see B<signal>(7)  for further details."
11523 msgstr ""
11524 "呼び出し元に対して I<set> の複数のシグナルが処理待ちの場合、 "
11525 "B<sigwaitinfo>() で取得するシグナルは通常の順序決定ルールに基づいて決定され"
11526 "る。 詳細は B<signal>(7) を参照のこと。"
11527
11528 #. type: Plain text
11529 #: build/C/man2/sigwaitinfo.2:88
11530 msgid ""
11531 "B<sigtimedwait>()  operates in exactly the same way as B<sigwaitinfo>()  "
11532 "except that it has an additional argument, I<timeout>, which specifies the "
11533 "interval for which the thread is suspended waiting for a signal.  (This "
11534 "interval will be rounded up to the system clock granularity, and kernel "
11535 "scheduling delays mean that the interval may overrun by a small amount.)  "
11536 "This argument is of the following type:"
11537 msgstr ""
11538 "B<sigtimedwait>() は、 B<sigwaitinfo>() と次の点を除いて全く同じように動作す"
11539 "る。この関数にはもう 1 つの引き数 I<timeout> があり、シグナル待ちでスレッドが"
11540 "一時停止する時間を指定することができる(この時間はシステムクロックの粒度に切り"
11541 "上げられ、カーネルのスケジューリング遅延により少しだけ長くなる可能性がある)。"
11542 "この引き数の型は以下のとおりである:"
11543
11544 #. type: Plain text
11545 #: build/C/man2/sigwaitinfo.2:95
11546 #, no-wrap
11547 msgid ""
11548 "struct timespec {\n"
11549 "    long    tv_sec;         /* seconds */\n"
11550 "    long    tv_nsec;        /* nanoseconds */\n"
11551 "}\n"
11552 msgstr ""
11553 "struct timespec {\n"
11554 "    long    tv_sec;         /* 秒 */\n"
11555 "    long    tv_nsec;        /* ナノ秒 */\n"
11556 "}\n"
11557
11558 #. type: Plain text
11559 #: build/C/man2/sigwaitinfo.2:105
11560 msgid ""
11561 "If both fields of this structure are specified as 0, a poll is performed: "
11562 "B<sigtimedwait>()  returns immediately, either with information about a "
11563 "signal that was pending for the caller, or with an error if none of the "
11564 "signals in I<set> was pending."
11565 msgstr ""
11566 "この構造体の 2 つのフィールドがともに 0 の場合、ポーリングが行われる: "
11567 "B<sigtimedwait>()  は、呼び出し側プロセスに対して 待機しているシグナルの情報"
11568 "を返して戻るか、 I<set> のうちのどのシグナルも待機していない場合はエラーを返"
11569 "して戻る。"
11570
11571 #. type: Plain text
11572 #: build/C/man2/sigwaitinfo.2:114
11573 msgid ""
11574 "On success, both B<sigwaitinfo>()  and B<sigtimedwait>()  return a signal "
11575 "number (i.e., a value greater than zero).  On failure both calls return -1, "
11576 "with I<errno> set to indicate the error."
11577 msgstr ""
11578 "成功した場合、 B<sigwaitinfo>()  と B<sigtimedwait>()  はシグナル番号 (すなわ"
11579 "ち 0 より大きい数) を返す。 失敗した場合、2 つの関数は -1 を返し、 I<errno> "
11580 "はエラーを表す値に設定される。"
11581
11582 #. type: Plain text
11583 #: build/C/man2/sigwaitinfo.2:123
11584 msgid ""
11585 "No signal in I<set> was became pending within the I<timeout> period "
11586 "specified to B<sigtimedwait>()."
11587 msgstr ""
11588 "I<set> のうちのどのシグナルも B<sigtimedwait>()  に指定された I<timeout> の期"
11589 "間内に処理待ちにならなかった。"
11590
11591 #. type: Plain text
11592 #: build/C/man2/sigwaitinfo.2:129
11593 msgid ""
11594 "The wait was interrupted by a signal handler; see B<signal>(7).  (This "
11595 "handler was for a signal other than one of those in I<set>.)"
11596 msgstr ""
11597 "シグナル待ちがシグナルハンドラーによって中断 (interrupt) された (このハンド"
11598 "ラーは I<set> にあるシグナル以外のものである)。 B<signal>(7)  参照。"
11599
11600 #. type: Plain text
11601 #: build/C/man2/sigwaitinfo.2:133
11602 msgid "I<timeout> was invalid."
11603 msgstr "I<timeout> が不正である。"
11604
11605 #. type: Plain text
11606 #: build/C/man2/sigwaitinfo.2:153
11607 msgid ""
11608 "In normal usage, the calling program blocks the signals in I<set> via a "
11609 "prior call to B<sigprocmask>(2)  (so that the default disposition for these "
11610 "signals does not occur if they become pending between successive calls to "
11611 "B<sigwaitinfo>()  or B<sigtimedwait>())  and does not establish handlers for "
11612 "these signals.  In a multithreaded program, the signal should be blocked in "
11613 "all threads, in order to prevent the signal being treated according to its "
11614 "default disposition in a thread other than the one calling B<sigwaitinfo>()  "
11615 "or B<sigtimedwait>())."
11616 msgstr ""
11617 "通常の使用法では、呼び出し側プロセスはこれらの関数より先に "
11618 "B<sigprocmask>(2)  の呼び出すことにより I<set> に含まれるシグナルをブロック"
11619 "し (そのためにこれらのシグナルがこの後に続く B<sigwaitinfo>()  や "
11620 "B<sigtimedwait>()  の呼び出しの間に処理待ちになった場合には、デフォルトの動作"
11621 "は行われず)、 これらのシグナルに対するハンドラーは設定しない。 マルチスレッド"
11622 "プログラムでは、 B<sigwaitinfo>()  や B<sigtimedwait>() を呼び出したスレッド"
11623 "以外のスレッドで、そのシグナルがデフォルトの動作に基いて処理されないように、"
11624 "全てのスレッドで該当シグナルをブロックすべきである。"
11625
11626 #. type: Plain text
11627 #: build/C/man2/sigwaitinfo.2:158
11628 msgid ""
11629 "The set of signals that is pending for a given thread is the union of the "
11630 "set of signals that is pending specifically for that thread and the set of "
11631 "signals that is pending for the process as a whole (see B<signal>(7))."
11632 msgstr ""
11633 "指定されたスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体宛ての"
11634 "処理待ちのシグナル集合と、プロセス全体宛ての 処理待ちのシグナル集合をあわせた"
11635 "ものである (B<signal>(7)  参照)。"
11636
11637 #. type: Plain text
11638 #: build/C/man2/sigwaitinfo.2:164
11639 msgid "Attempts to wait for B<SIGKILL> and B<SIGSTOP> are silently ignored."
11640 msgstr "B<SIGKILL> と B<SIGSTOP> を待とうとした場合、黙って無視される。"
11641
11642 #. type: Plain text
11643 #: build/C/man2/sigwaitinfo.2:173
11644 msgid ""
11645 "If multiple threads of a process are blocked waiting for the same signal(s) "
11646 "in B<sigwaitinfo>()  or B<sigtimedwait>(), then exactly one of the threads "
11647 "will actually receive the signal if it becomes pending for the process as a "
11648 "whole; which of the threads receives the signal is indeterminate."
11649 msgstr ""
11650 "一つのプロセス内の複数のスレッドが B<sigwaitinfo>()  や B<sigtimedwait>()  で"
11651 "同じシグナルを待って停止した場合、 プロセス全体宛てのシグナルが処理待ちになる"
11652 "と、複数のスレッドのうち一つだけが 実際にそのシグナルを受信することになる。 "
11653 "どのスレッドがシグナルを受信するかは決まっていない。"
11654
11655 #. type: Plain text
11656 #: build/C/man2/sigwaitinfo.2:183
11657 msgid ""
11658 "POSIX leaves the meaning of a NULL value for the I<timeout> argument of "
11659 "B<sigtimedwait>()  unspecified, permitting the possibility that this has the "
11660 "same meaning as a call to B<sigwaitinfo>(), and indeed this is what is done "
11661 "on Linux."
11662 msgstr ""
11663 "POSIX では B<sigtimedwait>()  の引き数 I<timeout> の値を NULL にした場合の意"
11664 "味を未定義としている。 B<sigwaitinfo>()  を呼び出したのと同じ意味としてもよい"
11665 "ことになっており、 実際 Linux ではこのように動作する。"
11666
11667 #. type: Plain text
11668 #: build/C/man2/sigwaitinfo.2:188
11669 msgid ""
11670 "On Linux, B<sigwaitinfo>()  is a library function implemented on top of "
11671 "B<sigtimedwait>()."
11672 msgstr ""
11673 "Linux では、 B<sigwaitinfo>()  は B<sigtimedwait>()  を用いて実装されたライブ"
11674 "ラリ関数である。"
11675
11676 #. type: Plain text
11677 #: build/C/man2/sigwaitinfo.2:201
11678 msgid ""
11679 "The raw B<sigtimedwait>()  system call has a fifth argument, I<size_t "
11680 "sigsetsize>, which specifies the size in bytes of the I<set> argument.  The "
11681 "glibc B<sigtimedwait>()  wrapper function specifies this argument as a fixed "
11682 "value (equal to I<sizeof(sigset_t)>)."
11683 msgstr ""
11684 "素の B<sigtimedwait>() システムコールは 5 番目の引き数 I<size_t sigsetsize> "
11685 "を取る。 この引き数は I<set> 引き数のバイト単位のサイズを指定する。 glibc の "
11686 "B<sigtimedwait>() のラッパー関数はこの引き数に固定値 (I<sizeof(sigset_t)> と"
11687 "同じ) を指定する。"
11688
11689 #. type: Plain text
11690 #: build/C/man2/sigwaitinfo.2:213
11691 msgid ""
11692 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
11693 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), "
11694 "B<signal>(7), B<time>(7)"
11695 msgstr ""
11696 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
11697 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), "
11698 "B<signal>(7), B<time>(7)"
11699
11700 #. type: TH
11701 #: build/C/man3/sysv_signal.3:25
11702 #, no-wrap
11703 msgid "SYSV_SIGNAL"
11704 msgstr "SYSV_SIGNAL"
11705
11706 #. type: TH
11707 #: build/C/man3/sysv_signal.3:25
11708 #, no-wrap
11709 msgid "2014-01-06"
11710 msgstr "2014-01-06"
11711
11712 #. type: Plain text
11713 #: build/C/man3/sysv_signal.3:28
11714 msgid "sysv_signal - signal handling with System V semantics"
11715 msgstr "sysv_signal - System V 方式のシグナル処理"
11716
11717 #. type: Plain text
11718 #: build/C/man3/sysv_signal.3:30
11719 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
11720 msgstr "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */"
11721
11722 #. type: Plain text
11723 #: build/C/man3/sysv_signal.3:36
11724 msgid ""
11725 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
11726 msgstr ""
11727 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
11728
11729 #. type: Plain text
11730 #: build/C/man3/sysv_signal.3:41
11731 msgid ""
11732 "The B<sysv_signal>()  function takes the same arguments, and performs the "
11733 "same task, as B<signal>(2)."
11734 msgstr ""
11735 "B<sysv_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
11736 "る。"
11737
11738 #. type: Plain text
11739 #: build/C/man3/sysv_signal.3:51
11740 msgid ""
11741 "However B<sysv_signal>()  provides the System V unreliable signal semantics, "
11742 "that is: a) the disposition of the signal is reset to the default when the "
11743 "handler is invoked; b) delivery of further instances of the signal is not "
11744 "blocked while the signal handler is executing; and c) if the handler "
11745 "interrupts (certain) blocking system calls, then the system call is not "
11746 "automatically restarted."
11747 msgstr ""
11748 "しかしながら、 B<sysv_signal>()  は System V の信頼性に欠けるシグナル処理方式"
11749 "を提供している。 信頼性に欠けるシグナル処理方式は以下の特徴を持つ。 a) ハンド"
11750 "ラーが起動されると、シグナルの処理方法 (disposition) が デフォルトにリセット"
11751 "される、 b) シグナルハンドラーの実行中は、それ以降に発生した同じシグナルの配"
11752 "送が ブロックされない、 c) ハンドラーが停止中の (blocking している) システム"
11753 "コールを中断した場合、 自動的に再開されないシステムコールがある。"
11754
11755 #. type: Plain text
11756 #: build/C/man3/sysv_signal.3:57
11757 msgid ""
11758 "The B<sysv_signal>()  function returns the previous value of the signal "
11759 "handler, or B<SIG_ERR> on error."
11760 msgstr ""
11761 "B<sysv_signal>()  関数はシグナルハンドラーの直前の値を返す。 エラーの場合、 "
11762 "B<SIG_ERR> を返す。"
11763
11764 #. type: Plain text
11765 #: build/C/man3/sysv_signal.3:65
11766 msgid "The B<sysv_signal>()  function is thread-safe."
11767 msgstr "B<sysv_signal>() 関数はスレッドセーフである。"
11768
11769 #. type: Plain text
11770 #: build/C/man3/sysv_signal.3:67
11771 msgid "This function is nonstandard."
11772 msgstr "この関数は非標準である。"
11773
11774 #. type: Plain text
11775 #: build/C/man3/sysv_signal.3:73
11776 msgid ""
11777 "Use of B<sysv_signal>()  should be avoided; use B<sigaction>(2)  instead."
11778 msgstr ""
11779 "B<sysv_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使う"
11780 "こと。"
11781
11782 #. type: Plain text
11783 #: build/C/man3/sysv_signal.3:84
11784 msgid ""
11785 "On older Linux systems, B<sysv_signal>()  and B<signal>(2)  were "
11786 "equivalent.  But on newer systems, B<signal>(2)  provides reliable signal "
11787 "semantics; see B<signal>(2)  for details."
11788 msgstr ""
11789 "以前の Linux システムでは、 B<sysv_signal>()  と B<signal>(2)  は等価であっ"
11790 "た。しかし、新しめのシステムでは、 B<signal>(2)  は信頼性のあるシグナル処理方"
11791 "式を提供している。 詳細は B<signal>(2)  を参照。"
11792
11793 #. type: Plain text
11794 #: build/C/man3/sysv_signal.3:97
11795 msgid "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
11796 msgstr "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
11797
11798 #. type: TH
11799 #: build/C/man2/timer_create.2:33
11800 #, no-wrap
11801 msgid "TIMER_CREATE"
11802 msgstr "TIMER_CREATE"
11803
11804 #. type: Plain text
11805 #: build/C/man2/timer_create.2:36
11806 msgid "timer_create - create a POSIX per-process timer"
11807 msgstr ""
11808
11809 #. type: Plain text
11810 #: build/C/man2/timer_create.2:40
11811 #, no-wrap
11812 msgid ""
11813 "B<#include E<lt>signal.hE<gt>>\n"
11814 "B<#include E<lt>time.hE<gt>>\n"
11815 msgstr ""
11816 "B<#include E<lt>signal.hE<gt>>\n"
11817 "B<#include E<lt>time.hE<gt>>\n"
11818
11819 #. type: Plain text
11820 #: build/C/man2/timer_create.2:43
11821 #, no-wrap
11822 msgid ""
11823 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
11824 "B<                 timer_t *>I<timerid>B<);>\n"
11825 msgstr ""
11826 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
11827 "B<                 timer_t *>I<timerid>B<);>\n"
11828
11829 #. type: Plain text
11830 #: build/C/man2/timer_create.2:46 build/C/man2/timer_delete.2:37
11831 #: build/C/man2/timer_getoverrun.2:37 build/C/man2/timer_settime.2:41
11832 msgid "Link with I<-lrt>."
11833 msgstr "I<-lrt> でリンクする。"
11834
11835 #. type: Plain text
11836 #: build/C/man2/timer_create.2:54
11837 msgid "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11838 msgstr "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11839
11840 #. type: Plain text
11841 #: build/C/man2/timer_create.2:62
11842 msgid ""
11843 "B<timer_create>()  creates a new per-process interval timer.  The ID of the "
11844 "new timer is returned in the buffer pointed to by I<timerid>, which must be "
11845 "a non-null pointer.  This ID is unique within the process, until the timer "
11846 "is deleted.  The new timer is initially disarmed."
11847 msgstr ""
11848
11849 #. type: Plain text
11850 #: build/C/man2/timer_create.2:67
11851 msgid ""
11852 "The I<clockid> argument specifies the clock that the new timer uses to "
11853 "measure time.  It can be specified as one of the following values:"
11854 msgstr ""
11855
11856 #. type: TP
11857 #: build/C/man2/timer_create.2:67
11858 #, no-wrap
11859 msgid "B<CLOCK_REALTIME>"
11860 msgstr "B<CLOCK_REALTIME>"
11861
11862 #. type: Plain text
11863 #: build/C/man2/timer_create.2:70
11864 msgid "A settable system-wide real-time clock."
11865 msgstr ""
11866
11867 #. type: TP
11868 #: build/C/man2/timer_create.2:70
11869 #, no-wrap
11870 msgid "B<CLOCK_MONOTONIC>"
11871 msgstr "B<CLOCK_MONOTONIC>"
11872
11873 #.  Note: the CLOCK_MONOTONIC_RAW clock added for clock_gettime()
11874 #.  in 2.6.28 is not supported for POSIX timers -- mtk, Feb 2009
11875 #. type: Plain text
11876 #: build/C/man2/timer_create.2:77
11877 msgid ""
11878 "A nonsettable monotonically increasing clock that measures time from some "
11879 "unspecified point in the past that does not change after system startup."
11880 msgstr ""
11881
11882 #. type: TP
11883 #: build/C/man2/timer_create.2:77
11884 #, no-wrap
11885 msgid "B<CLOCK_PROCESS_CPUTIME_ID> (since Linux 2.6.12)"
11886 msgstr ""
11887
11888 #. type: Plain text
11889 #: build/C/man2/timer_create.2:81
11890 msgid ""
11891 "A clock that measures (user and system) CPU time consumed by (all of the "
11892 "threads in) the calling process."
11893 msgstr ""
11894
11895 #. type: TP
11896 #: build/C/man2/timer_create.2:81
11897 #, no-wrap
11898 msgid "B<CLOCK_THREAD_CPUTIME_ID> (since Linux 2.6.12)"
11899 msgstr ""
11900
11901 #.  The CLOCK_MONOTONIC_RAW that was added in 2.6.28 can't be used
11902 #.  to create a timer -- mtk, Feb 2009
11903 #. type: Plain text
11904 #: build/C/man2/timer_create.2:87
11905 msgid ""
11906 "A clock that measures (user and system) CPU time consumed by the calling "
11907 "thread."
11908 msgstr ""
11909
11910 #. type: Plain text
11911 #: build/C/man2/timer_create.2:96
11912 msgid ""
11913 "As well as the above values, I<clockid> can be specified as the I<clockid> "
11914 "returned by a call to B<clock_getcpuclockid>(3)  or "
11915 "B<pthread_getcpuclockid>(3)."
11916 msgstr ""
11917
11918 #. type: Plain text
11919 #: build/C/man2/timer_create.2:105
11920 msgid ""
11921 "The I<sevp> argument points to a I<sigevent> structure that specifies how "
11922 "the caller should be notified when the timer expires.  For the definition "
11923 "and general details of this structure, see B<sigevent>(7)."
11924 msgstr ""
11925
11926 #. type: Plain text
11927 #: build/C/man2/timer_create.2:109
11928 msgid "The I<sevp.sigev_notify> field can have the following values:"
11929 msgstr ""
11930
11931 #. type: Plain text
11932 #: build/C/man2/timer_create.2:114
11933 msgid ""
11934 "Don't asynchronously notify when the timer expires.  Progress of the timer "
11935 "can be monitored using B<timer_gettime>(2)."
11936 msgstr ""
11937
11938 #. type: Plain text
11939 #: build/C/man2/timer_create.2:132
11940 msgid ""
11941 "Upon timer expiration, generate the signal I<sigev_signo> for the process.  "
11942 "See B<sigevent>(7)  for general details.  The I<si_code> field of the "
11943 "I<siginfo_t> structure will be set to B<SI_TIMER>.  At any point in time, at "
11944 "most one signal is queued to the process for a given timer; see "
11945 "B<timer_getoverrun>(2)  for more details."
11946 msgstr ""
11947
11948 #. type: Plain text
11949 #: build/C/man2/timer_create.2:140
11950 msgid ""
11951 "Upon timer expiration, invoke I<sigev_notify_function> as if it were the "
11952 "start function of a new thread.  See B<sigevent>(7)  for details."
11953 msgstr ""
11954
11955 #. type: Plain text
11956 #: build/C/man2/timer_create.2:154
11957 msgid ""
11958 "As for B<SIGEV_SIGNAL>, but the signal is targeted at the thread whose ID is "
11959 "given in I<sigev_notify_thread_id>, which must be a thread in the same "
11960 "process as the caller.  The I<sigev_notify_thread_id> field specifies a "
11961 "kernel thread ID, that is, the value returned by B<clone>(2)  or "
11962 "B<gettid>(2).  This flag is intended only for use by threading libraries."
11963 msgstr ""
11964
11965 #. type: Plain text
11966 #: build/C/man2/timer_create.2:169
11967 msgid ""
11968 "Specifying I<sevp> as NULL is equivalent to specifying a pointer to a "
11969 "I<sigevent> structure in which I<sigev_notify> is B<SIGEV_SIGNAL>, "
11970 "I<sigev_signo> is B<SIGALRM>, and I<sigev_value.sival_int> is the timer ID."
11971 msgstr ""
11972
11973 #. type: Plain text
11974 #: build/C/man2/timer_create.2:177
11975 msgid ""
11976 "On success, B<timer_create>()  returns 0, and the ID of the new timer is "
11977 "placed in I<*timerid>.  On failure, -1 is returned, and I<errno> is set to "
11978 "indicate the error."
11979 msgstr ""
11980
11981 #. type: Plain text
11982 #: build/C/man2/timer_create.2:181
11983 msgid "Temporary error during kernel allocation of timer structures."
11984 msgstr ""
11985
11986 #. type: Plain text
11987 #: build/C/man2/timer_create.2:189
11988 msgid ""
11989 "Clock ID, I<sigev_notify>, I<sigev_signo>, or I<sigev_notify_thread_id> is "
11990 "invalid."
11991 msgstr ""
11992
11993 #.  glibc layer: malloc()
11994 #. type: Plain text
11995 #: build/C/man2/timer_create.2:193
11996 msgid "Could not allocate memory."
11997 msgstr ""
11998
11999 #. type: Plain text
12000 #: build/C/man2/timer_create.2:195 build/C/man2/timer_delete.2:67
12001 #: build/C/man2/timer_getoverrun.2:97
12002 msgid "This system call is available since Linux 2.6."
12003 msgstr "このシステムコールは Linux 2.6 以降で利用できる。"
12004
12005 #. type: Plain text
12006 #: build/C/man2/timer_create.2:200
12007 msgid "A program may create multiple interval timers using B<timer_create>()."
12008 msgstr ""
12009
12010 #. type: Plain text
12011 #: build/C/man2/timer_create.2:205
12012 msgid ""
12013 "Timers are not inherited by the child of a B<fork>(2), and are disarmed and "
12014 "deleted during an B<execve>(2)."
12015 msgstr ""
12016
12017 #. type: Plain text
12018 #: build/C/man2/timer_create.2:213
12019 msgid ""
12020 "The kernel preallocates a \"queued real-time signal\" for each timer created "
12021 "using B<timer_create>().  Consequently, the number of timers is limited by "
12022 "the B<RLIMIT_SIGPENDING> resource limit (see B<setrlimit>(2))."
12023 msgstr ""
12024
12025 #. type: Plain text
12026 #: build/C/man2/timer_create.2:218
12027 msgid ""
12028 "The timers created by B<timer_create>()  are commonly known as \"POSIX "
12029 "(interval) timers\".  The POSIX timers API consists of the following "
12030 "interfaces:"
12031 msgstr ""
12032
12033 #. type: Plain text
12034 #: build/C/man2/timer_create.2:221
12035 msgid "B<timer_create>(): Create a timer."
12036 msgstr ""
12037
12038 #. type: Plain text
12039 #: build/C/man2/timer_create.2:224
12040 msgid "B<timer_settime>(2): Arm (start) or disarm (stop) a timer."
12041 msgstr ""
12042
12043 #. type: Plain text
12044 #: build/C/man2/timer_create.2:228
12045 msgid ""
12046 "B<timer_gettime>(2): Fetch the time remaining until the next expiration of a "
12047 "timer, along with the interval setting of the timer."
12048 msgstr ""
12049
12050 #. type: Plain text
12051 #: build/C/man2/timer_create.2:231
12052 msgid ""
12053 "B<timer_getoverrun>(2): Return the overrun count for the last timer "
12054 "expiration."
12055 msgstr ""
12056
12057 #. type: Plain text
12058 #: build/C/man2/timer_create.2:234
12059 msgid "B<timer_delete>(2): Disarm and delete a timer."
12060 msgstr ""
12061
12062 #. type: Plain text
12063 #: build/C/man2/timer_create.2:243
12064 msgid ""
12065 "Since Linux 3.10, the I</proc/[pid]/timers> file can be used to list the "
12066 "POSIX timers for the process with PID I<pid>.  See B<proc>(5)  for further "
12067 "information."
12068 msgstr ""
12069
12070 #. type: Plain text
12071 #: build/C/man2/timer_create.2:246
12072 msgid ""
12073 "Part of the implementation of the POSIX timers API is provided by glibc.  In "
12074 "particular:"
12075 msgstr ""
12076
12077 #. type: Plain text
12078 #: build/C/man2/timer_create.2:250
12079 msgid ""
12080 "The functionality for B<SIGEV_THREAD> is implemented within glibc, rather "
12081 "than the kernel."
12082 msgstr ""
12083
12084 #.  See the glibc source file kernel-posix-timers.h for the structure
12085 #.  that glibc uses to map user-space timer IDs to kernel timer IDs
12086 #.  The kernel-level timer ID is exposed via siginfo.si_tid.
12087 #. type: Plain text
12088 #: build/C/man2/timer_create.2:256
12089 msgid ""
12090 "The timer IDs presented at user level are maintained by glibc, which maps "
12091 "these IDs to the timer IDs employed by the kernel."
12092 msgstr ""
12093
12094 #. type: Plain text
12095 #: build/C/man2/timer_create.2:264
12096 msgid ""
12097 "The POSIX timers system calls first appeared in Linux 2.6.  Prior to this, "
12098 "glibc provided an incomplete user-space implementation (B<CLOCK_REALTIME> "
12099 "timers only) using POSIX threads, and current glibc falls back to this "
12100 "implementation on systems running pre-2.6 Linux kernels."
12101 msgstr ""
12102
12103 #. type: Plain text
12104 #: build/C/man2/timer_create.2:276
12105 msgid ""
12106 "The program below takes two arguments: a sleep period in seconds, and a "
12107 "timer frequency in nanoseconds.  The program establishes a handler for the "
12108 "signal it uses for the timer, blocks that signal, creates and arms a timer "
12109 "that expires with the given frequency, sleeps for the specified number of "
12110 "seconds, and then unblocks the timer signal.  Assuming that the timer "
12111 "expired at least once while the program slept, the signal handler will be "
12112 "invoked, and the handler displays some information about the timer "
12113 "notification.  The program terminates after one invocation of the signal "
12114 "handler."
12115 msgstr ""
12116
12117 #. type: Plain text
12118 #: build/C/man2/timer_create.2:281
12119 msgid ""
12120 "In the following example run, the program sleeps for 1 second, after "
12121 "creating a timer that has a frequency of 100 nanoseconds.  By the time the "
12122 "signal is unblocked and delivered, there have been around ten million "
12123 "overruns."
12124 msgstr ""
12125
12126 #. type: Plain text
12127 #: build/C/man2/timer_create.2:293
12128 #, no-wrap
12129 msgid ""
12130 "$ B<./a.out 1 100>\n"
12131 "Establishing handler for signal 34\n"
12132 "Blocking signal 34\n"
12133 "timer ID is 0x804c008\n"
12134 "Sleeping for 1 seconds\n"
12135 "Unblocking signal 34\n"
12136 "Caught signal 34\n"
12137 "    sival_ptr = 0xbfb174f4;     *sival_ptr = 0x804c008\n"
12138 "    overrun count = 10004886\n"
12139 msgstr ""
12140
12141 #. type: Plain text
12142 #: build/C/man2/timer_create.2:303
12143 #, no-wrap
12144 msgid ""
12145 "#include E<lt>stdlib.hE<gt>\n"
12146 "#include E<lt>unistd.hE<gt>\n"
12147 "#include E<lt>stdio.hE<gt>\n"
12148 "#include E<lt>signal.hE<gt>\n"
12149 "#include E<lt>time.hE<gt>\n"
12150 msgstr ""
12151 "#include E<lt>stdlib.hE<gt>\n"
12152 "#include E<lt>unistd.hE<gt>\n"
12153 "#include E<lt>stdio.hE<gt>\n"
12154 "#include E<lt>signal.hE<gt>\n"
12155 "#include E<lt>time.hE<gt>\n"
12156
12157 #. type: Plain text
12158 #: build/C/man2/timer_create.2:306
12159 #, no-wrap
12160 msgid ""
12161 "#define CLOCKID CLOCK_REALTIME\n"
12162 "#define SIG SIGRTMIN\n"
12163 msgstr ""
12164 "#define CLOCKID CLOCK_REALTIME\n"
12165 "#define SIG SIGRTMIN\n"
12166
12167 #. type: Plain text
12168 #: build/C/man2/timer_create.2:309
12169 #, no-wrap
12170 msgid ""
12171 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
12172 "                        } while (0)\n"
12173 msgstr ""
12174 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
12175 "                        } while (0)\n"
12176
12177 #. type: Plain text
12178 #: build/C/man2/timer_create.2:315
12179 #, no-wrap
12180 msgid ""
12181 "static void\n"
12182 "print_siginfo(siginfo_t *si)\n"
12183 "{\n"
12184 "    timer_t *tidp;\n"
12185 "    int or;\n"
12186 msgstr ""
12187 "static void\n"
12188 "print_siginfo(siginfo_t *si)\n"
12189 "{\n"
12190 "    timer_t *tidp;\n"
12191 "    int or;\n"
12192
12193 #. type: Plain text
12194 #: build/C/man2/timer_create.2:317
12195 #, no-wrap
12196 msgid "    tidp = si-E<gt>si_value.sival_ptr;\n"
12197 msgstr "    tidp = si-E<gt>si_value.sival_ptr;\n"
12198
12199 #. type: Plain text
12200 #: build/C/man2/timer_create.2:320
12201 #, no-wrap
12202 msgid ""
12203 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
12204 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
12205 msgstr ""
12206 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
12207 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
12208
12209 #. type: Plain text
12210 #: build/C/man2/timer_create.2:327
12211 #, no-wrap
12212 msgid ""
12213 "    or = timer_getoverrun(*tidp);\n"
12214 "    if (or == -1)\n"
12215 "        errExit(\"timer_getoverrun\");\n"
12216 "    else\n"
12217 "        printf(\"    overrun count = %d\\en\", or);\n"
12218 "}\n"
12219 msgstr ""
12220 "    or = timer_getoverrun(*tidp);\n"
12221 "    if (or == -1)\n"
12222 "        errExit(\"timer_getoverrun\");\n"
12223 "    else\n"
12224 "        printf(\"    overrun count = %d\\en\", or);\n"
12225 "}\n"
12226
12227 #. type: Plain text
12228 #: build/C/man2/timer_create.2:334
12229 #, no-wrap
12230 msgid ""
12231 "static void\n"
12232 "handler(int sig, siginfo_t *si, void *uc)\n"
12233 "{\n"
12234 "    /* Note: calling printf() from a signal handler is not\n"
12235 "       strictly correct, since printf() is not async-signal-safe;\n"
12236 "       see signal(7) */\n"
12237 msgstr ""
12238 "static void\n"
12239 "handler(int sig, siginfo_t *si, void *uc)\n"
12240 "{\n"
12241 "    /* Note: calling printf() from a signal handler is not\n"
12242 "       strictly correct, since printf() is not async-signal-safe;\n"
12243 "       see signal(7) */\n"
12244
12245 #. type: Plain text
12246 #: build/C/man2/timer_create.2:339
12247 #, no-wrap
12248 msgid ""
12249 "    printf(\"Caught signal %d\\en\", sig);\n"
12250 "    print_siginfo(si);\n"
12251 "    signal(sig, SIG_IGN);\n"
12252 "}\n"
12253 msgstr ""
12254 "    printf(\"Caught signal %d\\en\", sig);\n"
12255 "    print_siginfo(si);\n"
12256 "    signal(sig, SIG_IGN);\n"
12257 "}\n"
12258
12259 #. type: Plain text
12260 #: build/C/man2/timer_create.2:349
12261 #, no-wrap
12262 msgid ""
12263 "int\n"
12264 "main(int argc, char *argv[])\n"
12265 "{\n"
12266 "    timer_t timerid;\n"
12267 "    struct sigevent sev;\n"
12268 "    struct itimerspec its;\n"
12269 "    long long freq_nanosecs;\n"
12270 "    sigset_t mask;\n"
12271 "    struct sigaction sa;\n"
12272 msgstr ""
12273 "int\n"
12274 "main(int argc, char *argv[])\n"
12275 "{\n"
12276 "    timer_t timerid;\n"
12277 "    struct sigevent sev;\n"
12278 "    struct itimerspec its;\n"
12279 "    long long freq_nanosecs;\n"
12280 "    sigset_t mask;\n"
12281 "    struct sigaction sa;\n"
12282
12283 #. type: Plain text
12284 #: build/C/man2/timer_create.2:355
12285 #, no-wrap
12286 msgid ""
12287 "    if (argc != 3) {\n"
12288 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
12289 "                argv[0]);\n"
12290 "        exit(EXIT_FAILURE);\n"
12291 "    }\n"
12292 msgstr ""
12293 "    if (argc != 3) {\n"
12294 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
12295 "                argv[0]);\n"
12296 "        exit(EXIT_FAILURE);\n"
12297 "    }\n"
12298
12299 #. type: Plain text
12300 #: build/C/man2/timer_create.2:357
12301 #, no-wrap
12302 msgid "    /* Establish handler for timer signal */\n"
12303 msgstr "    /* Establish handler for timer signal */\n"
12304
12305 #. type: Plain text
12306 #: build/C/man2/timer_create.2:364
12307 #, no-wrap
12308 msgid ""
12309 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
12310 "    sa.sa_flags = SA_SIGINFO;\n"
12311 "    sa.sa_sigaction = handler;\n"
12312 "    sigemptyset(&sa.sa_mask);\n"
12313 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
12314 "        errExit(\"sigaction\");\n"
12315 msgstr ""
12316 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
12317 "    sa.sa_flags = SA_SIGINFO;\n"
12318 "    sa.sa_sigaction = handler;\n"
12319 "    sigemptyset(&sa.sa_mask);\n"
12320 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
12321 "        errExit(\"sigaction\");\n"
12322
12323 #. type: Plain text
12324 #: build/C/man2/timer_create.2:366
12325 #, no-wrap
12326 msgid "    /* Block timer signal temporarily */\n"
12327 msgstr "    /* Block timer signal temporarily */\n"
12328
12329 #. type: Plain text
12330 #: build/C/man2/timer_create.2:372
12331 #, no-wrap
12332 msgid ""
12333 "    printf(\"Blocking signal %d\\en\", SIG);\n"
12334 "    sigemptyset(&mask);\n"
12335 "    sigaddset(&mask, SIG);\n"
12336 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
12337 "        errExit(\"sigprocmask\");\n"
12338 msgstr ""
12339 "    printf(\"Blocking signal %d\\en\", SIG);\n"
12340 "    sigemptyset(&mask);\n"
12341 "    sigaddset(&mask, SIG);\n"
12342 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
12343 "        errExit(\"sigprocmask\");\n"
12344
12345 #. type: Plain text
12346 #: build/C/man2/timer_create.2:374
12347 #, no-wrap
12348 msgid "    /* Create the timer */\n"
12349 msgstr "    /* Create the timer */\n"
12350
12351 #. type: Plain text
12352 #: build/C/man2/timer_create.2:380
12353 #, no-wrap
12354 msgid ""
12355 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
12356 "    sev.sigev_signo = SIG;\n"
12357 "    sev.sigev_value.sival_ptr = &timerid;\n"
12358 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
12359 "        errExit(\"timer_create\");\n"
12360 msgstr ""
12361 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
12362 "    sev.sigev_signo = SIG;\n"
12363 "    sev.sigev_value.sival_ptr = &timerid;\n"
12364 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
12365 "        errExit(\"timer_create\");\n"
12366
12367 #. type: Plain text
12368 #: build/C/man2/timer_create.2:382
12369 #, no-wrap
12370 msgid "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
12371 msgstr "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
12372
12373 #. type: Plain text
12374 #: build/C/man2/timer_create.2:384
12375 #, no-wrap
12376 msgid "    /* Start the timer */\n"
12377 msgstr "    /* Start the timer */\n"
12378
12379 #. type: Plain text
12380 #: build/C/man2/timer_create.2:390
12381 #, no-wrap
12382 msgid ""
12383 "    freq_nanosecs = atoll(argv[2]);\n"
12384 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
12385 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
12386 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
12387 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
12388 msgstr ""
12389 "    freq_nanosecs = atoll(argv[2]);\n"
12390 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
12391 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
12392 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
12393 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
12394
12395 #. type: Plain text
12396 #: build/C/man2/timer_create.2:393
12397 #, no-wrap
12398 msgid ""
12399 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
12400 "         errExit(\"timer_settime\");\n"
12401 msgstr ""
12402 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
12403 "         errExit(\"timer_settime\");\n"
12404
12405 #. type: Plain text
12406 #: build/C/man2/timer_create.2:396
12407 #, no-wrap
12408 msgid ""
12409 "    /* Sleep for a while; meanwhile, the timer may expire\n"
12410 "       multiple times */\n"
12411 msgstr ""
12412 "    /* Sleep for a while; meanwhile, the timer may expire\n"
12413 "       multiple times */\n"
12414
12415 #. type: Plain text
12416 #: build/C/man2/timer_create.2:399
12417 #, no-wrap
12418 msgid ""
12419 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
12420 "    sleep(atoi(argv[1]));\n"
12421 msgstr ""
12422 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
12423 "    sleep(atoi(argv[1]));\n"
12424
12425 #. type: Plain text
12426 #: build/C/man2/timer_create.2:402
12427 #, no-wrap
12428 msgid ""
12429 "    /* Unlock the timer signal, so that timer notification\n"
12430 "       can be delivered */\n"
12431 msgstr ""
12432 "    /* Unlock the timer signal, so that timer notification\n"
12433 "       can be delivered */\n"
12434
12435 #. type: Plain text
12436 #: build/C/man2/timer_create.2:406
12437 #, no-wrap
12438 msgid ""
12439 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
12440 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
12441 "        errExit(\"sigprocmask\");\n"
12442 msgstr ""
12443 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
12444 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
12445 "        errExit(\"sigprocmask\");\n"
12446
12447 #. type: Plain text
12448 #: build/C/man2/timer_create.2:409 build/C/man2/timerfd_create.2:547
12449 #, no-wrap
12450 msgid ""
12451 "    exit(EXIT_SUCCESS);\n"
12452 "}\n"
12453 msgstr ""
12454 "    exit(EXIT_SUCCESS);\n"
12455 "}\n"
12456
12457 #. type: Plain text
12458 #: build/C/man2/timer_create.2:425
12459 msgid ""
12460 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), "
12461 "B<timer_getoverrun>(2), B<timer_settime>(2), B<timerfd_create>(2), "
12462 "B<clock_getcpuclockid>(3), B<pthread_getcpuclockid>(3), B<pthreads>(7), "
12463 "B<sigevent>(7), B<signal>(7), B<time>(7)"
12464 msgstr ""
12465 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), "
12466 "B<timer_getoverrun>(2), B<timer_settime>(2), B<timerfd_create>(2), "
12467 "B<clock_getcpuclockid>(3), B<pthread_getcpuclockid>(3), B<pthreads>(7), "
12468 "B<sigevent>(7), B<signal>(7), B<time>(7)"
12469
12470 #. type: TH
12471 #: build/C/man2/timer_delete.2:26
12472 #, no-wrap
12473 msgid "TIMER_DELETE"
12474 msgstr "TIMER_DELETE"
12475
12476 #. type: TH
12477 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
12478 #, no-wrap
12479 msgid "2009-02-20"
12480 msgstr "2009-02-20"
12481
12482 #. type: Plain text
12483 #: build/C/man2/timer_delete.2:29
12484 msgid "timer_delete - delete a POSIX per-process timer"
12485 msgstr "timer_delete - プロセス単位の POSIX タイマーを削除する"
12486
12487 #. type: Plain text
12488 #: build/C/man2/timer_delete.2:32 build/C/man2/timer_getoverrun.2:32
12489 #: build/C/man2/timer_settime.2:33
12490 #, no-wrap
12491 msgid "B<#include E<lt>time.hE<gt>>\n"
12492 msgstr "B<#include E<lt>time.hE<gt>>\n"
12493
12494 #. type: Plain text
12495 #: build/C/man2/timer_delete.2:34
12496 #, no-wrap
12497 msgid "B<int timer_delete(timer_t >I<timerid>B<);>\n"
12498 msgstr "B<int timer_delete(timer_t >I<timerid>B<);>\n"
12499
12500 #. type: Plain text
12501 #: build/C/man2/timer_delete.2:45
12502 msgid "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12503 msgstr "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12504
12505 #. type: Plain text
12506 #: build/C/man2/timer_delete.2:53
12507 msgid ""
12508 "B<timer_delete>()  deletes the timer whose ID is given in I<timerid>.  If "
12509 "the timer was armed at the time of this call, it is disarmed before being "
12510 "deleted.  The treatment of any pending signal generated by the deleted timer "
12511 "is unspecified."
12512 msgstr ""
12513 "B<timer_delete>() は I<timerid> で指定された ID のタイマーを削除する。 "
12514 "B<timer_delete>() が呼び出された時点でタイマーが開始されている場合は、 削除す"
12515 "る前にタイマーの解除が行われる。 削除されるタイマーにより生成された処理待ちシ"
12516 "グナルの扱いは不定 (unspecified) である。"
12517
12518 #. type: Plain text
12519 #: build/C/man2/timer_delete.2:60
12520 msgid ""
12521 "On success, B<timer_delete>()  returns 0.  On failure, -1 is returned, and "
12522 "I<errno> is set to indicate the error."
12523 msgstr ""
12524 "成功すると、 B<timer_delete>() は 0 を返す。 失敗すると、 -1 が返り、 "
12525 "I<errno> にエラーを示す値が設定される。"
12526
12527 #. type: Plain text
12528 #: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
12529 msgid "I<timerid> is not a valid timer ID."
12530 msgstr "I<timerid> が有効なタイマー ID ではない。"
12531
12532 #. type: Plain text
12533 #: build/C/man2/timer_delete.2:75
12534 msgid ""
12535 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
12536 "B<timer_settime>(2), B<time>(7)"
12537 msgstr ""
12538 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
12539 "B<timer_settime>(2), B<time>(7)"
12540
12541 #. type: TH
12542 #: build/C/man2/timer_getoverrun.2:26
12543 #, no-wrap
12544 msgid "TIMER_GETOVERRUN"
12545 msgstr "TIMER_GETOVERRUN"
12546
12547 #. type: Plain text
12548 #: build/C/man2/timer_getoverrun.2:29
12549 msgid "timer_getoverrun - get overrun count for a POSIX per-process timer"
12550 msgstr ""
12551
12552 #. type: Plain text
12553 #: build/C/man2/timer_getoverrun.2:34
12554 #, no-wrap
12555 msgid "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
12556 msgstr "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
12557
12558 #. type: Plain text
12559 #: build/C/man2/timer_getoverrun.2:45
12560 msgid "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12561 msgstr "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12562
12563 #. type: Plain text
12564 #: build/C/man2/timer_getoverrun.2:56
12565 msgid ""
12566 "B<timer_getoverrun>()  returns the \"overrun count\" for the timer referred "
12567 "to by I<timerid>.  An application can use the overrun count to accurately "
12568 "calculate the number of timer expirations that would have occurred over a "
12569 "given time interval.  Timer overruns can occur both when receiving "
12570 "expiration notifications via signals (B<SIGEV_SIGNAL>), and via threads "
12571 "(B<SIGEV_THREAD>)."
12572 msgstr ""
12573
12574 #. type: Plain text
12575 #: build/C/man2/timer_getoverrun.2:76
12576 msgid ""
12577 "When expiration notifications are delivered via a signal, overruns can occur "
12578 "as follows.  Regardless of whether or not a real-time signal is used for "
12579 "timer notifications, the system queues at most one signal per timer.  (This "
12580 "is the behavior specified by POSIX.1-2001.  The alternative, queuing one "
12581 "signal for each timer expiration, could easily result in overflowing the "
12582 "allowed limits for queued signals on the system.)  Because of system "
12583 "scheduling delays, or because the signal may be temporarily blocked, there "
12584 "can be a delay between the time when the notification signal is generated "
12585 "and the time when it is delivered (e.g., caught by a signal handler) or "
12586 "accepted (e.g., using B<sigwaitinfo>(2)).  In this interval, further timer "
12587 "expirations may occur.  The timer overrun count is the number of additional "
12588 "timer expirations that occurred between the time when the signal was "
12589 "generated and when it was delivered or accepted."
12590 msgstr ""
12591
12592 #. type: Plain text
12593 #: build/C/man2/timer_getoverrun.2:82
12594 msgid ""
12595 "Timer overruns can also occur when expiration notifications are delivered "
12596 "via invocation of a thread, since there may be an arbitrary delay between an "
12597 "expiration of the timer and the invocation of the notification thread, and "
12598 "in that delay interval, additional timer expirations may occur."
12599 msgstr ""
12600
12601 #. type: Plain text
12602 #: build/C/man2/timer_getoverrun.2:90
12603 msgid ""
12604 "On success, B<timer_getoverrun>()  returns the overrun count of the "
12605 "specified timer; this count may be 0 if no overruns have occurred.  On "
12606 "failure, -1 is returned, and I<errno> is set to indicate the error."
12607 msgstr ""
12608
12609 #. type: Plain text
12610 #: build/C/man2/timer_getoverrun.2:111
12611 msgid ""
12612 "When timer notifications are delivered via signals (B<SIGEV_SIGNAL>), on "
12613 "Linux it is also possible to obtain the overrun count via the I<si_overrun> "
12614 "field of the I<siginfo_t> structure (see B<sigaction>(2)).  This allows an "
12615 "application to avoid the overhead of making a system call to obtain the "
12616 "overrun count, but is a nonportable extension to POSIX.1-2001."
12617 msgstr ""
12618
12619 #.  FIXME . Austin bug filed, 11 Feb 09
12620 #. type: Plain text
12621 #: build/C/man2/timer_getoverrun.2:115
12622 msgid ""
12623 "POSIX.1-2001 discusses timer overruns only in the context of timer "
12624 "notifications using signals."
12625 msgstr ""
12626
12627 #.  Bug filed: http://bugzilla.kernel.org/show_bug.cgi?id=12665
12628 #.  http://thread.gmane.org/gmane.linux.kernel/113276/
12629 #. type: Plain text
12630 #: build/C/man2/timer_getoverrun.2:128
12631 msgid ""
12632 "POSIX.1-2001 specifies that if the timer overrun count is equal to or "
12633 "greater than an implementation-defined maximum, B<DELAYTIMER_MAX>, then "
12634 "B<timer_getoverrun>()  should return B<DELAYTIMER_MAX>.  However, Linux does "
12635 "not implement this feature: instead, if the timer overrun value exceeds the "
12636 "maximum representable integer, the counter cycles, starting once more from "
12637 "low values."
12638 msgstr ""
12639
12640 #. type: Plain text
12641 #: build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212
12642 msgid "See B<timer_create>(2)."
12643 msgstr ""
12644
12645 #. type: Plain text
12646 #: build/C/man2/timer_getoverrun.2:141
12647 msgid ""
12648 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
12649 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
12650 "B<time>(7)"
12651 msgstr ""
12652 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
12653 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
12654 "B<time>(7)"
12655
12656 #. type: TH
12657 #: build/C/man2/timer_settime.2:26
12658 #, no-wrap
12659 msgid "TIMER_SETTIME"
12660 msgstr "TIMER_SETTIME"
12661
12662 #. type: TH
12663 #: build/C/man2/timer_settime.2:26
12664 #, no-wrap
12665 msgid "2012-10-15"
12666 msgstr "2012-10-15"
12667
12668 #. type: Plain text
12669 #: build/C/man2/timer_settime.2:30
12670 msgid ""
12671 "timer_settime, timer_gettime - arm/disarm and fetch state of POSIX per-"
12672 "process timer"
12673 msgstr ""
12674
12675 #. type: Plain text
12676 #: build/C/man2/timer_settime.2:38
12677 #, no-wrap
12678 msgid ""
12679 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
12680 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
12681 "B<                  struct itimerspec *>I<old_value>B<);>\n"
12682 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
12683 msgstr ""
12684 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
12685 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
12686 "B<                  struct itimerspec *>I<old_value>B<);>\n"
12687 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
12688
12689 #. type: Plain text
12690 #: build/C/man2/timer_settime.2:50
12691 msgid ""
12692 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12693 msgstr ""
12694 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12695
12696 #. type: Plain text
12697 #: build/C/man2/timer_settime.2:63
12698 msgid ""
12699 "B<timer_settime>()  arms or disarms the timer identified by I<timerid>.  The "
12700 "I<new_value> argument is pointer to an I<itimerspec> structure that "
12701 "specifies the new initial value and the new interval for the timer.  The "
12702 "I<itimerspec> structure is defined as follows:"
12703 msgstr ""
12704
12705 #. type: Plain text
12706 #: build/C/man2/timer_settime.2:70 build/C/man2/timerfd_create.2:135
12707 #, no-wrap
12708 msgid ""
12709 "struct timespec {\n"
12710 "    time_t tv_sec;                /* Seconds */\n"
12711 "    long   tv_nsec;               /* Nanoseconds */\n"
12712 "};\n"
12713 msgstr ""
12714 "struct timespec {\n"
12715 "    time_t tv_sec;                /* Seconds */\n"
12716 "    long   tv_nsec;               /* Nanoseconds */\n"
12717 "};\n"
12718
12719 #. type: Plain text
12720 #: build/C/man2/timer_settime.2:75
12721 #, no-wrap
12722 msgid ""
12723 "struct itimerspec {\n"
12724 "    struct timespec it_interval;  /* Timer interval */\n"
12725 "    struct timespec it_value;     /* Initial expiration */\n"
12726 "};\n"
12727 msgstr ""
12728 "struct itimerspec {\n"
12729 "    struct timespec it_interval;  /* Timer interval */\n"
12730 "    struct timespec it_value;     /* Initial expiration */\n"
12731 "};\n"
12732
12733 #. type: Plain text
12734 #: build/C/man2/timer_settime.2:87
12735 msgid ""
12736 "Each of the substructures of the I<itimerspec> structure is a I<timespec> "
12737 "structure that allows a time value to be specified in seconds and "
12738 "nanoseconds.  These time values are measured according to the clock that was "
12739 "specified when the timer was created by B<timer_create>(2)."
12740 msgstr ""
12741
12742 #. type: Plain text
12743 #: build/C/man2/timer_settime.2:101
12744 msgid ""
12745 "If I<new_value-E<gt>it_value> specifies a nonzero value (i.e., either "
12746 "subfield is nonzero), then B<timer_settime>()  arms (starts) the timer, "
12747 "setting it to initially expire at the given time.  (If the timer was already "
12748 "armed, then the previous settings are overwritten.)  If I<new_value-"
12749 "E<gt>it_value> specifies a zero value (i.e., both subfields are zero), then "
12750 "the timer is disarmed."
12751 msgstr ""
12752
12753 #. type: Plain text
12754 #: build/C/man2/timer_settime.2:113
12755 msgid ""
12756 "The I<new_value-E<gt>it_interval> field specifies the period of the timer, "
12757 "in seconds and nanoseconds.  If this field is nonzero, then each time that "
12758 "an armed timer expires, the timer is reloaded from the value specified in "
12759 "I<new_value-E<gt>it_interval>.  If I<new_value-E<gt>it_interval> specifies a "
12760 "zero value, then the timer expires just once, at the time specified by "
12761 "I<it_value>."
12762 msgstr ""
12763
12764 #.  By experiment: the overrun count is set correctly, for CLOCK_REALTIME.
12765 #. type: Plain text
12766 #: build/C/man2/timer_settime.2:134
12767 msgid ""
12768 "By default, the initial expiration time specified in I<new_value-"
12769 "E<gt>it_value> is interpreted relative to the current time on the timer's "
12770 "clock at the time of the call.  This can be modified by specifying "
12771 "B<TIMER_ABSTIME> in I<flags>, in which case I<new_value-E<gt>it_value> is "
12772 "interpreted as an absolute value as measured on the timer's clock; that is, "
12773 "the timer will expire when the clock value reaches the value specified by "
12774 "I<new_value-E<gt>it_value>.  If the specified absolute time has already "
12775 "passed, then the timer expires immediately, and the overrun count (see "
12776 "B<timer_getoverrun>(2))  will be set correctly."
12777 msgstr ""
12778
12779 #.  Similar remarks might apply with respect to process and thread CPU time
12780 #.  clocks, but these clocks are not currently (2.6.28) settable on Linux.
12781 #. type: Plain text
12782 #: build/C/man2/timer_settime.2:144
12783 msgid ""
12784 "If the value of the B<CLOCK_REALTIME> clock is adjusted while an absolute "
12785 "timer based on that clock is armed, then the expiration of the timer will be "
12786 "appropriately adjusted.  Adjustments to the B<CLOCK_REALTIME> clock have no "
12787 "effect on relative timers based on that clock."
12788 msgstr ""
12789
12790 #. type: Plain text
12791 #: build/C/man2/timer_settime.2:153
12792 msgid ""
12793 "If I<old_value> is not NULL, then it points to a buffer that is used to "
12794 "return the previous interval of the timer (in I<old_value-"
12795 "E<gt>it_interval>)  and the amount of time until the timer would previously "
12796 "have next expired (in I<old_value-E<gt>it_value>)."
12797 msgstr ""
12798
12799 #. type: Plain text
12800 #: build/C/man2/timer_settime.2:173
12801 msgid ""
12802 "B<timer_gettime>()  returns the time until next expiration, and the "
12803 "interval, for the timer specified by I<timerid>, in the buffer pointed to by "
12804 "I<curr_value>.  The time remaining until the next timer expiration is "
12805 "returned in I<curr_value-E<gt>it_value>; this is always a relative value, "
12806 "regardless of whether the B<TIMER_ABSTIME> flag was used when arming the "
12807 "timer.  If the value returned in I<curr_value-E<gt>it_value> is zero, then "
12808 "the timer is currently disarmed.  The timer interval is returned in "
12809 "I<curr_value-E<gt>it_interval>.  If the value returned in I<curr_value-"
12810 "E<gt>it_interval> is zero, then this is a \"one-shot\" timer."
12811 msgstr ""
12812
12813 #. type: Plain text
12814 #: build/C/man2/timer_settime.2:182
12815 msgid ""
12816 "On success, B<timer_settime>()  and B<timer_gettime>()  return 0.  On error, "
12817 "-1 is returned, and I<errno> is set to indicate the error."
12818 msgstr ""
12819
12820 #. type: Plain text
12821 #: build/C/man2/timer_settime.2:184
12822 msgid "These functions may fail with the following errors:"
12823 msgstr ""
12824
12825 #. type: Plain text
12826 #: build/C/man2/timer_settime.2:191
12827 msgid "I<new_value>, I<old_value>, or I<curr_value> is not a valid pointer."
12828 msgstr ""
12829
12830 #.  FIXME . eventually: invalid value in flags
12831 #. type: Plain text
12832 #: build/C/man2/timer_settime.2:196
12833 msgid "I<timerid> is invalid."
12834 msgstr ""
12835
12836 #. type: Plain text
12837 #: build/C/man2/timer_settime.2:199
12838 msgid "B<timer_settime>()  may fail with the following errors:"
12839 msgstr ""
12840
12841 #. type: Plain text
12842 #: build/C/man2/timer_settime.2:205
12843 msgid ""
12844 "I<new_value.it_value> is negative; or I<new_value.it_value.tv_nsec> is "
12845 "negative or greater than 999,999,999."
12846 msgstr ""
12847
12848 #. type: Plain text
12849 #: build/C/man2/timer_settime.2:207
12850 msgid "These system calls are available since Linux 2.6."
12851 msgstr "これらのシステムコールは Linux 2.6 以降で利用可能である。"
12852
12853 #. type: Plain text
12854 #: build/C/man2/timer_settime.2:216
12855 msgid "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12856 msgstr "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12857
12858 #. type: TH
12859 #: build/C/man2/timerfd_create.2:22
12860 #, no-wrap
12861 msgid "TIMERFD_CREATE"
12862 msgstr "TIMERFD_CREATE"
12863
12864 #. type: TH
12865 #: build/C/man2/timerfd_create.2:22
12866 #, no-wrap
12867 msgid "2011-09-14"
12868 msgstr "2011-09-14"
12869
12870 #. type: Plain text
12871 #: build/C/man2/timerfd_create.2:26
12872 msgid ""
12873 "timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via "
12874 "file descriptors"
12875 msgstr ""
12876 "timerfd_create, timerfd_settime, timerfd_gettime - ファイルディスクリプター経"
12877 "由で通知するタイマー"
12878
12879 #. type: Plain text
12880 #: build/C/man2/timerfd_create.2:29
12881 #, no-wrap
12882 msgid "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12883 msgstr "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12884
12885 #. type: Plain text
12886 #: build/C/man2/timerfd_create.2:31
12887 #, no-wrap
12888 msgid "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12889 msgstr "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12890
12891 #. type: Plain text
12892 #: build/C/man2/timerfd_create.2:35
12893 #, no-wrap
12894 msgid ""
12895 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12896 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12897 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12898 msgstr ""
12899 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12900 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12901 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12902
12903 #. type: Plain text
12904 #: build/C/man2/timerfd_create.2:37
12905 #, no-wrap
12906 msgid "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12907 msgstr "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12908
12909 #. type: Plain text
12910 #: build/C/man2/timerfd_create.2:50
12911 msgid ""
12912 "These system calls create and operate on a timer that delivers timer "
12913 "expiration notifications via a file descriptor.  They provide an alternative "
12914 "to the use of B<setitimer>(2)  or B<timer_create>(2), with the advantage "
12915 "that the file descriptor may be monitored by B<select>(2), B<poll>(2), and "
12916 "B<epoll>(7)."
12917 msgstr ""
12918 "これらのシステムコールは、満了通知をファイルディスクリプター経由で配送する タ"
12919 "イマーの生成と操作を行う。 これらは、 B<setitimer>(2)  や "
12920 "B<timer_create>(2)  を用いる方法の代わりとなるものであり、このファイルディス"
12921 "クリプターを B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点が"
12922 "ある。"
12923
12924 #. type: Plain text
12925 #: build/C/man2/timerfd_create.2:62
12926 msgid ""
12927 "The use of these three system calls is analogous to the use of "
12928 "B<timer_create>(2), B<timer_settime>(2), and B<timer_gettime>(2).  (There is "
12929 "no analog of B<timer_getoverrun>(2), since that functionality is provided by "
12930 "B<read>(2), as described below.)"
12931 msgstr ""
12932 "これらのシステムコールを使うのは、それぞれ B<timer_create>(2), "
12933 "B<timer_settime>(2), B<timer_gettime>(2)  を使うのと同様である "
12934 "(B<timer_getoverrun>(2)  に対応するものはなく、以下で説明するように この機能"
12935 "は B<read>(2)  により提供される)。"
12936
12937 #. type: SS
12938 #: build/C/man2/timerfd_create.2:62
12939 #, no-wrap
12940 msgid "timerfd_create()"
12941 msgstr "timerfd_create()"
12942
12943 #.  FIXME
12944 #.  Additional clocks are now supported:
12945 #.  CLOCK_REALTIME_ALARM and CLOCK_BOOTTIME_ALARM
12946 #.     Since Linux 3.11, commit 11ffa9d6065f344a9bd769a2452f26f2f671e5f8
12947 #.  CLOCK_BOOTTIME
12948 #.     Since Linux 3.15, commit 4a2378a943f09907fb1ae35c15de917f60289c14
12949 #. type: Plain text
12950 #: build/C/man2/timerfd_create.2:87
12951 msgid ""
12952 "B<timerfd_create>()  creates a new timer object, and returns a file "
12953 "descriptor that refers to that timer.  The I<clockid> argument specifies the "
12954 "clock that is used to mark the progress of the timer, and must be either "
12955 "B<CLOCK_REALTIME> or B<CLOCK_MONOTONIC>.  B<CLOCK_REALTIME> is a settable "
12956 "system-wide clock.  B<CLOCK_MONOTONIC> is a nonsettable clock that is not "
12957 "affected by discontinuous changes in the system clock (e.g., manual changes "
12958 "to system time).  The current value of each of these clocks can be retrieved "
12959 "using B<clock_gettime>(2)."
12960 msgstr ""
12961 "B<timerfd_create>()  は新規のタイマーオブジェクトを生成し、そのタイマーを参照"
12962 "するファイル ディスクリプターを返す。 I<clockid> 引き数は、タイマーの進捗を管"
12963 "理するためのクロックを指定するもので、 B<CLOCK_REALTIME> か "
12964 "B<CLOCK_MONOTONIC> のいずれかでなければならない。 B<CLOCK_REALTIME> はシステ"
12965 "ム全体で使用されるクロックで、このクロックは変更可能である。 "
12966 "B<CLOCK_MONOTONIC> は変更されることのないクロックで、(システム時刻の手動での"
12967 "変更などの)  システムクロックの不連続な変化の影響を受けない。 これらのクロッ"
12968 "クの現在の値は B<clock_gettime>(2)  を使って取得できる。"
12969
12970 #. type: Plain text
12971 #: build/C/man2/timerfd_create.2:92
12972 msgid ""
12973 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
12974 "I<flags> to change the behavior of B<timerfd_create>():"
12975 msgstr ""
12976 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
12977 "ることで、 B<timerfd_create>()  の振舞いを変更することができる。"
12978
12979 #. type: TP
12980 #: build/C/man2/timerfd_create.2:92
12981 #, no-wrap
12982 msgid "B<TFD_NONBLOCK>"
12983 msgstr "B<TFD_NONBLOCK>"
12984
12985 #. type: TP
12986 #: build/C/man2/timerfd_create.2:100
12987 #, no-wrap
12988 msgid "B<TFD_CLOEXEC>"
12989 msgstr "B<TFD_CLOEXEC>"
12990
12991 #. type: Plain text
12992 #: build/C/man2/timerfd_create.2:114
12993 msgid ""
12994 "In Linux versions up to and including 2.6.26, I<flags> must be specified as "
12995 "zero."
12996 msgstr ""
12997 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
12998 "しなければならない。"
12999
13000 #. type: SS
13001 #: build/C/man2/timerfd_create.2:114
13002 #, no-wrap
13003 msgid "timerfd_settime()"
13004 msgstr "timerfd_settime()"
13005
13006 #. type: Plain text
13007 #: build/C/man2/timerfd_create.2:119
13008 msgid ""
13009 "B<timerfd_settime>()  arms (starts) or disarms (stops)  the timer referred "
13010 "to by the file descriptor I<fd>."
13011 msgstr ""
13012 "B<timerfd_settime>()  は、ファイルディスクリプター I<fd> により参照されるタイ"
13013 "マーを開始したり停止したりする。"
13014
13015 #. type: Plain text
13016 #: build/C/man2/timerfd_create.2:128
13017 msgid ""
13018 "The I<new_value> argument specifies the initial expiration and interval for "
13019 "the timer.  The I<itimer> structure used for this argument contains two "
13020 "fields, each of which is in turn a structure of type I<timespec>:"
13021 msgstr ""
13022 "I<new_value> 引き数は、タイマーの満了時間 (expiration) の初期値と間隔 "
13023 "(interval) を 指定する。この引き数で使用されている I<itimerspec> 構造体には "
13024 "2 つのフィールドがあり、各フィールドは I<timespec> 型の構造体である。"
13025
13026 #. type: Plain text
13027 #: build/C/man2/timerfd_create.2:140
13028 #, no-wrap
13029 msgid ""
13030 "struct itimerspec {\n"
13031 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
13032 "    struct timespec it_value;     /* Initial expiration */\n"
13033 "};\n"
13034 msgstr ""
13035 "struct itimerspec {\n"
13036 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
13037 "    struct timespec it_value;     /* Initial expiration */\n"
13038 "};\n"
13039
13040 #. type: Plain text
13041 #: build/C/man2/timerfd_create.2:152
13042 msgid ""
13043 "I<new_value.it_value> specifies the initial expiration of the timer, in "
13044 "seconds and nanoseconds.  Setting either field of I<new_value.it_value> to a "
13045 "nonzero value arms the timer.  Setting both fields of I<new_value.it_value> "
13046 "to zero disarms the timer."
13047 msgstr ""
13048 "I<new_value.it_value> はタイマーの満了時間の初期値を、秒とナノ秒で指定する。 "
13049 "I<new_value.it_value> のフィールドのうち少なくとも一方に 0 以外の値を設定する"
13050 "と、 タイマーが開始される。 両方のフィールドに 0 を設定すると、タイマーが停止"
13051 "する。"
13052
13053 #. type: Plain text
13054 #: build/C/man2/timerfd_create.2:161
13055 msgid ""
13056 "Setting one or both fields of I<new_value.it_interval> to nonzero values "
13057 "specifies the period, in seconds and nanoseconds, for repeated timer "
13058 "expirations after the initial expiration.  If both fields of I<new_value."
13059 "it_interval> are zero, the timer expires just once, at the time specified by "
13060 "I<new_value.it_value>."
13061 msgstr ""
13062 "I<new_value.it_interval> はタイマーの一回目の満了後に繰り返しタイマーの満了間"
13063 "隔を、秒とナノ秒で指定する。 I<new_value.it_interval> のフィールドのうち少な"
13064 "くとも一方に 0 以外の値を設定すると、 繰り返しタイマーが有効になる。 両方の"
13065 "フィールドに 0 を設定した場合、タイマーは I<new_value.it_value> で指定された"
13066 "時間後に、一回だけ満了して停止する。"
13067
13068 #. type: Plain text
13069 #: build/C/man2/timerfd_create.2:177
13070 msgid ""
13071 "The I<flags> argument is either 0, to start a relative timer (I<new_value."
13072 "it_value> specifies a time relative to the current value of the clock "
13073 "specified by I<clockid>), or B<TFD_TIMER_ABSTIME>, to start an absolute "
13074 "timer (I<new_value.it_value> specifies an absolute time for the clock "
13075 "specified by I<clockid>; that is, the timer will expire when the value of "
13076 "that clock reaches the value specified in I<new_value.it_value>)."
13077 msgstr ""
13078 "I<flags> 引き数には 0 か B<TFD_TIMER_ABSTIME> を指定する。 0 は相対時刻タイ"
13079 "マーを意味し、 I<new_value.it_value> では I<clockid> で指定されたクロックの現"
13080 "在の値からの相対的な時刻を指定する。 B<TFD_TIMER_ABSTIME> は絶対時刻タイマー"
13081 "を意味し、 I<new_value.it_interval> では I<clockid> で指定されたクロックの絶"
13082 "対時刻を指定する。 つまり、クロックの値が I<new_value.it_interval> で指定され"
13083 "た時刻に達したら、タイマーが満了する。"
13084
13085 #. type: Plain text
13086 #: build/C/man2/timerfd_create.2:188
13087 msgid ""
13088 "If the I<old_value> argument is not NULL, then the I<itimerspec> structure "
13089 "that it points to is used to return the setting of the timer that was "
13090 "current at the time of the call; see the description of "
13091 "B<timerfd_gettime>()  following."
13092 msgstr ""
13093 "I<old_value> 引き数が NULL でない場合、 I<old_value> 引き数が指す "
13094 "I<itimerspec> 構造体は、 B<timerfd_settime>() を呼び出した時点でのタイマーの"
13095 "設定を返すのに使用される。 下記の B<timerfd_gettime>() の説明を参照。"
13096
13097 #. type: SS
13098 #: build/C/man2/timerfd_create.2:188
13099 #, no-wrap
13100 msgid "timerfd_gettime()"
13101 msgstr "timerfd_gettime()"
13102
13103 #. type: Plain text
13104 #: build/C/man2/timerfd_create.2:197
13105 msgid ""
13106 "B<timerfd_gettime>()  returns, in I<curr_value>, an I<itimerspec> structure "
13107 "that contains the current setting of the timer referred to by the file "
13108 "descriptor I<fd>."
13109 msgstr ""
13110 "B<timerfd_gettime>()  は、ファイルディスクリプター I<fd> で参照されるタイマー"
13111 "の現在の設定が入った I<itimerspec> 構造体を、 I<curr_value> に格納して返す。"
13112
13113 #. type: Plain text
13114 #: build/C/man2/timerfd_create.2:207
13115 msgid ""
13116 "The I<it_value> field returns the amount of time until the timer will next "
13117 "expire.  If both fields of this structure are zero, then the timer is "
13118 "currently disarmed.  This field always contains a relative value, regardless "
13119 "of whether the B<TFD_TIMER_ABSTIME> flag was specified when setting the "
13120 "timer."
13121 msgstr ""
13122 "I<it_value> フィールドは、タイマーが次に満了するまでの残り時間を返す。 この構"
13123 "造体の両方のフィールドが 0 であれば、タイマーは現在停止している。 タイマー設"
13124 "定時に B<TFD_TIMER_ABSTIME> フラグが指定されたかに関わらず、このフィールドは"
13125 "常に相対値が格納される。"
13126
13127 #. type: Plain text
13128 #: build/C/man2/timerfd_create.2:214
13129 msgid ""
13130 "The I<it_interval> field returns the interval of the timer.  If both fields "
13131 "of this structure are zero, then the timer is set to expire just once, at "
13132 "the time specified by I<curr_value.it_value>."
13133 msgstr ""
13134 "I<it_interval> フィールドは、タイマーの間隔を返す。 この構造体の両方のフィー"
13135 "ルドが 0 であれば、タイマーは I<new_value.it_value> で指定された時間後に一回"
13136 "だけ満了して停止するように設定されている。"
13137
13138 #. type: SS
13139 #: build/C/man2/timerfd_create.2:214
13140 #, no-wrap
13141 msgid "Operating on a timer file descriptor"
13142 msgstr "タイマーファイルディスクリプターに対する操作"
13143
13144 #. type: Plain text
13145 #: build/C/man2/timerfd_create.2:218
13146 msgid ""
13147 "The file descriptor returned by B<timerfd_create>()  supports the following "
13148 "operations:"
13149 msgstr ""
13150 "B<timerfd_create>()  が返すファイルディスクリプターは以下の操作をサポートして"
13151 "いる。"
13152
13153 #. type: Plain text
13154 #: build/C/man2/timerfd_create.2:232
13155 msgid ""
13156 "If the timer has already expired one or more times since its settings were "
13157 "last modified using B<timerfd_settime>(), or since the last successful "
13158 "B<read>(2), then the buffer given to B<read>(2)  returns an unsigned 8-byte "
13159 "integer (I<uint64_t>)  containing the number of expirations that have "
13160 "occurred.  (The returned value is in host byte order\\(emthat is, the native "
13161 "byte order for integers on the host machine.)"
13162 msgstr ""
13163 "B<timerfd_settime>()  を使ってタイマーの設定が最後変更されて以降、または "
13164 "B<read>(2)  の呼び出しに最後に成功して以降に、タイマーの満了が一回以上発生し"
13165 "ていれば、 B<read>(2)  に渡されたバッファーに、タイマー満了回数を示す 8 バイ"
13166 "トの unsigned 型の整数 (I<uint64_t>)  が返される (返される値はホストバイト"
13167 "オーダ、つまりそのホストマシンにおける 整数の通常のバイトオーダである)。"
13168
13169 #. type: Plain text
13170 #: build/C/man2/timerfd_create.2:245
13171 msgid ""
13172 "If no timer expirations have occurred at the time of the B<read>(2), then "
13173 "the call either blocks until the next timer expiration, or fails with the "
13174 "error B<EAGAIN> if the file descriptor has been made nonblocking (via the "
13175 "use of the B<fcntl>(2)  B<F_SETFL> operation to set the B<O_NONBLOCK> flag)."
13176 msgstr ""
13177 "B<read>(2)  を行った時点でタイマーの満了が発生していなければ、 B<read>(2)  は"
13178 "停止 (block) する、もしくはファイルディスクリプターが 非停止 (nonblocking) に"
13179 "設定されている場合はエラー B<EAGAIN> で失敗する (非停止モードにするには、 "
13180 "B<fcntl>(2)  の B<F_SETFL> 命令で B<O_NONBLOCK> フラグをセットする)。"
13181
13182 #. type: Plain text
13183 #: build/C/man2/timerfd_create.2:251
13184 msgid ""
13185 "A B<read>(2)  will fail with the error B<EINVAL> if the size of the supplied "
13186 "buffer is less than 8 bytes."
13187 msgstr ""
13188 "渡されたバッファーの大きさが 8 バイト未満の場合、 B<read>(2)  はエラー "
13189 "B<EINVAL> で失敗する。"
13190
13191 #. type: Plain text
13192 #: build/C/man2/timerfd_create.2:262
13193 msgid ""
13194 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
13195 "B<poll>(2)  B<POLLIN> flag)  if one or more timer expirations have occurred."
13196 msgstr ""
13197 "一つ以上のタイマー満了が発生していれば、 ファイルディスクリプターは読み出し可"
13198 "能となる (B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラ"
13199 "グ)。"
13200
13201 #. type: Plain text
13202 #: build/C/man2/timerfd_create.2:269
13203 msgid ""
13204 "The file descriptor also supports the other file-descriptor multiplexing "
13205 "APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
13206 msgstr ""
13207 "このファイルディスクリプターは、他のファイルディスクリプター多重 API である "
13208 "B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
13209
13210 #. type: Plain text
13211 #: build/C/man2/timerfd_create.2:276
13212 msgid ""
13213 "When the file descriptor is no longer required it should be closed.  When "
13214 "all file descriptors associated with the same timer object have been closed, "
13215 "the timer is disarmed and its resources are freed by the kernel."
13216 msgstr ""
13217 "ファイルディスクリプターがそれ以降は必要なくなった際には、クローズすべきであ"
13218 "る。 同じ timer オブジェクトに関連付けられたファイルディスクリプターが全て ク"
13219 "ローズされると、そのタイマーは解除され、 そのオブジェクト用の資源がカーネルに"
13220 "より解放される。"
13221
13222 #. type: Plain text
13223 #: build/C/man2/timerfd_create.2:288
13224 msgid ""
13225 "After a B<fork>(2), the child inherits a copy of the file descriptor created "
13226 "by B<timerfd_create>().  The file descriptor refers to the same underlying "
13227 "timer object as the corresponding file descriptor in the parent, and "
13228 "B<read>(2)s in the child will return information about expirations of the "
13229 "timer."
13230 msgstr ""
13231 "B<fork>(2)  が行われると、子プロセスは B<timerfd_create>()  により生成された"
13232 "ファイルディスクリプターのコピーを 継承する。そのファイルディスクリプターは、"
13233 "親プロセスの対応する ファイルディスクリプターと同じタイマーオブジェクトを参照"
13234 "しており、 子プロセスの B<read>(2)  でも同じタイマーの満了に関する情報が返さ"
13235 "れる。"
13236
13237 #. type: Plain text
13238 #: build/C/man2/timerfd_create.2:294
13239 msgid ""
13240 "A file descriptor created by B<timerfd_create>()  is preserved across "
13241 "B<execve>(2), and continues to generate timer expirations if the timer was "
13242 "armed."
13243 msgstr ""
13244 "B<execve>(2)  の前後で B<timerfd_create>()  により生成されたファイルディスク"
13245 "リプターは保持され、 タイマーが開始されていた場合にはタイマーの満了が発生し続"
13246 "ける。"
13247
13248 #. type: Plain text
13249 #: build/C/man2/timerfd_create.2:301
13250 msgid ""
13251 "On success, B<timerfd_create>()  returns a new file descriptor.  On error, "
13252 "-1 is returned and I<errno> is set to indicate the error."
13253 msgstr ""
13254 "成功すると、 B<timerfd_create>()  は新しいファイルディスクリプターを返す。 エ"
13255 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
13256
13257 #. type: Plain text
13258 #: build/C/man2/timerfd_create.2:309
13259 msgid ""
13260 "B<timerfd_settime>()  and B<timerfd_gettime>()  return 0 on success; on "
13261 "error they return -1, and set I<errno> to indicate the error."
13262 msgstr ""
13263 "B<timerfd_settime>()  と B<timerfd_gettime>()  は成功すると 0 を返す。 エラー"
13264 "の場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
13265
13266 #. type: Plain text
13267 #: build/C/man2/timerfd_create.2:312
13268 msgid "B<timerfd_create>()  can fail with the following errors:"
13269 msgstr "B<timerfd_create>()  は以下のエラーで失敗する可能性がある。"
13270
13271 #. type: Plain text
13272 #: build/C/man2/timerfd_create.2:320
13273 msgid ""
13274 "The I<clockid> argument is neither B<CLOCK_MONOTONIC> nor B<CLOCK_REALTIME>;"
13275 msgstr ""
13276 "I<clockid> 引き数が B<CLOCK_MONOTONIC> でも B<CLOCK_REALTIME> でもない。"
13277
13278 #. type: Plain text
13279 #: build/C/man2/timerfd_create.2:340
13280 msgid "There was insufficient kernel memory to create the timer."
13281 msgstr "タイマーを作成するのに十分なカーネルメモリーがなかった。"
13282
13283 #. type: Plain text
13284 #: build/C/man2/timerfd_create.2:345
13285 msgid ""
13286 "B<timerfd_settime>()  and B<timerfd_gettime>()  can fail with the following "
13287 "errors:"
13288 msgstr ""
13289 "B<timerfd_settime>()  と B<timerfd_gettime>()  は以下のエラーで失敗する可能性"
13290 "がある。"
13291
13292 #. type: Plain text
13293 #: build/C/man2/timerfd_create.2:349
13294 msgid "I<fd> is not a valid file descriptor."
13295 msgstr "I<fd> が有効なファイルディスクリプターでない。"
13296
13297 #. type: Plain text
13298 #: build/C/man2/timerfd_create.2:360
13299 msgid "I<fd> is not a valid timerfd file descriptor."
13300 msgstr "I<fd> が有効な timerfd ファイルディスクリプターでない。"
13301
13302 #. type: Plain text
13303 #: build/C/man2/timerfd_create.2:363
13304 msgid "B<timerfd_settime>()  can also fail with the following errors:"
13305 msgstr "B<timerfd_settime>()  は以下のエラーで失敗することもある。"
13306
13307 #. type: Plain text
13308 #: build/C/man2/timerfd_create.2:369
13309 msgid ""
13310 "I<new_value> is not properly initialized (one of the I<tv_nsec> falls "
13311 "outside the range zero to 999,999,999)."
13312 msgstr ""
13313 "I<new_value> が適切に初期化されていない (I<tv_nsec> の一つが 0 から "
13314 "999,999,999 までの範囲に入っていない)。"
13315
13316 #.  This case only checked since 2.6.29, and 2.2.2[78].some-stable-version.
13317 #.  In older kernel versions, no check was made for invalid flags.
13318 #. type: Plain text
13319 #: build/C/man2/timerfd_create.2:375
13320 msgid "I<flags> is invalid."
13321 msgstr "I<flags> が無効である。"
13322
13323 #. type: Plain text
13324 #: build/C/man2/timerfd_create.2:378
13325 msgid ""
13326 "These system calls are available on Linux since kernel 2.6.25.  Library "
13327 "support is provided by glibc since version 2.8."
13328 msgstr ""
13329 "これらのシステムコールはカーネル 2.6.25 以降の Linux で利用可能である。 ライ"
13330 "ブラリ側のサポートはバージョン 2.8 以降の glibc で提供されている。"
13331
13332 #.  2.6.29
13333 #. type: Plain text
13334 #: build/C/man2/timerfd_create.2:386
13335 msgid ""
13336 "Currently, B<timerfd_create>()  supports fewer types of clock IDs than "
13337 "B<timer_create>(2)."
13338 msgstr ""
13339 "現在のところ、 B<timerfd_create>()  が対応している clockid の種類は "
13340 "B<timer_create>(2)  よりも少ない。"
13341
13342 #. type: Plain text
13343 #: build/C/man2/timerfd_create.2:395
13344 msgid ""
13345 "The following program creates a timer and then monitors its progress.  The "
13346 "program accepts up to three command-line arguments.  The first argument "
13347 "specifies the number of seconds for the initial expiration of the timer.  "
13348 "The second argument specifies the interval for the timer, in seconds.  The "
13349 "third argument specifies the number of times the program should allow the "
13350 "timer to expire before terminating.  The second and third command-line "
13351 "arguments are optional."
13352 msgstr ""
13353 "以下のプログラムは、タイマーを作成し、その進捗をモニターするものである。 この"
13354 "プログラムは最大で 3 個のコマンドライン引き数を取り、 第一引き数ではタイマー"
13355 "の満了時間の初期値 (秒数単位) を、 第二引き数ではタイマーの間隔 (秒数単位) "
13356 "を、 第三引き数ではタイマーが何回満了したらプログラムが終了するかを指定す"
13357 "る。 第二引き数と第三引き数は省略可能である。"
13358
13359 #. type: Plain text
13360 #: build/C/man2/timerfd_create.2:397 build/C/man2/wait.2:571
13361 msgid "The following shell session demonstrates the use of the program:"
13362 msgstr "以下のシェルのセッションはこのプログラムの使用例を示したものである。"
13363
13364 #. type: Plain text
13365 #: build/C/man2/timerfd_create.2:412
13366 #, no-wrap
13367 msgid ""
13368 "$B< a.out 3 1 100>\n"
13369 "0.000: timer started\n"
13370 "3.000: read: 1; total=1\n"
13371 "4.000: read: 1; total=2\n"
13372 "B<^Z >                 # type control-Z to suspend the program\n"
13373 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
13374 "$ B<fg>                # Resume execution after a few seconds\n"
13375 "a.out 3 1 100\n"
13376 "9.660: read: 5; total=7\n"
13377 "10.000: read: 1; total=8\n"
13378 "11.000: read: 1; total=9\n"
13379 "B<^C >                 # type control-C to suspend the program\n"
13380 msgstr ""
13381 "$B< a.out 3 1 100>\n"
13382 "0.000: timer started\n"
13383 "3.000: read: 1; total=1\n"
13384 "4.000: read: 1; total=2\n"
13385 "B<^Z >                 # type control-Z to suspend the program\n"
13386 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
13387 "$ B<fg>                # Resume execution after a few seconds\n"
13388 "a.out 3 1 100\n"
13389 "9.660: read: 5; total=7\n"
13390 "10.000: read: 1; total=8\n"
13391 "11.000: read: 1; total=9\n"
13392 "B<^C >                 # type control-C to suspend the program\n"
13393
13394 #.  The commented out code here is what we currently need until
13395 #.  the required stuff is in glibc
13396 #. /* Link with -lrt */
13397 #. #define _GNU_SOURCE
13398 #. #include <sys/syscall.h>
13399 #. #include <unistd.h>
13400 #. #include <time.h>
13401 #. #if defined(__i386__)
13402 #. #define __NR_timerfd_create 322
13403 #. #define __NR_timerfd_settime 325
13404 #. #define __NR_timerfd_gettime 326
13405 #. #endif
13406 #. static int
13407 #. timerfd_create(int clockid, int flags)
13408 #. {
13409 #.     return syscall(__NR_timerfd_create, clockid, flags);
13410 #. }
13411 #. static int
13412 #. timerfd_settime(int fd, int flags, struct itimerspec *new_value,
13413 #.         struct itimerspec *curr_value)
13414 #. {
13415 #.     return syscall(__NR_timerfd_settime, fd, flags, new_value,
13416 #.                    curr_value);
13417 #. }
13418 #. static int
13419 #. timerfd_gettime(int fd, struct itimerspec *curr_value)
13420 #. {
13421 #.     return syscall(__NR_timerfd_gettime, fd, curr_value);
13422 #. }
13423 #. #define TFD_TIMER_ABSTIME (1 << 0)
13424 #. ////////////////////////////////////////////////////////////
13425 #. type: Plain text
13426 #: build/C/man2/timerfd_create.2:461
13427 #, no-wrap
13428 msgid ""
13429 "#include E<lt>sys/timerfd.hE<gt>\n"
13430 "#include E<lt>time.hE<gt>\n"
13431 "#include E<lt>unistd.hE<gt>\n"
13432 "#include E<lt>stdlib.hE<gt>\n"
13433 "#include E<lt>stdio.hE<gt>\n"
13434 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
13435 msgstr ""
13436 "#include E<lt>sys/timerfd.hE<gt>\n"
13437 "#include E<lt>time.hE<gt>\n"
13438 "#include E<lt>unistd.hE<gt>\n"
13439 "#include E<lt>stdlib.hE<gt>\n"
13440 "#include E<lt>stdio.hE<gt>\n"
13441 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
13442
13443 #. type: Plain text
13444 #: build/C/man2/timerfd_create.2:464
13445 #, no-wrap
13446 msgid ""
13447 "#define handle_error(msg) \\e\n"
13448 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
13449 msgstr ""
13450 "#define handle_error(msg) \\e\n"
13451 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
13452
13453 #. type: Plain text
13454 #: build/C/man2/timerfd_create.2:472
13455 #, no-wrap
13456 msgid ""
13457 "static void\n"
13458 "print_elapsed_time(void)\n"
13459 "{\n"
13460 "    static struct timespec start;\n"
13461 "    struct timespec curr;\n"
13462 "    static int first_call = 1;\n"
13463 "    int secs, nsecs;\n"
13464 msgstr ""
13465 "static void\n"
13466 "print_elapsed_time(void)\n"
13467 "{\n"
13468 "    static struct timespec start;\n"
13469 "    struct timespec curr;\n"
13470 "    static int first_call = 1;\n"
13471 "    int secs, nsecs;\n"
13472
13473 #. type: Plain text
13474 #: build/C/man2/timerfd_create.2:478
13475 #, no-wrap
13476 msgid ""
13477 "    if (first_call) {\n"
13478 "        first_call = 0;\n"
13479 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
13480 "            handle_error(\"clock_gettime\");\n"
13481 "    }\n"
13482 msgstr ""
13483 "    if (first_call) {\n"
13484 "        first_call = 0;\n"
13485 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
13486 "            handle_error(\"clock_gettime\");\n"
13487 "    }\n"
13488
13489 #. type: Plain text
13490 #: build/C/man2/timerfd_create.2:481
13491 #, no-wrap
13492 msgid ""
13493 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
13494 "        handle_error(\"clock_gettime\");\n"
13495 msgstr ""
13496 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
13497 "        handle_error(\"clock_gettime\");\n"
13498
13499 #. type: Plain text
13500 #: build/C/man2/timerfd_create.2:490
13501 #, no-wrap
13502 msgid ""
13503 "    secs = curr.tv_sec - start.tv_sec;\n"
13504 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
13505 "    if (nsecs E<lt> 0) {\n"
13506 "        secs--;\n"
13507 "        nsecs += 1000000000;\n"
13508 "    }\n"
13509 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
13510 "}\n"
13511 msgstr ""
13512 "    secs = curr.tv_sec - start.tv_sec;\n"
13513 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
13514 "    if (nsecs E<lt> 0) {\n"
13515 "        secs--;\n"
13516 "        nsecs += 1000000000;\n"
13517 "    }\n"
13518 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
13519 "}\n"
13520
13521 #. type: Plain text
13522 #: build/C/man2/timerfd_create.2:499
13523 #, no-wrap
13524 msgid ""
13525 "int\n"
13526 "main(int argc, char *argv[])\n"
13527 "{\n"
13528 "    struct itimerspec new_value;\n"
13529 "    int max_exp, fd;\n"
13530 "    struct timespec now;\n"
13531 "    uint64_t exp, tot_exp;\n"
13532 "    ssize_t s;\n"
13533 msgstr ""
13534 "int\n"
13535 "main(int argc, char *argv[])\n"
13536 "{\n"
13537 "    struct itimerspec new_value;\n"
13538 "    int max_exp, fd;\n"
13539 "    struct timespec now;\n"
13540 "    uint64_t exp, tot_exp;\n"
13541 "    ssize_t s;\n"
13542
13543 #. type: Plain text
13544 #: build/C/man2/timerfd_create.2:505
13545 #, no-wrap
13546 msgid ""
13547 "    if ((argc != 2) && (argc != 4)) {\n"
13548 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
13549 "                argv[0]);\n"
13550 "        exit(EXIT_FAILURE);\n"
13551 "    }\n"
13552 msgstr ""
13553 "    if ((argc != 2) && (argc != 4)) {\n"
13554 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
13555 "                argv[0]);\n"
13556 "        exit(EXIT_FAILURE);\n"
13557 "    }\n"
13558
13559 #. type: Plain text
13560 #: build/C/man2/timerfd_create.2:508
13561 #, no-wrap
13562 msgid ""
13563 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
13564 "        handle_error(\"clock_gettime\");\n"
13565 msgstr ""
13566 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
13567 "        handle_error(\"clock_gettime\");\n"
13568
13569 #. type: Plain text
13570 #: build/C/man2/timerfd_create.2:511
13571 #, no-wrap
13572 msgid ""
13573 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
13574 "       expiration and interval as specified in command line */\n"
13575 msgstr ""
13576 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
13577 "       expiration and interval as specified in command line */\n"
13578
13579 #. type: Plain text
13580 #: build/C/man2/timerfd_create.2:522
13581 #, no-wrap
13582 msgid ""
13583 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
13584 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
13585 "    if (argc == 2) {\n"
13586 "        new_value.it_interval.tv_sec = 0;\n"
13587 "        max_exp = 1;\n"
13588 "    } else {\n"
13589 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
13590 "        max_exp = atoi(argv[3]);\n"
13591 "    }\n"
13592 "    new_value.it_interval.tv_nsec = 0;\n"
13593 msgstr ""
13594 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
13595 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
13596 "    if (argc == 2) {\n"
13597 "        new_value.it_interval.tv_sec = 0;\n"
13598 "        max_exp = 1;\n"
13599 "    } else {\n"
13600 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
13601 "        max_exp = atoi(argv[3]);\n"
13602 "    }\n"
13603 "    new_value.it_interval.tv_nsec = 0;\n"
13604
13605 #. type: Plain text
13606 #: build/C/man2/timerfd_create.2:526
13607 #, no-wrap
13608 msgid ""
13609 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
13610 "    if (fd == -1)\n"
13611 "        handle_error(\"timerfd_create\");\n"
13612 msgstr ""
13613 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
13614 "    if (fd == -1)\n"
13615 "        handle_error(\"timerfd_create\");\n"
13616
13617 #. type: Plain text
13618 #: build/C/man2/timerfd_create.2:529
13619 #, no-wrap
13620 msgid ""
13621 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
13622 "        handle_error(\"timerfd_settime\");\n"
13623 msgstr ""
13624 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
13625 "        handle_error(\"timerfd_settime\");\n"
13626
13627 #. type: Plain text
13628 #: build/C/man2/timerfd_create.2:532
13629 #, no-wrap
13630 msgid ""
13631 "    print_elapsed_time();\n"
13632 "    printf(\"timer started\\en\");\n"
13633 msgstr ""
13634 "    print_elapsed_time();\n"
13635 "    printf(\"timer started\\en\");\n"
13636
13637 #. type: Plain text
13638 #: build/C/man2/timerfd_create.2:537
13639 #, no-wrap
13640 msgid ""
13641 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
13642 "        s = read(fd, &exp, sizeof(uint64_t));\n"
13643 "        if (s != sizeof(uint64_t))\n"
13644 "            handle_error(\"read\");\n"
13645 msgstr ""
13646 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
13647 "        s = read(fd, &exp, sizeof(uint64_t));\n"
13648 "        if (s != sizeof(uint64_t))\n"
13649 "            handle_error(\"read\");\n"
13650
13651 #. type: Plain text
13652 #: build/C/man2/timerfd_create.2:544
13653 #, no-wrap
13654 msgid ""
13655 "        tot_exp += exp;\n"
13656 "        print_elapsed_time();\n"
13657 "        printf(\"read: %llu; total=%llu\\en\",\n"
13658 "                (unsigned long long) exp,\n"
13659 "                (unsigned long long) tot_exp);\n"
13660 "    }\n"
13661 msgstr ""
13662 "        tot_exp += exp;\n"
13663 "        print_elapsed_time();\n"
13664 "        printf(\"read: %llu; total=%llu\\en\",\n"
13665 "                (unsigned long long) exp,\n"
13666 "                (unsigned long long) tot_exp);\n"
13667 "    }\n"
13668
13669 #. type: Plain text
13670 #: build/C/man2/timerfd_create.2:560
13671 msgid ""
13672 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
13673 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), "
13674 "B<timer_settime>(2), B<epoll>(7), B<time>(7)"
13675 msgstr ""
13676 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
13677 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), "
13678 "B<timer_settime>(2), B<epoll>(7), B<time>(7)"
13679
13680 #. type: TH
13681 #: build/C/man2/tkill.2:29
13682 #, no-wrap
13683 msgid "TKILL"
13684 msgstr "TKILL"
13685
13686 #. type: Plain text
13687 #: build/C/man2/tkill.2:32
13688 msgid "tkill, tgkill - send a signal to a thread"
13689 msgstr "tkill, tgkill - スレッドにシグナルを送る"
13690
13691 #. type: Plain text
13692 #: build/C/man2/tkill.2:35
13693 #, no-wrap
13694 msgid "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
13695 msgstr "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
13696
13697 #. type: Plain text
13698 #: build/C/man2/tkill.2:37
13699 #, no-wrap
13700 msgid "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
13701 msgstr "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
13702
13703 #. type: Plain text
13704 #: build/C/man2/tkill.2:54
13705 msgid ""
13706 "B<tgkill>()  sends the signal I<sig> to the thread with the thread ID I<tid> "
13707 "in the thread group I<tgid>.  (By contrast, B<kill>(2)  can be used to send "
13708 "a signal only to a process (i.e., thread group)  as a whole, and the signal "
13709 "will be delivered to an arbitrary thread within that process.)"
13710 msgstr ""
13711 "B<tgkill>()  はスレッドグループ I<tgid> に属するスレッド ID が I<tid> のス"
13712 "レッドにシグナル I<sig> を送る。 (これに対し、 B<kill>(2)  は一つのプロセス "
13713 "(すなわち、スレッドグループ) にまとめてシグナルを 送るのにだけ利用できる。 "
13714 "B<kill>(2)  で送信されたシグナルはプロセス内の任意のスレッドに配送される。)"
13715
13716 #.  FIXME Maybe say something about the following:
13717 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=12889
13718 #.      Rich Felker <bugdal@aerifal.cx>
13719 #.      There is a race condition in pthread_kill: it is possible that,
13720 #.      between the time pthread_kill reads the pid/tid from the target
13721 #.      thread descriptor and the time it makes the tgkill syscall,
13722 #.      the target thread terminates and the same tid gets assigned
13723 #.      to a new thread in the same process.
13724 #.      (The tgkill syscall was designed to eliminate a similar race
13725 #.      condition in tkill, but it only succeeded in eliminating races
13726 #.      where the tid gets reused in a different process, and does not
13727 #.      help if the same tid gets assigned to a new thread in the
13728 #.      same process.)
13729 #.      The only solution I can see is to introduce a mutex that ensures
13730 #.      that a thread cannot exit while pthread_kill is being called on it.
13731 #.      Note that in most real-world situations, like almost all race
13732 #.      conditions, this one will be extremely rare. To make it
13733 #.      measurable, one could exhaust all but 1-2 available pid values,
13734 #.      possibly by lowering the max pid parameter in /proc, forcing
13735 #.      the same tid to be reused rapidly.
13736 #. type: Plain text
13737 #: build/C/man2/tkill.2:85
13738 msgid ""
13739 "B<tkill>()  is an obsolete predecessor to B<tgkill>().  It allows only the "
13740 "target thread ID to be specified, which may result in the wrong thread being "
13741 "signaled if a thread terminates and its thread ID is recycled.  Avoid using "
13742 "this system call."
13743 msgstr ""
13744 "B<tkill>()  はもう使われなくなった B<tgkill>()  の先祖である。 B<tkill>()  で"
13745 "はシグナルの送り先のスレッド ID しか指定できない。 そのため、スレッドが終了し"
13746 "て、そのスレッド ID が再利用される場合に、 意図しないスレッドにシグナルが送ら"
13747 "れる可能性がある。 このシステムコールの使用は避けること。"
13748
13749 #. type: Plain text
13750 #: build/C/man2/tkill.2:88
13751 msgid ""
13752 "These are the raw system call interfaces, meant for internal thread library "
13753 "use."
13754 msgstr ""
13755 "これらはシステムコールへの直接のインターフェースであり、 スレッドライブラリ内"
13756 "部での使用を意図したものである。"
13757
13758 #. type: Plain text
13759 #: build/C/man2/tkill.2:96
13760 msgid "An invalid thread ID, thread group ID, or signal was specified."
13761 msgstr "指定されたスレッド ID、スレッドグループ ID、シグナルが不正であった。"
13762
13763 #. type: Plain text
13764 #: build/C/man2/tkill.2:101
13765 msgid "Permission denied.  For the required permissions, see B<kill>(2)."
13766 msgstr ""
13767 "許可がなかった。どのような許可が必要かについては、 B<kill>(2)  を参照のこと。"
13768
13769 #. type: Plain text
13770 #: build/C/man2/tkill.2:104
13771 msgid "No process with the specified thread ID (and thread group ID) exists."
13772 msgstr ""
13773 "指定されたスレッドID (とスレッドグループID) を持つプロセスが存在しない。"
13774
13775 #. type: Plain text
13776 #: build/C/man2/tkill.2:109
13777 msgid ""
13778 "B<tkill>()  is supported since Linux 2.4.19 / 2.5.4.  B<tgkill>()  was added "
13779 "in Linux 2.5.75."
13780 msgstr ""
13781 "B<tkill>()  は Linux 2.4.19 / 2.5.4 以降でサポートされ、 B<tgkill>()  は "
13782 "Linux 2.5.75 で追加された。"
13783
13784 #. type: Plain text
13785 #: build/C/man2/tkill.2:115
13786 msgid ""
13787 "B<tkill>()  and B<tgkill>()  are Linux-specific and should not be used in "
13788 "programs that are intended to be portable."
13789 msgstr ""
13790 "B<tkill>()  と B<tgkill>()  は Linux 固有であり、 移植を想定したプログラムで"
13791 "は使用すべきではない。"
13792
13793 #. type: Plain text
13794 #: build/C/man2/tkill.2:121
13795 msgid ""
13796 "See the description of B<CLONE_THREAD> in B<clone>(2)  for an explanation of "
13797 "thread groups."
13798 msgstr ""
13799 "スレッドグループの説明については B<clone>(2)  の B<CLONE_THREAD> の説明を参照"
13800 "のこと。"
13801
13802 #. type: Plain text
13803 #: build/C/man2/tkill.2:124
13804 msgid ""
13805 "Glibc does not provide wrappers for these system calls; call them using "
13806 "B<syscall>(2)."
13807 msgstr ""
13808 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
13809 "B<syscall>(2)  を使って呼び出すこと。"
13810
13811 #. type: Plain text
13812 #: build/C/man2/tkill.2:129
13813 msgid "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
13814 msgstr "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
13815
13816 #. type: TH
13817 #: build/C/man2/wait.2:49
13818 #, no-wrap
13819 msgid "WAIT"
13820 msgstr "WAIT"
13821
13822 #. type: Plain text
13823 #: build/C/man2/wait.2:52
13824 msgid "wait, waitpid, waitid - wait for process to change state"
13825 msgstr "wait, waitpid, waitid - プロセスの状態変化を待つ"
13826
13827 #. type: Plain text
13828 #: build/C/man2/wait.2:54
13829 msgid "B<#include E<lt>sys/types.hE<gt>>"
13830 msgstr "B<#include E<lt>sys/types.hE<gt>>"
13831
13832 #. type: Plain text
13833 #: build/C/man2/wait.2:56
13834 msgid "B<#include E<lt>sys/wait.hE<gt>>"
13835 msgstr "B<#include E<lt>sys/wait.hE<gt>>"
13836
13837 #. type: Plain text
13838 #: build/C/man2/wait.2:58
13839 msgid "B<pid_t wait(int *>I<status>B<);>"
13840 msgstr "B<pid_t wait(int *>I<status>B<);>"
13841
13842 #. type: Plain text
13843 #: build/C/man2/wait.2:60
13844 msgid ""
13845 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
13846 msgstr ""
13847 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
13848
13849 #. type: Plain text
13850 #: build/C/man2/wait.2:65
13851 #, no-wrap
13852 msgid ""
13853 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, int >I<options>B<);>\n"
13854 "                /* This is the glibc and POSIX interface; see\n"
13855 "                   NOTES for information on the raw system call. */\n"
13856 msgstr ""
13857 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, int >I<options>B<);>\n"
13858 "                /* これは glibc と POSIX のインターフェイスである。\n"
13859 "                   生のシステムコールについての情報は「注意」の節を参照。 */\n"
13860
13861 #. type: Plain text
13862 #: build/C/man2/wait.2:74
13863 msgid "B<waitid>():"
13864 msgstr "B<waitid>():"
13865
13866 #. type: Plain text
13867 #: build/C/man2/wait.2:78
13868 msgid ""
13869 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13870 "_XOPEN_SOURCE_EXTENDED"
13871 msgstr ""
13872 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13873 "_XOPEN_SOURCE_EXTENDED"
13874
13875 #. type: Plain text
13876 #: build/C/man2/wait.2:93
13877 msgid ""
13878 "All of these system calls are used to wait for state changes in a child of "
13879 "the calling process, and obtain information about the child whose state has "
13880 "changed.  A state change is considered to be: the child terminated; the "
13881 "child was stopped by a signal; or the child was resumed by a signal.  In the "
13882 "case of a terminated child, performing a wait allows the system to release "
13883 "the resources associated with the child; if a wait is not performed, then "
13884 "the terminated child remains in a \"zombie\" state (see NOTES below)."
13885 msgstr ""
13886 "これらのシステムコールはいずれも、呼び出し元プロセスの子プロセスの 状態変化を"
13887 "待ち、状態が変化したその子プロセスの情報を取得するのに 使用される。 状態変化"
13888 "とは以下のいずれかである: 子プロセスの終了、シグナルによる子プロセスの停止、 "
13889 "シグナルによる子プロセスの再開。 子プロセスが終了した場合は、wait を実行する"
13890 "ことで、 システムがその子プロセスに関連するリソースを解放できるようになる。 "
13891 "wait が実行されなかった場合には、終了した子プロセスは 「ゾンビ」状態で残り続"
13892 "ける (下記の注意の章を参照のこと)。"
13893
13894 #. type: Plain text
13895 #: build/C/man2/wait.2:105
13896 msgid ""
13897 "If a child has already changed state, then these calls return immediately.  "
13898 "Otherwise, they block until either a child changes state or a signal handler "
13899 "interrupts the call (assuming that system calls are not automatically "
13900 "restarted using the B<SA_RESTART> flag of B<sigaction>(2)).  In the "
13901 "remainder of this page, a child whose state has changed and which has not "
13902 "yet been waited upon by one of these system calls is termed I<waitable>."
13903 msgstr ""
13904 "子プロセスの状態変化がすでに発生していた場合、これらのコールは すぐに復帰す"
13905 "る。それ以外の場合は、子プロセスの状態変化が起こるか、 シグナルハンドラーによ"
13906 "りシステムコールが中断されるまで、 停止 (block) する (後者は、 "
13907 "B<sigaction>(2)  の B<SA_RESTART> フラグによりシステムコールが自動的に再ス"
13908 "タートするようになっていない 場合の動作である)。 以下の説明では、状態変化が起"
13909 "こったがこれらのシステムコールのいずれかに よって待たれていない子プロセスを "
13910 "I<waitable> (待ち可能) と呼ぶ。"
13911
13912 #. type: SS
13913 #: build/C/man2/wait.2:105
13914 #, no-wrap
13915 msgid "wait() and waitpid()"
13916 msgstr "wait() と waitpid()"
13917
13918 #. type: Plain text
13919 #: build/C/man2/wait.2:113
13920 msgid ""
13921 "The B<wait>()  system call suspends execution of the calling process until "
13922 "one of its children terminates.  The call I<wait(&status)> is equivalent to:"
13923 msgstr ""
13924 "B<wait>()  システムコールは、子プロセスのいずれかが終了するまで 呼び出し元の"
13925 "プロセスの実行を一時停止する。 呼び出し I<wait(&status)> は以下と等価である:"
13926
13927 #. type: Plain text
13928 #: build/C/man2/wait.2:116
13929 #, no-wrap
13930 msgid "    waitpid(-1, &status, 0);\n"
13931 msgstr "    waitpid(-1, &status, 0);\n"
13932
13933 #. type: Plain text
13934 #: build/C/man2/wait.2:130
13935 msgid ""
13936 "The B<waitpid>()  system call suspends execution of the calling process "
13937 "until a child specified by I<pid> argument has changed state.  By default, "
13938 "B<waitpid>()  waits only for terminated children, but this behavior is "
13939 "modifiable via the I<options> argument, as described below."
13940 msgstr ""
13941 "B<waitpid>()  システムコールは、 I<pid> 引き数で指定した子プロセスの状態変化"
13942 "が起こるまで、 呼び出し元のプロセスの実行を一時停止する。デフォルトでは、 "
13943 "B<waitpid>()  は子プロセスの終了だけを待つが、この動作は I<options> 引き数に"
13944 "より変更可能である。"
13945
13946 #. type: Plain text
13947 #: build/C/man2/wait.2:134
13948 msgid "The value of I<pid> can be:"
13949 msgstr "I<pid> に指定できる値は以下の通り:"
13950
13951 #. type: IP
13952 #: build/C/man2/wait.2:134
13953 #, no-wrap
13954 msgid "E<lt> -1"
13955 msgstr "E<lt> -1"
13956
13957 #. type: Plain text
13958 #: build/C/man2/wait.2:138
13959 msgid ""
13960 "meaning wait for any child process whose process group ID is equal to the "
13961 "absolute value of I<pid>."
13962 msgstr ""
13963 "プロセスグループID が I<pid> の絶対値に等しい子プロセスのいずれかが終了するま"
13964 "でを待つ。"
13965
13966 #. type: IP
13967 #: build/C/man2/wait.2:138
13968 #, no-wrap
13969 msgid "-1"
13970 msgstr "-1"
13971
13972 #. type: Plain text
13973 #: build/C/man2/wait.2:140
13974 msgid "meaning wait for any child process."
13975 msgstr "子プロセスのどれかが終了するまで待つ。"
13976
13977 #. type: IP
13978 #: build/C/man2/wait.2:140
13979 #, no-wrap
13980 msgid "0"
13981 msgstr "0"
13982
13983 #. type: Plain text
13984 #: build/C/man2/wait.2:143
13985 msgid ""
13986 "meaning wait for any child process whose process group ID is equal to that "
13987 "of the calling process."
13988 msgstr ""
13989 "プロセスグループID が呼び出したプロセスのものと等しい 子プロセスを待つ。"
13990
13991 #. type: IP
13992 #: build/C/man2/wait.2:143
13993 #, no-wrap
13994 msgid "E<gt> 0"
13995 msgstr "E<gt> 0"
13996
13997 #. type: Plain text
13998 #: build/C/man2/wait.2:147
13999 msgid ""
14000 "meaning wait for the child whose process ID is equal to the value of I<pid>."
14001 msgstr "プロセスID が I<pid> に等しい子プロセスを待つ。"
14002
14003 #. type: Plain text
14004 #: build/C/man2/wait.2:151
14005 msgid ""
14006 "The value of I<options> is an OR of zero or more of the following constants:"
14007 msgstr "I<options> の値は次の定数の 0 個以上の論理和である:"
14008
14009 #. type: TP
14010 #: build/C/man2/wait.2:151 build/C/man2/wait.2:280
14011 #, no-wrap
14012 msgid "B<WNOHANG>"
14013 msgstr "B<WNOHANG>"
14014
14015 #. type: Plain text
14016 #: build/C/man2/wait.2:154
14017 msgid "return immediately if no child has exited."
14018 msgstr "状態変化が起こった子プロセスがない場合にすぐに復帰する。"
14019
14020 #. type: TP
14021 #: build/C/man2/wait.2:154
14022 #, no-wrap
14023 msgid "B<WUNTRACED>"
14024 msgstr "B<WUNTRACED>"
14025
14026 #. type: Plain text
14027 #: build/C/man2/wait.2:163
14028 msgid ""
14029 "also return if a child has stopped (but not traced via B<ptrace>(2)).  "
14030 "Status for I<traced> children which have stopped is provided even if this "
14031 "option is not specified."
14032 msgstr ""
14033 "子プロセスが停止した場合にも復帰する (子プロセスが B<ptrace>(2)  でトレースさ"
14034 "れている場合は除く)。 このオプションが指定されていない場合でも、停止したプロ"
14035 "セスが 「トレース (traced)」されていれば、子プロセスの状態が報告される。"
14036
14037 #. type: TP
14038 #: build/C/man2/wait.2:163
14039 #, no-wrap
14040 msgid "B<WCONTINUED> (since Linux 2.6.10)"
14041 msgstr "B<WCONTINUED> (Linux 2.6.10 以降)"
14042
14043 #. type: Plain text
14044 #: build/C/man2/wait.2:167
14045 msgid ""
14046 "also return if a stopped child has been resumed by delivery of B<SIGCONT>."
14047 msgstr "停止した子プロセスが B<SIGCONT> の配送により再開した場合にも復帰する。"
14048
14049 #. type: Plain text
14050 #: build/C/man2/wait.2:169
14051 msgid "(For Linux-only options, see below.)"
14052 msgstr "(Linux 専用オプションについては後述する)"
14053
14054 #. type: Plain text
14055 #: build/C/man2/wait.2:183
14056 msgid ""
14057 "If I<status> is not NULL, B<wait>()  and B<waitpid>()  store status "
14058 "information in the I<int> to which it points.  This integer can be inspected "
14059 "with the following macros (which take the integer itself as an argument, not "
14060 "a pointer to it, as is done in B<wait>()  and B<waitpid>()!):"
14061 msgstr ""
14062 "I<status> が NULL でなければ、 B<wait>()  や B<waitpid>()  は I<status> で指"
14063 "す I<int> に状態情報を格納する。 この整数は以下のマクロを使って検査できる。 "
14064 "(これらのマクロの引き数には、 B<wait>()  や B<waitpid>()  が書き込んだ整数そ"
14065 "のものを指定する。ポインターではない!)"
14066
14067 #. type: TP
14068 #: build/C/man2/wait.2:183
14069 #, no-wrap
14070 msgid "B<WIFEXITED(>I<status>B<)>"
14071 msgstr "B<WIFEXITED(>I<status>B<)>"
14072
14073 #. type: Plain text
14074 #: build/C/man2/wait.2:191
14075 msgid ""
14076 "returns true if the child terminated normally, that is, by calling "
14077 "B<exit>(3)  or B<_exit>(2), or by returning from main()."
14078 msgstr ""
14079 "子プロセスが正常に終了した場合に真を返す。 「正常に」とは、 B<exit>(3)  か "
14080 "B<_exit>(2)  が呼び出された場合、もしくは main() から復帰した場合である。"
14081
14082 #. type: TP
14083 #: build/C/man2/wait.2:191
14084 #, no-wrap
14085 msgid "B<WEXITSTATUS(>I<status>B<)>"
14086 msgstr "B<WEXITSTATUS(>I<status>B<)>"
14087
14088 #. type: Plain text
14089 #: build/C/man2/wait.2:204
14090 msgid ""
14091 "returns the exit status of the child.  This consists of the least "
14092 "significant 8 bits of the I<status> argument that the child specified in a "
14093 "call to B<exit>(3)  or B<_exit>(2)  or as the argument for a return "
14094 "statement in main().  This macro should be employed only if B<WIFEXITED> "
14095 "returned true."
14096 msgstr ""
14097 "子プロセスの終了ステータスを返す。 終了ステータスは I<status> 引き数の下位 8"
14098 "ビットで構成されており、 B<exit>(3)  や B<_exit>(2)  の呼び出し時に渡された"
14099 "値、もしくは main() の return 文の 引き数として指定された値である。 このマク"
14100 "ロを使用するのは B<WIFEXITED> が真を返した場合だけにすべきである。"
14101
14102 #. type: TP
14103 #: build/C/man2/wait.2:204
14104 #, no-wrap
14105 msgid "B<WIFSIGNALED(>I<status>B<)>"
14106 msgstr "B<WIFSIGNALED(>I<status>B<)>"
14107
14108 #. type: Plain text
14109 #: build/C/man2/wait.2:207
14110 msgid "returns true if the child process was terminated by a signal."
14111 msgstr "子プロセスがシグナルにより終了した場合に真を返す。"
14112
14113 #. type: TP
14114 #: build/C/man2/wait.2:207
14115 #, no-wrap
14116 msgid "B<WTERMSIG(>I<status>B<)>"
14117 msgstr "B<WTERMSIG(>I<status>B<)>"
14118
14119 #. type: Plain text
14120 #: build/C/man2/wait.2:214
14121 msgid ""
14122 "returns the number of the signal that caused the child process to "
14123 "terminate.  This macro should be employed only if B<WIFSIGNALED> returned "
14124 "true."
14125 msgstr ""
14126 "子プロセス終了の原因となったシグナルの番号を返す。 このマクロを使用するのは "
14127 "B<WIFSIGNALED> が真を返した場合だけにすべきである。"
14128
14129 #. type: TP
14130 #: build/C/man2/wait.2:214
14131 #, no-wrap
14132 msgid "B<WCOREDUMP(>I<status>B<)>"
14133 msgstr "B<WCOREDUMP(>I<status>B<)>"
14134
14135 #. type: Plain text
14136 #: build/C/man2/wait.2:223
14137 msgid ""
14138 "returns true if the child produced a core dump.  This macro should be "
14139 "employed only if B<WIFSIGNALED> returned true.  This macro is not specified "
14140 "in POSIX.1-2001 and is not available on some UNIX implementations (e.g., "
14141 "AIX, SunOS).  Only use this enclosed in #ifdef WCOREDUMP ... #endif."
14142 msgstr ""
14143 "子プロセスがコアダンプを生成した場合に真を返す。 このマクロを使用するのは "
14144 "B<WIFSIGNALED> が真を返した場合だけにすべきである。 このマクロは "
14145 "POSIX.1-2001 では規定されておらず、 (AIX, SunOS などの) いくつかの UNIX の実"
14146 "装では利用できない。 必ず #ifdef WCOREDUMP ... #endif で括って使用すること。"
14147
14148 #. type: TP
14149 #: build/C/man2/wait.2:223
14150 #, no-wrap
14151 msgid "B<WIFSTOPPED(>I<status>B<)>"
14152 msgstr "B<WIFSTOPPED(>I<status>B<)>"
14153
14154 #. type: Plain text
14155 #: build/C/man2/wait.2:230
14156 msgid ""
14157 "returns true if the child process was stopped by delivery of a signal; this "
14158 "is possible only if the call was done using B<WUNTRACED> or when the child "
14159 "is being traced (see B<ptrace>(2))."
14160 msgstr ""
14161 "子プロセスがシグナルの配送により停止した場合に真を返す。 これが真になるのは、"
14162 "システムコールが B<WUNTRACED> を指定して呼び出された場合か、子プロセスがト"
14163 "レースされている場合 (B<ptrace>(2)  参照) だけである。"
14164
14165 #. type: TP
14166 #: build/C/man2/wait.2:230
14167 #, no-wrap
14168 msgid "B<WSTOPSIG(>I<status>B<)>"
14169 msgstr "B<WSTOPSIG(>I<status>B<)>"
14170
14171 #. type: Plain text
14172 #: build/C/man2/wait.2:236
14173 msgid ""
14174 "returns the number of the signal which caused the child to stop.  This macro "
14175 "should be employed only if B<WIFSTOPPED> returned true."
14176 msgstr ""
14177 "子プロセスを停止させたシグナルの番号を返す。 このマクロを使用するのは "
14178 "B<WIFSTOPPED> が 0 以外を返した場合だけにすべきである。"
14179
14180 #. type: TP
14181 #: build/C/man2/wait.2:236
14182 #, no-wrap
14183 msgid "B<WIFCONTINUED(>I<status>B<)>"
14184 msgstr "B<WIFCONTINUED(>I<status>B<)>"
14185
14186 #. type: Plain text
14187 #: build/C/man2/wait.2:241
14188 msgid ""
14189 "(since Linux 2.6.10)  returns true if the child process was resumed by "
14190 "delivery of B<SIGCONT>."
14191 msgstr ""
14192 "(Linux 2.6.10 以降)  子プロセスが B<SIGCONT> の配送により再開した場合に真を返"
14193 "す。"
14194
14195 #. type: SS
14196 #: build/C/man2/wait.2:241
14197 #, no-wrap
14198 msgid "waitid()"
14199 msgstr "waitid()"
14200
14201 #. type: Plain text
14202 #: build/C/man2/wait.2:246
14203 msgid ""
14204 "The B<waitid>()  system call (available since Linux 2.6.9) provides more "
14205 "precise control over which child state changes to wait for."
14206 msgstr ""
14207 "B<waitid>()  システムコール (Linux 2.6.9 以降で利用可能) を使うと、 子プロセ"
14208 "スのどの状態変化を待つかについてより細かな制御ができる。"
14209
14210 #. type: Plain text
14211 #: build/C/man2/wait.2:252
14212 msgid ""
14213 "The I<idtype> and I<id> arguments select the child(ren) to wait for, as "
14214 "follows:"
14215 msgstr "引き数 I<idtype> と I<id> でどの子プロセスを待つかを選択する:"
14216
14217 #. type: IP
14218 #: build/C/man2/wait.2:252
14219 #, no-wrap
14220 msgid "I<idtype> == B<P_PID>"
14221 msgstr "I<idtype> == B<P_PID>"
14222
14223 #. type: Plain text
14224 #: build/C/man2/wait.2:255
14225 msgid "Wait for the child whose process ID matches I<id>."
14226 msgstr "プロセスID が I<id> と一致する子プロセスを待つ。"
14227
14228 #. type: IP
14229 #: build/C/man2/wait.2:255
14230 #, no-wrap
14231 msgid "I<idtype> == B<P_PGID>"
14232 msgstr "I<idtype> == B<P_PGID>"
14233
14234 #. type: Plain text
14235 #: build/C/man2/wait.2:258
14236 msgid "Wait for any child whose process group ID matches I<id>."
14237 msgstr "プロセスグループID が I<id> と一致する子プロセスを待つ。"
14238
14239 #. type: IP
14240 #: build/C/man2/wait.2:258
14241 #, no-wrap
14242 msgid "I<idtype> == B<P_ALL>"
14243 msgstr "I<idtype> == B<P_ALL>"
14244
14245 #. type: Plain text
14246 #: build/C/man2/wait.2:262
14247 msgid "Wait for any child; I<id> is ignored."
14248 msgstr "子プロセス全部を対象に待つ。 I<id> は無視される。"
14249
14250 #. type: Plain text
14251 #: build/C/man2/wait.2:266
14252 msgid ""
14253 "The child state changes to wait for are specified by ORing one or more of "
14254 "the following flags in I<options>:"
14255 msgstr ""
14256 "子プロセスのどの状態変化を待つかは以下のフラグで指定する (I<options> には 1個"
14257 "以上のフラグの論理和をとって指定する):"
14258
14259 #. type: TP
14260 #: build/C/man2/wait.2:266
14261 #, no-wrap
14262 msgid "B<WEXITED>"
14263 msgstr "B<WEXITED>"
14264
14265 #. type: Plain text
14266 #: build/C/man2/wait.2:269
14267 msgid "Wait for children that have terminated."
14268 msgstr "子プロセスの終了を待つ。"
14269
14270 #. type: TP
14271 #: build/C/man2/wait.2:269
14272 #, no-wrap
14273 msgid "B<WSTOPPED>"
14274 msgstr "B<WSTOPPED>"
14275
14276 #. type: Plain text
14277 #: build/C/man2/wait.2:272
14278 msgid "Wait for children that have been stopped by delivery of a signal."
14279 msgstr "子プロセスがシグナルの配送により停止するのを待つ。"
14280
14281 #. type: TP
14282 #: build/C/man2/wait.2:272
14283 #, no-wrap
14284 msgid "B<WCONTINUED>"
14285 msgstr "B<WCONTINUED>"
14286
14287 #. type: Plain text
14288 #: build/C/man2/wait.2:277
14289 msgid ""
14290 "Wait for (previously stopped) children that have been resumed by delivery of "
14291 "B<SIGCONT>."
14292 msgstr "(停止していた) 子プロセスが B<SIGCONT> が配送されて再開するのを待つ。"
14293
14294 #. type: Plain text
14295 #: build/C/man2/wait.2:280
14296 msgid "The following flags may additionally be ORed in I<options>:"
14297 msgstr "さらに以下のフラグを論理和の形で I<options> に指定できる:"
14298
14299 #. type: Plain text
14300 #: build/C/man2/wait.2:284
14301 msgid "As for B<waitpid>()."
14302 msgstr "B<waitpid>()  と同様。"
14303
14304 #. type: TP
14305 #: build/C/man2/wait.2:284
14306 #, no-wrap
14307 msgid "B<WNOWAIT>"
14308 msgstr "B<WNOWAIT>"
14309
14310 #. type: Plain text
14311 #: build/C/man2/wait.2:288
14312 msgid ""
14313 "Leave the child in a waitable state; a later wait call can be used to again "
14314 "retrieve the child status information."
14315 msgstr ""
14316 "waitable 状態のプロセスをそのままにする。この後で wait コールを 使って、同じ"
14317 "子プロセスの状態情報をもう一度取得することができる。"
14318
14319 #. type: Plain text
14320 #: build/C/man2/wait.2:295
14321 msgid ""
14322 "Upon successful return, B<waitid>()  fills in the following fields of the "
14323 "I<siginfo_t> structure pointed to by I<infop>:"
14324 msgstr ""
14325 "成功した場合には、 B<waitid>()  は I<infop> が指す I<siginfo_t> 構造体の以下"
14326 "のフィールドを設定する:"
14327
14328 #. type: Plain text
14329 #: build/C/man2/wait.2:298
14330 msgid "The process ID of the child."
14331 msgstr "子プロセスのプロセスID。"
14332
14333 #. type: Plain text
14334 #: build/C/man2/wait.2:302
14335 msgid ""
14336 "The real user ID of the child.  (This field is not set on most other "
14337 "implementations.)"
14338 msgstr ""
14339 "子プロセスの実ユーザーID (このフィールドは他のほとんどの実装では設定されな"
14340 "い)。"
14341
14342 #. type: Plain text
14343 #: build/C/man2/wait.2:306
14344 msgid "Always set to B<SIGCHLD>."
14345 msgstr "常に B<SIGCHLD> が設定される。"
14346
14347 #. type: TP
14348 #: build/C/man2/wait.2:306
14349 #, no-wrap
14350 msgid "I<si_status>"
14351 msgstr "I<si_status>"
14352
14353 #. type: Plain text
14354 #: build/C/man2/wait.2:316
14355 msgid ""
14356 "Either the exit status of the child, as given to B<_exit>(2)  (or "
14357 "B<exit>(3)), or the signal that caused the child to terminate, stop, or "
14358 "continue.  The I<si_code> field can be used to determine how to interpret "
14359 "this field."
14360 msgstr ""
14361 "B<_exit>(2)  (か B<exit>(3))  に指定された子プロセスの終了ステータス、もしく"
14362 "は 子プロセスの終了、停止、再開の原因となったシグナルが設定される。 この"
14363 "フィールドをどう解釈するかは、 I<si_code> フィールドを参照して決めることがで"
14364 "きる。"
14365
14366 #. type: Plain text
14367 #: build/C/man2/wait.2:333
14368 msgid ""
14369 "Set to one of: B<CLD_EXITED> (child called B<_exit>(2)); B<CLD_KILLED> "
14370 "(child killed by signal); B<CLD_DUMPED> (child killed by signal, and dumped "
14371 "core); B<CLD_STOPPED> (child stopped by signal); B<CLD_TRAPPED> (traced "
14372 "child has trapped); or B<CLD_CONTINUED> (child continued by B<SIGCONT>)."
14373 msgstr ""
14374 "以下のいずれかが設定される: B<CLD_EXITED> (子プロセスが B<_exit>(2)  を呼び出"
14375 "した); B<CLD_KILLED> (シグナルにより子プロセスが kill された); B<CLD_DUMPED> "
14376 "(シグナルにより子プロセスが kill され、コアダンプが行われた); B<CLD_STOPPED> "
14377 "(シグナルにより子プロセスが停止した); B<CLD_TRAPPED> (トレースされていた子プ"
14378 "ロセスがトラップを受信した); B<CLD_CONTINUED> (B<SIGCONT> により子プロセスが"
14379 "再開された)。"
14380
14381 #.  POSIX.1-2001 leaves this possibility unspecified; most
14382 #.  implementations (including Linux) zero out the structure
14383 #.  in this case, but at least one implementation (AIX 5.1)
14384 #.  does not -- MTK Nov 04
14385 #. type: Plain text
14386 #: build/C/man2/wait.2:355
14387 msgid ""
14388 "If B<WNOHANG> was specified in I<options> and there were no children in a "
14389 "waitable state, then B<waitid>()  returns 0 immediately and the state of the "
14390 "I<siginfo_t> structure pointed to by I<infop> is unspecified.  To "
14391 "distinguish this case from that where a child was in a waitable state, zero "
14392 "out the I<si_pid> field before the call and check for a nonzero value in "
14393 "this field after the call returns."
14394 msgstr ""
14395 "B<WNOHANG> が I<options> に指定されていて、 waitable 状態の子プロセスがなかっ"
14396 "た場合には、 B<waitid>()  はすぐに 0 を返す。このとき、 I<infop> が指す "
14397 "I<siginfo_t> 構造体の内容は不定である。 この場合を waitable 状態の子プロセス"
14398 "があった場合と区別するには、 B<waitid>()  を呼び出す前に I<si_pid> を 0 にし"
14399 "ておき、コールが復帰した後でこのフィールドが 0 以外の値かどうか をチェックす"
14400 "ればよい。"
14401
14402 #. type: Plain text
14403 #: build/C/man2/wait.2:359
14404 msgid ""
14405 "B<wait>(): on success, returns the process ID of the terminated child; on "
14406 "error, -1 is returned."
14407 msgstr ""
14408 "B<wait>(): 成功すると、終了した子プロセスのプロセスID を返す。 エラーの場合 "
14409 "-1 を返す。"
14410
14411 #. type: Plain text
14412 #: build/C/man2/wait.2:368
14413 msgid ""
14414 "B<waitpid>(): on success, returns the process ID of the child whose state "
14415 "has changed; if B<WNOHANG> was specified and one or more child(ren) "
14416 "specified by I<pid> exist, but have not yet changed state, then 0 is "
14417 "returned.  On error, -1 is returned."
14418 msgstr ""
14419 "B<waitpid>(): 成功すると、状態が変化した子プロセスのプロセスID を返す。 "
14420 "B<WNOHANG> が指定されていて、 I<pid> で指示された子プロセスが一つ以上存在する"
14421 "が、どの子プロセスでも 状態変化が起こっていなかった場合は、 0 を返す。 エラー"
14422 "の場合 -1 を返す。"
14423
14424 #.  FIXME As reported by Vegard Nossum, if infop is NULL, then waitid()
14425 #.  returns the PID of the child.  Either this is a bug, or it is intended
14426 #.  behavior that needs to be documented.  See my Jan 2009 LKML mail
14427 #.  "waitid() return value strangeness when infop is NULL".
14428 #. type: Plain text
14429 #: build/C/man2/wait.2:381
14430 msgid ""
14431 "B<waitid>(): returns 0 on success or if B<WNOHANG> was specified and no "
14432 "child(ren) specified by I<id> has yet changed state; on error, -1 is "
14433 "returned."
14434 msgstr ""
14435 "B<waitid>(): 成功すると 0 を返す。 B<WNOHANG> が指定されていて、 I<pid> で指"
14436 "示された子プロセスで状態変化が起こっていなかった場合にも 0 を返す。"
14437
14438 #. type: Plain text
14439 #: build/C/man2/wait.2:385
14440 msgid ""
14441 "Each of these calls sets I<errno> to an appropriate value in the case of an "
14442 "error."
14443 msgstr ""
14444 "エラーの場合 -1 を返す。 エラーの場合、これらのシステムコールはいずれも "
14445 "I<errno> に適切な値を設定する。"
14446
14447 #. type: TP
14448 #: build/C/man2/wait.2:386 build/C/man2/wait.2:391
14449 #, no-wrap
14450 msgid "B<ECHILD>"
14451 msgstr "B<ECHILD>"
14452
14453 #. type: Plain text
14454 #: build/C/man2/wait.2:391
14455 msgid ""
14456 "(for B<wait>())  The calling process does not have any unwaited-for children."
14457 msgstr ""
14458 "(B<wait>()  の場合)  呼び出し元プロセスには、wait を行っていない子プロセスは"
14459 "ない。"
14460
14461 #. type: Plain text
14462 #: build/C/man2/wait.2:411
14463 msgid ""
14464 "(for B<waitpid>()  or B<waitid>())  The process specified by I<pid> "
14465 "(B<waitpid>())  or I<idtype> and I<id> (B<waitid>())  does not exist or is "
14466 "not a child of the calling process.  (This can happen for one's own child if "
14467 "the action for B<SIGCHLD> is set to B<SIG_IGN>.  See also the I<Linux Notes> "
14468 "section about threads.)"
14469 msgstr ""
14470 "(B<waitpid>()  か B<waitid>()  の場合)  I<pid> (B<waitpid>())  か I<idtype> "
14471 "と I<id> (B<waitid>())  で指定したプロセスが存在しないか、呼び出し元プロセス"
14472 "の子プロセスでない (B<SIGCHLD> の動作に B<SIG_IGN> を設定した場合には、自分自"
14473 "身の子プロセスでも起こりうる。 スレッドに関しては「Linux での注意」の節も参照"
14474 "すること)。"
14475
14476 #. type: Plain text
14477 #: build/C/man2/wait.2:418
14478 msgid ""
14479 "B<WNOHANG> was not set and an unblocked signal or a B<SIGCHLD> was caught; "
14480 "see B<signal>(7)."
14481 msgstr ""
14482 "B<WNOHANG> が設定されておらず、禁止 (block) されていないシグナルや "
14483 "B<SIGCHLD> を受信した。 B<signal>(7)  参照。"
14484
14485 #. type: Plain text
14486 #: build/C/man2/wait.2:423
14487 msgid "The I<options> argument was invalid."
14488 msgstr "I<options> 引き数が不正である。"
14489
14490 #. type: Plain text
14491 #: build/C/man2/wait.2:438
14492 msgid ""
14493 "A child that terminates, but has not been waited for becomes a \"zombie\".  "
14494 "The kernel maintains a minimal set of information about the zombie process "
14495 "(PID, termination status, resource usage information)  in order to allow the "
14496 "parent to later perform a wait to obtain information about the child.  As "
14497 "long as a zombie is not removed from the system via a wait, it will consume "
14498 "a slot in the kernel process table, and if this table fills, it will not be "
14499 "possible to create further processes.  If a parent process terminates, then "
14500 "its \"zombie\" children (if any)  are adopted by B<init>(1), which "
14501 "automatically performs a wait to remove the zombies."
14502 msgstr ""
14503 "終了したが、wait されていない子プロセスは「ゾンビ」になる。 後で親プロセスが "
14504 "wait を実行して子プロセスについての情報を取得できるように、 カーネルはゾンビ"
14505 "プロセスについて最小限の情報 (PID、終了ステータス、 リソース使用状況) を保持"
14506 "する。 ゾンビプロセスは、 wait によってシステムから削除されない限り、 カーネ"
14507 "ルのプロセステーブルの 1 エントリーを消費する。このプロセステーブルが 一杯に"
14508 "なると、新たにプロセスを作ることができなくなる。 親プロセスが終了すると、その"
14509 "親プロセスの「ゾンビ」の 子プロセスは (もしあれば)  B<init>(1)  の養子とな"
14510 "る。 B<init>(1)  は wait を自動的に実行し、ゾンビを削除する。"
14511
14512 #. type: Plain text
14513 #: build/C/man2/wait.2:467
14514 msgid ""
14515 "POSIX.1-2001 specifies that if the disposition of B<SIGCHLD> is set to "
14516 "B<SIG_IGN> or the B<SA_NOCLDWAIT> flag is set for B<SIGCHLD> (see "
14517 "B<sigaction>(2)), then children that terminate do not become zombies and a "
14518 "call to B<wait>()  or B<waitpid>()  will block until all children have "
14519 "terminated, and then fail with I<errno> set to B<ECHILD>.  (The original "
14520 "POSIX standard left the behavior of setting B<SIGCHLD> to B<SIG_IGN> "
14521 "unspecified.  Note that even though the default disposition of B<SIGCHLD> is "
14522 "\"ignore\", explicitly setting the disposition to B<SIG_IGN> results in "
14523 "different treatment of zombie process children.)"
14524 msgstr ""
14525 "POSIX.1-2001 では以下のように規定されている。 B<SIGCHLD> の動作が B<SIG_IGN> "
14526 "に設定されたか、 B<SIGCHLD> に対して B<SA_NOCLDWAIT> フラグが設定された場合 "
14527 "(B<sigaction>(2)  参照)、終了した子プロセスはゾンビにはならず、 B<wait>()  "
14528 "や B<waitpid>()  の呼び出しは全ての子プロセスが終了するまで停止し、 子プロセ"
14529 "スが全部終了した後 I<errno> に B<ECHILD> を設定して失敗する。 (もともとの "
14530 "POSIX 標準は B<SIGCHLD> に B<SIG_IGN> を設定した場合の振る舞いを未規定のまま"
14531 "にしている。 B<SIGCHLD> のデフォルトの動作が「無視」であるにもかかわらず、 "
14532 "B<SIGCHLD> の動作として B<SIG_IGN> を明示的に設定した場合にはゾンビプロセスの"
14533 "子プロセスの扱いが 異なる点に注意すること。)"
14534
14535 #. type: Plain text
14536 #: build/C/man2/wait.2:480
14537 msgid ""
14538 "Linux 2.6 conforms to the POSIX requirements.  However, Linux 2.4 (and "
14539 "earlier) does not: if a B<wait>()  or B<waitpid>()  call is made while "
14540 "B<SIGCHLD> is being ignored, the call behaves just as though B<SIGCHLD> were "
14541 "not being ignored, that is, the call blocks until the next child terminates "
14542 "and then returns the process ID and status of that child."
14543 msgstr ""
14544 "Linux 2.6 はこの仕様に準拠している。 しかし、Linux 2.4 (とそれ以前のバージョ"
14545 "ン) はそうではない: B<SIGCHLD> が無視される状態で B<wait>()  または "
14546 "B<waitpid>()  が呼び出された場合、 B<SIGCHLD> が無視されていないかのように振"
14547 "る舞う。 つまり、呼び出しによって次の子プロセスの終了までブロックされ、 終了"
14548 "した子プロセスの PID と状態が返される。"
14549
14550 #. type: Plain text
14551 #: build/C/man2/wait.2:496
14552 msgid ""
14553 "In the Linux kernel, a kernel-scheduled thread is not a distinct construct "
14554 "from a process.  Instead, a thread is simply a process that is created using "
14555 "the Linux-unique B<clone>(2)  system call; other routines such as the "
14556 "portable B<pthread_create>(3)  call are implemented using B<clone>(2).  "
14557 "Before Linux 2.4, a thread was just a special case of a process, and as a "
14558 "consequence one thread could not wait on the children of another thread, "
14559 "even when the latter belongs to the same thread group.  However, POSIX "
14560 "prescribes such functionality, and since Linux 2.4 a thread can, and by "
14561 "default will, wait on children of other threads in the same thread group."
14562 msgstr ""
14563 "Linux カーネルでは、カーネルによってスケジュールされるスレッドは プロセスと明"
14564 "確に区別できる構成要素ではない。スレッドは Linux 固有の B<clone>(2)  システム"
14565 "コールを使用して生成されるプロセスに過ぎない。 移植性のある "
14566 "B<pthread_create>(3)  コールのような他のルーチンは B<clone>(2)  を使用して実"
14567 "装されている; これらでは B<waitid>()  を使うことはできない。 Linux 2.4 より前"
14568 "では、スレッドは単に特殊なプロセスであったので、 例え同じスレッドグループで"
14569 "あっても、 あるスレッドが別のスレッドの子プロセスが終了するのを待つことは出来"
14570 "なかった。 しかし、POSIX ではこのような機能を規定しており、 Linux 2.4 以降で"
14571 "は、あるスレッドが同じスレッドグループの他のスレッドの 子プロセスが終了するの"
14572 "を待つことができるようになった。 そして将来はこれがデフォルトの動作になるであ"
14573 "ろう。"
14574
14575 #. type: Plain text
14576 #: build/C/man2/wait.2:503
14577 msgid ""
14578 "The following Linux-specific I<options> are for use with children created "
14579 "using B<clone>(2); they cannot be used with B<waitid>():"
14580 msgstr ""
14581 "B<clone>(2)  を用いて作られた子プロセスには、以下の Linux 固有の I<options> "
14582 "が使用できる。"
14583
14584 #. type: TP
14585 #: build/C/man2/wait.2:503
14586 #, no-wrap
14587 msgid "B<__WCLONE>"
14588 msgstr "B<__WCLONE>"
14589
14590 #.  since 0.99pl10
14591 #. type: Plain text
14592 #: build/C/man2/wait.2:514
14593 msgid ""
14594 "Wait for \"clone\" children only.  If omitted, then wait for \"non-clone\" "
14595 "children only.  (A \"clone\" child is one which delivers no signal, or a "
14596 "signal other than B<SIGCHLD> to its parent upon termination.)  This option "
14597 "is ignored if B<__WALL> is also specified."
14598 msgstr ""
14599 "\"clone\" な子プロセスだけを待つ。 指定されなかった場合は非 \"clone\" な子プ"
14600 "ロセスだけを待つ (\"clone\" な子プロセスは、終了時に親プロセスへ全くシグナル"
14601 "を送らないか、 B<SIGCHLD> 以外のシグナルを送る)。 このオプションは B<__WALL> "
14602 "も指定された場合は無視される。"
14603
14604 #. type: TP
14605 #: build/C/man2/wait.2:514
14606 #, no-wrap
14607 msgid "B<__WALL> (since Linux 2.4)"
14608 msgstr "B<__WALL> (Linux 2.4 以降)"
14609
14610 #.  since patch-2.3.48
14611 #. type: Plain text
14612 #: build/C/man2/wait.2:519
14613 msgid "Wait for all children, regardless of type (\"clone\" or \"non-clone\")."
14614 msgstr "\"clone\" であるかないかに関わらず、 全ての子プロセスを待つ。"
14615
14616 #. type: TP
14617 #: build/C/man2/wait.2:519
14618 #, no-wrap
14619 msgid "B<__WNOTHREAD> (since Linux 2.4)"
14620 msgstr "B<__WNOTHREAD> (Linux 2.4 以降)"
14621
14622 #.  since patch-2.4.0-test8
14623 #. type: Plain text
14624 #: build/C/man2/wait.2:525
14625 msgid ""
14626 "Do not wait for children of other threads in the same thread group.  This "
14627 "was the default before Linux 2.4."
14628 msgstr ""
14629 "同じスレッドグループの他のスレッドの子プロセスは待たない。 Linux 2.4 より前で"
14630 "はデフォルトであった。"
14631
14632 #. type: Plain text
14633 #: build/C/man2/wait.2:537
14634 msgid ""
14635 "The raw B<waitid>()  system call takes a fifth argument, of type I<struct "
14636 "rusage\\ *>.  If this argument is non-NULL, then it is used to return "
14637 "resource usage information about the child, in the same manner as "
14638 "B<wait4>(2).  See B<getrusage>(2)  for details."
14639 msgstr ""
14640 "生の B<waitid>() システムコールは I<struct rusage\\ *> 型の第 5 引数を取る。 "
14641 "この引数が NULL 以外の場合、 この引数が子プロセスのリソース使用状況を返すのに"
14642 "使用される。 これは B<wait4>(2) と同じ方法である。 詳細は B<getrusage>(2) を"
14643 "参照。"
14644
14645 #. type: Plain text
14646 #: build/C/man2/wait.2:552
14647 msgid ""
14648 "According to POSIX.1-2008, an application calling B<waitid>()  must ensure "
14649 "that I<infop> points to a I<siginfo_t> structure (i.e., that it is a non-"
14650 "null pointer).  On Linux, if I<infop> is NULL, B<waitid>()  succeeds, and "
14651 "returns the process ID of the waited-for child.  Applications should avoid "
14652 "relying on this inconsistent, nonstandard, and unnecessary feature."
14653 msgstr ""
14654 "POSIX.1-2008 によると、 B<waitid>() を呼び出すアプリケーションは、 I<infop> "
14655 "が I<siginfo_t> 構造体を指していること (つまり I<infop> が NULL でないポイン"
14656 "ターであること) を保証しなければならない。 Linux では、 I<infop> が NULL の場"
14657 "合、 B<waitid>() は成功し、wait している子プロセスのプロセス ID を返す。 アプ"
14658 "リケーションは、この食い違った、非標準で、不必要な機能に依存しないようにすべ"
14659 "きである。"
14660
14661 #.  fork.2 refers to this example program.
14662 #. type: Plain text
14663 #: build/C/man2/wait.2:569
14664 msgid ""
14665 "The following program demonstrates the use of B<fork>(2)  and B<waitpid>().  "
14666 "The program creates a child process.  If no command-line argument is "
14667 "supplied to the program, then the child suspends its execution using "
14668 "B<pause>(2), to allow the user to send signals to the child.  Otherwise, if "
14669 "a command-line argument is supplied, then the child exits immediately, using "
14670 "the integer supplied on the command line as the exit status.  The parent "
14671 "process executes a loop that monitors the child using B<waitpid>(), and uses "
14672 "the W*() macros described above to analyze the wait status value."
14673 msgstr ""
14674 "以下のプログラムは、 B<fork>(2)  と B<waitpid>()  の使用方法の例を示してい"
14675 "る。 このプログラムでは子プロセスを生成する。 コマンドライン引き数が指定され"
14676 "なかったときは、 子プロセスは B<pause>(2)  を使ってその実行を一時停止し、ユー"
14677 "ザーがその子プロセスに シグナルを送信できるようにする。 コマンドライン引き数"
14678 "が指定された場合は、 子プロセスは直ちに終了し、 コマンドラインで指定された整"
14679 "数を終了ステータスとして使用する。 親プロセスは、 B<waitpid>()  を使って子プ"
14680 "ロセスを監視し、 wait のステータス値を上記の W*() マクロを使って解析するとい"
14681 "う ループを実行する。"
14682
14683 #. type: Plain text
14684 #: build/C/man2/wait.2:585
14685 #, no-wrap
14686 msgid ""
14687 "$B< ./a.out &>\n"
14688 "Child PID is 32360\n"
14689 "[1] 32359\n"
14690 "$B< kill -STOP 32360>\n"
14691 "stopped by signal 19\n"
14692 "$B< kill -CONT 32360>\n"
14693 "continued\n"
14694 "$B< kill -TERM 32360>\n"
14695 "killed by signal 15\n"
14696 "[1]+  Done                    ./a.out\n"
14697 "$\n"
14698 msgstr ""
14699 "$B< ./a.out &>\n"
14700 "Child PID is 32360\n"
14701 "[1] 32359\n"
14702 "$B< kill -STOP 32360>\n"
14703 "stopped by signal 19\n"
14704 "$B< kill -CONT 32360>\n"
14705 "continued\n"
14706 "$B< kill -TERM 32360>\n"
14707 "killed by signal 15\n"
14708 "[1]+  Done                    ./a.out\n"
14709 "$\n"
14710
14711 #. type: Plain text
14712 #: build/C/man2/wait.2:594
14713 #, no-wrap
14714 msgid ""
14715 "#include E<lt>sys/wait.hE<gt>\n"
14716 "#include E<lt>stdlib.hE<gt>\n"
14717 "#include E<lt>unistd.hE<gt>\n"
14718 "#include E<lt>stdio.hE<gt>\n"
14719 msgstr ""
14720 "#include E<lt>sys/wait.hE<gt>\n"
14721 "#include E<lt>stdlib.hE<gt>\n"
14722 "#include E<lt>unistd.hE<gt>\n"
14723 "#include E<lt>stdio.hE<gt>\n"
14724
14725 #. type: Plain text
14726 #: build/C/man2/wait.2:600
14727 #, no-wrap
14728 msgid ""
14729 "int\n"
14730 "main(int argc, char *argv[])\n"
14731 "{\n"
14732 "    pid_t cpid, w;\n"
14733 "    int status;\n"
14734 msgstr ""
14735 "int\n"
14736 "main(int argc, char *argv[])\n"
14737 "{\n"
14738 "    pid_t cpid, w;\n"
14739 "    int status;\n"
14740
14741 #. type: Plain text
14742 #: build/C/man2/wait.2:606
14743 #, no-wrap
14744 msgid ""
14745 "    cpid = fork();\n"
14746 "    if (cpid == -1) {\n"
14747 "        perror(\"fork\");\n"
14748 "        exit(EXIT_FAILURE);\n"
14749 "    }\n"
14750 msgstr ""
14751 "    cpid = fork();\n"
14752 "    if (cpid == -1) {\n"
14753 "        perror(\"fork\");\n"
14754 "        exit(EXIT_FAILURE);\n"
14755 "    }\n"
14756
14757 #. type: Plain text
14758 #: build/C/man2/wait.2:612
14759 #, no-wrap
14760 msgid ""
14761 "    if (cpid == 0) {            /* Code executed by child */\n"
14762 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
14763 "        if (argc == 1)\n"
14764 "            pause();                    /* Wait for signals */\n"
14765 "        _exit(atoi(argv[1]));\n"
14766 msgstr ""
14767 "    if (cpid == 0) {            /* Code executed by child */\n"
14768 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
14769 "        if (argc == 1)\n"
14770 "            pause();                    /* Wait for signals */\n"
14771 "        _exit(atoi(argv[1]));\n"
14772
14773 #. type: Plain text
14774 #: build/C/man2/wait.2:620
14775 #, no-wrap
14776 msgid ""
14777 "    } else {                    /* Code executed by parent */\n"
14778 "        do {\n"
14779 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
14780 "            if (w == -1) {\n"
14781 "                perror(\"waitpid\");\n"
14782 "                exit(EXIT_FAILURE);\n"
14783 "            }\n"
14784 msgstr ""
14785 "    } else {                    /* Code executed by parent */\n"
14786 "        do {\n"
14787 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
14788 "            if (w == -1) {\n"
14789 "                perror(\"waitpid\");\n"
14790 "                exit(EXIT_FAILURE);\n"
14791 "            }\n"
14792
14793 #. type: Plain text
14794 #: build/C/man2/wait.2:634
14795 #, no-wrap
14796 msgid ""
14797 "            if (WIFEXITED(status)) {\n"
14798 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
14799 "            } else if (WIFSIGNALED(status)) {\n"
14800 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
14801 "            } else if (WIFSTOPPED(status)) {\n"
14802 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
14803 "            } else if (WIFCONTINUED(status)) {\n"
14804 "                printf(\"continued\\en\");\n"
14805 "            }\n"
14806 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
14807 "        exit(EXIT_SUCCESS);\n"
14808 "    }\n"
14809 "}\n"
14810 msgstr ""
14811 "            if (WIFEXITED(status)) {\n"
14812 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
14813 "            } else if (WIFSIGNALED(status)) {\n"
14814 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
14815 "            } else if (WIFSTOPPED(status)) {\n"
14816 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
14817 "            } else if (WIFCONTINUED(status)) {\n"
14818 "                printf(\"continued\\en\");\n"
14819 "            }\n"
14820 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
14821 "        exit(EXIT_SUCCESS);\n"
14822 "    }\n"
14823 "}\n"
14824
14825 #. type: Plain text
14826 #: build/C/man2/wait.2:647
14827 msgid ""
14828 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), "
14829 "B<sigaction>(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), "
14830 "B<credentials>(7), B<signal>(7)"
14831 msgstr ""
14832 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), "
14833 "B<sigaction>(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), "
14834 "B<credentials>(7), B<signal>(7)"
14835
14836 #. type: TH
14837 #: build/C/man2/wait4.2:33
14838 #, no-wrap
14839 msgid "WAIT4"
14840 msgstr "WAIT4"
14841
14842 #. type: TH
14843 #: build/C/man2/wait4.2:33
14844 #, no-wrap
14845 msgid "2012-09-23"
14846 msgstr "2012-09-23"
14847
14848 #. type: Plain text
14849 #: build/C/man2/wait4.2:36
14850 msgid "wait3, wait4 - wait for process to change state, BSD style"
14851 msgstr "wait3, wait4 - BSD スタイルでプロセスの状態変化を待つ"
14852
14853 #. type: Plain text
14854 #: build/C/man2/wait4.2:42
14855 #, no-wrap
14856 msgid ""
14857 "B<#include E<lt>sys/types.hE<gt>>\n"
14858 "B<#include E<lt>sys/time.hE<gt>>\n"
14859 "B<#include E<lt>sys/resource.hE<gt>>\n"
14860 "B<#include E<lt>sys/wait.hE<gt>>\n"
14861 msgstr ""
14862 "B<#include E<lt>sys/types.hE<gt>>\n"
14863 "B<#include E<lt>sys/time.hE<gt>>\n"
14864 "B<#include E<lt>sys/resource.hE<gt>>\n"
14865 "B<#include E<lt>sys/wait.hE<gt>>\n"
14866
14867 #. type: Plain text
14868 #: build/C/man2/wait4.2:45
14869 #, no-wrap
14870 msgid ""
14871 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14872 "B<            struct rusage *>I<rusage>B<);>\n"
14873 msgstr ""
14874 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14875 "B<            struct rusage *>I<rusage>B<);>\n"
14876
14877 #. type: Plain text
14878 #: build/C/man2/wait4.2:48
14879 #, no-wrap
14880 msgid ""
14881 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14882 "B<            struct rusage *>I<rusage>B<);>\n"
14883 msgstr ""
14884 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14885 "B<            struct rusage *>I<rusage>B<);>\n"
14886
14887 #. type: Plain text
14888 #: build/C/man2/wait4.2:57
14889 msgid "B<wait3>():"
14890 msgstr "B<wait3>():"
14891
14892 #. type: Plain text
14893 #: build/C/man2/wait4.2:63
14894 msgid "B<wait4>():"
14895 msgstr "B<wait4>():"
14896
14897 #. type: Plain text
14898 #: build/C/man2/wait4.2:65
14899 msgid "_BSD_SOURCE"
14900 msgstr "_BSD_SOURCE"
14901
14902 #. type: Plain text
14903 #: build/C/man2/wait4.2:73
14904 msgid ""
14905 "These functions are obsolete; use B<waitpid>(2)  or B<waitid>(2)  in new "
14906 "programs."
14907 msgstr ""
14908 "これらの関数は廃止予定である。 新しいプログラムでは B<waitpid>(2) や "
14909 "B<waitid>(2) を使用すること。"
14910
14911 #. type: Plain text
14912 #: build/C/man2/wait4.2:83
14913 msgid ""
14914 "The B<wait3>()  and B<wait4>()  system calls are similar to B<waitpid>(2), "
14915 "but additionally return resource usage information about the child in the "
14916 "structure pointed to by I<rusage>."
14917 msgstr ""
14918 "システムコール B<wait3>()  と B<wait4>()  は B<waitpid>(2)  と同様の動作をす"
14919 "る。それに加え、子プロセスのリソース使用状況の情報を I<rusage> が指す構造体に"
14920 "入れて返す。"
14921
14922 #. type: Plain text
14923 #: build/C/man2/wait4.2:89
14924 msgid ""
14925 "Other than the use of the I<rusage> argument, the following B<wait3>()  call:"
14926 msgstr "I<rusage> を使用する点を除けば、次の B<wait3>()  の呼び出し"
14927
14928 #. type: Plain text
14929 #: build/C/man2/wait4.2:92
14930 #, no-wrap
14931 msgid "    wait3(status, options, rusage);\n"
14932 msgstr "    wait3(status, options, rusage);\n"
14933
14934 #. type: Plain text
14935 #: build/C/man2/wait4.2:95 build/C/man2/wait4.2:109
14936 msgid "is equivalent to:"
14937 msgstr "は以下と等価である。"
14938
14939 #. type: Plain text
14940 #: build/C/man2/wait4.2:98
14941 #, no-wrap
14942 msgid "    waitpid(-1, status, options);\n"
14943 msgstr "    waitpid(-1, status, options);\n"
14944
14945 #. type: Plain text
14946 #: build/C/man2/wait4.2:103
14947 msgid "Similarly, the following B<wait4>()  call:"
14948 msgstr "同様に、次の B<wait4>()  の呼び出し"
14949
14950 #. type: Plain text
14951 #: build/C/man2/wait4.2:106
14952 #, no-wrap
14953 msgid "    wait4(pid, status, options, rusage);\n"
14954 msgstr "    wait4(pid, status, options, rusage);\n"
14955
14956 #. type: Plain text
14957 #: build/C/man2/wait4.2:112
14958 #, no-wrap
14959 msgid "    waitpid(pid, status, options);\n"
14960 msgstr "    waitpid(pid, status, options);\n"
14961
14962 #. type: Plain text
14963 #: build/C/man2/wait4.2:122
14964 msgid ""
14965 "In other words, B<wait3>()  waits of any child, while B<wait4>()  can be "
14966 "used to select a specific child, or children, on which to wait.  See "
14967 "B<wait>(2)  for further details."
14968 msgstr ""
14969 "言い換えると、 B<wait3>()  は全ての子プロセスを対象に待つが、 B<wait4>()  で"
14970 "は特定の子プロセス (複数可) を選んで待つことができる。"
14971
14972 #. type: Plain text
14973 #: build/C/man2/wait4.2:132
14974 msgid ""
14975 "If I<rusage> is not NULL, the I<struct rusage> to which it points will be "
14976 "filled with accounting information about the child.  See B<getrusage>(2)  "
14977 "for details."
14978 msgstr ""
14979 "I<rusage> が NULL でない場合、 I<rusage> が指す I<rusage 構造体> には子プロセ"
14980 "スのアカウント情報が格納される。 詳しくは B<getrusage>(2)  を参照のこと。"
14981
14982 #. type: Plain text
14983 #: build/C/man2/wait4.2:135 build/C/man2/wait4.2:138
14984 msgid "As for B<waitpid>(2)."
14985 msgstr "B<waitpid>(2)  と同様。"
14986
14987 #. type: Plain text
14988 #: build/C/man2/wait4.2:140
14989 msgid "4.3BSD."
14990 msgstr "4.3BSD."
14991
14992 #. type: Plain text
14993 #: build/C/man2/wait4.2:147
14994 msgid ""
14995 "SUSv1 included a specification of B<wait3>(); SUSv2 included B<wait3>(), but "
14996 "marked it LEGACY; SUSv3 removed it."
14997 msgstr ""
14998 "SUSv1 には B<wait3>() の規定があった。 SUSv2 には B<wait3>() が含まれていた"
14999 "が、「過去の名残 (LEGACY)」となっていた。 SUSv3 では B<wait3>() は削除され"
15000 "た。"
15001
15002 #. type: Plain text
15003 #: build/C/man2/wait4.2:159
15004 msgid ""
15005 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
15006 "portability.  (Indeed, I<E<lt>sys/resource.hE<gt>> defines the I<rusage> "
15007 "structure with fields of type I<struct timeval> defined in I<E<lt>sys/time."
15008 "hE<gt>>.)"
15009 msgstr ""
15010 "現在では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、インクルード"
15011 "しておくと 移植性を高めることができる (実際には I<E<lt>sys/resource.hE<gt>> "
15012 "で I<rusage> 構造体が定義されているが、そのフィールドで使用されている "
15013 "I<struct timeval> 型は I<E<lt>sys/time.hE<gt>> で定義されている)。"
15014
15015 #. type: Plain text
15016 #: build/C/man2/wait4.2:165
15017 msgid ""
15018 "On Linux, B<wait3>()  is a library function implemented on top of the "
15019 "B<wait4>()  system call."
15020 msgstr ""
15021 "Linux では、 B<wait3>()  はライブラリ関数であり、 B<wait4>()  システムコール"
15022 "を使って実装されている。"
15023
15024 #. type: Plain text
15025 #: build/C/man2/wait4.2:172
15026 msgid ""
15027 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
15028 "B<signal>(7)"
15029 msgstr ""
15030 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
15031 "B<signal>(7)"