OSDN Git Service

(split) LDP: Translation snapshots for LDP 3.64
[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: 2014-04-17 13:14+0900\n"
10 "PO-Revision-Date: 2014-04-19 22:51+0900\n"
11 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Language-Team: LANGUAGE <LL@li.org>\n"
13 "Language: \n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17
18 #. type: TH
19 #: build/C/man3/bsd_signal.3:25
20 #, no-wrap
21 msgid "BSD_SIGNAL"
22 msgstr "BSD_SIGNAL"
23
24 #. type: TH
25 #: build/C/man3/bsd_signal.3:25
26 #, no-wrap
27 msgid "2013-10-22"
28 msgstr "2013-10-22"
29
30 #. type: TH
31 #: build/C/man3/bsd_signal.3:25 build/C/man2/eventfd.2:22
32 #: build/C/man2/getitimer.2:12 build/C/man3/gsignal.3:27
33 #: build/C/man2/kill.2:44 build/C/man2/killpg.2:42 build/C/man2/pause.2:30
34 #: build/C/man2/prctl.2:52 build/C/man3/profil.3:28 build/C/man3/psignal.3:30
35 #: build/C/man3/raise.3:29 build/C/man2/restart_syscall.2:33
36 #: build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/s390_runtime_instr.2:25
37 #: build/C/man2/sgetmask.2:26 build/C/man2/sigaction.2:47
38 #: build/C/man2/sigaltstack.2:27 build/C/man7/sigevent.7:26
39 #: build/C/man3/siginterrupt.3:31 build/C/man2/signal.2:36
40 #: build/C/man7/signal.7:46 build/C/man2/signalfd.2:20
41 #: build/C/man3/sigpause.3:25 build/C/man2/sigpending.2:29
42 #: build/C/man2/sigprocmask.2:29 build/C/man3/sigqueue.3:28
43 #: build/C/man2/sigreturn.2:29 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:31 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:21 build/C/man2/tkill.2:29
50 #: build/C/man2/wait.2:49 build/C/man2/wait4.2:33
51 #, no-wrap
52 msgid "Linux Programmer's Manual"
53 msgstr "Linux Programmer's Manual"
54
55 #. type: SH
56 #: build/C/man3/bsd_signal.3:26 build/C/man2/eventfd.2:23
57 #: build/C/man2/getitimer.2:13 build/C/man3/gsignal.3:28
58 #: build/C/man2/kill.2:45 build/C/man2/killpg.2:43 build/C/man2/pause.2:31
59 #: build/C/man2/prctl.2:53 build/C/man3/profil.3:29 build/C/man3/psignal.3:31
60 #: build/C/man3/raise.3:30 build/C/man2/restart_syscall.2:34
61 #: build/C/man2/rt_sigqueueinfo.2:26 build/C/man2/s390_runtime_instr.2:26
62 #: build/C/man2/sgetmask.2:27 build/C/man2/sigaction.2:48
63 #: build/C/man2/sigaltstack.2:28 build/C/man7/sigevent.7:27
64 #: build/C/man3/siginterrupt.3:32 build/C/man2/signal.2:37
65 #: build/C/man7/signal.7:47 build/C/man2/signalfd.2:21
66 #: build/C/man3/sigpause.3:26 build/C/man2/sigpending.2:30
67 #: build/C/man2/sigprocmask.2:30 build/C/man3/sigqueue.3:29
68 #: build/C/man2/sigreturn.2:30 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:32 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:22 build/C/man2/tkill.2:30
75 #: build/C/man2/wait.2:50 build/C/man2/wait4.2:34
76 #, no-wrap
77 msgid "NAME"
78 msgstr "名前"
79
80 #. type: Plain text
81 #: build/C/man3/bsd_signal.3:28
82 msgid "bsd_signal - signal handling with BSD semantics"
83 msgstr "bsd_signal - BSD 方式のシグナル処理"
84
85 #. type: SH
86 #: build/C/man3/bsd_signal.3:28 build/C/man2/eventfd.2:25
87 #: build/C/man2/getitimer.2:15 build/C/man3/gsignal.3:30
88 #: build/C/man2/kill.2:47 build/C/man2/killpg.2:45 build/C/man2/pause.2:33
89 #: build/C/man2/prctl.2:55 build/C/man3/profil.3:31 build/C/man3/psignal.3:33
90 #: build/C/man3/raise.3:32 build/C/man2/restart_syscall.2:36
91 #: build/C/man2/rt_sigqueueinfo.2:28 build/C/man2/s390_runtime_instr.2:28
92 #: build/C/man2/sgetmask.2:29 build/C/man2/sigaction.2:50
93 #: build/C/man2/sigaltstack.2:30 build/C/man7/sigevent.7:29
94 #: build/C/man3/siginterrupt.3:34 build/C/man2/signal.2:39
95 #: build/C/man2/signalfd.2:23 build/C/man3/sigpause.3:28
96 #: build/C/man2/sigpending.2:32 build/C/man2/sigprocmask.2:32
97 #: build/C/man3/sigqueue.3:31 build/C/man2/sigreturn.2:32
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:34
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:25
104 #: build/C/man2/tkill.2:32 build/C/man2/wait.2:52 build/C/man2/wait4.2:36
105 #, no-wrap
106 msgid "SYNOPSIS"
107 msgstr "書式"
108
109 #. type: Plain text
110 #: build/C/man3/bsd_signal.3:30
111 msgid "B<#define _XOPEN_SOURCE> /* See feature_test_macros(7) */"
112 msgstr "B<#define _XOPEN_SOURCE> /* feature_test_macros(7) 参照 */"
113
114 #. type: Plain text
115 #: build/C/man3/bsd_signal.3:32 build/C/man2/killpg.2:47
116 #: build/C/man2/sigaltstack.2:32 build/C/man2/signal.2:41
117 #: build/C/man2/sigpending.2:34 build/C/man2/sigprocmask.2:34
118 #: build/C/man3/sigqueue.3:33 build/C/man3/sigset.3:31
119 #: build/C/man3/sigsetops.3:37 build/C/man2/sigsuspend.2:34
120 #: build/C/man3/sigvec.3:31 build/C/man3/sysv_signal.3:32
121 msgid "B<#include E<lt>signal.hE<gt>>"
122 msgstr "B<#include E<lt>signal.hE<gt>>"
123
124 #. type: Plain text
125 #: build/C/man3/bsd_signal.3:34 build/C/man2/signal.2:43
126 #: build/C/man3/sigset.3:33 build/C/man3/sysv_signal.3:34
127 msgid "B<typedef void (*sighandler_t)(int);>"
128 msgstr "B<typedef void (*sighandler_t)(int);>"
129
130 #. type: Plain text
131 #: build/C/man3/bsd_signal.3:36
132 msgid ""
133 "B<sighandler_t bsd_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
134 msgstr ""
135 "B<sighandler_t bsd_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
136
137 #. type: SH
138 #: build/C/man3/bsd_signal.3:36 build/C/man2/eventfd.2:29
139 #: build/C/man2/getitimer.2:24 build/C/man3/gsignal.3:49
140 #: build/C/man2/kill.2:65 build/C/man2/killpg.2:60 build/C/man2/pause.2:37
141 #: build/C/man2/prctl.2:62 build/C/man3/profil.3:46 build/C/man3/psignal.3:56
142 #: build/C/man3/raise.3:38 build/C/man2/restart_syscall.2:41
143 #: build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/s390_runtime_instr.2:34
144 #: build/C/man2/sgetmask.2:36 build/C/man2/sigaction.2:70
145 #: build/C/man2/sigaltstack.2:51 build/C/man7/sigevent.7:52
146 #: build/C/man3/siginterrupt.3:55 build/C/man2/signal.2:45
147 #: build/C/man7/signal.7:49 build/C/man2/signalfd.2:27
148 #: build/C/man3/sigpause.3:36 build/C/man2/sigpending.2:46
149 #: build/C/man2/sigprocmask.2:47 build/C/man3/sigqueue.3:43
150 #: build/C/man2/sigreturn.2:34 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:52 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:37 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:122 build/C/man2/kill.2:100
194 #: build/C/man2/killpg.2:89 build/C/man2/pause.2:42 build/C/man2/prctl.2:781
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:84 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:660 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:53
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:167
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:287
209 #: build/C/man2/tkill.2:95 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:127 build/C/man2/kill.2:105
226 #: build/C/man2/killpg.2:94 build/C/man2/pause.2:53 build/C/man2/prctl.2:800
227 #: build/C/man2/restart_syscall.2:88 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:665 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:126
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:175
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:302
239 #: build/C/man2/tkill.2:99 build/C/man2/wait.2:384 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/sigpause.3:56 build/C/man3/sigqueue.3:114
252 #: build/C/man3/sigvec.3:221 build/C/man3/sigwait.3:80
253 #: build/C/man3/sysv_signal.3:60
254 #, no-wrap
255 msgid "ATTRIBUTES"
256 msgstr "属性"
257
258 #. type: SS
259 #: build/C/man3/bsd_signal.3:64 build/C/man3/raise.3:65
260 #: build/C/man3/sigpause.3:57 build/C/man3/sigqueue.3:115
261 #: build/C/man3/sigvec.3:222 build/C/man3/sigwait.3:81
262 #: build/C/man3/sysv_signal.3:61
263 #, no-wrap
264 msgid "Multithreading (see pthreads(7))"
265 msgstr "マルチスレッディング (pthreads(7) 参照)"
266
267 #. type: Plain text
268 #: build/C/man3/bsd_signal.3:68
269 msgid "The B<bsd_signal>()  function is thread-safe."
270 msgstr "B<bsd_signal>()  関数はスレッドセーフである。"
271
272 #. type: SH
273 #: build/C/man3/bsd_signal.3:68 build/C/man2/eventfd.2:266
274 #: build/C/man2/getitimer.2:148 build/C/man3/gsignal.3:95
275 #: build/C/man2/kill.2:121 build/C/man2/killpg.2:111 build/C/man2/pause.2:57
276 #: build/C/man2/prctl.2:969 build/C/man3/profil.3:70 build/C/man3/psignal.3:99
277 #: build/C/man3/raise.3:69 build/C/man2/restart_syscall.2:96
278 #: build/C/man2/rt_sigqueueinfo.2:176 build/C/man2/s390_runtime_instr.2:81
279 #: build/C/man2/sgetmask.2:66 build/C/man2/sigaction.2:677
280 #: build/C/man2/sigaltstack.2:156 build/C/man7/sigevent.7:130
281 #: build/C/man3/siginterrupt.3:87 build/C/man2/signal.2:110
282 #: build/C/man7/signal.7:838 build/C/man2/signalfd.2:307
283 #: build/C/man3/sigpause.3:61 build/C/man2/sigpending.2:64
284 #: build/C/man2/sigprocmask.2:112 build/C/man3/sigqueue.3:119
285 #: build/C/man2/sigreturn.2:60 build/C/man3/sigset.3:173
286 #: build/C/man3/sigsetops.3:131 build/C/man2/sigsuspend.2:84
287 #: build/C/man3/sigvec.3:234 build/C/man3/sigwait.3:85
288 #: build/C/man2/sigwaitinfo.2:133 build/C/man3/sysv_signal.3:65
289 #: build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:67
290 #: build/C/man2/timer_getoverrun.2:97 build/C/man2/timer_settime.2:207
291 #: build/C/man2/timerfd_create.2:371 build/C/man2/tkill.2:116
292 #: build/C/man2/wait.2:422 build/C/man2/wait4.2:138
293 #, no-wrap
294 msgid "CONFORMING TO"
295 msgstr "準拠"
296
297 #. type: Plain text
298 #: build/C/man3/bsd_signal.3:75
299 msgid ""
300 "4.2BSD, POSIX.1-2001.  POSIX.1-2008 removes the specification of "
301 "B<bsd_signal>(), recommending the use of B<sigaction>(2)  instead."
302 msgstr ""
303 "4.2BSD, POSIX.1-2001.  POSIX.1-2008 では B<bsd_signal>()  の仕様が削除されて"
304 "いる。 代わりに、 B<sigaction>(2)  の使用が推奨されている。"
305
306 #. type: SH
307 #: build/C/man3/bsd_signal.3:75 build/C/man2/eventfd.2:271
308 #: build/C/man2/getitimer.2:158 build/C/man2/kill.2:123
309 #: build/C/man2/killpg.2:115 build/C/man3/raise.3:71
310 #: build/C/man2/restart_syscall.2:98 build/C/man2/rt_sigqueueinfo.2:178
311 #: build/C/man2/s390_runtime_instr.2:84 build/C/man2/sgetmask.2:68
312 #: build/C/man2/sigaction.2:680 build/C/man2/sigaltstack.2:158
313 #: build/C/man2/signal.2:112 build/C/man2/signalfd.2:312
314 #: build/C/man3/sigpause.3:65 build/C/man2/sigpending.2:66
315 #: build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:121
316 #: build/C/man2/sigreturn.2:64 build/C/man3/sigset.3:190
317 #: build/C/man3/sigsetops.3:133 build/C/man2/sigsuspend.2:86
318 #: build/C/man3/sigvec.3:240 build/C/man3/sigwait.3:87
319 #: build/C/man2/sigwaitinfo.2:135 build/C/man3/sysv_signal.3:67
320 #: build/C/man2/timer_create.2:195 build/C/man2/timer_getoverrun.2:99
321 #: build/C/man2/tkill.2:122 build/C/man2/wait.2:424 build/C/man2/wait4.2:147
322 #, no-wrap
323 msgid "NOTES"
324 msgstr "注意"
325
326 #. type: Plain text
327 #: build/C/man3/bsd_signal.3:81
328 msgid ""
329 "Use of B<bsd_signal>()  should be avoided; use B<sigaction>(2)  instead."
330 msgstr ""
331 "B<bsd_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使うこ"
332 "と。"
333
334 #. type: Plain text
335 #: build/C/man3/bsd_signal.3:92
336 msgid ""
337 "On modern Linux systems, B<bsd_signal>()  and B<signal>(2)  are equivalent.  "
338 "But on older systems, B<signal>(2)  provided unreliable signal semantics; "
339 "see B<signal>(2)  for details."
340 msgstr ""
341 "最近の Linux システムでは、 B<bsd_signal>()  と B<signal>(2)  は等価である。"
342 "しかし、以前のシステムでは、 B<signal>(2)  は信頼性に欠けるシグナル処理方式を"
343 "提供していた。 詳細は B<signal>(2)  を参照。"
344
345 #. type: Plain text
346 #: build/C/man3/bsd_signal.3:99 build/C/man3/sysv_signal.3:92
347 msgid ""
348 "The use of I<sighandler_t> is a GNU extension; this type is defined only if "
349 "the B<_GNU_SOURCE> feature test macro is defined."
350 msgstr ""
351 "I<sighandler_t> を使っているのは GNU による拡張である。 この型は機能検査マク"
352 "ロ B<_GNU_SOURCE> を定義した場合にのみ定義される。"
353
354 #. type: SH
355 #: build/C/man3/bsd_signal.3:99 build/C/man2/eventfd.2:417
356 #: build/C/man2/getitimer.2:239 build/C/man3/gsignal.3:103
357 #: build/C/man2/kill.2:171 build/C/man2/killpg.2:134 build/C/man2/pause.2:59
358 #: build/C/man2/prctl.2:983 build/C/man3/profil.3:81
359 #: build/C/man3/psignal.3:113 build/C/man3/raise.3:82
360 #: build/C/man2/restart_syscall.2:123 build/C/man2/rt_sigqueueinfo.2:188
361 #: build/C/man2/s390_runtime_instr.2:88 build/C/man2/sgetmask.2:82
362 #: build/C/man2/sigaction.2:793 build/C/man2/sigaltstack.2:232
363 #: build/C/man7/sigevent.7:132 build/C/man3/siginterrupt.3:96
364 #: build/C/man2/signal.2:278 build/C/man7/signal.7:850
365 #: build/C/man2/signalfd.2:433 build/C/man3/sigpause.3:111
366 #: build/C/man2/sigpending.2:91 build/C/man2/sigprocmask.2:144
367 #: build/C/man3/sigqueue.3:154 build/C/man2/sigreturn.2:74
368 #: build/C/man3/sigset.3:266 build/C/man3/sigsetops.3:172
369 #: build/C/man2/sigsuspend.2:108 build/C/man3/sigvec.3:265
370 #: build/C/man3/sigwait.3:94 build/C/man2/sigwaitinfo.2:187
371 #: build/C/man3/sysv_signal.3:92 build/C/man2/timer_create.2:407
372 #: build/C/man2/timer_delete.2:69 build/C/man2/timer_getoverrun.2:131
373 #: build/C/man2/timer_settime.2:212 build/C/man2/timerfd_create.2:541
374 #: build/C/man2/tkill.2:131 build/C/man2/wait.2:633 build/C/man2/wait4.2:165
375 #, no-wrap
376 msgid "SEE ALSO"
377 msgstr "関連項目"
378
379 #. type: Plain text
380 #: build/C/man3/bsd_signal.3:104
381 msgid "B<sigaction>(2), B<signal>(2), B<sysv_signal>(3), B<signal>(7)"
382 msgstr "B<sigaction>(2), B<signal>(2), B<sysv_signal>(3), B<signal>(7)"
383
384 #. type: SH
385 #: build/C/man3/bsd_signal.3:104 build/C/man2/eventfd.2:428
386 #: build/C/man2/getitimer.2:246 build/C/man3/gsignal.3:107
387 #: build/C/man2/kill.2:181 build/C/man2/killpg.2:140 build/C/man2/pause.2:64
388 #: build/C/man2/prctl.2:986 build/C/man3/profil.3:86
389 #: build/C/man3/psignal.3:118 build/C/man3/raise.3:89
390 #: build/C/man2/restart_syscall.2:131 build/C/man2/rt_sigqueueinfo.2:196
391 #: build/C/man2/s390_runtime_instr.2:91 build/C/man2/sgetmask.2:85
392 #: build/C/man2/sigaction.2:813 build/C/man2/sigaltstack.2:239
393 #: build/C/man7/sigevent.7:142 build/C/man3/siginterrupt.3:98
394 #: build/C/man2/signal.2:297 build/C/man7/signal.7:884
395 #: build/C/man2/signalfd.2:446 build/C/man3/sigpause.3:119
396 #: build/C/man2/sigpending.2:99 build/C/man2/sigprocmask.2:155
397 #: build/C/man3/sigqueue.3:162 build/C/man2/sigreturn.2:80
398 #: build/C/man3/sigset.3:276 build/C/man3/sigsetops.3:177
399 #: build/C/man2/sigsuspend.2:118 build/C/man3/sigvec.3:275
400 #: build/C/man3/sigwait.3:102 build/C/man2/sigwaitinfo.2:199
401 #: build/C/man3/sysv_signal.3:97 build/C/man2/timer_create.2:422
402 #: build/C/man2/timer_delete.2:75 build/C/man2/timer_getoverrun.2:141
403 #: build/C/man2/timer_settime.2:216 build/C/man2/timerfd_create.2:553
404 #: build/C/man2/tkill.2:136 build/C/man2/wait.2:645 build/C/man2/wait4.2:172
405 #, no-wrap
406 msgid "COLOPHON"
407 msgstr "この文書について"
408
409 #. type: Plain text
410 #: build/C/man3/bsd_signal.3:111 build/C/man2/eventfd.2:435
411 #: build/C/man2/getitimer.2:253 build/C/man3/gsignal.3:114
412 #: build/C/man2/kill.2:188 build/C/man2/killpg.2:147 build/C/man2/pause.2:71
413 #: build/C/man2/prctl.2:993 build/C/man3/profil.3:93
414 #: build/C/man3/psignal.3:125 build/C/man3/raise.3:96
415 #: build/C/man2/restart_syscall.2:138 build/C/man2/rt_sigqueueinfo.2:203
416 #: build/C/man2/s390_runtime_instr.2:98 build/C/man2/sgetmask.2:92
417 #: build/C/man2/sigaction.2:820 build/C/man2/sigaltstack.2:246
418 #: build/C/man7/sigevent.7:149 build/C/man3/siginterrupt.3:105
419 #: build/C/man2/signal.2:304 build/C/man7/signal.7:891
420 #: build/C/man2/signalfd.2:453 build/C/man3/sigpause.3:126
421 #: build/C/man2/sigpending.2:106 build/C/man2/sigprocmask.2:162
422 #: build/C/man3/sigqueue.3:169 build/C/man2/sigreturn.2:87
423 #: build/C/man3/sigset.3:283 build/C/man3/sigsetops.3:184
424 #: build/C/man2/sigsuspend.2:125 build/C/man3/sigvec.3:282
425 #: build/C/man3/sigwait.3:109 build/C/man2/sigwaitinfo.2:206
426 #: build/C/man3/sysv_signal.3:104 build/C/man2/timer_create.2:429
427 #: build/C/man2/timer_delete.2:82 build/C/man2/timer_getoverrun.2:148
428 #: build/C/man2/timer_settime.2:223 build/C/man2/timerfd_create.2:560
429 #: build/C/man2/tkill.2:143 build/C/man2/wait.2:652 build/C/man2/wait4.2:179
430 msgid ""
431 "This page is part of release 3.64 of the Linux I<man-pages> project.  A "
432 "description of the project, and information about reporting bugs, can be "
433 "found at \\%http://www.kernel.org/doc/man-pages/."
434 msgstr ""
435 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.64 の一部\n"
436 "である。プロジェクトの説明とバグ報告に関する情報は\n"
437 "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
447 #, no-wrap
448 msgid "2010-08-30"
449 msgstr "2010-08-30"
450
451 #. type: TH
452 #: build/C/man2/eventfd.2:22 build/C/man2/getitimer.2:12
453 #: build/C/man2/kill.2:44 build/C/man2/killpg.2:42 build/C/man2/pause.2:30
454 #: build/C/man2/prctl.2:52 build/C/man3/profil.3:28
455 #: build/C/man2/restart_syscall.2:33 build/C/man2/rt_sigqueueinfo.2:25
456 #: build/C/man2/sgetmask.2:26 build/C/man2/sigaction.2:47
457 #: build/C/man2/sigaltstack.2:27 build/C/man2/signal.2:36
458 #: build/C/man7/signal.7:46 build/C/man2/signalfd.2:20
459 #: build/C/man3/sigpause.3:25 build/C/man2/sigpending.2:29
460 #: build/C/man2/sigprocmask.2:29 build/C/man3/sigqueue.3:28
461 #: build/C/man2/sigreturn.2:29 build/C/man3/sigset.3:26
462 #: build/C/man3/sigsetops.3:31 build/C/man2/sigsuspend.2:29
463 #: build/C/man3/sigvec.3:26 build/C/man3/sigwait.3:26
464 #: build/C/man2/sigwaitinfo.2:25 build/C/man2/timer_create.2:31
465 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
466 #: build/C/man2/timer_settime.2:26 build/C/man2/timerfd_create.2:21
467 #: build/C/man2/tkill.2:29 build/C/man2/wait.2:49 build/C/man2/wait4.2:33
468 #, no-wrap
469 msgid "Linux"
470 msgstr "Linux"
471
472 #. type: Plain text
473 #: build/C/man2/eventfd.2:25
474 msgid "eventfd - create a file descriptor for event notification"
475 msgstr "eventfd - イベント通知用のファイルディスクリプタを生成する"
476
477 #. type: Plain text
478 #: build/C/man2/eventfd.2:27
479 msgid "B<#include E<lt>sys/eventfd.hE<gt>>"
480 msgstr "B<#include E<lt>sys/eventfd.hE<gt>>"
481
482 #. type: Plain text
483 #: build/C/man2/eventfd.2:29
484 msgid "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
485 msgstr "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
486
487 #. type: Plain text
488 #: build/C/man2/eventfd.2:39
489 msgid ""
490 "B<eventfd>()  creates an \"eventfd object\" that can be used as an event "
491 "wait/notify mechanism by user-space applications, and by the kernel to "
492 "notify user-space applications of events.  The object contains an unsigned "
493 "64-bit integer (I<uint64_t>)  counter that is maintained by the kernel.  "
494 "This counter is initialized with the value specified in the argument "
495 "I<initval>."
496 msgstr ""
497 "B<eventfd>()  は \"eventfd オブジェクト\" を生成する。 eventfd オブジェクトは"
498 "ユーザ空間アプリケーションがイベント待ち受け/通知用の 仕組みとして使うことが"
499 "できる。また、カーネルがユーザ空間アプリケーションに イベントを通知するために"
500 "も使うことができる。 このオブジェクトには、unsigned の 64 ビット整数 "
501 "(I<uint64_t>)  型のカウンタが含まれており、このカウンタはカーネルにより管理さ"
502 "れる。 このカウンタは I<initval> 引き数で指定された値で初期化される。"
503
504 #. type: Plain text
505 #: build/C/man2/eventfd.2:44
506 msgid ""
507 "The following values may be bitwise ORed in I<flags> to change the behaviour "
508 "of B<eventfd>():"
509 msgstr ""
510 "以下の値のいくつかをビット単位の論理和 (OR) で指定することで、\n"
511 "B<eventfd>() の振舞いを変更することができる。"
512
513 #. type: TP
514 #: build/C/man2/eventfd.2:44
515 #, no-wrap
516 msgid "B<EFD_CLOEXEC> (since Linux 2.6.27)"
517 msgstr "B<EFD_CLOEXEC> (Linux 2.6.27 以降)"
518
519 #. type: Plain text
520 #: build/C/man2/eventfd.2:54 build/C/man2/signalfd.2:95
521 #: build/C/man2/timerfd_create.2:103
522 msgid ""
523 "Set the close-on-exec (B<FD_CLOEXEC>)  flag on the new file descriptor.  See "
524 "the description of the B<O_CLOEXEC> flag in B<open>(2)  for reasons why this "
525 "may be useful."
526 msgstr ""
527 "新しいファイルディスクリプタに対して close-on-exec (B<FD_CLOEXEC>)  フラグを"
528 "セットする。 このフラグが役に立つ理由については、 B<open>(2)  の "
529 "B<O_CLOEXEC> フラグの説明を参照のこと。"
530
531 #. type: TP
532 #: build/C/man2/eventfd.2:54
533 #, no-wrap
534 msgid "B<EFD_NONBLOCK> (since Linux 2.6.27)"
535 msgstr "B<EFD_NONBLOCK> (Linux 2.6.27 以降)"
536
537 #. type: Plain text
538 #: build/C/man2/eventfd.2:62 build/C/man2/signalfd.2:85
539 #: build/C/man2/timerfd_create.2:93
540 msgid ""
541 "Set the B<O_NONBLOCK> file status flag on the new open file description.  "
542 "Using this flag saves extra calls to B<fcntl>(2)  to achieve the same result."
543 msgstr ""
544 "新しく生成されるオープンファイル記述 (open file description) の "
545 "B<O_NONBLOCK> ファイルステータスフラグをセットする。 このフラグを使うこと"
546 "で、 B<O_NONBLOCK> をセットするために B<fcntl>(2)  を追加で呼び出す必要がなく"
547 "なる。"
548
549 #. type: TP
550 #: build/C/man2/eventfd.2:62
551 #, no-wrap
552 msgid "B<EFD_SEMAPHORE> (since Linux 2.6.30)"
553 msgstr "B<EFD_SEMAPHORE> (Linux 2.6.30 以降)"
554
555 #. type: Plain text
556 #: build/C/man2/eventfd.2:66
557 msgid ""
558 "Provide semaphore-like semantics for reads from the new file descriptor.  "
559 "See below."
560 msgstr ""
561 "新しいファイルディスクリプタからの読み出しにおいて、セマフォ風の動作を行"
562 "う。\n"
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:211
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 バイトの整数を返す。\n"
600 "渡されたバッファの大きさが 8 バイト未満の場合、\n"
601 "B<read>(2)  はエラー B<EINVAL> で失敗する。"
602
603 #. type: Plain text
604 #: build/C/man2/eventfd.2:91
605 msgid ""
606 "The value returned by B<read>(2)  is in host byte order\\(emthat is, the "
607 "native byte order for integers on the host machine."
608 msgstr ""
609 "B<read>(2) が返す値は、ホストバイトオーダ、つまり\n"
610 "そのホストマシンにおける整数の通常のバイトオーダである。"
611
612 #. type: Plain text
613 #: build/C/man2/eventfd.2:98
614 msgid ""
615 "The semantics of B<read>(2)  depend on whether the eventfd counter currently "
616 "has a nonzero value and whether the B<EFD_SEMAPHORE> flag was specified when "
617 "creating the eventfd file descriptor:"
618 msgstr ""
619 "B<read>(2) の動作は、 eventfd カウンタの現在の値が 0 以外であるかと、\n"
620 "eventfd ファイルディスクリプタを作成する際に B<EFD_SEMAPHORE> フラグが\n"
621 "指定されたか、により変化する。"
622
623 #. type: IP
624 #: build/C/man2/eventfd.2:99 build/C/man2/eventfd.2:106
625 #: build/C/man2/eventfd.2:113 build/C/man2/eventfd.2:158
626 #: build/C/man2/eventfd.2:168 build/C/man2/eventfd.2:178
627 #: build/C/man2/prctl.2:843 build/C/man2/prctl.2:848 build/C/man2/prctl.2:853
628 #: build/C/man2/prctl.2:863 build/C/man3/psignal.3:105
629 #: build/C/man3/psignal.3:109 build/C/man2/sigaction.2:298
630 #: build/C/man2/sigaction.2:313 build/C/man2/sigaction.2:329
631 #: build/C/man2/sigaction.2:344 build/C/man2/sigaction.2:391
632 #: build/C/man2/sigaction.2:427 build/C/man2/signal.2:68
633 #: build/C/man2/signal.2:73 build/C/man2/signal.2:80 build/C/man2/signal.2:224
634 #: build/C/man2/signal.2:228 build/C/man2/signal.2:267
635 #: build/C/man7/signal.7:149 build/C/man7/signal.7:157
636 #: build/C/man7/signal.7:615 build/C/man7/signal.7:617
637 #: build/C/man7/signal.7:638 build/C/man7/signal.7:653
638 #: build/C/man7/signal.7:657 build/C/man7/signal.7:664
639 #: build/C/man7/signal.7:680 build/C/man7/signal.7:686
640 #: build/C/man7/signal.7:693 build/C/man7/signal.7:698
641 #: build/C/man7/signal.7:717 build/C/man7/signal.7:736
642 #: build/C/man7/signal.7:743 build/C/man7/signal.7:752
643 #: build/C/man7/signal.7:760 build/C/man7/signal.7:766
644 #: build/C/man7/signal.7:771 build/C/man7/signal.7:791
645 #: build/C/man7/signal.7:810 build/C/man7/signal.7:813
646 #: build/C/man7/signal.7:816 build/C/man7/signal.7:819
647 #: build/C/man7/signal.7:824 build/C/man7/signal.7:830
648 #: build/C/man7/signal.7:834 build/C/man3/sigwait.3:62
649 #: build/C/man3/sigwait.3:67 build/C/man2/timer_create.2:216
650 #: build/C/man2/timer_create.2:219 build/C/man2/timer_create.2:222
651 #: build/C/man2/timer_create.2:226 build/C/man2/timer_create.2:229
652 #: build/C/man2/timer_create.2:235 build/C/man2/timer_create.2:239
653 #, no-wrap
654 msgid "*"
655 msgstr "*"
656
657 #. type: Plain text
658 #: build/C/man2/eventfd.2:106
659 msgid ""
660 "If B<EFD_SEMAPHORE> was not specified and the eventfd counter has a nonzero "
661 "value, then a B<read>(2)  returns 8 bytes containing that value, and the "
662 "counter's value is reset to zero."
663 msgstr ""
664 "B<EFD_SEMAPHORE> が指定されておらず、eventfd カウンタが 0 以外の値\n"
665 "の場合、 B<read>(2) はカウンタ値を格納した 8 バイトの値を返し、\n"
666 "カウンタ値は 0 にリセットされる。"
667
668 #. type: Plain text
669 #: build/C/man2/eventfd.2:113
670 msgid ""
671 "If B<EFD_SEMAPHORE> was specified and the eventfd counter has a nonzero "
672 "value, then a B<read>(2)  returns 8 bytes containing the value 1, and the "
673 "counter's value is decremented by 1."
674 msgstr ""
675 "B<EFD_SEMAPHORE> が指定されていて eventfd カウンタが 0 以外の値の場合、\n"
676 "B<read>(2) は値 1 の 8 バイト値を返し、カウンタ値は 1 減算される。"
677
678 #. type: Plain text
679 #: build/C/man2/eventfd.2:123
680 msgid ""
681 "If the eventfd counter is zero at the time of the call to B<read>(2), then "
682 "the call either blocks until the counter becomes nonzero (at which time, the "
683 "B<read>(2)  proceeds as described above)  or fails with the error B<EAGAIN> "
684 "if the file descriptor has been made nonblocking."
685 msgstr ""
686 "B<read>(2) を呼び出した時点で eventfd カウンタが 0 の場合、 B<read>(2)\n"
687 "はカウンタが 0 以外になるまで停止 (block) する (0 以外になった時点で\n"
688 "B<read>(2) は上記で述べた通り実行を再開する)、 もしくはファイルディスク\n"
689 "リプタが非停止 (nonblocking) に設定されている場合はエラー B<EAGAIN>で\n"
690 "失敗する。"
691
692 #. type: TP
693 #: build/C/man2/eventfd.2:124
694 #, no-wrap
695 msgid "B<write>(2)"
696 msgstr "B<write>(2)"
697
698 #. type: Plain text
699 #: build/C/man2/eventfd.2:141
700 msgid ""
701 "A B<write>(2)  call adds the 8-byte integer value supplied in its buffer to "
702 "the counter.  The maximum value that may be stored in the counter is the "
703 "largest unsigned 64-bit value minus 1 (i.e., 0xfffffffffffffffe).  If the "
704 "addition would cause the counter's value to exceed the maximum, then the "
705 "B<write>(2)  either blocks until a B<read>(2)  is performed on the file "
706 "descriptor, or fails with the error B<EAGAIN> if the file descriptor has "
707 "been made nonblocking."
708 msgstr ""
709 "B<write>(2)  は、引き数のバッファで渡された 8 バイトの整数値をカウンタに加算"
710 "する。 カウンタに格納可能な最大値は unsigned の 64 ビット整数の最大値から 1 "
711 "を引いた値 (すなわち 0xfffffffffffffffe) である。 加算を行うとカウンタ値が最"
712 "大値を超過する場合には、 そのファイルディスクリプタに対して B<read>(2)  が実"
713 "行されるまで、 B<write>(2)  は停止 (block) する、 もしくはファイルディスクリ"
714 "プタが非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗す"
715 "る。"
716
717 #. type: Plain text
718 #: build/C/man2/eventfd.2:148
719 msgid ""
720 "A B<write>(2)  will fail with the error B<EINVAL> if the size of the "
721 "supplied buffer is less than 8 bytes, or if an attempt is made to write the "
722 "value 0xffffffffffffffff."
723 msgstr ""
724 "渡されたバッファの大きさが 8 バイト未満の場合、もしくは 値 "
725 "0xffffffffffffffff を書き込もうとした場合、 B<write>(2)  はエラー B<EINVAL> "
726 "で失敗する。"
727
728 #. type: TP
729 #: build/C/man2/eventfd.2:148 build/C/man2/signalfd.2:140
730 #: build/C/man2/timerfd_create.2:244
731 #, no-wrap
732 msgid "B<poll>(2), B<select>(2) (and similar)"
733 msgstr "B<poll>(2), B<select>(2) (と同様の操作)"
734
735 #. type: Plain text
736 #: build/C/man2/eventfd.2:157
737 msgid ""
738 "The returned file descriptor supports B<poll>(2)  (and analogously B<epoll>"
739 "(7))  and B<select>(2), as follows:"
740 msgstr ""
741 "返されたファイルディスクリプタは、 B<poll>(2)  (B<epoll>(7)  も同じ) や "
742 "B<select>(2)  をサポートしており、以下のような動作をする。"
743
744 #. type: Plain text
745 #: build/C/man2/eventfd.2:168
746 msgid ""
747 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
748 "B<poll>(2)  B<POLLIN> flag)  if the counter has a value greater than 0."
749 msgstr ""
750 "カウンタが 0 より大きい値の場合、 ファイルディスクリプタは読み出し可能となる "
751 "(B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
752
753 #. type: Plain text
754 #: build/C/man2/eventfd.2:178
755 msgid ""
756 "The file descriptor is writable (the B<select>(2)  I<writefds> argument; the "
757 "B<poll>(2)  B<POLLOUT> flag)  if it is possible to write a value of at least "
758 "\"1\" without blocking."
759 msgstr ""
760 "少なくとも値 \"1\" を、停止 (block) を伴わずに書き込める場合、 ファイルディス"
761 "クリプタは書き込み可能となる (B<select>(2)  の I<writefds> 引き数や B<poll>"
762 "(2)  の B<POLLOUT> フラグ)。"
763
764 #. type: Plain text
765 #: build/C/man2/eventfd.2:198
766 msgid ""
767 "If an overflow of the counter value was detected, then B<select>(2)  "
768 "indicates the file descriptor as being both readable and writable, and "
769 "B<poll>(2)  returns a B<POLLERR> event.  As noted above, B<write>(2)  can "
770 "never overflow the counter.  However an overflow can occur if 2^64 eventfd "
771 "\"signal posts\" were performed by the KAIO subsystem (theoretically "
772 "possible, but practically unlikely).  If an overflow has occurred, then "
773 "B<read>(2)  will return that maximum I<uint64_t> value (i.e., "
774 "0xffffffffffffffff)."
775 msgstr ""
776 "カウンタ値のオーバーフローが検出された場合、 B<select>(2)  はファイルディスク"
777 "リプタは読み出し可能と書き込み可能の両方を通知し、 B<poll>(2)  は B<POLLERR> "
778 "イベントを返す。 上述の通り、 B<write>(2)  でカウンタがオーバーフローすること"
779 "は決してない。 しかしながら、 KAIO サブシステムによって 2^64 回の eventfd "
780 "\"signal posts\" が 実行された場合にはオーバーフローが起こり得る (理論的には"
781 "あり得るが、実用的にはあり得ない)。 オーバーフローが発生した場合、 B<read>"
782 "(2)  は I<uint64_t> の最大値 (すなわち 0xffffffffffffffff) を返す。"
783
784 #. type: Plain text
785 #: build/C/man2/eventfd.2:205
786 msgid ""
787 "The eventfd file descriptor also supports the other file-descriptor "
788 "multiplexing APIs: B<pselect>(2)  and B<ppoll>(2)."
789 msgstr ""
790 "eventfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
791 "である B<pselect>(2) と B<ppoll>(2) もサポートしている。"
792
793 #. type: TP
794 #: build/C/man2/eventfd.2:205 build/C/man2/signalfd.2:160
795 #: build/C/man2/timerfd_create.2:262
796 #, no-wrap
797 msgid "B<close>(2)"
798 msgstr "B<close>(2)"
799
800 #. type: Plain text
801 #: build/C/man2/eventfd.2:210
802 msgid ""
803 "When the file descriptor is no longer required it should be closed.  When "
804 "all file descriptors associated with the same eventfd object have been "
805 "closed, the resources for object are freed by the kernel."
806 msgstr ""
807 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
808 "る。 同じ eventfd オブジェクトに関連付けられたファイルディスクリプタが全て ク"
809 "ローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
810
811 #. type: Plain text
812 #: build/C/man2/eventfd.2:222
813 msgid ""
814 "A copy of the file descriptor created by B<eventfd>()  is inherited by the "
815 "child produced by B<fork>(2).  The duplicate file descriptor is associated "
816 "with the same eventfd object.  File descriptors created by B<eventfd>()  are "
817 "preserved across B<execve>(2), unless the close-on-exec flag has been set."
818 msgstr ""
819 "B<fork>(2) で生成された子プロセスは、 B<eventfd>() で生成されたファイル\n"
820 "ディスクリプタのコピーを継承する。 複製されたファイルディスクリプタは同\n"
821 "じ eventfd オブジェクトに関連付けられる。\n"
822 "close-on-exec フラグが設定されていない場合、 B<execve>(2) の前後で\n"
823 "B<eventfd>() で生成されたファイルディスクリプタは保持される。"
824
825 #. type: Plain text
826 #: build/C/man2/eventfd.2:229
827 msgid ""
828 "On success, B<eventfd>()  returns a new eventfd file descriptor.  On error, "
829 "-1 is returned and I<errno> is set to indicate the error."
830 msgstr ""
831 "成功すると、 B<eventfd>()  は新規の eventfd ファイルディスクリプタを返す。 エ"
832 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
833
834 #. type: TP
835 #: build/C/man2/eventfd.2:230 build/C/man2/getitimer.2:135
836 #: build/C/man2/kill.2:106 build/C/man2/killpg.2:95 build/C/man2/prctl.2:805
837 #: build/C/man2/prctl.2:810 build/C/man2/prctl.2:822 build/C/man2/prctl.2:827
838 #: build/C/man2/prctl.2:836 build/C/man2/prctl.2:876
839 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man2/s390_runtime_instr.2:66
840 #: build/C/man2/sigaction.2:670 build/C/man2/sigaltstack.2:142
841 #: build/C/man3/siginterrupt.3:84 build/C/man2/signal.2:106
842 #: build/C/man2/signalfd.2:271 build/C/man2/signalfd.2:279
843 #: build/C/man2/sigprocmask.2:107 build/C/man3/sigqueue.3:98
844 #: build/C/man3/sigsetops.3:127 build/C/man3/sigwait.3:75
845 #: build/C/man2/sigwaitinfo.2:129 build/C/man2/timer_create.2:179
846 #: build/C/man2/timer_delete.2:61 build/C/man2/timer_getoverrun.2:91
847 #: build/C/man2/timer_settime.2:191 build/C/man2/timer_settime.2:199
848 #: build/C/man2/timerfd_create.2:305 build/C/man2/timerfd_create.2:313
849 #: build/C/man2/timerfd_create.2:349 build/C/man2/timerfd_create.2:356
850 #: build/C/man2/timerfd_create.2:362 build/C/man2/tkill.2:100
851 #: build/C/man2/wait.2:417
852 #, no-wrap
853 msgid "B<EINVAL>"
854 msgstr "B<EINVAL>"
855
856 #. type: Plain text
857 #: build/C/man2/eventfd.2:234
858 msgid "An unsupported value was specified in I<flags>."
859 msgstr "I<flags> にサポートされていない値が指定された。"
860
861 #. type: TP
862 #: build/C/man2/eventfd.2:234 build/C/man2/signalfd.2:286
863 #: build/C/man2/timerfd_create.2:320
864 #, no-wrap
865 msgid "B<EMFILE>"
866 msgstr "B<EMFILE>"
867
868 #. type: Plain text
869 #: build/C/man2/eventfd.2:237
870 msgid "The per-process limit on open file descriptors has been reached."
871 msgstr ""
872 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
873
874 #. type: TP
875 #: build/C/man2/eventfd.2:237 build/C/man2/signalfd.2:289
876 #: build/C/man2/timerfd_create.2:323
877 #, no-wrap
878 msgid "B<ENFILE>"
879 msgstr "B<ENFILE>"
880
881 #. type: Plain text
882 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
883 #: build/C/man2/timerfd_create.2:327
884 msgid ""
885 "The system-wide limit on the total number of open files has been reached."
886 msgstr "オープン済みのファイル総数がシステム全体の上限に達していた。"
887
888 #. type: TP
889 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
890 #: build/C/man2/timerfd_create.2:327
891 #, no-wrap
892 msgid "B<ENODEV>"
893 msgstr "B<ENODEV>"
894
895 #. type: Plain text
896 #: build/C/man2/eventfd.2:249 build/C/man2/signalfd.2:296
897 #: build/C/man2/timerfd_create.2:330
898 msgid "Could not mount (internal) anonymous inode device."
899 msgstr "(カーネル内の) 無名 inode デバイスをマウントできなかった。"
900
901 #. type: TP
902 #: build/C/man2/eventfd.2:249 build/C/man2/s390_runtime_instr.2:73
903 #: build/C/man2/sigaltstack.2:147 build/C/man2/signalfd.2:296
904 #: build/C/man2/timer_create.2:187 build/C/man2/timerfd_create.2:330
905 #, no-wrap
906 msgid "B<ENOMEM>"
907 msgstr "B<ENOMEM>"
908
909 #. type: Plain text
910 #: build/C/man2/eventfd.2:253
911 msgid "There was insufficient memory to create a new eventfd file descriptor."
912 msgstr ""
913 "新しい eventfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
914
915 #. type: SH
916 #: build/C/man2/eventfd.2:253 build/C/man2/prctl.2:964
917 #: build/C/man3/psignal.3:95 build/C/man2/restart_syscall.2:92
918 #: build/C/man2/rt_sigqueueinfo.2:169 build/C/man2/s390_runtime_instr.2:79
919 #: build/C/man2/signalfd.2:299 build/C/man3/sigqueue.3:112
920 #: build/C/man2/timer_create.2:191 build/C/man2/timer_delete.2:65
921 #: build/C/man2/timer_getoverrun.2:95 build/C/man2/timer_settime.2:205
922 #: build/C/man2/timerfd_create.2:368 build/C/man2/tkill.2:111
923 #, no-wrap
924 msgid "VERSIONS"
925 msgstr "バージョン"
926
927 #.  eventfd() is in glibc 2.7, but reportedly does not build
928 #. type: Plain text
929 #: build/C/man2/eventfd.2:266
930 msgid ""
931 "B<eventfd>()  is available on Linux since kernel 2.6.22.  Working support is "
932 "provided in glibc since version 2.8.  The B<eventfd2>()  system call (see "
933 "NOTES) is available on Linux since kernel 2.6.27.  Since version 2.9, the "
934 "glibc B<eventfd>()  wrapper will employ the B<eventfd2>()  system call, if "
935 "it is supported by the kernel."
936 msgstr ""
937 "B<eventfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
938 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<eventfd2>()  "
939 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
940 "る。 バージョン 2.9 以降では、glibc の B<eventfd>()  のラッパー関数は、カーネ"
941 "ルが対応していれば B<eventfd2>()  システムコールを利用する。"
942
943 #. type: Plain text
944 #: build/C/man2/eventfd.2:271
945 msgid "B<eventfd>()  and B<eventfd2>()  are Linux-specific."
946 msgstr "B<eventfd>()  と B<eventfd2>()  は Linux 固有である。"
947
948 #. type: Plain text
949 #: build/C/man2/eventfd.2:279
950 msgid ""
951 "Applications can use an eventfd file descriptor instead of a pipe (see "
952 "B<pipe>(2))  in all cases where a pipe is used simply to signal events.  The "
953 "kernel overhead of an eventfd file descriptor is much lower than that of a "
954 "pipe, and only one file descriptor is required (versus the two required for "
955 "a pipe)."
956 msgstr ""
957 "アプリケーションは、パイプをイベントを通知するためだけに使用している 全ての場"
958 "面において、パイプの代わりに eventfd ファイルディスクリプタを 使用することが"
959 "できる。 eventfd ファイルディスクリプタを使う方が、パイプを使う場合に比べて "
960 "カーネルでのオーバヘッドは比べるとずっと小さく、ファイルディスクリプタも 一つ"
961 "しか必要としない (パイプの場合は二つ必要である)。"
962
963 #.  or eventually syslets/threadlets
964 #. type: Plain text
965 #: build/C/man2/eventfd.2:285
966 msgid ""
967 "When used in the kernel, an eventfd file descriptor can provide a bridge "
968 "from kernel to user space, allowing, for example, functionalities like KAIO "
969 "(kernel AIO)  to signal to a file descriptor that some operation is complete."
970 msgstr ""
971 "カーネル内で使用すると、eventfd ファイルディスクリプタはカーネル空間からユー"
972 "ザ空間へのブリッジ機能を提供することができ、 例えば KAIO (kernel AIO)  のよう"
973 "な機能が、あるファイルディスクリプタに何らかの操作が完了したことを 通知するこ"
974 "とができる。"
975
976 #. type: Plain text
977 #: build/C/man2/eventfd.2:302
978 msgid ""
979 "A key point about an eventfd file descriptor is that it can be monitored "
980 "just like any other file descriptor using B<select>(2), B<poll>(2), or "
981 "B<epoll>(7).  This means that an application can simultaneously monitor the "
982 "readiness of \"traditional\" files and the readiness of other kernel "
983 "mechanisms that support the eventfd interface.  (Without the B<eventfd>()  "
984 "interface, these mechanisms could not be multiplexed via B<select>(2), "
985 "B<poll>(2), or B<epoll>(7).)"
986 msgstr ""
987 "eventfd ファイルディスクリプタの重要な点は、 eventfd ファイルディスクリプタ"
988 "が B<select>(2), B<poll>(2), B<epoll>(7)  を使って他のファイルディスクリプタ"
989 "と全く同様に監視できる点である。 このことは、アプリケーションは「従来の "
990 "(traditional)」 ファイルの状態変化と eventfd インタフェースをサポートする他の"
991 "カーネル機構の状態変化を同時に監視 できることを意味する (B<eventfd>()  インタ"
992 "フェースがない時には、これらのカーネル機構は B<select>(2), B<poll>(2), "
993 "B<epoll>(7)  経由で多重することはできなかった)。"
994
995 #. type: SS
996 #: build/C/man2/eventfd.2:302 build/C/man2/signalfd.2:336
997 #, no-wrap
998 msgid "Underlying Linux system calls"
999 msgstr "下層にある Linux のシステムコール"
1000
1001 #. type: Plain text
1002 #: build/C/man2/eventfd.2:316
1003 msgid ""
1004 "There are two underlying Linux system calls: B<eventfd>()  and the more "
1005 "recent B<eventfd2>().  The former system call does not implement a I<flags> "
1006 "argument.  The latter system call implements the I<flags> values described "
1007 "above.  The glibc wrapper function will use B<eventfd2>()  where it is "
1008 "available."
1009 msgstr ""
1010 "下層にある Linux システムコールは二種類あり、 B<eventfd>()  と、もっと新しい "
1011 "B<eventfd2>()  である。 B<eventfd>()  は I<flags> 引き数を実装していない。 "
1012 "B<eventfd2>()  では上記の値の I<flags> が実装されている。 glibc のラッパー関"
1013 "数は、 B<eventfd2>()  が利用可能であれば、これを使用する。"
1014
1015 #. type: SS
1016 #: build/C/man2/eventfd.2:316
1017 #, no-wrap
1018 msgid "Additional glibc features"
1019 msgstr "glibc の追加機能"
1020
1021 #. type: Plain text
1022 #: build/C/man2/eventfd.2:320
1023 msgid ""
1024 "The GNU C library defines an additional type, and two functions that attempt "
1025 "to abstract some of the details of reading and writing on an eventfd file "
1026 "descriptor:"
1027 msgstr ""
1028 "GNU C ライブラリは、eventfd ファイルディスクリプタの読み出しと書き込みに を関"
1029 "する詳細のいくつか抽象化するために、一つの型と、二つの関数を追加で 定義してい"
1030 "る。"
1031
1032 #. type: Plain text
1033 #: build/C/man2/eventfd.2:324
1034 #, no-wrap
1035 msgid "typedef uint64_t eventfd_t;\n"
1036 msgstr "typedef uint64_t eventfd_t;\n"
1037
1038 #. type: Plain text
1039 #: build/C/man2/eventfd.2:327
1040 #, no-wrap
1041 msgid ""
1042 "int eventfd_read(int fd, eventfd_t *value);\n"
1043 "int eventfd_write(int fd, eventfd_t value);\n"
1044 msgstr ""
1045 "int eventfd_read(int fd, eventfd_t *value);\n"
1046 "int eventfd_write(int fd, eventfd_t value);\n"
1047
1048 #. type: Plain text
1049 #: build/C/man2/eventfd.2:334
1050 msgid ""
1051 "The functions perform the read and write operations on an eventfd file "
1052 "descriptor, returning 0 if the correct number of bytes was transferred, or "
1053 "-1 otherwise."
1054 msgstr ""
1055 "これらの関数は、eventfd ファイルディスクリプタに対する読み出しと 書き込みの操"
1056 "作を実行し、正しいバイト数が転送された場合には 0 を返し、そうでない場合は -1 "
1057 "を返す。"
1058
1059 #. type: SH
1060 #: build/C/man2/eventfd.2:334 build/C/man2/sigaction.2:790
1061 #: build/C/man2/sigaltstack.2:215 build/C/man2/signalfd.2:360
1062 #: build/C/man3/sigwait.3:91 build/C/man2/timer_create.2:261
1063 #: build/C/man2/timer_getoverrun.2:128 build/C/man2/timer_settime.2:209
1064 #: build/C/man2/timerfd_create.2:379 build/C/man2/wait.2:550
1065 #, no-wrap
1066 msgid "EXAMPLE"
1067 msgstr "例"
1068
1069 #. type: Plain text
1070 #: build/C/man2/eventfd.2:343
1071 msgid ""
1072 "The following program creates an eventfd file descriptor and then forks to "
1073 "create a child process.  While the parent briefly sleeps, the child writes "
1074 "each of the integers supplied in the program's command-line arguments to the "
1075 "eventfd file descriptor.  When the parent has finished sleeping, it reads "
1076 "from the eventfd file descriptor."
1077 msgstr ""
1078 "以下のプログラムは eventfd ファイルディスクリプタを生成し、 その後 fork を実"
1079 "行して子プロセスを生成する。 親プロセスが少しの間 sleep する間に、子プロセス"
1080 "は プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ eventfd "
1081 "ファイルディスクリプタに書き込む。 親プロセスは sleep を完了すると eventfd "
1082 "ファイルディスクリプタから 読み出しを行う。"
1083
1084 #. type: Plain text
1085 #: build/C/man2/eventfd.2:345
1086 msgid "The following shell session shows a sample run of the program:"
1087 msgstr "以下に示すシェルセッションにこのプログラムの使い方を示す。"
1088
1089 #. type: Plain text
1090 #: build/C/man2/eventfd.2:357
1091 #, no-wrap
1092 msgid ""
1093 "$B< ./a.out 1 2 4 7 14>\n"
1094 "Child writing 1 to efd\n"
1095 "Child writing 2 to efd\n"
1096 "Child writing 4 to efd\n"
1097 "Child writing 7 to efd\n"
1098 "Child writing 14 to efd\n"
1099 "Child completed write loop\n"
1100 "Parent about to read\n"
1101 "Parent read 28 (0x1c) from efd\n"
1102 msgstr ""
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
1113 #. type: SS
1114 #: build/C/man2/eventfd.2:359 build/C/man2/signalfd.2:383
1115 #: build/C/man2/timer_create.2:292 build/C/man2/timerfd_create.2:407
1116 #: build/C/man2/wait.2:585
1117 #, no-wrap
1118 msgid "Program source"
1119 msgstr "プログラムのソース"
1120
1121 #. type: Plain text
1122 #: build/C/man2/eventfd.2:367
1123 #, no-wrap
1124 msgid ""
1125 "#include E<lt>sys/eventfd.hE<gt>\n"
1126 "#include E<lt>unistd.hE<gt>\n"
1127 "#include E<lt>stdlib.hE<gt>\n"
1128 "#include E<lt>stdio.hE<gt>\n"
1129 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1130 msgstr ""
1131 "#include E<lt>sys/eventfd.hE<gt>\n"
1132 "#include E<lt>unistd.hE<gt>\n"
1133 "#include E<lt>stdlib.hE<gt>\n"
1134 "#include E<lt>stdio.hE<gt>\n"
1135 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1136
1137 #. type: Plain text
1138 #: build/C/man2/eventfd.2:370 build/C/man2/signalfd.2:394
1139 #, no-wrap
1140 msgid ""
1141 "#define handle_error(msg) \\e\n"
1142 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1143 msgstr ""
1144 "#define handle_error(msg) \\e\n"
1145 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1146
1147 #. type: Plain text
1148 #: build/C/man2/eventfd.2:377
1149 #, no-wrap
1150 msgid ""
1151 "int\n"
1152 "main(int argc, char *argv[])\n"
1153 "{\n"
1154 "    int efd, j;\n"
1155 "    uint64_t u;\n"
1156 "    ssize_t s;\n"
1157 msgstr ""
1158 "int\n"
1159 "main(int argc, char *argv[])\n"
1160 "{\n"
1161 "    int efd, j;\n"
1162 "    uint64_t u;\n"
1163 "    ssize_t s;\n"
1164
1165 #. type: Plain text
1166 #: build/C/man2/eventfd.2:382
1167 #, no-wrap
1168 msgid ""
1169 "    if (argc E<lt> 2) {\n"
1170 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1171 "        exit(EXIT_FAILURE);\n"
1172 "    }\n"
1173 msgstr ""
1174 "    if (argc E<lt> 2) {\n"
1175 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1176 "        exit(EXIT_FAILURE);\n"
1177 "    }\n"
1178
1179 #. type: Plain text
1180 #: build/C/man2/eventfd.2:386
1181 #, no-wrap
1182 msgid ""
1183 "    efd = eventfd(0, 0);\n"
1184 "    if (efd == -1)\n"
1185 "        handle_error(\"eventfd\");\n"
1186 msgstr ""
1187 "    efd = eventfd(0, 0);\n"
1188 "    if (efd == -1)\n"
1189 "        handle_error(\"eventfd\");\n"
1190
1191 #. type: Plain text
1192 #: build/C/man2/eventfd.2:398
1193 #, no-wrap
1194 msgid ""
1195 "    switch (fork()) {\n"
1196 "    case 0:\n"
1197 "        for (j = 1; j E<lt> argc; j++) {\n"
1198 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1199 "            u = strtoull(argv[j], NULL, 0);\n"
1200 "                    /* strtoull() allows various bases */\n"
1201 "            s = write(efd, &u, sizeof(uint64_t));\n"
1202 "            if (s != sizeof(uint64_t))\n"
1203 "                handle_error(\"write\");\n"
1204 "        }\n"
1205 "        printf(\"Child completed write loop\\en\");\n"
1206 msgstr ""
1207 "    switch (fork()) {\n"
1208 "    case 0:\n"
1209 "        for (j = 1; j E<lt> argc; j++) {\n"
1210 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1211 "            u = strtoull(argv[j], NULL, 0);\n"
1212 "                    /* strtoull() allows various bases */\n"
1213 "            s = write(efd, &u, sizeof(uint64_t));\n"
1214 "            if (s != sizeof(uint64_t))\n"
1215 "                handle_error(\"write\");\n"
1216 "        }\n"
1217 "        printf(\"Child completed write loop\\en\");\n"
1218
1219 #. type: Plain text
1220 #: build/C/man2/eventfd.2:400
1221 #, no-wrap
1222 msgid "        exit(EXIT_SUCCESS);\n"
1223 msgstr "        exit(EXIT_SUCCESS);\n"
1224
1225 #. type: Plain text
1226 #: build/C/man2/eventfd.2:403
1227 #, no-wrap
1228 msgid ""
1229 "    default:\n"
1230 "        sleep(2);\n"
1231 msgstr ""
1232 "    default:\n"
1233 "        sleep(2);\n"
1234
1235 #. type: Plain text
1236 #: build/C/man2/eventfd.2:411
1237 #, no-wrap
1238 msgid ""
1239 "        printf(\"Parent about to read\\en\");\n"
1240 "        s = read(efd, &u, sizeof(uint64_t));\n"
1241 "        if (s != sizeof(uint64_t))\n"
1242 "            handle_error(\"read\");\n"
1243 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1244 "                (unsigned long long) u, (unsigned long long) u);\n"
1245 "        exit(EXIT_SUCCESS);\n"
1246 msgstr ""
1247 "        printf(\"Parent about to read\\en\");\n"
1248 "        s = read(efd, &u, sizeof(uint64_t));\n"
1249 "        if (s != sizeof(uint64_t))\n"
1250 "            handle_error(\"read\");\n"
1251 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1252 "                (unsigned long long) u, (unsigned long long) u);\n"
1253 "        exit(EXIT_SUCCESS);\n"
1254
1255 #. type: Plain text
1256 #: build/C/man2/eventfd.2:416
1257 #, no-wrap
1258 msgid ""
1259 "    case -1:\n"
1260 "        handle_error(\"fork\");\n"
1261 "    }\n"
1262 "}\n"
1263 msgstr ""
1264 "    case -1:\n"
1265 "        handle_error(\"fork\");\n"
1266 "    }\n"
1267 "}\n"
1268
1269 #. type: Plain text
1270 #: build/C/man2/eventfd.2:428
1271 msgid ""
1272 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), B<signalfd>"
1273 "(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), B<sem_overview>(7)"
1274 msgstr ""
1275 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), B<signalfd>"
1276 "(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), B<sem_overview>(7)"
1277
1278 #. type: TH
1279 #: build/C/man2/getitimer.2:12
1280 #, no-wrap
1281 msgid "GETITIMER"
1282 msgstr "GETITIMER"
1283
1284 #. type: TH
1285 #: build/C/man2/getitimer.2:12
1286 #, no-wrap
1287 msgid "2012-10-01"
1288 msgstr "2012-10-01"
1289
1290 #. type: Plain text
1291 #: build/C/man2/getitimer.2:15
1292 msgid "getitimer, setitimer - get or set value of an interval timer"
1293 msgstr "getitimer, setitimer - インターバル・タイマーの値を取得または設定する"
1294
1295 #. type: Plain text
1296 #: build/C/man2/getitimer.2:18
1297 #, no-wrap
1298 msgid "B<#include E<lt>sys/time.hE<gt>>\n"
1299 msgstr "B<#include E<lt>sys/time.hE<gt>>\n"
1300
1301 #. type: Plain text
1302 #: build/C/man2/getitimer.2:20
1303 #, no-wrap
1304 msgid "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1305 msgstr "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1306
1307 #. type: Plain text
1308 #: build/C/man2/getitimer.2:23
1309 #, no-wrap
1310 msgid ""
1311 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1312 "B<              struct itimerval *>I<old_value>B<);>\n"
1313 msgstr ""
1314 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1315 "B<              struct itimerval *>I<old_value>B<);>\n"
1316
1317 #. type: Plain text
1318 #: build/C/man2/getitimer.2:29
1319 msgid ""
1320 "The system provides each process with three interval timers, each "
1321 "decrementing in a distinct time domain.  When any timer expires, a signal is "
1322 "sent to the process, and the timer (potentially) restarts."
1323 msgstr ""
1324 "システムは 1 個のプロセスにつき 3 個のインターバル・タイマーを提供する。 それ"
1325 "ぞれのタイマーは別々の時間領域で減少する。 どのタイマーも満了するとプロセスに"
1326 "シグナルが送られ、 タイマーは (設定によっては) 再び開始される。"
1327
1328 #. type: TP
1329 #: build/C/man2/getitimer.2:29
1330 #, no-wrap
1331 msgid "B<ITIMER_REAL>"
1332 msgstr "B<ITIMER_REAL>"
1333
1334 #. type: Plain text
1335 #: build/C/man2/getitimer.2:34
1336 msgid "decrements in real time, and delivers B<SIGALRM> upon expiration."
1337 msgstr "実時間 (real time) で減少し、満了すると B<SIGALRM> が送られる。"
1338
1339 #. type: TP
1340 #: build/C/man2/getitimer.2:34
1341 #, no-wrap
1342 msgid "B<ITIMER_VIRTUAL>"
1343 msgstr "B<ITIMER_VIRTUAL>"
1344
1345 #. type: Plain text
1346 #: build/C/man2/getitimer.2:39
1347 msgid ""
1348 "decrements only when the process is executing, and delivers B<SIGVTALRM> "
1349 "upon expiration."
1350 msgstr ""
1351 "プロセスが実行されている間のみ減少し、満了すると B<SIGVTALRM> が送られる。"
1352
1353 #. type: TP
1354 #: build/C/man2/getitimer.2:39
1355 #, no-wrap
1356 msgid "B<ITIMER_PROF>"
1357 msgstr "B<ITIMER_PROF>"
1358
1359 #. type: Plain text
1360 #: build/C/man2/getitimer.2:49
1361 msgid ""
1362 "decrements both when the process executes and when the system is executing "
1363 "on behalf of the process.  Coupled with B<ITIMER_VIRTUAL>, this timer is "
1364 "usually used to profile the time spent by the application in user and kernel "
1365 "space.  B<SIGPROF> is delivered upon expiration."
1366 msgstr ""
1367 "プロセスが実行されていて、 かつシステムがそのプロセスのために処理を行なってい"
1368 "る間に減少する。 多くの場合、このタイマーは B<ITIMER_VIRTUAL> と組み合わされ"
1369 "て、アプリケーションがカーネル空間とユーザー空間で どれだけの時間を過ごしたか"
1370 "をプロファイルするのに使用される。 満了すると B<SIGPROF> が送られる。"
1371
1372 #. type: Plain text
1373 #: build/C/man2/getitimer.2:51
1374 msgid "Timer values are defined by the following structures:"
1375 msgstr "タイマーの値は以下の構造体によって定義される:"
1376
1377 #. type: Plain text
1378 #: build/C/man2/getitimer.2:59
1379 #, no-wrap
1380 msgid ""
1381 "struct itimerval {\n"
1382 "    struct timeval it_interval; /* next value */\n"
1383 "    struct timeval it_value;    /* current value */\n"
1384 "};\n"
1385 msgstr ""
1386 "struct itimerval {\n"
1387 "    struct timeval it_interval; /* next value */\n"
1388 "    struct timeval it_value;    /* current value */\n"
1389 "};\n"
1390
1391 #. type: Plain text
1392 #: build/C/man2/getitimer.2:64
1393 #, no-wrap
1394 msgid ""
1395 "struct timeval {\n"
1396 "    time_t      tv_sec;         /* seconds */\n"
1397 "    suseconds_t tv_usec;        /* microseconds */\n"
1398 "};\n"
1399 msgstr ""
1400 "struct timeval {\n"
1401 "    time_t      tv_sec;         /* seconds */\n"
1402 "    suseconds_t tv_usec;        /* microseconds */\n"
1403 "};\n"
1404
1405 #. type: Plain text
1406 #: build/C/man2/getitimer.2:86
1407 msgid ""
1408 "The function B<getitimer>()  fills the structure pointed to by I<curr_value> "
1409 "with the current setting for the timer specified by I<which> (one of "
1410 "B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>).  The element "
1411 "I<it_value> is set to the amount of time remaining on the timer, or zero if "
1412 "the timer is disabled.  Similarly, I<it_interval> is set to the reset value."
1413 msgstr ""
1414 "B<getitimer>()  関数は、 I<which> で指定されたタイマー (B<ITIMER_REAL>, "
1415 "B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれか) の現在の設定を、 I<curr_value> で"
1416 "指定された構造体に格納する。 I<it_value> 要素にはタイマーの残り時間が設定され"
1417 "る。タイマーがオフの場合は ゼロが設定される。同様に I<it_interval> には初期値"
1418 "が設定される。"
1419
1420 #. type: Plain text
1421 #: build/C/man2/getitimer.2:94
1422 msgid ""
1423 "The function B<setitimer>()  sets the specified timer to the value in "
1424 "I<new_value>.  If I<old_value> is non-NULL, the old value of the timer is "
1425 "stored there."
1426 msgstr ""
1427 "B<setitimer>()  関数は指定されたタイマーに I<new_value> の値を設定する。 "
1428 "I<old_value> が NULL 以外の場合、タイマーの古い値が I<old_value> に格納され"
1429 "る。"
1430
1431 #. type: Plain text
1432 #: build/C/man2/getitimer.2:104
1433 msgid ""
1434 "Timers decrement from I<it_value> to zero, generate a signal, and reset to "
1435 "I<it_interval>.  A timer which is set to zero (I<it_value> is zero or the "
1436 "timer expires and I<it_interval> is zero) stops."
1437 msgstr ""
1438 "タイマーは I<it_value> からゼロへ向けて減っていき、シグナルを生成し、 "
1439 "I<it_interval> に初期化される。 タイマーがゼロに設定された場合 (I<it_value> "
1440 "がゼロか、タイマーが満了した時に I<it_interval> がゼロの場合) は停止する。"
1441
1442 #. type: Plain text
1443 #: build/C/man2/getitimer.2:110
1444 msgid ""
1445 "Both I<tv_sec> and I<tv_usec> are significant in determining the duration of "
1446 "a timer."
1447 msgstr "タイマーの期間は I<tv_sec> と I<tv_usec> の両方により決定される。"
1448
1449 #. type: Plain text
1450 #: build/C/man2/getitimer.2:122
1451 msgid ""
1452 "Timers will never expire before the requested time, but may expire some "
1453 "(short) time afterward, which depends on the system timer resolution and on "
1454 "the system load; see B<time>(7).  (But see BUGS below.)  Upon expiration, a "
1455 "signal will be generated and the timer reset.  If the timer expires while "
1456 "the process is active (always true for B<ITIMER_VIRTUAL>), the signal will "
1457 "be delivered immediately when generated.  Otherwise the delivery will be "
1458 "offset by a small time dependent on the system loading."
1459 msgstr ""
1460 "要求した時間がくる前にタイマーが満了することはないが、 逆にある (短い) 時間だ"
1461 "け満了が遅れることはある。 どれだけ遅れるかはシステムの時間分解能とシステムの"
1462 "負荷に依存する (B<time>(7)  参照; 但し、バグの項も参照のこと)。 タイマーが満"
1463 "了するとシグナルが生成され、タイマーは初期化される。 プロセスがアクティブな"
1464 "時 (B<ITIMER_VIRTUAL> の場合には常にそうである) にタイマーが満了した場合、生"
1465 "成されたシグナルは すぐに配送される。それ以外の場合は、システムの負荷により少"
1466 "しの時間だけ 遅れて配送される。"
1467
1468 #. type: Plain text
1469 #: build/C/man2/getitimer.2:127 build/C/man2/killpg.2:94
1470 #: build/C/man2/tkill.2:99
1471 msgid ""
1472 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1473 "appropriately."
1474 msgstr ""
1475 "成功した場合、0 が返される。エラーが発生した場合、-1 が返され、 I<errno> が適"
1476 "切に設定される。"
1477
1478 #. type: TP
1479 #: build/C/man2/getitimer.2:128 build/C/man2/prctl.2:801
1480 #: build/C/man2/sigaction.2:666 build/C/man2/sigaltstack.2:138
1481 #: build/C/man2/sigpending.2:60 build/C/man2/sigprocmask.2:100
1482 #: build/C/man2/sigsuspend.2:77 build/C/man2/timer_settime.2:184
1483 #: build/C/man2/timerfd_create.2:342
1484 #, no-wrap
1485 msgid "B<EFAULT>"
1486 msgstr "B<EFAULT>"
1487
1488 #. type: Plain text
1489 #: build/C/man2/getitimer.2:135 build/C/man2/timerfd_create.2:349
1490 msgid "I<new_value>, I<old_value>, or I<curr_value> is not valid a pointer."
1491 msgstr "I<new_value>, I<old_value>, I<curr_value> が有効なポインタではない。"
1492
1493 #. type: Plain text
1494 #: build/C/man2/getitimer.2:148
1495 msgid ""
1496 "I<which> is not one of B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>; "
1497 "or (since Linux 2.6.22) one of the I<tv_usec> fields in the structure "
1498 "pointed to by I<new_value> contains a value outside the range 0 to 999999."
1499 msgstr ""
1500 "I<which> が B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれでもな"
1501 "い。 または (Linux 2.6.22 以降で)  I<new_value> で指定された構造体の "
1502 "I<tv_usec> フィールドの一つが 0 以上 999999 以下の範囲に入らない値である。"
1503
1504 #. type: Plain text
1505 #: build/C/man2/getitimer.2:158
1506 msgid ""
1507 "POSIX.1-2001, SVr4, 4.4BSD (this call first appeared in 4.2BSD).  "
1508 "POSIX.1-2008 marks B<getitimer>()  and B<setitimer>()  obsolete, "
1509 "recommending the use of the POSIX timers API (B<timer_gettime>(2), "
1510 "B<timer_settime>(2), etc.) instead."
1511 msgstr ""
1512 "POSIX.1-2001, SVr4, 4.4BSD (このコールは 4.2BSD で始めて現われた).  "
1513 "POSIX.1-2008 では、 B<getitimer>()  と B<setitimer>()  は廃止予定とされてお"
1514 "り、 代わりに POSIX タイマー API (B<timer_gettime>(2), B<timer_settime>(2)  "
1515 "など) を使うことが推奨されている。"
1516
1517 #. type: Plain text
1518 #: build/C/man2/getitimer.2:164
1519 msgid ""
1520 "A child created via B<fork>(2)  does not inherit its parent's interval "
1521 "timers.  Interval timers are preserved across an B<execve>(2)."
1522 msgstr ""
1523 "B<fork>(2)  で作成された子プロセスは、 親プロセスのインターバル・タイマーを継"
1524 "承しない。 B<execve>(2)  の前後ではインターバル・タイマーは保存される。"
1525
1526 #. type: Plain text
1527 #: build/C/man2/getitimer.2:174
1528 msgid ""
1529 "POSIX.1 leaves the interaction between B<setitimer>()  and the three "
1530 "interfaces B<alarm>(2), B<sleep>(3), and B<usleep>(3)  unspecified."
1531 msgstr ""
1532 "POSIX.1 では、 B<setitimer>()  と、 B<alarm>(2), B<sleep>(3), B<usleep>(3)  "
1533 "という 3 つのインタフェースとの相互の影響については規定していない。"
1534
1535 #. type: Plain text
1536 #: build/C/man2/getitimer.2:176
1537 msgid "The standards are silent on the meaning of the call:"
1538 msgstr "標準では、次の呼び出しの意味については規定されていない。"
1539
1540 #. type: Plain text
1541 #: build/C/man2/getitimer.2:178
1542 #, no-wrap
1543 msgid "    setitimer(which, NULL, &old_value);\n"
1544 msgstr "    setitimer(which, NULL, &old_value);\n"
1545
1546 #. type: Plain text
1547 #: build/C/man2/getitimer.2:181
1548 msgid ""
1549 "Many systems (Solaris, the BSDs, and perhaps others)  treat this as "
1550 "equivalent to:"
1551 msgstr ""
1552 "(Solaris, BSD 系やおそらく他のシステムもそうだが) 多くのシステムでは、\n"
1553 "この呼び出しは以下と等価である。"
1554
1555 #. type: Plain text
1556 #: build/C/man2/getitimer.2:183
1557 #, no-wrap
1558 msgid "    getitimer(which, &old_value);\n"
1559 msgstr "    getitimer(which, &old_value);\n"
1560
1561 #. type: Plain text
1562 #: build/C/man2/getitimer.2:189
1563 msgid ""
1564 "In Linux, this is treated as being equivalent to a call in which the "
1565 "I<new_value> fields are zero; that is, the timer is disabled.  I<Don't use "
1566 "this Linux misfeature>: it is nonportable and unnecessary."
1567 msgstr ""
1568 "Linux では、この呼び出しは I<new_value> フィールドが 0 の呼び出しと等価なもの"
1569 "と扱われる。 つまり、タイマーが無効になる。 I<Linux のこの間違った機能を使用"
1570 "しないこと>。移植性もなく、不必要な機能である。"
1571
1572 #. type: SH
1573 #: build/C/man2/getitimer.2:189 build/C/man2/kill.2:161
1574 #: build/C/man3/profil.3:72 build/C/man3/psignal.3:101
1575 #: build/C/man2/sigaction.2:781 build/C/man2/signalfd.2:352
1576 #: build/C/man2/sigpending.2:85 build/C/man3/sigset.3:232
1577 #: build/C/man2/timer_getoverrun.2:115 build/C/man2/timerfd_create.2:373
1578 #: build/C/man2/wait.2:535
1579 #, no-wrap
1580 msgid "BUGS"
1581 msgstr "バグ"
1582
1583 #. type: Plain text
1584 #: build/C/man2/getitimer.2:198
1585 msgid ""
1586 "The generation and delivery of a signal are distinct, and only one instance "
1587 "of each of the signals listed above may be pending for a process.  Under "
1588 "very heavy loading, an B<ITIMER_REAL> timer may expire before the signal "
1589 "from a previous expiration has been delivered.  The second signal in such an "
1590 "event will be lost."
1591 msgstr ""
1592 "シグナルの生成と配送は別個のものであり、 前述のシグナルのそれぞれについて一つ"
1593 "だけがプロセスのために 待機する。 非常に重い負荷の下では、 B<ITIMER_REAL> タ"
1594 "イマーでは、時間切れにより生成された一つ前のシグナルが配送される前に、 次の時"
1595 "間切れが起こる場合がある。 そのような場合、 2 個めのイベントに対するシグナル"
1596 "は失われてしまう。"
1597
1598 #. type: Plain text
1599 #: build/C/man2/getitimer.2:213
1600 msgid ""
1601 "On Linux kernels before 2.6.16, timer values are represented in jiffies.  If "
1602 "a request is made set a timer with a value whose jiffies representation "
1603 "exceeds B<MAX_SEC_IN_JIFFIES> (defined in I<include/linux/jiffies.h>), then "
1604 "the timer is silently truncated to this ceiling value.  On Linux/i386 "
1605 "(where, since Linux 2.6.13, the default jiffy is 0.004 seconds), this means "
1606 "that the ceiling value for a timer is approximately 99.42 days.  Since Linux "
1607 "2.6.16, the kernel uses a different internal representation for times, and "
1608 "this ceiling is removed."
1609 msgstr ""
1610 "バージョン 2.6.16 より前の Linux カーネルでは、 タイマーの値は jiffy で表現さ"
1611 "れる。 要求が jiffy 表現で (I<include/linux/jiffies.h> で定義されている)  "
1612 "B<MAX_SEC_IN_JIFFIES> を越える値をタイマーに設定しようとするものの場合、 タイ"
1613 "マーは暗黙にこの上限値に切り詰められる。 Linux/i386 の場合 (Linux 2.6.13 以降"
1614 "では jiffy は 0.004 秒) の場合、 これはタイマーの上限値がおよそ 99.42 日にな"
1615 "ることを意味する。 Linux 2.6.16 以降では、カーネルは時間に関する内部表現とし"
1616 "て 異なる表現を使うようになっており、この上限はなくなった。"
1617
1618 #.  4 Jul 2005: It looks like this bug may remain in 2.4.x.
1619 #.      http://lkml.org/lkml/2005/7/1/165
1620 #. type: Plain text
1621 #: build/C/man2/getitimer.2:220
1622 msgid ""
1623 "On certain systems (including i386), Linux kernels before version 2.6.12 "
1624 "have a bug which will produce premature timer expirations of up to one jiffy "
1625 "under some circumstances.  This bug is fixed in kernel 2.6.12."
1626 msgstr ""
1627 "(i386 を含む) いくつかのシステムでは、 バージョン 2.6.12 以前の Linux カーネ"
1628 "ルは ある種の状況では 1 jiffy 早くタイマーが終了してしまうというバグがあっ"
1629 "た。 このバグはカーネル 2.6.12 で修正された。"
1630
1631 #.  Bugzilla report 25 Apr 2006:
1632 #.  http://bugzilla.kernel.org/show_bug.cgi?id=6443
1633 #.  "setitimer() should reject noncanonical arguments"
1634 #. type: Plain text
1635 #: build/C/man2/getitimer.2:239
1636 msgid ""
1637 "POSIX.1-2001 says that B<setitimer>()  should fail if a I<tv_usec> value is "
1638 "specified that is outside of the range 0 to 999999.  However, in kernels up "
1639 "to and including 2.6.21, Linux does not give an error, but instead silently "
1640 "adjusts the corresponding seconds value for the timer.  From kernel 2.6.22 "
1641 "onward, this nonconformance has been repaired: an improper I<tv_usec> value "
1642 "results in an B<EINVAL> error."
1643 msgstr ""
1644 "POSIX.1-2001 では B<setitimer>()  は I<tv_usec> の値が 0 から 999999 の範囲外"
1645 "である場合には失敗するべきだとしている。 しかし、2.6.21 以前のカーネルの "
1646 "Linux ではエラーにならず、 対応する秒数の分だけそのタイマーの秒の値が暗黙に調"
1647 "整される。 カーネル 2.6.22 以降では、この標準非準拠の動作は修正され、 "
1648 "I<tv_usec> の値が不適切な場合には B<EINVAL> エラーとなる。"
1649
1650 #. type: Plain text
1651 #: build/C/man2/getitimer.2:246
1652 msgid ""
1653 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1654 "B<timerfd_create>(2), B<time>(7)"
1655 msgstr ""
1656 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1657 "B<timerfd_create>(2), B<time>(7)"
1658
1659 #. type: TH
1660 #: build/C/man3/gsignal.3:27
1661 #, no-wrap
1662 msgid "GSIGNAL"
1663 msgstr "GSIGNAL"
1664
1665 #. type: TH
1666 #: build/C/man3/gsignal.3:27 build/C/man3/profil.3:28
1667 #, no-wrap
1668 msgid "2007-07-26"
1669 msgstr "2007-07-26"
1670
1671 #. type: Plain text
1672 #: build/C/man3/gsignal.3:30
1673 msgid "gsignal, ssignal - software signal facility"
1674 msgstr "gsignal, ssignal - ソフトウェア・シグナル機能"
1675
1676 #. type: Plain text
1677 #: build/C/man3/gsignal.3:33 build/C/man2/kill.2:52 build/C/man3/psignal.3:36
1678 #: build/C/man3/raise.3:35 build/C/man2/sigaction.2:53
1679 #: build/C/man3/siginterrupt.3:37 build/C/man3/sigpause.3:31
1680 #: build/C/man3/sigwait.3:32 build/C/man2/sigwaitinfo.2:31
1681 #, no-wrap
1682 msgid "B<#include E<lt>signal.hE<gt>>\n"
1683 msgstr "B<#include E<lt>signal.hE<gt>>\n"
1684
1685 #. type: Plain text
1686 #: build/C/man3/gsignal.3:35
1687 #, no-wrap
1688 msgid "B<typedef void (*sighandler_t)(int);>\n"
1689 msgstr "B<typedef void (*sighandler_t)(int);>\n"
1690
1691 #. type: Plain text
1692 #: build/C/man3/gsignal.3:37
1693 #, no-wrap
1694 msgid "B<int gsignal(int >I<signum>B<);>\n"
1695 msgstr "B<int gsignal(int >I<signum>B<);>\n"
1696
1697 #. type: Plain text
1698 #: build/C/man3/gsignal.3:39
1699 #, no-wrap
1700 msgid "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1701 msgstr "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1702
1703 #. type: Plain text
1704 #: build/C/man3/gsignal.3:44 build/C/man2/kill.2:59 build/C/man2/killpg.2:53
1705 #: build/C/man3/profil.3:42 build/C/man3/psignal.3:46
1706 #: build/C/man2/sigaction.2:61 build/C/man2/sigaltstack.2:38
1707 #: build/C/man3/siginterrupt.3:44 build/C/man2/sigpending.2:40
1708 #: build/C/man2/sigprocmask.2:41 build/C/man3/sigqueue.3:39
1709 #: build/C/man3/sigset.3:45 build/C/man3/sigsetops.3:51
1710 #: build/C/man2/sigsuspend.2:40 build/C/man3/sigvec.3:45
1711 #: build/C/man3/sigwait.3:39 build/C/man2/sigwaitinfo.2:41
1712 #: build/C/man2/timer_create.2:48 build/C/man2/timer_delete.2:41
1713 #: build/C/man2/timer_getoverrun.2:41 build/C/man2/timer_settime.2:45
1714 #: build/C/man2/wait.2:69 build/C/man2/wait4.2:53
1715 msgid ""
1716 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
1717 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7)  参照):"
1718
1719 #. type: Plain text
1720 #: build/C/man3/gsignal.3:49
1721 msgid "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1722 msgstr "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1723
1724 #. type: Plain text
1725 #: build/C/man3/gsignal.3:57
1726 msgid ""
1727 "Don't use these functions under Linux.  Due to a historical mistake, under "
1728 "Linux these functions are aliases for B<raise>(3)  and B<signal>(2), "
1729 "respectively."
1730 msgstr ""
1731 "Linux ではこれらの関数を使用しないこと。 過去に間違いがあり、Linux では "
1732 "B<gsignal>()  と B<ssignal>()  はそれぞれ B<raise>(3)  と B<signal>(2)  の別"
1733 "名になっている。"
1734
1735 #. type: Plain text
1736 #: build/C/man3/gsignal.3:95
1737 msgid ""
1738 "Elsewhere, on System V-like systems, these functions implement software "
1739 "signaling, entirely independent of the classical B<signal>(2)  and B<kill>"
1740 "(2)  functions.  The function B<ssignal>()  defines the action to take when "
1741 "the software signal with number I<signum> is raised using the function "
1742 "B<gsignal>(), and returns the previous such action or B<SIG_DFL>.  The "
1743 "function B<gsignal>()  does the following: if no action (or the action "
1744 "B<SIG_DFL>)  was specified for I<signum>, then it does nothing and returns "
1745 "0.  If the action B<SIG_IGN> was specified for I<signum>, then it does "
1746 "nothing and returns 1.  Otherwise, it resets the action to B<SIG_DFL> and "
1747 "calls the action function with argument I<signum>, and returns the value "
1748 "returned by that function.  The range of possible values I<signum> varies "
1749 "(often 1-15 or 1-17)."
1750 msgstr ""
1751 "一方、System V 風のシステムでは、これらの関数で、 従来の B<signal>(2)  や "
1752 "B<kill>(2)  の関数群とは完全に独立な、 ソフトウェア・シグナリングを実現してい"
1753 "る。 B<ssignal>()  関数は、番号 I<signum> のソフトウェア・シグナルが "
1754 "B<gsignal>()  関数を使って発生された時にとるべきアクションを定義する。 "
1755 "B<gsignal>()  の返り値は、一つ前に指定されていたアクション、もしくは "
1756 "B<SIG_DFL> である。 B<gsignal>()  は以下のような動作を行う: I<signum> に対し"
1757 "てアクションが指定されていないか、アクション B<SIG_DFL> が指定されていた場"
1758 "合、何もせずに 0 を返す。 I<signum> に対して アクション B<SIG_IGN> が指定され"
1759 "ていた場合、何もせずに 1 を返す。 それ以外の場合、アクションを B<SIG_DFL> に"
1760 "リセットし、引き数に I<signum> を指定してアクション関数を呼び出して、アクショ"
1761 "ン関数の返り値を返す。 I<signum> がとり得る値の範囲は実装により異なる (多くの"
1762 "場合 1〜15 か 1〜17 である)。"
1763
1764 #. type: Plain text
1765 #: build/C/man3/gsignal.3:103
1766 msgid ""
1767 "These functions are available under AIX, DG/UX, HP-UX, SCO, Solaris, Tru64.  "
1768 "They are called obsolete under most of these systems, and are broken under "
1769 "Linux libc and glibc.  Some systems also have B<gsignal_r>()  and "
1770 "B<ssignal_r>()."
1771 msgstr ""
1772 "これらの関数は、AIX, DG/UX, HP-UX, SCO, Solaris, Tru64 で使用可能である。 こ"
1773 "れらのシステムのほとんどで廃止されたことになっており、 Linux の libc および "
1774 "glibc では正しく実装されていない。 B<gsignal_r>()  と B<ssignal_r>()  が実装"
1775 "されているシステムもある。"
1776
1777 #. type: Plain text
1778 #: build/C/man3/gsignal.3:107
1779 msgid "B<kill>(2), B<signal>(2), B<raise>(3)"
1780 msgstr "B<kill>(2), B<signal>(2), B<raise>(3)"
1781
1782 #. type: TH
1783 #: build/C/man2/kill.2:44
1784 #, no-wrap
1785 msgid "KILL"
1786 msgstr "KILL"
1787
1788 #. type: TH
1789 #: build/C/man2/kill.2:44
1790 #, no-wrap
1791 msgid "2013-09-17"
1792 msgstr "2013-09-17"
1793
1794 #. type: Plain text
1795 #: build/C/man2/kill.2:47
1796 msgid "kill - send signal to a process"
1797 msgstr "kill - プロセスにシグナルを送る"
1798
1799 #. type: Plain text
1800 #: build/C/man2/kill.2:50
1801 #, no-wrap
1802 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
1803 msgstr "B<#include E<lt>sys/types.hE<gt>>\n"
1804
1805 #. type: Plain text
1806 #: build/C/man2/kill.2:54
1807 #, no-wrap
1808 msgid "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1809 msgstr "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1810
1811 #. type: Plain text
1812 #: build/C/man2/kill.2:64
1813 msgid ""
1814 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1815 msgstr ""
1816 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1817
1818 #. type: Plain text
1819 #: build/C/man2/kill.2:70
1820 msgid ""
1821 "The B<kill>()  system call can be used to send any signal to any process "
1822 "group or process."
1823 msgstr ""
1824 "システムコールの B<kill>()  は、任意のプロセス・グループもしくはプロセスにシ"
1825 "グナルを 送るのに使われる。"
1826
1827 #. type: Plain text
1828 #: build/C/man2/kill.2:73
1829 msgid ""
1830 "If I<pid> is positive, then signal I<sig> is sent to the process with the ID "
1831 "specified by I<pid>."
1832 msgstr ""
1833 "I<pid> に正の値を指定した場合、シグナル I<sig> が I<pid> で指定された ID を持"
1834 "つプロセスに送られる。"
1835
1836 #. type: Plain text
1837 #: build/C/man2/kill.2:76
1838 msgid ""
1839 "If I<pid> equals 0, then I<sig> is sent to every process in the process "
1840 "group of the calling process."
1841 msgstr ""
1842 "I<pid> に 0 を指定した場合、 呼び出し元のプロセスのプロセス・グループに属する"
1843 "すべてのプロセスに I<sig> で指定したシグナルが送られる。"
1844
1845 #. type: Plain text
1846 #: build/C/man2/kill.2:80
1847 msgid ""
1848 "If I<pid> equals -1, then I<sig> is sent to every process for which the "
1849 "calling process has permission to send signals, except for process 1 "
1850 "(I<init>), but see below."
1851 msgstr ""
1852 "I<pid> に -1 を指定した場合、 I<sig> で指定したシグナルが、 呼び出し元のプロ"
1853 "セスがシグナルを送る許可を持つ全てのプロセスに 送られる。但し、プロセス番号 "
1854 "1 (I<init>) へはシグナルは送られない。 以下の関連部分も参照のこと。"
1855
1856 #. type: Plain text
1857 #: build/C/man2/kill.2:83
1858 msgid ""
1859 "If I<pid> is less than -1, then I<sig> is sent to every process in the "
1860 "process group whose ID is I<-pid>."
1861 msgstr ""
1862 "I<pid> に -1 より小さな値を指定した場合、 ID が I<-pid> のプロセス・グループ"
1863 "に属するすべてのプロセスに I<sig> で指定したシグナルが送られる。"
1864
1865 #. type: Plain text
1866 #: build/C/man2/kill.2:88
1867 msgid ""
1868 "If I<sig> is 0, then no signal is sent, but error checking is still "
1869 "performed; this can be used to check for the existence of a process ID or "
1870 "process group ID."
1871 msgstr ""
1872 "I<sig> に 0 を指定した場合、シグナルは送られないが、 エラーのチェックは行われ"
1873 "る。これを使って、プロセス ID や プロセスグループ ID の存在確認を行うことがで"
1874 "きる。"
1875
1876 #. type: Plain text
1877 #: build/C/man2/kill.2:100
1878 msgid ""
1879 "For a process to have permission to send a signal it must either be "
1880 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
1881 "effective user ID of the sending process must equal the real or saved set-"
1882 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
1883 "the sending and receiving processes belong to the same session.  "
1884 "(Historically, the rules were different; see NOTES.)"
1885 msgstr ""
1886 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
1887 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
1888 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
1889 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
1890 "プロセスが 同じセッションに属していれば十分である。 (過去には、 ルールは違っ"
1891 "ていた; 「注意」の節を参照。)"
1892
1893 #. type: Plain text
1894 #: build/C/man2/kill.2:105
1895 msgid ""
1896 "On success (at least one signal was sent), zero is returned.  On error, -1 "
1897 "is returned, and I<errno> is set appropriately."
1898 msgstr ""
1899 "成功した場合 (少なくとも一つのシグナルが送信された場合)、 0 が返される。エ"
1900 "ラーの場合 -1 が返され、 I<errno> が適切に設定される。"
1901
1902 #. type: Plain text
1903 #: build/C/man2/kill.2:109
1904 msgid "An invalid signal was specified."
1905 msgstr "無効なシグナルを指定した。"
1906
1907 #. type: TP
1908 #: build/C/man2/kill.2:109 build/C/man2/killpg.2:99 build/C/man2/prctl.2:886
1909 #: build/C/man2/prctl.2:898 build/C/man2/prctl.2:908 build/C/man2/prctl.2:916
1910 #: build/C/man2/rt_sigqueueinfo.2:148 build/C/man2/sigaltstack.2:151
1911 #: build/C/man3/sigqueue.3:102 build/C/man2/tkill.2:103
1912 #, no-wrap
1913 msgid "B<EPERM>"
1914 msgstr "B<EPERM>"
1915
1916 #. type: Plain text
1917 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103
1918 msgid ""
1919 "The process does not have permission to send the signal to any of the target "
1920 "processes."
1921 msgstr ""
1922 "プロセスが、受信するプロセスのいずれに対しても シグナルを送る許可を持っていな"
1923 "い。"
1924
1925 #. type: TP
1926 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103 build/C/man2/killpg.2:107
1927 #: build/C/man2/rt_sigqueueinfo.2:156 build/C/man3/sigqueue.3:108
1928 #: build/C/man2/tkill.2:108
1929 #, no-wrap
1930 msgid "B<ESRCH>"
1931 msgstr "B<ESRCH>"
1932
1933 #. type: Plain text
1934 #: build/C/man2/kill.2:121
1935 msgid ""
1936 "The pid or process group does not exist.  Note that an existing process "
1937 "might be a zombie, a process which already committed termination, but has "
1938 "not yet been B<wait>(2)ed for."
1939 msgstr ""
1940 "指定したプロセスまたはプロセス・グループが存在しなかった。 ゾンビプロセスは存"
1941 "在するプロセスとしてみなされる。 ゾンビプロセスとはすでに処理は終了している"
1942 "が、親プロセスによる B<wait>()  処理が行われていないプロセスのことである。"
1943
1944 #. type: Plain text
1945 #: build/C/man2/kill.2:123 build/C/man2/pause.2:59 build/C/man2/wait.2:424
1946 msgid "SVr4, 4.3BSD, POSIX.1-2001."
1947 msgstr "SVr4, 4.3BSD, POSIX.1-2001."
1948
1949 #. type: Plain text
1950 #: build/C/man2/kill.2:131
1951 msgid ""
1952 "The only signals that can be sent to process ID 1, the I<init> process, are "
1953 "those for which I<init> has explicitly installed signal handlers.  This is "
1954 "done to assure the system is not brought down accidentally."
1955 msgstr ""
1956 "プロセス番号 1 の I<init> プロセスに送ることができるシグナルは、 I<init> が明"
1957 "示的にシグナルハンドラを設定したシグナルだけである。 こうなっているのは、誤っ"
1958 "てシステムをダウンさせないようにするためである。"
1959
1960 #. type: Plain text
1961 #: build/C/man2/kill.2:137
1962 msgid ""
1963 "POSIX.1-2001 requires that I<kill(-1,sig)> send I<sig> to all processes that "
1964 "the calling process may send signals to, except possibly for some "
1965 "implementation-defined system processes.  Linux allows a process to signal "
1966 "itself, but on Linux the call I<kill(-1,sig)> does not signal the calling "
1967 "process."
1968 msgstr ""
1969 "POSIX.1-2001 では、 I<kill(-1,sig)> が 呼び出し元のプロセスがシグナルを送るこ"
1970 "とが出来るプロセス全てに I<sig> を送ることを要求している。 但し、システム実装"
1971 "時に定められたシステムプロセスは シグナルの送信対象から除外される。 Linux で"
1972 "は、プロセスが自分自身にシグナルを送れるようになっているが、 Linux の I<kill"
1973 "(-1,sig)> は呼び出し元のプロセスにはシグナルを送らない。"
1974
1975 #. type: Plain text
1976 #: build/C/man2/kill.2:147
1977 msgid ""
1978 "POSIX.1-2001 requires that if a process sends a signal to itself, and the "
1979 "sending thread does not have the signal blocked, and no other thread has it "
1980 "unblocked or is waiting for it in B<sigwait>(3), at least one unblocked "
1981 "signal must be delivered to the sending thread before the B<kill>()  returns."
1982 msgstr ""
1983 "POSIX.1-2001 では以下の動作になることを要求している。 自分自身にシグナルを送"
1984 "ると、シグナルを送ったスレッドがそのシグナルをブロック しておらず、他のどのス"
1985 "レッドもそのシグナルを受ける状態にもなく B<sigwait>(3)  でそのシグナルを待っ"
1986 "てもいない場合、 B<kill>()  が返る前に少なくとも一つのブロックされていない シ"
1987 "グナルがシグナルを送ったスレッドに配送されなければならない。"
1988
1989 #. type: SS
1990 #: build/C/man2/kill.2:147 build/C/man3/sigpause.3:82 build/C/man2/wait.2:478
1991 #, no-wrap
1992 msgid "Linux notes"
1993 msgstr "Linux での注意"
1994
1995 #.  In the 0.* kernels things chopped and changed quite
1996 #.  a bit - MTK, 24 Jul 02
1997 #. type: Plain text
1998 #: build/C/man2/kill.2:161
1999 msgid ""
2000 "Across different kernel versions, Linux has enforced different rules for the "
2001 "permissions required for an unprivileged process to send a signal to another "
2002 "process.  In kernels 1.0 to 1.2.2, a signal could be sent if the effective "
2003 "user ID of the sender matched effective user ID of the target, or the real "
2004 "user ID of the sender matched the real user ID of the target.  From kernel "
2005 "1.2.3 until 1.3.77, a signal could be sent if the effective user ID of the "
2006 "sender matched either the real or effective user ID of the target.  The "
2007 "current rules, which conform to POSIX.1-2001, were adopted in kernel 1.3.78."
2008 msgstr ""
2009 "Linux では、特権のないプロセスが他のプロセスにシグナルを送信するために必要な"
2010 "権限についてのルールが、カーネルバージョンにより違っている。 カーネル 1.0 か"
2011 "ら 1.2.2 では、送信側の実効ユーザー ID が送信対象の実効ユーザー ID と一致する"
2012 "か、 送信側の実ユーザー ID が送信対象の実ユーザー ID と一致すれば、 シグナル"
2013 "を送信できた。 カーネル 1.2.3 から 1.3.77では、送信側の実効ユーザー ID が送信"
2014 "対象の実ユーザー ID か実効ユーザー ID のいずれかと一致すればシグナルを送信で"
2015 "きた。 現在のルールは、POSIX.1-2001 に準拠しており、カーネル 1.3.78 以降で 適"
2016 "用されている。"
2017
2018 #. type: Plain text
2019 #: build/C/man2/kill.2:171
2020 msgid ""
2021 "In 2.6 kernels up to and including 2.6.7, there was a bug that meant that "
2022 "when sending signals to a process group, B<kill>()  failed with the error "
2023 "B<EPERM> if the caller did not have permission to send the signal to I<any> "
2024 "(rather than I<all>) of the members of the process group.  Notwithstanding "
2025 "this error return, the signal was still delivered to all of the processes "
2026 "for which the caller had permission to signal."
2027 msgstr ""
2028 "バージョン 2.6.7 以前の 2.6 系のカーネルには、 プロセスグループにシグナルを"
2029 "送ったときに、 呼び出し元のプロセスがプロセスグループの (全メンバーではなく) "
2030 "一部のメンバーに対してのみシグナルを送る許可を持っていない場合に、 B<kill>"
2031 "()  がエラー B<EPERM> で失敗するというバグがある。 このエラーが返るにもかかわ"
2032 "らず、そのシグナルは呼び出し元が シグナルを送る許可を持つ全てのプロセスへ送ら"
2033 "れる。"
2034
2035 #. type: Plain text
2036 #: build/C/man2/kill.2:181
2037 msgid ""
2038 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), B<sigqueue>"
2039 "(3), B<capabilities>(7), B<credentials>(7), B<signal>(7)"
2040 msgstr ""
2041 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), B<sigqueue>"
2042 "(3), B<credentials>(7), B<capabilities>(7), B<signal>(7)"
2043
2044 #. type: TH
2045 #: build/C/man2/killpg.2:42
2046 #, no-wrap
2047 msgid "KILLPG"
2048 msgstr "KILLPG"
2049
2050 #. type: TH
2051 #: build/C/man2/killpg.2:42 build/C/man3/sigset.3:26
2052 #, no-wrap
2053 msgid "2010-09-20"
2054 msgstr "2010-09-20"
2055
2056 #. type: Plain text
2057 #: build/C/man2/killpg.2:45
2058 msgid "killpg - send signal to a process group"
2059 msgstr "killpg - シグナルをプロセス・グループに送る"
2060
2061 #. type: Plain text
2062 #: build/C/man2/killpg.2:49
2063 msgid "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2064 msgstr "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2065
2066 #. type: TP
2067 #: build/C/man2/killpg.2:55
2068 #, no-wrap
2069 msgid "B<killpg>():"
2070 msgstr "B<killpg>():"
2071
2072 #. type: Plain text
2073 #: build/C/man2/killpg.2:59 build/C/man2/sigaltstack.2:46
2074 #: build/C/man3/siginterrupt.3:51 build/C/man2/wait4.2:60
2075 msgid ""
2076 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2077 "_XOPEN_SOURCE_EXTENDED"
2078 msgstr ""
2079 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2080 "_XOPEN_SOURCE_EXTENDED"
2081
2082 #. type: Plain text
2083 #: build/C/man2/killpg.2:69
2084 msgid ""
2085 "B<killpg>()  sends the signal I<sig> to the process group I<pgrp>.  See "
2086 "B<signal>(7)  for a list of signals."
2087 msgstr ""
2088 "B<killpg>()  は I<sig> で指定したシグナルを I<pgrp> で指定したプロセス・グ"
2089 "ループに送る。 シグナルの定義の一覧は B<signal>(7)  を参照のこと。"
2090
2091 #. type: Plain text
2092 #: build/C/man2/killpg.2:78
2093 msgid ""
2094 "If I<pgrp> is 0, B<killpg>()  sends the signal to the calling process's "
2095 "process group.  (POSIX says: If I<pgrp> is less than or equal to 1, the "
2096 "behavior is undefined.)"
2097 msgstr ""
2098 "引き数 I<pgrp> に 0 を指定した場合には B<killpg>()  は呼び出し元のプロセスが"
2099 "属しているプロセス・グループに対してシグナルを送る。 (POSIX では以下のように"
2100 "記述されている: I<pgrp> が 1 以下である場合、動作は未定義である。)"
2101
2102 #. type: Plain text
2103 #: build/C/man2/killpg.2:89
2104 msgid ""
2105 "For a process to have permission to send a signal it must either be "
2106 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
2107 "effective user ID of the sending process must equal the real or saved set-"
2108 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
2109 "the sending and receiving processes belong to the same session."
2110 msgstr ""
2111 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
2112 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
2113 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
2114 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
2115 "プロセスが 同じセッションに属していれば十分である。"
2116
2117 #. type: Plain text
2118 #: build/C/man2/killpg.2:99
2119 msgid "I<sig> is not a valid signal number."
2120 msgstr "I<sig> で指定された値は無効なシグナル番号である。"
2121
2122 #. type: Plain text
2123 #: build/C/man2/killpg.2:107
2124 msgid "No process can be found in the process group specified by I<pgrp>."
2125 msgstr ""
2126 "I<pgrp> で指定されたプロセス・グループに属するプロセスが存在しなかった。"
2127
2128 #. type: Plain text
2129 #: build/C/man2/killpg.2:111
2130 msgid ""
2131 "The process group was given as 0 but the sending process does not have a "
2132 "process group."
2133 msgstr ""
2134 "プロセス・グループとして 0 が指定されたが、送信プロセスは プロセス・グループ"
2135 "を持っていない。"
2136
2137 #. type: Plain text
2138 #: build/C/man2/killpg.2:115
2139 msgid ""
2140 "SVr4, 4.4BSD (the B<killpg>()  function call first appeared in 4BSD), "
2141 "POSIX.1-2001."
2142 msgstr "SVr4, 4.4BSD (B<killpg>()  は 4BSD で初めて追加された), POSIX.1-2001。"
2143
2144 #. type: Plain text
2145 #: build/C/man2/killpg.2:129
2146 msgid ""
2147 "There are various differences between the permission checking in BSD-type "
2148 "systems and System V-type systems.  See the POSIX rationale for B<kill>().  "
2149 "A difference not mentioned by POSIX concerns the return value B<EPERM>: BSD "
2150 "documents that no signal is sent and B<EPERM> returned when the permission "
2151 "check failed for at least one target process, while POSIX documents B<EPERM> "
2152 "only when the permission check failed for all target processes."
2153 msgstr ""
2154 "BSD 系システムと System V 系システムでは、 許可のチェックに様々な違いがあ"
2155 "る。 B<kill>(2)  についての POSIX の原理 (rationale) を参照すること。 POSIX "
2156 "で記述されていない違いとしては、返り値 B<EPERM> がある。 BSD では「送信先プロ"
2157 "セスの許可のチェックが 1 つでも失敗した場合は、 シグナルが送信されず、 "
2158 "B<EPERM> が返される」と記述されている。 POSIX では「送信先プロセスの許可の"
2159 "チェックが全て失敗した場合にのみ、 B<EPERM> が返される」と記述されている。"
2160
2161 #. type: Plain text
2162 #: build/C/man2/killpg.2:134
2163 msgid ""
2164 "On Linux, B<killpg>()  is implemented as a library function that makes the "
2165 "call I<kill(-pgrp,\\ sig)>."
2166 msgstr ""
2167 "Linux では、 B<killpg>()  はライブラリ関数として実装されており、 I<kill(-"
2168 "pgrp,\\ sig)> の呼び出しが行われる。"
2169
2170 #. type: Plain text
2171 #: build/C/man2/killpg.2:140
2172 msgid ""
2173 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<capabilities>(7), B<credentials>"
2174 "(7)"
2175 msgstr ""
2176 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<credentials>(7), B<capabilities>"
2177 "(7)"
2178
2179 #. type: TH
2180 #: build/C/man2/pause.2:30
2181 #, no-wrap
2182 msgid "PAUSE"
2183 msgstr "PAUSE"
2184
2185 #. type: TH
2186 #: build/C/man2/pause.2:30
2187 #, no-wrap
2188 msgid "2008-10-06"
2189 msgstr "2008-10-06"
2190
2191 #. type: Plain text
2192 #: build/C/man2/pause.2:33
2193 msgid "pause - wait for signal"
2194 msgstr "pause - シグナルを待つ"
2195
2196 #. type: Plain text
2197 #: build/C/man2/pause.2:35
2198 msgid "B<#include E<lt>unistd.hE<gt>>"
2199 msgstr "B<#include E<lt>unistd.hE<gt>>"
2200
2201 #. type: Plain text
2202 #: build/C/man2/pause.2:37
2203 msgid "B<int pause(void);>"
2204 msgstr "B<int pause(void);>"
2205
2206 #. type: Plain text
2207 #: build/C/man2/pause.2:42
2208 msgid ""
2209 "B<pause>()  causes the calling process (or thread) to sleep until a signal "
2210 "is delivered that either terminates the process or causes the invocation of "
2211 "a signal-catching function."
2212 msgstr ""
2213 "B<pause>()  は、呼び出したプロセス (またはスレッド) を、 そのプロセスを終了さ"
2214 "せたり、シグナル捕捉関数が起動されるような シグナルが配送されるまで、スリープ"
2215 "させる。"
2216
2217 #.  .BR ERESTARTNOHAND .
2218 #. type: Plain text
2219 #: build/C/man2/pause.2:53
2220 msgid ""
2221 "B<pause>()  returns only when a signal was caught and the signal-catching "
2222 "function returned.  In this case, B<pause>()  returns -1, and I<errno> is "
2223 "set to B<EINTR>."
2224 msgstr ""
2225 "B<pause>()  が返るのは、シグナルを受け取りシグナル捕獲関数から返った場合だけ"
2226 "である。 この場合は B<pause>()  は -1 を返し、 I<errno> に B<EINTR> が設定さ"
2227 "れる。"
2228
2229 #. type: TP
2230 #: build/C/man2/pause.2:54 build/C/man2/sigsuspend.2:81
2231 #: build/C/man2/sigwaitinfo.2:123 build/C/man2/wait.2:410
2232 #, no-wrap
2233 msgid "B<EINTR>"
2234 msgstr "B<EINTR>"
2235
2236 #. type: Plain text
2237 #: build/C/man2/pause.2:57
2238 msgid "a signal was caught and the signal-catching function returned."
2239 msgstr "シグナルを受け取り、シグナル捕獲関数から帰ってきた。"
2240
2241 #. type: Plain text
2242 #: build/C/man2/pause.2:64
2243 msgid "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2244 msgstr "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2245
2246 #. type: TH
2247 #: build/C/man2/prctl.2:52
2248 #, no-wrap
2249 msgid "PRCTL"
2250 msgstr "PRCTL"
2251
2252 #. type: TH
2253 #: build/C/man2/prctl.2:52
2254 #, no-wrap
2255 msgid "2014-02-22"
2256 msgstr "2014-02-22"
2257
2258 #. type: Plain text
2259 #: build/C/man2/prctl.2:55
2260 msgid "prctl - operations on a process"
2261 msgstr "prctl - プロセスの操作を行なう"
2262
2263 #. type: Plain text
2264 #: build/C/man2/prctl.2:58
2265 #, no-wrap
2266 msgid "B<#include E<lt>sys/prctl.hE<gt>>\n"
2267 msgstr "B<#include E<lt>sys/prctl.hE<gt>>\n"
2268
2269 #. type: Plain text
2270 #: build/C/man2/prctl.2:61
2271 #, no-wrap
2272 msgid ""
2273 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2274 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2275 msgstr ""
2276 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2277 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2278
2279 #. type: Plain text
2280 #: build/C/man2/prctl.2:68
2281 msgid ""
2282 "B<prctl>()  is called with a first argument describing what to do (with "
2283 "values defined in I<E<lt>linux/prctl.hE<gt>>), and further arguments with a "
2284 "significance depending on the first one.  The first argument can be:"
2285 msgstr ""
2286 "B<prctl>()  の動作は最初の引き数によって決定される (この値は I<E<lt>linux/"
2287 "prctl.hE<gt>> に定義されている)。 残りの引き数は最初の引き数によって変化す"
2288 "る。 一番目の引き数として以下のものを指定できる:"
2289
2290 #. type: TP
2291 #: build/C/man2/prctl.2:68
2292 #, no-wrap
2293 msgid "B<PR_CAPBSET_READ> (since Linux 2.6.25)"
2294 msgstr "B<PR_CAPBSET_READ> (Linux 2.6.25 以降)"
2295
2296 #. type: Plain text
2297 #: build/C/man2/prctl.2:80
2298 msgid ""
2299 "Return (as the function result) 1 if the capability specified in I<arg2> is "
2300 "in the calling thread's capability bounding set, or 0 if it is not.  (The "
2301 "capability constants are defined in I<E<lt>linux/capability.hE<gt>>.)  The "
2302 "capability bounding set dictates whether the process can receive the "
2303 "capability through a file's permitted capability set on a subsequent call to "
2304 "B<execve>(2)."
2305 msgstr ""
2306 "で指定されたケーパビリティが呼び出したスレッドのケーパビリティ バインディング"
2307 "セット (capability bounding set) に含まれている場合、 (関数の結果として) 1 を"
2308 "返し、そうでない場合 0 を返す (ケーパビリティ定数は I<E<lt>linux/capability."
2309 "hE<gt>> で定義されている)。 ケーパビリティバウンディングセットは、 B<execve>"
2310 "(2)  を呼び出した際に、ファイルの許可 (permitted) ケーパビリティの中で そのプ"
2311 "ロセスが獲得できるケーパビリティを指示するものである。"
2312
2313 #. type: Plain text
2314 #: build/C/man2/prctl.2:85
2315 msgid ""
2316 "If the capability specified in I<arg2> is not valid, then the call fails "
2317 "with the error B<EINVAL>."
2318 msgstr ""
2319 "I<arg2> に指定されたケーパビリティが有効でない場合、 呼び出しはエラー "
2320 "B<EINVAL> で失敗する。"
2321
2322 #. type: TP
2323 #: build/C/man2/prctl.2:85
2324 #, no-wrap
2325 msgid "B<PR_CAPBSET_DROP> (since Linux 2.6.25)"
2326 msgstr "B<PR_CAPBSET_DROP> (Linux 2.6.25 以降)"
2327
2328 #. type: Plain text
2329 #: build/C/man2/prctl.2:94
2330 msgid ""
2331 "If the calling thread has the B<CAP_SETPCAP> capability, then drop the "
2332 "capability specified by I<arg2> from the calling thread's capability "
2333 "bounding set.  Any children of the calling thread will inherit the newly "
2334 "reduced bounding set."
2335 msgstr ""
2336 "呼び出したスレッドがケーパビリティ B<CAP_SETPCAP> を持っている場合、 呼び出し"
2337 "たスレッドのケーパビリティバウンディングセットから I<arg2> で指定されたケーパ"
2338 "ビリティを外す。 呼び出したスレッドの子プロセスは変更後のバウンディングセット"
2339 "を 継承する。"
2340
2341 #. type: Plain text
2342 #: build/C/man2/prctl.2:106
2343 msgid ""
2344 "The call fails with the error: B<EPERM> if the calling thread does not have "
2345 "the B<CAP_SETPCAP>; B<EINVAL> if I<arg2> does not represent a valid "
2346 "capability; or B<EINVAL> if file capabilities are not enabled in the kernel, "
2347 "in which case bounding sets are not supported."
2348 msgstr ""
2349 "呼び出したスレッドが B<CAP_SETPCAP> を持っていない場合、呼び出しはエラー "
2350 "B<EPERM> で失敗する。 I<arg2> に指定されたケーパビリティが有効でない場合、 "
2351 "B<EINVAL> で失敗する。 ファイルケーパビリティがカーネルで有効になっていない場"
2352 "合 (この場合にはバウンディングセットがサポートされない)、 B<EINVAL> で失敗す"
2353 "る。"
2354
2355 #. type: TP
2356 #: build/C/man2/prctl.2:106
2357 #, no-wrap
2358 msgid "B<PR_SET_CHILD_SUBREAPER> (since Linux 3.4)"
2359 msgstr "B<PR_SET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2360
2361 #.  commit ebec18a6d3aa1e7d84aab16225e87fd25170ec2b
2362 #. type: Plain text
2363 #: build/C/man2/prctl.2:131
2364 msgid ""
2365 "If I<arg2> is nonzero, set the \"child subreaper\" attribute of the calling "
2366 "process; if I<arg2> is zero, unset the attribute.  When a process is marked "
2367 "as a child subreaper, all of the children that it creates, and their "
2368 "descendants, will be marked as having a subreaper.  In effect, a subreaper "
2369 "fulfills the role of B<init>(1)  for its descendant processes.  Upon "
2370 "termination of a process that is orphaned (i.e., its immediate parent has "
2371 "already terminated)  and marked as having a subreaper, the nearest still "
2372 "living ancestor subreaper will receive a B<SIGCHLD> signal and be able to "
2373 "B<wait>(2)  on the process to discover its termination status."
2374 msgstr ""
2375
2376 #. type: TP
2377 #: build/C/man2/prctl.2:131
2378 #, no-wrap
2379 msgid "B<PR_GET_CHILD_SUBREAPER> (since Linux 3.4)"
2380 msgstr "B<PR_GET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2381
2382 #. type: Plain text
2383 #: build/C/man2/prctl.2:136
2384 msgid ""
2385 "Return the \"child subreaper\" setting of the caller, in the location "
2386 "pointed to by I<(int\\ *) arg2>."
2387 msgstr ""
2388
2389 #. type: TP
2390 #: build/C/man2/prctl.2:136
2391 #, no-wrap
2392 msgid "B<PR_SET_DUMPABLE> (since Linux 2.3.20)"
2393 msgstr "B<PR_SET_DUMPABLE> (Linux 2.3.20 以降)"
2394
2395 #.  See http://marc.theaimsgroup.com/?l=linux-kernel&m=115270289030630&w=2
2396 #.  Subject:    Fix prctl privilege escalation (CVE-2006-2451)
2397 #.  From:       Marcel Holtmann <marcel () holtmann ! org>
2398 #.  Date:       2006-07-12 11:12:00
2399 #. type: Plain text
2400 #: build/C/man2/prctl.2:162
2401 msgid ""
2402 "Set the state of the flag determining whether core dumps are produced for "
2403 "the calling process upon delivery of a signal whose default behavior is to "
2404 "produce a core dump.  (Normally, this flag is set for a process by default, "
2405 "but it is cleared when a set-user-ID or set-group-ID program is executed and "
2406 "also by various system calls that manipulate process UIDs and GIDs).  In "
2407 "kernels up to and including 2.6.12, I<arg2> must be either 0 (process is not "
2408 "dumpable) or 1 (process is dumpable).  Between kernels 2.6.13 and 2.6.17, "
2409 "the value 2 was also permitted, which caused any binary which normally would "
2410 "not be dumped to be dumped readable by root only; for security reasons, this "
2411 "feature has been removed.  (See also the description of I</proc/sys/fs/"
2412 "suid_dumpable> in B<proc>(5).)  Processes that are not dumpable can not be "
2413 "attached via B<ptrace>(2)  B<PTRACE_ATTACH>."
2414 msgstr ""
2415 "(Linux 2.3.20 以降) デフォルトの振る舞いではコアダンプを引き起こすよう\n"
2416 "なシグナルを受信したときに、呼び出し元のプロセスでコアダンプを\n"
2417 "生成するかどうかを決定するフラグを\n"
2418 "設定する (通常このフラグは、デフォルトではセットされているが、\n"
2419 "set-user-ID あるいは set-group-ID プログラムが実行されたり、 さまざまな\n"
2420 "システムコールによってプロセスの UID や GID が操作されたときに クリアさ\n"
2421 "れる)。 2.6.12 以前のカーネルでは、 I<arg2> は 0 (プロセスはダンプ不可)\n"
2422 "あるいは 1 (プロセスはダンプ可能) の どちらかでなければならない。\n"
2423 "2.6.13 から 2.6.17 までのカーネルでは、値 2 も認められていた。 この値を\n"
2424 "指定すると、通常はダンプされないバイナリが root だけが 読み込み可能な形\n"
2425 "でダンプされた。 セキュリティ上の理由から、この機能は削除された\n"
2426 "(B<proc>(5) の I</proc/sys/fs/suid_dumpable> の説明も参照)。\n"
2427 "ダンプ不可のプロセスを B<ptrace>(2) B<PTRACE_ATTACH> 経由で接続すること\n"
2428 "はできない。"
2429
2430 #. type: TP
2431 #: build/C/man2/prctl.2:162
2432 #, no-wrap
2433 msgid "B<PR_GET_DUMPABLE> (since Linux 2.3.20)"
2434 msgstr "B<PR_GET_DUMPABLE> (Linux 2.3.20 以降)"
2435
2436 #.  Since Linux 2.6.13, the dumpable flag can have the value 2,
2437 #.  but in 2.6.13 PR_GET_DUMPABLE simply returns 1 if the dumpable
2438 #.  flags has a nonzero value.  This was fixed in 2.6.14.
2439 #. type: Plain text
2440 #: build/C/man2/prctl.2:169
2441 msgid ""
2442 "Return (as the function result) the current state of the calling process's "
2443 "dumpable flag."
2444 msgstr ""
2445 "(Linux 2.3.20 以降)  呼び出し元プロセスにおけるダンプ可能フラグの 現在の状態"
2446 "を (関数の結果として) 返す。"
2447
2448 #. type: TP
2449 #: build/C/man2/prctl.2:169
2450 #, no-wrap
2451 msgid "B<PR_SET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2452 msgstr "B<PR_SET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2453
2454 #.  Respectively 0, 1, 2
2455 #. type: Plain text
2456 #: build/C/man2/prctl.2:179
2457 msgid ""
2458 "Set the endian-ness of the calling process to the value given in I<arg2>, "
2459 "which should be one of the following: B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2460 "or B<PR_ENDIAN_PPC_LITTLE> (PowerPC pseudo little endian)."
2461 msgstr ""
2462 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<arg2> で指定された値"
2463 "に設定する。 指定できる値は B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2464 "B<PR_ENDIAN_PPC_LITTLE> (PowerPC 擬似リトルエンディアン)  のいずれか一つであ"
2465 "る。"
2466
2467 #. type: TP
2468 #: build/C/man2/prctl.2:179
2469 #, no-wrap
2470 msgid "B<PR_GET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2471 msgstr "B<PR_GET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2472
2473 #. type: Plain text
2474 #: build/C/man2/prctl.2:184
2475 msgid ""
2476 "Return the endian-ness of the calling process, in the location pointed to by "
2477 "I<(int\\ *) arg2>."
2478 msgstr ""
2479 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<(int\\ *) arg2> が指"
2480 "す場所に格納して返す。"
2481
2482 #. type: TP
2483 #: build/C/man2/prctl.2:184
2484 #, no-wrap
2485 msgid "B<PR_SET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2486 msgstr "B<PR_SET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2487
2488 #. type: Plain text
2489 #: build/C/man2/prctl.2:191
2490 msgid ""
2491 "Set floating-point emulation control bits to I<arg2>.  Pass "
2492 "B<PR_FPEMU_NOPRINT> to silently emulate fp operations accesses, or "
2493 "B<PR_FPEMU_SIGFPE> to not emulate fp operations and send B<SIGFPE> instead."
2494 msgstr ""
2495 "浮動小数点エミュレーション (floating-point emulation) 制御ビットを I<arg2> で"
2496 "指定された値に設定する。 指定できる値は B<PR_FPEMU_NOPRINT> (浮動小数点命令ア"
2497 "クセスを黙って エミュレートする) か B<PR_FPEMU_SIGFPE> (浮動小数点命令をエ"
2498 "ミュレートせず、 代わりに B<SIGFPE> を送る) である。"
2499
2500 #. type: TP
2501 #: build/C/man2/prctl.2:191
2502 #, no-wrap
2503 msgid "B<PR_GET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2504 msgstr "B<PR_GET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2505
2506 #. type: Plain text
2507 #: build/C/man2/prctl.2:196
2508 msgid ""
2509 "Return floating-point emulation control bits, in the location pointed to by "
2510 "I<(int\\ *) arg2>."
2511 msgstr ""
2512 "浮動小数点エミュレーション制御ビットの値を I<(int\\ *) arg2> が指す場所に格納"
2513 "して返す。"
2514
2515 #. type: TP
2516 #: build/C/man2/prctl.2:196
2517 #, no-wrap
2518 msgid "B<PR_SET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2519 msgstr "B<PR_SET_FPEXC> (Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2520
2521 #. type: Plain text
2522 #: build/C/man2/prctl.2:209
2523 msgid ""
2524 "Set floating-point exception mode to I<arg2>.  Pass B<PR_FP_EXC_SW_ENABLE> "
2525 "to use FPEXC for FP exception enables, B<PR_FP_EXC_DIV> for floating-point "
2526 "divide by zero, B<PR_FP_EXC_OVF> for floating-point overflow, "
2527 "B<PR_FP_EXC_UND> for floating-point underflow, B<PR_FP_EXC_RES> for floating-"
2528 "point inexact result, B<PR_FP_EXC_INV> for floating-point invalid operation, "
2529 "B<PR_FP_EXC_DISABLED> for FP exceptions disabled, B<PR_FP_EXC_NONRECOV> for "
2530 "async nonrecoverable exception mode, B<PR_FP_EXC_ASYNC> for async "
2531 "recoverable exception mode, B<PR_FP_EXC_PRECISE> for precise exception mode."
2532 msgstr ""
2533 "浮動小数点例外モード (floating-point exception mode) を I<arg2> で指定された"
2534 "値に設定する。 指定できるのは以下の値である: B<PR_FP_EXC_SW_ENABLE> (FPEXC で"
2535 "浮動小数点例外を有効にする)、 B<PR_FP_EXC_DIV> (0 除算)、 B<PR_FP_EXC_OVF> "
2536 "(オーバーフロー)、 B<PR_FP_EXC_UND> (アンダーフロー)、 B<PR_FP_EXC_RES> (不正"
2537 "確な結果 (inexact result))、 B<PR_FP_EXC_INV> (不正な命令 (invalid "
2538 "operation))、 B<PR_FP_EXC_DISABLED> (浮動小数点例外を無効にする)、 "
2539 "B<PR_FP_EXC_NONRECOV> (async nonrecoverable exception mode)、 "
2540 "B<PR_FP_EXC_ASYNC> (async recoverable exception mode)、 B<PR_FP_EXC_PRECISE> "
2541 "(precise exception mode)。"
2542
2543 #. type: TP
2544 #: build/C/man2/prctl.2:209
2545 #, no-wrap
2546 msgid "B<PR_GET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2547 msgstr "B<PR_GET_FPEXC>(Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2548
2549 #. type: Plain text
2550 #: build/C/man2/prctl.2:214
2551 msgid ""
2552 "Return floating-point exception mode, in the location pointed to by I<(int\\ "
2553 "*) arg2>."
2554 msgstr ""
2555 "浮動小数点例外モードの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
2556
2557 #. type: TP
2558 #: build/C/man2/prctl.2:214
2559 #, no-wrap
2560 msgid "B<PR_SET_KEEPCAPS> (since Linux 2.2.18)"
2561 msgstr "B<PR_SET_KEEPCAPS> (Linux 2.2.18 以降)"
2562
2563 #. type: Plain text
2564 #: build/C/man2/prctl.2:232
2565 msgid ""
2566 "Set the state of the thread's \"keep capabilities\" flag, which determines "
2567 "whether the threads's permitted capability set is cleared when a change is "
2568 "made to the threads's user IDs such that the threads's real UID, effective "
2569 "UID, and saved set-user-ID all become nonzero when at least one of them "
2570 "previously had the value 0.  By default, the permitted capability set is "
2571 "cleared when such a change is made; setting the \"keep capabilities\" flag "
2572 "prevents it from being cleared.  I<arg2> must be either 0 (permitted "
2573 "capabilities are cleared)  or 1 (permitted capabilities are kept).  (A "
2574 "thread's I<effective> capability set is always cleared when such a "
2575 "credential change is made, regardless of the setting of the \"keep "
2576 "capabilities\" flag.)  The \"keep capabilities\" value will be reset to 0 on "
2577 "subsequent calls to B<execve>(2)."
2578 msgstr ""
2579 "スレッドの「ケーパビリティ保持」フラグを設定する。\n"
2580 "このフラグは、スレッドの実 UID、実効 UID、保存 set-user-ID のうち少なく\n"
2581 "とも一つが 0 であった状態から、これら全てが 0 以外に変更されたとき、\n"
2582 "スレッドの許可ケーパビリティ集合がクリアされるかどうかを決定する。\n"
2583 "デフォルトでは、このような変更が行われた場合、許可ケーパビリティセット\n"
2584 "はクリアされる。「ケーパビリティ保持」フラグを設定すると、\n"
2585 "許可ケーパビリティセットはクリアされなくなる。\n"
2586 "I<arg2> は 0 (許可ケーパビリティをクリアする) か 1 (許可ケーパビリティ\n"
2587 "を保持する) の どちらかでなければならない。\n"
2588 "(このような ID の変更が行われた場合、「ケーパビリティ保持」フラグの設定\n"
2589 "に関わらず、スレッドのI<実効>ケーパビリティセットは常にクリアされる。)\n"
2590 "B<execve>(2) が呼び出されると、「ケーパビリティ保持」フラグは 0\n"
2591 "にリセットされる。"
2592
2593 #. type: TP
2594 #: build/C/man2/prctl.2:232
2595 #, no-wrap
2596 msgid "B<PR_GET_KEEPCAPS> (since Linux 2.2.18)"
2597 msgstr "B<PR_GET_KEEPCAPS> (Linux 2.2.18 以降)"
2598
2599 #. type: Plain text
2600 #: build/C/man2/prctl.2:236
2601 msgid ""
2602 "Return (as the function result) the current state of the calling threads's "
2603 "\"keep capabilities\" flag."
2604 msgstr ""
2605 "呼び出し元スレッドにおける「ケーパビリティ保持」フラグの 現在の状態を (関数の"
2606 "結果として) 返す。"
2607
2608 #. type: TP
2609 #: build/C/man2/prctl.2:236
2610 #, no-wrap
2611 msgid "B<PR_SET_NAME> (since Linux 2.6.9)"
2612 msgstr "B<PR_SET_NAME> (Linux 2.6.9 以降)"
2613
2614 #.  TASK_COMM_LEN in include/linux/sched.h
2615 #. type: Plain text
2616 #: build/C/man2/prctl.2:253
2617 msgid ""
2618 "Set the name of the calling thread, using the value in the location pointed "
2619 "to by I<(char\\ *) arg2>.  The name can be up to 16 bytes long, and should "
2620 "be null-terminated if it contains fewer bytes.  This is the same attribute "
2621 "that can be set via B<pthread_setname_np>(3)  and retrieved using "
2622 "B<pthread_getname_np>(3).  The attribute is likewise accessible via I</proc/"
2623 "self/task/[tid]/comm>, where I<tid> is the name of the calling thread."
2624 msgstr ""
2625 "呼び出し元スレッドのプロセス名を I<(char\\ *) arg2> が指す場所に格納された値"
2626 "を使って設定する。 名前は最大で 16 バイトであり、 それより少ないバイト数の場"
2627 "合は NULL で終端すべきである。 これは、 B<pthread_setname_np>(3) で設定で"
2628 "き、 B<pthread_getname_np>(3) で取得できるのと同じ属性である。 同様に、 "
2629 "I<tid> が呼び出し元スレッドの ID の場合、 この属性は I</proc/self/task/[tid]/"
2630 "comm> 経由でもアクセス可能である。"
2631
2632 #. type: TP
2633 #: build/C/man2/prctl.2:253
2634 #, no-wrap
2635 msgid "B<PR_GET_NAME> (since Linux 2.6.11)"
2636 msgstr "B<PR_GET_NAME> (Linux 2.6.11 以降)"
2637
2638 #. type: Plain text
2639 #: build/C/man2/prctl.2:260
2640 msgid ""
2641 "Return the name of the calling thread, in the buffer pointed to by I<(char\\ "
2642 "*) arg2>.  The buffer should allow space for up to 16 bytes; the returned "
2643 "string will be null-terminated if it is shorter than that."
2644 msgstr ""
2645 "呼び出し元スレッドの名前を I<(char\\ *) arg2> が指す場所に格納して返す。 バッ"
2646 "ファは最大で 16 バイトを格納できるようにすべきである。 返される文字列は、長さ"
2647 "が 16 バイトより短い場合は NULL 終端される。"
2648
2649 #. type: TP
2650 #: build/C/man2/prctl.2:260
2651 #, no-wrap
2652 msgid "B<PR_SET_NO_NEW_PRIVS> (since Linux 3.5)"
2653 msgstr "B<PR_SET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2654
2655 #. type: Plain text
2656 #: build/C/man2/prctl.2:283
2657 msgid ""
2658 "Set the calling process's I<no_new_privs> bit to the value in I<arg2>.  With "
2659 "I<no_new_privs> set to 1, B<execve>(2)  promises not to grant privileges to "
2660 "do anything that could not have been done without the B<execve>(2)  call "
2661 "(for example, rendering the set-user-ID and set-group-ID permission bits, "
2662 "and file capabilities non-functional).  Once set, this bit cannot be unset.  "
2663 "The setting of this bit is inherited by children created by B<fork>(2)  and "
2664 "B<clone>(2), and preserved across B<execve>(2)."
2665 msgstr ""
2666
2667 #. type: Plain text
2668 #: build/C/man2/prctl.2:286
2669 msgid ""
2670 "For more information, see the kernel source file I<Documentation/prctl/"
2671 "no_new_privs.txt>."
2672 msgstr ""
2673
2674 #. type: TP
2675 #: build/C/man2/prctl.2:286
2676 #, no-wrap
2677 msgid "B<PR_GET_NO_NEW_PRIVS> (since Linux 3.5)"
2678 msgstr "B<PR_GET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2679
2680 #. type: Plain text
2681 #: build/C/man2/prctl.2:297
2682 msgid ""
2683 "Return (as the function result) the value of the I<no_new_privs> bit for the "
2684 "current process.  A value of 0 indicates the regular B<execve>(2)  "
2685 "behavior.  A value of 1 indicates B<execve>(2)  will operate in the "
2686 "privilege-restricting mode described above."
2687 msgstr ""
2688
2689 #. type: TP
2690 #: build/C/man2/prctl.2:297
2691 #, no-wrap
2692 msgid "B<PR_SET_PDEATHSIG> (since Linux 2.1.57)"
2693 msgstr "B<PR_SET_PDEATHSIG> (Linux 2.1.57 以降)"
2694
2695 #. type: Plain text
2696 #: build/C/man2/prctl.2:310
2697 msgid ""
2698 "Set the parent process death signal of the calling process to I<arg2> "
2699 "(either a signal value in the range 1..maxsig, or 0 to clear).  This is the "
2700 "signal that the calling process will get when its parent dies.  This value "
2701 "is cleared for the child of a B<fork>(2)  and (since Linux 2.4.36 / 2.6.23)  "
2702 "when executing a set-user-ID or set-group-ID binary.  This value is "
2703 "preserved across B<execve>(2)."
2704 msgstr ""
2705 "親プロセス死亡シグナル (parent process death signal) を I<arg2> に設定する "
2706 "(設定できるシグナル値の範囲は 1..maxsig であり、0 は通知の解除である)。 呼び"
2707 "出し元プロセスの親プロセスが死んだ際に、ここで設定した値が シグナルとして通知"
2708 "される。この値は B<fork>(2) の子プロセスでは解除される。 (Linux 2.4.36 以降お"
2709 "よび 2.6.23 以降では) set-user-ID もしくは set-group-ID されたバイナリを実行"
2710 "した場合にも、このフラグは解除される。この値は B<execve>(2) の前後で保持され"
2711 "る。"
2712
2713 #. type: TP
2714 #: build/C/man2/prctl.2:310
2715 #, no-wrap
2716 msgid "B<PR_GET_PDEATHSIG> (since Linux 2.3.15)"
2717 msgstr "B<PR_GET_PDEATHSIG> (Linux 2.3.15 以降)"
2718
2719 #. type: Plain text
2720 #: build/C/man2/prctl.2:315
2721 msgid ""
2722 "Return the current value of the parent process death signal, in the location "
2723 "pointed to by I<(int\\ *) arg2>."
2724 msgstr ""
2725 "親プロセス死亡シグナルの現在の値を I<(int\\ *) arg2> が指す場所に格納して返"
2726 "す。"
2727
2728 #. type: TP
2729 #: build/C/man2/prctl.2:315
2730 #, no-wrap
2731 msgid "B<PR_SET_PTRACER> (since Linux 3.4)"
2732 msgstr "B<PR_SET_PTRACER> (Linux 3.4 以降)"
2733
2734 #.  commit 2d514487faf188938a4ee4fb3464eeecfbdcf8eb
2735 #.  commit bf06189e4d14641c0148bea16e9dd24943862215
2736 #. type: Plain text
2737 #: build/C/man2/prctl.2:340
2738 msgid ""
2739 "This is meaningful only when the Yama LSM is enabled and in mode 1 "
2740 "(\"restricted ptrace\", visible via I</proc/sys/kernel/yama/ptrace_scope>).  "
2741 "When a \"ptracer process ID\" is passed in I<arg2>, the caller is declaring "
2742 "that the ptracer process can B<ptrace>(2)  the calling process as if it were "
2743 "a direct process ancestor.  Each B<PR_SET_PTRACER> operation replaces the "
2744 "previous \"ptracer process ID\".  Employing B<PR_SET_PTRACER> with I<arg2> "
2745 "set to 0 clears the caller's \"ptracer process ID\".  If I<arg2> is "
2746 "B<PR_SET_PTRACER_ANY>, the ptrace restrictions introduced by Yama are "
2747 "effectively disabled for the calling process."
2748 msgstr ""
2749
2750 #. type: Plain text
2751 #: build/C/man2/prctl.2:343
2752 msgid ""
2753 "For further information, see the kernel source file I<Documentation/security/"
2754 "Yama.txt>."
2755 msgstr ""
2756
2757 #. type: TP
2758 #: build/C/man2/prctl.2:343
2759 #, no-wrap
2760 msgid "B<PR_SET_SECCOMP> (since Linux 2.6.23)"
2761 msgstr "B<PR_SET_SECCOMP> (Linux 2.6.23 以降)"
2762
2763 #.  See http://thread.gmane.org/gmane.linux.kernel/542632
2764 #.  [PATCH 0 of 2] seccomp updates
2765 #.  andrea@cpushare.com
2766 #. type: Plain text
2767 #: build/C/man2/prctl.2:354
2768 msgid ""
2769 "Set the secure computing (seccomp) mode for the calling thread, to limit the "
2770 "available system calls.  The seccomp mode is selected via I<arg2>.  (The "
2771 "seccomp constants are defined in I<E<lt>linux/seccomp.hE<gt>>.)"
2772 msgstr ""
2773
2774 #. type: Plain text
2775 #: build/C/man2/prctl.2:375
2776 msgid ""
2777 "With I<arg2> set to B<SECCOMP_MODE_STRICT> the only system calls that the "
2778 "thread is permitted to make are B<read>(2), B<write>(2), B<_exit>(2), and "
2779 "B<sigreturn>(2).  Other system calls result in the delivery of a B<SIGKILL> "
2780 "signal.  Strict secure computing mode is useful for number-crunching "
2781 "applications that may need to execute untrusted byte code, perhaps obtained "
2782 "by reading from a pipe or socket.  This operation is available only if the "
2783 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2784 msgstr ""
2785 "I<arg2> を B<SECCOMP_MODE_STRICT> に設定すると、 そのスレッドが呼び出しを許可"
2786 "されるシステムコールは B<read>(2), B<write>(2), B<_exit>(2), B<sigreturn>(2) "
2787 "だけになる。 それ以外のシステムコールを呼び出すと、シグナル B<SIGKILL> が配送"
2788 "される。 パイプやソケットから読み込んだ、 信頼できないバイトコードを実行する"
2789 "必要がある大量の演算を行うアプリケーションにおいて、 strict secure computing "
2790 "モードは役立つ。 この操作は利用できるのは、 カーネルが B<CONFIG_SECCOMP> を有"
2791 "効にして作成されている場合だけである。"
2792
2793 #. type: Plain text
2794 #: build/C/man2/prctl.2:390
2795 msgid ""
2796 "With I<arg2> set to B<SECCOMP_MODE_FILTER> (since Linux 3.5)  the system "
2797 "calls allowed are defined by a pointer to a Berkeley Packet Filter passed in "
2798 "I<arg3>.  This argument is a pointer to I<struct sock_fprog>; it can be "
2799 "designed to filter arbitrary system calls and system call arguments.  This "
2800 "mode is available only if the kernel is configured with "
2801 "B<CONFIG_SECCOMP_FILTER> enabled."
2802 msgstr ""
2803
2804 #. type: Plain text
2805 #: build/C/man2/prctl.2:405
2806 msgid ""
2807 "If B<SECCOMP_MODE_FILTER> filters permit B<fork>(2), then the seccomp mode "
2808 "is inherited by children created by B<fork>(2); if B<execve>(2)  is "
2809 "permitted, then the seccomp mode is preserved across B<execve>(2).  If the "
2810 "filters permit B<prctl>()  calls, then additional filters can be added; they "
2811 "are run in order until the first non-allow result is seen."
2812 msgstr ""
2813
2814 #. type: Plain text
2815 #: build/C/man2/prctl.2:408
2816 msgid ""
2817 "For further information, see the kernel source file I<Documentation/prctl/"
2818 "seccomp_filter.txt>."
2819 msgstr ""
2820
2821 #. type: TP
2822 #: build/C/man2/prctl.2:408
2823 #, no-wrap
2824 msgid "B<PR_GET_SECCOMP> (since Linux 2.6.23)"
2825 msgstr "B<PR_GET_SECCOMP> (Linux 2.6.23 以降)"
2826
2827 #. type: Plain text
2828 #: build/C/man2/prctl.2:424
2829 msgid ""
2830 "Return (as the function result)  the secure computing mode of the calling "
2831 "thread.  If the caller is not in secure computing mode, this operation "
2832 "returns 0; if the caller is in strict secure computing mode, then the "
2833 "B<prctl>()  call will cause a B<SIGKILL> signal to be sent to the process.  "
2834 "If the caller is in filter mode, and this system call is allowed by the "
2835 "seccomp filters, it returns 2.  This operation is available only if the "
2836 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2837 msgstr ""
2838 "呼び出したスレッドの secure computing モードを (関数の結果として) 返す。 呼び"
2839 "出したスレッドが secure computing モードでなかった場合、 この操作は 0 を返"
2840 "す。 呼び出したスレッドが secure computing モードの場合、 B<prctl>()  を呼び"
2841 "出すとシグナル B<SIGKILL> がそのプロセスに送信される。 呼び出したスレッドが"
2842 "フィルタモードで、 このシステムコールが seccomp フィルタにより許可されている"
2843 "場合、 2 を返す。 この操作が利用できるのは、カーネルが B<CONFIG_SECCOMP> を有"
2844 "効にして作成されている場合だけである。"
2845
2846 #. type: TP
2847 #: build/C/man2/prctl.2:424
2848 #, no-wrap
2849 msgid "B<PR_SET_SECUREBITS> (since Linux 2.6.26)"
2850 msgstr "B<PR_SET_SECUREBITS> (Linux 2.6.26 以降)"
2851
2852 #. type: Plain text
2853 #: build/C/man2/prctl.2:430
2854 msgid ""
2855 "Set the \"securebits\" flags of the calling thread to the value supplied in "
2856 "I<arg2>.  See B<capabilities>(7)."
2857 msgstr ""
2858 "呼び出したスレッドの \"securebits\" フラグを I<arg2> で渡された値に設定す"
2859 "る。 B<capabilities>(7)  参照。"
2860
2861 #. type: TP
2862 #: build/C/man2/prctl.2:430
2863 #, no-wrap
2864 msgid "B<PR_GET_SECUREBITS> (since Linux 2.6.26)"
2865 msgstr "B<PR_GET_SECUREBITS> (Linux 2.6.26 以降)"
2866
2867 #. type: Plain text
2868 #: build/C/man2/prctl.2:436
2869 msgid ""
2870 "Return (as the function result)  the \"securebits\" flags of the calling "
2871 "thread.  See B<capabilities>(7)."
2872 msgstr ""
2873 "呼び出したスレッドの \"securebits\" フラグを (関数の結果として) 返す。 "
2874 "B<capabilities>(7)  参照。"
2875
2876 #. type: TP
2877 #: build/C/man2/prctl.2:436
2878 #, no-wrap
2879 msgid "B<PR_GET_TID_ADDRESS> (since Linux 3.5)"
2880 msgstr "B<PR_GET_TID_ADDRESS> (Linux 3.5 以降)"
2881
2882 #.  commit 300f786b2683f8bb1ec0afb6e1851183a479c86d
2883 #. type: Plain text
2884 #: build/C/man2/prctl.2:451
2885 msgid ""
2886 "Retrieve the I<clear_child_tid> address set by B<set_tid_address>(2)  and "
2887 "the B<clone>(2)  B<CLONE_CHILD_CLEARTID> flag, in the location pointed to by "
2888 "I<(int\\ **)\\ arg2>.  This feature is available only if the kernel is built "
2889 "with the B<CONFIG_CHECKPOINT_RESTORE> option enabled."
2890 msgstr ""
2891
2892 #. type: TP
2893 #: build/C/man2/prctl.2:451
2894 #, no-wrap
2895 msgid "B<PR_SET_TIMERSLACK> (since Linux 2.6.28)"
2896 msgstr "B<PR_SET_TIMERSLACK> (Linux 2.6.28 以降)"
2897
2898 #.  See https://lwn.net/Articles/369549/
2899 #.  commit 6976675d94042fbd446231d1bd8b7de71a980ada
2900 #.  It seems that it's not possible to set the timer slack to zero;
2901 #.  The minimum value is 1? Seems a little strange.
2902 #. type: Plain text
2903 #: build/C/man2/prctl.2:470
2904 msgid ""
2905 "Set the current timer slack for the calling thread to the nanosecond value "
2906 "supplied in I<arg2>.  If I<arg2> is less than or equal to zero, reset the "
2907 "current timer slack to the thread's default timer slack value.  The timer "
2908 "slack is used by the kernel to group timer expirations for the calling "
2909 "thread that are close to one another; as a consequence, timer expirations "
2910 "for the thread may be up to the specified number of nanoseconds late (but "
2911 "will never expire early).  Grouping timer expirations can help reduce system "
2912 "power consumption by minimizing CPU wake-ups."
2913 msgstr ""
2914
2915 #.  List obtained by grepping for futex usage in glibc source
2916 #. type: Plain text
2917 #: build/C/man2/prctl.2:490
2918 msgid ""
2919 "The timer expirations affected by timer slack are those set by B<select>(2), "
2920 "B<pselect>(2), B<poll>(2), B<ppoll>(2), B<epoll_wait>(2), B<epoll_pwait>(2), "
2921 "B<clock_nanosleep>(2), B<nanosleep>(2), and B<futex>(2)  (and thus the "
2922 "library functions implemented via futexes, including "
2923 "B<pthread_cond_timedwait>(3), B<pthread_mutex_timedlock>(3), "
2924 "B<pthread_rwlock_timedrdlock>(3), B<pthread_rwlock_timedwrlock>(3), and "
2925 "B<sem_timedwait>(3))."
2926 msgstr ""
2927
2928 #. type: Plain text
2929 #: build/C/man2/prctl.2:494
2930 msgid ""
2931 "Timer slack is not applied to threads that are scheduled under a real-time "
2932 "scheduling policy (see B<sched_setscheduler>(2))."
2933 msgstr ""
2934
2935 #. type: Plain text
2936 #: build/C/man2/prctl.2:511
2937 msgid ""
2938 "Each thread has two associated timer slack values: a \"default\" value, and "
2939 "a \"current\" value.  The current value is the one that governs grouping of "
2940 "timer expirations.  When a new thread is created, the two timer slack values "
2941 "are made the same as the current value of the creating thread.  Thereafter, "
2942 "a thread can adjust its current timer slack value via B<PR_SET_TIMERSLACK> "
2943 "(the default value can't be changed).  The timer slack values of I<init> "
2944 "(PID 1), the ancestor of all processes, are 50,000 nanoseconds (50 "
2945 "microseconds).  The timer slack values are preserved across B<execve>(2)."
2946 msgstr ""
2947
2948 #. type: TP
2949 #: build/C/man2/prctl.2:511
2950 #, no-wrap
2951 msgid "B<PR_GET_TIMERSLACK> (since Linux 2.6.28)"
2952 msgstr "B<PR_GET_TIMERSLACK> (Linux 2.6.28 以降)"
2953
2954 #. type: Plain text
2955 #: build/C/man2/prctl.2:515
2956 msgid ""
2957 "Return (as the function result)  the current timer slack value of the "
2958 "calling thread."
2959 msgstr ""
2960 "呼び出し元スレッドの現在のタイマーのスラック値を (関数の結果として) 返す。"
2961
2962 #. type: TP
2963 #: build/C/man2/prctl.2:515
2964 #, no-wrap
2965 msgid "B<PR_SET_TIMING> (since Linux 2.6.0-test4)"
2966 msgstr "B<PR_SET_TIMING> (Linux 2.6.0-test4 以降)"
2967
2968 #.  0
2969 #.  1
2970 #.  PR_TIMING_TIMESTAMP doesn't do anything in 2.6.26-rc8,
2971 #.  and looking at the patch history, it appears
2972 #.  that it never did anything.
2973 #. type: Plain text
2974 #: build/C/man2/prctl.2:532
2975 msgid ""
2976 "Set whether to use (normal, traditional) statistical process timing or "
2977 "accurate timestamp-based process timing, by passing B<PR_TIMING_STATISTICAL> "
2978 "or B<PR_TIMING_TIMESTAMP> to I<arg2>.  B<PR_TIMING_TIMESTAMP> is not "
2979 "currently implemented (attempting to set this mode will yield the error "
2980 "B<EINVAL>)."
2981 msgstr ""
2982 "(通常の、伝統的に使われてきた) 統計的なプロセスタイミングを使用するか、\n"
2983 "正確なタイムスタンプに基づくプロセスタイミングを使用するかを設定する。\n"
2984 "I<arg2> に指定できる値は B<PR_TIMING_STATISTICAL> か\n"
2985 "B<PR_TIMING_TIMESTAMP> である。 B<PR_TIMING_TIMESTAMP> は現在のところ実\n"
2986 "装されていない (このモードに設定しようとするとエラー B<EINVAL> が起こる\n"
2987 "ことだろう)。"
2988
2989 #. type: TP
2990 #: build/C/man2/prctl.2:532
2991 #, no-wrap
2992 msgid "B<PR_GET_TIMING> (since Linux 2.6.0-test4)"
2993 msgstr "B<PR_GET_TIMING> (Linux 2.6.0-test4 以降)"
2994
2995 #. type: Plain text
2996 #: build/C/man2/prctl.2:536
2997 msgid ""
2998 "Return (as the function result) which process timing method is currently in "
2999 "use."
3000 msgstr "現在使用中のプロセスタイミングを決める方法を (関数の結果として) 返す。"
3001
3002 #. type: TP
3003 #: build/C/man2/prctl.2:536
3004 #, no-wrap
3005 msgid "B<PR_TASK_PERF_EVENTS_DISABLE> (since Linux 2.6.31)"
3006 msgstr "B<PR_TASK_PERF_EVENTS_DISABLE> (Linux 2.6.31 以降)"
3007
3008 #. type: Plain text
3009 #: build/C/man2/prctl.2:545
3010 msgid ""
3011 "Disable all performance counters attached to the calling process, regardless "
3012 "of whether the counters were created by this process or another process.  "
3013 "Performance counters created by the calling process for other processes are "
3014 "unaffected.  For more information on performance counters, see the Linux "
3015 "kernel source file I<tools/perf/design.txt>."
3016 msgstr ""
3017
3018 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3019 #. type: Plain text
3020 #: build/C/man2/prctl.2:551
3021 msgid ""
3022 "Originally called B<PR_TASK_PERF_COUNTERS_DISABLE>; renamed (with same "
3023 "numerical value)  in Linux 2.6.32."
3024 msgstr ""
3025 "以前は B<PR_TASK_PERF_COUNTERS_DISABLE> と呼ばれていた。\n"
3026 "Linux 2.6.32 で名前が変更された (数値は同じままである)。"
3027
3028 #. type: TP
3029 #: build/C/man2/prctl.2:551
3030 #, no-wrap
3031 msgid "B<PR_TASK_PERF_EVENTS_ENABLE> (since Linux 2.6.31)"
3032 msgstr "B<PR_TASK_PERF_EVENTS_ENABLE> (Linux 2.6.31 以降)"
3033
3034 #. type: Plain text
3035 #: build/C/man2/prctl.2:556
3036 msgid ""
3037 "The converse of B<PR_TASK_PERF_EVENTS_DISABLE>; enable performance counters "
3038 "attached to the calling process."
3039 msgstr ""
3040
3041 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3042 #.  commit cdd6c482c9ff9c55475ee7392ec8f672eddb7be6
3043 #. type: Plain text
3044 #: build/C/man2/prctl.2:563
3045 msgid ""
3046 "Originally called B<PR_TASK_PERF_COUNTERS_ENABLE>; renamed in Linux 2.6.32."
3047 msgstr ""
3048 "以前は B<PR_TASK_PERF_COUNTERS_ENABLE> と呼ばれていた。\n"
3049 "Linux 2.6.32 で名前が変更された。"
3050
3051 #. type: TP
3052 #: build/C/man2/prctl.2:563
3053 #, no-wrap
3054 msgid "B<PR_SET_TSC> (since Linux 2.6.26, x86 only)"
3055 msgstr "B<PR_SET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3056
3057 #. type: Plain text
3058 #: build/C/man2/prctl.2:576
3059 msgid ""
3060 "Set the state of the flag determining whether the timestamp counter can be "
3061 "read by the process.  Pass B<PR_TSC_ENABLE> to I<arg2> to allow it to be "
3062 "read, or B<PR_TSC_SIGSEGV> to generate a B<SIGSEGV> when the process tries "
3063 "to read the timestamp counter."
3064 msgstr ""
3065 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態を"
3066 "設定する。 読み出しを許可する場合は I<arg2> に B<PR_TSC_ENABLE> を、そのプロ"
3067 "セスがタイムスタンプ・カウンタを読み出そうとした際に B<SIGSEGV> を発生させる"
3068 "場合には B<PR_TSC_SIGSEGV> を渡す。"
3069
3070 #. type: TP
3071 #: build/C/man2/prctl.2:576
3072 #, no-wrap
3073 msgid "B<PR_GET_TSC> (since Linux 2.6.26, x86 only)"
3074 msgstr "B<PR_GET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3075
3076 #. type: Plain text
3077 #: build/C/man2/prctl.2:582
3078 msgid ""
3079 "Return the state of the flag determining whether the timestamp counter can "
3080 "be read, in the location pointed to by I<(int\\ *) arg2>."
3081 msgstr ""
3082 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態"
3083 "を I<(int\\ *) arg2> が指す場所に格納して返す。"
3084
3085 #. type: TP
3086 #: build/C/man2/prctl.2:582
3087 #, no-wrap
3088 msgid "B<PR_SET_UNALIGN>"
3089 msgstr "B<PR_SET_UNALIGN>"
3090
3091 #. type: Plain text
3092 #: build/C/man2/prctl.2:592
3093 msgid ""
3094 "(Only on: ia64, since Linux 2.3.48; parisc, since Linux 2.6.15; PowerPC, "
3095 "since Linux 2.6.18; Alpha, since Linux 2.6.22)  Set unaligned access control "
3096 "bits to I<arg2>.  Pass B<PR_UNALIGN_NOPRINT> to silently fix up unaligned "
3097 "user accesses, or B<PR_UNALIGN_SIGBUS> to generate B<SIGBUS> on unaligned "
3098 "user access."
3099 msgstr ""
3100 "(ia64 では Linux 2.3.48 以降; parisc では Linux 2.6.15 以降; PowerPC では "
3101 "Linux 2.6.18 以降; Alpha では Linux 2.6.22 以降; これらのアーキテクチャの"
3102 "み)  unaligned アクセス制御ビットを I<arg2> で指定された値に設定する。 指定で"
3103 "きる値は B<PR_UNALIGN_NOPRINT> (unaligned なユーザアクセスを黙って 修正する) "
3104 "か B<PR_UNALIGN_SIGBUS> (unaligned なユーザアクセスがあった場合 B<SIGBUS> を"
3105 "生成する) である。"
3106
3107 #. type: TP
3108 #: build/C/man2/prctl.2:592
3109 #, no-wrap
3110 msgid "B<PR_GET_UNALIGN>"
3111 msgstr "B<PR_GET_UNALIGN>"
3112
3113 #. type: Plain text
3114 #: build/C/man2/prctl.2:599
3115 msgid ""
3116 "(see B<PR_SET_UNALIGN> for information on versions and architectures)  "
3117 "Return unaligned access control bits, in the location pointed to by I<(int\\ "
3118 "*) arg2>."
3119 msgstr ""
3120 "(バージョンとアーキテクチャの情報は B<PR_SET_UNALIGN> 参照)  unaligned アクセ"
3121 "ス制御ビットの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
3122
3123 #. type: TP
3124 #: build/C/man2/prctl.2:599
3125 #, no-wrap
3126 msgid "B<PR_MCE_KILL> (since Linux 2.6.32)"
3127 msgstr "B<PR_MCE_KILL> (Linux 2.6.32 以降)"
3128
3129 #. type: Plain text
3130 #: build/C/man2/prctl.2:639
3131 msgid ""
3132 "Set the machine check memory corruption kill policy for the current thread.  "
3133 "If I<arg2> is B<PR_MCE_KILL_CLEAR>, clear the thread memory corruption kill "
3134 "policy and use the system-wide default.  (The system-wide default is defined "
3135 "by I</proc/sys/vm/memory_failure_early_kill>; see B<proc>(5).)  If I<arg2> "
3136 "is B<PR_MCE_KILL_SET>, use a thread-specific memory corruption kill policy.  "
3137 "In this case, I<arg3> defines whether the policy is I<early kill> "
3138 "(B<PR_MCE_KILL_EARLY>), I<late kill> (B<PR_MCE_KILL_LATE>), or the system-"
3139 "wide default (B<PR_MCE_KILL_DEFAULT>).  Early kill means that the thread "
3140 "receives a B<SIGBUS> signal as soon as hardware memory corruption is "
3141 "detected inside its address space.  In late kill mode, the process is killed "
3142 "only when it accesses a corrupted page.  See B<sigaction>(2)  for more "
3143 "information on the B<SIGBUS> signal.  The policy is inherited by children.  "
3144 "The remaining unused B<prctl>()  arguments must be zero for future "
3145 "compatibility."
3146 msgstr ""
3147
3148 #. type: TP
3149 #: build/C/man2/prctl.2:639
3150 #, no-wrap
3151 msgid "B<PR_MCE_KILL_GET> (since Linux 2.6.32)"
3152 msgstr "B<PR_MCE_KILL_GET> (Linux 2.6.32 以降)"
3153
3154 #. type: Plain text
3155 #: build/C/man2/prctl.2:645
3156 msgid ""
3157 "Return the current per-process machine check kill policy.  All unused "
3158 "B<prctl>()  arguments must be zero."
3159 msgstr ""
3160
3161 #. type: TP
3162 #: build/C/man2/prctl.2:645
3163 #, no-wrap
3164 msgid "B<PR_SET_MM> (since Linux 3.3)"
3165 msgstr "B<PR_SET_MM> (Linux 3.3 以降)"
3166
3167 #.  commit 028ee4be34a09a6d48bdf30ab991ae933a7bc036
3168 #. type: Plain text
3169 #: build/C/man2/prctl.2:666
3170 msgid ""
3171 "Modify certain kernel memory map descriptor fields of the calling process.  "
3172 "Usually these fields are set by the kernel and dynamic loader (see B<ld.so>"
3173 "(8)  for more information) and a regular application should not use this "
3174 "feature.  However, there are cases, such as self-modifying programs, where a "
3175 "program might find it useful to change its own memory map.  This feature is "
3176 "available only if the kernel is built with the B<CONFIG_CHECKPOINT_RESTORE> "
3177 "option enabled.  The calling process must have the B<CAP_SYS_RESOURCE> "
3178 "capability.  The value in I<arg2> is one of the options below, while I<arg3> "
3179 "provides a new value for the option."
3180 msgstr ""
3181
3182 #. type: TP
3183 #: build/C/man2/prctl.2:667
3184 #, no-wrap
3185 msgid "B<PR_SET_MM_START_CODE>"
3186 msgstr "B<PR_SET_MM_START_CODE>"
3187
3188 #. type: Plain text
3189 #: build/C/man2/prctl.2:676
3190 msgid ""
3191 "Set the address above which the program text can run.  The corresponding "
3192 "memory area must be readable and executable, but not writable or sharable "
3193 "(see B<mprotect>(2)  and B<mmap>(2)  for more information)."
3194 msgstr ""
3195
3196 #. type: TP
3197 #: build/C/man2/prctl.2:676
3198 #, no-wrap
3199 msgid "B<PR_SET_MM_END_CODE>"
3200 msgstr "B<PR_SET_MM_END_CODE>"
3201
3202 #. type: Plain text
3203 #: build/C/man2/prctl.2:681
3204 msgid ""
3205 "Set the address below which the program text can run.  The corresponding "
3206 "memory area must be readable and executable, but not writable or sharable."
3207 msgstr ""
3208
3209 #. type: TP
3210 #: build/C/man2/prctl.2:681
3211 #, no-wrap
3212 msgid "B<PR_SET_MM_START_DATA>"
3213 msgstr "B<PR_SET_MM_START_DATA>"
3214
3215 #. type: Plain text
3216 #: build/C/man2/prctl.2:687
3217 msgid ""
3218 "Set the address above which initialized and uninitialized (bss) data are "
3219 "placed.  The corresponding memory area must be readable and writable, but "
3220 "not executable or sharable."
3221 msgstr ""
3222
3223 #. type: TP
3224 #: build/C/man2/prctl.2:687
3225 #, no-wrap
3226 msgid "B<PR_SET_MM_END_DATA>"
3227 msgstr "B<PR_SET_MM_END_DATA>"
3228
3229 #. type: Plain text
3230 #: build/C/man2/prctl.2:693
3231 msgid ""
3232 "Set the address below which initialized and uninitialized (bss) data are "
3233 "placed.  The corresponding memory area must be readable and writable, but "
3234 "not executable or sharable."
3235 msgstr ""
3236
3237 #. type: TP
3238 #: build/C/man2/prctl.2:693
3239 #, no-wrap
3240 msgid "B<PR_SET_MM_START_STACK>"
3241 msgstr "B<PR_SET_MM_START_STACK>"
3242
3243 #. type: Plain text
3244 #: build/C/man2/prctl.2:697
3245 msgid ""
3246 "Set the start address of the stack.  The corresponding memory area must be "
3247 "readable and writable."
3248 msgstr ""
3249
3250 #. type: TP
3251 #: build/C/man2/prctl.2:697
3252 #, no-wrap
3253 msgid "B<PR_SET_MM_START_BRK>"
3254 msgstr "B<PR_SET_MM_START_BRK>"
3255
3256 #. type: Plain text
3257 #: build/C/man2/prctl.2:709
3258 msgid ""
3259 "Set the address above which the program heap can be expanded with B<brk>(2)  "
3260 "call.  The address must be greater than the ending address of the current "
3261 "program data segment.  In addition, the combined size of the resulting heap "
3262 "and the size of the data segment can't exceed the B<RLIMIT_DATA> resource "
3263 "limit (see B<setrlimit>(2))."
3264 msgstr ""
3265
3266 #. type: TP
3267 #: build/C/man2/prctl.2:709
3268 #, no-wrap
3269 msgid "B<PR_SET_MM_BRK>"
3270 msgstr "B<PR_SET_MM_BRK>"
3271
3272 #. type: Plain text
3273 #: build/C/man2/prctl.2:717
3274 msgid ""
3275 "Set the current B<brk>(2)  value.  The requirements for the address are the "
3276 "same as for the B<PR_SET_MM_START_BRK> option."
3277 msgstr ""
3278
3279 #.  commit fe8c7f5cbf91124987106faa3bdf0c8b955c4cf7
3280 #. type: Plain text
3281 #: build/C/man2/prctl.2:720
3282 msgid "The following options are available since Linux 3.5."
3283 msgstr "以下のオプションは Linux 3.5 以降で利用できる。"
3284
3285 #. type: TP
3286 #: build/C/man2/prctl.2:720
3287 #, no-wrap
3288 msgid "B<PR_SET_MM_ARG_START>"
3289 msgstr "B<PR_SET_MM_ARG_START>"
3290
3291 #. type: Plain text
3292 #: build/C/man2/prctl.2:723
3293 msgid "Set the address above which the program command line is placed."
3294 msgstr ""
3295
3296 #. type: TP
3297 #: build/C/man2/prctl.2:723
3298 #, no-wrap
3299 msgid "B<PR_SET_MM_ARG_END>"
3300 msgstr "B<PR_SET_MM_ARG_END>"
3301
3302 #. type: Plain text
3303 #: build/C/man2/prctl.2:726
3304 msgid "Set the address below which the program command line is placed."
3305 msgstr ""
3306
3307 #. type: TP
3308 #: build/C/man2/prctl.2:726
3309 #, no-wrap
3310 msgid "B<PR_SET_MM_ENV_START>"
3311 msgstr "B<PR_SET_MM_ENV_START>"
3312
3313 #. type: Plain text
3314 #: build/C/man2/prctl.2:729
3315 msgid "Set the address above which the program environment is placed."
3316 msgstr ""
3317
3318 #. type: TP
3319 #: build/C/man2/prctl.2:729
3320 #, no-wrap
3321 msgid "B<PR_SET_MM_ENV_END>"
3322 msgstr "B<PR_SET_MM_ENV_END>"
3323
3324 #. type: Plain text
3325 #: build/C/man2/prctl.2:732
3326 msgid "Set the address below which the program environment is placed."
3327 msgstr ""
3328
3329 #. type: Plain text
3330 #: build/C/man2/prctl.2:745
3331 msgid ""
3332 "The address passed with B<PR_SET_MM_ARG_START>, B<PR_SET_MM_ARG_END>, "
3333 "B<PR_SET_MM_ENV_START>, and B<PR_SET_MM_ENV_END> should belong to a process "
3334 "stack area.  Thus, the corresponding memory area must be readable, writable, "
3335 "and (depending on the kernel configuration) have the B<MAP_GROWSDOWN> "
3336 "attribute set (see B<mmap>(2))."
3337 msgstr ""
3338
3339 #. type: TP
3340 #: build/C/man2/prctl.2:745
3341 #, no-wrap
3342 msgid "B<PR_SET_MM_AUXV>"
3343 msgstr "B<PR_SET_MM_AUXV>"
3344
3345 #. type: Plain text
3346 #: build/C/man2/prctl.2:754
3347 msgid ""
3348 "Set a new auxiliary vector.  The I<arg3> argument should provide the address "
3349 "of the vector.  The I<arg4> is the size of the vector."
3350 msgstr ""
3351
3352 #. type: TP
3353 #: build/C/man2/prctl.2:754
3354 #, no-wrap
3355 msgid "B<PR_SET_MM_EXE_FILE>"
3356 msgstr "B<PR_SET_MM_EXE_FILE>"
3357
3358 #.  commit b32dfe377102ce668775f8b6b1461f7ad428f8b6
3359 #. type: Plain text
3360 #: build/C/man2/prctl.2:766
3361 msgid ""
3362 "Supersede the I</proc/pid/exe> symbolic link with a new one pointing to a "
3363 "new executable file identified by the file descriptor provided in I<arg3> "
3364 "argument.  The file descriptor should be obtained with a regular B<open>(2)  "
3365 "call."
3366 msgstr ""
3367
3368 #. type: Plain text
3369 #: build/C/man2/prctl.2:773
3370 msgid ""
3371 "To change the symbolic link, one needs to unmap all existing executable "
3372 "memory areas, including those created by the kernel itself (for example the "
3373 "kernel usually creates at least one executable memory area for the ELF I<."
3374 "text> section)."
3375 msgstr ""
3376
3377 #. type: Plain text
3378 #: build/C/man2/prctl.2:779
3379 msgid ""
3380 "The second limitation is that such transitions can be done only once in a "
3381 "process life time.  Any further attempts will be rejected.  This should help "
3382 "system administrators monitor unusual symbolic-link transitions over all "
3383 "processes running on a system."
3384 msgstr ""
3385
3386 #. type: Plain text
3387 #: build/C/man2/prctl.2:800
3388 msgid ""
3389 "On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3390 "B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, B<PR_GET_TIMERSLACK>, "
3391 "B<PR_GET_SECUREBITS>, B<PR_MCE_KILL_GET>, and (if it returns)  "
3392 "B<PR_GET_SECCOMP> return the nonnegative values described above.  All other "
3393 "I<option> values return 0 on success.  On error, -1 is returned, and "
3394 "I<errno> is set appropriately."
3395 msgstr ""
3396 "成功すると、 B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3397 "B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, B<PR_GET_TIMERSLACK>, "
3398 "B<PR_GET_SECUREBITS>, B<PR_MCE_KILL_GET>, B<PR_GET_SECCOMP> は上述の負でない"
3399 "値を返す (なお、B<PR_GET_SECCOMP> は返らない場合もある)。 I<option> が他の値"
3400 "の場合は成功時に 0 を返す。 エラーの場合、-1 を返し、 I<errno> に適切な値を設"
3401 "定する。"
3402
3403 #. type: Plain text
3404 #: build/C/man2/prctl.2:805
3405 msgid "I<arg2> is an invalid address."
3406 msgstr "I<arg2> が不正なアドレスである。"
3407
3408 #. type: Plain text
3409 #: build/C/man2/prctl.2:810
3410 msgid "The value of I<option> is not recognized."
3411 msgstr "I<option> の値が理解できない。"
3412
3413 #. type: Plain text
3414 #: build/C/man2/prctl.2:822
3415 msgid ""
3416 "I<option> is B<PR_MCE_KILL> or B<PR_MCE_KILL_GET> or B<PR_SET_MM>, and "
3417 "unused B<prctl>()  arguments were not specified as zero."
3418 msgstr ""
3419
3420 #. type: Plain text
3421 #: build/C/man2/prctl.2:827
3422 msgid "I<arg2> is not valid value for this I<option>."
3423 msgstr "I<arg2> が指定された I<option> で有効な値ではない。"
3424
3425 #. type: Plain text
3426 #: build/C/man2/prctl.2:836
3427 msgid ""
3428 "I<option> is B<PR_SET_SECCOMP> or B<PR_GET_SECCOMP>, and the kernel was not "
3429 "configured with B<CONFIG_SECCOMP>."
3430 msgstr ""
3431 "I<option> が B<PR_SET_SECCOMP> か B<PR_GET_SECCOMP> だが、カーネルが "
3432 "B<CONFIG_SECCOMP> を有効にして作成されていなかった。"
3433
3434 #. type: Plain text
3435 #: build/C/man2/prctl.2:842
3436 msgid "I<option> is B<PR_SET_MM>, and one of the following is true"
3437 msgstr ""
3438
3439 #. type: Plain text
3440 #: build/C/man2/prctl.2:848
3441 msgid "I<arg4> or I<arg5> is nonzero;"
3442 msgstr ""
3443
3444 #. type: Plain text
3445 #: build/C/man2/prctl.2:853
3446 msgid ""
3447 "I<arg3> is greater than B<TASK_SIZE> (the limit on the size of the user "
3448 "address space for this architecture);"
3449 msgstr ""
3450
3451 #. type: Plain text
3452 #: build/C/man2/prctl.2:863
3453 msgid ""
3454 "I<arg2> is B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3455 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, or B<PR_SET_MM_START_STACK>, "
3456 "and the permissions of the corresponding memory area are not as required;"
3457 msgstr ""
3458
3459 #. type: Plain text
3460 #: build/C/man2/prctl.2:875
3461 msgid ""
3462 "I<arg2> is B<PR_SET_MM_START_BRK> or B<PR_SET_MM_BRK>, and I<arg3> is less "
3463 "than or equal to the end of the data segment or specifies a value that would "
3464 "cause the B<RLIMIT_DATA> resource limit to be exceeded."
3465 msgstr ""
3466
3467 #. type: Plain text
3468 #: build/C/man2/prctl.2:886
3469 msgid ""
3470 "I<option> is B<PR_SET_PTRACER> and I<arg2> is not 0, B<PR_SET_PTRACER_ANY>, "
3471 "or the PID of an existing process."
3472 msgstr ""
3473
3474 #. type: Plain text
3475 #: build/C/man2/prctl.2:898
3476 msgid ""
3477 "I<option> is B<PR_SET_SECUREBITS>, and the caller does not have the "
3478 "B<CAP_SETPCAP> capability, or tried to unset a \"locked\" flag, or tried to "
3479 "set a flag whose corresponding locked flag was set (see B<capabilities>(7))."
3480 msgstr ""
3481 "I<option> が B<PR_SET_SECUREBITS> で、呼び出し元がケーパビリティ "
3482 "B<CAP_SETPCAP> を持っていない。 または、\"locked\" フラグを解除しようとし"
3483 "た。 または、locked フラグがセットされているフラグをセットしようとした "
3484 "(B<capabilities>(7)  参照)。"
3485
3486 #. type: Plain text
3487 #: build/C/man2/prctl.2:908
3488 msgid ""
3489 "I<option> is B<PR_SET_KEEPCAPS>, and the callers's "
3490 "B<SECURE_KEEP_CAPS_LOCKED> flag is set (see B<capabilities>(7))."
3491 msgstr ""
3492 "I<option> が B<PR_SET_KEEPCAPS> で、呼び出し元のフラグ "
3493 "B<SECURE_KEEP_CAPS_LOCKED> がセットされている (B<capabilities>(7)  参照)。"
3494
3495 #. type: Plain text
3496 #: build/C/man2/prctl.2:916
3497 msgid ""
3498 "I<option> is B<PR_CAPBSET_DROP>, and the caller does not have the "
3499 "B<CAP_SETPCAP> capability."
3500 msgstr ""
3501 "I<option> が B<PR_CAPBSET_DROP> で、呼び出し元がケーパビリティ "
3502 "B<CAP_SETPCAP> を持っていない。"
3503
3504 #. type: Plain text
3505 #: build/C/man2/prctl.2:924
3506 msgid ""
3507 "I<option> is B<PR_SET_MM>, and the caller does not have the "
3508 "B<CAP_SYS_RESOURCE> capability."
3509 msgstr ""
3510 "I<option> が B<PR_SET_MM> で、呼び出し元がケーパビリティ\n"
3511 "B<CAP_SYS_RESOURCE> を持っていない。"
3512
3513 #. type: TP
3514 #: build/C/man2/prctl.2:924
3515 #, no-wrap
3516 msgid "B<EACCES>"
3517 msgstr "B<EACCES>"
3518
3519 #. type: Plain text
3520 #: build/C/man2/prctl.2:934
3521 msgid ""
3522 "I<option> is B<PR_SET_MM>, and I<arg3> is B<PR_SET_MM_EXE_FILE>, the file is "
3523 "not executable."
3524 msgstr ""
3525
3526 #. type: TP
3527 #: build/C/man2/prctl.2:934
3528 #, no-wrap
3529 msgid "B<EBUSY>"
3530 msgstr "B<EBUSY>"
3531
3532 #. type: Plain text
3533 #: build/C/man2/prctl.2:945
3534 msgid ""
3535 "I<option> is B<PR_SET_MM>, I<arg3> is B<PR_SET_MM_EXE_FILE>, and this the "
3536 "second attempt to change the I</proc/pid/exe> symbolic link, which is "
3537 "prohibited."
3538 msgstr ""
3539
3540 #. type: TP
3541 #: build/C/man2/prctl.2:945 build/C/man2/signalfd.2:266
3542 #: build/C/man2/timerfd_create.2:338
3543 #, no-wrap
3544 msgid "B<EBADF>"
3545 msgstr "B<EBADF>"
3546
3547 #.  The following can't actually happen, because prctl() in
3548 #.  seccomp mode will cause SIGKILL.
3549 #.  .TP
3550 #.  .B EPERM
3551 #.  .I option
3552 #.  is
3553 #.  .BR PR_SET_SECCOMP ,
3554 #.  and secure computing mode is already 1.
3555 #. type: Plain text
3556 #: build/C/man2/prctl.2:964
3557 msgid ""
3558 "I<option> is B<PR_SET_MM>, I<arg3> is B<PR_SET_MM_EXE_FILE>, and the file "
3559 "descriptor passed in I<arg4> is not valid."
3560 msgstr ""
3561
3562 #.  The library interface was added in glibc 2.0.6
3563 #. type: Plain text
3564 #: build/C/man2/prctl.2:969
3565 msgid "The B<prctl>()  system call was introduced in Linux 2.1.57."
3566 msgstr "B<prctl>()  システムコールは Linux 2.1.57 で導入された。"
3567
3568 #. type: Plain text
3569 #: build/C/man2/prctl.2:976
3570 msgid ""
3571 "This call is Linux-specific.  IRIX has a B<prctl>()  system call (also "
3572 "introduced in Linux 2.1.44 as irix_prctl on the MIPS architecture), with "
3573 "prototype"
3574 msgstr ""
3575 "このコールは Linux 特有である。 IRIX には B<prctl>()  システム・コールがある"
3576 "が (MIPS アーキテクチャにおいて irix_prctl として Linux 2.1.44 で同様に導入さ"
3577 "れた)、 そのプロトタイプは"
3578
3579 #. type: Plain text
3580 #: build/C/man2/prctl.2:978
3581 msgid "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3582 msgstr "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3583
3584 #. type: Plain text
3585 #: build/C/man2/prctl.2:983
3586 msgid ""
3587 "and options to get the maximum number of processes per user, get the maximum "
3588 "number of processors the calling process can use, find out whether a "
3589 "specified process is currently blocked, get or set the maximum stack size, "
3590 "and so on."
3591 msgstr ""
3592 "である。ユーザー当りのプロセス最大数を取得するオプション、 プロセスの使用でき"
3593 "る最大プロッサー数を取得するオプション、 現在特定のプロセスが停止(block)させ"
3594 "られているかどうか調べるオプション、 スタックサイズの最大値の取得や設定を行な"
3595 "うオプションなどがある。"
3596
3597 #. type: Plain text
3598 #: build/C/man2/prctl.2:986
3599 msgid "B<signal>(2), B<core>(5)"
3600 msgstr "B<signal>(2), B<core>(5)"
3601
3602 #. type: TH
3603 #: build/C/man3/profil.3:28
3604 #, no-wrap
3605 msgid "PROFIL"
3606 msgstr "PROFIL"
3607
3608 #. type: Plain text
3609 #: build/C/man3/profil.3:31
3610 msgid "profil - execution time profile"
3611 msgstr "profil - 実行時間プロファイル (profile)"
3612
3613 #. type: Plain text
3614 #: build/C/man3/profil.3:34
3615 #, no-wrap
3616 msgid "B<#include E<lt>unistd.hE<gt>>\n"
3617 msgstr "B<#include E<lt>unistd.hE<gt>>\n"
3618
3619 #. type: Plain text
3620 #: build/C/man3/profil.3:37
3621 #, no-wrap
3622 msgid ""
3623 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3624 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3625 msgstr ""
3626 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3627 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3628
3629 #. type: Plain text
3630 #: build/C/man3/profil.3:46
3631 msgid ""
3632 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3633 msgstr ""
3634 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3635
3636 #. type: Plain text
3637 #: build/C/man3/profil.3:68
3638 msgid ""
3639 "This routine provides a means to find out in what areas your program spends "
3640 "most of its time.  The argument I<buf> points to I<bufsiz> bytes of core.  "
3641 "Every virtual 10 milliseconds, the user's program counter (PC)  is examined: "
3642 "I<offset> is subtracted and the result is multiplied by I<scale> and divided "
3643 "by 65536.  If the resulting value is less than I<bufsiz>, then the "
3644 "corresponding entry in I<buf> is incremented.  If I<buf> is NULL, profiling "
3645 "is disabled."
3646 msgstr ""
3647 "このルーティンはプログラムのどこの部分で時間を費やしているかを調べる 手段を提"
3648 "供する。引き数 I<buf> は I<bufsiz> バイトのメモリを指している。仮想の 10 ミリ"
3649 "秒ごとに、ユーザーの プログラム・カウンター (PC) が検査される: I<offset> が引"
3650 "かれ、その結果が I<scale> 倍され 65536 で割られる。 結果が I<bufsiz> より小さ"
3651 "い場合は I<buf> の対応するエントリがインクリメントされる。 I<buf> が NULL な"
3652 "らば、プロファイル (profile) は無効にされる。"
3653
3654 #. type: Plain text
3655 #: build/C/man3/profil.3:70
3656 msgid "Zero is always returned."
3657 msgstr "常に 0 が返される。"
3658
3659 #. type: Plain text
3660 #: build/C/man3/profil.3:72
3661 msgid "Similar to a call in SVr4 (but not POSIX.1-2001)."
3662 msgstr "SVr4 のコールに似ている (しかし POSIX.1-2001 ではない)。"
3663
3664 #. type: Plain text
3665 #: build/C/man3/profil.3:78
3666 msgid ""
3667 "B<profil>()  cannot be used on a program that also uses B<ITIMER_PROF> "
3668 "interval timers (see B<setitimer>(2))."
3669 msgstr ""
3670 "B<profil>()  は B<ITIMER_PROF> インターバル・タイマーも使用しているプログラム"
3671 "では使用できない (B<setitimer>(2)  参照)。"
3672
3673 #. type: Plain text
3674 #: build/C/man3/profil.3:81
3675 msgid ""
3676 "True kernel profiling provides more accurate results.  Libc 4.4 contained a "
3677 "kernel patch providing a system call profil."
3678 msgstr ""
3679 "本当のカーネル・プロファイルはより正確な結果を与える。 libc 4.4 にはシステム"
3680 "コール profil を提供するための カーネルパッチが含まれていた。"
3681
3682 #. type: Plain text
3683 #: build/C/man3/profil.3:86
3684 msgid "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3685 msgstr "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3686
3687 #. type: TH
3688 #: build/C/man3/psignal.3:30
3689 #, no-wrap
3690 msgid "PSIGNAL"
3691 msgstr "PSIGNAL"
3692
3693 #. type: TH
3694 #: build/C/man3/psignal.3:30
3695 #, no-wrap
3696 msgid "2010-10-06"
3697 msgstr "2010-10-06"
3698
3699 #. type: TH
3700 #: build/C/man3/psignal.3:30 build/C/man3/raise.3:29
3701 #: build/C/man7/sigevent.7:26
3702 #, no-wrap
3703 msgid "GNU"
3704 msgstr "GNU"
3705
3706 #. type: Plain text
3707 #: build/C/man3/psignal.3:33
3708 msgid "psignal, psiginfo - print signal message"
3709 msgstr "psignal, psiginfo - シグナルメッセージを表示"
3710
3711 #. type: Plain text
3712 #: build/C/man3/psignal.3:39
3713 #, no-wrap
3714 msgid ""
3715 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3716 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3717 msgstr ""
3718 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3719 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3720
3721 #. type: Plain text
3722 #: build/C/man3/psignal.3:41
3723 #, no-wrap
3724 msgid "B<extern const char *const >I<sys_siglist>B<[];>\n"
3725 msgstr "B<extern const char *const >I<sys_siglist>B<[];>\n"
3726
3727 #. type: Plain text
3728 #: build/C/man3/psignal.3:50
3729 msgid "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3730 msgstr "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3731
3732 #. type: Plain text
3733 #: build/C/man3/psignal.3:53
3734 msgid ""
3735 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3736 "200809L"
3737 msgstr ""
3738 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3739 "200809L"
3740
3741 #. type: Plain text
3742 #: build/C/man3/psignal.3:56
3743 msgid "I<sys_siglist>: _BSD_SOURCE"
3744 msgstr "I<sys_siglist>: _BSD_SOURCE"
3745
3746 #. type: Plain text
3747 #: build/C/man3/psignal.3:65
3748 msgid ""
3749 "The B<psignal>()  function displays a message on I<stderr> consisting of the "
3750 "string I<s>, a colon, a space, a string describing the signal number I<sig>, "
3751 "and a trailing newline.  If the string I<s> is NULL or empty, the colon and "
3752 "space are omitted.  If I<sig> is invalid, the message displayed will "
3753 "indicate an unknown signal."
3754 msgstr ""
3755 "B<psignal>() 関数は、文字列 I<s>、コロン、スペース、\n"
3756 "シグナル番号 I<sig> を説明する文字列、終端の改行から\n"
3757 "構成されるメッセージを I<stderr> に表示する。\n"
3758 "文字列 I<s> が NULL か空の場合、コロンとスペースは省略される。\n"
3759 "I<sig> が不正ならば、表示される メッセージは未知のシグナルを示す。"
3760
3761 #. type: Plain text
3762 #: build/C/man3/psignal.3:86
3763 msgid ""
3764 "The B<psiginfo>()  function is like B<psignal>(), except that it displays "
3765 "information about the signal described by I<pinfo>, which should point to a "
3766 "valid I<siginfo_t> structure.  As well as the signal description, B<psiginfo>"
3767 "()  displays information about the origin of the signal, and other "
3768 "information relevant to the signal (e.g., the relevant memory address for "
3769 "hardware-generated signals, the child process ID for B<SIGCHLD>, and the "
3770 "user ID and process ID of the sender, for signals set using B<kill>(2)  or "
3771 "B<sigqueue>(3))."
3772 msgstr ""
3773 "B<psiginfo>() 関数は B<psignal>() と同じだが、 I<pinfo> に書かれたシグナルの"
3774 "情報を表示する点が異なる。 I<pinfo> は有効な I<siginfo_t> 構造体を指している"
3775 "必要がある。 B<psiginfo>() は、 シグナルの説明だけでなく、 シグナルの送信元や"
3776 "そのシグナルに関連するその他の情報も表示する (例えば、ハードウェアが発生した"
3777 "シグナルの関連メモリアドレス、 B<SIGCHLD> の子プロセス ID、 I<kill>(2) や "
3778 "B<sigqueue>(3) を使って送信されたシグナルの送信元プロセスのユーザ ID とプロセ"
3779 "ス ID など)。"
3780
3781 #. type: Plain text
3782 #: build/C/man3/psignal.3:89
3783 msgid ""
3784 "The array I<sys_siglist> holds the signal description strings indexed by "
3785 "signal number."
3786 msgstr ""
3787 "配列 I<sys_siglist> はシグナルを説明する文字列を保持しており、 配列へのアクセ"
3788 "スにはシグナル番号を添え字として用いる事ができる。"
3789
3790 #. type: Plain text
3791 #: build/C/man3/psignal.3:95
3792 msgid "The B<psignal>()  and B<psiginfo>()  functions return no value."
3793 msgstr "関数 B<psignal>() と B<psiginfo>() は、値を返さない。"
3794
3795 #. type: Plain text
3796 #: build/C/man3/psignal.3:99
3797 msgid "The B<psiginfo>()  function was added to glibc in version 2.10."
3798 msgstr "B<psiginfo>() 関数は glibc バージョン 2.10 で追加された。"
3799
3800 #. type: Plain text
3801 #: build/C/man3/psignal.3:101
3802 msgid "POSIX.1-2008, 4.3BSD."
3803 msgstr "POSIX.1-2008, 4.3BSD."
3804
3805 #. type: Plain text
3806 #: build/C/man3/psignal.3:105
3807 msgid "In glibc versions up to 2.12, B<psiginfo>()  had the following bugs:"
3808 msgstr ""
3809 "バージョン 2.12 までの glibc では B<psiginfo>() には以下のバグがあった。"
3810
3811 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12107
3812 #.  Reportedly now fixed; check glibc 2.13
3813 #. type: Plain text
3814 #: build/C/man3/psignal.3:109
3815 msgid "In some circumstances, a trailing newline is not printed."
3816 msgstr "特定の状況で、末尾の改行が出力されない。"
3817
3818 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12108
3819 #.  Reportedly now fixed; check glibc 2.13
3820 #. type: Plain text
3821 #: build/C/man3/psignal.3:113
3822 msgid "Additional details are not displayed for real-time signals."
3823 msgstr "リアルタイムシグナルの場合に、追加の詳細情報が表示されない。"
3824
3825 #. type: Plain text
3826 #: build/C/man3/psignal.3:118
3827 msgid "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
3828 msgstr "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
3829
3830 #. type: TH
3831 #: build/C/man3/raise.3:29
3832 #, no-wrap
3833 msgid "RAISE"
3834 msgstr "RAISE"
3835
3836 #. type: TH
3837 #: build/C/man3/raise.3:29
3838 #, no-wrap
3839 msgid "2014-03-10"
3840 msgstr "2014-03-10"
3841
3842 #. type: Plain text
3843 #: build/C/man3/raise.3:32
3844 msgid "raise - send a signal to the caller"
3845 msgstr "raise - 呼び出し元にシグナルを送る"
3846
3847 #. type: Plain text
3848 #: build/C/man3/raise.3:37
3849 #, no-wrap
3850 msgid "B<int raise(int >I<sig>B<);>\n"
3851 msgstr "B<int raise(int >I<sig>B<);>\n"
3852
3853 #. type: Plain text
3854 #: build/C/man3/raise.3:43
3855 msgid ""
3856 "The B<raise>()  function sends a signal to the calling process or thread.  "
3857 "In a single-threaded program it is equivalent to"
3858 msgstr ""
3859 "B<raise>()  関数は、呼び出し元のプロセスもしくはスレッドにシグナルを送る。 シ"
3860 "ングルスレッドのプログラムでは、以下と等価である。"
3861
3862 #. type: Plain text
3863 #: build/C/man3/raise.3:47
3864 #, no-wrap
3865 msgid "kill(getpid(), sig);\n"
3866 msgstr "kill(getpid(), sig);\n"
3867
3868 #. type: Plain text
3869 #: build/C/man3/raise.3:51
3870 msgid "In a multithreaded program it is equivalent to"
3871 msgstr "マルチスレッドのプログラムでは、以下と等価である。"
3872
3873 #. type: Plain text
3874 #: build/C/man3/raise.3:55
3875 #, no-wrap
3876 msgid "pthread_kill(pthread_self(), sig);\n"
3877 msgstr "pthread_kill(pthread_self(), sig);\n"
3878
3879 #. type: Plain text
3880 #: build/C/man3/raise.3:61
3881 msgid ""
3882 "If the signal causes a handler to be called, B<raise>()  will return only "
3883 "after the signal handler has returned."
3884 msgstr ""
3885 "シグナルに起因してシグナル・ハンドラが呼び出される場合には、 B<raise>()  が返"
3886 "るのは必ずシグナル・ハンドラが返った後になる。"
3887
3888 #. type: Plain text
3889 #: build/C/man3/raise.3:64
3890 msgid "B<raise>()  returns 0 on success, and nonzero for failure."
3891 msgstr "成功した場合は 0 を、失敗した場合は 0 以外の値を返す。"
3892
3893 #. type: Plain text
3894 #: build/C/man3/raise.3:69
3895 msgid "The B<raise>()  function is thread-safe."
3896 msgstr "B<raise>() 関数はスレッドセーフである。"
3897
3898 #. type: Plain text
3899 #: build/C/man3/raise.3:71 build/C/man2/signal.2:112
3900 msgid "C89, C99, POSIX.1-2001."
3901 msgstr "C89, C99, POSIX.1-2001."
3902
3903 #.  2.3.2 used the obsolete tkill(), if available.
3904 #. type: Plain text
3905 #: build/C/man3/raise.3:82
3906 msgid ""
3907 "Since version 2.3.3, glibc implements B<raise>()  by calling B<tgkill>(2), "
3908 "if the kernel supports that system call.  Older glibc versions implemented "
3909 "B<raise>()  using B<kill>(2)."
3910 msgstr ""
3911 "glibc バージョン 2.3.3 以降では、カーネルが B<tgkill>(2) システムコール\n"
3912 "をサポートしている場合はB<raise>() は B<tgkill>(2) を使って実装されて\n"
3913 "いる。古いバージョンの glibc では、B<raise>() は B<kill>(2) を使って\n"
3914 "実装されている。"
3915
3916 #. type: Plain text
3917 #: build/C/man3/raise.3:89
3918 msgid ""
3919 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
3920 "B<signal>(7)"
3921 msgstr ""
3922 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
3923 "B<signal>(7)"
3924
3925 #. type: TH
3926 #: build/C/man2/restart_syscall.2:33
3927 #, no-wrap
3928 msgid "RESTART_SYSCALL"
3929 msgstr ""
3930
3931 #. type: TH
3932 #: build/C/man2/restart_syscall.2:33
3933 #, no-wrap
3934 msgid "2014-02-11"
3935 msgstr "2014-02-11"
3936
3937 #. type: Plain text
3938 #: build/C/man2/restart_syscall.2:36
3939 msgid ""
3940 "restart_syscall - restart a system call after interruption by a stop signal"
3941 msgstr ""
3942 "restart_syscall - 一時停止シグナルによる割り込み後にシステムコールを再開する"
3943
3944 #. type: Plain text
3945 #: build/C/man2/restart_syscall.2:38
3946 msgid "B<int restart_syscall(void);>"
3947 msgstr "B<int restart_syscall(void);>"
3948
3949 #. type: Plain text
3950 #: build/C/man2/restart_syscall.2:41
3951 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
3952 msgstr ""
3953 "I<注>: このシステムコールには、glibc のラッパー関数はない。「注意」の節を参"
3954 "照。"
3955
3956 #. type: Plain text
3957 #: build/C/man2/restart_syscall.2:53
3958 msgid ""
3959 "The B<restart_syscall>()  system call is used to restart certain system "
3960 "calls after a process that was stopped by a signal (e.g., B<SIGSTOP> or "
3961 "B<SIGTSTP>)  is later resumed after receiving a B<SIGCONT> signal.  This "
3962 "system call is designed only for internal use by the kernel."
3963 msgstr ""
3964
3965 #.  These system calls correspond to the special internal errno value
3966 #.  ERESTART_RESTARTBLOCK. Each of the system calls has a "restart"
3967 #.  helper function that is invoked by restart_syscall().
3968 #. type: Plain text
3969 #: build/C/man2/restart_syscall.2:84
3970 msgid ""
3971 "B<restart_syscall>()  is used for restarting only those system calls that, "
3972 "when restarted, should adjust their time-related parameters\\(emnamely "
3973 "B<poll>(2)  (since Linux 2.6.24), B<nanosleep>(2)  (since Linux 2.6), "
3974 "B<clock_nanosleep>(2)  (since Linux 2.6), and B<futex>(2), when employed "
3975 "with the B<FUTEX_WAIT> (since Linux 2.6.22)  and B<FUTEX_WAIT_BITSET> (since "
3976 "Linux 2.6.31)  operations.  B<restart_syscall>()  restarts the interrupted "
3977 "system call with a time argument that is suitably adjusted to account for "
3978 "the time that has already elapsed (including the time where the process was "
3979 "stopped by a signal).  Without the B<restart_syscall>()  mechanism, "
3980 "restarting these system calls would not correctly deduce the already elapsed "
3981 "time when the process continued execution."
3982 msgstr ""
3983
3984 #. type: Plain text
3985 #: build/C/man2/restart_syscall.2:88
3986 msgid ""
3987 "The return value of B<restart_syscall>()  is the return value of whatever "
3988 "system call is being restarted."
3989 msgstr ""
3990
3991 #. type: Plain text
3992 #: build/C/man2/restart_syscall.2:92
3993 msgid ""
3994 "I<errno> is set as per the errors for whatever system call is being "
3995 "restarted by B<restart_syscall>()."
3996 msgstr ""
3997
3998 #. type: Plain text
3999 #: build/C/man2/restart_syscall.2:96
4000 msgid "The B<restart_syscall>()  system call is present since Linux 2.6."
4001 msgstr "B<restart_syscall>() システムコールは Linux 2.6 以降に存在する。"
4002
4003 #. type: Plain text
4004 #: build/C/man2/restart_syscall.2:98
4005 msgid "This system call is Linux-specific."
4006 msgstr "このシステムコールは Linux 固有である。"
4007
4008 #. type: Plain text
4009 #: build/C/man2/restart_syscall.2:102
4010 msgid ""
4011 "There is no glibc wrapper for this system call, because it is intended for "
4012 "use only by the kernel and should never be called by applications."
4013 msgstr ""
4014
4015 #
4016 #.  FIXME
4017 #.  There is one oddness in the implementation though, with respect to
4018 #.  nanosleep() (and probably also clock_nanosleep()). The scenario
4019 #.  is as follows:
4020 #.     1. Start a nanosleep() for (say) 30 seconds,
4021 #.     2. Stop the process with (say) SIGTSTP (^Z).
4022 #.     3. Resume the process with SIGCONT,
4023 #.     4. Upon return, the 'rem' argument of nanosleep() will contain the
4024 #.        remaining unslept time **at the time when SIGTSTP was delivered**.
4025 #.  The behavior at point 4 is odd, but doesn't violate the standards, which
4026 #.  specify the treatment of 'rem' only when the system call returns with
4027 #.  the error EINTR (i.e., the call was interrupted by a signal handler).
4028 #. type: Plain text
4029 #: build/C/man2/restart_syscall.2:123
4030 msgid ""
4031 "From user space, the operation of B<restart_syscall>(2)  is largely "
4032 "invisible: to the process that made the system call that is restarted, it "
4033 "appears as though that system call executed and returned in the usual "
4034 "fashion."
4035 msgstr ""
4036
4037 #.  FIXME select(2) should probably get the restart_syscall() treatment:
4038 #.      If a select() call is suspended by stop-sig+SIGCONT, the time
4039 #.      spent suspended is *not* deducted when the select() is restarted.
4040 #.  FIXME: check whether recvmmsg() handles stop-sig+SIGCONT properly.
4041 #. type: Plain text
4042 #: build/C/man2/restart_syscall.2:131
4043 msgid "B<sigaction>(2), B<sigreturn>(2), B<signal>(7)"
4044 msgstr "B<sigaction>(2), B<sigreturn>(2), B<signal>(7)"
4045
4046 #. type: TH
4047 #: build/C/man2/rt_sigqueueinfo.2:25
4048 #, no-wrap
4049 msgid "RT_SIGQUEUEINFO"
4050 msgstr "RT_SIGQUEUEINFO"
4051
4052 #. type: TH
4053 #: build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/tkill.2:29
4054 #, no-wrap
4055 msgid "2012-07-13"
4056 msgstr "2012-07-13"
4057
4058 #. type: Plain text
4059 #: build/C/man2/rt_sigqueueinfo.2:28
4060 msgid "rt_sigqueueinfo, rt_tgsigqueueinfo - queue a signal and data"
4061 msgstr ""
4062
4063 #. type: Plain text
4064 #: build/C/man2/rt_sigqueueinfo.2:31
4065 #, no-wrap
4066 msgid "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
4067 msgstr "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
4068
4069 #. type: Plain text
4070 #: build/C/man2/rt_sigqueueinfo.2:34
4071 #, no-wrap
4072 msgid ""
4073 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
4074 "B<                      siginfo_t *>I<uinfo>B<);>\n"
4075 msgstr ""
4076 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
4077 "B<                      siginfo_t *>I<uinfo>B<);>\n"
4078
4079 #. type: Plain text
4080 #: build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/sgetmask.2:36
4081 #: build/C/man2/tkill.2:41
4082 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
4083 msgstr ""
4084 "I<注>: これらのシステムコールには、glibc のラッパー関数はない。「注意」の節を"
4085 "参照。"
4086
4087 #. type: Plain text
4088 #: build/C/man2/rt_sigqueueinfo.2:50
4089 msgid ""
4090 "The B<rt_sigqueueinfo>()  and B<rt_tgsigqueueinfo>()  system calls are the "
4091 "low-level interfaces used to send a signal plus data to a process or "
4092 "thread.  The receiver of the signal can obtain the accompanying data by "
4093 "establishing a signal handler with the B<sigaction>(2)  B<SA_SIGINFO> flag."
4094 msgstr ""
4095
4096 #. type: Plain text
4097 #: build/C/man2/rt_sigqueueinfo.2:56
4098 msgid ""
4099 "These system calls are not intended for direct application use; they are "
4100 "provided to allow the implementation of B<sigqueue>(3)  and "
4101 "B<pthread_sigqueue>(3)."
4102 msgstr ""
4103
4104 #. type: Plain text
4105 #: build/C/man2/rt_sigqueueinfo.2:68
4106 msgid ""
4107 "The B<rt_sigqueueinfo>()  system call sends the signal I<sig> to the thread "
4108 "group with the ID I<tgid>.  (The term \"thread group\" is synonymous with "
4109 "\"process\", and I<tid> corresponds to the traditional UNIX process ID.)  "
4110 "The signal will be delivered to an arbitrary member of the thread group (i."
4111 "e., one of the threads that is not currently blocking the signal)."
4112 msgstr ""
4113
4114 #. type: Plain text
4115 #: build/C/man2/rt_sigqueueinfo.2:79
4116 msgid ""
4117 "The I<uinfo> argument specifies the data to accompany the signal.  This "
4118 "argument is a pointer to a structure of type I<siginfo_t>, described in "
4119 "B<sigaction>(2)  (and defined by including I<E<lt>sigaction.hE<gt>>).  The "
4120 "caller should set the following fields in this structure:"
4121 msgstr ""
4122
4123 #. type: TP
4124 #: build/C/man2/rt_sigqueueinfo.2:79 build/C/man7/sigevent.7:88
4125 #: build/C/man2/wait.2:316
4126 #, no-wrap
4127 msgid "I<si_code>"
4128 msgstr "I<si_code>"
4129
4130 #.  tkill(2) or
4131 #. type: Plain text
4132 #: build/C/man2/rt_sigqueueinfo.2:95
4133 msgid ""
4134 "This must be one of the B<SI_*> codes in the Linux kernel source file "
4135 "I<include/asm-generic/siginfo.h>, with the restriction that the code must be "
4136 "negative (i.e., cannot be B<SI_USER>, which is used by the kernel to "
4137 "indicate a signal sent by B<kill>(2))  and cannot (since Linux 2.6.39) be "
4138 "B<SI_TKILL> (which is used by the kernel to indicate a signal sent using "
4139 "B<tgkill>(2))."
4140 msgstr ""
4141
4142 #. type: TP
4143 #: build/C/man2/rt_sigqueueinfo.2:95 build/C/man2/wait.2:295
4144 #, no-wrap
4145 msgid "I<si_pid>"
4146 msgstr "I<si_pid>"
4147
4148 #. type: Plain text
4149 #: build/C/man2/rt_sigqueueinfo.2:99
4150 msgid ""
4151 "This should be set to a process ID, typically the process ID of the sender."
4152 msgstr ""
4153
4154 #. type: TP
4155 #: build/C/man2/rt_sigqueueinfo.2:99 build/C/man2/wait.2:298
4156 #, no-wrap
4157 msgid "I<si_uid>"
4158 msgstr "I<si_uid>"
4159
4160 #. type: Plain text
4161 #: build/C/man2/rt_sigqueueinfo.2:103
4162 msgid ""
4163 "This should be set to a user ID, typically the real user ID of the sender."
4164 msgstr ""
4165
4166 #. type: TP
4167 #: build/C/man2/rt_sigqueueinfo.2:103 build/C/man7/sigevent.7:96
4168 #, no-wrap
4169 msgid "I<si_value>"
4170 msgstr "I<si_value>"
4171
4172 #. type: Plain text
4173 #: build/C/man2/rt_sigqueueinfo.2:110
4174 msgid ""
4175 "This field contains the user data to accompany the signal.  For more "
4176 "information, see the description of the last (I<union sigval>)  argument of "
4177 "B<sigqueue>(3)."
4178 msgstr ""
4179
4180 #. type: Plain text
4181 #: build/C/man2/rt_sigqueueinfo.2:117
4182 msgid ""
4183 "Internally, the kernel sets the I<si_signo> field to the value specified in "
4184 "I<sig>, so that the receiver of the signal can also obtain the signal number "
4185 "via that field."
4186 msgstr ""
4187
4188 #. type: Plain text
4189 #: build/C/man2/rt_sigqueueinfo.2:129
4190 msgid ""
4191 "The B<rt_tgsigqueueinfo>()  system call is like B<rt_sigqueueinfo>(), but "
4192 "sends the signal and data to the single thread specified by the combination "
4193 "of I<tgid>, a thread group ID, and I<tid>, a thread in that thread group."
4194 msgstr ""
4195
4196 #. type: Plain text
4197 #: build/C/man2/rt_sigqueueinfo.2:134
4198 msgid ""
4199 "On success, these system calls return 0.  On error, they return -1 and "
4200 "I<errno> is set to indicate the error."
4201 msgstr ""
4202
4203 #. type: TP
4204 #: build/C/man2/rt_sigqueueinfo.2:135 build/C/man3/sigqueue.3:92
4205 #: build/C/man2/sigwaitinfo.2:115 build/C/man2/timer_create.2:176
4206 #, no-wrap
4207 msgid "B<EAGAIN>"
4208 msgstr "B<EAGAIN>"
4209
4210 #. type: Plain text
4211 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man3/sigqueue.3:98
4212 msgid ""
4213 "The limit of signals which may be queued has been reached.  (See B<signal>"
4214 "(7)  for further information.)"
4215 msgstr ""
4216 "待ち行列に入れられるシグナルの最大数に達した (より詳しい情報は B<signal>(7)  "
4217 "を参照すること)。"
4218
4219 #. type: Plain text
4220 #: build/C/man2/rt_sigqueueinfo.2:148
4221 msgid "I<sig>, I<tgid>, or I<tid> was invalid."
4222 msgstr ""
4223
4224 #. type: Plain text
4225 #: build/C/man2/rt_sigqueueinfo.2:156
4226 msgid ""
4227 "The caller does not have permission to send the signal to the target.  For "
4228 "the required permissions, see B<kill>(2).  Or: I<uinfo-E<gt>si_code> is "
4229 "invalid."
4230 msgstr ""
4231
4232 #. type: Plain text
4233 #: build/C/man2/rt_sigqueueinfo.2:162
4234 msgid "B<rt_sigqueueinfo>(): No thread group matching I<tgid> was found."
4235 msgstr ""
4236
4237 #. type: Plain text
4238 #: build/C/man2/rt_sigqueueinfo.2:169
4239 msgid "B<rt_tgsigqueinfo>(): No thread matching I<tgid> and I<tid> was found."
4240 msgstr ""
4241
4242 #. type: Plain text
4243 #: build/C/man2/rt_sigqueueinfo.2:176
4244 msgid ""
4245 "The B<rt_sigqueueinfo>()  system call was added to Linux in version 2.2.  "
4246 "The B<rt_tgsigqueueinfo>()  system call was added to Linux in version 2.6.31."
4247 msgstr ""
4248
4249 #. type: Plain text
4250 #: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/sgetmask.2:68
4251 #: build/C/man2/timerfd_create.2:373
4252 msgid "These system calls are Linux-specific."
4253 msgstr "これらのシステムコールは Linux 固有である。"
4254
4255 #. type: Plain text
4256 #: build/C/man2/rt_sigqueueinfo.2:183
4257 msgid ""
4258 "Since these system calls are not intended for application use, there are no "
4259 "glibc wrapper functions; use B<syscall>(2)  in the unlikely case that you "
4260 "want to call them directly."
4261 msgstr ""
4262 "これらのシステムコールはアプリケーションでの使用を目的として用意されたわけで"
4263 "はないので、 glibc のラッパー関数は存在しない。おそらくないと思うが、このシス"
4264 "テムコールを直接呼び出したい場合は B<syscall>(2) を使うこと。"
4265
4266 #. type: Plain text
4267 #: build/C/man2/rt_sigqueueinfo.2:188
4268 msgid ""
4269 "As with B<kill>(2), the null signal (0) can be used to check if the "
4270 "specified process or thread exists."
4271 msgstr ""
4272
4273 #. type: Plain text
4274 #: build/C/man2/rt_sigqueueinfo.2:196
4275 msgid ""
4276 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4277 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4278 msgstr ""
4279 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4280 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4281
4282 #. type: TH
4283 #: build/C/man2/s390_runtime_instr.2:25
4284 #, no-wrap
4285 msgid "S390_RUNTIME_INSTR"
4286 msgstr ""
4287
4288 #. type: TH
4289 #: build/C/man2/s390_runtime_instr.2:25
4290 #, no-wrap
4291 msgid "2012-12-17"
4292 msgstr "2012-12-17"
4293
4294 #. type: Plain text
4295 #: build/C/man2/s390_runtime_instr.2:28
4296 msgid "s390_runtime_instr - enable/disable s390 CPU run-time instrumentation"
4297 msgstr ""
4298
4299 #. type: Plain text
4300 #: build/C/man2/s390_runtime_instr.2:31
4301 #, no-wrap
4302 msgid "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4303 msgstr "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4304
4305 #. type: Plain text
4306 #: build/C/man2/s390_runtime_instr.2:33
4307 #, no-wrap
4308 msgid "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4309 msgstr "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4310
4311 #. type: Plain text
4312 #: build/C/man2/s390_runtime_instr.2:39
4313 msgid ""
4314 "The B<s390_runtime_instr>()  system call starts or stops CPU run-time "
4315 "instrumentation for the calling thread."
4316 msgstr ""
4317
4318 #. type: Plain text
4319 #: build/C/man2/s390_runtime_instr.2:47
4320 msgid ""
4321 "The I<command> argument controls whether run-time instrumentation is started "
4322 "(B<S390_RUNTIME_INSTR_START>, 1) or stopped (B<S390_RUNTIME_INSTR_STOP>, 2) "
4323 "for the calling thread."
4324 msgstr ""
4325
4326 #. type: Plain text
4327 #: build/C/man2/s390_runtime_instr.2:54
4328 msgid ""
4329 "The I<signum> argument specifies the number of a real-time signal.  The real-"
4330 "time signal is sent to the thread if the run-time instrumentation buffer is "
4331 "full or if the run-time-instrumentation-halted interrupt occurred."
4332 msgstr ""
4333
4334 #. type: Plain text
4335 #: build/C/man2/s390_runtime_instr.2:65
4336 msgid ""
4337 "On success, B<s390_runtime_instr>()  returns 0 and enables the thread for "
4338 "run-time instrumentation by assigning the thread a default run-time "
4339 "instrumentation control block.  The caller can then read and modify the "
4340 "control block and start the run-time instrumentation.  On error, -1 is "
4341 "returned and I<errno> is set to one of the error codes listed below."
4342 msgstr ""
4343
4344 #. type: Plain text
4345 #: build/C/man2/s390_runtime_instr.2:73
4346 msgid ""
4347 "The value specified in I<command> is not a valid command or the value "
4348 "specified in I<signum> is not a real-time signal number."
4349 msgstr ""
4350
4351 #. type: Plain text
4352 #: build/C/man2/s390_runtime_instr.2:76
4353 msgid ""
4354 "Allocating memory for the run-time instrumentation control block failed."
4355 msgstr ""
4356
4357 #. type: TP
4358 #: build/C/man2/s390_runtime_instr.2:76
4359 #, no-wrap
4360 msgid "B<EOPNOTSUPP>"
4361 msgstr ""
4362
4363 #. type: Plain text
4364 #: build/C/man2/s390_runtime_instr.2:79
4365 msgid "The run-time instrumentation facility is not available."
4366 msgstr ""
4367
4368 #. type: Plain text
4369 #: build/C/man2/s390_runtime_instr.2:81
4370 msgid "This system call is available since Linux 3.7."
4371 msgstr "このシステムコールは Linux 3.7 で初めて登場した。"
4372
4373 #. type: Plain text
4374 #: build/C/man2/s390_runtime_instr.2:84
4375 msgid ""
4376 "This Linux-specific system call is available only on the s390 architecture.  "
4377 "The run-time instrumentation facility is available beginning with System z "
4378 "EC12."
4379 msgstr ""
4380
4381 #. type: Plain text
4382 #: build/C/man2/s390_runtime_instr.2:88
4383 msgid ""
4384 "Glibc does not provide a wrapper for this system call, use B<syscall>(2)  to "
4385 "call it."
4386 msgstr ""
4387 "glibc はこのシステムコールに対するラッパー関数を提供していない。 B<syscall>"
4388 "(2) を使用すること。"
4389
4390 #. type: Plain text
4391 #: build/C/man2/s390_runtime_instr.2:91
4392 msgid "B<syscall>(2), B<signal>(7)"
4393 msgstr "B<syscall>(2), B<signal>(7)"
4394
4395 #. type: TH
4396 #: build/C/man2/sgetmask.2:26
4397 #, no-wrap
4398 msgid "SGETMASK"
4399 msgstr "SGETMASK"
4400
4401 #. type: TH
4402 #: build/C/man2/sgetmask.2:26
4403 #, no-wrap
4404 msgid "2014-02-25"
4405 msgstr "2014-02-25"
4406
4407 #. type: Plain text
4408 #: build/C/man2/sgetmask.2:29
4409 msgid "sgetmask, ssetmask - manipulation of signal mask (obsolete)"
4410 msgstr "sgetmask, ssetmask - シグナルマスクの操作 (廃止予定)"
4411
4412 #. type: Plain text
4413 #: build/C/man2/sgetmask.2:31
4414 msgid "B<long sgetmask(void);>"
4415 msgstr "B<long sgetmask(void);>"
4416
4417 #. type: Plain text
4418 #: build/C/man2/sgetmask.2:33
4419 msgid "B<long ssetmask(long >I<newmask>B<);>"
4420 msgstr "B<long ssetmask(long >I<newmask>B<);>"
4421
4422 #. type: Plain text
4423 #: build/C/man2/sgetmask.2:42
4424 msgid ""
4425 "These system calls are obsolete.  I<Do not use them>; use B<sigprocmask>(2)  "
4426 "instead."
4427 msgstr ""
4428 "これらのシステムコールは廃止予定であり、 「使用しないこと」。 代わりに "
4429 "B<sigprocmask>(2)  を使用すること。"
4430
4431 #. type: Plain text
4432 #: build/C/man2/sgetmask.2:45
4433 msgid "B<sgetmask>()  returns the signal mask of the calling process."
4434 msgstr "B<sgetmask>()  は、呼び出し元プロセスのシグナルマスクを返す。"
4435
4436 #. type: Plain text
4437 #: build/C/man2/sgetmask.2:50
4438 msgid ""
4439 "B<ssetmask>()  sets the signal mask of the calling process to the value "
4440 "given in I<newmask>.  The previous signal mask is returned."
4441 msgstr ""
4442 "B<ssetmask>()  は、呼び出し元プロセスのシグナルマスクを I<newmask> で指定され"
4443 "た値に設定し、変更前のシグナルマスクを返す。"
4444
4445 #. type: Plain text
4446 #: build/C/man2/sgetmask.2:59
4447 msgid ""
4448 "The signal masks dealt with by these two system calls are plain bit masks "
4449 "(unlike the I<sigset_t> used by B<sigprocmask>(2)); use B<sigmask>(3)  to "
4450 "create and inspect these masks."
4451 msgstr ""
4452 "これら二つのシステムコールが扱うシグナルマスクは、 単純なビットマスクである "
4453 "(この点が B<sigprocmask>(2)  で使用される I<sigset_t> と異なる)。 これらのマ"
4454 "スクを作成したり検査するには B<sigmask>(3)  を使用すること。"
4455
4456 #. type: Plain text
4457 #: build/C/man2/sgetmask.2:64
4458 msgid ""
4459 "B<sgetmask>()  always successfully returns the signal mask.  B<ssetmask>()  "
4460 "always succeeds, and returns the previous signal mask."
4461 msgstr ""
4462 "B<sgetmask>()  は常に成功し、シグナルマスクを返す。 B<ssetmask>()  は常に成功"
4463 "し、直前のシグナルマスクを返す。"
4464
4465 #. type: Plain text
4466 #: build/C/man2/sgetmask.2:66
4467 msgid "These system calls always succeed."
4468 msgstr "これらのシステムコールは常に成功する。"
4469
4470 #. type: Plain text
4471 #: build/C/man2/sgetmask.2:72
4472 msgid ""
4473 "Glibc does not provide wrappers for these obsolete system calls; in the "
4474 "unlikely event that you want to call them, use B<syscall>(2)."
4475 msgstr ""
4476 "glibc はこれらの古いシステムコールに対するラッパー関数を提供していない。\n"
4477 "あまりないと思うが、これらを呼び出したい場合には B<syscall>(2) を使うこと。"
4478
4479 #. type: Plain text
4480 #: build/C/man2/sgetmask.2:75
4481 msgid ""
4482 "These system calls are unaware of signal numbers greater than 31 (i.e., real-"
4483 "time signals)."
4484 msgstr ""
4485 "これらのシステムコールは、 31 より大きいシグナル番号 (つまり、リアルタイムシ"
4486 "グナル) を扱えない。"
4487
4488 #. type: Plain text
4489 #: build/C/man2/sgetmask.2:77
4490 msgid "These system calls do not exist on x86-64."
4491 msgstr "これらのシステムコールは x86-64 には存在しない。"
4492
4493 #. type: Plain text
4494 #: build/C/man2/sgetmask.2:82
4495 msgid "It is not possible to block B<SIGSTOP> or B<SIGKILL>."
4496 msgstr "B<SIGSTOP> や B<SIGKILL> をブロックすることはできない。"
4497
4498 #. type: Plain text
4499 #: build/C/man2/sgetmask.2:85
4500 msgid "B<sigprocmask>(2), B<signal>(7)"
4501 msgstr "B<sigprocmask>(2), B<signal>(7)"
4502
4503 #. type: TH
4504 #: build/C/man2/sigaction.2:47
4505 #, no-wrap
4506 msgid "SIGACTION"
4507 msgstr "SIGACTION"
4508
4509 #. type: TH
4510 #: build/C/man2/sigaction.2:47 build/C/man7/signal.7:46
4511 #: build/C/man2/sigreturn.2:29
4512 #, no-wrap
4513 msgid "2013-07-30"
4514 msgstr "2013-07-30"
4515
4516 #. type: Plain text
4517 #: build/C/man2/sigaction.2:50
4518 msgid "sigaction - examine and change a signal action"
4519 msgstr "sigaction - シグナルの動作の確認と変更"
4520
4521 #. type: Plain text
4522 #: build/C/man2/sigaction.2:56
4523 #, no-wrap
4524 msgid ""
4525 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4526 "B<              struct sigaction *>I<oldact>B<);>\n"
4527 msgstr ""
4528 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4529 "B<              struct sigaction *>I<oldact>B<);>\n"
4530
4531 #. type: Plain text
4532 #: build/C/man2/sigaction.2:66
4533 msgid ""
4534 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4535 "_POSIX_SOURCE"
4536 msgstr ""
4537 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4538 "_POSIX_SOURCE"
4539
4540 #. type: Plain text
4541 #: build/C/man2/sigaction.2:69
4542 msgid "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4543 msgstr "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4544
4545 #. type: Plain text
4546 #: build/C/man2/sigaction.2:78
4547 msgid ""
4548 "The B<sigaction>()  system call is used to change the action taken by a "
4549 "process on receipt of a specific signal.  (See B<signal>(7)  for an overview "
4550 "of signals.)"
4551 msgstr ""
4552 "B<sigaction>()  システムコールは、特定のシグナルを受信した際の プロセスの動作"
4553 "を変更するのに使用される (シグナルの概要については B<signal>(7)  を参照)。"
4554
4555 #. type: Plain text
4556 #: build/C/man2/sigaction.2:84
4557 msgid ""
4558 "I<signum> specifies the signal and can be any valid signal except B<SIGKILL> "
4559 "and B<SIGSTOP>."
4560 msgstr ""
4561 "I<signum> には、 B<SIGKILL> と B<SIGSTOP> 以外の有効なシグナルをどれでも指定"
4562 "できる。"
4563
4564 #. type: Plain text
4565 #: build/C/man2/sigaction.2:95
4566 msgid ""
4567 "If I<act> is non-NULL, the new action for signal I<signum> is installed from "
4568 "I<act>.  If I<oldact> is non-NULL, the previous action is saved in I<oldact>."
4569 msgstr ""
4570 "I<act> が NULL 以外であれば、シグナル I<signum> の新しい動作 (action) として "
4571 "I<act> が設定される。 I<oldact> が NULL でなければ、今までの動作が I<oldact> "
4572 "に格納される。"
4573
4574 #. type: Plain text
4575 #: build/C/man2/sigaction.2:99
4576 msgid "The I<sigaction> structure is defined as something like:"
4577 msgstr "I<sigaction> 構造体は以下のような感じに定義される。"
4578
4579 #. type: Plain text
4580 #: build/C/man2/sigaction.2:109
4581 #, no-wrap
4582 msgid ""
4583 "struct sigaction {\n"
4584 "    void     (*sa_handler)(int);\n"
4585 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4586 "    sigset_t   sa_mask;\n"
4587 "    int        sa_flags;\n"
4588 "    void     (*sa_restorer)(void);\n"
4589 "};\n"
4590 msgstr ""
4591 "struct sigaction {\n"
4592 "    void     (*sa_handler)(int);\n"
4593 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4594 "    sigset_t   sa_mask;\n"
4595 "    int        sa_flags;\n"
4596 "    void     (*sa_restorer)(void);\n"
4597 "};\n"
4598
4599 #. type: Plain text
4600 #: build/C/man2/sigaction.2:116
4601 msgid ""
4602 "On some architectures a union is involved: do not assign to both "
4603 "I<sa_handler> and I<sa_sigaction>."
4604 msgstr ""
4605 "アーキテクチャによっては共用体 (union) が用いられており、その場合には "
4606 "I<sa_handler> と I<sa_sigaction> の両方を同時に割り当てることはできない。"
4607
4608 #. type: Plain text
4609 #: build/C/man2/sigaction.2:123
4610 msgid ""
4611 "The I<sa_restorer> element is obsolete and should not be used.  POSIX does "
4612 "not specify a I<sa_restorer> element."
4613 msgstr ""
4614 "I<sa_restorer> 要素は廃止予定であり使用すべきではない。 POSIX には "
4615 "I<sa_restorer> 要素に関する規定はない。"
4616
4617 #. type: Plain text
4618 #: build/C/man2/sigaction.2:133
4619 msgid ""
4620 "I<sa_handler> specifies the action to be associated with I<signum> and may "
4621 "be B<SIG_DFL> for the default action, B<SIG_IGN> to ignore this signal, or a "
4622 "pointer to a signal handling function.  This function receives the signal "
4623 "number as its only argument."
4624 msgstr ""
4625 "I<sa_handler> は I<signum> に対応する動作を指定するもので、 デフォルトの動作"
4626 "を行う B<SIG_DFL>、 そのシグナルを無視する B<SIG_IGN>、 シグナルハンドラ関数"
4627 "へのポインタが設定できる。 シグナルハンドラ関数の引き数は一つであり、シグナル"
4628 "番号が引き数として 渡される。"
4629
4630 #. type: Plain text
4631 #: build/C/man2/sigaction.2:155
4632 msgid ""
4633 "If B<SA_SIGINFO> is specified in I<sa_flags>, then I<sa_sigaction> (instead "
4634 "of I<sa_handler>)  specifies the signal-handling function for I<signum>.  "
4635 "This function receives the signal number as its first argument, a pointer to "
4636 "a I<siginfo_t> as its second argument and a pointer to a I<ucontext_t> (cast "
4637 "to I<void\\ *>) as its third argument.  (Commonly, the handler function "
4638 "doesn't make any use of the third argument.  See B<getcontext>(3)  for "
4639 "further information about I<ucontext_t>.)"
4640 msgstr ""
4641 "I<sa_flags> に B<SA_SIGINFO> が指定された場合、 (I<sa_handler> ではなく)\n"
4642 "I<sa_sigaction> により I<signum> に対応するシグナルハンドラ関数が指定さ\n"
4643 "れる。指定される関数は、最初の引き数としてシグナル番号を、二番目の引き\n"
4644 "数として I<siginfo_t> へのポインタを、三番目の引き数として (I<void\\ *>\n"
4645 "にキャストした) I<ucontext_t> へのポインタを受けとる。 (一般的には、\n"
4646 "ハンドラ関数の三番目の引き数が使用されない。I<ucontext_t> についての\n"
4647 "詳しい情報は B<getcontext>(3) を参照。)"
4648
4649 #. type: Plain text
4650 #: build/C/man2/sigaction.2:165
4651 msgid ""
4652 "I<sa_mask> specifies a mask of signals which should be blocked (i.e., added "
4653 "to the signal mask of the thread in which the signal handler is invoked)  "
4654 "during execution of the signal handler.  In addition, the signal which "
4655 "triggered the handler will be blocked, unless the B<SA_NODEFER> flag is used."
4656 msgstr ""
4657 "I<sa_mask> は、シグナル・ハンドラ実行中に禁止 (block) すべきシグナルのマスク"
4658 "を指定する (ハンドラ実行中のシグナルの禁止は、シグナル・ハンドラが起動された"
4659 "スレッド のシグナルのマスクに追加することで行われる)。 さらに、 "
4660 "B<SA_NODEFER> フラグが指定されていない場合は、ハンドラを起動するきっかけとな"
4661 "る シグナルにも I<sa_mask> が適用される。"
4662
4663 #. type: Plain text
4664 #: build/C/man2/sigaction.2:169
4665 msgid ""
4666 "I<sa_flags> specifies a set of flags which modify the behavior of the "
4667 "signal.  It is formed by the bitwise OR of zero or more of the following:"
4668 msgstr ""
4669 "I<sa_flags> はシグナル・ハンドラの動作を変更するためのフラグの集合を指定す"
4670 "る。 I<sa_flags> には、以下に示すフラグの (0 個以上の) 論理和をとったものを指"
4671 "定する。"
4672
4673 #. type: TP
4674 #: build/C/man2/sigaction.2:170
4675 #, no-wrap
4676 msgid "B<SA_NOCLDSTOP>"
4677 msgstr "B<SA_NOCLDSTOP>"
4678
4679 #. type: Plain text
4680 #: build/C/man2/sigaction.2:187
4681 msgid ""
4682 "If I<signum> is B<SIGCHLD>, do not receive notification when child processes "
4683 "stop (i.e., when they receive one of B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, or "
4684 "B<SIGTTOU>)  or resume (i.e., they receive B<SIGCONT>)  (see B<wait>(2)).  "
4685 "This flag is meaningful only when establishing a handler for B<SIGCHLD>."
4686 msgstr ""
4687 "I<signum> が B<SIGCHLD> の場合、 子プロセスが停止したり (子プロセスが "
4688 "B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, B<SIGTTOU> を受けたとき) 再開したり (子プ"
4689 "ロセスが B<SIGCONT> を受けたとき) したときに B<SIGCHLD> の通知を受けない。 こ"
4690 "のフラグは、 B<SIGCHLD> に対してハンドラを設定する際にのみ意味を持つ。"
4691
4692 #. type: TP
4693 #: build/C/man2/sigaction.2:187
4694 #, no-wrap
4695 msgid "B<SA_NOCLDWAIT> (since Linux 2.6)"
4696 msgstr "B<SA_NOCLDWAIT> (Linux 2.6 以降)"
4697
4698 #.  To be precise: Linux 2.5.60 -- MTK
4699 #. type: Plain text
4700 #: build/C/man2/sigaction.2:201
4701 msgid ""
4702 "If I<signum> is B<SIGCHLD>, do not transform children into zombies when they "
4703 "terminate.  See also B<waitpid>(2).  This flag is meaningful only when "
4704 "establishing a handler for B<SIGCHLD>, or when setting that signal's "
4705 "disposition to B<SIG_DFL>."
4706 msgstr ""
4707 "(Linux 2.6 以降)  I<signum> が B<SIGCHLD> の場合、子プロセスが終了したときに "
4708 "子プロセスをゾンビプロセスに変化させない (B<waitpid>(2)  も参照)。 このフラグ"
4709 "は、 B<SIGCHLD> に対してハンドラを設定する際、もしくはそのシグナルの処理方法"
4710 "を B<SIG_DFL> に設定する際にのみ意味を持つ。"
4711
4712 #. type: Plain text
4713 #: build/C/man2/sigaction.2:213
4714 msgid ""
4715 "If the B<SA_NOCLDWAIT> flag is set when establishing a handler for "
4716 "B<SIGCHLD>, POSIX.1 leaves it unspecified whether a B<SIGCHLD> signal is "
4717 "generated when a child process terminates.  On Linux, a B<SIGCHLD> signal is "
4718 "generated in this case; on some other implementations, it is not."
4719 msgstr ""
4720 "B<SIGCHLD> に対してハンドラを設定する際に B<SA_NOCLDWAIT> フラグをセットした"
4721 "場合、 子プロセスが終了した際に B<SIGCHLD> シグナルが生成されるかどうかは、 "
4722 "POSIX.1 では規定されていない。 Linux では、この状況で B<SIGCHLD> シグナルは生"
4723 "成される。 いくつかの他の実装では生成されない。"
4724
4725 #. type: TP
4726 #: build/C/man2/sigaction.2:213
4727 #, no-wrap
4728 msgid "B<SA_NODEFER>"
4729 msgstr "B<SA_NODEFER>"
4730
4731 #. type: Plain text
4732 #: build/C/man2/sigaction.2:220
4733 msgid ""
4734 "Do not prevent the signal from being received from within its own signal "
4735 "handler.  This flag is meaningful only when establishing a signal handler.  "
4736 "B<SA_NOMASK> is an obsolete, nonstandard synonym for this flag."
4737 msgstr ""
4738 "それ自身のシグナル・ハンドラーの内部にいる時でも そのシグナルをマスクしないよ"
4739 "うにする。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 "
4740 "B<SA_NOMASK> はこのフラグと同じ意味だが、廃止されており、非標準である。"
4741
4742 #. type: TP
4743 #: build/C/man2/sigaction.2:220
4744 #, no-wrap
4745 msgid "B<SA_ONSTACK>"
4746 msgstr "B<SA_ONSTACK>"
4747
4748 #. type: Plain text
4749 #: build/C/man2/sigaction.2:226
4750 msgid ""
4751 "Call the signal handler on an alternate signal stack provided by "
4752 "B<sigaltstack>(2).  If an alternate stack is not available, the default "
4753 "stack will be used.  This flag is meaningful only when establishing a signal "
4754 "handler."
4755 msgstr ""
4756 "B<sigaltstack>(2)  で提供される別のシグナル・スタックでシグナルハンドラを呼び"
4757 "出す。 別のシグナル・スタックが利用可能でなければ、デフォルトのスタックが 使"
4758 "用される。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。"
4759
4760 #. type: TP
4761 #: build/C/man2/sigaction.2:226
4762 #, no-wrap
4763 msgid "B<SA_RESETHAND>"
4764 msgstr "B<SA_RESETHAND>"
4765
4766 #. type: Plain text
4767 #: build/C/man2/sigaction.2:232
4768 msgid ""
4769 "Restore the signal action to the default upon entry to the signal handler.  "
4770 "This flag is meaningful only when establishing a signal handler.  "
4771 "B<SA_ONESHOT> is an obsolete, nonstandard synonym for this flag."
4772 msgstr ""
4773 "シグナルハンドラを設定する際に、シグナルの動作をデフォルトに戻す。 このフラグ"
4774 "はシグナルハンドラを設定する際にのみ意味を持つ。 B<SA_ONESHOT> はこのフラグと"
4775 "同じ意味だが、廃止されており、非標準である。"
4776
4777 #. type: TP
4778 #: build/C/man2/sigaction.2:232
4779 #, no-wrap
4780 msgid "B<SA_RESTART>"
4781 msgstr "B<SA_RESTART>"
4782
4783 #. type: Plain text
4784 #: build/C/man2/sigaction.2:240
4785 msgid ""
4786 "Provide behavior compatible with BSD signal semantics by making certain "
4787 "system calls restartable across signals.  This flag is meaningful only when "
4788 "establishing a signal handler.  See B<signal>(7)  for a discussion of system "
4789 "call restarting."
4790 msgstr ""
4791 "いくつかのシステムコールをシグナルの通知の前後で再開できるようにして、 BSD シ"
4792 "グナル方式 (semantics) と互換性のある動作を提供する。 このフラグはシグナルハ"
4793 "ンドラを設定する際にのみ意味を持つ。 B<signal>(7)  に書かれているシステムコー"
4794 "ルの再開に関する議論を参照のこと。"
4795
4796 #. type: TP
4797 #: build/C/man2/sigaction.2:240
4798 #, no-wrap
4799 msgid "B<SA_SIGINFO> (since Linux 2.2)"
4800 msgstr "B<SA_SIGINFO> (Linux 2.2 以降)"
4801
4802 #.  (The
4803 #.  .I sa_sigaction
4804 #.  field was added in Linux 2.1.86.)
4805 #. type: Plain text
4806 #: build/C/man2/sigaction.2:251
4807 msgid ""
4808 "The signal handler takes three arguments, not one.  In this case, "
4809 "I<sa_sigaction> should be set instead of I<sa_handler>.  This flag is "
4810 "meaningful only when establishing a signal handler."
4811 msgstr ""
4812 "シグナルハンドラは一つではなく、三つの引き数を持つ。この場合は I<sa_handler> "
4813 "のかわりに I<sa_sigaction> を設定しなければならない このフラグはシグナルハン"
4814 "ドラを設定する際にのみ意味を持つ。"
4815
4816 #. type: Plain text
4817 #: build/C/man2/sigaction.2:258
4818 msgid ""
4819 "The I<siginfo_t> argument to I<sa_sigaction> is a struct with the following "
4820 "elements:"
4821 msgstr ""
4822 "I<sa_sigaction> のパラメータ I<siginfo_t> は以下の要素を持つ構造体である:"
4823
4824 #.  FIXME
4825 #.  si_trapno seems to be only used on SPARC and Alpha;
4826 #.  this page could use a little more detail on its purpose there.
4827 #.  In the kernel: si_tid
4828 #. type: Plain text
4829 #: build/C/man2/sigaction.2:289
4830 #, no-wrap
4831 msgid ""
4832 "siginfo_t {\n"
4833 "    int      si_signo;    /* Signal number */\n"
4834 "    int      si_errno;    /* An errno value */\n"
4835 "    int      si_code;     /* Signal code */\n"
4836 "    int      si_trapno;   /* Trap number that caused\n"
4837 "                             hardware-generated signal\n"
4838 "                             (unused on most architectures) */\n"
4839 "    pid_t    si_pid;      /* Sending process ID */\n"
4840 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
4841 "    int      si_status;   /* Exit value or signal */\n"
4842 "    clock_t  si_utime;    /* User time consumed */\n"
4843 "    clock_t  si_stime;    /* System time consumed */\n"
4844 "    sigval_t si_value;    /* Signal value */\n"
4845 "    int      si_int;      /* POSIX.1b signal */\n"
4846 "    void    *si_ptr;      /* POSIX.1b signal */\n"
4847 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
4848 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
4849 "    void    *si_addr;     /* Memory location which caused fault */\n"
4850 "    long     si_band;     /* Band event (was I<int> in\n"
4851 "                             glibc 2.3.2 and earlier) */\n"
4852 "    int      si_fd;       /* File descriptor */\n"
4853 "    short    si_addr_lsb; /* Least significant bit of address\n"
4854 "                             (since Linux 2.6.32) */\n"
4855 "}\n"
4856 msgstr ""
4857 "siginfo_t {\n"
4858 "    int      si_signo;    /* Signal number */\n"
4859 "    int      si_errno;    /* An errno value */\n"
4860 "    int      si_code;     /* Signal code */\n"
4861 "    int      si_trapno;   /* Trap number that caused\n"
4862 "                             hardware-generated signal\n"
4863 "                             (unused on most architectures) */\n"
4864 "    pid_t    si_pid;      /* Sending process ID */\n"
4865 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
4866 "    int      si_status;   /* Exit value or signal */\n"
4867 "    clock_t  si_utime;    /* User time consumed */\n"
4868 "    clock_t  si_stime;    /* System time consumed */\n"
4869 "    sigval_t si_value;    /* Signal value */\n"
4870 "    int      si_int;      /* POSIX.1b signal */\n"
4871 "    void    *si_ptr;      /* POSIX.1b signal */\n"
4872 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
4873 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
4874 "    void    *si_addr;     /* Memory location which caused fault */\n"
4875 "    long     si_band;     /* Band event (was I<int> in\n"
4876 "                             glibc 2.3.2 and earlier) */\n"
4877 "    int      si_fd;       /* File descriptor */\n"
4878 "    short    si_addr_lsb; /* Least significant bit of address\n"
4879 "                             (since Linux 2.6.32) */\n"
4880 "}\n"
4881
4882 #. type: Plain text
4883 #: build/C/man2/sigaction.2:298
4884 msgid ""
4885 "I<si_signo>, I<si_errno> and I<si_code> are defined for all signals.  "
4886 "(I<si_errno> is generally unused on Linux.)  The rest of the struct may be a "
4887 "union, so that one should read only the fields that are meaningful for the "
4888 "given signal:"
4889 msgstr ""
4890 "I<si_signo>, I<si_errno>, I<si_code> は全てのシグナルに対して定義されている "
4891 "(I<si_errno> は Linux では一般的には使用されない)。 構造体の残りの部分は、共"
4892 "用体 (union) になっているかもしれない。 その場合は該当するシグナルにおいて意"
4893 "味のあるフィールドのみを読み込む ことができる。"
4894
4895 #. type: Plain text
4896 #: build/C/man2/sigaction.2:313
4897 msgid ""
4898 "Signals sent with B<kill>(2)  and B<sigqueue>(3)  fill in I<si_pid> and "
4899 "I<si_uid>.  In addition, signals sent with B<sigqueue>(3)  fill in I<si_int> "
4900 "and I<si_ptr> with the values specified by the sender of the signal; see "
4901 "B<sigqueue>(3)  for more details."
4902 msgstr ""
4903 "B<kill>(2) や B<sigqueue>(3) で送信されたシグナルでは I<si_pid> と I<si_uid> "
4904 "が設定される。\n"
4905 "さらに、 B<sigqueue>(3) で送信されたシグナルでは I<si_int> と I<si_pid> にシ"
4906 "グナルの送信者により指定された値が設定される。詳細は B<sigqueue>(3) を参照。"
4907
4908 #. type: Plain text
4909 #: build/C/man2/sigaction.2:329
4910 msgid ""
4911 "Signals sent by POSIX.1b timers (since Linux 2.6) fill in I<si_overrun> and "
4912 "I<si_timerid>.  The I<si_timerid> field is an internal ID used by the kernel "
4913 "to identify the timer; it is not the same as the timer ID returned by "
4914 "B<timer_create>(2).  The I<si_overrun> field is the timer overrun count; "
4915 "this is the same information as is obtained by a call to B<timer_getoverrun>"
4916 "(2).  These fields are nonstandard Linux extensions."
4917 msgstr ""
4918 "POSIX.1b タイマ (Linux 2.6 以降) は I<si_overrun> と I<si_timerid> を\n"
4919 "設定する。 I<si_timerid> フィールドはカーネルがタイマを特定するのに\n"
4920 "使用する内部 ID であり、 B<timer_create>(2) が返すタイマ ID と同じではな"
4921 "い。\n"
4922 "I<si_overrun> フィールドはタイマが回り切った回数である。\n"
4923 "これは B<timer_getoverrun>(2) の呼び出しで取得できる情報と同じである。\n"
4924 "これらのフィールドは非標準で Linux による拡張である。"
4925
4926 #. type: Plain text
4927 #: build/C/man2/sigaction.2:344
4928 msgid ""
4929 "Signals sent for message queue notification (see the description of "
4930 "B<SIGEV_SIGNAL> in B<mq_notify>(3))  fill in I<si_int>/I<si_ptr>, with the "
4931 "I<sigev_value> supplied to B<mq_notify>(3); I<si_pid>, with the process ID "
4932 "of the message sender; and I<si_uid>, with the real user ID of the message "
4933 "sender."
4934 msgstr ""
4935 "メッセージキューの通知用に送信されたシグナル (B<mq_notify>(3) の "
4936 "B<SIGEV_SIGNAL> の説明を参照) では、 I<si_int>/I<si_ptr> に B<mq_notify>(3) "
4937 "に渡された I<sigev_value> が設定される。 I<si_pid> にはメッセージ送信者のプロ"
4938 "セス ID が設定され、 I<si_uid> にはメッセージ送信者の実ユーザ ID が設定され"
4939 "る。"
4940
4941 #.  FIXME .
4942 #.  When si_utime and si_stime where originally implemented, the
4943 #.  measurement unit was HZ, which was the same as clock ticks
4944 #.  (sysconf(_SC_CLK_TCK)).  In 2.6, HZ became configurable, and
4945 #.  was *still* used as the unit to return the info these fields,
4946 #.  with the result that the field values depended on the the
4947 #.  configured HZ.  Of course, the should have been measured in
4948 #.  USER_HZ instead, so that sysconf(_SC_CLK_TCK) could be used to
4949 #.  convert to seconds.  I have a queued patch to fix this:
4950 #.  http://thread.gmane.org/gmane.linux.kernel/698061/ .
4951 #.  This patch made it into 2.6.27.
4952 #.  But note that these fields still don't return the times of
4953 #.  waited-for children (as is done by getrusage() and times()
4954 #.  and wait4()).  Solaris 8 does include child times.
4955 #. type: Plain text
4956 #: build/C/man2/sigaction.2:391
4957 msgid ""
4958 "B<SIGCHLD> fills in I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>, and "
4959 "I<si_stime>, providing information about the child.  The I<si_pid> field is "
4960 "the process ID of the child; I<si_uid> is the child's real user ID.  The "
4961 "I<si_status> field contains the exit status of the child (if I<si_code> is "
4962 "B<CLD_EXITED>), or the signal number that caused the process to change "
4963 "state.  The I<si_utime> and I<si_stime> contain the user and system CPU time "
4964 "used by the child process; these fields do not include the times used by "
4965 "waited-for children (unlike B<getrusage>(2)  and B<time>(2)).  In kernels up "
4966 "to 2.6, and since 2.6.27, these fields report CPU time in units of I<sysconf"
4967 "(_SC_CLK_TCK)>.  In 2.6 kernels before 2.6.27, a bug meant that these fields "
4968 "reported time in units of the (configurable) system jiffy (see B<time>(7))."
4969 msgstr ""
4970 "B<SIGCHLD> は I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>,\n"
4971 "I<si_stime> を設定し、子プロセスに関する情報を提供する。\n"
4972 "I<si_pid> フィールドは子プロセスのプロセス ID で、\n"
4973 "I<si_uid> フィールドは子プロセスの実ユーザ ID である。\n"
4974 "I<si_stime> フィールドには、 (I<si_code> が B<CLD_EXITED> の場合は) \n"
4975 "子プロセスの終了ステータスが、それ以外の場合は状態が変化する原因と\n"
4976 "なったシグナル番号が格納される。\n"
4977 "I<si_utime> と I<si_stime> には子プロセスが使用したユーザ CPU 時間とシ\n"
4978 "ステム CPU 時間がそれぞれ格納される。(B<getrusage>(2) や B<time>(2) と\n"
4979 "異なり) これらのフィールドには wait 待ちの子プロセスにより使用された時\n"
4980 "間は含まれない。 2.6 より前と 2.6.27 以降のカーネルでは、 これらのフィー\n"
4981 "ルドに格納される CPU 時間の単位は I<sysconf(_SC_CLK_TCK)> である。\n"
4982 "2.6.27 より前の 2.6 系のカーネルでは、バグがあり、 これらのフィールドの\n"
4983 "CPU 時間の単位が (カーネルのコンフィグで指定される) システムの jiffy で\n"
4984 "あった (B<time>(7) 参照)。"
4985
4986 #.  FIXME SIGTRAP also sets the following for ptrace_notify() ?
4987 #.      info.si_code = exit_code;
4988 #.      info.si_pid = task_pid_vnr(current);
4989 #.      info.si_uid = current_uid();  /* Real UID */
4990 #. type: Plain text
4991 #: build/C/man2/sigaction.2:427
4992 msgid ""
4993 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, and B<SIGTRAP> fill in "
4994 "I<si_addr> with the address of the fault.  On some architectures, these "
4995 "signals also fill in the I<si_trapno> field.  Some suberrors of B<SIGBUS>, "
4996 "in particular B<BUS_MCEERR_AO> and B<BUS_MCEERR_AR>, also fill in "
4997 "I<si_addr_lsb>.  This field indicates the least significant bit of the "
4998 "reported address and therefore the extent of the corruption.  For example, "
4999 "if a full page was corrupted, I<si_addr_lsb> contains I<log2(sysconf"
5000 "(_SC_PAGESIZE))>.  B<BUS_MCERR_*> and I<si_addr_lsb> are Linux-specific "
5001 "extensions."
5002 msgstr ""
5003 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, B<SIGTRAP> では、 I<si_addr> に "
5004 "fault が発生したアドレスが設定される。 いくつかのアーキテクチャでは、 これら"
5005 "のシグナルは I<si_trapno> フィールドにも設定される。 B<SIGBUS> が発生するエ"
5006 "ラーのいくつか、特に B<BUS_MCEERR_AO> と B<BUS_MCEERR_AR> では、 "
5007 "I<si_addr_lsb> も設定される。 このフィールドは報告されるアドレスの最下位ビッ"
5008 "トを示し、 これによりメモリ破壊の程度を知ることができる。 例えば、ページ全体"
5009 "が壊れている場合には I<si_addr_lsb> には I<log2(sysconf(_SC_PAGESIZE))> が入"
5010 "る。 B<BUS_MCERR_*> と I<si_addr_lsb> は Linux 固有の拡張である。"
5011
5012 #. type: Plain text
5013 #: build/C/man2/sigaction.2:441
5014 msgid ""
5015 "B<SIGIO>/B<SIGPOLL> (the two names are synonyms on Linux)  fills in "
5016 "I<si_band> and I<si_fd>.  The I<si_band> event is a bit mask containing the "
5017 "same values as are filled in the I<revents> field by B<poll>(2).  The "
5018 "I<si_fd> field indicates the file descriptor for which the I/O event "
5019 "occurred."
5020 msgstr ""
5021 "B<SIGIO>/B<SIGPOLL> (2 つの名前は Linux では同義語) では I<si_band> と "
5022 "I<si_fd> が設定される。 I<si_band> イベントは、 B<poll>(2) が I<revents> "
5023 "フィールドに設定するのと同じ値が入ったビットマスクである。 I<si_fd> フィール"
5024 "ドは I/O イベントが発生したファイルディスクリプタを示す。"
5025
5026 #. type: Plain text
5027 #: build/C/man2/sigaction.2:448
5028 msgid ""
5029 "I<si_code> is a value (not a bit mask)  indicating why this signal was "
5030 "sent.  The following list shows the values which can be placed in I<si_code> "
5031 "for any signal, along with reason that the signal was generated."
5032 msgstr ""
5033 "I<si_code> は、そのシグナルが送信された理由を示す値である (ビットマスクではな"
5034 "い)。 以下は、どのシグナルの場合でも I<si_code> に入りうる値のリストである。"
5035 "シグナルが生成された理由も記載している。"
5036
5037 #. type: TP
5038 #: build/C/man2/sigaction.2:449
5039 #, no-wrap
5040 msgid "B<SI_USER>"
5041 msgstr "B<SI_USER>"
5042
5043 #. type: TP
5044 #: build/C/man2/sigaction.2:452 build/C/man7/signal.7:111
5045 #, no-wrap
5046 msgid "B<kill>(2)"
5047 msgstr "B<kill>(2)"
5048
5049 #. type: TP
5050 #: build/C/man2/sigaction.2:452
5051 #, no-wrap
5052 msgid "B<SI_KERNEL>"
5053 msgstr "B<SI_KERNEL>"
5054
5055 #. type: Plain text
5056 #: build/C/man2/sigaction.2:455
5057 msgid "Sent by the kernel."
5058 msgstr "カーネルにより送信された"
5059
5060 #. type: TP
5061 #: build/C/man2/sigaction.2:455
5062 #, no-wrap
5063 msgid "B<SI_QUEUE>"
5064 msgstr "B<SI_QUEUE>"
5065
5066 #. type: TP
5067 #: build/C/man2/sigaction.2:458 build/C/man7/signal.7:128
5068 #, no-wrap
5069 msgid "B<sigqueue>(3)"
5070 msgstr "B<sigqueue>(3)"
5071
5072 #. type: TP
5073 #: build/C/man2/sigaction.2:458
5074 #, no-wrap
5075 msgid "B<SI_TIMER>"
5076 msgstr "B<SI_TIMER>"
5077
5078 #. type: Plain text
5079 #: build/C/man2/sigaction.2:461
5080 msgid "POSIX timer expired"
5081 msgstr "POSIX タイマが満了した"
5082
5083 #. type: TP
5084 #: build/C/man2/sigaction.2:461
5085 #, no-wrap
5086 msgid "B<SI_MESGQ>"
5087 msgstr "B<SI_MESGQ>"
5088
5089 #. type: Plain text
5090 #: build/C/man2/sigaction.2:465
5091 msgid ""
5092 "POSIX message queue state changed (since Linux 2.6.6); see B<mq_notify>(3)"
5093 msgstr ""
5094 "POSIX メッセージキューの状態が変化した (Linux 2.6.6 以降)。 B<mq_notify>(3)B<"
5095 "参照。>"
5096
5097 #. type: TP
5098 #: build/C/man2/sigaction.2:465
5099 #, no-wrap
5100 msgid "B<SI_ASYNCIO>"
5101 msgstr "B<SI_ASYNCIO>"
5102
5103 #. type: Plain text
5104 #: build/C/man2/sigaction.2:468
5105 msgid "AIO completed"
5106 msgstr "非同期 IO (AIO) が完了した"
5107
5108 #. type: TP
5109 #: build/C/man2/sigaction.2:468
5110 #, no-wrap
5111 msgid "B<SI_SIGIO>"
5112 msgstr "B<SI_SIGIO>"
5113
5114 #. type: Plain text
5115 #: build/C/man2/sigaction.2:477
5116 msgid ""
5117 "Queued B<SIGIO> (only in kernels up to Linux 2.2; from Linux 2.4 onward "
5118 "B<SIGIO>/B<SIGPOLL> fills in I<si_code> as described below)."
5119 msgstr ""
5120 "B<SIGIO> がキューイングされた (Linux 2.2 以下のカーネルのみ; Linux 2.4 以降で"
5121 "は以下で説明する B<SIGIO>/B<SIGPOLL> の I<si_code> が入る)。"
5122
5123 #. type: TP
5124 #: build/C/man2/sigaction.2:477
5125 #, no-wrap
5126 msgid "B<SI_TKILL>"
5127 msgstr "B<SI_TKILL>"
5128
5129 #.  SI_DETHREAD is defined in 2.6.9 sources, but isn't implemented
5130 #.  It appears to have been an idea that was tried during 2.5.6
5131 #.  through to 2.5.24 and then was backed out.
5132 #. type: Plain text
5133 #: build/C/man2/sigaction.2:486
5134 msgid "B<tkill>(2)  or B<tgkill>(2)  (since Linux 2.4.19)"
5135 msgstr "B<tkill>(2)  または B<tgkill>(2)  (Linux 2.4.19 以降)"
5136
5137 #. type: Plain text
5138 #: build/C/man2/sigaction.2:493
5139 msgid ""
5140 "The following values can be placed in I<si_code> for a B<SIGILL> signal:"
5141 msgstr "B<SIGILL> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5142
5143 #. type: TP
5144 #: build/C/man2/sigaction.2:494
5145 #, no-wrap
5146 msgid "B<ILL_ILLOPC>"
5147 msgstr "B<ILL_ILLOPC>"
5148
5149 #. type: Plain text
5150 #: build/C/man2/sigaction.2:497
5151 msgid "illegal opcode"
5152 msgstr "不正な命令コード (opcode)"
5153
5154 #. type: TP
5155 #: build/C/man2/sigaction.2:497
5156 #, no-wrap
5157 msgid "B<ILL_ILLOPN>"
5158 msgstr "B<ILL_ILLOPN>"
5159
5160 #. type: Plain text
5161 #: build/C/man2/sigaction.2:500
5162 msgid "illegal operand"
5163 msgstr "不正なオペランド"
5164
5165 #. type: TP
5166 #: build/C/man2/sigaction.2:500
5167 #, no-wrap
5168 msgid "B<ILL_ILLADR>"
5169 msgstr "B<ILL_ILLADR>"
5170
5171 #. type: Plain text
5172 #: build/C/man2/sigaction.2:503
5173 msgid "illegal addressing mode"
5174 msgstr "不正なアドレッシングモード"
5175
5176 #. type: TP
5177 #: build/C/man2/sigaction.2:503
5178 #, no-wrap
5179 msgid "B<ILL_ILLTRP>"
5180 msgstr "B<ILL_ILLTRP>"
5181
5182 #. type: Plain text
5183 #: build/C/man2/sigaction.2:506
5184 msgid "illegal trap"
5185 msgstr "不正なトラップ"
5186
5187 #. type: TP
5188 #: build/C/man2/sigaction.2:506
5189 #, no-wrap
5190 msgid "B<ILL_PRVOPC>"
5191 msgstr "B<ILL_PRVOPC>"
5192
5193 #. type: Plain text
5194 #: build/C/man2/sigaction.2:509
5195 msgid "privileged opcode"
5196 msgstr "特権が必要な命令コード (opcode)"
5197
5198 #. type: TP
5199 #: build/C/man2/sigaction.2:509
5200 #, no-wrap
5201 msgid "B<ILL_PRVREG>"
5202 msgstr "B<ILL_PRVREG>"
5203
5204 #. type: Plain text
5205 #: build/C/man2/sigaction.2:512
5206 msgid "privileged register"
5207 msgstr "特権が必要なレジスタ"
5208
5209 #. type: TP
5210 #: build/C/man2/sigaction.2:512
5211 #, no-wrap
5212 msgid "B<ILL_COPROC>"
5213 msgstr "B<ILL_COPROC>"
5214
5215 #. type: Plain text
5216 #: build/C/man2/sigaction.2:515
5217 msgid "coprocessor error"
5218 msgstr "コプロセッサのエラー"
5219
5220 #. type: TP
5221 #: build/C/man2/sigaction.2:515
5222 #, no-wrap
5223 msgid "B<ILL_BADSTK>"
5224 msgstr "B<ILL_BADSTK>"
5225
5226 #. type: Plain text
5227 #: build/C/man2/sigaction.2:518
5228 msgid "internal stack error"
5229 msgstr "内部スタックエラー"
5230
5231 #. type: Plain text
5232 #: build/C/man2/sigaction.2:525
5233 msgid ""
5234 "The following values can be placed in I<si_code> for a B<SIGFPE> signal:"
5235 msgstr "B<SIGFPE> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5236
5237 #. type: TP
5238 #: build/C/man2/sigaction.2:526
5239 #, no-wrap
5240 msgid "B<FPE_INTDIV>"
5241 msgstr "B<FPE_INTDIV>"
5242
5243 #. type: Plain text
5244 #: build/C/man2/sigaction.2:529
5245 msgid "integer divide by zero"
5246 msgstr "整数の 0 による除算"
5247
5248 #. type: TP
5249 #: build/C/man2/sigaction.2:529
5250 #, no-wrap
5251 msgid "B<FPE_INTOVF>"
5252 msgstr "B<FPE_INTOVF>"
5253
5254 #. type: Plain text
5255 #: build/C/man2/sigaction.2:532
5256 msgid "integer overflow"
5257 msgstr "整数のオーバーフロー"
5258
5259 #. type: TP
5260 #: build/C/man2/sigaction.2:532
5261 #, no-wrap
5262 msgid "B<FPE_FLTDIV>"
5263 msgstr "B<FPE_FLTDIV>"
5264
5265 #. type: Plain text
5266 #: build/C/man2/sigaction.2:535
5267 msgid "floating-point divide by zero"
5268 msgstr "浮動小数点の 0 による除算"
5269
5270 #. type: TP
5271 #: build/C/man2/sigaction.2:535
5272 #, no-wrap
5273 msgid "B<FPE_FLTOVF>"
5274 msgstr "B<FPE_FLTOVF>"
5275
5276 #. type: Plain text
5277 #: build/C/man2/sigaction.2:538
5278 msgid "floating-point overflow"
5279 msgstr "浮動小数点のオーバーフロー"
5280
5281 #. type: TP
5282 #: build/C/man2/sigaction.2:538
5283 #, no-wrap
5284 msgid "B<FPE_FLTUND>"
5285 msgstr "B<FPE_FLTUND>"
5286
5287 #. type: Plain text
5288 #: build/C/man2/sigaction.2:541
5289 msgid "floating-point underflow"
5290 msgstr "浮動小数点のアンダーフロー"
5291
5292 #. type: TP
5293 #: build/C/man2/sigaction.2:541
5294 #, no-wrap
5295 msgid "B<FPE_FLTRES>"
5296 msgstr "B<FPE_FLTRES>"
5297
5298 #. type: Plain text
5299 #: build/C/man2/sigaction.2:544
5300 msgid "floating-point inexact result"
5301 msgstr "浮動小数点の不正確な演算結果 (inexact result)"
5302
5303 #. type: TP
5304 #: build/C/man2/sigaction.2:544
5305 #, no-wrap
5306 msgid "B<FPE_FLTINV>"
5307 msgstr "B<FPE_FLTINV>"
5308
5309 #. type: Plain text
5310 #: build/C/man2/sigaction.2:547
5311 msgid "floating-point invalid operation"
5312 msgstr "浮動小数点の不正な操作"
5313
5314 #. type: TP
5315 #: build/C/man2/sigaction.2:547
5316 #, no-wrap
5317 msgid "B<FPE_FLTSUB>"
5318 msgstr "B<FPE_FLTSUB>"
5319
5320 #. type: Plain text
5321 #: build/C/man2/sigaction.2:550
5322 msgid "subscript out of range"
5323 msgstr "範囲外の添字 (subscript)"
5324
5325 #. type: Plain text
5326 #: build/C/man2/sigaction.2:557
5327 msgid ""
5328 "The following values can be placed in I<si_code> for a B<SIGSEGV> signal:"
5329 msgstr "B<SIGSEGV> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5330
5331 #. type: TP
5332 #: build/C/man2/sigaction.2:558
5333 #, no-wrap
5334 msgid "B<SEGV_MAPERR>"
5335 msgstr "B<SEGV_MAPERR>"
5336
5337 #. type: Plain text
5338 #: build/C/man2/sigaction.2:561
5339 msgid "address not mapped to object"
5340 msgstr "オブジェクトにマッピングされていないアドレス"
5341
5342 #. type: TP
5343 #: build/C/man2/sigaction.2:561
5344 #, no-wrap
5345 msgid "B<SEGV_ACCERR>"
5346 msgstr "B<SEGV_ACCERR>"
5347
5348 #. type: Plain text
5349 #: build/C/man2/sigaction.2:564
5350 msgid "invalid permissions for mapped object"
5351 msgstr "マッピングされたオブジェクトに対するアクセス許可がない"
5352
5353 #. type: Plain text
5354 #: build/C/man2/sigaction.2:571
5355 msgid ""
5356 "The following values can be placed in I<si_code> for a B<SIGBUS> signal:"
5357 msgstr "B<SIGBUS> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5358
5359 #. type: TP
5360 #: build/C/man2/sigaction.2:572
5361 #, no-wrap
5362 msgid "B<BUS_ADRALN>"
5363 msgstr "B<BUS_ADRALN>"
5364
5365 #. type: Plain text
5366 #: build/C/man2/sigaction.2:575
5367 msgid "invalid address alignment"
5368 msgstr "不正なアドレス・アライメント (alignment)"
5369
5370 #. type: TP
5371 #: build/C/man2/sigaction.2:575
5372 #, no-wrap
5373 msgid "B<BUS_ADRERR>"
5374 msgstr "B<BUS_ADRERR>"
5375
5376 #. type: Plain text
5377 #: build/C/man2/sigaction.2:578
5378 msgid "nonexistent physical address"
5379 msgstr "存在しない物理アドレス"
5380
5381 #. type: TP
5382 #: build/C/man2/sigaction.2:578
5383 #, no-wrap
5384 msgid "B<BUS_OBJERR>"
5385 msgstr "B<BUS_OBJERR>"
5386
5387 #. type: Plain text
5388 #: build/C/man2/sigaction.2:581
5389 msgid "object-specific hardware error"
5390 msgstr "オブジェクト固有のハードウェアエラー"
5391
5392 #. type: TP
5393 #: build/C/man2/sigaction.2:581
5394 #, no-wrap
5395 msgid "B<BUS_MCEERR_AR> (since Linux 2.6.32)"
5396 msgstr "B<BUS_MCEERR_AR> (Linux 2.6.32 以降)"
5397
5398 #. type: Plain text
5399 #: build/C/man2/sigaction.2:584
5400 msgid "Hardware memory error consumed on a machine check; action required."
5401 msgstr ""
5402 "マシンチェックで使用中のハードウェアメモリのエラーが検出された。対応が必須。"
5403
5404 #. type: TP
5405 #: build/C/man2/sigaction.2:584
5406 #, no-wrap
5407 msgid "B<BUS_MCEERR_AO> (since Linux 2.6.32)"
5408 msgstr "B<BUS_MCEERR_AO> (Linux 2.6.32  以降)"
5409
5410 #. type: Plain text
5411 #: build/C/man2/sigaction.2:587
5412 msgid ""
5413 "Hardware memory error detected in process but not consumed; action optional."
5414 msgstr ""
5415 "実行中にハードウェアメモリエラーが検出されたが、使用中のメモリではない。対応"
5416 "は必須ではない。"
5417
5418 #. type: Plain text
5419 #: build/C/man2/sigaction.2:594
5420 msgid ""
5421 "The following values can be placed in I<si_code> for a B<SIGTRAP> signal:"
5422 msgstr "B<SIGTRAP> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5423
5424 #. type: TP
5425 #: build/C/man2/sigaction.2:595
5426 #, no-wrap
5427 msgid "B<TRAP_BRKPT>"
5428 msgstr "B<TRAP_BRKPT>"
5429
5430 #. type: Plain text
5431 #: build/C/man2/sigaction.2:598
5432 msgid "process breakpoint"
5433 msgstr "プロセスのブレークポイント"
5434
5435 #. type: TP
5436 #: build/C/man2/sigaction.2:598
5437 #, no-wrap
5438 msgid "B<TRAP_TRACE>"
5439 msgstr "B<TRAP_TRACE>"
5440
5441 #. type: Plain text
5442 #: build/C/man2/sigaction.2:601
5443 msgid "process trace trap"
5444 msgstr "プロセスのトレース・トラップ"
5445
5446 #. type: TP
5447 #: build/C/man2/sigaction.2:601
5448 #, no-wrap
5449 msgid "B<TRAP_BRANCH> (since Linux 2.4)"
5450 msgstr "B<TRAP_BRANCH> (Linux 2.4 以降)"
5451
5452 #. type: Plain text
5453 #: build/C/man2/sigaction.2:604
5454 msgid "process taken branch trap"
5455 msgstr "プロセスのブランチ・トラップ"
5456
5457 #. type: TP
5458 #: build/C/man2/sigaction.2:604
5459 #, no-wrap
5460 msgid "B<TRAP_HWBKPT> (since Linux 2.4)"
5461 msgstr "B<TRAP_HWBKPT> (Linux 2.4 以降)"
5462
5463 #. type: Plain text
5464 #: build/C/man2/sigaction.2:607
5465 msgid "hardware breakpoint/watchpoint"
5466 msgstr "ハードウェア・ブレークポイント/ウォッチポイント"
5467
5468 #. type: Plain text
5469 #: build/C/man2/sigaction.2:614
5470 msgid ""
5471 "The following values can be placed in I<si_code> for a B<SIGCHLD> signal:"
5472 msgstr "B<SIGCHLD> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5473
5474 #. type: TP
5475 #: build/C/man2/sigaction.2:615
5476 #, no-wrap
5477 msgid "B<CLD_EXITED>"
5478 msgstr "B<CLD_EXITED>"
5479
5480 #. type: Plain text
5481 #: build/C/man2/sigaction.2:618
5482 msgid "child has exited"
5483 msgstr "子プロセスが終了した (exited)"
5484
5485 #. type: TP
5486 #: build/C/man2/sigaction.2:618
5487 #, no-wrap
5488 msgid "B<CLD_KILLED>"
5489 msgstr "B<CLD_KILLED>"
5490
5491 #. type: Plain text
5492 #: build/C/man2/sigaction.2:621
5493 msgid "child was killed"
5494 msgstr "子プロセスが kill された"
5495
5496 #. type: TP
5497 #: build/C/man2/sigaction.2:621
5498 #, no-wrap
5499 msgid "B<CLD_DUMPED>"
5500 msgstr "B<CLD_DUMPED>"
5501
5502 #. type: Plain text
5503 #: build/C/man2/sigaction.2:624
5504 msgid "child terminated abnormally"
5505 msgstr "子プロセスが異常終了した"
5506
5507 #. type: TP
5508 #: build/C/man2/sigaction.2:624
5509 #, no-wrap
5510 msgid "B<CLD_TRAPPED>"
5511 msgstr "B<CLD_TRAPPED>"
5512
5513 #. type: Plain text
5514 #: build/C/man2/sigaction.2:627
5515 msgid "traced child has trapped"
5516 msgstr "トレース対象の子プロセスがトラップを上げた"
5517
5518 #. type: TP
5519 #: build/C/man2/sigaction.2:627
5520 #, no-wrap
5521 msgid "B<CLD_STOPPED>"
5522 msgstr "B<CLD_STOPPED>"
5523
5524 #. type: Plain text
5525 #: build/C/man2/sigaction.2:630
5526 msgid "child has stopped"
5527 msgstr "子プロセスが停止 (stop) した"
5528
5529 #. type: TP
5530 #: build/C/man2/sigaction.2:630
5531 #, no-wrap
5532 msgid "B<CLD_CONTINUED>"
5533 msgstr "B<CLD_CONTINUED>"
5534
5535 #. type: Plain text
5536 #: build/C/man2/sigaction.2:633
5537 msgid "stopped child has continued (since Linux 2.6.9)"
5538 msgstr "停止していた子プロセスが再開した (Linux 2.6.9 以降)"
5539
5540 #. type: Plain text
5541 #: build/C/man2/sigaction.2:640
5542 msgid ""
5543 "The following values can be placed in I<si_code> for a B<SIGIO>/B<SIGPOLL> "
5544 "signal:"
5545 msgstr ""
5546 "B<SIGIO>/B<SIGPOLL> シグナルの場合、 I<si_code> には以下の値が入る可能性があ"
5547 "る:"
5548
5549 #. type: TP
5550 #: build/C/man2/sigaction.2:641
5551 #, no-wrap
5552 msgid "B<POLL_IN>"
5553 msgstr "B<POLL_IN>"
5554
5555 #. type: Plain text
5556 #: build/C/man2/sigaction.2:644
5557 msgid "data input available"
5558 msgstr "入力データが利用可能"
5559
5560 #. type: TP
5561 #: build/C/man2/sigaction.2:644
5562 #, no-wrap
5563 msgid "B<POLL_OUT>"
5564 msgstr "B<POLL_OUT>"
5565
5566 #. type: Plain text
5567 #: build/C/man2/sigaction.2:647
5568 msgid "output buffers available"
5569 msgstr "出力バッファが利用可能"
5570
5571 #. type: TP
5572 #: build/C/man2/sigaction.2:647
5573 #, no-wrap
5574 msgid "B<POLL_MSG>"
5575 msgstr "B<POLL_MSG>"
5576
5577 #. type: Plain text
5578 #: build/C/man2/sigaction.2:650
5579 msgid "input message available"
5580 msgstr "入力メッセージが利用可能"
5581
5582 #. type: TP
5583 #: build/C/man2/sigaction.2:650
5584 #, no-wrap
5585 msgid "B<POLL_ERR>"
5586 msgstr "B<POLL_ERR>"
5587
5588 #. type: Plain text
5589 #: build/C/man2/sigaction.2:653
5590 msgid "I/O error"
5591 msgstr "I/O エラー"
5592
5593 #. type: TP
5594 #: build/C/man2/sigaction.2:653
5595 #, no-wrap
5596 msgid "B<POLL_PRI>"
5597 msgstr "B<POLL_PRI>"
5598
5599 #. type: Plain text
5600 #: build/C/man2/sigaction.2:656
5601 msgid "high priority input available"
5602 msgstr "高優先の入力が利用可能"
5603
5604 #. type: TP
5605 #: build/C/man2/sigaction.2:656
5606 #, no-wrap
5607 msgid "B<POLL_HUP>"
5608 msgstr "B<POLL_HUP>"
5609
5610 #. type: Plain text
5611 #: build/C/man2/sigaction.2:659
5612 msgid "device disconnected"
5613 msgstr "デバイスが接続されていない"
5614
5615 #. type: Plain text
5616 #: build/C/man2/sigaction.2:665
5617 msgid ""
5618 "B<sigaction>()  returns 0 on success; on error, -1 is returned, and I<errno> "
5619 "is set to indicate the error."
5620 msgstr ""
5621 "B<sigaction>() 関数は成功すると 0 を返す。 エラーの場合、-1 を返し、 "
5622 "I<errno> にエラーを示す値をセットする。"
5623
5624 #. type: Plain text
5625 #: build/C/man2/sigaction.2:670
5626 msgid ""
5627 "I<act> or I<oldact> points to memory which is not a valid part of the "
5628 "process address space."
5629 msgstr ""
5630 "I<act> か I<oldact> が指しているメモリが正しいプロセスのアドレス空間にない。"
5631
5632 #. type: Plain text
5633 #: build/C/man2/sigaction.2:677
5634 msgid ""
5635 "An invalid signal was specified.  This will also be generated if an attempt "
5636 "is made to change the action for B<SIGKILL> or B<SIGSTOP>, which cannot be "
5637 "caught or ignored."
5638 msgstr ""
5639 "無効なシグナルが指定された。補足 (catch) したり無視したりできない シグナルで"
5640 "ある B<SIGKILL> や B<SIGSTOP> に対する動作を変更しようとした場合にも発生す"
5641 "る。"
5642
5643 #.  SVr4 does not document the EINTR condition.
5644 #. type: Plain text
5645 #: build/C/man2/sigaction.2:680
5646 msgid "POSIX.1-2001, SVr4."
5647 msgstr "POSIX.1-2001, SVr4."
5648
5649 #. type: Plain text
5650 #: build/C/man2/sigaction.2:688 build/C/man7/signal.7:105
5651 msgid ""
5652 "A child created via B<fork>(2)  inherits a copy of its parent's signal "
5653 "dispositions.  During an B<execve>(2), the dispositions of handled signals "
5654 "are reset to the default; the dispositions of ignored signals are left "
5655 "unchanged."
5656 msgstr ""
5657 "B<fork>(2) 経由で作成された子プロセスは、親プロセスのシグナルの処理方法の コ"
5658 "ピーを継承する。\n"
5659 "B<execve>(2) の前後で、ハンドラが設定されているシグナルの処理方法はデフォルト"
5660 "にリセットされ、\n"
5661 "無視が設定されているシグナルの処理方法は変更されずそのままとなる。"
5662
5663 #. type: Plain text
5664 #: build/C/man2/sigaction.2:706 build/C/man2/signal.2:134
5665 msgid ""
5666 "According to POSIX, the behavior of a process is undefined after it ignores "
5667 "a B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> signal that was not generated by "
5668 "B<kill>(2)  or B<raise>(3).  Integer division by zero has undefined result.  "
5669 "On some architectures it will generate a B<SIGFPE> signal.  (Also dividing "
5670 "the most negative integer by -1 may generate B<SIGFPE>.)  Ignoring this "
5671 "signal might lead to an endless loop."
5672 msgstr ""
5673 "POSIX では、 B<kill>(2)  や B<raise>(3)  で生成できないシグナル B<SIGFPE>, "
5674 "B<SIGILL>, B<SIGSEGV> を無視 (ignore) した場合、その後の動作は未定義である。 "
5675 "ゼロによる整数割り算の結果は未定義となる。 アーキテクチャーによっては、このと"
5676 "き B<SIGFPE> シグナルが生成される。 (同様に負の最大整数を -1 で割ると "
5677 "B<SIGFPE> が生成されるかもしれない)  このシグナルを無視すると無限ループに陥る"
5678 "かもしれない。"
5679
5680 #. type: Plain text
5681 #: build/C/man2/sigaction.2:723
5682 msgid ""
5683 "POSIX.1-1990 disallowed setting the action for B<SIGCHLD> to B<SIG_IGN>.  "
5684 "POSIX.1-2001 allows this possibility, so that ignoring B<SIGCHLD> can be "
5685 "used to prevent the creation of zombies (see B<wait>(2)).  Nevertheless, the "
5686 "historical BSD and System V behaviors for ignoring B<SIGCHLD> differ, so "
5687 "that the only completely portable method of ensuring that terminated "
5688 "children do not become zombies is to catch the B<SIGCHLD> signal and perform "
5689 "a B<wait>(2)  or similar."
5690 msgstr ""
5691 "POSIX.1-1990 では B<SIGCHLD> に B<SIG_IGN> を設定することを認めていない。 "
5692 "POSIX.1-2001 では認められており、 B<SIGCHLD> を無視することでゾンビプロセスの"
5693 "生成を防止することができる (B<wait>(2)  を参照)。 さらに、BSD と SystemV で"
5694 "は B<SIGCHLD> を無視した際の動作が異なっている。 そのため、完全に移植性がある"
5695 "方法で、終了した子プロセスがゾンビにならないこと を保証するには、 B<SIGCHLD> "
5696 "シグナルを補足し、 B<wait>(2)  などを実行するしかない。"
5697
5698 #. type: Plain text
5699 #: build/C/man2/sigaction.2:736
5700 msgid ""
5701 "POSIX.1-1990 specified only B<SA_NOCLDSTOP>.  POSIX.1-2001 added "
5702 "B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, and B<SA_SIGINFO>.  Use of "
5703 "these latter values in I<sa_flags> may be less portable in applications "
5704 "intended for older UNIX implementations."
5705 msgstr ""
5706 "POSIX.1-1990 の仕様では B<SA_NOCLDSTOP> のみが定義されている。\n"
5707 "POSIX.1-2001 では B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>,\n"
5708 "B<SA_SIGINFO> が追加された。 UNIX の古い実装で動かすアプリケーションで、\n"
5709 "他の I<sa_flags> フラグを使用すると移植性が下がる。"
5710
5711 #. type: Plain text
5712 #: build/C/man2/sigaction.2:740
5713 msgid ""
5714 "The B<SA_RESETHAND> flag is compatible with the SVr4 flag of the same name."
5715 msgstr "B<SA_RESETHAND> フラグは SVr4 の同じ名前のフラグと互換性がある。"
5716
5717 #. type: Plain text
5718 #: build/C/man2/sigaction.2:750
5719 msgid ""
5720 "The B<SA_NODEFER> flag is compatible with the SVr4 flag of the same name "
5721 "under kernels 1.3.9 and newer.  On older kernels the Linux implementation "
5722 "allowed the receipt of any signal, not just the one we are installing "
5723 "(effectively overriding any I<sa_mask> settings)."
5724 msgstr ""
5725 "B<SA_NODEFER> フラグは 1.3.9 以降のカーネルでは同じ名前の SVr4 のフラグと互換"
5726 "性がある。 ぞれ以前の Linux カーネルの実装では、このフラグを設定しているシグ"
5727 "ナル だけでなく、どのシグナルでも受けることを許していた (実際には I<sa_mask> "
5728 "の設定により無効にできる)。"
5729
5730 #. type: Plain text
5731 #: build/C/man2/sigaction.2:756
5732 msgid ""
5733 "B<sigaction>()  can be called with a NULL second argument to query the "
5734 "current signal handler.  It can also be used to check whether a given signal "
5735 "is valid for the current machine by calling it with NULL second and third "
5736 "arguments."
5737 msgstr ""
5738 "B<sigaction>()  の二番目の引き数に NULL を指定して呼び出すと、現在のシグナル"
5739 "ハンドラを確認する ことができる。また、二番目と三番目の引き数を NULL にて呼び"
5740 "出すことで、 指定されたシグナルが現在のマシンで使えるかどうかチェックできる。"
5741
5742 #. type: Plain text
5743 #: build/C/man2/sigaction.2:762
5744 msgid ""
5745 "It is not possible to block B<SIGKILL> or B<SIGSTOP> (by specifying them in "
5746 "I<sa_mask>).  Attempts to do so are silently ignored."
5747 msgstr ""
5748 "B<SIGKILL> や B<SIGSTOP> を (I<sa_mask> に指定して) 禁止することはできない。 "
5749 "禁止しようとしても黙って無視される。"
5750
5751 #. type: Plain text
5752 #: build/C/man2/sigaction.2:766 build/C/man2/sigpending.2:70
5753 #: build/C/man2/sigprocmask.2:144 build/C/man2/sigsuspend.2:108
5754 msgid "See B<sigsetops>(3)  for details on manipulating signal sets."
5755 msgstr "シグナル集合の操作に関する詳細は B<sigsetops>(3)  を参照のこと。"
5756
5757 #. type: Plain text
5758 #: build/C/man2/sigaction.2:771
5759 msgid ""
5760 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
5761 "safely called inside from inside a signal handler."
5762 msgstr ""
5763 "シグナルハンドラ内から安全に呼び出すことができる、 async-signal-safe "
5764 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
5765 "照。"
5766
5767 #. type: SS
5768 #: build/C/man2/sigaction.2:771
5769 #, no-wrap
5770 msgid "Undocumented"
5771 msgstr "非公式"
5772
5773 #. type: Plain text
5774 #: build/C/man2/sigaction.2:781
5775 msgid ""
5776 "Before the introduction of B<SA_SIGINFO> it was also possible to get some "
5777 "additional information, namely by using a I<sa_handler> with second argument "
5778 "of type I<struct sigcontext>.  See the relevant Linux kernel sources for "
5779 "details.  This use is obsolete now."
5780 msgstr ""
5781 "B<SA_SIGINFO> が導入される前は、 I<struct sigcontext> 型の二番目の引き数と一"
5782 "緒に I<sa_handler> を使用することで、 いくつかの追加の情報を入手することがで"
5783 "きた。 詳細については Linux カーネルソースの関連部分を見てほしい。 現在はこの"
5784 "使用法は廃止されている。"
5785
5786 #. type: Plain text
5787 #: build/C/man2/sigaction.2:790
5788 msgid ""
5789 "In kernels up to and including 2.6.13, specifying B<SA_NODEFER> in "
5790 "I<sa_flags> prevents not only the delivered signal from being masked during "
5791 "execution of the handler, but also the signals specified in I<sa_mask>.  "
5792 "This bug was fixed in kernel 2.6.14."
5793 msgstr ""
5794 "2.6.13 以前のカーネルでは、 I<sa_flags> に B<SA_NODEFER> を指定した場合、 ハ"
5795 "ンドラが実行中に配送されたシグナル自身がマスクされなくなるだけでなく、 "
5796 "I<sa_mask> に指定されたシグナルもマスクされなくなる。 このバグは、カーネル "
5797 "2.6.14 で修正された。"
5798
5799 #. type: Plain text
5800 #: build/C/man2/sigaction.2:793
5801 msgid "See B<mprotect>(2)."
5802 msgstr "B<mprotect>(2)  参照。"
5803
5804 #. type: Plain text
5805 #: build/C/man2/sigaction.2:813
5806 msgid ""
5807 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
5808 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
5809 "B<sigprocmask>(2), B<sigsuspend>(2), B<wait>(2), B<raise>(3), B<siginterrupt>"
5810 "(3), B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
5811 msgstr ""
5812 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
5813 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
5814 "B<sigprocmask>(2), B<sigsuspend>(2), B<wait>(2), B<raise>(3), B<siginterrupt>"
5815 "(3), B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
5816
5817 #. type: TH
5818 #: build/C/man2/sigaltstack.2:27
5819 #, no-wrap
5820 msgid "SIGALTSTACK"
5821 msgstr "SIGALTSTACK"
5822
5823 #. type: TH
5824 #: build/C/man2/sigaltstack.2:27
5825 #, no-wrap
5826 msgid "2010-09-26"
5827 msgstr "2010-09-26"
5828
5829 #. type: Plain text
5830 #: build/C/man2/sigaltstack.2:30
5831 msgid "sigaltstack - set and/or get signal stack context"
5832 msgstr "sigaltstack - シグナルスタックのコンテキストを設定・取得する"
5833
5834 #. type: Plain text
5835 #: build/C/man2/sigaltstack.2:34
5836 msgid "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
5837 msgstr "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
5838
5839 #. type: Plain text
5840 #: build/C/man2/sigaltstack.2:41
5841 msgid "B<sigaltstack>():"
5842 msgstr "B<sigaltstack>():"
5843
5844 #. type: Plain text
5845 #: build/C/man2/sigaltstack.2:48 build/C/man3/siginterrupt.3:53
5846 #: build/C/man2/wait.2:80
5847 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
5848 msgstr "|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
5849
5850 #. type: Plain text
5851 #: build/C/man2/sigaltstack.2:60
5852 msgid ""
5853 "B<sigaltstack>()  allows a process to define a new alternate signal stack "
5854 "and/or retrieve the state of an existing alternate signal stack.  An "
5855 "alternate signal stack is used during the execution of a signal handler if "
5856 "the establishment of that handler (see B<sigaction>(2))  requested it."
5857 msgstr ""
5858 "B<sigaltstack>()  を使うと、 プロセスは新しい代替シグナルスタックを定義した"
5859 "り、 既存の代替シグナルスタックの状態を取得できる。 シグナルハンドラが代替シ"
5860 "グナルスタックを要求するように設定されていると (B<sigaction>(2)  参照)、ハン"
5861 "ドラの実行中はそのシグナルスタックが使われる。"
5862
5863 #. type: Plain text
5864 #: build/C/man2/sigaltstack.2:63
5865 msgid ""
5866 "The normal sequence of events for using an alternate signal stack is the "
5867 "following:"
5868 msgstr "代替シグナルスタックを使う際の一般的な手順は、以下の通りである:"
5869
5870 #. type: IP
5871 #: build/C/man2/sigaltstack.2:63 build/C/man7/signal.7:387
5872 #, no-wrap
5873 msgid "1."
5874 msgstr "1."
5875
5876 #. type: Plain text
5877 #: build/C/man2/sigaltstack.2:67
5878 msgid "Allocate an area of memory to be used for the alternate signal stack."
5879 msgstr "代替シグナルスタックで使うメモリ領域を確保する。"
5880
5881 #. type: IP
5882 #: build/C/man2/sigaltstack.2:67 build/C/man7/signal.7:391
5883 #, no-wrap
5884 msgid "2."
5885 msgstr "2."
5886
5887 #. type: Plain text
5888 #: build/C/man2/sigaltstack.2:73
5889 msgid ""
5890 "Use B<sigaltstack>()  to inform the system of the existence and location of "
5891 "the alternate signal stack."
5892 msgstr ""
5893 "B<sigaltstack>()  を使って、 代替シグナルスタックの存在と場所をシステムに知ら"
5894 "せる。"
5895
5896 #. type: IP
5897 #: build/C/man2/sigaltstack.2:73 build/C/man7/signal.7:411
5898 #, no-wrap
5899 msgid "3."
5900 msgstr "3."
5901
5902 #. type: Plain text
5903 #: build/C/man2/sigaltstack.2:80
5904 msgid ""
5905 "When establishing a signal handler using B<sigaction>(2), inform the system "
5906 "that the signal handler should be executed on the alternate signal stack by "
5907 "specifying the B<SA_ONSTACK> flag."
5908 msgstr ""
5909 "B<sigaction>(2)  を使ってシグナルハンドラを確立する際、 B<SA_ONSTACK> フラグ"
5910 "を指定することにより、 そのシグナルハンドラを代替シグナルスタック上で実行する"
5911 "ことを システムに知らせる。"
5912
5913 #. type: Plain text
5914 #: build/C/man2/sigaltstack.2:88
5915 msgid ""
5916 "The I<ss> argument is used to specify a new alternate signal stack, while "
5917 "the I<oss> argument is used to retrieve information about the currently "
5918 "established signal stack.  If we are interested in performing just one of "
5919 "these tasks, then the other argument can be specified as NULL.  Each of "
5920 "these arguments is a structure of the following type:"
5921 msgstr ""
5922 "I<ss> 引き数は、新しいシグナルスタックを指定するために使う。 また I<oss> 引き"
5923 "数は、現在確立されている シグナルスタックの情報を取得するために使う。 この操"
5924 "作のうち 1 つだけを実行させるには、 使用しない引き数を NULL に指定すればよ"
5925 "い。 引き数となる構造体は、以下のような型である:"
5926
5927 #. type: Plain text
5928 #: build/C/man2/sigaltstack.2:96
5929 #, no-wrap
5930 msgid ""
5931 "typedef struct {\n"
5932 "    void  *ss_sp;     /* Base address of stack */\n"
5933 "    int    ss_flags;  /* Flags */\n"
5934 "    size_t ss_size;   /* Number of bytes in stack */\n"
5935 "} stack_t;\n"
5936 msgstr ""
5937 "typedef struct {\n"
5938 "    void  *ss_sp;     /* スタックのベースアドレス */\n"
5939 "    int    ss_flags;  /* フラグ */\n"
5940 "    size_t ss_size;   /* スタックのバイト数 */\n"
5941 "} stack_t;\n"
5942
5943 #. type: Plain text
5944 #: build/C/man2/sigaltstack.2:107
5945 msgid ""
5946 "To establish a new alternate signal stack, I<ss.ss_flags> is set to zero, "
5947 "and I<ss.ss_sp> and I<ss.ss_size> specify the starting address and size of "
5948 "the stack.  The constant B<SIGSTKSZ> is defined to be large enough to cover "
5949 "the usual size requirements for an alternate signal stack, and the constant "
5950 "B<MINSIGSTKSZ> defines the minimum size required to execute a signal handler."
5951 msgstr ""
5952 "新規の代替シグナルスタックを確立するには、 I<ss.ss_flags> を 0 に設定し、 "
5953 "I<ss.ss_sp> と I<ss.ss_size> に スタックの開始アドレスとスタックサイズを指定"
5954 "する。 定数 B<SIGSTKSZ> は、代替シグナルスタックが通常必要する サイズよりも充"
5955 "分大きく定義されている。 また定数 B<MINSIGSTKSZ> は、 シグナルハンドラの実行"
5956 "に必要な最小サイズに定義されている。"
5957
5958 #. type: Plain text
5959 #: build/C/man2/sigaltstack.2:111
5960 msgid ""
5961 "When a signal handler is invoked on the alternate stack, the kernel "
5962 "automatically aligns the address given in I<ss.ss_sp> to a suitable address "
5963 "boundary for the underlying hardware architecture."
5964 msgstr ""
5965 "代替スタックでシグナルハンドラが起動された場合には、 カーネルにより自動的に、"
5966 "I<ss.ss_sp> で指定されたアドレスは 動作しているハードウェアアーキテクチャに適"
5967 "したアドレス境界に 調整される。"
5968
5969 #. type: Plain text
5970 #: build/C/man2/sigaltstack.2:116
5971 msgid ""
5972 "To disable an existing stack, specify I<ss.ss_flags> as B<SS_DISABLE>.  In "
5973 "this case, the remaining fields in I<ss> are ignored."
5974 msgstr ""
5975 "既存のスタックを無効にするには、 I<ss.ss_flags> を B<SS_DISABLE> に指定す"
5976 "る。 この場合、I<ss> の他のフィールドは無視される。"
5977
5978 #. type: Plain text
5979 #: build/C/man2/sigaltstack.2:124
5980 msgid ""
5981 "If I<oss> is not NULL, then it is used to return information about the "
5982 "alternate signal stack which was in effect prior to the call to "
5983 "B<sigaltstack>().  The I<oss.ss_sp> and I<oss.ss_size> fields return the "
5984 "starting address and size of that stack.  The I<oss.ss_flags> may return "
5985 "either of the following values:"
5986 msgstr ""
5987 "I<oss> が NULL 以外の場合、 I<oss> に代替シグナルスタックの情報が返される。 "
5988 "これは (実質的に)  B<sigaltstack>()  の呼び出しより先に行われる。 I<oss."
5989 "ss_sp> と I<oss.ss_size> フィールドに スタックの開始アドレスとスタックサイズ"
5990 "が返される。 I<oss.ss_flags> には以下のどちらかの値が返される:"
5991
5992 #. type: TP
5993 #: build/C/man2/sigaltstack.2:124
5994 #, no-wrap
5995 msgid "B<SS_ONSTACK>"
5996 msgstr "B<SS_ONSTACK>"
5997
5998 #. type: Plain text
5999 #: build/C/man2/sigaltstack.2:130
6000 msgid ""
6001 "The process is currently executing on the alternate signal stack.  (Note "
6002 "that it is not possible to change the alternate signal stack if the process "
6003 "is currently executing on it.)"
6004 msgstr ""
6005 "プロセスが代替シグナルスタック上で実行されている (プロセスが既にそのシグナル"
6006 "スタック上で実行されている場合は、 それと同じシグナルスタックには変更できない"
6007 "点に注意すること)。"
6008
6009 #. type: TP
6010 #: build/C/man2/sigaltstack.2:130
6011 #, no-wrap
6012 msgid "B<SS_DISABLE>"
6013 msgstr "B<SS_DISABLE>"
6014
6015 #. type: Plain text
6016 #: build/C/man2/sigaltstack.2:133
6017 msgid "The alternate signal stack is currently disabled."
6018 msgstr "代替シグナルスタックが現在無効になっている。"
6019
6020 #. type: Plain text
6021 #: build/C/man2/sigaltstack.2:137
6022 msgid ""
6023 "B<sigaltstack>()  returns 0 on success, or -1 on failure with I<errno> set "
6024 "to indicate the error."
6025 msgstr ""
6026 "B<sigaltstack>()  は成功した場合 0 を返す。 失敗した場合は -1 を返して、 エ"
6027 "ラーを示す値に I<errno> を設定する。"
6028
6029 #. type: Plain text
6030 #: build/C/man2/sigaltstack.2:142
6031 msgid ""
6032 "Either I<ss> or I<oss> is not NULL and points to an area outside of the "
6033 "process's address space."
6034 msgstr ""
6035 "I<ss> または I<oss> のどちらが、NULL 以外で、 かつプロセスのアドレス空間の外"
6036 "を指している。"
6037
6038 #. type: Plain text
6039 #: build/C/man2/sigaltstack.2:147
6040 msgid ""
6041 "I<ss> is not NULL and the I<ss_flags> field contains a nonzero value other "
6042 "than B<SS_DISABLE>."
6043 msgstr ""
6044 "I<ss> が NULL 以外で、I<ss_flags> フィールドが B<SS_DISABLE> 以外の 0 でない"
6045 "値になっている。"
6046
6047 #. type: Plain text
6048 #: build/C/man2/sigaltstack.2:151
6049 msgid ""
6050 "The specified size of the new alternate signal stack (I<ss.ss_size>) was "
6051 "less than B<MINSTKSZ>."
6052 msgstr ""
6053 "新しい代替シグナルスタック (I<ss.ss_size>) に指定したサイズが B<MINSTKSZ> よ"
6054 "り小さい。"
6055
6056 #. type: Plain text
6057 #: build/C/man2/sigaltstack.2:156
6058 msgid ""
6059 "An attempt was made to change the alternate signal stack while it was active "
6060 "(i.e., the process was already executing on the current alternate signal "
6061 "stack)."
6062 msgstr ""
6063 "代替シグナルスタックが有効であるときに変更を行おうとした (つまり、プロセスが"
6064 "既に現在の代替シグナルスタック上で実行されていた)。"
6065
6066 #. type: Plain text
6067 #: build/C/man2/sigaltstack.2:158
6068 msgid "SUSv2, SVr4, POSIX.1-2001."
6069 msgstr "SUSv2, SVr4, POSIX.1-2001."
6070
6071 #. type: Plain text
6072 #: build/C/man2/sigaltstack.2:166
6073 msgid ""
6074 "The most common usage of an alternate signal stack is to handle the "
6075 "B<SIGSEGV> signal that is generated if the space available for the normal "
6076 "process stack is exhausted: in this case, a signal handler for B<SIGSEGV> "
6077 "cannot be invoked on the process stack; if we wish to handle it, we must use "
6078 "an alternate signal stack."
6079 msgstr ""
6080 "代替シグナルスタックを使用する最もよくある場面は、 B<SIGSEGV> シグナルを扱う"
6081 "ときである。 B<SIGSEGV> はプロセスの通常のスタックが利用できる空間が使い果た"
6082 "された際に 生成されるシグナルである。この場合には、 B<SIGSEGV> 用のシグナルハ"
6083 "ンドラをプロセスのスタック上では起動することができない。 そのため、このシグナ"
6084 "ルを扱おうとする場合には、 代替シグナルスタックを使用しなければならない。"
6085
6086 #. type: Plain text
6087 #: build/C/man2/sigaltstack.2:176
6088 msgid ""
6089 "Establishing an alternate signal stack is useful if a process expects that "
6090 "it may exhaust its standard stack.  This may occur, for example, because the "
6091 "stack grows so large that it encounters the upwardly growing heap, or it "
6092 "reaches a limit established by a call to B<setrlimit(RLIMIT_STACK, &rlim)>.  "
6093 "If the standard stack is exhausted, the kernel sends the process a "
6094 "B<SIGSEGV> signal.  In these circumstances the only way to catch this signal "
6095 "is on an alternate signal stack."
6096 msgstr ""
6097 "プロセスが標準のシグナルスタックを使い果たすことが予想される場合は、 代替シグ"
6098 "ナルスタックを確立すると便利である。 例えば、スタックが最上位アドレスから 下"
6099 "位アドレス方向に非常にたくさん積まれてしまうことで、 最下位アドレスから上位ア"
6100 "ドレス方向に積まれるヒープとぶつかってしまう場合や、 B<setrlimit"
6101 "(RLIMIT_STACK, &rlim)> の呼び出しで確立された 制限に達してしまった場合に、こ"
6102 "の様な事が起こる。 標準のスタックを使い果たしてしまうと、 カーネルはプロセス"
6103 "に B<SIGSEGV> シグナルを送る。 このような状況では、代替シグナルスタック上でし"
6104 "かシグナルをキャッチできない。"
6105
6106 #. type: Plain text
6107 #: build/C/man2/sigaltstack.2:182
6108 msgid ""
6109 "On most hardware architectures supported by Linux, stacks grow downward.  "
6110 "B<sigaltstack>()  automatically takes account of the direction of stack "
6111 "growth."
6112 msgstr ""
6113 "Linux がサポートする多くのハードウェアアーキテクチャでは、 スタックは下位アド"
6114 "レス方向に積まれる。 B<sigaltstack>()  はスタックが積まれる方向を自動的に決定"
6115 "する。"
6116
6117 #. type: Plain text
6118 #: build/C/man2/sigaltstack.2:191
6119 msgid ""
6120 "Functions called from a signal handler executing on an alternate signal "
6121 "stack will also use the alternate signal stack.  (This also applies to any "
6122 "handlers invoked for other signals while the process is executing on the "
6123 "alternate signal stack.)  Unlike the standard stack, the system does not "
6124 "automatically extend the alternate signal stack.  Exceeding the allocated "
6125 "size of the alternate signal stack will lead to unpredictable results."
6126 msgstr ""
6127 "代替シグナルスタック上で実行されている シグナルハンドラから呼ばれる関数も、代"
6128 "替シグナルハンドラを使う (プロセスが代替シグナルスタック上で実行されている場"
6129 "合、 他のシグナルで呼び出されるハンドラもこの代替シグナルハンドラを使う)。 標"
6130 "準のスタックとは異なり、 システムは代替シグナルスタックを自動的に拡張しな"
6131 "い。 代替シグナルスタック用に確保したサイズを越えた場合、 結果は予想できな"
6132 "い。"
6133
6134 #. type: Plain text
6135 #: build/C/man2/sigaltstack.2:199
6136 msgid ""
6137 "A successful call to B<execve>(2)  removes any existing alternate signal "
6138 "stack.  A child process created via B<fork>(2)  inherits a copy of its "
6139 "parent's alternate signal stack settings."
6140 msgstr ""
6141 "B<execve>(2)  の呼び出しが成功すると、 既存の全ての代替シグナルスタックが削除"
6142 "される。 B<fork>(2)  経由で作成された子プロセスは、親プロセスの代替シグナルス"
6143 "タックの 設定のコピーを継承する。"
6144
6145 #. type: Plain text
6146 #: build/C/man2/sigaltstack.2:208
6147 msgid ""
6148 "B<sigaltstack>()  supersedes the older B<sigstack>()  call.  For backward "
6149 "compatibility, glibc also provides B<sigstack>().  All new applications "
6150 "should be written using B<sigaltstack>()."
6151 msgstr ""
6152 "B<sigaltstack>()  は以前の B<sigstack>()  を置き換えるものである。 過去プログ"
6153 "ラムとの互換性のため、glibc では B<sigstack>()  も提供している。 新しいのアプ"
6154 "リケーションは全て B<sigaltstack>()  を使って書くべきである。"
6155
6156 #. type: SS
6157 #: build/C/man2/sigaltstack.2:208 build/C/man3/sigpause.3:66
6158 #, no-wrap
6159 msgid "History"
6160 msgstr "歴史"
6161
6162 #. type: Plain text
6163 #: build/C/man2/sigaltstack.2:215
6164 msgid ""
6165 "4.2BSD had a B<sigstack>()  system call.  It used a slightly different "
6166 "struct, and had the major disadvantage that the caller had to know the "
6167 "direction of stack growth."
6168 msgstr ""
6169 "4.2BSD には B<sigstack>()  システムコールがあった。 この関数は少し異なった構"
6170 "造体を使っており、 呼び出した側がスタックの積まれる方向を知っていなければなら"
6171 "ないという 大きな欠点があった。"
6172
6173 #. type: Plain text
6174 #: build/C/man2/sigaltstack.2:218
6175 msgid "The following code segment demonstrates the use of B<sigaltstack>():"
6176 msgstr "以下のコードで B<sigaltstack>()  の使用法の一部を示す:"
6177
6178 #. type: Plain text
6179 #: build/C/man2/sigaltstack.2:222
6180 #, no-wrap
6181 msgid "stack_t ss;\n"
6182 msgstr "stack_t ss;\n"
6183
6184 #. type: Plain text
6185 #: build/C/man2/sigaltstack.2:230
6186 #, no-wrap
6187 msgid ""
6188 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6189 "if (ss.ss_sp == NULL)\n"
6190 "    /* Handle error */;\n"
6191 "ss.ss_size = SIGSTKSZ;\n"
6192 "ss.ss_flags = 0;\n"
6193 "if (sigaltstack(&ss, NULL) == -1)\n"
6194 "    /* Handle error */;\n"
6195 msgstr ""
6196 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6197 "if (ss.ss_sp == NULL)\n"
6198 "    /* ハンドルエラー */;\n"
6199 "ss.ss_size = SIGSTKSZ;\n"
6200 "ss.ss_flags = 0;\n"
6201 "if (sigaltstack(&ss, NULL) == -1)\n"
6202 "    /* ハンドルエラー */;\n"
6203
6204 #. type: Plain text
6205 #: build/C/man2/sigaltstack.2:239
6206 msgid ""
6207 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6208 "B<sigsetjmp>(3), B<signal>(7)"
6209 msgstr ""
6210 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6211 "B<sigsetjmp>(3), B<signal>(7)"
6212
6213 #. type: TH
6214 #: build/C/man7/sigevent.7:26
6215 #, no-wrap
6216 msgid "SIGEVENT"
6217 msgstr "SIGEVENT"
6218
6219 #. type: TH
6220 #: build/C/man7/sigevent.7:26
6221 #, no-wrap
6222 msgid "2011-09-09"
6223 msgstr "2011-09-09"
6224
6225 #. type: Plain text
6226 #: build/C/man7/sigevent.7:29
6227 msgid "sigevent - structure for notification from asynchronous routines"
6228 msgstr "sigevent - 非同期ルーチンからの通知用の構造体"
6229
6230 #. type: Plain text
6231 #: build/C/man7/sigevent.7:36
6232 #, no-wrap
6233 msgid ""
6234 "union sigval {          /* Data passed with notification */\n"
6235 "    int     sival_int;         /* Integer value */\n"
6236 "    void   *sival_ptr;         /* Pointer value */\n"
6237 "};\n"
6238 msgstr ""
6239 "union sigval {          /* Data passed with notification */\n"
6240 "    int     sival_int;         /* Integer value */\n"
6241 "    void   *sival_ptr;         /* Pointer value */\n"
6242 "};\n"
6243
6244 #. type: Plain text
6245 #: build/C/man7/sigevent.7:51
6246 #, no-wrap
6247 msgid ""
6248 "struct sigevent {\n"
6249 "    int          sigev_notify; /* Notification method */\n"
6250 "    int          sigev_signo;  /* Notification signal */\n"
6251 "    union sigval sigev_value;  /* Data passed with\n"
6252 "                                  notification */\n"
6253 "    void       (*sigev_notify_function) (union sigval);\n"
6254 "                     /* Function used for thread\n"
6255 "                        notification (SIGEV_THREAD) */\n"
6256 "    void        *sigev_notify_attributes;\n"
6257 "                     /* Attributes for notification thread\n"
6258 "                        (SIGEV_THREAD) */\n"
6259 "    pid_t        sigev_notify_thread_id;\n"
6260 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6261 "};\n"
6262 msgstr ""
6263 "struct sigevent {\n"
6264 "    int          sigev_notify; /* Notification method */\n"
6265 "    int          sigev_signo;  /* Notification signal */\n"
6266 "    union sigval sigev_value;  /* Data passed with\n"
6267 "                                  notification */\n"
6268 "    void       (*sigev_notify_function) (union sigval);\n"
6269 "                     /* Function used for thread\n"
6270 "                        notification (SIGEV_THREAD) */\n"
6271 "    void        *sigev_notify_attributes;\n"
6272 "                     /* Attributes for notification thread\n"
6273 "                        (SIGEV_THREAD) */\n"
6274 "    pid_t        sigev_notify_thread_id;\n"
6275 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6276 "};\n"
6277
6278 #. type: Plain text
6279 #: build/C/man7/sigevent.7:60
6280 msgid ""
6281 "The I<sigevent> structure is used by various APIs to describe the way a "
6282 "process is to be notified about an event (e.g., completion of an "
6283 "asynchronous request, expiration of a timer, or the arrival of a message)."
6284 msgstr ""
6285 "I<sigevent> 構造体は、イベントに関する情報をプロセスに通知するために様々な "
6286 "API で使用される (イベントの例としては、 非同期処理要求の完了、 タイマーの満"
6287 "了、 メッセージの到着など)。"
6288
6289 #. type: Plain text
6290 #: build/C/man7/sigevent.7:68
6291 msgid ""
6292 "The definition shown in the SYNOPSIS is approximate: some of the fields in "
6293 "the I<sigevent> structure may be defined as part of a union.  Programs "
6294 "should employ only those fields relevant to the value specified in "
6295 "I<sigev_notify>."
6296 msgstr ""
6297 "「書式」に記載されている定義はおおよそのものである。 I<sigevent> 構造体のいく"
6298 "つかのフィールドは、 共用体の一部として定義されているものもある。 プログラム"
6299 "は、 I<sigev_notify> で指定された値に応じたフィールドだけを利用すべきである。"
6300
6301 #. type: Plain text
6302 #: build/C/man7/sigevent.7:73
6303 msgid ""
6304 "The I<sigev_notify> field specifies how notification is to be performed.  "
6305 "This field can have one of the following values:"
6306 msgstr ""
6307 "I<sigev_notify> フィールドは、通知をどのように処理すべきかを指定する。 この"
6308 "フィールドは、以下のいずれかの値である。"
6309
6310 #. type: TP
6311 #: build/C/man7/sigevent.7:73 build/C/man2/timer_create.2:107
6312 #, no-wrap
6313 msgid "B<SIGEV_NONE>"
6314 msgstr "B<SIGEV_NONE>"
6315
6316 #. type: Plain text
6317 #: build/C/man7/sigevent.7:76
6318 msgid "A \"null\" notification: don't do anything when the event occurs."
6319 msgstr "「空 (null)」の通知。 イベントが発生時には何もしないこと。"
6320
6321 #. type: TP
6322 #: build/C/man7/sigevent.7:76 build/C/man2/timer_create.2:112
6323 #, no-wrap
6324 msgid "B<SIGEV_SIGNAL>"
6325 msgstr "B<SIGEV_SIGNAL>"
6326
6327 #. type: Plain text
6328 #: build/C/man7/sigevent.7:80
6329 msgid "Notify the process by sending the signal specified in I<sigev_signo>."
6330 msgstr ""
6331 "I<sigev_signo> で指定されたシグナルを送信することで、プロセスへの通知を行う。"
6332
6333 #. type: Plain text
6334 #: build/C/man7/sigevent.7:87
6335 msgid ""
6336 "If the signal is caught with a signal handler that was registered using the "
6337 "B<sigaction>(2)  B<SA_SIGINFO> flag, then the following fields are set in "
6338 "the I<siginfo_t> structure that is passed as the second argument of the "
6339 "handler:"
6340 msgstr ""
6341 "B<sigaction>(2) の B<SA_SIGINFO> フラグを使った登録されたシグナルハンドラによ"
6342 "りシグナルが捕捉されると、 シグナルハンドラの 2 番目の引き数として渡された "
6343 "I<siginfo_t> 構造体の以下のフィールドが設定される。"
6344
6345 #. type: Plain text
6346 #: build/C/man7/sigevent.7:92
6347 msgid ""
6348 "This field is set to a value that depends on the API delivering the "
6349 "notification."
6350 msgstr "このフィールドには通知を配送した API に応じた決まる値が設定される。"
6351
6352 #. type: TP
6353 #: build/C/man7/sigevent.7:92 build/C/man2/wait.2:302
6354 #, no-wrap
6355 msgid "I<si_signo>"
6356 msgstr "I<si_signo>"
6357
6358 #. type: Plain text
6359 #: build/C/man7/sigevent.7:96
6360 msgid ""
6361 "This field is set to the signal number (i.e., the same value as in "
6362 "I<sigev_signo>)."
6363 msgstr ""
6364 "このフィールドにはシグナル番号 (すなわち I<sigev_signo> と同じ値) が設定され"
6365 "る。"
6366
6367 #. type: Plain text
6368 #: build/C/man7/sigevent.7:100
6369 msgid "This field is set to the value specified in I<sigev_value>."
6370 msgstr "このフィールドには I<sigev_value> で指定された値が設定される。"
6371
6372 #. type: Plain text
6373 #: build/C/man7/sigevent.7:105
6374 msgid ""
6375 "Depending on the API, other fields may also be set in the I<siginfo_t> "
6376 "structure."
6377 msgstr ""
6378 "API によっては I<siginfo_t> 構造体の他のフィールドが設定される場合もある。"
6379
6380 #. type: Plain text
6381 #: build/C/man7/sigevent.7:108
6382 msgid ""
6383 "The same information is also available if the signal is accepted using "
6384 "B<sigwaitinfo>(2)."
6385 msgstr ""
6386 "シグナルを受け取ったときには B<sigwaitinfo>(2) でも同じ情報が得られる。"
6387
6388 #. type: TP
6389 #: build/C/man7/sigevent.7:108 build/C/man2/timer_create.2:130
6390 #, no-wrap
6391 msgid "B<SIGEV_THREAD>"
6392 msgstr "B<SIGEV_THREAD>"
6393
6394 #. type: Plain text
6395 #: build/C/man7/sigevent.7:125
6396 msgid ""
6397 "Notify the process by invoking I<sigev_notify_function> \"as if\" it were "
6398 "the start function of a new thread.  (Among the implementation possibilities "
6399 "here are that each timer notification could result in the creation of a new "
6400 "thread, or that a single thread is created to receive all notifications.)  "
6401 "The function is invoked with I<sigev_value> as its sole argument.  If "
6402 "I<sigev_notify_attributes> is not NULL, it should point to a "
6403 "I<pthread_attr_t> structure that defines attributes for the new thread (see "
6404 "B<pthread_attr_init>(3))."
6405 msgstr ""
6406 "「あたかも」新しいスレッドセーフの開始関数であるかのように "
6407 "I<sigev_notify_function> を起動することで、 プロセスへの通知を行う (実装の可"
6408 "能性としては、 タイマー通知の度に新しいスレッドセーフが作成される場合も、 一"
6409 "つのスレッドを作成してすべての通知を受信する場合もある)。 この関数は "
6410 "I<sigev_value> を唯一の引き数として起動される。 I<sigev_notify_attributes> "
6411 "は、 NULL 以外の場合は、 新しいスレッドセーフの属性を定義する "
6412 "I<pthread_attr_t> 構造体を指していなければならない (B<pthread_attr_init>(3) "
6413 "参照)。"
6414
6415 #. type: TP
6416 #: build/C/man7/sigevent.7:125 build/C/man2/timer_create.2:138
6417 #, no-wrap
6418 msgid "B<SIGEV_THREAD_ID> (Linux-specific)"
6419 msgstr "B<SIGEV_THREAD_ID> (Linux 固有)"
6420
6421 #.  | SIGEV_SIGNAL vs not?
6422 #. type: Plain text
6423 #: build/C/man7/sigevent.7:130
6424 msgid "Currently used only by POSIX timers; see B<timer_create>(2)."
6425 msgstr "現在のところ POSIX でのみ使用されている。 B<timer_create>(2) 参照。"
6426
6427 #. type: Plain text
6428 #: build/C/man7/sigevent.7:132 build/C/man2/sigpending.2:66
6429 #: build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:121
6430 #: build/C/man3/sigsetops.3:133 build/C/man2/sigsuspend.2:86
6431 #: build/C/man3/sigwait.3:87 build/C/man2/sigwaitinfo.2:135
6432 #: build/C/man2/timer_create.2:195 build/C/man2/timer_delete.2:69
6433 #: build/C/man2/timer_getoverrun.2:99 build/C/man2/timer_settime.2:209
6434 msgid "POSIX.1-2001."
6435 msgstr "POSIX.1-2001."
6436
6437 #. type: Plain text
6438 #: build/C/man7/sigevent.7:142
6439 msgid ""
6440 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6441 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6442 "B<pthreads>(7)"
6443 msgstr ""
6444 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6445 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6446 "B<pthreads>(7)"
6447
6448 #. type: TH
6449 #: build/C/man3/siginterrupt.3:31
6450 #, no-wrap
6451 msgid "SIGINTERRUPT"
6452 msgstr "SIGINTERRUPT"
6453
6454 #. type: TH
6455 #: build/C/man3/siginterrupt.3:31 build/C/man2/signal.2:36
6456 #: build/C/man2/sigprocmask.2:29 build/C/man2/sigsuspend.2:29
6457 #, no-wrap
6458 msgid "2013-04-19"
6459 msgstr "2013-04-19"
6460
6461 #. type: Plain text
6462 #: build/C/man3/siginterrupt.3:34
6463 msgid "siginterrupt - allow signals to interrupt system calls"
6464 msgstr "siginterrupt - シグナルでシステム・コールに割り込むことを許す"
6465
6466 #. type: Plain text
6467 #: build/C/man3/siginterrupt.3:39
6468 #, no-wrap
6469 msgid "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6470 msgstr "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6471
6472 #. type: Plain text
6473 #: build/C/man3/siginterrupt.3:47
6474 msgid "B<siginterrupt>():"
6475 msgstr "B<siginterrupt>():"
6476
6477 #. type: Plain text
6478 #: build/C/man3/siginterrupt.3:64
6479 msgid ""
6480 "The B<siginterrupt>()  function changes the restart behavior when a system "
6481 "call is interrupted by the signal I<sig>.  If the I<flag> argument is false "
6482 "(0), then system calls will be restarted if interrupted by the specified "
6483 "signal I<sig>.  This is the default behavior in Linux."
6484 msgstr ""
6485 "B<siginterrupt>()  関数は、システム・コールがシグナル I<sig> によって割り込ま"
6486 "れた後、再実行の際の振る舞いを変更する。 I<flag> 引き数が偽 (0) ならば、シス"
6487 "テム・コールが指定した シグナル I<sig> によって割り込まれた後に、そのシステ"
6488 "ム・コールは 再実行される。これは Linux においてデフォルトの動作である。"
6489
6490 #. type: Plain text
6491 #: build/C/man3/siginterrupt.3:69
6492 msgid ""
6493 "If the I<flag> argument is true (1) and no data has been transferred, then a "
6494 "system call interrupted by the signal I<sig> will return -1 and I<errno> "
6495 "will be set to B<EINTR>."
6496 msgstr ""
6497 "I<flag> 引き数が真 (1) でデータの転送が全く行なわれていないならば、 シグナル "
6498 "I<sig> でシステム・コールは中断されて、-1 が返され、 I<errno> に B<EINTR> が"
6499 "設定される。"
6500
6501 #. type: Plain text
6502 #: build/C/man3/siginterrupt.3:73
6503 msgid ""
6504 "If the I<flag> argument is true (1) and data transfer has started, then the "
6505 "system call will be interrupted and will return the actual amount of data "
6506 "transferred."
6507 msgstr ""
6508 "I<flag> 引き数が真 (1) でデータの転送が開始されていれば、 システム・コールは"
6509 "中断され、それまでに実際に転送されたデータ の量が返される。"
6510
6511 #. type: Plain text
6512 #: build/C/man3/siginterrupt.3:83
6513 msgid ""
6514 "The B<siginterrupt>()  function returns 0 on success.  It returns -1 if the "
6515 "signal number I<sig> is invalid, with I<errno> set to indicate the cause of "
6516 "the error."
6517 msgstr ""
6518 "B<siginterrupt>()  関数は成功した場合 0 を返す。 シグナル番号 I<sig> が不正な"
6519 "場合、 -1 を返し、 I<errno> にエラーの原因を示す値を設定する。"
6520
6521 #. type: Plain text
6522 #: build/C/man3/siginterrupt.3:87
6523 msgid "The specified signal number is invalid."
6524 msgstr "指定したシグナル番号が不正である。"
6525
6526 #. type: Plain text
6527 #: build/C/man3/siginterrupt.3:96
6528 msgid ""
6529 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 marks B<siginterrupt>()  as obsolete, "
6530 "recommending the use of B<sigaction>(2)  with the B<SA_RESTART> flag instead."
6531 msgstr ""
6532 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 は、 B<siginterrupt>()  を廃止予定として"
6533 "いる。 代わりに、 B<sigaction>(2)  に B<SA_RESTART> フラグを指定して使うこと"
6534 "を推奨している。"
6535
6536 #. type: Plain text
6537 #: build/C/man3/siginterrupt.3:98
6538 msgid "B<signal>(2)"
6539 msgstr "B<signal>(2)"
6540
6541 #. type: TH
6542 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
6543 #, no-wrap
6544 msgid "SIGNAL"
6545 msgstr "SIGNAL"
6546
6547 #. type: Plain text
6548 #: build/C/man2/signal.2:39
6549 msgid "signal - ANSI C signal handling"
6550 msgstr "signal - ANSI C シグナル操作"
6551
6552 #. type: Plain text
6553 #: build/C/man2/signal.2:45
6554 msgid "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
6555 msgstr ""
6556 "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<sighandler>B<);>"
6557
6558 #. type: Plain text
6559 #: build/C/man2/signal.2:54
6560 msgid ""
6561 "The behavior of B<signal>()  varies across UNIX versions, and has also "
6562 "varied historically across different versions of Linux.  B<Avoid its use>: "
6563 "use B<sigaction>(2)  instead.  See I<Portability> below."
6564 msgstr ""
6565 "B<signal>()  の動作は UNIX のバージョンにより異なる。 また、歴史的に見て "
6566 "Linux のバージョンによっても異なっている。 B<このシステムコールの使用は避け、"
6567 "> 代わりに B<sigaction>(2)  を使用すること。 下記の「移植性」を参照。"
6568
6569 #. type: Plain text
6570 #: build/C/man2/signal.2:64
6571 msgid ""
6572 "B<signal>()  sets the disposition of the signal I<signum> to I<handler>, "
6573 "which is either B<SIG_IGN>, B<SIG_DFL>, or the address of a programmer-"
6574 "defined function (a \"signal handler\")."
6575 msgstr ""
6576 "B<signal>()  はシグナル I<signum> の処理方法を I<handler> に設定する。 "
6577 "I<handler> には、 B<SIG_IGN>、 B<SIG_DFL>、 プログラマが定義した関数 (「シグ"
6578 "ナル・ハンドラ」) のアドレスの いずれかを指定する。"
6579
6580 #. type: Plain text
6581 #: build/C/man2/signal.2:68
6582 msgid ""
6583 "If the signal I<signum> is delivered to the process, then one of the "
6584 "following happens:"
6585 msgstr ""
6586 "シグナル I<signum> がプロセスに配送されると、以下のいずれかが発生する。"
6587
6588 #. type: Plain text
6589 #: build/C/man2/signal.2:73
6590 msgid "If the disposition is set to B<SIG_IGN>, then the signal is ignored."
6591 msgstr "処理方法が B<SIG_IGN> に設定されている場合、そのシグナルは無視される。"
6592
6593 #. type: Plain text
6594 #: build/C/man2/signal.2:80
6595 msgid ""
6596 "If the disposition is set to B<SIG_DFL>, then the default action associated "
6597 "with the signal (see B<signal>(7))  occurs."
6598 msgstr ""
6599 "処理方法が B<SIG_DFL> に設定されている場合、シグナルに関連づけられた デフォル"
6600 "トの動作が行われる (B<signal>(7)  参照)。"
6601
6602 #. type: Plain text
6603 #: build/C/man2/signal.2:91
6604 msgid ""
6605 "If the disposition is set to a function, then first either the disposition "
6606 "is reset to B<SIG_DFL>, or the signal is blocked (see I<Portability> below), "
6607 "and then I<handler> is called with argument I<signum>.  If invocation of the "
6608 "handler caused the signal to be blocked, then the signal is unblocked upon "
6609 "return from the handler."
6610 msgstr ""
6611 "処理方法として関数が設定されている場合、 まず最初に処理方法が B<SIG_DFL> にリ"
6612 "セットされるかそのシグナルのブロックが実行された後、 I<signum> を引き数とし"
6613 "て I<handler> が呼び出される。 ハンドラが起動される際にシグナルがブロックされ"
6614 "た場合、 ハンドラが返る際にそのシグナルのブロックが解除される。"
6615
6616 #. type: Plain text
6617 #: build/C/man2/signal.2:97
6618 msgid "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught or ignored."
6619 msgstr ""
6620 "シグナル B<SIGKILL> と B<SIGSTOP> は捕捉できず、無視することもできない。"
6621
6622 #. type: Plain text
6623 #: build/C/man2/signal.2:105
6624 msgid ""
6625 "B<signal>()  returns the previous value of the signal handler, or B<SIG_ERR> "
6626 "on error.  In the event of an error, I<errno> is set to indicate the cause."
6627 msgstr ""
6628 "B<signal>()  は、今までのシグナル・ハンドラの値を返す。 エラーの場合は "
6629 "B<SIG_ERR> を返し、 I<errno> にエラーの原因を示す値を設定する。"
6630
6631 #. type: Plain text
6632 #: build/C/man2/signal.2:110
6633 msgid "I<signum> is invalid."
6634 msgstr "I<signum> が不正である。"
6635
6636 #. type: Plain text
6637 #: build/C/man2/signal.2:116
6638 msgid "The effects of B<signal>()  in a multithreaded process are unspecified."
6639 msgstr ""
6640 "マルチスレッドプロセスにおける B<signal>()  の結果は、指定されていない。"
6641
6642 #. type: Plain text
6643 #: build/C/man2/signal.2:141
6644 msgid ""
6645 "See B<sigaction>(2)  for details on what happens when B<SIGCHLD> is set to "
6646 "B<SIG_IGN>."
6647 msgstr ""
6648 "B<SIGCHLD> の動作として B<SIG_IGN> を設定した場合の詳細な動作については、 "
6649 "B<sigaction>(2)  を参照すること。"
6650
6651 #. type: Plain text
6652 #: build/C/man2/signal.2:146
6653 msgid ""
6654 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
6655 "safely called from inside a signal handler."
6656 msgstr ""
6657 "シグナル・ハンドラ内から安全に呼び出すことができる、 async-signal-safe "
6658 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
6659 "照。"
6660
6661 #.  libc4 and libc5 define
6662 #.  .IR SignalHandler ;
6663 #. type: Plain text
6664 #: build/C/man2/signal.2:162
6665 msgid ""
6666 "The use of I<sighandler_t> is a GNU extension, exposed if B<_GNU_SOURCE> is "
6667 "defined; glibc also defines (the BSD-derived)  I<sig_t> if B<_BSD_SOURCE> is "
6668 "defined.  Without use of such a type, the declaration of B<signal>()  is the "
6669 "somewhat harder to read:"
6670 msgstr ""
6671 "I<sighandler_t> の使用は GNU 拡張であり、 B<_GNU_SOURCE> が定義された\n"
6672 "場合に公開される。glibc では B<_BSD_SOURCE> が定義された場合には (BSD\n"
6673 "由来の) I<sig_t> も定義される。このような型を使用しないと、\n"
6674 "B<signal>() の宣言は読みにくいものとなる。"
6675
6676 #. type: Plain text
6677 #: build/C/man2/signal.2:166
6678 #, no-wrap
6679 msgid "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6680 msgstr "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6681
6682 #. type: SS
6683 #: build/C/man2/signal.2:168
6684 #, no-wrap
6685 msgid "Portability"
6686 msgstr "移植性"
6687
6688 #. type: Plain text
6689 #: build/C/man2/signal.2:180
6690 msgid ""
6691 "The only portable use of B<signal>()  is to set a signal's disposition to "
6692 "B<SIG_DFL> or B<SIG_IGN>.  The semantics when using B<signal>()  to "
6693 "establish a signal handler vary across systems (and POSIX.1 explicitly "
6694 "permits this variation); B<do not use it for this purpose.>"
6695 msgstr ""
6696 "移植性のある B<signal>()  の使い方は、シグナルの処理方法を B<SIG_DFL> か "
6697 "B<SIG_IGN> に設定する方法だけである。 シグナル・ハンドラを設定するのに "
6698 "B<signal>()  を使ったときの動作はシステムにより異なる (POSIX.1 は明示的にこの"
6699 "違いを認めている)。 B<移植性が必要なときはこのシステムコールを使用しないこ"
6700 "と。>"
6701
6702 #. type: Plain text
6703 #: build/C/man2/signal.2:186
6704 msgid ""
6705 "POSIX.1 solved the portability mess by specifying B<sigaction>(2), which "
6706 "provides explicit control of the semantics when a signal handler is invoked; "
6707 "use that interface instead of B<signal>()."
6708 msgstr ""
6709 "POSIX.1 は、 B<sigaction>(2)  を規定することで移植性に関する混乱を解決した。 "
6710 "B<sigaction>(2)  はシグナル・ハンドラが起動される際の挙動を明示的に制御でき"
6711 "る。 B<signal>()  の代わりにこのインターフェイスを使うこと。"
6712
6713 #. type: Plain text
6714 #: build/C/man2/signal.2:196
6715 msgid ""
6716 "In the original UNIX systems, when a handler that was established using "
6717 "B<signal>()  was invoked by the delivery of a signal, the disposition of the "
6718 "signal would be reset to B<SIG_DFL>, and the system did not block delivery "
6719 "of further instances of the signal.  This is equivalent to calling "
6720 "B<sigaction>(2)  with the following flags:"
6721 msgstr ""
6722 "オリジナルの UNIX システムでは、 B<signal>()  を使って設定されたハンドラがシ"
6723 "グナルの配送により起動されると、 そのシグナルの処理方法は B<SIG_DFL> にリセッ"
6724 "トされ、システムは同じシグナルがさらに生成されても シグナルの配送をブロックし"
6725 "なかった。これは、以下のフラグで B<sigaction>(2) を呼び出すのと等価である。"
6726
6727 #. type: Plain text
6728 #: build/C/man2/signal.2:198
6729 #, no-wrap
6730 msgid "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6731 msgstr "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6732
6733 #. type: Plain text
6734 #: build/C/man2/signal.2:205
6735 msgid ""
6736 "System V also provides these semantics for B<signal>().  This was bad "
6737 "because the signal might be delivered again before the handler had a chance "
6738 "to reestablish itself.  Furthermore, rapid deliveries of the same signal "
6739 "could result in recursive invocations of the handler."
6740 msgstr ""
6741 "System V でも、 B<signal>()  に対してこれらの挙動を規定している。 こうした挙"
6742 "動はまずく、ハンドラがハンドラ自身を再設定する機会が 来るより前に、同じシグナ"
6743 "ルがまた配送される可能性がある。 さらに、同じシグナルが立て続けに配送される"
6744 "と、同じシグナルが ハンドラを繰り返し起動されることになる。"
6745
6746 #. type: Plain text
6747 #: build/C/man2/signal.2:220
6748 msgid ""
6749 "BSD improved on this situation, but unfortunately also changed the semantics "
6750 "of the existing B<signal>()  interface while doing so.  On BSD, when a "
6751 "signal handler is invoked, the signal disposition is not reset, and further "
6752 "instances of the signal are blocked from being delivered while the handler "
6753 "is executing.  Furthermore, certain blocking system calls are automatically "
6754 "restarted if interrupted by a signal handler (see B<signal>(7)).  The BSD "
6755 "semantics are equivalent to calling B<sigaction>(2)  with the following "
6756 "flags:"
6757 msgstr ""
6758 "BSD はこの状況が改善したが、残念なことに、その過程で既存の B<signal>() の挙動"
6759 "も変更された。 BSD では、シグナルハンドラが起動された際、 シグナルの処理方法"
6760 "はリセットされず、 ハンドラの実行中は、同じシグナルのさらなる生成は配送がブ"
6761 "ロックされる。 また、 シグナルハンドラが中断された場合、 停止中のシステムコー"
6762 "ルのいくつかは自動的に再スタートされる。 BSD の挙動は、 以下のフラグを指定し"
6763 "た B<sigaction>(2) の呼び出しと等価である。"
6764
6765 #. type: Plain text
6766 #: build/C/man2/signal.2:222
6767 #, no-wrap
6768 msgid "    sa.sa_flags = SA_RESTART;\n"
6769 msgstr "    sa.sa_flags = SA_RESTART;\n"
6770
6771 #. type: Plain text
6772 #: build/C/man2/signal.2:224
6773 msgid "The situation on Linux is as follows:"
6774 msgstr "Linux での状況は以下の通りである。"
6775
6776 #. type: Plain text
6777 #: build/C/man2/signal.2:228
6778 msgid "The kernel's B<signal>()  system call provides System V semantics."
6779 msgstr "カーネルの B<signal>()  システムコールは System V 方式を提供している。"
6780
6781 #. type: Plain text
6782 #: build/C/man2/signal.2:244
6783 msgid ""
6784 "By default, in glibc 2 and later, the B<signal>()  wrapper function does not "
6785 "invoke the kernel system call.  Instead, it calls B<sigaction>(2)  using "
6786 "flags that supply BSD semantics.  This default behavior is provided as long "
6787 "as the B<_BSD_SOURCE> feature test macro is defined.  By default, "
6788 "B<_BSD_SOURCE> is defined; it is also implicitly defined if one defines "
6789 "B<_GNU_SOURCE>, and can of course be explicitly defined."
6790 msgstr ""
6791 "デフォルトでは、glibc 2 以降では、 B<signal>()  ラッパー関数はカーネルのシス"
6792 "テムコールを起動しない。 代わりに、ラッパー関数は BSD 方式を示すフラグを使っ"
6793 "て B<sigaction>(2)  を呼び出す。 機能検査マクロ B<_BSD_SOURCE> を定義していれ"
6794 "ば、このデフォルトの動作となる。 デフォルトでは、 B<_BSD_SOURCE> が定義され"
6795 "る。 B<_BSD_SOURCE> は B<_GNU_SOURCE> が定義された場合には暗黙のうちに定義さ"
6796 "れ、 もちろん明示的に定義することもできる。"
6797
6798 #.  System V semantics are also provided if one uses the separate
6799 #.  .BR sysv_signal (3)
6800 #.  function.
6801 #. type: Plain text
6802 #: build/C/man2/signal.2:267
6803 msgid ""
6804 "On glibc 2 and later, if the B<_BSD_SOURCE> feature test macro is not "
6805 "defined, then B<signal>()  provides System V semantics.  (The default "
6806 "implicit definition of B<_BSD_SOURCE> is not provided if one invokes B<gcc>"
6807 "(1)  in one of its standard modes (I<-std=xxx> or I<-ansi>)  or defines "
6808 "various other feature test macros such as B<_POSIX_SOURCE>, "
6809 "B<_XOPEN_SOURCE>, or B<_SVID_SOURCE>; see B<feature_test_macros>(7).)"
6810 msgstr ""
6811 "glibc 2 以降では、機能検査マクロ B<_BSD_SOURCE> が定義されていなければ、 "
6812 "B<signal>()  は System V 方式となる。 (B<gcc>(1)  が標準指定モード (I<-"
6813 "std=xxx> or I<-ansi>)  で起動された場合、もしくは B<_POSIX_SOURCE>, "
6814 "B<_XOPEN_SOURCE>, B<_SVID_SOURCE> といった他の様々な機能検査マクロが定義され"
6815 "た場合、 デフォルトの B<_BSD_SOURCE> の暗黙の定義は行われない。 "
6816 "B<feature_test_macros>(7)  を参照のこと。)"
6817
6818 #. type: Plain text
6819 #: build/C/man2/signal.2:278
6820 msgid ""
6821 "The B<signal>()  function in Linux libc4 and libc5 provide System V "
6822 "semantics.  If one on a libc5 system includes I<E<lt>bsd/signal.hE<gt>> "
6823 "instead of I<E<lt>signal.hE<gt>>, then B<signal>()  provides BSD semantics."
6824 msgstr ""
6825 "Linux の libc4 と libc5 の B<signal>()  関数は System V 方式である。 libc5 シ"
6826 "ステムにおいて I<E<lt>signal.hE<gt>> のかわりに I<E<lt>bsd/signal.hE<gt>> を"
6827 "インクルードすると、 B<signal>()  は B<__bsd_signal>()  に再定義され、 "
6828 "B<signal>()  は BSD 方式となる。"
6829
6830 #. type: Plain text
6831 #: build/C/man2/signal.2:297
6832 msgid ""
6833 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaction>"
6834 "(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6835 "B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6836 "B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), B<signal>(7)"
6837 msgstr ""
6838 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaction>"
6839 "(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6840 "B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6841 "B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), B<signal>(7)"
6842
6843 #. type: Plain text
6844 #: build/C/man7/signal.7:49
6845 msgid "signal - overview of signals"
6846 msgstr "signal - シグナルの概要"
6847
6848 #. type: Plain text
6849 #: build/C/man7/signal.7:52
6850 msgid ""
6851 "Linux supports both POSIX reliable signals (hereinafter \"standard signals"
6852 "\") and POSIX real-time signals."
6853 msgstr ""
6854 "Linux は POSIX 信頼シグナル (reliable signal; 以後 \"標準シグナル\"と表記)  "
6855 "と POSIX リアルタイムシグナルの両方に対応している。"
6856
6857 #. type: SS
6858 #: build/C/man7/signal.7:52
6859 #, no-wrap
6860 msgid "Signal dispositions"
6861 msgstr "シグナル処理方法"
6862
6863 #. type: Plain text
6864 #: build/C/man7/signal.7:57
6865 msgid ""
6866 "Each signal has a current I<disposition>, which determines how the process "
6867 "behaves when it is delivered the signal."
6868 msgstr ""
6869 "シグナルはそれぞれ現在の「処理方法 (disposition)」を保持しており、 この処理方"
6870 "法によりシグナルが配送された際にプロセスが どのような振舞いをするかが決まる。"
6871
6872 #. type: Plain text
6873 #: build/C/man7/signal.7:60
6874 msgid ""
6875 "The entries in the \"Action\" column of the tables below specify the default "
6876 "disposition for each signal, as follows:"
6877 msgstr ""
6878 "後述の表の \"動作\" の欄のエントリは各シグナルのデフォルトの 処理方法を示して"
6879 "おり、以下のような意味を持つ。"
6880
6881 #. type: IP
6882 #: build/C/man7/signal.7:60
6883 #, no-wrap
6884 msgid "Term"
6885 msgstr "Term"
6886
6887 #. type: Plain text
6888 #: build/C/man7/signal.7:62
6889 msgid "Default action is to terminate the process."
6890 msgstr "デフォルトの動作はプロセス終了。"
6891
6892 #. type: IP
6893 #: build/C/man7/signal.7:62
6894 #, no-wrap
6895 msgid "Ign"
6896 msgstr "Ign"
6897
6898 #. type: Plain text
6899 #: build/C/man7/signal.7:64
6900 msgid "Default action is to ignore the signal."
6901 msgstr "デフォルトの動作はこのシグナルの無視。"
6902
6903 #. type: IP
6904 #: build/C/man7/signal.7:64
6905 #, no-wrap
6906 msgid "Core"
6907 msgstr "Core"
6908
6909 #. type: Plain text
6910 #: build/C/man7/signal.7:67
6911 msgid ""
6912 "Default action is to terminate the process and dump core (see B<core>(5))."
6913 msgstr "デフォルトの動作はプロセス終了とコアダンプ出力 (B<core>(5)  参照)。"
6914
6915 #. type: IP
6916 #: build/C/man7/signal.7:67
6917 #, no-wrap
6918 msgid "Stop"
6919 msgstr "Stop"
6920
6921 #. type: Plain text
6922 #: build/C/man7/signal.7:69
6923 msgid "Default action is to stop the process."
6924 msgstr "デフォルトの動作はプロセスの一時停止。"
6925
6926 #. type: IP
6927 #: build/C/man7/signal.7:69
6928 #, no-wrap
6929 msgid "Cont"
6930 msgstr "Cont"
6931
6932 #. type: Plain text
6933 #: build/C/man7/signal.7:71
6934 msgid "Default action is to continue the process if it is currently stopped."
6935 msgstr "デフォルトの動作は、プロセスが停止中の場合にその実行の再開。"
6936
6937 #. type: Plain text
6938 #: build/C/man7/signal.7:93
6939 msgid ""
6940 "A process can change the disposition of a signal using B<sigaction>(2)  or "
6941 "B<signal>(2).  (The latter is less portable when establishing a signal "
6942 "handler; see B<signal>(2)  for details.)  Using these system calls, a "
6943 "process can elect one of the following behaviors to occur on delivery of the "
6944 "signal: perform the default action; ignore the signal; or catch the signal "
6945 "with a I<signal handler>, a programmer-defined function that is "
6946 "automatically invoked when the signal is delivered.  (By default, the signal "
6947 "handler is invoked on the normal process stack.  It is possible to arrange "
6948 "that the signal handler uses an alternate stack; see B<sigaltstack>(2)  for "
6949 "a discussion of how to do this and when it might be useful.)"
6950 msgstr ""
6951 "プロセスは、 B<sigaction>(2)  や B<signal>(2)  を使って、シグナルの処理方法を"
6952 "変更することができる (B<signal>(2)  の方がシグナルハンドラを設定する際の移植"
6953 "性が低い; 詳細は B<signal>(2)  を参照)。 シグナルの配送時に起こる動作として "
6954 "プロセスが選択できるのは、次のいずれか一つである。 デフォルトの動作を実行す"
6955 "る、シグナルを無視する、 I<シグナルハンドラ (signal handler)> でシグナルを捕"
6956 "捉する。シグナルハンドラとは、シグナル配送時に 自動的に起動されるプログラマ定"
6957 "義の関数である。 (デフォルトでは、シグナルハンドラは通常のプロセスのスタック"
6958 "上で起動される。 シグナルハンドラが代替スタック (alternate stack) を使用する"
6959 "ように設定する こともできる。代替スタックを使用するように設定する方法と、どの"
6960 "ような際に 代替スタックが役に立つかについての議論については B<sigaltstack>"
6961 "(2)  を参照のこと。"
6962
6963 #. type: Plain text
6964 #: build/C/man7/signal.7:97
6965 msgid ""
6966 "The signal disposition is a per-process attribute: in a multithreaded "
6967 "application, the disposition of a particular signal is the same for all "
6968 "threads."
6969 msgstr ""
6970 "シグナルの処理方法はプロセス単位の属性である。 マルチスレッドのアプリケーショ"
6971 "ンでは、あるシグナルの処理方法は 全てのスレッドで同じである。"
6972
6973 #. type: SS
6974 #: build/C/man7/signal.7:105
6975 #, no-wrap
6976 msgid "Sending a signal"
6977 msgstr "シグナルの送信"
6978
6979 #. type: Plain text
6980 #: build/C/man7/signal.7:108
6981 msgid ""
6982 "The following system calls and library functions allow the caller to send a "
6983 "signal:"
6984 msgstr ""
6985 "以下のシステムコールとライブラリ関数を使って、 呼び出し者はシグナルを送信する"
6986 "ことができる。"
6987
6988 #. type: TP
6989 #: build/C/man7/signal.7:108
6990 #, no-wrap
6991 msgid "B<raise>(3)"
6992 msgstr "B<raise>(3)"
6993
6994 #. type: Plain text
6995 #: build/C/man7/signal.7:111
6996 msgid "Sends a signal to the calling thread."
6997 msgstr "呼び出したスレッドにシグナルを送る。"
6998
6999 #. type: Plain text
7000 #: build/C/man7/signal.7:116
7001 msgid ""
7002 "Sends a signal to a specified process, to all members of a specified process "
7003 "group, or to all processes on the system."
7004 msgstr ""
7005 "指定されたプロセスや、指定されたプロセスグループの全メンバー、 システムの全プ"
7006 "ロセスにシグナルを送る。"
7007
7008 #. type: TP
7009 #: build/C/man7/signal.7:116
7010 #, no-wrap
7011 msgid "B<killpg>(2)"
7012 msgstr "B<killpg>(2)"
7013
7014 #. type: Plain text
7015 #: build/C/man7/signal.7:119
7016 msgid "Sends a signal to all of the members of a specified process group."
7017 msgstr "指定されたプロセスグループの全メンバーにシグナルを送る。"
7018
7019 #. type: TP
7020 #: build/C/man7/signal.7:119
7021 #, no-wrap
7022 msgid "B<pthread_kill>(3)"
7023 msgstr "B<pthread_kill>(3)"
7024
7025 #. type: Plain text
7026 #: build/C/man7/signal.7:123
7027 msgid ""
7028 "Sends a signal to a specified POSIX thread in the same process as the caller."
7029 msgstr ""
7030 "呼び出し者と同じプロセス内の指定された POSIX スレッドにシグナルを送る。"
7031
7032 #. type: TP
7033 #: build/C/man7/signal.7:123
7034 #, no-wrap
7035 msgid "B<tgkill>(2)"
7036 msgstr "B<tgkill>(2)"
7037
7038 #. type: Plain text
7039 #: build/C/man7/signal.7:128
7040 msgid ""
7041 "Sends a signal to a specified thread within a specific process.  (This is "
7042 "the system call used to implement B<pthread_kill>(3).)"
7043 msgstr ""
7044 "指定されたプロセス内の指定されたスレッドにシグナルを送る (このシステムコール"
7045 "を使って B<pthread_kill>(3)  は実装されている)。"
7046
7047 #. type: Plain text
7048 #: build/C/man7/signal.7:131
7049 msgid "Sends a real-time signal with accompanying data to a specified process."
7050 msgstr "指定されたプロセスに付属データとともにリアルタイムシグナルを送る。"
7051
7052 #. type: SS
7053 #: build/C/man7/signal.7:131
7054 #, no-wrap
7055 msgid "Waiting for a signal to be caught"
7056 msgstr "シグナルが捕捉されるのを待つ"
7057
7058 #. type: Plain text
7059 #: build/C/man7/signal.7:135
7060 msgid ""
7061 "The following system calls suspend execution of the calling process or "
7062 "thread until a signal is caught (or an unhandled signal terminates the "
7063 "process):"
7064 msgstr ""
7065 "以下のシステムコールを使って、シグナルが捕捉されるまで 呼び出したプロセスやス"
7066 "レッドの実行を中断 (suspend) することができる (ハンドラが設定されていないシグ"
7067 "ナルによりそのプロセスが終了した 場合にも実行の停止は終了する)。"
7068
7069 #. type: TP
7070 #: build/C/man7/signal.7:135
7071 #, no-wrap
7072 msgid "B<pause>(2)"
7073 msgstr "B<pause>(2)"
7074
7075 #. type: Plain text
7076 #: build/C/man7/signal.7:138
7077 msgid "Suspends execution until any signal is caught."
7078 msgstr "何かシグナルが捕捉されるまで実行を停止する。"
7079
7080 #. type: TP
7081 #: build/C/man7/signal.7:138
7082 #, no-wrap
7083 msgid "B<sigsuspend>(2)"
7084 msgstr "B<sigsuspend>(2)"
7085
7086 #. type: Plain text
7087 #: build/C/man7/signal.7:142
7088 msgid ""
7089 "Temporarily changes the signal mask (see below) and suspends execution until "
7090 "one of the unmasked signals is caught."
7091 msgstr ""
7092 "一時的にシグナルマスク (下記参照) を変更し、 マスクされていないシグナルのいず"
7093 "れかが捕捉されるまで 実行を中断する。"
7094
7095 #. type: SS
7096 #: build/C/man7/signal.7:142
7097 #, no-wrap
7098 msgid "Synchronously accepting a signal"
7099 msgstr "シグナルの同期受信"
7100
7101 #. type: Plain text
7102 #: build/C/man7/signal.7:149
7103 msgid ""
7104 "Rather than asynchronously catching a signal via a signal handler, it is "
7105 "possible to synchronously accept the signal, that is, to block execution "
7106 "until the signal is delivered, at which point the kernel returns information "
7107 "about the signal to the caller.  There are two general ways to do this:"
7108 msgstr ""
7109 "シグナルハンドラ経由でシグナルを非同期 (asynchronously) で捕捉する以外にも、 "
7110 "シグナルを同期 (synchronously) して受け付けることもできる。 同期して受け付け"
7111 "るとは、シグナルが配送されるまで実行を停止 (block)  するということである。シ"
7112 "グナルを受け付けた際に、カーネルは そのシグナルに関する情報を呼び出し者に返"
7113 "す。 これを行う一般的な方法が二つある。"
7114
7115 #. type: Plain text
7116 #: build/C/man7/signal.7:157
7117 msgid ""
7118 "B<sigwaitinfo>(2), B<sigtimedwait>(2), and B<sigwait>(3)  suspend execution "
7119 "until one of the signals in a specified set is delivered.  Each of these "
7120 "calls returns information about the delivered signal."
7121 msgstr ""
7122 "B<sigwaitinfo>(2), B<sigtimedwait>(2), B<sigwait>(3)  は、指定されたシグナル"
7123 "集合のシグナルの一つが配送されるまで実行を中断する。 どのシステムコールや関数"
7124 "でも、配送されたシグナルに関する情報が返される。"
7125
7126 #. type: Plain text
7127 #: build/C/man7/signal.7:170
7128 msgid ""
7129 "B<signalfd>(2)  returns a file descriptor that can be used to read "
7130 "information about signals that are delivered to the caller.  Each B<read>"
7131 "(2)  from this file descriptor blocks until one of the signals in the set "
7132 "specified in the B<signalfd>(2)  call is delivered to the caller.  The "
7133 "buffer returned by B<read>(2)  contains a structure describing the signal."
7134 msgstr ""
7135 "B<signalfd>(2)  が返すファイルディスクリプタを使うと、呼び出し元に配送された "
7136 "シグナルに関する情報を読み出すことができる。 このファイルディスクリプタから"
7137 "の B<read>(2)  は、 B<signalfd>(2)  の呼び出し時に指定されたシグナル集合のシ"
7138 "グナルの一つが呼び出し元に 配送されるまで停止 (block) する。 B<read>(2)  が返"
7139 "すバッファにはシグナルに関する情報を格納した構造体が入っている。"
7140
7141 #. type: SS
7142 #: build/C/man7/signal.7:170
7143 #, no-wrap
7144 msgid "Signal mask and pending signals"
7145 msgstr "シグナルマスクと処理待ちシグナル"
7146
7147 #. type: Plain text
7148 #: build/C/man7/signal.7:177
7149 msgid ""
7150 "A signal may be I<blocked>, which means that it will not be delivered until "
7151 "it is later unblocked.  Between the time when it is generated and when it is "
7152 "delivered a signal is said to be I<pending>."
7153 msgstr ""
7154 "シグナルは I<ブロック (block)> されることがある。ブロックされると、そのシグナ"
7155 "ルは その後ブロックを解除されるまで配送されなくなる。 シグナルが生成されてか"
7156 "ら配送されるまでの間、そのシグナルは I<処理待ち (pending)> であると呼ばれる。"
7157
7158 #. type: Plain text
7159 #: build/C/man7/signal.7:186
7160 msgid ""
7161 "Each thread in a process has an independent I<signal mask>, which indicates "
7162 "the set of signals that the thread is currently blocking.  A thread can "
7163 "manipulate its signal mask using B<pthread_sigmask>(3).  In a traditional "
7164 "single-threaded application, B<sigprocmask>(2)  can be used to manipulate "
7165 "the signal mask."
7166 msgstr ""
7167 "プロセス内の各スレッドは、それぞれ独立な I<シグナルマスク (signal mask)> を持"
7168 "つ。シグナルマスクはそのスレッドが現在ブロックしている シグナル集合を示すもの"
7169 "である。 スレッドは、 B<pthread_sigmask>(3)  を使って自分のシグナルマスクを操"
7170 "作できる。 伝統的なシングルスレッドのアプリケーションでは、 B<sigprocmask>"
7171 "(2)  を使って、シグナルマスクを操作できる。"
7172
7173 #. type: Plain text
7174 #: build/C/man7/signal.7:192 build/C/man2/sigprocmask.2:126
7175 msgid ""
7176 "A child created via B<fork>(2)  inherits a copy of its parent's signal mask; "
7177 "the signal mask is preserved across B<execve>(2)."
7178 msgstr ""
7179 "B<fork>(2)  経由で作成された子プロセスは親プロセスのシグナルマスクのコピーを"
7180 "継承する。 B<execve>(2)  の前後でシグナルマスクは保持される。"
7181
7182 #. type: Plain text
7183 #: build/C/man7/signal.7:209
7184 msgid ""
7185 "A signal may be generated (and thus pending)  for a process as a whole (e."
7186 "g., when sent using B<kill>(2))  or for a specific thread (e.g., certain "
7187 "signals, such as B<SIGSEGV> and B<SIGFPE>, generated as a consequence of "
7188 "executing a specific machine-language instruction are thread directed, as "
7189 "are signals targeted at a specific thread using B<pthread_kill>(3)).  A "
7190 "process-directed signal may be delivered to any one of the threads that does "
7191 "not currently have the signal blocked.  If more than one of the threads has "
7192 "the signal unblocked, then the kernel chooses an arbitrary thread to which "
7193 "to deliver the signal."
7194 msgstr ""
7195 "生成されるシグナル (したがって処理待ちとなるシグナル) には、 プロセス全体宛て"
7196 "と特定のスレッド宛てがある。 例えば、プロセス全体宛てのシグナルは B<kill>"
7197 "(2)  を使って送信される。 特定のマシン語の命令の実行の結果として生成される、 "
7198 "B<SIGSEGV> や B<SIGFPE> などのシグナルは、スレッド宛てとなる。 また、 "
7199 "B<pthread_kill>(3)  を使って特定のスレッド宛てに生成されたシグナルも スレッド"
7200 "宛てとなる。 プロセス宛てのシグナルは、そのシグナルをブロックしていないスレッ"
7201 "ドのうち いずれかの一つに配送することができる。そのシグナルをブロックしていな"
7202 "い スレッドが複数ある場合、シグナルを配送するスレッドはカーネルが 無作為に選"
7203 "択する。"
7204
7205 #. type: Plain text
7206 #: build/C/man7/signal.7:216
7207 msgid ""
7208 "A thread can obtain the set of signals that it currently has pending using "
7209 "B<sigpending>(2).  This set will consist of the union of the set of pending "
7210 "process-directed signals and the set of signals pending for the calling "
7211 "thread."
7212 msgstr ""
7213 "スレッドは、 B<sigpending>(2)  を使って、現在処理待ちのシグナル集合を取得する"
7214 "ことができる。 この集合は、プロセス宛ての処理待ちシグナルと 呼び出したスレッ"
7215 "ド宛てのシグナルの両方から構成される。"
7216
7217 #. type: Plain text
7218 #: build/C/man7/signal.7:222 build/C/man2/sigpending.2:85
7219 msgid ""
7220 "A child created via B<fork>(2)  initially has an empty pending signal set; "
7221 "the pending signal set is preserved across an B<execve>(2)."
7222 msgstr ""
7223 "B<fork>(2)  経由で作成された子プロセスでは、処理待ちのシグナル集合は空の集合"
7224 "で初期化される。 B<execve>(2)  の前後で、処理待ちのシグナル集合は保持される。"
7225
7226 #. type: SS
7227 #: build/C/man7/signal.7:222
7228 #, no-wrap
7229 msgid "Standard signals"
7230 msgstr "標準シグナル"
7231
7232 #. type: Plain text
7233 #: build/C/man7/signal.7:234
7234 msgid ""
7235 "Linux supports the standard signals listed below.  Several signal numbers "
7236 "are architecture-dependent, as indicated in the \"Value\" column.  (Where "
7237 "three values are given, the first one is usually valid for alpha and sparc, "
7238 "the middle one for x86, arm, and most other architectures, and the last one "
7239 "for mips.  (Values for parisc are I<not> shown; see the Linux kernel source "
7240 "for signal numbering on that architecture.)  A - denotes that a signal is "
7241 "absent on the corresponding architecture.)"
7242 msgstr ""
7243 "Linux は以下に示す標準シグナルに対応している。シグナル番号の一部はアー\n"
7244 "キテクチャ依存であり、\"値\" 欄に示す通りである。 (3つの値が書かれている\n"
7245 "ものは、 1つ目が alpha と sparc で通常有効な値、 真ん中が x86, arm や\n"
7246 "他のほとんどのアーキテクチャでの有効な値、最後が mips での値である。\n"
7247 "(parisc での値は記載されてI<いない>。 parisc でのシグナル番号は\n"
7248 "Linux カーネルソースを参照してほしい)。 - はそのアーキテ\n"
7249 "クチャにおいて対応するシグナルがないことを示す。)"
7250
7251 #. type: Plain text
7252 #: build/C/man7/signal.7:236
7253 msgid "First the signals described in the original POSIX.1-1990 standard."
7254 msgstr "最初に、POSIX.1-1990 に定義されているシグナルを示す。"
7255
7256 #. type: tbl table
7257 #: build/C/man7/signal.7:240 build/C/man7/signal.7:276
7258 #: build/C/man7/signal.7:305
7259 #, no-wrap
7260 msgid "Signal\tValue\tAction\tComment\n"
7261 msgstr "シグナル\t値\t動作\tコメント\n"
7262
7263 #. type: tbl table
7264 #: build/C/man7/signal.7:241
7265 #, no-wrap
7266 msgid "SIGHUP\t\\01\tTerm\tHangup detected on controlling terminal\n"
7267 msgstr "SIGHUP\t\\01\tTerm\t制御端末(controlling terminal)のハングアップ検出、\n"
7268
7269 #. type: tbl table
7270 #: build/C/man7/signal.7:242
7271 #, no-wrap
7272 msgid "\t\t\tor death of controlling process\n"
7273 msgstr "\t\t\tまたは制御しているプロセスの死\n"
7274
7275 #. type: tbl table
7276 #: build/C/man7/signal.7:243
7277 #, no-wrap
7278 msgid "SIGINT\t\\02\tTerm\tInterrupt from keyboard\n"
7279 msgstr "SIGINT\t\\02\tTerm\tキーボードからの割り込み (Interrupt)\n"
7280
7281 #. type: tbl table
7282 #: build/C/man7/signal.7:244
7283 #, no-wrap
7284 msgid "SIGQUIT\t\\03\tCore\tQuit from keyboard\n"
7285 msgstr "SIGQUIT\t\\03\tCore\tキーボードによる中止 (Quit)\n"
7286
7287 #. type: tbl table
7288 #: build/C/man7/signal.7:245
7289 #, no-wrap
7290 msgid "SIGILL\t\\04\tCore\tIllegal Instruction\n"
7291 msgstr "SIGILL\t\\04\tCore\t不正な命令\n"
7292
7293 #. type: tbl table
7294 #: build/C/man7/signal.7:246
7295 #, no-wrap
7296 msgid "SIGABRT\t\\06\tCore\tAbort signal from B<abort>(3)\n"
7297 msgstr "SIGABRT\t\\06\tCore\tB<abort>(3) からの中断 (Abort) シグナル\n"
7298
7299 #. type: tbl table
7300 #: build/C/man7/signal.7:247
7301 #, no-wrap
7302 msgid "SIGFPE\t\\08\tCore\tFloating point exception\n"
7303 msgstr "SIGFPE\t\\08\tCore\t浮動小数点例外\n"
7304
7305 #. type: tbl table
7306 #: build/C/man7/signal.7:248
7307 #, no-wrap
7308 msgid "SIGKILL\t\\09\tTerm\tKill signal\n"
7309 msgstr "SIGKILL\t\\09\tTerm\tKill シグナル\n"
7310
7311 #. type: tbl table
7312 #: build/C/man7/signal.7:249
7313 #, no-wrap
7314 msgid "SIGSEGV\t11\tCore\tInvalid memory reference\n"
7315 msgstr "SIGSEGV\t11\tCore\t不正なメモリ参照\n"
7316
7317 #. type: tbl table
7318 #: build/C/man7/signal.7:250
7319 #, no-wrap
7320 msgid "SIGPIPE\t13\tTerm\tBroken pipe: write to pipe with no\n"
7321 msgstr "SIGPIPE\t13\tTerm\tパイプ破壊:\n"
7322
7323 #. type: tbl table
7324 #: build/C/man7/signal.7:251
7325 #, no-wrap
7326 msgid "\t\t\treaders\n"
7327 msgstr "\t\t\t読み手の無いパイプへの書き出し\n"
7328
7329 #. type: tbl table
7330 #: build/C/man7/signal.7:252
7331 #, no-wrap
7332 msgid "SIGALRM\t14\tTerm\tTimer signal from B<alarm>(2)\n"
7333 msgstr "SIGALRM\t14\tTerm\tB<alarm>(2) からのタイマーシグナル\n"
7334
7335 #. type: tbl table
7336 #: build/C/man7/signal.7:253
7337 #, no-wrap
7338 msgid "SIGTERM\t15\tTerm\tTermination signal\n"
7339 msgstr "SIGTERM\t15\tTerm\t終了 (termination) シグナル\n"
7340
7341 #. type: tbl table
7342 #: build/C/man7/signal.7:254
7343 #, no-wrap
7344 msgid "SIGUSR1\t30,10,16\tTerm\tUser-defined signal 1\n"
7345 msgstr "SIGUSR1\t30,10,16\tTerm\tユーザ定義シグナル 1\n"
7346
7347 #. type: tbl table
7348 #: build/C/man7/signal.7:255
7349 #, no-wrap
7350 msgid "SIGUSR2\t31,12,17\tTerm\tUser-defined signal 2\n"
7351 msgstr "SIGUSR2\t31,12,17\tTerm\tユーザ定義シグナル 2\n"
7352
7353 #. type: tbl table
7354 #: build/C/man7/signal.7:256
7355 #, no-wrap
7356 msgid "SIGCHLD\t20,17,18\tIgn\tChild stopped or terminated\n"
7357 msgstr "SIGCHLD\t20,17,18\tIgn\t子プロセスの一時停止 (stop) または終了\n"
7358
7359 #. type: tbl table
7360 #: build/C/man7/signal.7:257
7361 #, no-wrap
7362 msgid "SIGCONT\t19,18,25\tCont\tContinue if stopped\n"
7363 msgstr "SIGCONT\t19,18,25\tCont\t一時停止 (stop) からの再開\n"
7364
7365 #. type: tbl table
7366 #: build/C/man7/signal.7:258
7367 #, no-wrap
7368 msgid "SIGSTOP\t17,19,23\tStop\tStop process\n"
7369 msgstr "SIGSTOP\t17,19,23\tStop\tプロセスの一時停止 (stop)\n"
7370
7371 #. type: tbl table
7372 #: build/C/man7/signal.7:259
7373 #, no-wrap
7374 msgid "SIGTSTP\t18,20,24\tStop\tStop typed at terminal\n"
7375 msgstr "SIGTSTP\t18,20,24\tStop\t端末より入力された一時停止 (stop)\n"
7376
7377 #. type: tbl table
7378 #: build/C/man7/signal.7:260
7379 #, no-wrap
7380 msgid "SIGTTIN\t21,21,26\tStop\tTerminal input for background process\n"
7381 msgstr "SIGTTIN\t21,21,26\tStop\tバックグランドプロセスの端末入力\n"
7382
7383 #. type: tbl table
7384 #: build/C/man7/signal.7:261
7385 #, no-wrap
7386 msgid "SIGTTOU\t22,22,27\tStop\tTerminal output for background process\n"
7387 msgstr "SIGTTOU\t22,22,27\tStop\tバックグランドプロセスの端末出力\n"
7388
7389 #. type: Plain text
7390 #: build/C/man7/signal.7:269
7391 msgid ""
7392 "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught, blocked, or ignored."
7393 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> はキャッチ、ブロック、無視できない。"
7394
7395 #. type: Plain text
7396 #: build/C/man7/signal.7:272
7397 msgid ""
7398 "Next the signals not in the POSIX.1-1990 standard but described in SUSv2 and "
7399 "POSIX.1-2001."
7400 msgstr ""
7401 "次に、 POSIX.1-1990 標準にはないが、 SUSv2 と POSIX.1-2001 に記述されているシ"
7402 "グナルを示す。"
7403
7404 #. type: tbl table
7405 #: build/C/man7/signal.7:277
7406 #, no-wrap
7407 msgid "SIGBUS\t10,7,10\tCore\tBus error (bad memory access)\n"
7408 msgstr "SIGBUS\t10,7,10\tCore\tバスエラー (不正なメモリアクセス)\n"
7409
7410 #. type: tbl table
7411 #: build/C/man7/signal.7:278
7412 #, no-wrap
7413 msgid "SIGPOLL\t\tTerm\tPollable event (Sys V).\n"
7414 msgstr "SIGPOLL\t\tTerm\tポーリング可能なイベント (Sys V)。\n"
7415
7416 #. type: tbl table
7417 #: build/C/man7/signal.7:279
7418 #, no-wrap
7419 msgid "\t\t\tSynonym for B<SIGIO>\n"
7420 msgstr "\t\t\tB<SIGIO> と同義\n"
7421
7422 #. type: tbl table
7423 #: build/C/man7/signal.7:280
7424 #, no-wrap
7425 msgid "SIGPROF\t27,27,29\tTerm\tProfiling timer expired\n"
7426 msgstr "SIGPROF\t27,27,29\tTerm\tprofiling タイマの時間切れ\n"
7427
7428 #. type: tbl table
7429 #: build/C/man7/signal.7:281
7430 #, no-wrap
7431 msgid "SIGSYS\t12,31,12\tCore\tBad argument to routine (SVr4)\n"
7432 msgstr "SIGSYS\t12,31,12\tCore\tルーチンへの引き数が不正 (SVr4)\n"
7433
7434 #. type: tbl table
7435 #: build/C/man7/signal.7:282
7436 #, no-wrap
7437 msgid "SIGTRAP\t5\tCore\tTrace/breakpoint trap\n"
7438 msgstr "SIGTRAP\t5\tCore\tトレース/ブレークポイント トラップ\n"
7439
7440 #. type: tbl table
7441 #: build/C/man7/signal.7:283
7442 #, no-wrap
7443 msgid "SIGURG\t16,23,21\tIgn\tUrgent condition on socket (4.2BSD)\n"
7444 msgstr "SIGURG\t16,23,21\tIgn\tソケットの緊急事態 (urgent condition) (4.2BSD)\n"
7445
7446 #. type: tbl table
7447 #: build/C/man7/signal.7:284
7448 #, no-wrap
7449 msgid "SIGVTALRM\t26,26,28\tTerm\tVirtual alarm clock (4.2BSD)\n"
7450 msgstr "SIGVTALRM\t26,26,28\tTerm\t仮想アラームクロック (4.2BSD)\n"
7451
7452 #. type: tbl table
7453 #: build/C/man7/signal.7:285
7454 #, no-wrap
7455 msgid "SIGXCPU\t24,24,30\tCore\tCPU time limit exceeded (4.2BSD)\n"
7456 msgstr "SIGXCPU\t24,24,30\tCore\tCPU時間制限超過 (4.2BSD)\n"
7457
7458 #. type: tbl table
7459 #: build/C/man7/signal.7:286
7460 #, no-wrap
7461 msgid "SIGXFSZ\t25,25,31\tCore\tFile size limit exceeded (4.2BSD)\n"
7462 msgstr "SIGXFSZ\t25,25,31\tCore\tファイルサイズ制限の超過 (4.2BSD)\n"
7463
7464 #. type: Plain text
7465 #: build/C/man7/signal.7:299
7466 msgid ""
7467 "Up to and including Linux 2.2, the default behavior for B<SIGSYS>, "
7468 "B<SIGXCPU>, B<SIGXFSZ>, and (on architectures other than SPARC and MIPS)  "
7469 "B<SIGBUS> was to terminate the process (without a core dump).  (On some "
7470 "other UNIX systems the default action for B<SIGXCPU> and B<SIGXFSZ> is to "
7471 "terminate the process without a core dump.)  Linux 2.4 conforms to the "
7472 "POSIX.1-2001 requirements for these signals, terminating the process with a "
7473 "core dump."
7474 msgstr ""
7475 "Linux 2.2 以前では、 B<SIGSYS>, B<SIGXCPU>, B<SIGXFSZ> および SPARC と MIPS "
7476 "以外のアーキテクチャでの B<SIGBUS> のデフォルトの振る舞いは (コアダンプ出力な"
7477 "しの) プロセス終了であった。 (他の UNIX システムにも B<SIGXCPU> と "
7478 "B<SIGXFSZ> のデフォルトの動作がコアダンプなしのプロセス終了のものがある。)  "
7479 "Linux 2.4 では、POSIX.1-2001 での要求仕様に準拠して、 これらのシグナルで、プ"
7480 "ロセスを終了させ、コアダンプを出力する ようになっている。"
7481
7482 #. type: Plain text
7483 #: build/C/man7/signal.7:301
7484 msgid "Next various other signals."
7485 msgstr "次にその他の各種シグナルを示す。"
7486
7487 #. type: tbl table
7488 #: build/C/man7/signal.7:306
7489 #, no-wrap
7490 msgid "SIGIOT\t6\tCore\tIOT trap. A synonym for B<SIGABRT>\n"
7491 msgstr "SIGIOT\t6\tCore\tIOT トラップ。B<SIGABRT> と同義\n"
7492
7493 #. type: tbl table
7494 #: build/C/man7/signal.7:307
7495 #, no-wrap
7496 msgid "SIGEMT\t7,-,7\tTerm\n"
7497 msgstr "SIGEMT\t7,-,7\tTerm\n"
7498
7499 #. type: tbl table
7500 #: build/C/man7/signal.7:308
7501 #, no-wrap
7502 msgid "SIGSTKFLT\t-,16,-\tTerm\tStack fault on coprocessor (unused)\n"
7503 msgstr "SIGSTKFLT\t-,16,-\tA\t数値演算プロセッサにおけるスタックフォルト (未使用)\n"
7504
7505 #. type: tbl table
7506 #: build/C/man7/signal.7:309
7507 #, no-wrap
7508 msgid "SIGIO\t23,29,22\tTerm\tI/O now possible (4.2BSD)\n"
7509 msgstr "SIGIO\t23,29,22\tTerm\t入出力が可能になった (4.2BSD)\n"
7510
7511 #. type: tbl table
7512 #: build/C/man7/signal.7:310
7513 #, no-wrap
7514 msgid "SIGCLD\t-,-,18\tIgn\tA synonym for B<SIGCHLD>\n"
7515 msgstr "SIGCLD\t-,-,18\tIgn\tB<SIGCHLD> と同義\n"
7516
7517 #. type: tbl table
7518 #: build/C/man7/signal.7:311
7519 #, no-wrap
7520 msgid "SIGPWR\t29,30,19\tTerm\tPower failure (System V)\n"
7521 msgstr "SIGPWR\t29,30,19\tTerm\t電源喪失 (Power failure) (System V)\n"
7522
7523 #. type: tbl table
7524 #: build/C/man7/signal.7:312
7525 #, no-wrap
7526 msgid "SIGINFO\t29,-,-\t\tA synonym for B<SIGPWR>\n"
7527 msgstr "SIGINFO\t29,-,-\t \tB<SIGPWR> と同義\n"
7528
7529 #. type: tbl table
7530 #: build/C/man7/signal.7:313
7531 #, no-wrap
7532 msgid "SIGLOST\t-,-,-\tTerm\tFile lock lost (unused)\n"
7533 msgstr "SIGLOST\t-,-,-\tTerm\tファイルロックが失われた (未使用)\n"
7534
7535 #. type: tbl table
7536 #: build/C/man7/signal.7:314
7537 #, no-wrap
7538 msgid "SIGWINCH\t28,28,20\tIgn\tWindow resize signal (4.3BSD, Sun)\n"
7539 msgstr "SIGWINCH\t28,28,20\tIgn\tウィンドウ リサイズ シグナル (4.3BSD, Sun)\n"
7540
7541 #. type: tbl table
7542 #: build/C/man7/signal.7:315
7543 #, no-wrap
7544 msgid "SIGUNUSED\t-,31,-\tCore\tSynonymous with B<SIGSYS>\n"
7545 msgstr "SIGUNUSED\t-,31,-\tCore\tB<SIGSYS> と同義\n"
7546
7547 #. type: Plain text
7548 #: build/C/man7/signal.7:325
7549 msgid ""
7550 "(Signal 29 is B<SIGINFO> / B<SIGPWR> on an alpha but B<SIGLOST> on a sparc.)"
7551 msgstr ""
7552 "(シグナル 29 は alpha では B<SIGINFO> / B<SIGPWR> だが、sparc では "
7553 "B<SIGLOST> である。)"
7554
7555 #. type: Plain text
7556 #: build/C/man7/signal.7:331
7557 msgid ""
7558 "B<SIGEMT> is not specified in POSIX.1-2001, but nevertheless appears on most "
7559 "other UNIX systems, where its default action is typically to terminate the "
7560 "process with a core dump."
7561 msgstr ""
7562 "B<SIGEMT> は POSIX.1-2001 に規定されていないが、 その他の多くの UNIX システム"
7563 "に存在する。 デフォルトの動作は多くの場合、コアダンプ出力を伴うプロセスの終了"
7564 "である。"
7565
7566 #. type: Plain text
7567 #: build/C/man7/signal.7:335
7568 msgid ""
7569 "B<SIGPWR> (which is not specified in POSIX.1-2001) is typically ignored by "
7570 "default on those other UNIX systems where it appears."
7571 msgstr ""
7572 "B<SIGPWR> は (POSIX.1-2001 に規定されていないが) このシグナルが存在する 他の "
7573 "UNIX システムでは多くの場合、デフォルト動作は無視である。"
7574
7575 #. type: Plain text
7576 #: build/C/man7/signal.7:339
7577 msgid ""
7578 "B<SIGIO> (which is not specified in POSIX.1-2001) is ignored by default on "
7579 "several other UNIX systems."
7580 msgstr ""
7581 "B<SIGIO> は (POSIX.1-2001 に規定されていないが) いくつかの他の UNIX システム"
7582 "では デフォルト動作は無視である。"
7583
7584 #.  parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31
7585 #. type: Plain text
7586 #: build/C/man7/signal.7:346
7587 msgid ""
7588 "Where defined, B<SIGUNUSED> is synonymous with B<SIGSYS> on most "
7589 "architectures."
7590 msgstr ""
7591 "B<SIGUNUSED> が定義されている場合には、ほとんどのアーキテクチャで B<SIGSYS> "
7592 "の同義語となっている。"
7593
7594 #. type: SS
7595 #: build/C/man7/signal.7:346
7596 #, no-wrap
7597 msgid "Real-time signals"
7598 msgstr "リアルタイムシグナル"
7599
7600 #. type: Plain text
7601 #: build/C/man7/signal.7:356
7602 msgid ""
7603 "Linux supports real-time signals as originally defined in the POSIX.1b real-"
7604 "time extensions (and now included in POSIX.1-2001).  The range of supported "
7605 "real-time signals is defined by the macros B<SIGRTMIN> and B<SIGRTMAX>.  "
7606 "POSIX.1-2001 requires that an implementation support at least "
7607 "B<_POSIX_RTSIG_MAX> (8) real-time signals."
7608 msgstr ""
7609 "Linux はリアルタイムシグナルをサポートしている。 リアルタイムシグナルは元々 "
7610 "POSIX.1b のリアルタイム拡張で定義されて いるものであり、現在では "
7611 "POSIX.1-2001 に含まれている。 対応しているリアルタイムシグナルの範囲は、マク"
7612 "ロ B<SIGRTMIN> と B<SIGRTMAX> で定義される。 POSIX.1-2001 では、少なくとも "
7613 "B<_POSIX_RTSIG_MAX> (8) 個のリアルタイムシグナルに対応した実装が要求されてい"
7614 "る。"
7615
7616 #. type: Plain text
7617 #: build/C/man7/signal.7:378
7618 msgid ""
7619 "The Linux kernel supports a range of 32 different real-time signals, "
7620 "numbered 33 to 64.  However, the glibc POSIX threads implementation "
7621 "internally uses two (for NPTL) or three (for LinuxThreads) real-time signals "
7622 "(see B<pthreads>(7)), and adjusts the value of B<SIGRTMIN> suitably (to 34 "
7623 "or 35).  Because the range of available real-time signals varies according "
7624 "to the glibc threading implementation (and this variation can occur at run "
7625 "time according to the available kernel and glibc), and indeed the range of "
7626 "real-time signals varies across UNIX systems, programs should I<never refer "
7627 "to real-time signals using hard-coded numbers>, but instead should always "
7628 "refer to real-time signals using the notation B<SIGRTMIN>+n, and include "
7629 "suitable (run-time) checks that B<SIGRTMIN>+n does not exceed B<SIGRTMAX>."
7630 msgstr ""
7631 "Linux は、32 個の異なるリアルタイムシグナルに対応しており、 その番号は 33 か"
7632 "ら 64 である。 しかしながら、glibc の POSIX スレッド実装は、 内部で 2個 "
7633 "(NPTL の場合) か 3個 (LinuxThreads の場合) の リアルタイムシグナルを使用して"
7634 "おり (B<pthreads>(7)  参照)、 B<SIGRTMIN> の値を適切に (34 か 35 に) 調整す"
7635 "る。 利用可能なリアルタイムシグナルの範囲は glibc のスレッド実装により 異なる"
7636 "し (使用するカーネルと glibc により実行時にも変化する)、 UNIX システムの種類"
7637 "によっても異なる。したがって、 プログラムでは「ハードコーディングした数字を"
7638 "使ってのリアルタイムシグナルの 参照は決してすべきではなく」、代わりに "
7639 "B<SIGRTMIN>+n の形で参照すべきである。また、 B<SIGRTMIN>+n が B<SIGRTMAX> を"
7640 "超えていないかのチェックを (実行時に) 適切に行うべきである。"
7641
7642 #. type: Plain text
7643 #: build/C/man7/signal.7:382
7644 msgid ""
7645 "Unlike standard signals, real-time signals have no predefined meanings: the "
7646 "entire set of real-time signals can be used for application-defined purposes."
7647 msgstr ""
7648 "標準シグナルと異なり、リアルタイムシグナルには 事前に定義された意味はない。 "
7649 "リアルタイムシグナルの全部をアプリケーションで定義した用途に使える。"
7650
7651 #. type: Plain text
7652 #: build/C/man7/signal.7:385
7653 msgid ""
7654 "The default action for an unhandled real-time signal is to terminate the "
7655 "receiving process."
7656 msgstr ""
7657 "ハンドリングしないリアルタイムシグナルのデフォルトの動作は 受信したプロセスの"
7658 "終了である。"
7659
7660 #. type: Plain text
7661 #: build/C/man7/signal.7:387
7662 msgid "Real-time signals are distinguished by the following:"
7663 msgstr "リアルタイムシグナルは以下の特徴がある:"
7664
7665 #. type: Plain text
7666 #: build/C/man7/signal.7:391
7667 msgid ""
7668 "Multiple instances of real-time signals can be queued.  By contrast, if "
7669 "multiple instances of a standard signal are delivered while that signal is "
7670 "currently blocked, then only one instance is queued."
7671 msgstr ""
7672 "リアルタイムシグナルは複数の実体をキューに入れることができる。 一方、標準シグ"
7673 "ナルの場合、そのシグナルがブロックされている間に 同じシグナルの複数のインスタ"
7674 "ンスが配送されても、 1 つだけがキューに入れられる。"
7675
7676 #. type: Plain text
7677 #: build/C/man7/signal.7:411
7678 msgid ""
7679 "If the signal is sent using B<sigqueue>(3), an accompanying value (either an "
7680 "integer or a pointer) can be sent with the signal.  If the receiving process "
7681 "establishes a handler for this signal using the B<SA_SIGINFO> flag to "
7682 "B<sigaction>(2), then it can obtain this data via the I<si_value> field of "
7683 "the I<siginfo_t> structure passed as the second argument to the handler.  "
7684 "Furthermore, the I<si_pid> and I<si_uid> fields of this structure can be "
7685 "used to obtain the PID and real user ID of the process sending the signal."
7686 msgstr ""
7687 "シグナルが B<sigqueue>(3)  を用いて送信された場合、 付属データ (整数かポイン"
7688 "タ) をシグナルと共に送信できる。 受信側プロセスが B<sigaction>(2)  に "
7689 "B<SA_SIGINFO> フラグを指定してシグナルハンドラを設定した場合、 このデータは "
7690 "I<siginfo_t> 構造体の I<si_value> フィールド経由でハンドラの第 2 引き数として"
7691 "渡され、 利用することができる。 さらに、この構造体の I<si_pid> と I<si_uid> "
7692 "フィールドでシグナルを送信したプロセスの PID と実ユーザ ID を 得ることができ"
7693 "る。"
7694
7695 #. type: Plain text
7696 #: build/C/man7/signal.7:420
7697 msgid ""
7698 "Real-time signals are delivered in a guaranteed order.  Multiple real-time "
7699 "signals of the same type are delivered in the order they were sent.  If "
7700 "different real-time signals are sent to a process, they are delivered "
7701 "starting with the lowest-numbered signal.  (I.e., low-numbered signals have "
7702 "highest priority.)  By contrast, if multiple standard signals are pending "
7703 "for a process, the order in which they are delivered is unspecified."
7704 msgstr ""
7705 "リアルタイムシグナルでは配送される順序が保証される。 同じタイプのリアルタイム"
7706 "シグナルは送信された順番に到着する。 異なるリアルタイムシグナルが一つのプロセ"
7707 "スに送信された場合、 番号の小さいシグナルから先に到着する。 (つまり小さい番号"
7708 "のシグナルが高い優先順位を持つ。)  対照的に、一つのプロセスに対して複数の標準"
7709 "シグナルが処理待ちとなった場合、 これらのシグナルが配送される順序は不定であ"
7710 "る。"
7711
7712 #. type: Plain text
7713 #: build/C/man7/signal.7:425
7714 msgid ""
7715 "If both standard and real-time signals are pending for a process, POSIX "
7716 "leaves it unspecified which is delivered first.  Linux, like many other "
7717 "implementations, gives priority to standard signals in this case."
7718 msgstr ""
7719 "一つのプロセスに対して標準シグナルとリアルタイムシグナルの両方が 処理待ちの場"
7720 "合、POSIX はどちらが先に配送されるかを規定していない。 Linux では、他の多くの"
7721 "実装と同様、このような場合には 標準シグナルが優先される。"
7722
7723 #. type: Plain text
7724 #: build/C/man7/signal.7:448
7725 msgid ""
7726 "According to POSIX, an implementation should permit at least "
7727 "B<_POSIX_SIGQUEUE_MAX> (32) real-time signals to be queued to a process.  "
7728 "However, Linux does things differently.  In kernels up to and including "
7729 "2.6.7, Linux imposes a system-wide limit on the number of queued real-time "
7730 "signals for all processes.  This limit can be viewed and (with privilege) "
7731 "changed via the I</proc/sys/kernel/rtsig-max> file.  A related file, I</proc/"
7732 "sys/kernel/rtsig-nr>, can be used to find out how many real-time signals are "
7733 "currently queued.  In Linux 2.6.8, these I</proc> interfaces were replaced "
7734 "by the B<RLIMIT_SIGPENDING> resource limit, which specifies a per-user limit "
7735 "for queued signals; see B<setrlimit>(2)  for further details."
7736 msgstr ""
7737 "POSIX によれば、1 プロセス毎に最低 B<_POSIX_SIGQUEUE_MAX> (32) 個のリアルタイ"
7738 "ムシグナルをキューに入れられるべきとしている。 しかし、 Linux では違った実装"
7739 "になっている。カーネル 2.6.7 までは (2.6.7 を含む)、全プロセスでキューに入っ"
7740 "ているリアルタイムシグナル の数の合計についてシステム全体での制限がある。 こ"
7741 "の制限は I</proc/sys/kernel/rtsig-max> ファイルで見ることができ、 (権限があれ"
7742 "ば) 変更もできる。 関係するファイルとして、 I</proc/sys/kernel/rtsig-nr> を見"
7743 "ることで、いくつのリアルタイムシグナルが現在キューに入っているかを 知ることが"
7744 "できる。 Linux 2.6.8 で、これらの I</proc> 経由のインターフェースは、 "
7745 "B<RLIMIT_SIGPENDING> リソース制限に置き換えられた。 これは、キューに入るシグ"
7746 "ナル数に関してユーザ単位に 上限を指定するものである。 詳しくは B<setrlimit>"
7747 "(2)  を参照。"
7748
7749 #. type: SS
7750 #: build/C/man7/signal.7:448
7751 #, no-wrap
7752 msgid "Async-signal-safe functions"
7753 msgstr "非同期シグナルで安全な関数 (async-signal-safe functions)"
7754
7755 #. type: Plain text
7756 #: build/C/man7/signal.7:457
7757 msgid ""
7758 "A signal handler function must be very careful, since processing elsewhere "
7759 "may be interrupted at some arbitrary point in the execution of the program.  "
7760 "POSIX has the concept of \"safe function\".  If a signal interrupts the "
7761 "execution of an unsafe function, and I<handler> calls an unsafe function, "
7762 "then the behavior of the program is undefined."
7763 msgstr ""
7764 "シグナルハンドラ関数には非常に注意しなければならない。 他の場所の処理はプログ"
7765 "ラム実行の任意の箇所で中断される可能性があるためである。 POSIX には「安全な関"
7766 "数 (safe function)」という概念がある。 シグナルが安全でない関数の実行を中断"
7767 "し、かつ I<handler> が安全でない関数を呼び出した場合、プログラムの挙動は未定"
7768 "義である。"
7769
7770 #. type: Plain text
7771 #: build/C/man7/signal.7:461
7772 msgid ""
7773 "POSIX.1-2004 (also known as POSIX.1-2001 Technical Corrigendum 2)  requires "
7774 "an implementation to guarantee that the following functions can be safely "
7775 "called inside a signal handler:"
7776 msgstr ""
7777 "POSIX.1-2004 (POSIX.1-2001 Technical Corrigendum (正誤表) 2 とも言う) では、 "
7778 "シグナルハンドラ内での安全な呼び出しを保証することが必須の関数として 以下が規"
7779 "定されている。"
7780
7781 #. type: Plain text
7782 #: build/C/man7/signal.7:582
7783 #, no-wrap
7784 msgid ""
7785 "_Exit()\n"
7786 "_exit()\n"
7787 "abort()\n"
7788 "accept()\n"
7789 "access()\n"
7790 "aio_error()\n"
7791 "aio_return()\n"
7792 "aio_suspend()\n"
7793 "alarm()\n"
7794 "bind()\n"
7795 "cfgetispeed()\n"
7796 "cfgetospeed()\n"
7797 "cfsetispeed()\n"
7798 "cfsetospeed()\n"
7799 "chdir()\n"
7800 "chmod()\n"
7801 "chown()\n"
7802 "clock_gettime()\n"
7803 "close()\n"
7804 "connect()\n"
7805 "creat()\n"
7806 "dup()\n"
7807 "dup2()\n"
7808 "execle()\n"
7809 "execve()\n"
7810 "fchmod()\n"
7811 "fchown()\n"
7812 "fcntl()\n"
7813 "fdatasync()\n"
7814 "fork()\n"
7815 "fpathconf()\n"
7816 "fstat()\n"
7817 "fsync()\n"
7818 "ftruncate()\n"
7819 "getegid()\n"
7820 "geteuid()\n"
7821 "getgid()\n"
7822 "getgroups()\n"
7823 "getpeername()\n"
7824 "getpgrp()\n"
7825 "getpid()\n"
7826 "getppid()\n"
7827 "getsockname()\n"
7828 "getsockopt()\n"
7829 "getuid()\n"
7830 "kill()\n"
7831 "link()\n"
7832 "listen()\n"
7833 "lseek()\n"
7834 "lstat()\n"
7835 "mkdir()\n"
7836 "mkfifo()\n"
7837 "open()\n"
7838 "pathconf()\n"
7839 "pause()\n"
7840 "pipe()\n"
7841 "poll()\n"
7842 "posix_trace_event()\n"
7843 "pselect()\n"
7844 "raise()\n"
7845 "read()\n"
7846 "readlink()\n"
7847 "recv()\n"
7848 "recvfrom()\n"
7849 "recvmsg()\n"
7850 "rename()\n"
7851 "rmdir()\n"
7852 "select()\n"
7853 "sem_post()\n"
7854 "send()\n"
7855 "sendmsg()\n"
7856 "sendto()\n"
7857 "setgid()\n"
7858 "setpgid()\n"
7859 "setsid()\n"
7860 "setsockopt()\n"
7861 "setuid()\n"
7862 "shutdown()\n"
7863 "sigaction()\n"
7864 "sigaddset()\n"
7865 "sigdelset()\n"
7866 "sigemptyset()\n"
7867 "sigfillset()\n"
7868 "sigismember()\n"
7869 "signal()\n"
7870 "sigpause()\n"
7871 "sigpending()\n"
7872 "sigprocmask()\n"
7873 "sigqueue()\n"
7874 "sigset()\n"
7875 "sigsuspend()\n"
7876 "sleep()\n"
7877 "sockatmark()\n"
7878 "socket()\n"
7879 "socketpair()\n"
7880 "stat()\n"
7881 "symlink()\n"
7882 "sysconf()\n"
7883 "tcdrain()\n"
7884 "tcflow()\n"
7885 "tcflush()\n"
7886 "tcgetattr()\n"
7887 "tcgetpgrp()\n"
7888 "tcsendbreak()\n"
7889 "tcsetattr()\n"
7890 "tcsetpgrp()\n"
7891 "time()\n"
7892 "timer_getoverrun()\n"
7893 "timer_gettime()\n"
7894 "timer_settime()\n"
7895 "times()\n"
7896 "umask()\n"
7897 "uname()\n"
7898 "unlink()\n"
7899 "utime()\n"
7900 "wait()\n"
7901 "waitpid()\n"
7902 "write()\n"
7903 msgstr ""
7904 "_Exit()\n"
7905 "_exit()\n"
7906 "abort()\n"
7907 "accept()\n"
7908 "access()\n"
7909 "aio_error()\n"
7910 "aio_return()\n"
7911 "aio_suspend()\n"
7912 "alarm()\n"
7913 "bind()\n"
7914 "cfgetispeed()\n"
7915 "cfgetospeed()\n"
7916 "cfsetispeed()\n"
7917 "cfsetospeed()\n"
7918 "chdir()\n"
7919 "chmod()\n"
7920 "chown()\n"
7921 "clock_gettime()\n"
7922 "close()\n"
7923 "connect()\n"
7924 "creat()\n"
7925 "dup()\n"
7926 "dup2()\n"
7927 "execle()\n"
7928 "execve()\n"
7929 "fchmod()\n"
7930 "fchown()\n"
7931 "fcntl()\n"
7932 "fdatasync()\n"
7933 "fork()\n"
7934 "fpathconf()\n"
7935 "fstat()\n"
7936 "fsync()\n"
7937 "ftruncate()\n"
7938 "getegid()\n"
7939 "geteuid()\n"
7940 "getgid()\n"
7941 "getgroups()\n"
7942 "getpeername()\n"
7943 "getpgrp()\n"
7944 "getpid()\n"
7945 "getppid()\n"
7946 "getsockname()\n"
7947 "getsockopt()\n"
7948 "getuid()\n"
7949 "kill()\n"
7950 "link()\n"
7951 "listen()\n"
7952 "lseek()\n"
7953 "lstat()\n"
7954 "mkdir()\n"
7955 "mkfifo()\n"
7956 "open()\n"
7957 "pathconf()\n"
7958 "pause()\n"
7959 "pipe()\n"
7960 "poll()\n"
7961 "posix_trace_event()\n"
7962 "pselect()\n"
7963 "raise()\n"
7964 "read()\n"
7965 "readlink()\n"
7966 "recv()\n"
7967 "recvfrom()\n"
7968 "recvmsg()\n"
7969 "rename()\n"
7970 "rmdir()\n"
7971 "select()\n"
7972 "sem_post()\n"
7973 "send()\n"
7974 "sendmsg()\n"
7975 "sendto()\n"
7976 "setgid()\n"
7977 "setpgid()\n"
7978 "setsid()\n"
7979 "setsockopt()\n"
7980 "setuid()\n"
7981 "shutdown()\n"
7982 "sigaction()\n"
7983 "sigaddset()\n"
7984 "sigdelset()\n"
7985 "sigemptyset()\n"
7986 "sigfillset()\n"
7987 "sigismember()\n"
7988 "signal()\n"
7989 "sigpause()\n"
7990 "sigpending()\n"
7991 "sigprocmask()\n"
7992 "sigqueue()\n"
7993 "sigset()\n"
7994 "sigsuspend()\n"
7995 "sleep()\n"
7996 "sockatmark()\n"
7997 "socket()\n"
7998 "socketpair()\n"
7999 "stat()\n"
8000 "symlink()\n"
8001 "sysconf()\n"
8002 "tcdrain()\n"
8003 "tcflow()\n"
8004 "tcflush()\n"
8005 "tcgetattr()\n"
8006 "tcgetpgrp()\n"
8007 "tcsendbreak()\n"
8008 "tcsetattr()\n"
8009 "tcsetpgrp()\n"
8010 "time()\n"
8011 "timer_getoverrun()\n"
8012 "timer_gettime()\n"
8013 "timer_settime()\n"
8014 "times()\n"
8015 "umask()\n"
8016 "uname()\n"
8017 "unlink()\n"
8018 "utime()\n"
8019 "wait()\n"
8020 "waitpid()\n"
8021 "write()\n"
8022
8023 #. type: Plain text
8024 #: build/C/man7/signal.7:587
8025 msgid ""
8026 "POSIX.1-2008 removes fpathconf(), pathconf(), and sysconf()  from the above "
8027 "list, and adds the following functions:"
8028 msgstr ""
8029 "POSIX.1-2008 では、上記のリストのうち fpathconf(), pathconf(), sysconf()  が"
8030 "削除され、以下の関数が追加された。"
8031
8032 #. type: Plain text
8033 #: build/C/man7/signal.7:610
8034 #, no-wrap
8035 msgid ""
8036 "execl()\n"
8037 "execv()\n"
8038 "faccessat()\n"
8039 "fchmodat()\n"
8040 "fchownat()\n"
8041 "fexecve()\n"
8042 "fstatat()\n"
8043 "futimens()\n"
8044 "linkat()\n"
8045 "mkdirat()\n"
8046 "mkfifoat()\n"
8047 "mknod()\n"
8048 "mknodat()\n"
8049 "openat()\n"
8050 "readlinkat()\n"
8051 "renameat()\n"
8052 "symlinkat()\n"
8053 "unlinkat()\n"
8054 "utimensat()\n"
8055 "utimes()\n"
8056 msgstr ""
8057 "execl()\n"
8058 "execv()\n"
8059 "faccessat()\n"
8060 "fchmodat()\n"
8061 "fchownat()\n"
8062 "fexecve()\n"
8063 "fstatat()\n"
8064 "futimens()\n"
8065 "linkat()\n"
8066 "mkdirat()\n"
8067 "mkfifoat()\n"
8068 "mknod()\n"
8069 "mknodat()\n"
8070 "openat()\n"
8071 "readlinkat()\n"
8072 "renameat()\n"
8073 "symlinkat()\n"
8074 "unlinkat()\n"
8075 "utimensat()\n"
8076 "utimes()\n"
8077
8078 #. type: SS
8079 #: build/C/man7/signal.7:612
8080 #, no-wrap
8081 msgid "Interruption of system calls and library functions by signal handlers"
8082 msgstr "シグナルハンドラによるシステムコールやライブラリ関数への割り込み"
8083
8084 #. type: Plain text
8085 #: build/C/man7/signal.7:615
8086 msgid ""
8087 "If a signal handler is invoked while a system call or library function call "
8088 "is blocked, then either:"
8089 msgstr ""
8090 "システムコールやライブラリが停止 (block) している間にシグナルハンドラが 起動"
8091 "されると、以下のどちらかとなる。"
8092
8093 #. type: Plain text
8094 #: build/C/man7/signal.7:617
8095 msgid ""
8096 "the call is automatically restarted after the signal handler returns; or"
8097 msgstr "シグナルが返った後、呼び出しは自動的に再スタートされる。"
8098
8099 #. type: Plain text
8100 #: build/C/man7/signal.7:620
8101 msgid "the call fails with the error B<EINTR>."
8102 msgstr "呼び出しはエラー B<EINTR> で失敗する。"
8103
8104 #. type: Plain text
8105 #: build/C/man7/signal.7:628
8106 msgid ""
8107 "Which of these two behaviors occurs depends on the interface and whether or "
8108 "not the signal handler was established using the B<SA_RESTART> flag (see "
8109 "B<sigaction>(2)).  The details vary across UNIX systems; below, the details "
8110 "for Linux."
8111 msgstr ""
8112 "これらの二つの挙動のうちどちらが起こるかは、インターフェイスにより依存し、 シ"
8113 "グナルハンドラが B<SA_RESTART> フラグ (B<sigaction>(2)  参照) を使って設定さ"
8114 "れていたかにも依存する。 詳細は UNIX システムによって異なる。 Linux における"
8115 "詳細を以下で説明する。"
8116
8117 #.  The following system calls use ERESTARTSYS,
8118 #.  so that they are restartable
8119 #. type: Plain text
8120 #: build/C/man7/signal.7:637
8121 msgid ""
8122 "If a blocked call to one of the following interfaces is interrupted by a "
8123 "signal handler, then the call will be automatically restarted after the "
8124 "signal handler returns if the B<SA_RESTART> flag was used; otherwise the "
8125 "call will fail with the error B<EINTR>:"
8126 msgstr ""
8127 "以下のインターフェイスのいずれかの呼び出しが停止している間に シグナルハンドラ"
8128 "により割り込まれた場合、 B<SA_RESTART> フラグが使用されていれば、シグナルハン"
8129 "ドラが返った後に その呼び出しは自動的に再スタートされることになる。 それ以外"
8130 "の場合は、その呼び出しはエラー B<EINTR> で失敗することになる。"
8131
8132 #. type: Plain text
8133 #: build/C/man7/signal.7:653
8134 msgid ""
8135 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), and B<ioctl>(2)  calls "
8136 "on \"slow\" devices.  A \"slow\" device is one where the I/O call may block "
8137 "for an indefinite time, for example, a terminal, pipe, or socket.  (A disk "
8138 "is not a slow device according to this definition.)  If an I/O call on a "
8139 "slow device has already transferred some data by the time it is interrupted "
8140 "by a signal handler, then the call will return a success status (normally, "
8141 "the number of bytes transferred)."
8142 msgstr ""
8143 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), B<ioctl>(2)  の「遅い "
8144 "(slow)」デバイスに対する呼び出し。 ここでいう「遅い」デバイスとは、I/O 呼び出"
8145 "しが無期限に停止 (block) する 可能性のあるデバイスのことで、例としては端末、"
8146 "パイプ、ソケットがある (この定義では、ディスクは遅いデバイスではない)。 遅い"
8147 "デバイスに対する I/O 呼び出しが、 シグナルハンドラにより割り込まれた時点まで"
8148 "に何らかのデータを すでに転送していれば、呼び出しは成功ステータス (通常は、転"
8149 "送されたバイト数) を返すことだろう。"
8150
8151 #. type: Plain text
8152 #: build/C/man7/signal.7:657
8153 msgid ""
8154 "B<open>(2), if it can block (e.g., when opening a FIFO; see B<fifo>(7))."
8155 msgstr ""
8156 "停止 (block) する可能性のある B<open>(2)  (例えば、FIFO のオープン時; B<fifo>"
8157 "(7)  参照)。"
8158
8159 #. type: Plain text
8160 #: build/C/man7/signal.7:664
8161 msgid "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), and B<waitpid>(2)."
8162 msgstr "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), B<waitpid>(2)."
8163
8164 #.  If a timeout (setsockopt()) is in effect on the socket, then these
8165 #.  system calls switch to using EINTR.  Consequently, they and are not
8166 #.  automatically restarted, and they show the stop/cont behavior
8167 #.  described below.  (Verified from 2.6.26 source, and by experiment; mtk)
8168 #. type: Plain text
8169 #: build/C/man7/signal.7:680
8170 msgid ""
8171 "Socket interfaces: B<accept>(2), B<connect>(2), B<recv>(2), B<recvfrom>(2), "
8172 "B<recvmsg>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), unless a timeout "
8173 "has been set on the socket (see below)."
8174 msgstr ""
8175 "ソケットインターフェイス: B<accept>(2), B<connect>(2), B<recv>(2), "
8176 "B<recvfrom>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), B<sendmsg>(2).  但"
8177 "し、ソケットにタイムアウトが設定されていない場合 (下記参照)。"
8178
8179 #. type: Plain text
8180 #: build/C/man7/signal.7:686
8181 msgid "File locking interfaces: B<flock>(2)  and B<fcntl>(2)  B<F_SETLKW>."
8182 msgstr ""
8183 "ファイルロック用インターフェイス: B<flock>(2), B<fcntl>(2)  B<F_SETLKW>."
8184
8185 #. type: Plain text
8186 #: build/C/man7/signal.7:693
8187 msgid ""
8188 "POSIX message queue interfaces: B<mq_receive>(3), B<mq_timedreceive>(3), "
8189 "B<mq_send>(3), and B<mq_timedsend>(3)."
8190 msgstr ""
8191 "POSIX メッセージキューインターフェイス: B<mq_receive>(3), B<mq_timedreceive>"
8192 "(3), B<mq_send>(3), B<mq_timedsend>(3)."
8193
8194 #. type: Plain text
8195 #: build/C/man7/signal.7:698
8196 msgid ""
8197 "B<futex>(2)  B<FUTEX_WAIT> (since Linux 2.6.22; beforehand, always failed "
8198 "with B<EINTR>)."
8199 msgstr ""
8200 "B<futex>(2)  B<FUTEX_WAIT> (Linux 2.6.22 以降; それ以前は常に B<EINTR> で失敗"
8201 "していた)。"
8202
8203 #. type: Plain text
8204 #: build/C/man7/signal.7:705
8205 msgid ""
8206 "POSIX semaphore interfaces: B<sem_wait>(3)  and B<sem_timedwait>(3)  (since "
8207 "Linux 2.6.22; beforehand, always failed with B<EINTR>)."
8208 msgstr ""
8209 "POSIX セマフォインターフェイス: B<sem_wait>(3), B<sem_timedwait>(3)  (Linux "
8210 "2.6.22 以降; それ以前は常に B<EINTR> で失敗していた)。"
8211
8212 #.  These are the system calls that give EINTR or ERESTARTNOHAND
8213 #.  on interruption by a signal handler.
8214 #. type: Plain text
8215 #: build/C/man7/signal.7:716
8216 msgid ""
8217 "The following interfaces are never restarted after being interrupted by a "
8218 "signal handler, regardless of the use of B<SA_RESTART>; they always fail "
8219 "with the error B<EINTR> when interrupted by a signal handler:"
8220 msgstr ""
8221 "以下のインターフェイスは、 B<SA_RESTART> を使っているどうかに関わらず、シグナ"
8222 "ルハンドラにより割り込まれた後、 再スタートすることは決してない。 これらは、"
8223 "シグナルハンドラにより割り込まれると、常にエラー B<EINTR> で失敗する。"
8224
8225 #. type: Plain text
8226 #: build/C/man7/signal.7:736 build/C/man7/signal.7:810
8227 msgid ""
8228 "Socket interfaces, when a timeout has been set on the socket using "
8229 "B<setsockopt>(2): B<accept>(2), B<recv>(2), B<recvfrom>(2), and B<recvmsg>"
8230 "(2), if a receive timeout (B<SO_RCVTIMEO>)  has been set; B<connect>(2), "
8231 "B<send>(2), B<sendto>(2), and B<sendmsg>(2), if a send timeout "
8232 "(B<SO_SNDTIMEO>)  has been set."
8233 msgstr ""
8234 "B<setsockopt>(2)  を使ってタイムアウトが設定されているソケットインターフェー"
8235 "ス: B<accept>(2), B<recv>(2), B<recvfrom>(2), B<recvmsg>(2)  で受信タイムアウ"
8236 "ト (B<SO_RCVTIMEO>)  が設定されている場合と、 B<connect>(2), B<send>(2), "
8237 "B<sendto>(2), B<sendmsg>(2)  で送信タイムアウト (B<SO_SNDTIMEO>)  が設定され"
8238 "ている場合。"
8239
8240 #. type: Plain text
8241 #: build/C/man7/signal.7:743
8242 msgid ""
8243 "Interfaces used to wait for signals: B<pause>(2), B<sigsuspend>(2), "
8244 "B<sigtimedwait>(2), and B<sigwaitinfo>(2)."
8245 msgstr ""
8246 "シグナル待ちに使われるインターフェイス: B<pause>(2), B<sigsuspend>(2), "
8247 "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8248
8249 #. type: Plain text
8250 #: build/C/man7/signal.7:752
8251 msgid ""
8252 "File descriptor multiplexing interfaces: B<epoll_wait>(2), B<epoll_pwait>"
8253 "(2), B<poll>(2), B<ppoll>(2), B<select>(2), and B<pselect>(2)."
8254 msgstr ""
8255 "ファイルディスクリプタ多重インターフェイス: B<epoll_wait>(2), B<epoll_pwait>"
8256 "(2), B<poll>(2), B<ppoll>(2), B<select>(2), B<pselect>(2)."
8257
8258 #.  On some other systems, SA_RESTART does restart these system calls
8259 #. type: Plain text
8260 #: build/C/man7/signal.7:760
8261 msgid ""
8262 "System V IPC interfaces: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), and "
8263 "B<semtimedop>(2)."
8264 msgstr ""
8265 "System V IPC インターフェイス: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), "
8266 "B<semtimedop>(2)."
8267
8268 #. type: Plain text
8269 #: build/C/man7/signal.7:766
8270 msgid ""
8271 "Sleep interfaces: B<clock_nanosleep>(2), B<nanosleep>(2), and B<usleep>(3)."
8272 msgstr ""
8273 "スリープ用のインターフェイス: B<clock_nanosleep>(2), B<nanosleep>(2), "
8274 "B<usleep>(3)."
8275
8276 #. type: Plain text
8277 #: build/C/man7/signal.7:771 build/C/man7/signal.7:824
8278 msgid "B<read>(2)  from an B<inotify>(7)  file descriptor."
8279 msgstr "B<inotify>(7)  ファイルディスクリプタからの B<read>(2)."
8280
8281 #. type: Plain text
8282 #: build/C/man7/signal.7:773
8283 msgid "B<io_getevents>(2)."
8284 msgstr "B<io_getevents>(2)."
8285
8286 #. type: Plain text
8287 #: build/C/man7/signal.7:779
8288 msgid ""
8289 "The B<sleep>(3)  function is also never restarted if interrupted by a "
8290 "handler, but gives a success return: the number of seconds remaining to "
8291 "sleep."
8292 msgstr ""
8293 "B<sleep>(3)  関数も、ハンドラにより割り込まれた場合、決して再スタートされるこ"
8294 "とはない。 しかし、成功となり、残っている停止時間を返す。"
8295
8296 #. type: SS
8297 #: build/C/man7/signal.7:779
8298 #, no-wrap
8299 msgid "Interruption of system calls and library functions by stop signals"
8300 msgstr "一時停止シグナルによるシステムコールやライブラリ関数への割り込み"
8301
8302 #. type: Plain text
8303 #: build/C/man7/signal.7:788
8304 msgid ""
8305 "On Linux, even in the absence of signal handlers, certain blocking "
8306 "interfaces can fail with the error B<EINTR> after the process is stopped by "
8307 "one of the stop signals and then resumed via B<SIGCONT>.  This behavior is "
8308 "not sanctioned by POSIX.1, and doesn't occur on other systems."
8309 msgstr ""
8310 "Linux では、シグナルハンドラが設定されていない場合でも、 いくつかのブロッキン"
8311 "グ型のインターフェイスは、 プロセスが一時停止 (stop) シグナルの一つにより停止"
8312 "され、 B<SIGCONT> により再開された後に、エラー B<EINTR> で失敗する可能性があ"
8313 "る。 この挙動は POSIX.1 で認められておらず、他のシステムでは起こらない。"
8314
8315 #. type: Plain text
8316 #: build/C/man7/signal.7:790
8317 msgid "The Linux interfaces that display this behavior are:"
8318 msgstr "この挙動を示す Linux のインターフェイスは以下の通りである。"
8319
8320 #. type: Plain text
8321 #: build/C/man7/signal.7:813
8322 msgid "B<epoll_wait>(2), B<epoll_pwait>(2)."
8323 msgstr "B<epoll_wait>(2), B<epoll_pwait>(2)."
8324
8325 #. type: Plain text
8326 #: build/C/man7/signal.7:816
8327 msgid "B<semop>(2), B<semtimedop>(2)."
8328 msgstr "B<semop>(2), B<semtimedop>(2)."
8329
8330 #. type: Plain text
8331 #: build/C/man7/signal.7:819
8332 msgid "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8333 msgstr "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8334
8335 #. type: Plain text
8336 #: build/C/man7/signal.7:830
8337 msgid ""
8338 "Linux 2.6.21 and earlier: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8339 "B<sem_wait>(3)."
8340 msgstr ""
8341 "Linux 2.6.21 以前: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8342 "B<sem_wait>(3)."
8343
8344 #. type: Plain text
8345 #: build/C/man7/signal.7:834
8346 msgid "Linux 2.6.8 and earlier: B<msgrcv>(2), B<msgsnd>(2)."
8347 msgstr "Linux 2.6.8 以前: B<msgrcv>(2), B<msgsnd>(2)."
8348
8349 #. type: Plain text
8350 #: build/C/man7/signal.7:837
8351 msgid "Linux 2.4 and earlier: B<nanosleep>(2)."
8352 msgstr "Linux 2.4 以前: B<nanosleep>(2)."
8353
8354 #.  It must be a *very* long time since this was true:
8355 #.  .SH BUGS
8356 #.  .B SIGIO
8357 #.  and
8358 #.  .B SIGLOST
8359 #.  have the same value.
8360 #.  The latter is commented out in the kernel source, but
8361 #.  the build process of some software still thinks that
8362 #.  signal 29 is
8363 #.  .BR SIGLOST .
8364 #. type: Plain text
8365 #: build/C/man7/signal.7:850
8366 msgid "POSIX.1, except as noted."
8367 msgstr "POSIX.1 (注記した内容以外)。"
8368
8369 #. type: Plain text
8370 #: build/C/man7/signal.7:884
8371 msgid ""
8372 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), B<restart_syscall>"
8373 "(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>"
8374 "(2), B<sigaction>(2), B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), "
8375 "B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), "
8376 "B<abort>(3), B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), "
8377 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), "
8378 "B<sigvec>(3), B<sigwait>(3), B<strsignal>(3), B<sysv_signal>(3), B<core>(5), "
8379 "B<proc>(5), B<pthreads>(7), B<sigevent>(7)"
8380 msgstr ""
8381 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), B<restart_syscall>"
8382 "(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>"
8383 "(2), B<sigaction>(2), B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), "
8384 "B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), "
8385 "B<abort>(3), B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), "
8386 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), "
8387 "B<sigvec>(3), B<sigwait>(3), B<strsignal>(3), B<sysv_signal>(3), B<core>(5), "
8388 "B<proc>(5), B<pthreads>(7), B<sigevent>(7)"
8389
8390 #. type: TH
8391 #: build/C/man2/signalfd.2:20
8392 #, no-wrap
8393 msgid "SIGNALFD"
8394 msgstr "SIGNALFD"
8395
8396 #. type: TH
8397 #: build/C/man2/signalfd.2:20
8398 #, no-wrap
8399 msgid "2009-01-13"
8400 msgstr "2009-01-13"
8401
8402 #. type: Plain text
8403 #: build/C/man2/signalfd.2:23
8404 msgid "signalfd - create a file descriptor for accepting signals"
8405 msgstr "signalfd - シグナル受け付け用のファイルディスクリプタを生成する"
8406
8407 #. type: Plain text
8408 #: build/C/man2/signalfd.2:25
8409 msgid "B<#include E<lt>sys/signalfd.hE<gt>>"
8410 msgstr "B<#include E<lt>sys/signalfd.hE<gt>>"
8411
8412 #. type: Plain text
8413 #: build/C/man2/signalfd.2:27
8414 msgid ""
8415 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8416 msgstr ""
8417 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8418
8419 #. type: Plain text
8420 #: build/C/man2/signalfd.2:38
8421 msgid ""
8422 "B<signalfd>()  creates a file descriptor that can be used to accept signals "
8423 "targeted at the caller.  This provides an alternative to the use of a signal "
8424 "handler or B<sigwaitinfo>(2), and has the advantage that the file descriptor "
8425 "may be monitored by B<select>(2), B<poll>(2), and B<epoll>(7)."
8426 msgstr ""
8427 "B<signalfd>()  は、呼び出し元宛てのシグナルを受け付けるために使用されるファイ"
8428 "ル ディスクリプタを生成する。 この方法はシグナルハンドラや B<sigwaitinfo>"
8429 "(2)  を用いる方法の代わりとなるものであり、このファイルディスクリプタを "
8430 "B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
8431
8432 #. type: Plain text
8433 #: build/C/man2/signalfd.2:58
8434 msgid ""
8435 "The I<mask> argument specifies the set of signals that the caller wishes to "
8436 "accept via the file descriptor.  This argument is a signal set whose "
8437 "contents can be initialized using the macros described in B<sigsetops>(3).  "
8438 "Normally, the set of signals to be received via the file descriptor should "
8439 "be blocked using B<sigprocmask>(2), to prevent the signals being handled "
8440 "according to their default dispositions.  It is not possible to receive "
8441 "B<SIGKILL> or B<SIGSTOP> signals via a signalfd file descriptor; these "
8442 "signals are silently ignored if specified in I<mask>."
8443 msgstr ""
8444 "I<mask> 引き数には、呼び出し元がこのファイルディスクリプタ経由で受け付けたい "
8445 "シグナル集合を指定する。この引き数で指定するシグナル集合の内容は、 "
8446 "B<sigsetops>(3)  で説明されているマクロを使って初期化することができる。 通"
8447 "常、ファイルディスクリプタ経由で受信するシグナル集合は、 そのシグナルがデフォ"
8448 "ルトの配送方法に基いて処理されるのを防ぐために、 B<sigprocmask>(2)  を使って"
8449 "ブロックしておくべきである。 シグナル B<SIGKILL> と B<SIGSTOP> を signalfd "
8450 "ファイルディスクリプタ経由で受信することはできない。 これらのシグナルが "
8451 "I<mask> で指定された場合には黙って無視される。"
8452
8453 #. type: Plain text
8454 #: build/C/man2/signalfd.2:72
8455 msgid ""
8456 "If the I<fd> argument is -1, then the call creates a new file descriptor and "
8457 "associates the signal set specified in I<mask> with that descriptor.  If "
8458 "I<fd> is not -1, then it must specify a valid existing signalfd file "
8459 "descriptor, and I<mask> is used to replace the signal set associated with "
8460 "that descriptor."
8461 msgstr ""
8462 "I<fd> 引き数が -1 の場合、 B<signalfd>()  は新しいファイルディスクリプタを生"
8463 "成し、 I<mask> で指定されたシグナル集合をそのファイルディスクリプタに関連付け"
8464 "る。 I<fd> 引き数が -1 以外の場合、 I<fd> には有効な既存の signalfd ファイル"
8465 "ディスクリプタを指定しなければならず、 そのディスクリプタに関連付けられている"
8466 "シグナル集合は I<mask> を使って置き換えられる。"
8467
8468 #. type: Plain text
8469 #: build/C/man2/signalfd.2:77
8470 msgid ""
8471 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
8472 "I<flags> to change the behaviour of B<signalfd>():"
8473 msgstr ""
8474 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
8475 "ることで、 B<signalfd>()  の振舞いを変更することができる。"
8476
8477 #. type: TP
8478 #: build/C/man2/signalfd.2:77
8479 #, no-wrap
8480 msgid "B<SFD_NONBLOCK>"
8481 msgstr "B<SFD_NONBLOCK>"
8482
8483 #. type: TP
8484 #: build/C/man2/signalfd.2:85
8485 #, no-wrap
8486 msgid "B<SFD_CLOEXEC>"
8487 msgstr "B<SFD_CLOEXEC>"
8488
8489 #. type: Plain text
8490 #: build/C/man2/signalfd.2:102
8491 msgid ""
8492 "B<signalfd>()  returns a file descriptor that supports the following "
8493 "operations:"
8494 msgstr ""
8495 "B<signalfd>()  が返すファイルディスクリプタは以下の操作をサポートしている。"
8496
8497 #. type: Plain text
8498 #: build/C/man2/signalfd.2:121
8499 msgid ""
8500 "If one or more of the signals specified in I<mask> is pending for the "
8501 "process, then the buffer supplied to B<read>(2)  is used to return one or "
8502 "more I<signalfd_siginfo> structures (see below) that describe the signals.  "
8503 "The B<read>(2)  returns information for as many signals as are pending and "
8504 "will fit in the supplied buffer.  The buffer must be at least I<sizeof"
8505 "(struct signalfd_siginfo)> bytes.  The return value of the B<read>(2)  is "
8506 "the total number of bytes read."
8507 msgstr ""
8508 "I<mask> に指定されているシグナルのうち一つ以上がそのプロセスに対して 処理待"
8509 "ち (pending) であれば、それらのシグナルの情報が B<read>(2)  に渡されたバッ"
8510 "ファを使って、 I<signalfd_siginfo> 構造体に格納されて返される。 B<read>(2)  "
8511 "は、バッファに格納可能な範囲でできるだけ多くの処理待ちのシグナルに ついての情"
8512 "報を返す。 バッファは最低でも I<sizeof(struct signalfd_siginfo)> バイトの大き"
8513 "さがなければならない。 B<read>(2)  の返り値は読み出されたトータルのバイト数で"
8514 "ある。"
8515
8516 #. type: Plain text
8517 #: build/C/man2/signalfd.2:129
8518 msgid ""
8519 "As a consequence of the B<read>(2), the signals are consumed, so that they "
8520 "are no longer pending for the process (i.e., will not be caught by signal "
8521 "handlers, and cannot be accepted using B<sigwaitinfo>(2))."
8522 msgstr ""
8523 "B<read>(2)  が行われた結果、シグナルは消費され、 これらのシグナルはそのプロセ"
8524 "スに対しては処理待ちではなくなる (つまり、シグナルハンドラで捕捉されることも"
8525 "なく、 B<sigwaitinfo>(2)  を使って受け取ることもできなくなる)。"
8526
8527 #. type: Plain text
8528 #: build/C/man2/signalfd.2:140
8529 msgid ""
8530 "If none of the signals in I<mask> is pending for the process, then the "
8531 "B<read>(2)  either blocks until one of the signals in I<mask> is generated "
8532 "for the process, or fails with the error B<EAGAIN> if the file descriptor "
8533 "has been made nonblocking."
8534 msgstr ""
8535 "I<mask> に指定されているシグナルがそのプロセスに対して一つも処理待ちでなけれ"
8536 "ば、 B<read>(2)  は、 I<mask> で指定されたシグナルのうちいずれか一つがそのプ"
8537 "ロセスに対して発生するまで 停止 (block) する、もしくはファイルディスクリプタ"
8538 "が非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗する。"
8539
8540 #. type: Plain text
8541 #: build/C/man2/signalfd.2:153
8542 msgid ""
8543 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
8544 "B<poll>(2)  B<POLLIN> flag)  if one or more of the signals in I<mask> is "
8545 "pending for the process."
8546 msgstr ""
8547 "I<mask> に指定されたシグナルのうち一つ以上がそのプロセスに対して処理待ちであ"
8548 "れば、 ファイルディスクリプタは読み出し可能となる (B<select>(2)  の "
8549 "I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
8550
8551 #. type: Plain text
8552 #: build/C/man2/signalfd.2:160
8553 msgid ""
8554 "The signalfd file descriptor also supports the other file-descriptor "
8555 "multiplexing APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
8556 msgstr ""
8557 "signalfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
8558 "である B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
8559
8560 #. type: Plain text
8561 #: build/C/man2/signalfd.2:165
8562 msgid ""
8563 "When the file descriptor is no longer required it should be closed.  When "
8564 "all file descriptors associated with the same signalfd object have been "
8565 "closed, the resources for object are freed by the kernel."
8566 msgstr ""
8567 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
8568 "る。 同じ signalfd オブジェクトに関連付けられたファイルディスクリプタが全て "
8569 "クローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
8570
8571 #. type: SS
8572 #: build/C/man2/signalfd.2:165
8573 #, no-wrap
8574 msgid "The signalfd_siginfo structure"
8575 msgstr "signalfd_siginfo 構造体"
8576
8577 #. type: Plain text
8578 #: build/C/man2/signalfd.2:171
8579 msgid ""
8580 "The format of the I<signalfd_siginfo> structure(s) returned by B<read>(2)s "
8581 "from a signalfd file descriptor is as follows:"
8582 msgstr ""
8583 "signalfd ファイルディスクリプタからの B<read>(2)  で返される "
8584 "I<signalfd_siginfo> 構造体のフォーマットは以下の通りである。"
8585
8586 #.  ssi_trapno is unused on most arches
8587 #.  FIXME Since Linux 2.6.37 there is 'uint16_t ssi_addr_lsb'
8588 #.  which is not yet documented
8589 #. type: Plain text
8590 #: build/C/man2/signalfd.2:198
8591 #, no-wrap
8592 msgid ""
8593 "struct signalfd_siginfo {\n"
8594 "    uint32_t ssi_signo;   /* Signal number */\n"
8595 "    int32_t  ssi_errno;   /* Error number (unused) */\n"
8596 "    int32_t  ssi_code;    /* Signal code */\n"
8597 "    uint32_t ssi_pid;     /* PID of sender */\n"
8598 "    uint32_t ssi_uid;     /* Real UID of sender */\n"
8599 "    int32_t  ssi_fd;      /* File descriptor (SIGIO) */\n"
8600 "    uint32_t ssi_tid;     /* Kernel timer ID (POSIX timers)\n"
8601 "    uint32_t ssi_band;    /* Band event (SIGIO) */\n"
8602 "    uint32_t ssi_overrun; /* POSIX timer overrun count */\n"
8603 "    uint32_t ssi_trapno;  /* Trap number that caused signal */\n"
8604 "    int32_t  ssi_status;  /* Exit status or signal (SIGCHLD) */\n"
8605 "    int32_t  ssi_int;     /* Integer sent by sigqueue(3) */\n"
8606 "    uint64_t ssi_ptr;     /* Pointer sent by sigqueue(3) */\n"
8607 "    uint64_t ssi_utime;   /* User CPU time consumed (SIGCHLD) */\n"
8608 "    uint64_t ssi_stime;   /* System CPU time consumed (SIGCHLD) */\n"
8609 "    uint64_t ssi_addr;    /* Address that generated signal\n"
8610 "                             (for hardware-generated signals) */\n"
8611 "    uint8_t  pad[I<X>];      /* Pad size to 128 bytes (allow for\n"
8612 "                              additional fields in the future) */\n"
8613 "};\n"
8614 msgstr ""
8615 "struct signalfd_siginfo {\n"
8616 "struct signalfd_siginfo {\n"
8617 "    uint32_t ssi_signo;   /* シグナル番号 */\n"
8618 "    int32_t  ssi_errno;   /* エラー番号 (未使用) */\n"
8619 "    int32_t  ssi_code;    /* シグナルコード */\n"
8620 "    uint32_t ssi_pid;     /* 送信元の PID */\n"
8621 "    uint32_t ssi_uid;     /* 送信元の実 UID */\n"
8622 "    int32_t  ssi_fd;      /* ファイルディスクリプタ (SIGIO) */\n"
8623 "    uint32_t ssi_tid;     /* カーネルタイマ ID (POSIX タイマ)\n"
8624 "    uint32_t ssi_band;    /* Band イベント (SIGIO) */\n"
8625 "    uint32_t ssi_overrun; /* POSIX タイマのオーバーラン回数 */\n"
8626 "    uint32_t ssi_trapno;  /* シグナルの原因となったトラップ番号 */\n"
8627 "    int32_t  ssi_status;  /* 終了ステータスかシグナル (SIGCHLD) */\n"
8628 "    int32_t  ssi_int;     /* sigqueue(3) から送られた整数 */\n"
8629 "    uint64_t ssi_ptr;     /* sigqueue(3) から送られたポインタ */\n"
8630 "    uint64_t ssi_utime;   /* 消費したユーザ CPU 時間 (SIGCHLD) */\n"
8631 "    uint64_t ssi_stime;   /* 消費したシステム CPU 時間 (SIGCHLD) */\n"
8632 "    uint64_t ssi_addr;    /* シグナルを生成したアドレス\n"
8633 "                             (ハードウェアが生成したシグナルの場合) */\n"
8634 "    uint8_t  pad[I<X>];      /* pad の大きさは 128 バイト\n"
8635 "                             (将来のフィールド追加用の場所の確保) */\n"
8636 "};\n"
8637
8638 #. type: Plain text
8639 #: build/C/man2/signalfd.2:221
8640 msgid ""
8641 "Each of the fields in this structure is analogous to the similarly named "
8642 "field in the I<siginfo_t> structure.  The I<siginfo_t> structure is "
8643 "described in B<sigaction>(2).  Not all fields in the returned "
8644 "I<signalfd_siginfo> structure will be valid for a specific signal; the set "
8645 "of valid fields can be determined from the value returned in the I<ssi_code> "
8646 "field.  This field is the analog of the I<siginfo_t> I<si_code> field; see "
8647 "B<sigaction>(2)  for details."
8648 msgstr ""
8649 "I<signalfd_siginfo> 構造体の各フィールドは、 I<siginfo_t> 構造体の同じような"
8650 "名前のフィールドと同様である。 I<siginfo_t> 構造体については B<sigaction>"
8651 "(2)  に説明がある。 返された I<signalfd_siginfo> 構造体の全てのフィールドがあ"
8652 "るシグナルに対して有効なわけではない。 どのフィールドが有効かは、 "
8653 "I<ssi_code> フィールドで返される値から判定することができる。 このフィールド"
8654 "は I<siginfo_t> の I<si_code> フィールドと同様である。詳細は B<sigaction>"
8655 "(2)  を参照。"
8656
8657 #. type: SS
8658 #: build/C/man2/signalfd.2:221 build/C/man2/timerfd_create.2:269
8659 #, no-wrap
8660 msgid "fork(2) semantics"
8661 msgstr "fork(2) での扱い"
8662
8663 #. type: Plain text
8664 #: build/C/man2/signalfd.2:229
8665 msgid ""
8666 "After a B<fork>(2), the child inherits a copy of the signalfd file "
8667 "descriptor.  A B<read>(2)  from the file descriptor in the child will return "
8668 "information about signals queued to the child."
8669 msgstr ""
8670 "B<fork>(2)  が行われると、子プロセスは signalfd ファイルディスクリプタのコ"
8671 "ピーを 継承する。 子プロセスでこのファイルディスクリプタから B<read>(2)  を行"
8672 "うと、子プロセスに対するキューに入っているシグナルに関する 情報が返される。"
8673
8674 #. type: SS
8675 #: build/C/man2/signalfd.2:229 build/C/man2/timerfd_create.2:281
8676 #, no-wrap
8677 msgid "execve(2) semantics"
8678 msgstr "execve(2) での扱い"
8679
8680 #. type: Plain text
8681 #: build/C/man2/signalfd.2:241
8682 msgid ""
8683 "Just like any other file descriptor, a signalfd file descriptor remains open "
8684 "across an B<execve>(2), unless it has been marked for close-on-exec (see "
8685 "B<fcntl>(2)).  Any signals that were available for reading before the "
8686 "B<execve>(2)  remain available to the newly loaded program.  (This is "
8687 "analogous to traditional signal semantics, where a blocked signal that is "
8688 "pending remains pending across an B<execve>(2).)"
8689 msgstr ""
8690 "他のファイルディスクリプタと全く同様に、 signalfd ファイルディスクリプタも "
8691 "B<execve>(2)  の前後でオープンされたままとなる。但し、そのファイルディスクリ"
8692 "プタに close-on-exec のマーク (B<fcntl>(2)  参照) が付いている場合はクローズ"
8693 "される。 B<execve>(2)  の前に読み出し可能となっていた全てのシグナルは新しく起"
8694 "動されたプログラム でも引き続き読み出し可能である (これは伝統的なシグナルの扱"
8695 "いと同じであり、 処理待ちのブロックされたシグナルは B<execve>(2)  の前後で処"
8696 "理待ちのままとなる)。"
8697
8698 #. type: SS
8699 #: build/C/man2/signalfd.2:241
8700 #, no-wrap
8701 msgid "Thread semantics"
8702 msgstr "スレッドでの扱い"
8703
8704 #. type: Plain text
8705 #: build/C/man2/signalfd.2:251
8706 msgid ""
8707 "The semantics of signalfd file descriptors in a multithreaded program mirror "
8708 "the standard semantics for signals.  In other words, when a thread reads "
8709 "from a signalfd file descriptor, it will read the signals that are directed "
8710 "to the thread itself and the signals that are directed to the process (i.e., "
8711 "the entire thread group).  (A thread will not be able to read signals that "
8712 "are directed to other threads in the process.)"
8713 msgstr ""
8714 "マルチスレッドプログラムにおける signalfd ファイルディスクリプタの扱いは シグ"
8715 "ナルの標準的な扱いと全く同じである。 言い換えると、あるスレッドが signalfd "
8716 "ファイルディスクリプタから 読み出しを行うと、そのスレッド自身宛てのシグナルと"
8717 "プロセス (すなわち スレッドグループ全体) 宛てのシグナルが読み出される。 (ス"
8718 "レッドは同じプロセスの他のスレッド宛てのシグナルを読み出すことはできない。)"
8719
8720 #. type: Plain text
8721 #: build/C/man2/signalfd.2:265
8722 msgid ""
8723 "On success, B<signalfd>()  returns a signalfd file descriptor; this is "
8724 "either a new file descriptor (if I<fd> was -1), or I<fd> if I<fd> was a "
8725 "valid signalfd file descriptor.  On error, -1 is returned and I<errno> is "
8726 "set to indicate the error."
8727 msgstr ""
8728 "成功すると、 B<signalfd>()  は signalfd ファイルディスクリプタを返す。 返され"
8729 "るファイルディスクリプタは、 I<fd> が -1 の場合は新規のファイルディスクリプタ"
8730 "であり、 I<fd> が有効な signalfd ファイルディスクリプタだった場合は I<fd> 自"
8731 "身である。 エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
8732
8733 #. type: Plain text
8734 #: build/C/man2/signalfd.2:271
8735 msgid "The I<fd> file descriptor is not a valid file descriptor."
8736 msgstr "ファイルディスクリプタ I<fd> が有効なファイルディスクリプタでない。"
8737
8738 #.  or, the
8739 #.  .I sizemask
8740 #.  argument is not equal to
8741 #.  .IR sizeof(sigset_t) ;
8742 #. type: Plain text
8743 #: build/C/man2/signalfd.2:279
8744 msgid "I<fd> is not a valid signalfd file descriptor."
8745 msgstr "I<fd> が有効な signalfd ファイルディスクリプタではない。"
8746
8747 #. type: Plain text
8748 #: build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:320
8749 msgid ""
8750 "I<flags> is invalid; or, in Linux 2.6.26 or earlier, I<flags> is nonzero."
8751 msgstr ""
8752 "I<flags> が無効である。もしくは、Linux 2.6.26 以前の場合には I<flags> が 0 以"
8753 "外である。"
8754
8755 #. type: Plain text
8756 #: build/C/man2/signalfd.2:289 build/C/man2/timerfd_create.2:323
8757 msgid "The per-process limit of open file descriptors has been reached."
8758 msgstr ""
8759 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
8760
8761 #. type: Plain text
8762 #: build/C/man2/signalfd.2:299
8763 msgid "There was insufficient memory to create a new signalfd file descriptor."
8764 msgstr ""
8765 "新しい signalfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
8766
8767 #.  signalfd() is in glibc 2.7, but reportedly does not build
8768 #. type: Plain text
8769 #: build/C/man2/signalfd.2:307
8770 msgid ""
8771 "B<signalfd>()  is available on Linux since kernel 2.6.22.  Working support "
8772 "is provided in glibc since version 2.8.  The B<signalfd4>()  system call "
8773 "(see NOTES) is available on Linux since kernel 2.6.27."
8774 msgstr ""
8775 "B<signalfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
8776 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<signalfd4>()  "
8777 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
8778 "る。"
8779
8780 #. type: Plain text
8781 #: build/C/man2/signalfd.2:312
8782 msgid "B<signalfd>()  and B<signalfd4>()  are Linux-specific."
8783 msgstr "B<signalfd>()  と B<signalfd4>()  は Linux 固有である。"
8784
8785 #. type: Plain text
8786 #: build/C/man2/signalfd.2:322
8787 msgid ""
8788 "The underlying Linux system call requires an additional argument, I<size_t "
8789 "sizemask>, which specifies the size of the I<mask> argument.  The glibc "
8790 "B<signalfd>()  wrapper function does not include this argument, since it "
8791 "provides the required value for the underlying system call."
8792 msgstr ""
8793 "実際の Linux のシステムコールでは I<size_t sizemask> という引き数が追加で必要"
8794 "である。この引き数で I<mask> のサイズを指定する。 glibc の B<signalfd>()  "
8795 "ラッパー関数にはこの引き数は含まれず、 ラッパー関数が必要な値を計算して内部で"
8796 "呼び出すシステムコールに提供する。"
8797
8798 #. type: Plain text
8799 #: build/C/man2/signalfd.2:336
8800 msgid ""
8801 "A process can create multiple signalfd file descriptors.  This makes it "
8802 "possible to accept different signals on different file descriptors.  (This "
8803 "may be useful if monitoring the file descriptors using B<select>(2), B<poll>"
8804 "(2), or B<epoll>(7): the arrival of different signals will make different "
8805 "descriptors ready.)  If a signal appears in the I<mask> of more than one of "
8806 "the file descriptors, then occurrences of that signal can be read (once) "
8807 "from any one of the descriptors."
8808 msgstr ""
8809 "一つのプロセスは複数の signalfd ファイルディスクリプタを生成することができ"
8810 "る。 これにより、異なるファイルディスクリプタで異なるシグナルを受け取ること"
8811 "が できる (この機能は B<select>(2), B<poll>(2), B<epoll>(7)  を使ってファイル"
8812 "ディスクリプタを監視する場合に有用かもしれない。 異なるシグナルが到着すると、"
8813 "異なるファイルディスクリプタが利用可能に なるからだ)。 一つのシグナルが二つ以"
8814 "上のファイルディスクリプタの I<mask> に含まれている場合、そのシグナルの発生は"
8815 "そのシグナルを I<mask> に含むファイルディスクリプタのうちいずれか一つから読み"
8816 "出すことができる。"
8817
8818 #. type: Plain text
8819 #: build/C/man2/signalfd.2:352
8820 msgid ""
8821 "There are two underlying Linux system calls: B<signalfd>()  and the more "
8822 "recent B<signalfd4>().  The former system call does not implement a I<flags> "
8823 "argument.  The latter system call implements the I<flags> values described "
8824 "above.  Starting with glibc 2.9, the B<signalfd>()  wrapper function will "
8825 "use B<signalfd4>()  where it is available."
8826 msgstr ""
8827 "下層にある Linux システムコールは二種類あり、 B<signalfd>()  と、もっと新し"
8828 "い B<signalfd4>()  である。 B<signalfd>()  は I<flags> 引き数を実装していな"
8829 "い。 B<signalfd4>()  では上記の値の I<flags> が実装されている。 glibc 2.9 以"
8830 "降では、 B<signalfd>()  のラッパー関数は、 B<signalfd4>()  が利用可能であれ"
8831 "ば、これを使用する。"
8832
8833 #.  The fix also was put into 2.6.24.5
8834 #. type: Plain text
8835 #: build/C/man2/signalfd.2:360
8836 msgid ""
8837 "In kernels before 2.6.25, the I<ssi_ptr> and I<ssi_int> fields are not "
8838 "filled in with the data accompanying a signal sent by B<sigqueue>(3)."
8839 msgstr ""
8840 "カーネル 2.6.25 より前では、 B<sigqueue>(3)  により送信されたシグナルと一緒に"
8841 "渡されるデータでは、フィールド I<ssi_ptr> と I<ssi_int> は設定されない。"
8842
8843 #. type: Plain text
8844 #: build/C/man2/signalfd.2:370
8845 msgid ""
8846 "The program below accepts the signals B<SIGINT> and B<SIGQUIT> via a "
8847 "signalfd file descriptor.  The program terminates after accepting a "
8848 "B<SIGQUIT> signal.  The following shell session demonstrates the use of the "
8849 "program:"
8850 msgstr ""
8851 "下記のプログラムは、シグナル B<SIGINT> と B<SIGQUIT> を signalfd ファイルディ"
8852 "スクリプタ経由で受信する。 シグナル B<SIGQUIT> 受信後にプログラムは終了す"
8853 "る。 以下に示すシェルセッションにこのプログラムの使い方を示す。"
8854
8855 #. type: Plain text
8856 #: build/C/man2/signalfd.2:381
8857 #, no-wrap
8858 msgid ""
8859 "$B< ./signalfd_demo>\n"
8860 "B<^C>                   # Control-C generates SIGINT\n"
8861 "Got SIGINT\n"
8862 "B<^C>\n"
8863 "Got SIGINT\n"
8864 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
8865 "Got SIGQUIT\n"
8866 "$\n"
8867 msgstr ""
8868 "$B< ./signalfd_demo>\n"
8869 "B<^C>                   # Control-C generates SIGINT\n"
8870 "Got SIGINT\n"
8871 "B<^C>\n"
8872 "Got SIGINT\n"
8873 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
8874 "Got SIGQUIT\n"
8875 "$\n"
8876
8877 #. type: Plain text
8878 #: build/C/man2/signalfd.2:391
8879 #, no-wrap
8880 msgid ""
8881 "#include E<lt>sys/signalfd.hE<gt>\n"
8882 "#include E<lt>signal.hE<gt>\n"
8883 "#include E<lt>unistd.hE<gt>\n"
8884 "#include E<lt>stdlib.hE<gt>\n"
8885 "#include E<lt>stdio.hE<gt>\n"
8886 msgstr ""
8887 "#include E<lt>sys/signalfd.hE<gt>\n"
8888 "#include E<lt>signal.hE<gt>\n"
8889 "#include E<lt>unistd.hE<gt>\n"
8890 "#include E<lt>stdlib.hE<gt>\n"
8891 "#include E<lt>stdio.hE<gt>\n"
8892
8893 #. type: Plain text
8894 #: build/C/man2/signalfd.2:402
8895 #, no-wrap
8896 msgid ""
8897 "int\n"
8898 "main(int argc, char *argv[])\n"
8899 "{\n"
8900 "    sigset_t mask;\n"
8901 "    int sfd;\n"
8902 "    struct signalfd_siginfo fdsi;\n"
8903 "    ssize_t s;\n"
8904 msgstr ""
8905 "int\n"
8906 "main(int argc, char *argv[])\n"
8907 "{\n"
8908 "    sigset_t mask;\n"
8909 "    int sfd;\n"
8910 "    struct signalfd_siginfo fdsi;\n"
8911 "    ssize_t s;\n"
8912
8913 #. type: Plain text
8914 #: build/C/man2/signalfd.2:406
8915 #, no-wrap
8916 msgid ""
8917 "    sigemptyset(&mask);\n"
8918 "    sigaddset(&mask, SIGINT);\n"
8919 "    sigaddset(&mask, SIGQUIT);\n"
8920 msgstr ""
8921 "    sigemptyset(&mask);\n"
8922 "    sigaddset(&mask, SIGINT);\n"
8923 "    sigaddset(&mask, SIGQUIT);\n"
8924
8925 #. type: Plain text
8926 #: build/C/man2/signalfd.2:409
8927 #, no-wrap
8928 msgid ""
8929 "    /* Block signals so that they aren\\(aqt handled\n"
8930 "       according to their default dispositions */\n"
8931 msgstr ""
8932 "    /* Block signals so that they aren\\(aqt handled\n"
8933 "       according to their default dispositions */\n"
8934
8935 #. type: Plain text
8936 #: build/C/man2/signalfd.2:412
8937 #, no-wrap
8938 msgid ""
8939 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
8940 "        handle_error(\"sigprocmask\");\n"
8941 msgstr ""
8942 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
8943 "        handle_error(\"sigprocmask\");\n"
8944
8945 #. type: Plain text
8946 #: build/C/man2/signalfd.2:416
8947 #, no-wrap
8948 msgid ""
8949 "    sfd = signalfd(-1, &mask, 0);\n"
8950 "    if (sfd == -1)\n"
8951 "        handle_error(\"signalfd\");\n"
8952 msgstr ""
8953 "    sfd = signalfd(-1, &mask, 0);\n"
8954 "    if (sfd == -1)\n"
8955 "        handle_error(\"signalfd\");\n"
8956
8957 #. type: Plain text
8958 #: build/C/man2/signalfd.2:421
8959 #, no-wrap
8960 msgid ""
8961 "    for (;;) {\n"
8962 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
8963 "        if (s != sizeof(struct signalfd_siginfo))\n"
8964 "            handle_error(\"read\");\n"
8965 msgstr ""
8966 "    for (;;) {\n"
8967 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
8968 "        if (s != sizeof(struct signalfd_siginfo))\n"
8969 "            handle_error(\"read\");\n"
8970
8971 #. type: Plain text
8972 #: build/C/man2/signalfd.2:432
8973 #, no-wrap
8974 msgid ""
8975 "        if (fdsi.ssi_signo == SIGINT) {\n"
8976 "            printf(\"Got SIGINT\\en\");\n"
8977 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
8978 "            printf(\"Got SIGQUIT\\en\");\n"
8979 "            exit(EXIT_SUCCESS);\n"
8980 "        } else {\n"
8981 "            printf(\"Read unexpected signal\\en\");\n"
8982 "        }\n"
8983 "    }\n"
8984 "}\n"
8985 msgstr ""
8986 "        if (fdsi.ssi_signo == SIGINT) {\n"
8987 "            printf(\"Got SIGINT\\en\");\n"
8988 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
8989 "            printf(\"Got SIGQUIT\\en\");\n"
8990 "            exit(EXIT_SUCCESS);\n"
8991 "        } else {\n"
8992 "            printf(\"Read unexpected signal\\en\");\n"
8993 "        }\n"
8994 "    }\n"
8995 "}\n"
8996
8997 #. type: Plain text
8998 #: build/C/man2/signalfd.2:446
8999 msgid ""
9000 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
9001 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
9002 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
9003 msgstr ""
9004 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
9005 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
9006 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
9007
9008 #. type: TH
9009 #: build/C/man3/sigpause.3:25
9010 #, no-wrap
9011 msgid "SIGPAUSE"
9012 msgstr "SIGPAUSE"
9013
9014 #. type: TH
9015 #: build/C/man3/sigpause.3:25
9016 #, no-wrap
9017 msgid "2014-01-07"
9018 msgstr "2014-01-07"
9019
9020 #. type: Plain text
9021 #: build/C/man3/sigpause.3:28
9022 msgid "sigpause - atomically release blocked signals and wait for interrupt"
9023 msgstr "sigpause - ブロックされたシグナルをアトミックに解放して割り込みを待つ"
9024
9025 #. type: Plain text
9026 #: build/C/man3/sigpause.3:33
9027 #, no-wrap
9028 msgid "B<int sigpause(int >I<sigmask>B<);  /* BSD (but see NOTES) */>\n"
9029 msgstr "B<int sigpause(int >I<sigmask>B<);  /* BSD (ただし「備考」を参照) */>\n"
9030
9031 #. type: Plain text
9032 #: build/C/man3/sigpause.3:35
9033 #, no-wrap
9034 msgid "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
9035 msgstr "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
9036
9037 #. type: Plain text
9038 #: build/C/man3/sigpause.3:41
9039 msgid "Don't use this function.  Use B<sigsuspend>(2)  instead."
9040 msgstr "この関数を使わないこと。 代わりに B<sigsuspend>(2)  を使うこと。"
9041
9042 #. type: Plain text
9043 #: build/C/man3/sigpause.3:48
9044 msgid ""
9045 "The function B<sigpause>()  is designed to wait for some signal.  It changes "
9046 "the process's signal mask (set of blocked signals), and then waits for a "
9047 "signal to arrive.  Upon arrival of a signal, the original signal mask is "
9048 "restored."
9049 msgstr ""
9050 "関数 B<sigpause>()  はシグナルを待つように設計されている。 この関数はプロセス"
9051 "のシグナルマスク (ブロックされたシグナルのセット) を変更し、 シグナルが到着す"
9052 "るのを待つ。 シグナルが到着すると、シグナルマスクは元に戻される。"
9053
9054 #. type: Plain text
9055 #: build/C/man3/sigpause.3:56
9056 msgid ""
9057 "If B<sigpause>()  returns, it was interrupted by a signal and the return "
9058 "value is -1 with I<errno> set to B<EINTR>."
9059 msgstr ""
9060 "B<sigpause>()  が返った場合、この関数はシグナルによって割り込まれている。 返"
9061 "り値は -1 で、 I<errno> は B<EINTR> に設定される。"
9062
9063 #. type: Plain text
9064 #: build/C/man3/sigpause.3:61
9065 msgid "The B<sigpause>()  function is thread-safe."
9066 msgstr "B<sigpause>() 関数はスレッドセーフである。"
9067
9068 #. type: Plain text
9069 #: build/C/man3/sigpause.3:65
9070 msgid "The System V version of B<sigpause>()  is standardized in POSIX.1-2001."
9071 msgstr "System V 版の B<sigpause>()  は POSIX.1-2001 で標準化されている。"
9072
9073 #.  __xpg_sigpause: UNIX 95, spec 1170, SVID, SVr4, XPG
9074 #. type: Plain text
9075 #: build/C/man3/sigpause.3:82
9076 msgid ""
9077 "The classical BSD version of this function appeared in 4.2BSD.  It sets the "
9078 "process's signal mask to I<sigmask>.  UNIX 95 standardized the incompatible "
9079 "System V version of this function, which removes only the specified signal "
9080 "I<sig> from the process's signal mask.  The unfortunate situation with two "
9081 "incompatible functions with the same name was solved by the B<\\%sigsuspend>"
9082 "(2)  function, that takes a I<sigset_t\\ *> argument (instead of an I<int>)."
9083 msgstr ""
9084 "この関数の古典的な BSD 版は 4.2BSD で登場した。 この関数はプロセスのシグナル"
9085 "マスクを I<sigmask> に設定する。 UNIX 95 では BSD 版と互換性のない System V "
9086 "版のこの関数が標準化された。 UNIX 95 版は、指定されたシグナル I<sig> をプロセ"
9087 "スのシグナルマスクから削除するだけである。 同じ名前で互換性のない 2 つの関数"
9088 "があるという不幸な事態は、 B<\\%sigsuspend>(2)  関数によって解消された。 この"
9089 "関数は (I<int> の代わりに)  B<sigset_t\\ *> 引き数をとる。"
9090
9091 #. type: Plain text
9092 #: build/C/man3/sigpause.3:85
9093 msgid ""
9094 "On Linux, this routine is a system call only on the Sparc (sparc64)  "
9095 "architecture."
9096 msgstr ""
9097 "Linux では、このルーチンは Sparc (sparc64) アーキテクチャでのみ システムコー"
9098 "ルとなっている。"
9099
9100 #. type: Plain text
9101 #: build/C/man3/sigpause.3:87
9102 msgid "Libc4 and libc5 know only about the BSD version."
9103 msgstr "libc4 と libc5 には BSD 版しかない。"
9104
9105 #.  For the BSD version, one usually uses a zero
9106 #.  .I sigmask
9107 #.  to indicate that no signals are to be blocked.
9108 #. type: Plain text
9109 #: build/C/man3/sigpause.3:111
9110 msgid ""
9111 "Glibc uses the BSD version if the B<_BSD_SOURCE> feature test macro is "
9112 "defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
9113 "B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined.  Otherwise, the System V "
9114 "version is used (and B<_XOPEN_SOURCE> must be defined to obtain the "
9115 "declaration).  Since glibc 2.19, only the System V version is exposed by "
9116 "I<E<lt>signal.hE<gt>>; applications that formerly used the BSD B<sigpause>"
9117 "()  should be amended to use B<sigsuspend>(2)."
9118 msgstr ""
9119 "機能検査マクロ B<_BSD_SOURCE> が定義され、 B<_POSIX_SOURCE>, "
9120 "B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, B<_GNU_SOURCE>, B<_SVID_SOURCE> のいず"
9121 "れも定義されていない場合、 glibc は BSD 版を使う。 それ以外の場合には、"
9122 "System V 版を使用する (宣言を得るためには B<_XOPEN_SOURCE> が定義されていなけ"
9123 "ればならない)。 glibc 2.19 以降では、 I<E<lt>signal.hE<gt>> では System V 版"
9124 "だけが公開される。 BSD 版の B<sigpause>() を使用していたアプリケーションは "
9125 "B<sigsuspend>(2) を使用するように修正すべきである。"
9126
9127 #. type: Plain text
9128 #: build/C/man3/sigpause.3:119
9129 msgid ""
9130 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigblock>"
9131 "(3), B<sigvec>(3), B<feature_test_macros>(7)"
9132 msgstr ""
9133 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigblock>"
9134 "(3), B<sigvec>(3), B<feature_test_macros>(7)"
9135
9136 #. type: TH
9137 #: build/C/man2/sigpending.2:29
9138 #, no-wrap
9139 msgid "SIGPENDING"
9140 msgstr "SIGPENDING"
9141
9142 #. type: TH
9143 #: build/C/man2/sigpending.2:29
9144 #, no-wrap
9145 msgid "2013-12-11"
9146 msgstr "2013-12-11"
9147
9148 #. type: Plain text
9149 #: build/C/man2/sigpending.2:32
9150 msgid "sigpending - examine pending signals"
9151 msgstr "sigpending - 処理待ちのシグナルの検査"
9152
9153 #. type: Plain text
9154 #: build/C/man2/sigpending.2:36
9155 msgid "B<int sigpending(sigset_t *>I<set>B<);>"
9156 msgstr "B<int sigpending(sigset_t *>I<set>B<);>"
9157
9158 #. type: Plain text
9159 #: build/C/man2/sigpending.2:45
9160 msgid ""
9161 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9162 "_POSIX_SOURCE"
9163 msgstr ""
9164 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9165 "_POSIX_SOURCE"
9166
9167 #. type: Plain text
9168 #: build/C/man2/sigpending.2:53
9169 msgid ""
9170 "B<sigpending>()  returns the set of signals that are pending for delivery to "
9171 "the calling thread (i.e., the signals which have been raised while "
9172 "blocked).  The mask of pending signals is returned in I<set>."
9173 msgstr ""
9174 "B<sigpending>()  は、呼び出し元のスレッドへの配送を待っている (pending) シグ"
9175 "ナル集合 (すなわち、禁止中に発生したシグナル) を返す。 処理待ちのシグナルのマ"
9176 "スクが I<set> に格納される。"
9177
9178 #. type: Plain text
9179 #: build/C/man2/sigpending.2:59
9180 msgid ""
9181 "B<sigpending>()  returns 0 on success and -1 on error.  In the event of an "
9182 "error, I<errno> is set to indicate the cause."
9183 msgstr ""
9184 "B<sigpending>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、I<errno> "
9185 "にエラーの原因を示す値を設定する。"
9186
9187 #. type: Plain text
9188 #: build/C/man2/sigpending.2:64
9189 msgid ""
9190 "I<set> points to memory which is not a valid part of the process address "
9191 "space."
9192 msgstr ""
9193 "I<set> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
9194
9195 #. type: Plain text
9196 #: build/C/man2/sigpending.2:74
9197 msgid ""
9198 "If a signal is both blocked and has a disposition of \"ignored\", it is "
9199 "I<not> added to the mask of pending signals when generated."
9200 msgstr ""
9201 "シグナルが禁止 (ブロック) されており、かつ配送方法が \"ignored\" (無視) に"
9202 "なっている場合、そのシグナルが発生した場合に処理待ちシグナルのマスクにそのシ"
9203 "グナルは追加I<されない>。"
9204
9205 #. type: Plain text
9206 #: build/C/man2/sigpending.2:79
9207 msgid ""
9208 "The set of signals that is pending for a thread is the union of the set of "
9209 "signals that is pending for that thread and the set of signals that is "
9210 "pending for the process as a whole; see B<signal>(7)."
9211 msgstr ""
9212 "あるスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体への処理待ち"
9213 "のシグナル集合と、プロセス全体への処理待ちの シグナル集合をあわせたものであ"
9214 "る。 B<signal>(7)  参照。"
9215
9216 #. type: Plain text
9217 #: build/C/man2/sigpending.2:91
9218 msgid ""
9219 "In versions of glibc up to and including 2.2.1, there is a bug in the "
9220 "wrapper function for B<sigpending>()  which means that information about "
9221 "pending real-time signals is not correctly returned."
9222 msgstr ""
9223 "バージョン 2.2.1 以前の glibc では、 B<sigpending>()  のラッパー関数に、処理"
9224 "待ちのリアルタイムシグナルに関する情報が 正しく返されないというバグがある。"
9225
9226 #. type: Plain text
9227 #: build/C/man2/sigpending.2:99
9228 msgid ""
9229 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), B<sigsuspend>"
9230 "(2), B<sigsetops>(3), B<signal>(7)"
9231 msgstr ""
9232 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), B<sigsuspend>"
9233 "(2), B<sigsetops>(3), B<signal>(7)"
9234
9235 #. type: TH
9236 #: build/C/man2/sigprocmask.2:29
9237 #, no-wrap
9238 msgid "SIGPROCMASK"
9239 msgstr "SIGPROCMASK"
9240
9241 #. type: Plain text
9242 #: build/C/man2/sigprocmask.2:32
9243 msgid "sigprocmask - examine and change blocked signals"
9244 msgstr "sigprocmask - 禁止するシグナルの確認と変更"
9245
9246 #. type: Plain text
9247 #: build/C/man2/sigprocmask.2:37
9248 msgid ""
9249 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9250 "*>I<oldset>B<);>"
9251 msgstr ""
9252 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9253 "*>I<oldset>B<);>"
9254
9255 #. type: Plain text
9256 #: build/C/man2/sigprocmask.2:46
9257 msgid ""
9258 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9259 "_POSIX_SOURCE"
9260 msgstr ""
9261 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9262 "_POSIX_SOURCE"
9263
9264 #. type: Plain text
9265 #: build/C/man2/sigprocmask.2:55
9266 msgid ""
9267 "B<sigprocmask>()  is used to fetch and/or change the signal mask of the "
9268 "calling thread.  The signal mask is the set of signals whose delivery is "
9269 "currently blocked for the caller (see also B<signal>(7)  for more details)."
9270 msgstr ""
9271 "B<sigprocmask>()  を使うと、呼び出したスレッドのシグナルマスクの取得/変更がで"
9272 "きる。 シグナルマスクは、呼び出し元に対して現在配送が禁止されているシグナル"
9273 "の 集合のことである (詳細については B<signal>(7)  も参照のこと)。"
9274
9275 #. type: Plain text
9276 #: build/C/man2/sigprocmask.2:59
9277 msgid ""
9278 "The behavior of the call is dependent on the value of I<how>, as follows."
9279 msgstr "このコールの動作は I<how> の値によって決まる:"
9280
9281 #. type: TP
9282 #: build/C/man2/sigprocmask.2:59
9283 #, no-wrap
9284 msgid "B<SIG_BLOCK>"
9285 msgstr "B<SIG_BLOCK>"
9286
9287 #. type: Plain text
9288 #: build/C/man2/sigprocmask.2:64
9289 msgid ""
9290 "The set of blocked signals is the union of the current set and the I<set> "
9291 "argument."
9292 msgstr ""
9293 "禁止されたシグナルの集合は現在の値と I<set> 引き数を結合したものとなる。"
9294
9295 #. type: TP
9296 #: build/C/man2/sigprocmask.2:64
9297 #, no-wrap
9298 msgid "B<SIG_UNBLOCK>"
9299 msgstr "B<SIG_UNBLOCK>"
9300
9301 #. type: Plain text
9302 #: build/C/man2/sigprocmask.2:70
9303 msgid ""
9304 "The signals in I<set> are removed from the current set of blocked signals.  "
9305 "It is permissible to attempt to unblock a signal which is not blocked."
9306 msgstr ""
9307 "現在禁止されているシグナルの集合から I<set> にあるシグナルを取り除く。禁止さ"
9308 "れていないシグナルを取り除こうと することも認められている。"
9309
9310 #. type: TP
9311 #: build/C/man2/sigprocmask.2:70
9312 #, no-wrap
9313 msgid "B<SIG_SETMASK>"
9314 msgstr "B<SIG_SETMASK>"
9315
9316 #. type: Plain text
9317 #: build/C/man2/sigprocmask.2:74
9318 msgid "The set of blocked signals is set to the argument I<set>."
9319 msgstr "禁止されているシグナルの集合に I<set> 引き数を設定する。"
9320
9321 #. type: Plain text
9322 #: build/C/man2/sigprocmask.2:79
9323 msgid ""
9324 "If I<oldset> is non-NULL, the previous value of the signal mask is stored in "
9325 "I<oldset>."
9326 msgstr ""
9327 "I<oldset> が NULL でなければ、シグナルマスクの今までの値を I<oldset> に格納す"
9328 "る。"
9329
9330 #. type: Plain text
9331 #: build/C/man2/sigprocmask.2:88
9332 msgid ""
9333 "If I<set> is NULL, then the signal mask is unchanged (i.e., I<how> is "
9334 "ignored), but the current value of the signal mask is nevertheless returned "
9335 "in I<oldset> (if it is not NULL)."
9336 msgstr ""
9337 "I<set> が NULL であれば、シグナルマスクは変更されない (すなわち、 I<how> は無"
9338 "視される)。 I<set> の値にかかわらず、現在のシグナルマスクの値は I<oldset> に"
9339 "入れて返される (但し、 I<oldset> が NULL でない場合)。"
9340
9341 #. type: Plain text
9342 #: build/C/man2/sigprocmask.2:93
9343 msgid ""
9344 "The use of B<sigprocmask>()  is unspecified in a multithreaded process; see "
9345 "B<pthread_sigmask>(3)."
9346 msgstr ""
9347 "マルチスレッドのプロセスで B<sigprocmask>()  を使用した場合の動作は規定されて"
9348 "いない。 B<pthread_sigmask>(3)  を参照のこと。"
9349
9350 #. type: Plain text
9351 #: build/C/man2/sigprocmask.2:99
9352 msgid ""
9353 "B<sigprocmask>()  returns 0 on success and -1 on error.  In the event of an "
9354 "error, I<errno> is set to indicate the cause."
9355 msgstr ""
9356 "B<sigprocmask>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、 "
9357 "I<errno> にエラーの原因を示す値を設定する。"
9358
9359 #. type: Plain text
9360 #: build/C/man2/sigprocmask.2:107
9361 msgid ""
9362 "the I<set> or I<oldset> argument points outside the process's allocated "
9363 "address space."
9364 msgstr ""
9365 "引き数 I<set> か I<oldset> がプロセスに割り当てられた\n"
9366 "アドレス空間の外を指している。"
9367
9368 #. type: Plain text
9369 #: build/C/man2/sigprocmask.2:112
9370 msgid "The value specified in I<how> was invalid."
9371 msgstr "I<how> に指定された値が有効ではない。"
9372
9373 #. type: Plain text
9374 #: build/C/man2/sigprocmask.2:118
9375 msgid ""
9376 "It is not possible to block B<SIGKILL> or B<SIGSTOP>.  Attempts to do so are "
9377 "silently ignored."
9378 msgstr ""
9379 "B<SIGKILL> や B<SIGSTOP> を禁止することはできない。 禁止しようとしても黙って"
9380 "無視される。"
9381
9382 #. type: Plain text
9383 #: build/C/man2/sigprocmask.2:120
9384 msgid "Each of the threads in a process has its own signal mask."
9385 msgstr "プロセス内の各スレッドはそれぞれ専用のシグナルマスクを持つ。"
9386
9387 #. type: Plain text
9388 #: build/C/man2/sigprocmask.2:140
9389 msgid ""
9390 "If B<SIGBUS>, B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> are generated while they "
9391 "are blocked, the result is undefined, unless the signal was generated by "
9392 "B<kill>(2), B<sigqueue>(3), or B<raise>(3)."
9393 msgstr ""
9394 "シグナル B<SIGBUS>, B<SIGFPE>, B<SIGILL>, B<SIGSEGV> が禁止されている間に生成"
9395 "された場合で、 そのシグナルが B<kill>(2), B<sigqueue>(3), B<raise>(3)  によっ"
9396 "て生成されたものでないときには、 その後の動作は未定義である。"
9397
9398 #. type: Plain text
9399 #: build/C/man2/sigprocmask.2:155
9400 msgid ""
9401 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9402 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9403 "B<signal>(7)"
9404 msgstr ""
9405 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9406 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9407 "B<signal>(7)"
9408
9409 #. type: TH
9410 #: build/C/man3/sigqueue.3:28
9411 #, no-wrap
9412 msgid "SIGQUEUE"
9413 msgstr "SIGQUEUE"
9414
9415 #. type: TH
9416 #: build/C/man3/sigqueue.3:28 build/C/man3/sigwait.3:26
9417 #, no-wrap
9418 msgid "2013-12-16"
9419 msgstr "2013-12-16"
9420
9421 #. type: Plain text
9422 #: build/C/man3/sigqueue.3:31
9423 msgid "sigqueue - queue a signal and data to a process"
9424 msgstr "sigqueue - シグナルとデータをプロセスに送る"
9425
9426 #. type: Plain text
9427 #: build/C/man3/sigqueue.3:35
9428 msgid ""
9429 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9430 ">I<value>B<);>"
9431 msgstr ""
9432 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9433 ">I<value>B<);>"
9434
9435 #. type: Plain text
9436 #: build/C/man3/sigqueue.3:43
9437 msgid "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9438 msgstr "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9439
9440 #. type: Plain text
9441 #: build/C/man3/sigqueue.3:55
9442 msgid ""
9443 "B<sigqueue>()  sends the signal specified in I<sig> to the process whose PID "
9444 "is given in I<pid>.  The permissions required to send a signal are the same "
9445 "as for B<kill>(2).  As with B<kill>(2), the null signal (0) can be used to "
9446 "check if a process with a given PID exists."
9447 msgstr ""
9448 "B<sigqueue>()  は I<sig> で指定されたシグナルを、PID が I<pid> であるプロセス"
9449 "に送る。 シグナルを送るのに必要な権限は B<kill>(2)  と同じである。 B<kill>"
9450 "(2)  と同様に、ヌル・シグナル (0) を使って 指定した PID のプロセスが存在する"
9451 "かをチェックすることができる。"
9452
9453 #. type: Plain text
9454 #: build/C/man3/sigqueue.3:60
9455 msgid ""
9456 "The I<value> argument is used to specify an accompanying item of data "
9457 "(either an integer or a pointer value) to be sent with the signal, and has "
9458 "the following type:"
9459 msgstr ""
9460 "I<value> 引き数はシグナルと一緒に送るデータの付属アイテムを指定する。 "
9461 "I<value> は (整数またはポインタの値であり) 以下のような型である。"
9462
9463 #. type: Plain text
9464 #: build/C/man3/sigqueue.3:67
9465 #, no-wrap
9466 msgid ""
9467 "union sigval {\n"
9468 "    int   sival_int;\n"
9469 "    void *sival_ptr;\n"
9470 "};\n"
9471 msgstr ""
9472 "union sigval {\n"
9473 "    int   sival_int;\n"
9474 "    void *sival_ptr;\n"
9475 "};\n"
9476
9477 #. type: Plain text
9478 #: build/C/man3/sigqueue.3:83
9479 msgid ""
9480 "If the receiving process has installed a handler for this signal using the "
9481 "B<SA_SIGINFO> flag to B<sigaction>(2), then it can obtain this data via the "
9482 "I<si_value> field of the I<siginfo_t> structure passed as the second "
9483 "argument to the handler.  Furthermore, the I<si_code> field of that "
9484 "structure will be set to B<SI_QUEUE>."
9485 msgstr ""
9486 "受取先のプロセスに、このシグナルに対するハンドラを (B<sigaction>(2)  に "
9487 "B<SA_SIGINFO> を指定して) インストールしておくと、 そのハンドラの第 2 引き数"
9488 "に渡される I<siginfo_t> 構造体の I<si_value> フィールドによって、このデータを"
9489 "取得できる。 さらに、この構造体の I<si_code> フィールドは B<SI_QUEUE> に設定"
9490 "される。"
9491
9492 #. type: Plain text
9493 #: build/C/man3/sigqueue.3:91
9494 msgid ""
9495 "On success, B<sigqueue>()  returns 0, indicating that the signal was "
9496 "successfully queued to the receiving process.  Otherwise -1 is returned and "
9497 "I<errno> is set to indicate the error."
9498 msgstr ""
9499 "成功した場合、 B<sigqueue>()  は 0 を返す。 これは受け取り側プロセスの待ち行"
9500 "列に シグナルが正しく入れられたことを示す。 失敗した場合は -1 が返され、 "
9501 "I<errno> がエラーを表す値に設定される。"
9502
9503 #. type: Plain text
9504 #: build/C/man3/sigqueue.3:102
9505 msgid "I<sig> was invalid."
9506 msgstr "I<sig> が不正である。"
9507
9508 #. type: Plain text
9509 #: build/C/man3/sigqueue.3:108
9510 msgid ""
9511 "The process does not have permission to send the signal to the receiving "
9512 "process.  For the required permissions, see B<kill>(2)."
9513 msgstr ""
9514 "このプロセスには、受け取り側プロセスにシグナルを送る権限がない。 必要な権限に"
9515 "ついては、 B<kill>(2)  を参照すること。"
9516
9517 #. type: Plain text
9518 #: build/C/man3/sigqueue.3:112
9519 msgid "No process has a PID matching I<pid>."
9520 msgstr "I<pid> にマッチする PID のプロセスがない。"
9521
9522 #. type: Plain text
9523 #: build/C/man3/sigqueue.3:114
9524 msgid "This system call first appeared in Linux 2.2."
9525 msgstr "このシステムコールは Linux 2.2 で初めて登場した。"
9526
9527 #. type: Plain text
9528 #: build/C/man3/sigqueue.3:119
9529 msgid "The B<sigqueue>()  function is thread-safe."
9530 msgstr "B<sigqueue>() 関数はスレッドセーフである。"
9531
9532 #. type: Plain text
9533 #: build/C/man3/sigqueue.3:129
9534 msgid ""
9535 "If this function results in the sending of a signal to the process that "
9536 "invoked it, and that signal was not blocked by the calling thread, and no "
9537 "other threads were willing to handle this signal (either by having it "
9538 "unblocked, or by waiting for it using B<sigwait>(3)), then at least some "
9539 "signal must be delivered to this thread before this function returns."
9540 msgstr ""
9541 "この関数を呼び出したプロセスにこの関数がシグナルを送ったときに、 シグナルが呼"
9542 "び出し側スレッドにブロックされず、 かつ (シグナルがブロックされなかった、また"
9543 "は B<sigwait>(3)  を使用するのを待っていることにより)  このシグナルを扱うス"
9544 "レッドが何もない場合は、 この関数がリターンする前に、少なくとも そのスレッド"
9545 "に対してシグナルが配送されていなければならない。"
9546
9547 #. type: Plain text
9548 #: build/C/man3/sigqueue.3:144
9549 msgid ""
9550 "On Linux, this function is implemented using the B<rt_sigqueueinfo>(2)  "
9551 "system call.  The system call differs in its third argument, which is the "
9552 "I<siginfo_t> structure that will be supplied to the receiving process's "
9553 "signal handler or returned by the receiving process's B<sigtimedwait>(2)  "
9554 "call.  Inside the glibc B<sigqueue>()  wrapper, this argument, I<uinfo>, is "
9555 "initialized as follows:"
9556 msgstr ""
9557 "Linux では、この関数は B<rt_sigqueueinfo>(2)  システムコールを使って実装され"
9558 "ている。 両者には 3 番目の引き数に違いがあり、 B<rt_sigqueueinfo>(2)  では 3 "
9559 "番目の引き数は I<siginfo_t> 構造体である。 I<siginfo_t> 構造体は、シグナルを"
9560 "受信するプロセスのシグナルハンドラに渡されたり、 シグナル受信プロセスの "
9561 "B<sigtimedwait>(2)  システムコールから返されたりする。 glibc の B<sigqueue>"
9562 "()  ラッパー関数内部では、 この引き数 I<uinfo> は以下のように初期化される。"
9563
9564 #. type: Plain text
9565 #: build/C/man3/sigqueue.3:152
9566 #, no-wrap
9567 msgid ""
9568 "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9569 "uinfo.si_code = SI_QUEUE;\n"
9570 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9571 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9572 "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9573 msgstr ""
9574 "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9575 "uinfo.si_code = SI_QUEUE;\n"
9576 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9577 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9578 "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9579
9580 #. type: Plain text
9581 #: build/C/man3/sigqueue.3:162
9582 msgid ""
9583 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9584 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9585 msgstr ""
9586 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9587 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9588
9589 #. type: TH
9590 #: build/C/man2/sigreturn.2:29
9591 #, no-wrap
9592 msgid "SIGRETURN"
9593 msgstr "SIGRETURN"
9594
9595 #. type: Plain text
9596 #: build/C/man2/sigreturn.2:32
9597 msgid "sigreturn - return from signal handler and cleanup stack frame"
9598 msgstr "sigreturn - シグナル・ハンドラから返り、スタックを掃除する"
9599
9600 #. type: Plain text
9601 #: build/C/man2/sigreturn.2:34
9602 msgid "B<int sigreturn(unsigned long >I<__unused>B<);>"
9603 msgstr "B<int sigreturn(unsigned long >I<__unused>B<);>"
9604
9605 #. type: Plain text
9606 #: build/C/man2/sigreturn.2:42
9607 msgid ""
9608 "When the Linux kernel creates the stack frame for a signal handler, a call "
9609 "to B<sigreturn>()  is inserted into the stack frame so that upon return from "
9610 "the signal handler, B<sigreturn>()  will be called."
9611 msgstr ""
9612 "Linux カーネルは、 シグナル・ハンドラ用にスタック・フレームを作成する際、 "
9613 "B<sigreturn>()  をスタック・フレームに挿入し、シグナル・ハンドラが返るときに "
9614 "B<sigreturn>()  が呼ばれるようにする。"
9615
9616 #. type: Plain text
9617 #: build/C/man2/sigreturn.2:53
9618 msgid ""
9619 "This B<sigreturn>()  call undoes everything that was done\\(emchanging the "
9620 "process's signal mask, switching stacks (see B<sigaltstack>(2))\\(emin order "
9621 "to invoke the signal handler: it restores the process's signal mask, "
9622 "switches stacks, and restores the process's context (registers, processor "
9623 "flags), so that the process directly resumes execution at the point where it "
9624 "was interrupted by the signal."
9625 msgstr ""
9626 "B<sigreturn>()  は、シグナル・ハンドラを起動するために行ったことの全て \\(em "
9627 "プロセスのシグナルマスクの変更、スタックの切り替え (B<sigaltstack>(2)  参照) "
9628 "\\(em の取り消しを行う。 プロセスのシグナルマスクの復元、スタックの切り替"
9629 "え、 プロセスのコンテキスト (レジスタ、プロセッサ・フラグ) の復元を行い、 プ"
9630 "ロセスがシグナルにより割り込まれた場所からそのまま実行を 再開できるようにす"
9631 "る。"
9632
9633 #. type: Plain text
9634 #: build/C/man2/sigreturn.2:56
9635 msgid "B<sigreturn>()  never returns."
9636 msgstr "B<sigreturn>()  が返ることはない。"
9637
9638 #. type: SH
9639 #: build/C/man2/sigreturn.2:56
9640 #, no-wrap
9641 msgid "FILES"
9642 msgstr "ファイル"
9643
9644 #. type: Plain text
9645 #: build/C/man2/sigreturn.2:58
9646 msgid "/usr/src/linux/arch/i386/kernel/signal.c"
9647 msgstr "/usr/src/linux/arch/i386/kernel/signal.c"
9648
9649 #. type: Plain text
9650 #: build/C/man2/sigreturn.2:60
9651 msgid "/usr/src/linux/arch/alpha/kernel/entry.S"
9652 msgstr "/usr/src/linux/arch/alpha/kernel/entry.S"
9653
9654 #. type: Plain text
9655 #: build/C/man2/sigreturn.2:64
9656 msgid ""
9657 "B<sigreturn>()  is specific to Linux and should not be used in programs "
9658 "intended to be portable."
9659 msgstr ""
9660 "B<sigreturn>()  は Linux 特有であり、移植を意図したプログラムでは使用してはい"
9661 "けない。"
9662
9663 #. type: Plain text
9664 #: build/C/man2/sigreturn.2:74
9665 msgid ""
9666 "The B<sigreturn>()  call is used by the kernel to implement signal "
9667 "handlers.  It should B<never> be called directly.  Better yet, the specific "
9668 "use of the I<__unused> argument varies depending on the architecture."
9669 msgstr ""
9670 "B<sigreturn>()  コールは、シグナル・ハンドラを実装するためにカーネルにより使"
9671 "用される。 これを直接呼び出しては B<決して> いけない。さらに I<__unused> 引き"
9672 "数がどのように使われるかはそのアーキテクチャに依存して変化する。"
9673
9674 #. type: Plain text
9675 #: build/C/man2/sigreturn.2:80
9676 msgid ""
9677 "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), B<signal>"
9678 "(7)"
9679 msgstr ""
9680 "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), B<signal>"
9681 "(7)"
9682
9683 #. type: TH
9684 #: build/C/man3/sigset.3:26
9685 #, no-wrap
9686 msgid "SIGSET"
9687 msgstr "SIGSET"
9688
9689 #. type: Plain text
9690 #: build/C/man3/sigset.3:29
9691 msgid "sigset, sighold, sigrelse, sigignore - System V signal API"
9692 msgstr "sigset, sighold, sigrelse, sigignore - System V 版シグナル API"
9693
9694 #. type: Plain text
9695 #: build/C/man3/sigset.3:35
9696 msgid "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
9697 msgstr "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
9698
9699 #. type: Plain text
9700 #: build/C/man3/sigset.3:37
9701 msgid "B<int sighold(int >I<sig>B<);>"
9702 msgstr "B<int sighold(int >I<sig>B<);>"
9703
9704 #. type: Plain text
9705 #: build/C/man3/sigset.3:39
9706 msgid "B<int sigrelse(int >I<sig>B<);>"
9707 msgstr "B<int sigrelse(int >I<sig>B<);>"
9708
9709 #. type: Plain text
9710 #: build/C/man3/sigset.3:41
9711 msgid "B<int sigignore(int >I<sig>B<);>"
9712 msgstr "B<int sigignore(int >I<sig>B<);>"
9713
9714 #. type: Plain text
9715 #: build/C/man3/sigset.3:52
9716 msgid "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
9717 msgstr "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
9718
9719 #. type: Plain text
9720 #: build/C/man3/sigset.3:56
9721 msgid ""
9722 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
9723 msgstr ""
9724 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
9725
9726 #. type: Plain text
9727 #: build/C/man3/sigset.3:65
9728 msgid ""
9729 "These functions are provided in glibc as a compatibility interface for "
9730 "programs that make use of the historical System V signal API.  This API is "
9731 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
9732 "B<sigprocmask>(2), etc.)"
9733 msgstr ""
9734 "これらの関数は、昔ながらの System V 版シグナル API を使用しているプログラム "
9735 "に対して互換性のあるインタフェースを glibc で提供するものである。 この API は"
9736 "過去のものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>"
9737 "(2), B<sigprocmask>(2)  など) を使用すべきである。"
9738
9739 #. type: Plain text
9740 #: build/C/man3/sigset.3:74
9741 msgid ""
9742 "The B<sigset>()  function modifies the disposition of the signal I<sig>.  "
9743 "The I<disp> argument can be the address of a signal handler function, or one "
9744 "of the following constants:"
9745 msgstr ""
9746 "関数 B<sigset>()  はシグナル I<sig> のシグナルハンドラの動作を変更する。 "
9747 "I<disp> 引き数には、シグナルハンドラ関数のアドレスか、 以下の定数のいずれか一"
9748 "つを指定できる。"
9749
9750 #. type: TP
9751 #: build/C/man3/sigset.3:74
9752 #, no-wrap
9753 msgid "B<SIG_DFL>"
9754 msgstr "B<SIG_DFL>"
9755
9756 #. type: Plain text
9757 #: build/C/man3/sigset.3:79
9758 msgid "Reset the disposition of I<sig> to the default."
9759 msgstr "I<sig> の動作をデフォルトにリセットする。"
9760
9761 #. type: TP
9762 #: build/C/man3/sigset.3:79
9763 #, no-wrap
9764 msgid "B<SIG_IGN>"
9765 msgstr "B<SIG_IGN>"
9766
9767 #. type: Plain text
9768 #: build/C/man3/sigset.3:83
9769 msgid "Ignore I<sig>."
9770 msgstr "I<sig> を無視する。"
9771
9772 #. type: TP
9773 #: build/C/man3/sigset.3:83
9774 #, no-wrap
9775 msgid "B<SIG_HOLD>"
9776 msgstr "B<SIG_HOLD>"
9777
9778 #. type: Plain text
9779 #: build/C/man3/sigset.3:90
9780 msgid ""
9781 "Add I<sig> to the process's signal mask, but leave the disposition of I<sig> "
9782 "unchanged."
9783 msgstr ""
9784 "そのプロセスのシグナルマスクに I<sig> を追加するが、 I<sig> の動作は変更しな"
9785 "い。"
9786
9787 #. type: Plain text
9788 #: build/C/man3/sigset.3:96
9789 msgid ""
9790 "If I<disp> specifies the address of a signal handler, then I<sig> is added "
9791 "to the process's signal mask during execution of the handler."
9792 msgstr ""
9793 "I<disp> にシグナルハンドラのアドレスが指定された場合、 シグナルハンドラの実行"
9794 "中は、そのプロセスのシグナルマスクに I<sig> が追加される。"
9795
9796 #. type: Plain text
9797 #: build/C/man3/sigset.3:104
9798 msgid ""
9799 "If I<disp> was specified as a value other than B<SIG_HOLD>, then I<sig> is "
9800 "removed from the process's signal mask."
9801 msgstr ""
9802 "I<disp> に B<SIG_HOLD> 以外の値が指定された場合、 そのプロセスのシグナルマス"
9803 "クから I<sig> が削除される。"
9804
9805 #. type: Plain text
9806 #: build/C/man3/sigset.3:110 build/C/man3/sigvec.3:87
9807 msgid "The dispositions for B<SIGKILL> and B<SIGSTOP> cannot be changed."
9808 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> に対する動作は変更できない。"
9809
9810 #. type: Plain text
9811 #: build/C/man3/sigset.3:116
9812 msgid ""
9813 "The B<sighold>()  function adds I<sig> to the calling process's signal mask."
9814 msgstr ""
9815 "関数 B<sighold>()  は、呼び出し元プロセスのシグナルマスクに I<sig> を追加す"
9816 "る。"
9817
9818 #. type: Plain text
9819 #: build/C/man3/sigset.3:122
9820 msgid ""
9821 "The B<sigrelse>()  function removes I<sig> from the calling process's signal "
9822 "mask."
9823 msgstr ""
9824 "関数 B<sigrelse>()  は、呼び出し元プロセスのシグナルマスクから I<sig> を削除"
9825 "する。"
9826
9827 #. type: Plain text
9828 #: build/C/man3/sigset.3:129
9829 msgid ""
9830 "The B<sigignore>()  function sets the disposition of I<sig> to B<SIG_IGN>."
9831 msgstr "関数 B<sigignore>()  は、 I<sig> の動作を B<SIG_IGN> に設定する。"
9832
9833 #. type: Plain text
9834 #: build/C/man3/sigset.3:145
9835 msgid ""
9836 "On success, B<sigset>()  returns B<SIG_HOLD> if I<sig> was blocked before "
9837 "the call, or the signal's previous disposition if it was not blocked before "
9838 "the call.  On error, B<sigset>()  returns -1, with I<errno> set to indicate "
9839 "the error.  (But see BUGS below.)"
9840 msgstr ""
9841 "B<sigset>()  は成功すると、 呼び出し前に I<sig> がブロックされていた場合には "
9842 "B<SIG_HOLD> を返し、 ブロックされていなかった場合には 変更前のそのシグナルの"
9843 "動作を返す。 エラーの場合、 B<sigset>()  は -1 を返し、 I<errno> にエラーを示"
9844 "す値をセットする。 但し、以下の「バグ」の節も参照のこと。"
9845
9846 #. type: Plain text
9847 #: build/C/man3/sigset.3:154
9848 msgid ""
9849 "The B<sighold>(), B<sigrelse>(), and B<sigignore>()  functions return 0 on "
9850 "success; on error, these functions return -1 and set I<errno> to indicate "
9851 "the error."
9852 msgstr ""
9853 "関数 B<sighold>(), B<sigrelse>(), B<sigignore>()  は成功すると 0 を返す。エ"
9854 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値をセットする。"
9855
9856 #. type: Plain text
9857 #: build/C/man3/sigset.3:161
9858 msgid ""
9859 "For B<sigset>()  see the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
9860 msgstr ""
9861 "B<sigset>()  に関しては、 B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」"
9862 "の節を参照。"
9863
9864 #. type: Plain text
9865 #: build/C/man3/sigset.3:168
9866 msgid ""
9867 "For B<sighold>()  and B<sigrelse>()  see the ERRORS under B<sigprocmask>(2)."
9868 msgstr ""
9869 "B<sighold>()  と B<sigrelse>()  に関しては、 B<sigprocmask>(2)  の「エラー」"
9870 "の節を参照。"
9871
9872 #. type: Plain text
9873 #: build/C/man3/sigset.3:173
9874 msgid "For B<sigignore>(), see the errors under B<sigaction>(2)."
9875 msgstr "B<sigignore>()  に関しては、 B<sigaction>(2)  の「エラー」の節を参照。"
9876
9877 #. type: Plain text
9878 #: build/C/man3/sigset.3:190
9879 msgid ""
9880 "SVr4, POSIX.1-2001.  These functions are obsolete: do not use them in new "
9881 "programs.  POSIX.1-2008 marks B<sighold>(), B<sigignore>(), B<sigpause>(), "
9882 "B<sigrelse>(), and B<sigset>()  as obsolete, recommending the use of "
9883 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), and B<sigsuspend>"
9884 "(2)  instead."
9885 msgstr ""
9886 "SVr4, POSIX.1-2001.  これらの関数は廃止予定である。新しいプログラムでは使用し"
9887 "ないこと。 POSIX.1-2008 は、 B<sighold>(), B<sigignore>(), B<sigpause>(), "
9888 "B<sigrelse>(), B<sigset>()  を廃止予定としている。 代わりに、 B<sigaction>"
9889 "(2), B<sigprocmask>(2), B<pthread_sigmask>(3), B<sigsuspend>(2)  の使用が推奨"
9890 "されている。"
9891
9892 #. type: Plain text
9893 #: build/C/man3/sigset.3:192
9894 msgid "These functions appeared in glibc version 2.1."
9895 msgstr "これらの関数は glibc 2.1 で登場した。"
9896
9897 #. type: Plain text
9898 #: build/C/man3/sigset.3:198
9899 msgid ""
9900 "The I<sighandler_t> type is a GNU extension; it is used on this page only to "
9901 "make the B<sigset>()  prototype more easily readable."
9902 msgstr ""
9903 "I<sighandler_t> 型は GNU による拡張であり、この man page で B<sigset>()  のプ"
9904 "ロトタイプをより読みやすくするために使われているだけである。"
9905
9906 #. type: Plain text
9907 #: build/C/man3/sigset.3:206
9908 msgid ""
9909 "The B<sigset>()  function provides reliable signal handling semantics (as "
9910 "when calling B<sigaction>(2)  with I<sa_mask> equal to 0)."
9911 msgstr ""
9912 "関数 B<sigset>()  は信頼性のあるシグナル処理機構を提供する (I<sa_mask> を 0 "
9913 "で B<sigaction>(2)  を呼び出したときと同様)。"
9914
9915 #. type: Plain text
9916 #: build/C/man3/sigset.3:224
9917 msgid ""
9918 "On System V, the B<signal>()  function provides unreliable semantics (as "
9919 "when calling B<sigaction>(2)  with I<sa_mask> equal to I<SA_RESETHAND | "
9920 "SA_NODEFER>).  On BSD, B<signal>()  provides reliable semantics.  "
9921 "POSIX.1-2001 leaves these aspects of B<signal>()  unspecified.  See B<signal>"
9922 "(2)  for further details."
9923 msgstr ""
9924 "System V では、関数 B<signal>()  が提供する処理機構は信頼性のないものである "
9925 "(I<sa_mask> を I<SA_RESETHAND | SA_NODEFER> として B<sigaction>(2)  を呼び出"
9926 "したときと同様)。 BSD では、 B<signal>()  は信頼性のある処理機構を提供する。 "
9927 "POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままとなっている。 さら"
9928 "なる詳細については B<signal>(2)  を参照。"
9929
9930 #. type: Plain text
9931 #: build/C/man3/sigset.3:232 build/C/man3/sigvec.3:265
9932 msgid ""
9933 "In order to wait for a signal, BSD and System V both provided a function "
9934 "named B<sigpause>(3), but this function has a different argument on the two "
9935 "systems.  See B<sigpause>(3)  for details."
9936 msgstr ""
9937 "BSD と System V のどちらのシステムでも シグナルを待つために、 B<sigpause>"
9938 "(3)  という名前の関数が提供されているが、 この関数の引き数は両方のシステムで"
9939 "異なる。 詳細は B<sigpause>(3)  を参照。"
9940
9941 #. type: Plain text
9942 #: build/C/man3/sigset.3:241
9943 msgid ""
9944 "In versions of glibc before 2.2, B<sigset>()  did not unblock I<sig> if "
9945 "I<disp> was specified as a value other than B<SIG_HOLD>."
9946 msgstr ""
9947 "2.2 より前のバージョンの glibc では、 I<disp> に B<SIG_HOLD> 以外の値が指定さ"
9948 "れた場合、 I<sig> のブロック解除を行っていなかった。"
9949
9950 #.  See http://sourceware.org/bugzilla/show_bug.cgi?id=1951
9951 #. type: Plain text
9952 #: build/C/man3/sigset.3:266
9953 msgid ""
9954 "In versions of glibc before 2.5, B<sigset>()  does not correctly return the "
9955 "previous disposition of the signal in two cases.  First, if I<disp> is "
9956 "specified as B<SIG_HOLD>, then a successful B<sigset>()  always returns "
9957 "B<SIG_HOLD>.  Instead, it should return the previous disposition of the "
9958 "signal (unless the signal was blocked, in which case B<SIG_HOLD> should be "
9959 "returned).  Second, if the signal is currently blocked, then the return "
9960 "value of a successful B<sigset>()  should be B<SIG_HOLD>.  Instead, the "
9961 "previous disposition of the signal is returned.  These problems have been "
9962 "fixed since glibc 2.5."
9963 msgstr ""
9964 "2.3.5 以前の全てのバージョンの glibc では、 B<sigset>()  が変更前のシグナルの"
9965 "動作を正しく返さない場合が 2つある。 一つめは、 I<disp> に B<SIG_HOLD> が指定"
9966 "されると、成功した場合 B<sigset>()  は常に B<SIG_HOLD> を返すことである。 正"
9967 "しくは、(シグナルがブロックされていなかった場合には)  変更前のシグナルの動作"
9968 "を返すべきである (シグナルがブロックされていた場合には、 B<SIG_HOLD> が返され"
9969 "る)。 もう一つは、シグナルが現在ブロックされている場合には、 成功した場合の "
9970 "B<sigset>()  の返り値は B<SIG_HOLD> になるべきであるが、実際には 変更前のシグ"
9971 "ナルの動作が返されることである。 これらの問題は glibc 2.5 以降で修正されてい"
9972 "る。"
9973
9974 #. type: Plain text
9975 #: build/C/man3/sigset.3:276
9976 msgid ""
9977 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9978 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
9979 msgstr ""
9980 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9981 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
9982
9983 #. type: TH
9984 #: build/C/man3/sigsetops.3:31
9985 #, no-wrap
9986 msgid "SIGSETOPS"
9987 msgstr "SIGSETOPS"
9988
9989 #. type: TH
9990 #: build/C/man3/sigsetops.3:31
9991 #, no-wrap
9992 msgid "2013-09-24"
9993 msgstr "2013-09-24"
9994
9995 #. type: Plain text
9996 #: build/C/man3/sigsetops.3:35
9997 msgid ""
9998 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX signal "
9999 "set operations"
10000 msgstr ""
10001 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX シグナル集"
10002 "合の操作"
10003
10004 #. type: Plain text
10005 #: build/C/man3/sigsetops.3:39
10006 msgid "B<int sigemptyset(sigset_t *>I<set>B<);>"
10007 msgstr "B<int sigemptyset(sigset_t *>I<set>B<);>"
10008
10009 #. type: Plain text
10010 #: build/C/man3/sigsetops.3:41
10011 msgid "B<int sigfillset(sigset_t *>I<set>B<);>"
10012 msgstr "B<int sigfillset(sigset_t *>I<set>B<);>"
10013
10014 #. type: Plain text
10015 #: build/C/man3/sigsetops.3:43
10016 msgid "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10017 msgstr "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10018
10019 #. type: Plain text
10020 #: build/C/man3/sigsetops.3:45
10021 msgid "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10022 msgstr "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10023
10024 #. type: Plain text
10025 #: build/C/man3/sigsetops.3:47
10026 msgid "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
10027 msgstr "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
10028
10029 #. type: Plain text
10030 #: build/C/man3/sigsetops.3:59
10031 msgid ""
10032 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10033 "B<sigismember>():"
10034 msgstr ""
10035 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10036 "B<sigismember>():"
10037
10038 #. type: Plain text
10039 #: build/C/man3/sigsetops.3:61
10040 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10041 msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10042
10043 #. type: Plain text
10044 #: build/C/man3/sigsetops.3:65
10045 msgid "These functions allow the manipulation of POSIX signal sets."
10046 msgstr "これらの関数は POSIX シグナル集合(signal set)を操作するため使用する。"
10047
10048 #. type: Plain text
10049 #: build/C/man3/sigsetops.3:70
10050 msgid ""
10051 "B<sigemptyset>()  initializes the signal set given by I<set> to empty, with "
10052 "all signals excluded from the set."
10053 msgstr ""
10054 "B<sigemptyset>()  は I<set> で与えられたシグナル集合を空に初期化し、シグナル"
10055 "が一つも 含まれていない状態にする。"
10056
10057 #. type: Plain text
10058 #: build/C/man3/sigsetops.3:75
10059 msgid "B<sigfillset>()  initializes I<set> to full, including all signals."
10060 msgstr ""
10061 "B<sigfillset>()  は I<set> で与えられたシグナル集合が全てのシグナルを含むよう"
10062 "にする。"
10063
10064 #. type: Plain text
10065 #: build/C/man3/sigsetops.3:83
10066 msgid ""
10067 "B<sigaddset>()  and B<sigdelset>()  add and delete respectively signal "
10068 "I<signum> from I<set>."
10069 msgstr ""
10070 "B<sigaddset>()  と B<sigdelset>()  は I<set> に I<signum> シグナルをそれぞれ"
10071 "加えたり、削除したりする。"
10072
10073 #. type: Plain text
10074 #: build/C/man3/sigsetops.3:89
10075 msgid "B<sigismember>()  tests whether I<signum> is a member of I<set>."
10076 msgstr ""
10077 "B<sigismember>()  は I<signum> が I<set> に含まれているかどうかをテストする。"
10078
10079 #. type: Plain text
10080 #: build/C/man3/sigsetops.3:107
10081 msgid ""
10082 "Objects of type I<sigset_t> must be initialized by a call to either "
10083 "B<sigemptyset>()  or B<sigfillset>()  before being passed to the functions "
10084 "B<sigaddset>(), B<sigdelset>()  and B<sigismember>()  or the additional "
10085 "glibc functions described below (B<sigisemptyset>(), B<sigandset>(), and "
10086 "B<sigorset>()).  The results are undefined if this is not done."
10087 msgstr ""
10088 "I<sigset_t> 型のオブジェクトは、関数 B<sigaddset>(), B<sigdelset>(), "
10089 "B<sigismember>()  や後述の glibc の追加関数 (B<sigisemptyset>(), B<sigandset>"
10090 "(), B<sigorset>())  に渡す前に、 B<sigemptyset>()  か B<sigfillset>()  を呼び"
10091 "出して初期化しなければならない。 初期化しなかった場合の結果は未定義である。"
10092
10093 #. type: Plain text
10094 #: build/C/man3/sigsetops.3:114
10095 msgid ""
10096 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), and B<sigdelset>()  "
10097 "return 0 on success and -1 on error."
10098 msgstr ""
10099 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>()  は成功すれ"
10100 "ば 0 を、エラーの場合は -1 を返す。"
10101
10102 #. type: Plain text
10103 #: build/C/man3/sigsetops.3:126
10104 msgid ""
10105 "B<sigismember>()  returns 1 if I<signum> is a member of I<set>, 0 if "
10106 "I<signum> is not a member, and -1 on error.  On error, these functions set "
10107 "I<errno> to indicate the cause."
10108 msgstr ""
10109 "B<sigismember>()  は I<signum> が I<set> のメンバの場合 1 を返し、メンバでな"
10110 "い場合 0 を返す。 エラーの場合は -1 を返し、 I<errno> にエラーの原因を示す値"
10111 "を設定する。"
10112
10113 #. type: Plain text
10114 #: build/C/man3/sigsetops.3:131
10115 msgid "I<sig> is not a valid signal."
10116 msgstr "I<sig> が有効なシグナルではない。"
10117
10118 #. type: SS
10119 #: build/C/man3/sigsetops.3:134
10120 #, no-wrap
10121 msgid "Glibc notes"
10122 msgstr "glibc での注意"
10123
10124 #. type: Plain text
10125 #: build/C/man3/sigsetops.3:140
10126 msgid ""
10127 "If the B<_GNU_SOURCE> feature test macro is defined, then I<E<lt>signal."
10128 "hE<gt>> exposes three other functions for manipulating signal sets:"
10129 msgstr ""
10130 "B<_GNU_SOURCE> 機能検査マクロが定義されていると、 I<E<lt>signal.hE<gt>> でシ"
10131 "グナル集合を操作する 3 つの関数が追加で公開される。"
10132
10133 #. type: Plain text
10134 #: build/C/man3/sigsetops.3:147
10135 #, no-wrap
10136 msgid ""
10137 "B<int sigisemptyset(const sigset_t *>I<set>B<);>\n"
10138 "B<int sigorset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10139 "B<              const sigset_t *>I<right>B<);>\n"
10140 "B<int sigandset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10141 "B<              const sigset_t *>I<right>B<);>\n"
10142 msgstr ""
10143 "B<int sigisemptyset(const sigset_t *>I<set>B<);>\n"
10144 "B<int sigorset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10145 "B<              const sigset_t *>I<right>B<);>\n"
10146 "B<int sigandset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10147 "B<              const sigset_t *>I<right>B<);>\n"
10148
10149 #. type: Plain text
10150 #: build/C/man3/sigsetops.3:153
10151 msgid ""
10152 "B<sigisemptyset>()  returns 1 if I<set> contains no signals, and 0 otherwise."
10153 msgstr ""
10154 "B<sigisemptyset>() は I<set> にシグナルが一つも含まれていなければ 1 を返し、 "
10155 "それ以外は 0 を返す。"
10156
10157 #. type: Plain text
10158 #: build/C/man3/sigsetops.3:169
10159 msgid ""
10160 "B<sigorset>()  places the union of the sets I<left> and I<right> in "
10161 "I<dest>.  B<sigandset>()  places the intersection of the sets I<left> and "
10162 "I<right> in I<dest>.  Both functions return 0 on success, and -1 on failure."
10163 msgstr ""
10164 "B<sigorset>() は集合 I<left> と I<right> の和集合を I<dest> に設定する。 "
10165 "B<sigandset>() は集合 I<left> と I<right> の積集合を I<dest> に設定する。 ど"
10166 "ちらの関数も成功すると 0 を返し、失敗時には -1 を返す。"
10167
10168 #. type: Plain text
10169 #: build/C/man3/sigsetops.3:172
10170 msgid ""
10171 "These functions are nonstandard (a few other systems provide similar "
10172 "functions) and their use should be avoided in portable applications."
10173 msgstr ""
10174 "これらの関数は非標準であり、(他にも同様の関数を提供しているシステムも いくつ"
10175 "かはあるが) 移植性を考慮したアプリケーションでは使用を避けるべき である。"
10176
10177 #. type: Plain text
10178 #: build/C/man3/sigsetops.3:177
10179 msgid "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10180 msgstr "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10181
10182 #. type: TH
10183 #: build/C/man2/sigsuspend.2:29
10184 #, no-wrap
10185 msgid "SIGSUSPEND"
10186 msgstr "SIGSUSPEND"
10187
10188 #. type: Plain text
10189 #: build/C/man2/sigsuspend.2:32
10190 msgid "sigsuspend - wait for a signal"
10191 msgstr "sigsuspend - シグナルを待つ"
10192
10193 #. type: Plain text
10194 #: build/C/man2/sigsuspend.2:36
10195 msgid "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10196 msgstr "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10197
10198 #. type: Plain text
10199 #: build/C/man2/sigsuspend.2:45
10200 msgid ""
10201 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10202 "_POSIX_SOURCE"
10203 msgstr ""
10204 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10205 "_POSIX_SOURCE"
10206
10207 #. type: Plain text
10208 #: build/C/man2/sigsuspend.2:53
10209 msgid ""
10210 "B<sigsuspend>()  temporarily replaces the signal mask of the calling process "
10211 "with the mask given by I<mask> and then suspends the process until delivery "
10212 "of a signal whose action is to invoke a signal handler or to terminate a "
10213 "process."
10214 msgstr ""
10215 "B<sigsuspend>()  は、呼び出し元プロセスのシグナルマスクを I<mask> で指定され"
10216 "たマスクに一時的に置き換え、 シグナルハンドラの起動もしくはプロセスの終了がア"
10217 "クションとして 設定されたシグナルが配送されるまで、そのプロセスを停止する。"
10218
10219 #. type: Plain text
10220 #: build/C/man2/sigsuspend.2:62
10221 msgid ""
10222 "If the signal terminates the process, then B<sigsuspend>()  does not "
10223 "return.  If the signal is caught, then B<sigsuspend>()  returns after the "
10224 "signal handler returns, and the signal mask is restored to the state before "
10225 "the call to B<sigsuspend>()."
10226 msgstr ""
10227 "シグナルがプロセスを終了させるものの場合、 B<sigsuspend>()  は返らない。シグ"
10228 "ナルが捕捉された場合、 シグナルハンドラの処理が終わった後に B<sigsuspend>()  "
10229 "は返り、シグナルマスクは B<sigsuspend>()  が呼び出される前の状態に復元され"
10230 "る。"
10231
10232 #. type: Plain text
10233 #: build/C/man2/sigsuspend.2:70
10234 msgid ""
10235 "It is not possible to block B<SIGKILL> or B<SIGSTOP>; specifying these "
10236 "signals in I<mask>, has no effect on the process's signal mask."
10237 msgstr ""
10238 "B<SIGKILL> と B<SIGSTOP> を禁止 (block) することはできない; これらのシグナル"
10239 "を I<mask> に指定しても、プロセスのシグナルマスクは影響を受けない。"
10240
10241 #. type: Plain text
10242 #: build/C/man2/sigsuspend.2:76
10243 msgid ""
10244 "B<sigsuspend>()  always returns -1, with I<errno> set to indicate the error "
10245 "(normally, B<EINTR>)."
10246 msgstr ""
10247 "B<sigsuspend>() は常に -1 を返し、 I<errno> にエラーの原因を示す値 (通常は "
10248 "B<EINTR>) を設定する。"
10249
10250 #. type: Plain text
10251 #: build/C/man2/sigsuspend.2:81
10252 msgid ""
10253 "I<mask> points to memory which is not a valid part of the process address "
10254 "space."
10255 msgstr ""
10256 "I<mask> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
10257
10258 #. type: Plain text
10259 #: build/C/man2/sigsuspend.2:84
10260 msgid "The call was interrupted by a signal."
10261 msgstr "システムコールはシグナルにより割り込まれた。"
10262
10263 #. type: Plain text
10264 #: build/C/man2/sigsuspend.2:104
10265 msgid ""
10266 "Normally, B<sigsuspend>()  is used in conjunction with B<sigprocmask>(2)  in "
10267 "order to prevent delivery of a signal during the execution of a critical "
10268 "code section.  The caller first blocks the signals with B<sigprocmask>(2).  "
10269 "When the critical code has completed, the caller then waits for the signals "
10270 "by calling B<sigsuspend>()  with the signal mask that was returned by "
10271 "B<sigprocmask>(2)  (in the I<oldset> argument)."
10272 msgstr ""
10273 "B<sigsuspend>()  は、通常、クリティカル・コード・セクション (critical code "
10274 "section) の 実行中にシグナルが配送されるのを防止するために、 B<sigprocmask>"
10275 "(2)  と組み合わせて使用される。 まず最初に、呼び出し元は B<sigprocmask>(2)  "
10276 "を使ってシグナルを禁止する。 クリティカル・コードが完了すると、呼び出し元は "
10277 "B<sigprocmask>(2)  が (I<oldset> 引き数で) 返すシグナルマスクを指定して "
10278 "B<sigsuspend>()  を呼び出すことで、クリティカル・コード実行中に発生した シグ"
10279 "ナルを待つことができる。"
10280
10281 #. type: Plain text
10282 #: build/C/man2/sigsuspend.2:118
10283 msgid ""
10284 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10285 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10286 msgstr ""
10287 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10288 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10289
10290 #. type: TH
10291 #: build/C/man3/sigvec.3:26
10292 #, no-wrap
10293 msgid "SIGVEC"
10294 msgstr "SIGVEC"
10295
10296 #. type: TH
10297 #: build/C/man3/sigvec.3:26
10298 #, no-wrap
10299 msgid "2014-03-24"
10300 msgstr "2014-03-24"
10301
10302 #. type: Plain text
10303 #: build/C/man3/sigvec.3:29
10304 msgid "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD signal API"
10305 msgstr "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD 版シグナル API"
10306
10307 #. type: Plain text
10308 #: build/C/man3/sigvec.3:33
10309 msgid ""
10310 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
10311 "*>I<ovec>B<);>"
10312 msgstr ""
10313 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
10314 "*>I<ovec>B<);>"
10315
10316 #. type: Plain text
10317 #: build/C/man3/sigvec.3:35
10318 msgid "B<int sigmask(int >I<signum>B<);>"
10319 msgstr "B<int sigmask(int >I<signum>B<);>"
10320
10321 #. type: Plain text
10322 #: build/C/man3/sigvec.3:37
10323 msgid "B<int sigblock(int >I<mask>B<);>"
10324 msgstr "B<int sigblock(int >I<mask>B<);>"
10325
10326 #. type: Plain text
10327 #: build/C/man3/sigvec.3:39
10328 msgid "B<int sigsetmask(int >I<mask>B<);>"
10329 msgstr "B<int sigsetmask(int >I<mask>B<);>"
10330
10331 #. type: Plain text
10332 #: build/C/man3/sigvec.3:41
10333 msgid "B<int siggetmask(void);>"
10334 msgstr "B<int siggetmask(void);>"
10335
10336 #. type: Plain text
10337 #: build/C/man3/sigvec.3:49
10338 msgid "All functions shown above: _BSD_SOURCE"
10339 msgstr "上記の全ての関数: _BSD_SOURCE"
10340
10341 #. type: Plain text
10342 #: build/C/man3/sigvec.3:56
10343 msgid ""
10344 "These functions are provided in glibc as a compatibility interface for "
10345 "programs that make use of the historical BSD signal API.  This API is "
10346 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
10347 "B<sigprocmask>(2), etc.)."
10348 msgstr ""
10349 "これらの関数は、昔ながらの BSD 版シグナル API を使用しているプログラム に対し"
10350 "て互換性のあるインタフェースを glibc で提供するものである。 この API は過去の"
10351 "ものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>(2), "
10352 "B<sigprocmask>(2)  など) を使用すべきである。"
10353
10354 #. type: Plain text
10355 #: build/C/man3/sigvec.3:81
10356 msgid ""
10357 "The B<sigvec>()  function sets and/or gets the disposition of the signal "
10358 "I<sig> (like the POSIX B<sigaction>(2)).  If I<vec> is not NULL, it points "
10359 "to a I<sigvec> structure that defines the new disposition for I<sig>.  If "
10360 "I<ovec> is not NULL, it points to a I<sigvec> structure that is used to "
10361 "return the previous disposition of I<sig>.  To obtain the current "
10362 "disposition of I<sig> without changing it, specify NULL for I<vec>, and a "
10363 "non-null pointer for I<ovec>."
10364 msgstr ""
10365 "関数 B<sigvec>()  は、(POSIX の B<sigaction>(2)  と同様に) シグナル I<sig> の"
10366 "動作の設定・取得を行う。 I<vec> は、NULL 以外の場合、 I<sig> の新しい動作を定"
10367 "義した I<sigvec> 構造体へのポインタである。 I<ovec> は、NULL 以外の場合、 "
10368 "I<sig> の変更前の動作を返すために使用される I<sigvec> 構造体へのポインタであ"
10369 "る。 I<sig> の動作を変更せずに現在の動作を取得するためには、 I<vec> に NULL "
10370 "を指定し、 I<ovec> に NULL でないポインタを指定すればよい。"
10371
10372 #. type: Plain text
10373 #: build/C/man3/sigvec.3:91
10374 msgid "The I<sigvec> structure has the following form:"
10375 msgstr "I<sigvec> 構造体は以下の通りである:"
10376
10377 #. type: Plain text
10378 #: build/C/man3/sigvec.3:99
10379 #, no-wrap
10380 msgid ""
10381 "struct sigvec {\n"
10382 "    void (*sv_handler)(int); /* Signal disposition */\n"
10383 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10384 "    int    sv_flags;         /* Flags */\n"
10385 "};\n"
10386 msgstr ""
10387 "struct sigvec {\n"
10388 "    void (*sv_handler)(int); /* Signal disposition */\n"
10389 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10390 "    int    sv_flags;         /* Flags */\n"
10391 "};\n"
10392
10393 #. type: Plain text
10394 #: build/C/man3/sigvec.3:110
10395 msgid ""
10396 "The I<sv_handler> field specifies the disposition of the signal, and is "
10397 "either: the address of a signal handler function; B<SIG_DFL>, meaning the "
10398 "default disposition applies for the signal; or B<SIG_IGN>, meaning that the "
10399 "signal is ignored."
10400 msgstr ""
10401 "I<sv_handler> フィールドはシグナルの動作を指定するもので、 シグナルハンドラ関"
10402 "数のアドレスか、 B<SIG_DFL> と B<SIG_IGN> のいずれかを指定できる。 "
10403 "B<SIG_DFL> はシグナルに適用されるデフォルトの動作を意味し、 B<SIG_IGN> はシグ"
10404 "ナルを無視することを意味する。"
10405
10406 #. type: Plain text
10407 #: build/C/man3/sigvec.3:124
10408 msgid ""
10409 "If I<sv_handler> specifies the address of a signal handler, then I<sv_mask> "
10410 "specifies a mask of signals that are to be blocked while the handler is "
10411 "executing.  In addition, the signal for which the handler is invoked is also "
10412 "blocked.  Attempts to block B<SIGKILL> or B<SIGSTOP> are silently ignored."
10413 msgstr ""
10414 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_mask> はハン"
10415 "ドラが実行中にブロックされるべきシグナルのマスクを指定する。 また、ハンドラを"
10416 "起動したシグナル自身はブロックされる。 B<SIGKILL> か B<SIGSTOP> をブロックし"
10417 "ようとした場合には、黙って無視される。"
10418
10419 #. type: Plain text
10420 #: build/C/man3/sigvec.3:131
10421 msgid ""
10422 "If I<sv_handler> specifies the address of a signal handler, then the "
10423 "I<sv_flags> field specifies flags controlling what happens when the handler "
10424 "is called.  This field may contain zero or more of the following flags:"
10425 msgstr ""
10426 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_flags> フィー"
10427 "ルドはハンドラが呼ばれた際の挙動を制御するフラグを指定する。 このフィールドに"
10428 "は、0 か、以下のフラグを 1個以上指定できる:"
10429
10430 #. type: TP
10431 #: build/C/man3/sigvec.3:131
10432 #, no-wrap
10433 msgid "B<SV_INTERRUPT>"
10434 msgstr "B<SV_INTERRUPT>"
10435
10436 #. type: Plain text
10437 #: build/C/man3/sigvec.3:139
10438 msgid ""
10439 "If the signal handler interrupts a blocking system call, then upon return "
10440 "from the handler the system call will not be restarted: instead it will fail "
10441 "with the error B<EINTR>.  If this flag is not specified, then system calls "
10442 "are restarted by default."
10443 msgstr ""
10444 "シグナルハンドラが停止中のシステムコールを中断した場合、 ハンドラから復帰して"
10445 "も、システムコールは再開されず、 エラー B<EINTR> で失敗する。 このフラグを指"
10446 "定しなかった場合、システムコールは デフォルトで再開される。"
10447
10448 #. type: TP
10449 #: build/C/man3/sigvec.3:139
10450 #, no-wrap
10451 msgid "B<SV_RESETHAND>"
10452 msgstr "B<SV_RESETHAND>"
10453
10454 #. type: Plain text
10455 #: build/C/man3/sigvec.3:148
10456 msgid ""
10457 "Reset the disposition of the signal to the default before calling the signal "
10458 "handler.  If this flag is not specified, then the handler remains "
10459 "established until explicitly removed by a later call to B<sigvec>()  or "
10460 "until the process performs an B<execve>(2)."
10461 msgstr ""
10462 "シグナルハンドラを呼び出す前にシグナルの動作を デフォルトにリセットする。 こ"
10463 "のフラグを指定しなかった場合、もう一度 B<sigvec>()  を呼び出して明示的に削除"
10464 "されるか、プロセスが B<execve>(2)  を実行するまで、ハンドラは設定されたままと"
10465 "なる。"
10466
10467 #. type: TP
10468 #: build/C/man3/sigvec.3:148
10469 #, no-wrap
10470 msgid "B<SV_ONSTACK>"
10471 msgstr "B<SV_ONSTACK>"
10472
10473 #. type: Plain text
10474 #: build/C/man3/sigvec.3:155
10475 msgid ""
10476 "Handle the signal on the alternate signal stack (historically established "
10477 "under BSD using the obsolete B<sigstack>()  function; the POSIX replacement "
10478 "is B<sigaltstack>(2))."
10479 msgstr ""
10480 "代替シグナルスタック上でシグナルハンドラを実行する (歴史的に、BSD では代替シ"
10481 "グナルスタックは廃止された関数 B<sigstack>()  を使って設定する。POSIX では、"
10482 "代わりに B<sigaltstack>(2)  を使用する)。"
10483
10484 #. type: Plain text
10485 #: build/C/man3/sigvec.3:165
10486 msgid ""
10487 "The B<sigmask>()  macro constructs and returns a \"signal mask\" for "
10488 "I<signum>.  For example, we can initialize the I<vec.sv_mask> field given to "
10489 "B<sigvec>()  using code such as the following:"
10490 msgstr "マクロ B<sigmask>()  は I<signum> に対する「シグナルマスク」を構成して返す。 例えば、以下のようなコードを使うと、 B<sigvec>()  に渡す I<vec.sv_mask> を初期化できる。"
10491
10492 #. type: Plain text
10493 #: build/C/man3/sigvec.3:170
10494 #, no-wrap
10495 msgid ""
10496 "    vec.sv_mask = sigmask(SIGQUIT) | sigmask(SIGABRT);\n"
10497 "                /* Block SIGQUIT and SIGABRT during\n"
10498 "                   handler execution */\n"
10499 msgstr ""
10500 "    vec.sv_mask = sigmask(SIGQUIT) | sigmask(SIGABRT);\n"
10501 "                /* Block SIGQUIT and SIGABRT during\n"
10502 "                   handler execution */\n"
10503
10504 #. type: Plain text
10505 #: build/C/man3/sigvec.3:185
10506 msgid ""
10507 "The B<sigblock>()  function adds the signals in I<mask> to the process's "
10508 "signal mask (like POSIX I<sigprocmask(SIG_BLOCK)>), and returns the "
10509 "process's previous signal mask.  Attempts to block B<SIGKILL> or B<SIGSTOP> "
10510 "are silently ignored."
10511 msgstr ""
10512 "B<sigblock>()  関数は、 I<mask> にあるシグナルをプロセスのシグナルマスクに追"
10513 "加し (POSIX の I<sigprocmask(SIG_BLOCK)> と同様)、変更前のプロセスのシグナル"
10514 "マスクを返す。 B<SIGKILL> や B<SIGSTOP> をブロックしようとした場合には、黙っ"
10515 "て無視される。"
10516
10517 #. type: Plain text
10518 #: build/C/man3/sigvec.3:193
10519 msgid ""
10520 "The B<sigsetmask>()  function sets the process's signal mask to the value "
10521 "given in I<mask> (like POSIX I<sigprocmask(SIG_SETMASK)>), and returns the "
10522 "process's previous signal mask."
10523 msgstr ""
10524 "B<sigsetmask>()  関数はプロセスのシグナルマスクを I<mask> で指定された値に設"
10525 "定し (POSIX の I<sigprocmask(SIG_SETMASK)> と同様)、変更前のプロセスのシグナ"
10526 "ルマスクを返す。"
10527
10528 #. type: Plain text
10529 #: build/C/man3/sigvec.3:199
10530 msgid ""
10531 "The B<siggetmask>()  function returns the process's current signal mask.  "
10532 "This call is equivalent to I<sigblock(0)>."
10533 msgstr ""
10534 "B<siggetmask>()  関数はプロセスの現在のシグナルマスクを返す。この関数は "
10535 "I<sigblock(0)> と等価である。"
10536
10537 #. type: Plain text
10538 #: build/C/man3/sigvec.3:205
10539 msgid ""
10540 "The B<sigvec>()  function returns 0 on success; on error, it returns -1 and "
10541 "sets I<errno> to indicate the error."
10542 msgstr ""
10543 "B<sigvec>()  関数は成功すると 0 を返す。エラーの場合、-1 を返し、 I<errno> に"
10544 "エラーを示す値をセットする。"
10545
10546 #. type: Plain text
10547 #: build/C/man3/sigvec.3:211
10548 msgid ""
10549 "The B<sigblock>()  and B<sigsetmask>()  functions return the previous signal "
10550 "mask."
10551 msgstr "B<sigblock>()  と B<sigsetmask>()  は変更前のシグナルマスクを返す。"
10552
10553 #. type: Plain text
10554 #: build/C/man3/sigvec.3:216
10555 msgid "The B<sigmask>()  macro returns the signal mask for I<signum>."
10556 msgstr "B<sigmask>() マクロは I<signum> のシグナルマスクを返す。"
10557
10558 #. type: Plain text
10559 #: build/C/man3/sigvec.3:221
10560 msgid "See the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
10561 msgstr "B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」の節を参照。"
10562
10563 #. type: Plain text
10564 #: build/C/man3/sigvec.3:230
10565 msgid ""
10566 "The B<sigvec>(), B<sigblock>(), B<sigsetmask>(), and B<siggetmask>()  "
10567 "functions are thread-safe."
10568 msgstr "関数 B<sigvec>(), B<sigblock>(), B<sigsetmask>(), B<siggetmask>() はスレッドセーフである。"
10569
10570 #. type: Plain text
10571 #: build/C/man3/sigvec.3:234
10572 msgid "The B<sigmask>()  macro is thread-safe."
10573 msgstr "B<sigmask>() マクロはスレッドセーフである。"
10574
10575 #. type: Plain text
10576 #: build/C/man3/sigvec.3:240
10577 msgid ""
10578 "All of these functions were in 4.3BSD, except B<siggetmask>(), whose origin "
10579 "is unclear.  These functions are obsolete: do not use them in new programs."
10580 msgstr ""
10581 "これらの関数のうち B<siggetmask>()  以外の全ては 4.3BSD にあった。 "
10582 "B<siggetmask>()  の出自ははっきりしない。 これらの関数は廃止予定であり、新し"
10583 "いプログラムでは使用しないこと。"
10584
10585 #. type: Plain text
10586 #: build/C/man3/sigvec.3:257
10587 msgid ""
10588 "On 4.3BSD, the B<signal>()  function provided reliable semantics (as when "
10589 "calling B<sigvec>()  with I<vec.sv_mask> equal to 0).  On System V, B<signal>"
10590 "()  provides unreliable semantics.  POSIX.1-2001 leaves these aspects of "
10591 "B<signal>()  unspecified.  See B<signal>(2)  for further details."
10592 msgstr ""
10593 "4.3BSD では、信頼性のあるシグナル処理機構を提供する (I<vec.sv_mask> を 0 で "
10594 "B<sigvec>()  を呼び出したときと同様)。 System V が提供する処理機構は信頼性の"
10595 "ないものである。 POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままと"
10596 "なっている。 さらなる詳細については B<signal>(2)  を参照。"
10597
10598 #. type: Plain text
10599 #: build/C/man3/sigvec.3:275
10600 msgid ""
10601 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10602 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10603 msgstr ""
10604 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10605 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10606
10607 #. type: TH
10608 #: build/C/man3/sigwait.3:26
10609 #, no-wrap
10610 msgid "SIGWAIT"
10611 msgstr "SIGWAIT"
10612
10613 #. type: Plain text
10614 #: build/C/man3/sigwait.3:29
10615 msgid "sigwait - wait for a signal"
10616 msgstr "sigwait - シグナルを待つ"
10617
10618 #. type: Plain text
10619 #: build/C/man3/sigwait.3:34
10620 #, no-wrap
10621 msgid "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10622 msgstr "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10623
10624 #. type: Plain text
10625 #: build/C/man3/sigwait.3:44
10626 msgid ""
10627 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10628 msgstr ""
10629 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10630
10631 #. type: Plain text
10632 #: build/C/man3/sigwait.3:56
10633 msgid ""
10634 "The B<sigwait>()  function suspends execution of the calling thread until "
10635 "one of the signals specified in the signal set I<set> becomes pending.  The "
10636 "function accepts the signal (removes it from the pending list of signals), "
10637 "and returns the signal number in I<sig>."
10638 msgstr ""
10639 "B<sigwait>()  関数は、シグナル集合 I<set> で指定されたシグナルの一つが処理待"
10640 "ち (pending) になるまで、 呼び出したスレッドの実行を中断する。 この関数はその"
10641 "シグナルを受け取り (つまり、処理待ちのシグナルのリスト からそのシグナルを削除"
10642 "し)、そのシグナル番号を I<sig> に格納して返す。"
10643
10644 #. type: Plain text
10645 #: build/C/man3/sigwait.3:62
10646 msgid ""
10647 "The operation of B<sigwait>()  is the same as B<sigwaitinfo>(2), except that:"
10648 msgstr ""
10649 "B<sigwait>()  の動作は B<sigwaitinfo>(2)  と同じだが、以下の点が異なる。"
10650
10651 #. type: Plain text
10652 #: build/C/man3/sigwait.3:67
10653 msgid ""
10654 "B<sigwait>()  returns only the signal number, rather than a I<siginfo_t> "
10655 "structure describing the signal."
10656 msgstr ""
10657 "B<sigwait>()  は、シグナルの内容を表す I<siginfo_t> 構造体を返すのではなく、"
10658 "単にシグナル番号を返す。"
10659
10660 #. type: Plain text
10661 #: build/C/man3/sigwait.3:69
10662 msgid "The return values of the two functions are different."
10663 msgstr "返り値が B<sigwaitinfo>(2)  とは異なる。"
10664
10665 #. type: Plain text
10666 #: build/C/man3/sigwait.3:74
10667 msgid ""
10668 "On success, B<sigwait>()  returns 0.  On error, it returns a positive error "
10669 "number (listed in ERRORS)."
10670 msgstr ""
10671 "成功すると、 B<sigwait>()  は 0 を返す。 エラーの場合、(「エラー」の節のリス"
10672 "トにある) 正のエラー番号を返す。"
10673
10674 #.  Does not occur for glibc.
10675 #. type: Plain text
10676 #: build/C/man3/sigwait.3:80
10677 msgid "I<set> contains an invalid signal number."
10678 msgstr "I<set> に無効なシグナル番号が入っている。"
10679
10680 #. type: Plain text
10681 #: build/C/man3/sigwait.3:85
10682 msgid "The B<sigwait>()  function is thread-safe."
10683 msgstr "B<sigwait>() 関数はスレッドセーフである。"
10684
10685 #. type: Plain text
10686 #: build/C/man3/sigwait.3:91
10687 msgid "B<sigwait>()  is implemented using B<sigtimedwait>(2)."
10688 msgstr "B<sigwait>()  は B<sigtimedwait>(2)  を使って実装されている。"
10689
10690 #. type: Plain text
10691 #: build/C/man3/sigwait.3:94
10692 msgid "See B<pthread_sigmask>(3)."
10693 msgstr "B<pthread_sigmask>(3)  を参照。"
10694
10695 #. type: Plain text
10696 #: build/C/man3/sigwait.3:102
10697 msgid ""
10698 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
10699 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
10700 msgstr ""
10701 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
10702 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
10703
10704 #. type: TH
10705 #: build/C/man2/sigwaitinfo.2:25
10706 #, no-wrap
10707 msgid "SIGWAITINFO"
10708 msgstr "SIGWAITINFO"
10709
10710 #. type: TH
10711 #: build/C/man2/sigwaitinfo.2:25 build/C/man2/wait.2:49
10712 #, no-wrap
10713 msgid "2013-09-04"
10714 msgstr "2013-09-04"
10715
10716 #. type: Plain text
10717 #: build/C/man2/sigwaitinfo.2:28
10718 msgid "sigwaitinfo, sigtimedwait - synchronously wait for queued signals"
10719 msgstr "sigwaitinfo, sigtimedwait - キューに入れられたシグナルを同期して待つ"
10720
10721 #. type: Plain text
10722 #: build/C/man2/sigwaitinfo.2:33
10723 #, no-wrap
10724 msgid "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
10725 msgstr "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
10726
10727 #. type: Plain text
10728 #: build/C/man2/sigwaitinfo.2:36
10729 #, no-wrap
10730 msgid ""
10731 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
10732 "B<                 const struct timespec *>I<timeout>B<);>\n"
10733 msgstr ""
10734 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
10735 "B<                 const struct timespec *>I<timeout>B<);>\n"
10736
10737 #. type: Plain text
10738 #: build/C/man2/sigwaitinfo.2:46
10739 msgid "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10740 msgstr ""
10741 "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10742
10743 #. type: Plain text
10744 #: build/C/man2/sigwaitinfo.2:56
10745 msgid ""
10746 "B<sigwaitinfo>()  suspends execution of the calling thread until one of the "
10747 "signals in I<set> is pending (If one of the signals in I<set> is already "
10748 "pending for the calling thread, B<sigwaitinfo>()  will return immediately.)"
10749 msgstr ""
10750 "B<sigwaitinfo>()  は I<set> のうちのどれかのシグナルが処理待ちになるまで、 呼"
10751 "び出しスレッドの実行を一時停止する (呼び出しスレッドに対して I<set> のうちの"
10752 "どれかのシグナルが既に待機中 (pending) である場合、 B<sigwaitinfo>()  はすぐ"
10753 "に戻る)。"
10754
10755 #. type: Plain text
10756 #: build/C/man2/sigwaitinfo.2:68
10757 msgid ""
10758 "B<sigwaitinfo>()  removes the signal from the set of pending signals and "
10759 "returns the signal number as its function result.  If the I<info> argument "
10760 "is not NULL, then the buffer that it points to is used to return a structure "
10761 "of type I<siginfo_t> (see B<sigaction>(2))  containing information about the "
10762 "signal."
10763 msgstr ""
10764 "B<sigwaitinfo>()  はそのシグナルを待機中のシグナルの集合から削除し、関数の結"
10765 "果としてシグナル番号を返す。 I<info> 引き数が NULL でない場合、配送されたシグ"
10766 "ナルの情報が入った I<siginfo_t> 型 (B<sigaction>(2)  を参照) の構造体を "
10767 "I<info> が指すバッファに入れて返す。"
10768
10769 #. type: Plain text
10770 #: build/C/man2/sigwaitinfo.2:76
10771 msgid ""
10772 "If multiple signals in I<set> are pending for the caller, the signal that is "
10773 "retrieved by B<sigwaitinfo>()  is determined according to the usual ordering "
10774 "rules; see B<signal>(7)  for further details."
10775 msgstr ""
10776 "呼び出し元に対して I<set> の複数のシグナルが処理待ちの場合、 B<sigwaitinfo>"
10777 "() で取得するシグナルは通常の順序決定ルールに基づいて決定される。 詳細は "
10778 "B<signal>(7) を参照のこと。"
10779
10780 #. type: Plain text
10781 #: build/C/man2/sigwaitinfo.2:88
10782 msgid ""
10783 "B<sigtimedwait>()  operates in exactly the same way as B<sigwaitinfo>()  "
10784 "except that it has an additional argument, I<timeout>, which specifies the "
10785 "interval for which the thread is suspended waiting for a signal.  (This "
10786 "interval will be rounded up to the system clock granularity, and kernel "
10787 "scheduling delays mean that the interval may overrun by a small amount.)  "
10788 "This argument is of the following type:"
10789 msgstr ""
10790 "B<sigtimedwait>() は、 B<sigwaitinfo>() と次の点を除いて全く同じように\n"
10791 "動作する。この関数にはもう 1 つの引き数 I<timeout> があり、シグナル待ち\n"
10792 "でスレッドが一時停止する時間を指定することができる(この時間はシステ\n"
10793 "ムクロックの粒度に切り上げられ、カーネルのスケジューリング遅延により\n"
10794 "少しだけ長くなる可能性がある)。この引き数の型は以下のとおりである:"
10795
10796 #. type: Plain text
10797 #: build/C/man2/sigwaitinfo.2:95
10798 #, no-wrap
10799 msgid ""
10800 "struct timespec {\n"
10801 "    long    tv_sec;         /* seconds */\n"
10802 "    long    tv_nsec;        /* nanoseconds */\n"
10803 "}\n"
10804 msgstr ""
10805 "struct timespec {\n"
10806 "    long    tv_sec;         /* 秒 */\n"
10807 "    long    tv_nsec;        /* ナノ秒 */\n"
10808 "}\n"
10809
10810 #. type: Plain text
10811 #: build/C/man2/sigwaitinfo.2:105
10812 msgid ""
10813 "If both fields of this structure are specified as 0, a poll is performed: "
10814 "B<sigtimedwait>()  returns immediately, either with information about a "
10815 "signal that was pending for the caller, or with an error if none of the "
10816 "signals in I<set> was pending."
10817 msgstr ""
10818 "この構造体の 2 つのフィールドがともに 0 の場合、ポーリングが行われる: "
10819 "B<sigtimedwait>()  は、呼び出し側プロセスに対して 待機しているシグナルの情報"
10820 "を返して戻るか、 I<set> のうちのどのシグナルも待機していない場合はエラーを返"
10821 "して戻る。"
10822
10823 #. type: Plain text
10824 #: build/C/man2/sigwaitinfo.2:114
10825 msgid ""
10826 "On success, both B<sigwaitinfo>()  and B<sigtimedwait>()  return a signal "
10827 "number (i.e., a value greater than zero).  On failure both calls return -1, "
10828 "with I<errno> set to indicate the error."
10829 msgstr ""
10830 "成功した場合、 B<sigwaitinfo>()  と B<sigtimedwait>()  はシグナル番号 (すなわ"
10831 "ち 0 より大きい数) を返す。 失敗した場合、2 つの関数は -1 を返し、 I<errno> "
10832 "はエラーを表す値に設定される。"
10833
10834 #. type: Plain text
10835 #: build/C/man2/sigwaitinfo.2:123
10836 msgid ""
10837 "No signal in I<set> was became pending within the I<timeout> period "
10838 "specified to B<sigtimedwait>()."
10839 msgstr ""
10840 "I<set> のうちのどのシグナルも B<sigtimedwait>()  に指定された I<timeout> の期"
10841 "間内に処理待ちにならなかった。"
10842
10843 #. type: Plain text
10844 #: build/C/man2/sigwaitinfo.2:129
10845 msgid ""
10846 "The wait was interrupted by a signal handler; see B<signal>(7).  (This "
10847 "handler was for a signal other than one of those in I<set>.)"
10848 msgstr ""
10849 "シグナル待ちがシグナルハンドラによって中断 (interrupt) された (このハンドラ"
10850 "は I<set> にあるシグナル以外のものである)。 B<signal>(7)  参照。"
10851
10852 #. type: Plain text
10853 #: build/C/man2/sigwaitinfo.2:133
10854 msgid "I<timeout> was invalid."
10855 msgstr "I<timeout> が不正である。"
10856
10857 #. type: Plain text
10858 #: build/C/man2/sigwaitinfo.2:153
10859 msgid ""
10860 "In normal usage, the calling program blocks the signals in I<set> via a "
10861 "prior call to B<sigprocmask>(2)  (so that the default disposition for these "
10862 "signals does not occur if they become pending between successive calls to "
10863 "B<sigwaitinfo>()  or B<sigtimedwait>())  and does not establish handlers for "
10864 "these signals.  In a multithreaded program, the signal should be blocked in "
10865 "all threads, in order to prevent the signal being treated according to its "
10866 "default disposition in a thread other than the one calling B<sigwaitinfo>()  "
10867 "or B<sigtimedwait>())."
10868 msgstr ""
10869 "通常の使用法では、呼び出し側プロセスはこれらの関数より先に B<sigprocmask>"
10870 "(2)  の呼び出すことにより I<set> に含まれるシグナルをブロックし (そのためにこ"
10871 "れらのシグナルがこの後に続く B<sigwaitinfo>()  や B<sigtimedwait>()  の呼び出"
10872 "しの間に処理待ちになった場合には、デフォルトの動作は行われず)、 これらのシグ"
10873 "ナルに対するハンドラは設定しない。 マルチスレッドプログラムでは、 "
10874 "B<sigwaitinfo>()  や B<sigtimedwait>() を呼び出したスレッド以外のスレッドで、"
10875 "そのシグナルがデフォルトの動作に基いて処理されないように、全てのスレッドで該"
10876 "当シグナルをブロックすべきである。"
10877
10878 #. type: Plain text
10879 #: build/C/man2/sigwaitinfo.2:158
10880 msgid ""
10881 "The set of signals that is pending for a given thread is the union of the "
10882 "set of signals that is pending specifically for that thread and the set of "
10883 "signals that is pending for the process as a whole (see B<signal>(7))."
10884 msgstr ""
10885 "指定されたスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体宛ての"
10886 "処理待ちのシグナル集合と、プロセス全体宛ての 処理待ちのシグナル集合をあわせた"
10887 "ものである (B<signal>(7)  参照)。"
10888
10889 #. type: Plain text
10890 #: build/C/man2/sigwaitinfo.2:164
10891 msgid "Attempts to wait for B<SIGKILL> and B<SIGSTOP> are silently ignored."
10892 msgstr "B<SIGKILL> と B<SIGSTOP> を待とうとした場合、黙って無視される。"
10893
10894 #. type: Plain text
10895 #: build/C/man2/sigwaitinfo.2:173
10896 msgid ""
10897 "If multiple threads of a process are blocked waiting for the same signal(s) "
10898 "in B<sigwaitinfo>()  or B<sigtimedwait>(), then exactly one of the threads "
10899 "will actually receive the signal if it becomes pending for the process as a "
10900 "whole; which of the threads receives the signal is indeterminate."
10901 msgstr ""
10902 "一つのプロセス内の複数のスレッドが B<sigwaitinfo>()  や B<sigtimedwait>()  で"
10903 "同じシグナルを待って停止した場合、 プロセス全体宛てのシグナルが処理待ちになる"
10904 "と、複数のスレッドのうち一つだけが 実際にそのシグナルを受信することになる。 "
10905 "どのスレッドがシグナルを受信するかは決まっていない。"
10906
10907 #. type: Plain text
10908 #: build/C/man2/sigwaitinfo.2:182
10909 msgid ""
10910 "POSIX leaves the meaning of a NULL value for the I<timeout> argument of "
10911 "B<sigtimedwait>()  unspecified, permitting the possibility that this has the "
10912 "same meaning as a call to B<sigwaitinfo>(), and indeed this is what is done "
10913 "on Linux."
10914 msgstr ""
10915 "POSIX では B<sigtimedwait>()  の引き数 I<timeout> の値を NULL にした場合の意"
10916 "味を未定義としている。 B<sigwaitinfo>()  を呼び出したのと同じ意味としてもよい"
10917 "ことになっており、 実際 Linux ではこのように動作する。"
10918
10919 #. type: Plain text
10920 #: build/C/man2/sigwaitinfo.2:187
10921 msgid ""
10922 "On Linux, B<sigwaitinfo>()  is a library function implemented on top of "
10923 "B<sigtimedwait>()."
10924 msgstr ""
10925 "Linux では、 B<sigwaitinfo>()  は B<sigtimedwait>()  を用いて実装されたライブ"
10926 "ラリ関数である。"
10927
10928 #. type: Plain text
10929 #: build/C/man2/sigwaitinfo.2:199
10930 msgid ""
10931 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
10932 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), B<signal>"
10933 "(7), B<time>(7)"
10934 msgstr ""
10935 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
10936 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), B<signal>"
10937 "(7), B<time>(7)"
10938
10939 #. type: TH
10940 #: build/C/man3/sysv_signal.3:25
10941 #, no-wrap
10942 msgid "SYSV_SIGNAL"
10943 msgstr "SYSV_SIGNAL"
10944
10945 #. type: TH
10946 #: build/C/man3/sysv_signal.3:25
10947 #, no-wrap
10948 msgid "2014-01-06"
10949 msgstr "2014-01-06"
10950
10951 #. type: Plain text
10952 #: build/C/man3/sysv_signal.3:28
10953 msgid "sysv_signal - signal handling with System V semantics"
10954 msgstr "sysv_signal - System V 方式のシグナル処理"
10955
10956 #. type: Plain text
10957 #: build/C/man3/sysv_signal.3:30
10958 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
10959 msgstr "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */"
10960
10961 #. type: Plain text
10962 #: build/C/man3/sysv_signal.3:36
10963 msgid ""
10964 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
10965 msgstr ""
10966 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
10967
10968 #. type: Plain text
10969 #: build/C/man3/sysv_signal.3:41
10970 msgid ""
10971 "The B<sysv_signal>()  function takes the same arguments, and performs the "
10972 "same task, as B<signal>(2)."
10973 msgstr ""
10974 "B<sysv_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
10975 "る。"
10976
10977 #. type: Plain text
10978 #: build/C/man3/sysv_signal.3:51
10979 msgid ""
10980 "However B<sysv_signal>()  provides the System V unreliable signal semantics, "
10981 "that is: a) the disposition of the signal is reset to the default when the "
10982 "handler is invoked; b) delivery of further instances of the signal is not "
10983 "blocked while the signal handler is executing; and c) if the handler "
10984 "interrupts (certain) blocking system calls, then the system call is not "
10985 "automatically restarted."
10986 msgstr ""
10987 "しかしながら、 B<sysv_signal>()  は System V の信頼性に欠けるシグナル処理方式"
10988 "を提供している。 信頼性に欠けるシグナル処理方式は以下の特徴を持つ。 a) ハンド"
10989 "ラが起動されると、シグナルの処理方法 (disposition) が デフォルトにリセットさ"
10990 "れる、 b) シグナルハンドラの実行中は、それ以降に発生した同じシグナルの配送が "
10991 "ブロックされない、 c) ハンドラが停止中の (blocking している) システムコールを"
10992 "中断した場合、 自動的に再開されないシステムコールがある。"
10993
10994 #. type: Plain text
10995 #: build/C/man3/sysv_signal.3:57
10996 msgid ""
10997 "The B<sysv_signal>()  function returns the previous value of the signal "
10998 "handler, or B<SIG_ERR> on error."
10999 msgstr ""
11000 "B<sysv_signal>()  関数はシグナルハンドラの直前の値を返す。 エラーの場合、 "
11001 "B<SIG_ERR> を返す。"
11002
11003 #. type: Plain text
11004 #: build/C/man3/sysv_signal.3:65
11005 msgid "The B<sysv_signal>()  function is thread-safe."
11006 msgstr "B<sysv_signal>() 関数はスレッドセーフである。"
11007
11008 #. type: Plain text
11009 #: build/C/man3/sysv_signal.3:67
11010 msgid "This function is nonstandard."
11011 msgstr "この関数は非標準である。"
11012
11013 #. type: Plain text
11014 #: build/C/man3/sysv_signal.3:73
11015 msgid ""
11016 "Use of B<sysv_signal>()  should be avoided; use B<sigaction>(2)  instead."
11017 msgstr ""
11018 "B<sysv_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使う"
11019 "こと。"
11020
11021 #. type: Plain text
11022 #: build/C/man3/sysv_signal.3:84
11023 msgid ""
11024 "On older Linux systems, B<sysv_signal>()  and B<signal>(2)  were "
11025 "equivalent.  But on newer systems, B<signal>(2)  provides reliable signal "
11026 "semantics; see B<signal>(2)  for details."
11027 msgstr ""
11028 "以前の Linux システムでは、 B<sysv_signal>()  と B<signal>(2)  は等価であっ"
11029 "た。しかし、新しめのシステムでは、 B<signal>(2)  は信頼性のあるシグナル処理方"
11030 "式を提供している。 詳細は B<signal>(2)  を参照。"
11031
11032 #. type: Plain text
11033 #: build/C/man3/sysv_signal.3:97
11034 msgid "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
11035 msgstr "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
11036
11037 #. type: TH
11038 #: build/C/man2/timer_create.2:31
11039 #, no-wrap
11040 msgid "TIMER_CREATE"
11041 msgstr "TIMER_CREATE"
11042
11043 #. type: TH
11044 #: build/C/man2/timer_create.2:31
11045 #, no-wrap
11046 msgid "2014-01-20"
11047 msgstr "2014-01-20"
11048
11049 #. type: Plain text
11050 #: build/C/man2/timer_create.2:34
11051 msgid "timer_create - create a POSIX per-process timer"
11052 msgstr ""
11053
11054 #. type: Plain text
11055 #: build/C/man2/timer_create.2:38
11056 #, no-wrap
11057 msgid ""
11058 "B<#include E<lt>signal.hE<gt>>\n"
11059 "B<#include E<lt>time.hE<gt>>\n"
11060 msgstr ""
11061 "B<#include E<lt>signal.hE<gt>>\n"
11062 "B<#include E<lt>time.hE<gt>>\n"
11063
11064 #. type: Plain text
11065 #: build/C/man2/timer_create.2:41
11066 #, no-wrap
11067 msgid ""
11068 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
11069 "B<                 timer_t *>I<timerid>B<);>\n"
11070 msgstr ""
11071 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
11072 "B<                 timer_t *>I<timerid>B<);>\n"
11073
11074 #. type: Plain text
11075 #: build/C/man2/timer_create.2:44 build/C/man2/timer_delete.2:37
11076 #: build/C/man2/timer_getoverrun.2:37 build/C/man2/timer_settime.2:41
11077 msgid "Link with I<-lrt>."
11078 msgstr "I<-lrt> でリンクする。"
11079
11080 #. type: Plain text
11081 #: build/C/man2/timer_create.2:52
11082 msgid "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11083 msgstr "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11084
11085 #. type: Plain text
11086 #: build/C/man2/timer_create.2:60
11087 msgid ""
11088 "B<timer_create>()  creates a new per-process interval timer.  The ID of the "
11089 "new timer is returned in the buffer pointed to by I<timerid>, which must be "
11090 "a non-null pointer.  This ID is unique within the process, until the timer "
11091 "is deleted.  The new timer is initially disarmed."
11092 msgstr ""
11093
11094 #. type: Plain text
11095 #: build/C/man2/timer_create.2:65
11096 msgid ""
11097 "The I<clockid> argument specifies the clock that the new timer uses to "
11098 "measure time.  It can be specified as one of the following values:"
11099 msgstr ""
11100
11101 #. type: TP
11102 #: build/C/man2/timer_create.2:65
11103 #, no-wrap
11104 msgid "B<CLOCK_REALTIME>"
11105 msgstr "B<CLOCK_REALTIME>"
11106
11107 #. type: Plain text
11108 #: build/C/man2/timer_create.2:68
11109 msgid "A settable system-wide real-time clock."
11110 msgstr ""
11111
11112 #. type: TP
11113 #: build/C/man2/timer_create.2:68
11114 #, no-wrap
11115 msgid "B<CLOCK_MONOTONIC>"
11116 msgstr "B<CLOCK_MONOTONIC>"
11117
11118 #.  Note: the CLOCK_MONOTONIC_RAW clock added for clock_gettime()
11119 #.  in 2.6.28 is not supported for POSIX timers -- mtk, Feb 2009
11120 #. type: Plain text
11121 #: build/C/man2/timer_create.2:75
11122 msgid ""
11123 "A nonsettable monotonically increasing clock that measures time from some "
11124 "unspecified point in the past that does not change after system startup."
11125 msgstr ""
11126
11127 #. type: TP
11128 #: build/C/man2/timer_create.2:75
11129 #, no-wrap
11130 msgid "B<CLOCK_PROCESS_CPUTIME_ID> (since Linux 2.6.12)"
11131 msgstr ""
11132
11133 #. type: Plain text
11134 #: build/C/man2/timer_create.2:79
11135 msgid ""
11136 "A clock that measures (user and system) CPU time consumed by (all of the "
11137 "threads in) the calling process."
11138 msgstr ""
11139
11140 #. type: TP
11141 #: build/C/man2/timer_create.2:79
11142 #, no-wrap
11143 msgid "B<CLOCK_THREAD_CPUTIME_ID> (since Linux 2.6.12)"
11144 msgstr ""
11145
11146 #.  The CLOCK_MONOTONIC_RAW that was added in 2.6.28 can't be used
11147 #.  to create a timer -- mtk, Feb 2009
11148 #. type: Plain text
11149 #: build/C/man2/timer_create.2:85
11150 msgid ""
11151 "A clock that measures (user and system) CPU time consumed by the calling "
11152 "thread."
11153 msgstr ""
11154
11155 #. type: Plain text
11156 #: build/C/man2/timer_create.2:94
11157 msgid ""
11158 "As well as the above values, I<clockid> can be specified as the I<clockid> "
11159 "returned by a call to B<clock_getcpuclockid>(3)  or B<pthread_getcpuclockid>"
11160 "(3)."
11161 msgstr ""
11162
11163 #. type: Plain text
11164 #: build/C/man2/timer_create.2:103
11165 msgid ""
11166 "The I<sevp> argument points to a I<sigevent> structure that specifies how "
11167 "the caller should be notified when the timer expires.  For the definition "
11168 "and general details of this structure, see B<sigevent>(7)."
11169 msgstr ""
11170
11171 #. type: Plain text
11172 #: build/C/man2/timer_create.2:107
11173 msgid "The I<sevp.sigev_notify> field can have the following values:"
11174 msgstr ""
11175
11176 #. type: Plain text
11177 #: build/C/man2/timer_create.2:112
11178 msgid ""
11179 "Don't asynchronously notify when the timer expires.  Progress of the timer "
11180 "can be monitored using B<timer_gettime>(2)."
11181 msgstr ""
11182
11183 #. type: Plain text
11184 #: build/C/man2/timer_create.2:130
11185 msgid ""
11186 "Upon timer expiration, generate the signal I<sigev_signo> for the process.  "
11187 "See B<sigevent>(7)  for general details.  The I<si_code> field of the "
11188 "I<siginfo_t> structure will be set to B<SI_TIMER>.  At any point in time, at "
11189 "most one signal is queued to the process for a given timer; see "
11190 "B<timer_getoverrun>(2)  for more details."
11191 msgstr ""
11192
11193 #. type: Plain text
11194 #: build/C/man2/timer_create.2:138
11195 msgid ""
11196 "Upon timer expiration, invoke I<sigev_notify_function> as if it were the "
11197 "start function of a new thread.  See B<sigevent>(7)  for details."
11198 msgstr ""
11199
11200 #. type: Plain text
11201 #: build/C/man2/timer_create.2:152
11202 msgid ""
11203 "As for B<SIGEV_SIGNAL>, but the signal is targeted at the thread whose ID is "
11204 "given in I<sigev_notify_thread_id>, which must be a thread in the same "
11205 "process as the caller.  The I<sigev_notify_thread_id> field specifies a "
11206 "kernel thread ID, that is, the value returned by B<clone>(2)  or B<gettid>"
11207 "(2).  This flag is intended only for use by threading libraries."
11208 msgstr ""
11209
11210 #. type: Plain text
11211 #: build/C/man2/timer_create.2:167
11212 msgid ""
11213 "Specifying I<sevp> as NULL is equivalent to specifying a pointer to a "
11214 "I<sigevent> structure in which I<sigev_notify> is B<SIGEV_SIGNAL>, "
11215 "I<sigev_signo> is B<SIGALRM>, and I<sigev_value.sival_int> is the timer ID."
11216 msgstr ""
11217
11218 #. type: Plain text
11219 #: build/C/man2/timer_create.2:175
11220 msgid ""
11221 "On success, B<timer_create>()  returns 0, and the ID of the new timer is "
11222 "placed in I<*timerid>.  On failure, -1 is returned, and I<errno> is set to "
11223 "indicate the error."
11224 msgstr ""
11225
11226 #. type: Plain text
11227 #: build/C/man2/timer_create.2:179
11228 msgid "Temporary error during kernel allocation of timer structures."
11229 msgstr ""
11230
11231 #. type: Plain text
11232 #: build/C/man2/timer_create.2:187
11233 msgid ""
11234 "Clock ID, I<sigev_notify>, I<sigev_signo>, or I<sigev_notify_thread_id> is "
11235 "invalid."
11236 msgstr ""
11237
11238 #.  glibc layer: malloc()
11239 #. type: Plain text
11240 #: build/C/man2/timer_create.2:191
11241 msgid "Could not allocate memory."
11242 msgstr ""
11243
11244 #. type: Plain text
11245 #: build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:67
11246 #: build/C/man2/timer_getoverrun.2:97
11247 msgid "This system call is available since Linux 2.6."
11248 msgstr "このシステムコールは Linux 2.6 以降で利用できる。"
11249
11250 #. type: Plain text
11251 #: build/C/man2/timer_create.2:198
11252 msgid "A program may create multiple interval timers using B<timer_create>()."
11253 msgstr ""
11254
11255 #. type: Plain text
11256 #: build/C/man2/timer_create.2:203
11257 msgid ""
11258 "Timers are not inherited by the child of a B<fork>(2), and are disarmed and "
11259 "deleted during an B<execve>(2)."
11260 msgstr ""
11261
11262 #. type: Plain text
11263 #: build/C/man2/timer_create.2:211
11264 msgid ""
11265 "The kernel preallocates a \"queued real-time signal\" for each timer created "
11266 "using B<timer_create>().  Consequently, the number of timers is limited by "
11267 "the B<RLIMIT_SIGPENDING> resource limit (see B<setrlimit>(2))."
11268 msgstr ""
11269
11270 #. type: Plain text
11271 #: build/C/man2/timer_create.2:216
11272 msgid ""
11273 "The timers created by B<timer_create>()  are commonly known as \"POSIX "
11274 "(interval) timers\".  The POSIX timers API consists of the following "
11275 "interfaces:"
11276 msgstr ""
11277
11278 #. type: Plain text
11279 #: build/C/man2/timer_create.2:219
11280 msgid "B<timer_create>(): Create a timer."
11281 msgstr ""
11282
11283 #. type: Plain text
11284 #: build/C/man2/timer_create.2:222
11285 msgid "B<timer_settime>(2): Arm (start) or disarm (stop) a timer."
11286 msgstr ""
11287
11288 #. type: Plain text
11289 #: build/C/man2/timer_create.2:226
11290 msgid ""
11291 "B<timer_gettime>(2): Fetch the time remaining until the next expiration of a "
11292 "timer, along with the interval setting of the timer."
11293 msgstr ""
11294
11295 #. type: Plain text
11296 #: build/C/man2/timer_create.2:229
11297 msgid ""
11298 "B<timer_getoverrun>(2): Return the overrun count for the last timer "
11299 "expiration."
11300 msgstr ""
11301
11302 #. type: Plain text
11303 #: build/C/man2/timer_create.2:232
11304 msgid "B<timer_delete>(2): Disarm and delete a timer."
11305 msgstr ""
11306
11307 #. type: Plain text
11308 #: build/C/man2/timer_create.2:235
11309 msgid ""
11310 "Part of the implementation of the POSIX timers API is provided by glibc.  In "
11311 "particular:"
11312 msgstr ""
11313
11314 #. type: Plain text
11315 #: build/C/man2/timer_create.2:239
11316 msgid ""
11317 "The functionality for B<SIGEV_THREAD> is implemented within glibc, rather "
11318 "than the kernel."
11319 msgstr ""
11320
11321 #.  See the glibc source file kernel-posix-timers.h for the structure
11322 #.  that glibc uses to map user-space timer IDs to kernel timer IDs
11323 #.  The kernel-level timer ID is exposed via siginfo.si_tid.
11324 #. type: Plain text
11325 #: build/C/man2/timer_create.2:245
11326 msgid ""
11327 "The timer IDs presented at user level are maintained by glibc, which maps "
11328 "these IDs to the timer IDs employed by the kernel."
11329 msgstr ""
11330
11331 #. type: Plain text
11332 #: build/C/man2/timer_create.2:253
11333 msgid ""
11334 "The POSIX timers system calls first appeared in Linux 2.6.  Prior to this, "
11335 "glibc provided an incomplete user-space implementation (B<CLOCK_REALTIME> "
11336 "timers only) using POSIX threads, and current glibc falls back to this "
11337 "implementation on systems running pre-2.6 Linux kernels."
11338 msgstr ""
11339
11340 #. type: Plain text
11341 #: build/C/man2/timer_create.2:261
11342 msgid ""
11343 "Since Linux 3.10, the I</proc/[pid]/timers> file can be used to list the "
11344 "POSIX timers for the process with PID I<pid>.  See B<proc>(5)  for further "
11345 "information."
11346 msgstr ""
11347
11348 #. type: Plain text
11349 #: build/C/man2/timer_create.2:273
11350 msgid ""
11351 "The program below takes two arguments: a sleep period in seconds, and a "
11352 "timer frequency in nanoseconds.  The program establishes a handler for the "
11353 "signal it uses for the timer, blocks that signal, creates and arms a timer "
11354 "that expires with the given frequency, sleeps for the specified number of "
11355 "seconds, and then unblocks the timer signal.  Assuming that the timer "
11356 "expired at least once while the program slept, the signal handler will be "
11357 "invoked, and the handler displays some information about the timer "
11358 "notification.  The program terminates after one invocation of the signal "
11359 "handler."
11360 msgstr ""
11361
11362 #. type: Plain text
11363 #: build/C/man2/timer_create.2:278
11364 msgid ""
11365 "In the following example run, the program sleeps for 1 second, after "
11366 "creating a timer that has a frequency of 100 nanoseconds.  By the time the "
11367 "signal is unblocked and delivered, there have been around ten million "
11368 "overruns."
11369 msgstr ""
11370
11371 #. type: Plain text
11372 #: build/C/man2/timer_create.2:290
11373 #, no-wrap
11374 msgid ""
11375 "$ B<./a.out 1 100>\n"
11376 "Establishing handler for signal 34\n"
11377 "Blocking signal 34\n"
11378 "timer ID is 0x804c008\n"
11379 "Sleeping for 1 seconds\n"
11380 "Unblocking signal 34\n"
11381 "Caught signal 34\n"
11382 "    sival_ptr = 0xbfb174f4;     *sival_ptr = 0x804c008\n"
11383 "    overrun count = 10004886\n"
11384 msgstr ""
11385
11386 #. type: Plain text
11387 #: build/C/man2/timer_create.2:300
11388 #, no-wrap
11389 msgid ""
11390 "#include E<lt>stdlib.hE<gt>\n"
11391 "#include E<lt>unistd.hE<gt>\n"
11392 "#include E<lt>stdio.hE<gt>\n"
11393 "#include E<lt>signal.hE<gt>\n"
11394 "#include E<lt>time.hE<gt>\n"
11395 msgstr ""
11396 "#include E<lt>stdlib.hE<gt>\n"
11397 "#include E<lt>unistd.hE<gt>\n"
11398 "#include E<lt>stdio.hE<gt>\n"
11399 "#include E<lt>signal.hE<gt>\n"
11400 "#include E<lt>time.hE<gt>\n"
11401
11402 #. type: Plain text
11403 #: build/C/man2/timer_create.2:303
11404 #, no-wrap
11405 msgid ""
11406 "#define CLOCKID CLOCK_REALTIME\n"
11407 "#define SIG SIGRTMIN\n"
11408 msgstr ""
11409 "#define CLOCKID CLOCK_REALTIME\n"
11410 "#define SIG SIGRTMIN\n"
11411
11412 #. type: Plain text
11413 #: build/C/man2/timer_create.2:306
11414 #, no-wrap
11415 msgid ""
11416 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11417 "                        } while (0)\n"
11418 msgstr ""
11419 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11420 "                        } while (0)\n"
11421
11422 #. type: Plain text
11423 #: build/C/man2/timer_create.2:312
11424 #, no-wrap
11425 msgid ""
11426 "static void\n"
11427 "print_siginfo(siginfo_t *si)\n"
11428 "{\n"
11429 "    timer_t *tidp;\n"
11430 "    int or;\n"
11431 msgstr ""
11432 "static void\n"
11433 "print_siginfo(siginfo_t *si)\n"
11434 "{\n"
11435 "    timer_t *tidp;\n"
11436 "    int or;\n"
11437
11438 #. type: Plain text
11439 #: build/C/man2/timer_create.2:314
11440 #, no-wrap
11441 msgid "    tidp = si-E<gt>si_value.sival_ptr;\n"
11442 msgstr "    tidp = si-E<gt>si_value.sival_ptr;\n"
11443
11444 #. type: Plain text
11445 #: build/C/man2/timer_create.2:317
11446 #, no-wrap
11447 msgid ""
11448 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11449 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11450 msgstr ""
11451 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11452 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11453
11454 #. type: Plain text
11455 #: build/C/man2/timer_create.2:324
11456 #, no-wrap
11457 msgid ""
11458 "    or = timer_getoverrun(*tidp);\n"
11459 "    if (or == -1)\n"
11460 "        errExit(\"timer_getoverrun\");\n"
11461 "    else\n"
11462 "        printf(\"    overrun count = %d\\en\", or);\n"
11463 "}\n"
11464 msgstr ""
11465 "    or = timer_getoverrun(*tidp);\n"
11466 "    if (or == -1)\n"
11467 "        errExit(\"timer_getoverrun\");\n"
11468 "    else\n"
11469 "        printf(\"    overrun count = %d\\en\", or);\n"
11470 "}\n"
11471
11472 #. type: Plain text
11473 #: build/C/man2/timer_create.2:331
11474 #, no-wrap
11475 msgid ""
11476 "static void\n"
11477 "handler(int sig, siginfo_t *si, void *uc)\n"
11478 "{\n"
11479 "    /* Note: calling printf() from a signal handler is not\n"
11480 "       strictly correct, since printf() is not async-signal-safe;\n"
11481 "       see signal(7) */\n"
11482 msgstr ""
11483 "static void\n"
11484 "handler(int sig, siginfo_t *si, void *uc)\n"
11485 "{\n"
11486 "    /* Note: calling printf() from a signal handler is not\n"
11487 "       strictly correct, since printf() is not async-signal-safe;\n"
11488 "       see signal(7) */\n"
11489
11490 #. type: Plain text
11491 #: build/C/man2/timer_create.2:336
11492 #, no-wrap
11493 msgid ""
11494 "    printf(\"Caught signal %d\\en\", sig);\n"
11495 "    print_siginfo(si);\n"
11496 "    signal(sig, SIG_IGN);\n"
11497 "}\n"
11498 msgstr ""
11499 "    printf(\"Caught signal %d\\en\", sig);\n"
11500 "    print_siginfo(si);\n"
11501 "    signal(sig, SIG_IGN);\n"
11502 "}\n"
11503
11504 #. type: Plain text
11505 #: build/C/man2/timer_create.2:346
11506 #, no-wrap
11507 msgid ""
11508 "int\n"
11509 "main(int argc, char *argv[])\n"
11510 "{\n"
11511 "    timer_t timerid;\n"
11512 "    struct sigevent sev;\n"
11513 "    struct itimerspec its;\n"
11514 "    long long freq_nanosecs;\n"
11515 "    sigset_t mask;\n"
11516 "    struct sigaction sa;\n"
11517 msgstr ""
11518 "int\n"
11519 "main(int argc, char *argv[])\n"
11520 "{\n"
11521 "    timer_t timerid;\n"
11522 "    struct sigevent sev;\n"
11523 "    struct itimerspec its;\n"
11524 "    long long freq_nanosecs;\n"
11525 "    sigset_t mask;\n"
11526 "    struct sigaction sa;\n"
11527
11528 #. type: Plain text
11529 #: build/C/man2/timer_create.2:352
11530 #, no-wrap
11531 msgid ""
11532 "    if (argc != 3) {\n"
11533 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11534 "                argv[0]);\n"
11535 "        exit(EXIT_FAILURE);\n"
11536 "    }\n"
11537 msgstr ""
11538 "    if (argc != 3) {\n"
11539 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11540 "                argv[0]);\n"
11541 "        exit(EXIT_FAILURE);\n"
11542 "    }\n"
11543
11544 #. type: Plain text
11545 #: build/C/man2/timer_create.2:354
11546 #, no-wrap
11547 msgid "    /* Establish handler for timer signal */\n"
11548 msgstr "    /* Establish handler for timer signal */\n"
11549
11550 #. type: Plain text
11551 #: build/C/man2/timer_create.2:361
11552 #, no-wrap
11553 msgid ""
11554 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11555 "    sa.sa_flags = SA_SIGINFO;\n"
11556 "    sa.sa_sigaction = handler;\n"
11557 "    sigemptyset(&sa.sa_mask);\n"
11558 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11559 "        errExit(\"sigaction\");\n"
11560 msgstr ""
11561 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11562 "    sa.sa_flags = SA_SIGINFO;\n"
11563 "    sa.sa_sigaction = handler;\n"
11564 "    sigemptyset(&sa.sa_mask);\n"
11565 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11566 "        errExit(\"sigaction\");\n"
11567
11568 #. type: Plain text
11569 #: build/C/man2/timer_create.2:363
11570 #, no-wrap
11571 msgid "    /* Block timer signal temporarily */\n"
11572 msgstr "    /* Block timer signal temporarily */\n"
11573
11574 #. type: Plain text
11575 #: build/C/man2/timer_create.2:369
11576 #, no-wrap
11577 msgid ""
11578 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11579 "    sigemptyset(&mask);\n"
11580 "    sigaddset(&mask, SIG);\n"
11581 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11582 "        errExit(\"sigprocmask\");\n"
11583 msgstr ""
11584 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11585 "    sigemptyset(&mask);\n"
11586 "    sigaddset(&mask, SIG);\n"
11587 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11588 "        errExit(\"sigprocmask\");\n"
11589
11590 #. type: Plain text
11591 #: build/C/man2/timer_create.2:371
11592 #, no-wrap
11593 msgid "    /* Create the timer */\n"
11594 msgstr "    /* Create the timer */\n"
11595
11596 #. type: Plain text
11597 #: build/C/man2/timer_create.2:377
11598 #, no-wrap
11599 msgid ""
11600 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11601 "    sev.sigev_signo = SIG;\n"
11602 "    sev.sigev_value.sival_ptr = &timerid;\n"
11603 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11604 "        errExit(\"timer_create\");\n"
11605 msgstr ""
11606 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11607 "    sev.sigev_signo = SIG;\n"
11608 "    sev.sigev_value.sival_ptr = &timerid;\n"
11609 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11610 "        errExit(\"timer_create\");\n"
11611
11612 #. type: Plain text
11613 #: build/C/man2/timer_create.2:379
11614 #, no-wrap
11615 msgid "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11616 msgstr "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11617
11618 #. type: Plain text
11619 #: build/C/man2/timer_create.2:381
11620 #, no-wrap
11621 msgid "    /* Start the timer */\n"
11622 msgstr "    /* Start the timer */\n"
11623
11624 #. type: Plain text
11625 #: build/C/man2/timer_create.2:387
11626 #, no-wrap
11627 msgid ""
11628 "    freq_nanosecs = atoll(argv[2]);\n"
11629 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11630 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11631 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11632 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11633 msgstr ""
11634 "    freq_nanosecs = atoll(argv[2]);\n"
11635 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11636 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11637 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11638 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11639
11640 #. type: Plain text
11641 #: build/C/man2/timer_create.2:390
11642 #, no-wrap
11643 msgid ""
11644 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11645 "         errExit(\"timer_settime\");\n"
11646 msgstr ""
11647 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11648 "         errExit(\"timer_settime\");\n"
11649
11650 #. type: Plain text
11651 #: build/C/man2/timer_create.2:393
11652 #, no-wrap
11653 msgid ""
11654 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11655 "       multiple times */\n"
11656 msgstr ""
11657 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11658 "       multiple times */\n"
11659
11660 #. type: Plain text
11661 #: build/C/man2/timer_create.2:396
11662 #, no-wrap
11663 msgid ""
11664 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11665 "    sleep(atoi(argv[1]));\n"
11666 msgstr ""
11667 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11668 "    sleep(atoi(argv[1]));\n"
11669
11670 #. type: Plain text
11671 #: build/C/man2/timer_create.2:399
11672 #, no-wrap
11673 msgid ""
11674 "    /* Unlock the timer signal, so that timer notification\n"
11675 "       can be delivered */\n"
11676 msgstr ""
11677 "    /* Unlock the timer signal, so that timer notification\n"
11678 "       can be delivered */\n"
11679
11680 #. type: Plain text
11681 #: build/C/man2/timer_create.2:403
11682 #, no-wrap
11683 msgid ""
11684 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
11685 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
11686 "        errExit(\"sigprocmask\");\n"
11687 msgstr ""
11688 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
11689 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
11690 "        errExit(\"sigprocmask\");\n"
11691
11692 #. type: Plain text
11693 #: build/C/man2/timer_create.2:406 build/C/man2/timerfd_create.2:540
11694 #, no-wrap
11695 msgid ""
11696 "    exit(EXIT_SUCCESS);\n"
11697 "}\n"
11698 msgstr ""
11699 "    exit(EXIT_SUCCESS);\n"
11700 "}\n"
11701
11702 #. type: Plain text
11703 #: build/C/man2/timer_create.2:422
11704 msgid ""
11705 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), B<timer_getoverrun>"
11706 "(2), B<timer_settime>(2), B<timerfd_create>(2), B<clock_getcpuclockid>(3), "
11707 "B<pthread_getcpuclockid>(3), B<pthreads>(7), B<sigevent>(7), B<signal>(7), "
11708 "B<time>(7)"
11709 msgstr ""
11710 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), B<timer_getoverrun>"
11711 "(2), B<timer_settime>(2), B<timerfd_create>(2), B<clock_getcpuclockid>(3), "
11712 "B<pthread_getcpuclockid>(3), B<pthreads>(7), B<sigevent>(7), B<signal>(7), "
11713 "B<time>(7)"
11714
11715 #. type: TH
11716 #: build/C/man2/timer_delete.2:26
11717 #, no-wrap
11718 msgid "TIMER_DELETE"
11719 msgstr "TIMER_DELETE"
11720
11721 #. type: TH
11722 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
11723 #, no-wrap
11724 msgid "2009-02-20"
11725 msgstr "2009-02-20"
11726
11727 #. type: Plain text
11728 #: build/C/man2/timer_delete.2:29
11729 msgid "timer_delete - delete a POSIX per-process timer"
11730 msgstr "timer_delete - プロセス単位の POSIX タイマーを削除する"
11731
11732 #. type: Plain text
11733 #: build/C/man2/timer_delete.2:32 build/C/man2/timer_getoverrun.2:32
11734 #: build/C/man2/timer_settime.2:33
11735 #, no-wrap
11736 msgid "B<#include E<lt>time.hE<gt>>\n"
11737 msgstr "B<#include E<lt>time.hE<gt>>\n"
11738
11739 #. type: Plain text
11740 #: build/C/man2/timer_delete.2:34
11741 #, no-wrap
11742 msgid "B<int timer_delete(timer_t >I<timerid>B<);>\n"
11743 msgstr "B<int timer_delete(timer_t >I<timerid>B<);>\n"
11744
11745 #. type: Plain text
11746 #: build/C/man2/timer_delete.2:45
11747 msgid "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11748 msgstr "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11749
11750 #. type: Plain text
11751 #: build/C/man2/timer_delete.2:53
11752 msgid ""
11753 "B<timer_delete>()  deletes the timer whose ID is given in I<timerid>.  If "
11754 "the timer was armed at the time of this call, it is disarmed before being "
11755 "deleted.  The treatment of any pending signal generated by the deleted timer "
11756 "is unspecified."
11757 msgstr ""
11758 "B<timer_delete>() は I<timerid> で指定された ID のタイマーを削除する。 "
11759 "B<timer_delete>() が呼び出された時点でタイマーが開始されている場合は、 削除す"
11760 "る前にタイマーの解除が行われる。 削除されるタイマーにより生成された処理待ちシ"
11761 "グナルの扱いは不定 (unspecified) である。"
11762
11763 #. type: Plain text
11764 #: build/C/man2/timer_delete.2:60
11765 msgid ""
11766 "On success, B<timer_delete>()  returns 0.  On failure, -1 is returned, and "
11767 "I<errno> is set to indicate the error."
11768 msgstr ""
11769 "成功すると、 B<timer_delete>() は 0 を返す。 失敗すると、 -1 が返り、 "
11770 "I<errno> にエラーを示す値が設定される。"
11771
11772 #. type: Plain text
11773 #: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
11774 msgid "I<timerid> is not a valid timer ID."
11775 msgstr "I<timerid> が有効なタイマー ID ではない。"
11776
11777 #. type: Plain text
11778 #: build/C/man2/timer_delete.2:75
11779 msgid ""
11780 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
11781 "B<timer_settime>(2), B<time>(7)"
11782 msgstr ""
11783 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
11784 "B<timer_settime>(2), B<time>(7)"
11785
11786 #. type: TH
11787 #: build/C/man2/timer_getoverrun.2:26
11788 #, no-wrap
11789 msgid "TIMER_GETOVERRUN"
11790 msgstr "TIMER_GETOVERRUN"
11791
11792 #. type: Plain text
11793 #: build/C/man2/timer_getoverrun.2:29
11794 msgid "timer_getoverrun - get overrun count for a POSIX per-process timer"
11795 msgstr ""
11796
11797 #. type: Plain text
11798 #: build/C/man2/timer_getoverrun.2:34
11799 #, no-wrap
11800 msgid "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
11801 msgstr "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
11802
11803 #. type: Plain text
11804 #: build/C/man2/timer_getoverrun.2:45
11805 msgid "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11806 msgstr "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11807
11808 #. type: Plain text
11809 #: build/C/man2/timer_getoverrun.2:56
11810 msgid ""
11811 "B<timer_getoverrun>()  returns the \"overrun count\" for the timer referred "
11812 "to by I<timerid>.  An application can use the overrun count to accurately "
11813 "calculate the number of timer expirations that would have occurred over a "
11814 "given time interval.  Timer overruns can occur both when receiving "
11815 "expiration notifications via signals (B<SIGEV_SIGNAL>), and via threads "
11816 "(B<SIGEV_THREAD>)."
11817 msgstr ""
11818
11819 #. type: Plain text
11820 #: build/C/man2/timer_getoverrun.2:76
11821 msgid ""
11822 "When expiration notifications are delivered via a signal, overruns can occur "
11823 "as follows.  Regardless of whether or not a real-time signal is used for "
11824 "timer notifications, the system queues at most one signal per timer.  (This "
11825 "is the behavior specified by POSIX.1-2001.  The alternative, queuing one "
11826 "signal for each timer expiration, could easily result in overflowing the "
11827 "allowed limits for queued signals on the system.)  Because of system "
11828 "scheduling delays, or because the signal may be temporarily blocked, there "
11829 "can be a delay between the time when the notification signal is generated "
11830 "and the time when it is delivered (e.g., caught by a signal handler) or "
11831 "accepted (e.g., using B<sigwaitinfo>(2)).  In this interval, further timer "
11832 "expirations may occur.  The timer overrun count is the number of additional "
11833 "timer expirations that occurred between the time when the signal was "
11834 "generated and when it was delivered or accepted."
11835 msgstr ""
11836
11837 #. type: Plain text
11838 #: build/C/man2/timer_getoverrun.2:82
11839 msgid ""
11840 "Timer overruns can also occur when expiration notifications are delivered "
11841 "via invocation of a thread, since there may be an arbitrary delay between an "
11842 "expiration of the timer and the invocation of the notification thread, and "
11843 "in that delay interval, additional timer expirations may occur"
11844 msgstr ""
11845
11846 #. type: Plain text
11847 #: build/C/man2/timer_getoverrun.2:90
11848 msgid ""
11849 "On success, B<timer_getoverrun>()  returns the overrun count of the "
11850 "specified timer; this count may be 0 if no overruns have occurred.  On "
11851 "failure, -1 is returned, and I<errno> is set to indicate the error."
11852 msgstr ""
11853
11854 #. type: Plain text
11855 #: build/C/man2/timer_getoverrun.2:111
11856 msgid ""
11857 "When timer notifications are delivered via signals (B<SIGEV_SIGNAL>), on "
11858 "Linux it is also possible to obtain the overrun count via the I<si_overrun> "
11859 "field of the I<siginfo_t> structure (see B<sigaction>(2)).  This allows an "
11860 "application to avoid the overhead of making a system call to obtain the "
11861 "overrun count, but is a nonportable extension to POSIX.1-2001."
11862 msgstr ""
11863
11864 #.  FIXME . Austin bug filed, 11 Feb 09
11865 #. type: Plain text
11866 #: build/C/man2/timer_getoverrun.2:115
11867 msgid ""
11868 "POSIX.1-2001 discusses timer overruns only in the context of timer "
11869 "notifications using signals."
11870 msgstr ""
11871
11872 #.  Bug filed: http://bugzilla.kernel.org/show_bug.cgi?id=12665
11873 #.  http://thread.gmane.org/gmane.linux.kernel/113276/
11874 #. type: Plain text
11875 #: build/C/man2/timer_getoverrun.2:128
11876 msgid ""
11877 "POSIX.1-2001 specifies that if the timer overrun count is equal to or "
11878 "greater than an implementation-defined maximum, B<DELAYTIMER_MAX>, then "
11879 "B<timer_getoverrun>()  should return B<DELAYTIMER_MAX>.  However, Linux does "
11880 "not implement this feature: instead, if the timer overrun value exceeds the "
11881 "maximum representable integer, the counter cycles, starting once more from "
11882 "low values."
11883 msgstr ""
11884
11885 #. type: Plain text
11886 #: build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212
11887 msgid "See B<timer_create>(2)."
11888 msgstr ""
11889
11890 #. type: Plain text
11891 #: build/C/man2/timer_getoverrun.2:141
11892 msgid ""
11893 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
11894 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
11895 "B<time>(7)"
11896 msgstr ""
11897 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
11898 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
11899 "B<time>(7)"
11900
11901 #. type: TH
11902 #: build/C/man2/timer_settime.2:26
11903 #, no-wrap
11904 msgid "TIMER_SETTIME"
11905 msgstr "TIMER_SETTIME"
11906
11907 #. type: TH
11908 #: build/C/man2/timer_settime.2:26
11909 #, no-wrap
11910 msgid "2012-10-15"
11911 msgstr "2012-10-15"
11912
11913 #. type: Plain text
11914 #: build/C/man2/timer_settime.2:30
11915 msgid ""
11916 "timer_settime, timer_gettime - arm/disarm and fetch state of POSIX per-"
11917 "process timer"
11918 msgstr ""
11919
11920 #. type: Plain text
11921 #: build/C/man2/timer_settime.2:38
11922 #, no-wrap
11923 msgid ""
11924 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
11925 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
11926 "B<                  struct itimerspec * >I<old_value>B<);>\n"
11927 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
11928 msgstr ""
11929 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
11930 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
11931 "B<                  struct itimerspec * >I<old_value>B<);>\n"
11932 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
11933
11934 #. type: Plain text
11935 #: build/C/man2/timer_settime.2:50
11936 msgid ""
11937 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11938 msgstr ""
11939 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11940
11941 #. type: Plain text
11942 #: build/C/man2/timer_settime.2:63
11943 msgid ""
11944 "B<timer_settime>()  arms or disarms the timer identified by I<timerid>.  The "
11945 "I<new_value> argument is pointer to an I<itimerspec> structure that "
11946 "specifies the new initial value and the new interval for the timer.  The "
11947 "I<itimerspec> structure is defined as follows:"
11948 msgstr ""
11949
11950 #. type: Plain text
11951 #: build/C/man2/timer_settime.2:70 build/C/man2/timerfd_create.2:128
11952 #, no-wrap
11953 msgid ""
11954 "struct timespec {\n"
11955 "    time_t tv_sec;                /* Seconds */\n"
11956 "    long   tv_nsec;               /* Nanoseconds */\n"
11957 "};\n"
11958 msgstr ""
11959 "struct timespec {\n"
11960 "    time_t tv_sec;                /* Seconds */\n"
11961 "    long   tv_nsec;               /* Nanoseconds */\n"
11962 "};\n"
11963
11964 #. type: Plain text
11965 #: build/C/man2/timer_settime.2:75
11966 #, no-wrap
11967 msgid ""
11968 "struct itimerspec {\n"
11969 "    struct timespec it_interval;  /* Timer interval */\n"
11970 "    struct timespec it_value;     /* Initial expiration */\n"
11971 "};\n"
11972 msgstr ""
11973 "struct itimerspec {\n"
11974 "    struct timespec it_interval;  /* Timer interval */\n"
11975 "    struct timespec it_value;     /* Initial expiration */\n"
11976 "};\n"
11977
11978 #. type: Plain text
11979 #: build/C/man2/timer_settime.2:87
11980 msgid ""
11981 "Each of the substructures of the I<itimerspec> structure is a I<timespec> "
11982 "structure that allows a time value to be specified in seconds and "
11983 "nanoseconds.  These time values are measured according to the clock that was "
11984 "specified when the timer was created by B<timer_create>(2)"
11985 msgstr ""
11986
11987 #. type: Plain text
11988 #: build/C/man2/timer_settime.2:101
11989 msgid ""
11990 "If I<new_value-E<gt>it_value> specifies a nonzero value (i.e., either "
11991 "subfield is nonzero), then B<timer_settime>()  arms (starts) the timer, "
11992 "setting it to initially expire at the given time.  (If the timer was already "
11993 "armed, then the previous settings are overwritten.)  If I<new_value-"
11994 "E<gt>it_value> specifies a zero value (i.e., both subfields are zero), then "
11995 "the timer is disarmed."
11996 msgstr ""
11997
11998 #. type: Plain text
11999 #: build/C/man2/timer_settime.2:113
12000 msgid ""
12001 "The I<new_value-E<gt>it_interval> field specifies the period of the timer, "
12002 "in seconds and nanoseconds.  If this field is nonzero, then each time that "
12003 "an armed timer expires, the timer is reloaded from the value specified in "
12004 "I<new_value-E<gt>it_interval>.  If I<new_value-E<gt>it_interval> specifies a "
12005 "zero value, then the timer expires just once, at the time specified by "
12006 "I<it_value>."
12007 msgstr ""
12008
12009 #.  By experiment: the overrun count is set correctly, for CLOCK_REALTIME.
12010 #. type: Plain text
12011 #: build/C/man2/timer_settime.2:134
12012 msgid ""
12013 "By default, the initial expiration time specified in I<new_value-"
12014 "E<gt>it_value> is interpreted relative to the current time on the timer's "
12015 "clock at the time of the call.  This can be modified by specifying "
12016 "B<TIMER_ABSTIME> in I<flags>, in which case I<new_value-E<gt>it_value> is "
12017 "interpreted as an absolute value as measured on the timer's clock; that is, "
12018 "the timer will expire when the clock value reaches the value specified by "
12019 "I<new_value-E<gt>it_value>.  If the specified absolute time has already "
12020 "passed, then the timer expires immediately, and the overrun count (see "
12021 "B<timer_getoverrun>(2))  will be set correctly."
12022 msgstr ""
12023
12024 #.  Similar remarks might apply with respect to process and thread CPU time
12025 #.  clocks, but these clocks are not currently (2.6.28) settable on Linux.
12026 #. type: Plain text
12027 #: build/C/man2/timer_settime.2:144
12028 msgid ""
12029 "If the value of the B<CLOCK_REALTIME> clock is adjusted while an absolute "
12030 "timer based on that clock is armed, then the expiration of the timer will be "
12031 "appropriately adjusted.  Adjustments to the B<CLOCK_REALTIME> clock have no "
12032 "effect on relative timers based on that clock."
12033 msgstr ""
12034
12035 #. type: Plain text
12036 #: build/C/man2/timer_settime.2:153
12037 msgid ""
12038 "If I<old_value> is not NULL, then it points to a buffer that is used to "
12039 "return the previous interval of the timer (in I<old_value-"
12040 "E<gt>it_interval>)  and the amount of time until the timer would previously "
12041 "have next expired (in I<old_value-E<gt>it_value>)."
12042 msgstr ""
12043
12044 #. type: Plain text
12045 #: build/C/man2/timer_settime.2:173
12046 msgid ""
12047 "B<timer_gettime>()  returns the time until next expiration, and the "
12048 "interval, for the timer specified by I<timerid>, in the buffer pointed to by "
12049 "I<curr_value>.  The time remaining until the next timer expiration is "
12050 "returned in I<curr_value-E<gt>it_value>; this is always a relative value, "
12051 "regardless of whether the B<TIMER_ABSTIME> flag was used when arming the "
12052 "timer.  If the value returned in I<curr_value-E<gt>it_value> is zero, then "
12053 "the timer is currently disarmed.  The timer interval is returned in "
12054 "I<curr_value-E<gt>it_interval>.  If the value returned in I<curr_value-"
12055 "E<gt>it_interval> is zero, then this is a \"one-shot\" timer."
12056 msgstr ""
12057
12058 #. type: Plain text
12059 #: build/C/man2/timer_settime.2:182
12060 msgid ""
12061 "On success, B<timer_settime>()  and B<timer_gettime>()  return 0.  On error, "
12062 "-1 is returned, and I<errno> is set to indicate the error."
12063 msgstr ""
12064
12065 #. type: Plain text
12066 #: build/C/man2/timer_settime.2:184
12067 msgid "These functions may fail with the following errors:"
12068 msgstr ""
12069
12070 #. type: Plain text
12071 #: build/C/man2/timer_settime.2:191
12072 msgid "I<new_value>, I<old_value>, or I<curr_value> is not a valid pointer."
12073 msgstr ""
12074
12075 #.  FIXME . eventually: invalid value in flags
12076 #. type: Plain text
12077 #: build/C/man2/timer_settime.2:196
12078 msgid "I<timerid> is invalid."
12079 msgstr ""
12080
12081 #. type: Plain text
12082 #: build/C/man2/timer_settime.2:199
12083 msgid "B<timer_settime>()  may fail with the following errors:"
12084 msgstr ""
12085
12086 #. type: Plain text
12087 #: build/C/man2/timer_settime.2:205
12088 msgid ""
12089 "I<new_value.it_value> is negative; or I<new_value.it_value.tv_nsec> is "
12090 "negative or greater than 999,999,999."
12091 msgstr ""
12092
12093 #. type: Plain text
12094 #: build/C/man2/timer_settime.2:207
12095 msgid "These system calls are available since Linux 2.6."
12096 msgstr "これらのシステムコールは Linux 2.6 以降で利用可能である。"
12097
12098 #. type: Plain text
12099 #: build/C/man2/timer_settime.2:216
12100 msgid "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12101 msgstr "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12102
12103 #. type: TH
12104 #: build/C/man2/timerfd_create.2:21
12105 #, no-wrap
12106 msgid "TIMERFD_CREATE"
12107 msgstr "TIMERFD_CREATE"
12108
12109 #. type: TH
12110 #: build/C/man2/timerfd_create.2:21
12111 #, no-wrap
12112 msgid "2011-09-14"
12113 msgstr "2011-09-14"
12114
12115 #. type: Plain text
12116 #: build/C/man2/timerfd_create.2:25
12117 msgid ""
12118 "timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via "
12119 "file descriptors"
12120 msgstr ""
12121 "timerfd_create, timerfd_settime, timerfd_gettime - ファイルディスクリプタ経由"
12122 "で通知するタイマー"
12123
12124 #. type: Plain text
12125 #: build/C/man2/timerfd_create.2:28
12126 #, no-wrap
12127 msgid "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12128 msgstr "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12129
12130 #. type: Plain text
12131 #: build/C/man2/timerfd_create.2:30
12132 #, no-wrap
12133 msgid "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12134 msgstr "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12135
12136 #. type: Plain text
12137 #: build/C/man2/timerfd_create.2:34
12138 #, no-wrap
12139 msgid ""
12140 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12141 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12142 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12143 msgstr ""
12144 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12145 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12146 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12147
12148 #. type: Plain text
12149 #: build/C/man2/timerfd_create.2:36
12150 #, no-wrap
12151 msgid "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12152 msgstr "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12153
12154 #. type: Plain text
12155 #: build/C/man2/timerfd_create.2:49
12156 msgid ""
12157 "These system calls create and operate on a timer that delivers timer "
12158 "expiration notifications via a file descriptor.  They provide an alternative "
12159 "to the use of B<setitimer>(2)  or B<timer_create>(2), with the advantage "
12160 "that the file descriptor may be monitored by B<select>(2), B<poll>(2), and "
12161 "B<epoll>(7)."
12162 msgstr ""
12163 "これらのシステムコールは、満了通知をファイルディスクリプタ経由で配送する タイ"
12164 "マーの生成と操作を行う。 これらは、 B<setitimer>(2)  や B<timer_create>(2)  "
12165 "を用いる方法の代わりとなるものであり、このファイルディスクリプタを B<select>"
12166 "(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
12167
12168 #. type: Plain text
12169 #: build/C/man2/timerfd_create.2:61
12170 msgid ""
12171 "The use of these three system calls is analogous to the use of "
12172 "B<timer_create>(2), B<timer_settime>(2), and B<timer_gettime>(2).  (There is "
12173 "no analog of B<timer_getoverrun>(2), since that functionality is provided by "
12174 "B<read>(2), as described below.)"
12175 msgstr ""
12176 "これらのシステムコールを使うのは、それぞれ B<timer_create>(2), "
12177 "B<timer_settime>(2), B<timer_gettime>(2)  を使うのと同様である "
12178 "(B<timer_getoverrun>(2)  に対応するものはなく、以下で説明するように この機能"
12179 "は B<read>(2)  により提供される)。"
12180
12181 #. type: SS
12182 #: build/C/man2/timerfd_create.2:61
12183 #, no-wrap
12184 msgid "timerfd_create()"
12185 msgstr "timerfd_create()"
12186
12187 #. type: Plain text
12188 #: build/C/man2/timerfd_create.2:80
12189 msgid ""
12190 "B<timerfd_create>()  creates a new timer object, and returns a file "
12191 "descriptor that refers to that timer.  The I<clockid> argument specifies the "
12192 "clock that is used to mark the progress of the timer, and must be either "
12193 "B<CLOCK_REALTIME> or B<CLOCK_MONOTONIC>.  B<CLOCK_REALTIME> is a settable "
12194 "system-wide clock.  B<CLOCK_MONOTONIC> is a nonsettable clock that is not "
12195 "affected by discontinuous changes in the system clock (e.g., manual changes "
12196 "to system time).  The current value of each of these clocks can be retrieved "
12197 "using B<clock_gettime>(2)."
12198 msgstr ""
12199 "B<timerfd_create>()  は新規のタイマーオブジェクトを生成し、そのタイマーを参照"
12200 "するファイル ディスクリプタを返す。 I<clockid> 引き数は、タイマーの進捗を管理"
12201 "するためのクロックを指定するもので、 B<CLOCK_REALTIME> か B<CLOCK_MONOTONIC> "
12202 "のいずれかでなければならない。 B<CLOCK_REALTIME> はシステム全体で使用されるク"
12203 "ロックで、このクロックは変更可能である。 B<CLOCK_MONOTONIC> は変更されること"
12204 "のないクロックで、(システム時刻の手動での変更などの)  システムクロックの不連"
12205 "続な変化の影響を受けない。 これらのクロックの現在の値は B<clock_gettime>(2)  "
12206 "を使って取得できる。"
12207
12208 #. type: Plain text
12209 #: build/C/man2/timerfd_create.2:85
12210 msgid ""
12211 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
12212 "I<flags> to change the behavior of B<timerfd_create>():"
12213 msgstr ""
12214 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
12215 "ることで、 B<timerfd_create>()  の振舞いを変更することができる。"
12216
12217 #. type: TP
12218 #: build/C/man2/timerfd_create.2:85
12219 #, no-wrap
12220 msgid "B<TFD_NONBLOCK>"
12221 msgstr "B<TFD_NONBLOCK>"
12222
12223 #. type: TP
12224 #: build/C/man2/timerfd_create.2:93
12225 #, no-wrap
12226 msgid "B<TFD_CLOEXEC>"
12227 msgstr "B<TFD_CLOEXEC>"
12228
12229 #. type: Plain text
12230 #: build/C/man2/timerfd_create.2:107
12231 msgid ""
12232 "In Linux versions up to and including 2.6.26, I<flags> must be specified as "
12233 "zero."
12234 msgstr ""
12235 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
12236 "しなければならない。"
12237
12238 #. type: SS
12239 #: build/C/man2/timerfd_create.2:107
12240 #, no-wrap
12241 msgid "timerfd_settime()"
12242 msgstr "timerfd_settime()"
12243
12244 #. type: Plain text
12245 #: build/C/man2/timerfd_create.2:112
12246 msgid ""
12247 "B<timerfd_settime>()  arms (starts) or disarms (stops)  the timer referred "
12248 "to by the file descriptor I<fd>."
12249 msgstr ""
12250 "B<timerfd_settime>()  は、ファイルディスクリプタ I<fd> により参照されるタイ"
12251 "マーを開始したり停止したりする。"
12252
12253 #. type: Plain text
12254 #: build/C/man2/timerfd_create.2:121
12255 msgid ""
12256 "The I<new_value> argument specifies the initial expiration and interval for "
12257 "the timer.  The I<itimer> structure used for this argument contains two "
12258 "fields, each of which is in turn a structure of type I<timespec>:"
12259 msgstr ""
12260 "I<new_value> 引き数は、タイマーの満了時間 (expiration) の初期値と間隔 "
12261 "(interval) を 指定する。この引き数で使用されている I<itimerspec> 構造体には "
12262 "2 つのフィールドがあり、各フィールドは I<timespec> 型の構造体である。"
12263
12264 #. type: Plain text
12265 #: build/C/man2/timerfd_create.2:133
12266 #, no-wrap
12267 msgid ""
12268 "struct itimerspec {\n"
12269 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12270 "    struct timespec it_value;     /* Initial expiration */\n"
12271 "};\n"
12272 msgstr ""
12273 "struct itimerspec {\n"
12274 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12275 "    struct timespec it_value;     /* Initial expiration */\n"
12276 "};\n"
12277
12278 #. type: Plain text
12279 #: build/C/man2/timerfd_create.2:145
12280 msgid ""
12281 "I<new_value.it_value> specifies the initial expiration of the timer, in "
12282 "seconds and nanoseconds.  Setting either field of I<new_value.it_value> to a "
12283 "nonzero value arms the timer.  Setting both fields of I<new_value.it_value> "
12284 "to zero disarms the timer."
12285 msgstr ""
12286 "I<new_value.it_value> はタイマーの満了時間の初期値を、秒とナノ秒で指定する。 "
12287 "I<new_value.it_value> のフィールドのうち少なくとも一方に 0 以外の値を設定する"
12288 "と、 タイマーが開始される。 両方のフィールドに 0 を設定すると、タイマーが停止"
12289 "する。"
12290
12291 #. type: Plain text
12292 #: build/C/man2/timerfd_create.2:154
12293 msgid ""
12294 "Setting one or both fields of I<new_value.it_interval> to nonzero values "
12295 "specifies the period, in seconds and nanoseconds, for repeated timer "
12296 "expirations after the initial expiration.  If both fields of I<new_value."
12297 "it_interval> are zero, the timer expires just once, at the time specified by "
12298 "I<new_value.it_value>."
12299 msgstr ""
12300 "I<new_value.it_interval> はタイマーの一回目の満了後に繰り返しタイマーの満了間"
12301 "隔を、秒とナノ秒で指定する。 I<new_value.it_interval> のフィールドのうち少な"
12302 "くとも一方に 0 以外の値を設定すると、 繰り返しタイマーが有効になる。 両方の"
12303 "フィールドに 0 を設定した場合、タイマーは I<new_value.it_value> で指定された"
12304 "時間後に、一回だけ満了して停止する。"
12305
12306 #. type: Plain text
12307 #: build/C/man2/timerfd_create.2:170
12308 msgid ""
12309 "The I<flags> argument is either 0, to start a relative timer (I<new_value."
12310 "it_value> specifies a time relative to the current value of the clock "
12311 "specified by I<clockid>), or B<TFD_TIMER_ABSTIME>, to start an absolute "
12312 "timer (I<new_value.it_value> specifies an absolute time for the clock "
12313 "specified by I<clockid>; that is, the timer will expire when the value of "
12314 "that clock reaches the value specified in I<new_value.it_value>)."
12315 msgstr ""
12316 "I<flags> 引き数には 0 か B<TFD_TIMER_ABSTIME> を指定する。 0 は相対時刻\n"
12317 "タイマーを意味し、 I<new_value.it_value> では I<clockid> で指定された\n"
12318 "クロックの現在の値からの相対的な時刻を指定する。 B<TFD_TIMER_ABSTIME>\n"
12319 "は絶対時刻タイマーを意味し、 I<new_value.it_interval> では I<clockid>\n"
12320 "で指定されたクロックの絶対時刻を指定する。\n"
12321 "つまり、クロックの値が I<new_value.it_interval> で指定された時刻に\n"
12322 "達したら、タイマーが満了する。"
12323
12324 #. type: Plain text
12325 #: build/C/man2/timerfd_create.2:181
12326 msgid ""
12327 "If the I<old_value> argument is not NULL, then the I<itimerspec> structure "
12328 "that it points to is used to return the setting of the timer that was "
12329 "current at the time of the call; see the description of B<timerfd_gettime>"
12330 "()  following."
12331 msgstr ""
12332 "I<old_value> 引き数が NULL でない場合、 I<old_value> 引き数が指す\n"
12333 "I<itimerspec> 構造体は、 B<timerfd_settime>() を呼び出した時点での\n"
12334 "タイマーの設定を返すのに使用される。\n"
12335 "下記の B<timerfd_gettime>() の説明を参照。"
12336
12337 #. type: SS
12338 #: build/C/man2/timerfd_create.2:181
12339 #, no-wrap
12340 msgid "timerfd_gettime()"
12341 msgstr "timerfd_gettime()"
12342
12343 #. type: Plain text
12344 #: build/C/man2/timerfd_create.2:190
12345 msgid ""
12346 "B<timerfd_gettime>()  returns, in I<curr_value>, an I<itimerspec> structure "
12347 "that contains the current setting of the timer referred to by the file "
12348 "descriptor I<fd>."
12349 msgstr ""
12350 "B<timerfd_gettime>()  は、ファイルディスクリプタ I<fd> で参照されるタイマーの"
12351 "現在の設定が入った I<itimerspec> 構造体を、 I<curr_value> に格納して返す。"
12352
12353 #. type: Plain text
12354 #: build/C/man2/timerfd_create.2:200
12355 msgid ""
12356 "The I<it_value> field returns the amount of time until the timer will next "
12357 "expire.  If both fields of this structure are zero, then the timer is "
12358 "currently disarmed.  This field always contains a relative value, regardless "
12359 "of whether the B<TFD_TIMER_ABSTIME> flag was specified when setting the "
12360 "timer."
12361 msgstr ""
12362 "I<it_value> フィールドは、タイマーが次に満了するまでの残り時間を返す。 この構"
12363 "造体の両方のフィールドが 0 であれば、タイマーは現在停止している。 タイマー設"
12364 "定時に B<TFD_TIMER_ABSTIME> フラグが指定されたかに関わらず、このフィールドは"
12365 "常に相対値が格納される。"
12366
12367 #. type: Plain text
12368 #: build/C/man2/timerfd_create.2:207
12369 msgid ""
12370 "The I<it_interval> field returns the interval of the timer.  If both fields "
12371 "of this structure are zero, then the timer is set to expire just once, at "
12372 "the time specified by I<curr_value.it_value>."
12373 msgstr ""
12374 "I<it_interval> フィールドは、タイマーの間隔を返す。 この構造体の両方のフィー"
12375 "ルドが 0 であれば、タイマーは I<new_value.it_value> で指定された時間後に一回"
12376 "だけ満了して停止するように設定されている。"
12377
12378 #. type: SS
12379 #: build/C/man2/timerfd_create.2:207
12380 #, no-wrap
12381 msgid "Operating on a timer file descriptor"
12382 msgstr "タイマー・ファイルディスクリプタに対する操作"
12383
12384 #. type: Plain text
12385 #: build/C/man2/timerfd_create.2:211
12386 msgid ""
12387 "The file descriptor returned by B<timerfd_create>()  supports the following "
12388 "operations:"
12389 msgstr ""
12390 "B<timerfd_create>()  が返すファイルディスクリプタは以下の操作をサポートしてい"
12391 "る。"
12392
12393 #. type: Plain text
12394 #: build/C/man2/timerfd_create.2:225
12395 msgid ""
12396 "If the timer has already expired one or more times since its settings were "
12397 "last modified using B<timerfd_settime>(), or since the last successful "
12398 "B<read>(2), then the buffer given to B<read>(2)  returns an unsigned 8-byte "
12399 "integer (I<uint64_t>)  containing the number of expirations that have "
12400 "occurred.  (The returned value is in host byte order\\(emthat is, the native "
12401 "byte order for integers on the host machine.)"
12402 msgstr ""
12403 "B<timerfd_settime>()  を使ってタイマーの設定が最後変更されて以降、または "
12404 "B<read>(2)  の呼び出しに最後に成功して以降に、タイマーの満了が一回以上発生し"
12405 "ていれば、 B<read>(2)  に渡されたバッファに、タイマー満了回数を示す 8 バイト"
12406 "の unsigned 型の整数 (I<uint64_t>)  が返される (返される値はホストバイトオー"
12407 "ダ、つまりそのホストマシンにおける 整数の通常のバイトオーダである)。"
12408
12409 #. type: Plain text
12410 #: build/C/man2/timerfd_create.2:238
12411 msgid ""
12412 "If no timer expirations have occurred at the time of the B<read>(2), then "
12413 "the call either blocks until the next timer expiration, or fails with the "
12414 "error B<EAGAIN> if the file descriptor has been made nonblocking (via the "
12415 "use of the B<fcntl>(2)  B<F_SETFL> operation to set the B<O_NONBLOCK> flag)."
12416 msgstr ""
12417 "B<read>(2)  を行った時点でタイマーの満了が発生していなければ、 B<read>(2)  は"
12418 "停止 (block) する、もしくはファイルディスクリプタが 非停止 (nonblocking) に設"
12419 "定されている場合はエラー B<EAGAIN> で失敗する (非停止モードにするには、 "
12420 "B<fcntl>(2)  の B<F_SETFL> 命令で B<O_NONBLOCK> フラグをセットする)。"
12421
12422 #. type: Plain text
12423 #: build/C/man2/timerfd_create.2:244
12424 msgid ""
12425 "A B<read>(2)  will fail with the error B<EINVAL> if the size of the supplied "
12426 "buffer is less than 8 bytes."
12427 msgstr ""
12428 "渡されたバッファの大きさが 8 バイト未満の場合、 B<read>(2)  はエラー "
12429 "B<EINVAL> で失敗する。"
12430
12431 #. type: Plain text
12432 #: build/C/man2/timerfd_create.2:255
12433 msgid ""
12434 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
12435 "B<poll>(2)  B<POLLIN> flag)  if one or more timer expirations have occurred."
12436 msgstr ""
12437 "一つ以上のタイマー満了が発生していれば、 ファイルディスクリプタは読み出し可能"
12438 "となる (B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラ"
12439 "グ)。"
12440
12441 #. type: Plain text
12442 #: build/C/man2/timerfd_create.2:262
12443 msgid ""
12444 "The file descriptor also supports the other file-descriptor multiplexing "
12445 "APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
12446 msgstr ""
12447 "このファイルディスクリプタは、他のファイルディスクリプタ多重 API である "
12448 "B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
12449
12450 #. type: Plain text
12451 #: build/C/man2/timerfd_create.2:269
12452 msgid ""
12453 "When the file descriptor is no longer required it should be closed.  When "
12454 "all file descriptors associated with the same timer object have been closed, "
12455 "the timer is disarmed and its resources are freed by the kernel."
12456 msgstr ""
12457 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
12458 "る。 同じ timer オブジェクトに関連付けられたファイルディスクリプタが全て ク"
12459 "ローズされると、そのタイマーは解除され、 そのオブジェクト用の資源がカーネルに"
12460 "より解放される。"
12461
12462 #. type: Plain text
12463 #: build/C/man2/timerfd_create.2:281
12464 msgid ""
12465 "After a B<fork>(2), the child inherits a copy of the file descriptor created "
12466 "by B<timerfd_create>().  The file descriptor refers to the same underlying "
12467 "timer object as the corresponding file descriptor in the parent, and B<read>"
12468 "(2)s in the child will return information about expirations of the timer."
12469 msgstr ""
12470 "B<fork>(2)  が行われると、子プロセスは B<timerfd_create>()  により生成された"
12471 "ファイルディスクリプタのコピーを 継承する。そのファイルディスクリプタは、親プ"
12472 "ロセスの対応する ファイルディスクリプタと同じタイマーオブジェクトを参照してお"
12473 "り、 子プロセスの B<read>(2)  でも同じタイマーの満了に関する情報が返される。"
12474
12475 #. type: Plain text
12476 #: build/C/man2/timerfd_create.2:287
12477 msgid ""
12478 "A file descriptor created by B<timerfd_create>()  is preserved across "
12479 "B<execve>(2), and continues to generate timer expirations if the timer was "
12480 "armed."
12481 msgstr ""
12482 "B<execve>(2)  の前後で B<timerfd_create>()  により生成されたファイルディスク"
12483 "リプタは保持され、 タイマーが開始されていた場合にはタイマーの満了が発生し続け"
12484 "る。"
12485
12486 #. type: Plain text
12487 #: build/C/man2/timerfd_create.2:294
12488 msgid ""
12489 "On success, B<timerfd_create>()  returns a new file descriptor.  On error, "
12490 "-1 is returned and I<errno> is set to indicate the error."
12491 msgstr ""
12492 "成功すると、 B<timerfd_create>()  は新しいファイルディスクリプタを返す。 エ"
12493 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12494
12495 #. type: Plain text
12496 #: build/C/man2/timerfd_create.2:302
12497 msgid ""
12498 "B<timerfd_settime>()  and B<timerfd_gettime>()  return 0 on success; on "
12499 "error they return -1, and set I<errno> to indicate the error."
12500 msgstr ""
12501 "B<timerfd_settime>()  と B<timerfd_gettime>()  は成功すると 0 を返す。 エラー"
12502 "の場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12503
12504 #. type: Plain text
12505 #: build/C/man2/timerfd_create.2:305
12506 msgid "B<timerfd_create>()  can fail with the following errors:"
12507 msgstr "B<timerfd_create>()  は以下のエラーで失敗する可能性がある。"
12508
12509 #. type: Plain text
12510 #: build/C/man2/timerfd_create.2:313
12511 msgid ""
12512 "The I<clockid> argument is neither B<CLOCK_MONOTONIC> nor B<CLOCK_REALTIME>;"
12513 msgstr ""
12514 "I<clockid> 引き数が B<CLOCK_MONOTONIC> でも B<CLOCK_REALTIME> でもない。"
12515
12516 #. type: Plain text
12517 #: build/C/man2/timerfd_create.2:333
12518 msgid "There was insufficient kernel memory to create the timer."
12519 msgstr "タイマーを作成するのに十分なカーネルメモリがなかった。"
12520
12521 #. type: Plain text
12522 #: build/C/man2/timerfd_create.2:338
12523 msgid ""
12524 "B<timerfd_settime>()  and B<timerfd_gettime>()  can fail with the following "
12525 "errors:"
12526 msgstr ""
12527 "B<timerfd_settime>()  と B<timerfd_gettime>()  は以下のエラーで失敗する可能性"
12528 "がある。"
12529
12530 #. type: Plain text
12531 #: build/C/man2/timerfd_create.2:342
12532 msgid "I<fd> is not a valid file descriptor."
12533 msgstr "I<fd> が有効なファイルディスクリプタでない。"
12534
12535 #. type: Plain text
12536 #: build/C/man2/timerfd_create.2:353
12537 msgid "I<fd> is not a valid timerfd file descriptor."
12538 msgstr "I<fd> が有効な timerfd ファイルディスクリプタでない。"
12539
12540 #. type: Plain text
12541 #: build/C/man2/timerfd_create.2:356
12542 msgid "B<timerfd_settime>()  can also fail with the following errors:"
12543 msgstr "B<timerfd_settime>()  は以下のエラーで失敗することもある。"
12544
12545 #. type: Plain text
12546 #: build/C/man2/timerfd_create.2:362
12547 msgid ""
12548 "I<new_value> is not properly initialized (one of the I<tv_nsec> falls "
12549 "outside the range zero to 999,999,999)."
12550 msgstr ""
12551 "I<new_value> が適切に初期化されていない (I<tv_nsec> の一つが 0 から "
12552 "999,999,999 までの範囲に入っていない)。"
12553
12554 #.  This case only checked since 2.6.29, and 2.2.2[78].some-stable-version.
12555 #.  In older kernel versions, no check was made for invalid flags.
12556 #. type: Plain text
12557 #: build/C/man2/timerfd_create.2:368
12558 msgid "I<flags> is invalid."
12559 msgstr "I<flags> が無効である。"
12560
12561 #. type: Plain text
12562 #: build/C/man2/timerfd_create.2:371
12563 msgid ""
12564 "These system calls are available on Linux since kernel 2.6.25.  Library "
12565 "support is provided by glibc since version 2.8."
12566 msgstr ""
12567 "これらのシステムコールはカーネル 2.6.25 以降の Linux で利用可能である。 ライ"
12568 "ブラリ側のサポートはバージョン 2.8 以降の glibc で提供されている。"
12569
12570 #.  2.6.29
12571 #. type: Plain text
12572 #: build/C/man2/timerfd_create.2:379
12573 msgid ""
12574 "Currently, B<timerfd_create>()  supports fewer types of clock IDs than "
12575 "B<timer_create>(2)."
12576 msgstr ""
12577 "現在のところ、 B<timerfd_create>()  が対応している clockid の種類は "
12578 "B<timer_create>(2)  よりも少ない。"
12579
12580 #. type: Plain text
12581 #: build/C/man2/timerfd_create.2:388
12582 msgid ""
12583 "The following program creates a timer and then monitors its progress.  The "
12584 "program accepts up to three command-line arguments.  The first argument "
12585 "specifies the number of seconds for the initial expiration of the timer.  "
12586 "The second argument specifies the interval for the timer, in seconds.  The "
12587 "third argument specifies the number of times the program should allow the "
12588 "timer to expire before terminating.  The second and third command-line "
12589 "arguments are optional."
12590 msgstr ""
12591 "以下のプログラムは、タイマーを作成し、その進捗をモニターするものである。 この"
12592 "プログラムは最大で 3 個のコマンドライン引き数を取り、 第一引き数ではタイマー"
12593 "の満了時間の初期値 (秒数単位) を、 第二引き数ではタイマーの間隔 (秒数単位) "
12594 "を、 第三引き数ではタイマーが何回満了したらプログラムが終了するかを指定す"
12595 "る。 第二引き数と第三引き数は省略可能である。"
12596
12597 #. type: Plain text
12598 #: build/C/man2/timerfd_create.2:390 build/C/man2/wait.2:569
12599 msgid "The following shell session demonstrates the use of the program:"
12600 msgstr "以下のシェルのセッションはこのプログラムの使用例を示したものである。"
12601
12602 #. type: Plain text
12603 #: build/C/man2/timerfd_create.2:405
12604 #, no-wrap
12605 msgid ""
12606 "$B< a.out 3 1 100>\n"
12607 "0.000: timer started\n"
12608 "3.000: read: 1; total=1\n"
12609 "4.000: read: 1; total=2\n"
12610 "B<^Z >                 # type control-Z to suspend the program\n"
12611 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12612 "$ B<fg>                # Resume execution after a few seconds\n"
12613 "a.out 3 1 100\n"
12614 "9.660: read: 5; total=7\n"
12615 "10.000: read: 1; total=8\n"
12616 "11.000: read: 1; total=9\n"
12617 "B<^C >                 # type control-C to suspend the program\n"
12618 msgstr ""
12619 "$B< a.out 3 1 100>\n"
12620 "0.000: timer started\n"
12621 "3.000: read: 1; total=1\n"
12622 "4.000: read: 1; total=2\n"
12623 "B<^Z >                 # type control-Z to suspend the program\n"
12624 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12625 "$ B<fg>                # Resume execution after a few seconds\n"
12626 "a.out 3 1 100\n"
12627 "9.660: read: 5; total=7\n"
12628 "10.000: read: 1; total=8\n"
12629 "11.000: read: 1; total=9\n"
12630 "B<^C >                 # type control-C to suspend the program\n"
12631
12632 #.  The commented out code here is what we currently need until
12633 #.  the required stuff is in glibc
12634 #. /* Link with -lrt */
12635 #. #define _GNU_SOURCE
12636 #. #include <sys/syscall.h>
12637 #. #include <unistd.h>
12638 #. #include <time.h>
12639 #. #if defined(__i386__)
12640 #. #define __NR_timerfd_create 322
12641 #. #define __NR_timerfd_settime 325
12642 #. #define __NR_timerfd_gettime 326
12643 #. #endif
12644 #. static int
12645 #. timerfd_create(int clockid, int flags)
12646 #. {
12647 #.     return syscall(__NR_timerfd_create, clockid, flags);
12648 #. }
12649 #. static int
12650 #. timerfd_settime(int fd, int flags, struct itimerspec *new_value,
12651 #.         struct itimerspec *curr_value)
12652 #. {
12653 #.     return syscall(__NR_timerfd_settime, fd, flags, new_value,
12654 #.                    curr_value);
12655 #. }
12656 #. static int
12657 #. timerfd_gettime(int fd, struct itimerspec *curr_value)
12658 #. {
12659 #.     return syscall(__NR_timerfd_gettime, fd, curr_value);
12660 #. }
12661 #. #define TFD_TIMER_ABSTIME (1 << 0)
12662 #. ////////////////////////////////////////////////////////////
12663 #. type: Plain text
12664 #: build/C/man2/timerfd_create.2:454
12665 #, no-wrap
12666 msgid ""
12667 "#include E<lt>sys/timerfd.hE<gt>\n"
12668 "#include E<lt>time.hE<gt>\n"
12669 "#include E<lt>unistd.hE<gt>\n"
12670 "#include E<lt>stdlib.hE<gt>\n"
12671 "#include E<lt>stdio.hE<gt>\n"
12672 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12673 msgstr ""
12674 "#include E<lt>sys/timerfd.hE<gt>\n"
12675 "#include E<lt>time.hE<gt>\n"
12676 "#include E<lt>unistd.hE<gt>\n"
12677 "#include E<lt>stdlib.hE<gt>\n"
12678 "#include E<lt>stdio.hE<gt>\n"
12679 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12680
12681 #. type: Plain text
12682 #: build/C/man2/timerfd_create.2:457
12683 #, no-wrap
12684 msgid ""
12685 "#define handle_error(msg) \\e\n"
12686 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
12687 msgstr ""
12688 "#define handle_error(msg) \\e\n"
12689 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
12690
12691 #. type: Plain text
12692 #: build/C/man2/timerfd_create.2:465
12693 #, no-wrap
12694 msgid ""
12695 "static void\n"
12696 "print_elapsed_time(void)\n"
12697 "{\n"
12698 "    static struct timespec start;\n"
12699 "    struct timespec curr;\n"
12700 "    static int first_call = 1;\n"
12701 "    int secs, nsecs;\n"
12702 msgstr ""
12703 "static void\n"
12704 "print_elapsed_time(void)\n"
12705 "{\n"
12706 "    static struct timespec start;\n"
12707 "    struct timespec curr;\n"
12708 "    static int first_call = 1;\n"
12709 "    int secs, nsecs;\n"
12710
12711 #. type: Plain text
12712 #: build/C/man2/timerfd_create.2:471
12713 #, no-wrap
12714 msgid ""
12715 "    if (first_call) {\n"
12716 "        first_call = 0;\n"
12717 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
12718 "            handle_error(\"clock_gettime\");\n"
12719 "    }\n"
12720 msgstr ""
12721 "    if (first_call) {\n"
12722 "        first_call = 0;\n"
12723 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
12724 "            handle_error(\"clock_gettime\");\n"
12725 "    }\n"
12726
12727 #. type: Plain text
12728 #: build/C/man2/timerfd_create.2:474
12729 #, no-wrap
12730 msgid ""
12731 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
12732 "        handle_error(\"clock_gettime\");\n"
12733 msgstr ""
12734 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
12735 "        handle_error(\"clock_gettime\");\n"
12736
12737 #. type: Plain text
12738 #: build/C/man2/timerfd_create.2:483
12739 #, no-wrap
12740 msgid ""
12741 "    secs = curr.tv_sec - start.tv_sec;\n"
12742 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
12743 "    if (nsecs E<lt> 0) {\n"
12744 "        secs--;\n"
12745 "        nsecs += 1000000000;\n"
12746 "    }\n"
12747 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
12748 "}\n"
12749 msgstr ""
12750 "    secs = curr.tv_sec - start.tv_sec;\n"
12751 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
12752 "    if (nsecs E<lt> 0) {\n"
12753 "        secs--;\n"
12754 "        nsecs += 1000000000;\n"
12755 "    }\n"
12756 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
12757 "}\n"
12758
12759 #. type: Plain text
12760 #: build/C/man2/timerfd_create.2:492
12761 #, no-wrap
12762 msgid ""
12763 "int\n"
12764 "main(int argc, char *argv[])\n"
12765 "{\n"
12766 "    struct itimerspec new_value;\n"
12767 "    int max_exp, fd;\n"
12768 "    struct timespec now;\n"
12769 "    uint64_t exp, tot_exp;\n"
12770 "    ssize_t s;\n"
12771 msgstr ""
12772 "int\n"
12773 "main(int argc, char *argv[])\n"
12774 "{\n"
12775 "    struct itimerspec new_value;\n"
12776 "    int max_exp, fd;\n"
12777 "    struct timespec now;\n"
12778 "    uint64_t exp, tot_exp;\n"
12779 "    ssize_t s;\n"
12780
12781 #. type: Plain text
12782 #: build/C/man2/timerfd_create.2:498
12783 #, no-wrap
12784 msgid ""
12785 "    if ((argc != 2) && (argc != 4)) {\n"
12786 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
12787 "                argv[0]);\n"
12788 "        exit(EXIT_FAILURE);\n"
12789 "    }\n"
12790 msgstr ""
12791 "    if ((argc != 2) && (argc != 4)) {\n"
12792 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
12793 "                argv[0]);\n"
12794 "        exit(EXIT_FAILURE);\n"
12795 "    }\n"
12796
12797 #. type: Plain text
12798 #: build/C/man2/timerfd_create.2:501
12799 #, no-wrap
12800 msgid ""
12801 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
12802 "        handle_error(\"clock_gettime\");\n"
12803 msgstr ""
12804 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
12805 "        handle_error(\"clock_gettime\");\n"
12806
12807 #. type: Plain text
12808 #: build/C/man2/timerfd_create.2:504
12809 #, no-wrap
12810 msgid ""
12811 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
12812 "       expiration and interval as specified in command line */\n"
12813 msgstr ""
12814 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
12815 "       expiration and interval as specified in command line */\n"
12816
12817 #. type: Plain text
12818 #: build/C/man2/timerfd_create.2:515
12819 #, no-wrap
12820 msgid ""
12821 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
12822 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
12823 "    if (argc == 2) {\n"
12824 "        new_value.it_interval.tv_sec = 0;\n"
12825 "        max_exp = 1;\n"
12826 "    } else {\n"
12827 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
12828 "        max_exp = atoi(argv[3]);\n"
12829 "    }\n"
12830 "    new_value.it_interval.tv_nsec = 0;\n"
12831 msgstr ""
12832 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
12833 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
12834 "    if (argc == 2) {\n"
12835 "        new_value.it_interval.tv_sec = 0;\n"
12836 "        max_exp = 1;\n"
12837 "    } else {\n"
12838 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
12839 "        max_exp = atoi(argv[3]);\n"
12840 "    }\n"
12841 "    new_value.it_interval.tv_nsec = 0;\n"
12842
12843 #. type: Plain text
12844 #: build/C/man2/timerfd_create.2:519
12845 #, no-wrap
12846 msgid ""
12847 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
12848 "    if (fd == -1)\n"
12849 "        handle_error(\"timerfd_create\");\n"
12850 msgstr ""
12851 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
12852 "    if (fd == -1)\n"
12853 "        handle_error(\"timerfd_create\");\n"
12854
12855 #. type: Plain text
12856 #: build/C/man2/timerfd_create.2:522
12857 #, no-wrap
12858 msgid ""
12859 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
12860 "        handle_error(\"timerfd_settime\");\n"
12861 msgstr ""
12862 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
12863 "        handle_error(\"timerfd_settime\");\n"
12864
12865 #. type: Plain text
12866 #: build/C/man2/timerfd_create.2:525
12867 #, no-wrap
12868 msgid ""
12869 "    print_elapsed_time();\n"
12870 "    printf(\"timer started\\en\");\n"
12871 msgstr ""
12872 "    print_elapsed_time();\n"
12873 "    printf(\"timer started\\en\");\n"
12874
12875 #. type: Plain text
12876 #: build/C/man2/timerfd_create.2:530
12877 #, no-wrap
12878 msgid ""
12879 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
12880 "        s = read(fd, &exp, sizeof(uint64_t));\n"
12881 "        if (s != sizeof(uint64_t))\n"
12882 "            handle_error(\"read\");\n"
12883 msgstr ""
12884 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
12885 "        s = read(fd, &exp, sizeof(uint64_t));\n"
12886 "        if (s != sizeof(uint64_t))\n"
12887 "            handle_error(\"read\");\n"
12888
12889 #. type: Plain text
12890 #: build/C/man2/timerfd_create.2:537
12891 #, no-wrap
12892 msgid ""
12893 "        tot_exp += exp;\n"
12894 "        print_elapsed_time();\n"
12895 "        printf(\"read: %llu; total=%llu\\en\",\n"
12896 "                (unsigned long long) exp,\n"
12897 "                (unsigned long long) tot_exp);\n"
12898 "    }\n"
12899 msgstr ""
12900 "        tot_exp += exp;\n"
12901 "        print_elapsed_time();\n"
12902 "        printf(\"read: %llu; total=%llu\\en\",\n"
12903 "                (unsigned long long) exp,\n"
12904 "                (unsigned long long) tot_exp);\n"
12905 "    }\n"
12906
12907 #. type: Plain text
12908 #: build/C/man2/timerfd_create.2:553
12909 msgid ""
12910 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
12911 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), B<timer_settime>"
12912 "(2), B<epoll>(7), B<time>(7)"
12913 msgstr ""
12914 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
12915 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), B<timer_settime>"
12916 "(2), B<epoll>(7), B<time>(7)"
12917
12918 #. type: TH
12919 #: build/C/man2/tkill.2:29
12920 #, no-wrap
12921 msgid "TKILL"
12922 msgstr "TKILL"
12923
12924 #. type: Plain text
12925 #: build/C/man2/tkill.2:32
12926 msgid "tkill, tgkill - send a signal to a thread"
12927 msgstr "tkill, tgkill - スレッドにシグナルを送る"
12928
12929 #. type: Plain text
12930 #: build/C/man2/tkill.2:35
12931 #, no-wrap
12932 msgid "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
12933 msgstr "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
12934
12935 #. type: Plain text
12936 #: build/C/man2/tkill.2:37
12937 #, no-wrap
12938 msgid "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
12939 msgstr "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
12940
12941 #. type: Plain text
12942 #: build/C/man2/tkill.2:54
12943 msgid ""
12944 "B<tgkill>()  sends the signal I<sig> to the thread with the thread ID I<tid> "
12945 "in the thread group I<tgid>.  (By contrast, B<kill>(2)  can be used to send "
12946 "a signal only to a process (i.e., thread group)  as a whole, and the signal "
12947 "will be delivered to an arbitrary thread within that process.)"
12948 msgstr ""
12949 "B<tgkill>()  はスレッド・グループ I<tgid> に属するスレッド ID が I<tid> のス"
12950 "レッドにシグナル I<sig> を送る。 (これに対し、 B<kill>(2)  は一つのプロセス "
12951 "(すなわち、スレッド・グループ) にまとめてシグナルを 送るのにだけ利用できる。 "
12952 "B<kill>(2)  で送信されたシグナルはプロセス内の任意のスレッドに配送される。)"
12953
12954 #.  FIXME: Maybe say something about the following:
12955 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=12889
12956 #.      Rich Felker <bugdal@aerifal.cx>
12957 #.      There is a race condition in pthread_kill: it is possible that,
12958 #.      between the time pthread_kill reads the pid/tid from the target
12959 #.      thread descriptor and the time it makes the tgkill syscall,
12960 #.      the target thread terminates and the same tid gets assigned
12961 #.      to a new thread in the same process.
12962 #.      (The tgkill syscall was designed to eliminate a similar race
12963 #.      condition in tkill, but it only succeeded in eliminating races
12964 #.      where the tid gets reused in a different process, and does not
12965 #.      help if the same tid gets assigned to a new thread in the
12966 #.      same process.)
12967 #.      The only solution I can see is to introduce a mutex that ensures
12968 #.      that a thread cannot exit while pthread_kill is being called on it.
12969 #.      Note that in most real-world situations, like almost all race
12970 #.      conditions, this one will be extremely rare. To make it
12971 #.      measurable, one could exhaust all but 1-2 available pid values,
12972 #.      possibly by lowering the max pid parameter in /proc, forcing
12973 #.      the same tid to be reused rapidly.
12974 #. type: Plain text
12975 #: build/C/man2/tkill.2:85
12976 msgid ""
12977 "B<tkill>()  is an obsolete predecessor to B<tgkill>().  It allows only the "
12978 "target thread ID to be specified, which may result in the wrong thread being "
12979 "signaled if a thread terminates and its thread ID is recycled.  Avoid using "
12980 "this system call."
12981 msgstr ""
12982 "B<tkill>()  はもう使われなくなった B<tgkill>()  の先祖である。 B<tkill>()  で"
12983 "はシグナルの送り先のスレッド ID しか指定できない。 そのため、スレッドが終了し"
12984 "て、そのスレッド ID が再利用される場合に、 意図しないスレッドにシグナルが送ら"
12985 "れる可能性がある。 このシステムコールの使用は避けること。"
12986
12987 #. type: Plain text
12988 #: build/C/man2/tkill.2:92
12989 msgid ""
12990 "If I<tgid> is specified as -1, B<tgkill>()  is equivalent to B<tkill>()."
12991 msgstr ""
12992 "I<tgid> に -1 が指定された場合、 B<tgkill>()  は B<tkill>()  と等価である。"
12993
12994 #. type: Plain text
12995 #: build/C/man2/tkill.2:95
12996 msgid ""
12997 "These are the raw system call interfaces, meant for internal thread library "
12998 "use."
12999 msgstr ""
13000 "これらはシステムコールへの直接のインターフェースであり、 スレッド・ライブラリ"
13001 "内部での使用を意図したものである。"
13002
13003 #. type: Plain text
13004 #: build/C/man2/tkill.2:103
13005 msgid "An invalid thread ID, thread group ID, or signal was specified."
13006 msgstr "指定されたスレッド ID、スレッドグループ ID、シグナルが不正であった。"
13007
13008 #. type: Plain text
13009 #: build/C/man2/tkill.2:108
13010 msgid "Permission denied.  For the required permissions, see B<kill>(2)."
13011 msgstr ""
13012 "許可がなかった。どのような許可が必要かについては、 B<kill>(2)  を参照のこと。"
13013
13014 #. type: Plain text
13015 #: build/C/man2/tkill.2:111
13016 msgid "No process with the specified thread ID (and thread group ID) exists."
13017 msgstr ""
13018 "指定されたスレッドID (とスレッド・グループID) を持つプロセスが存在しない。"
13019
13020 #. type: Plain text
13021 #: build/C/man2/tkill.2:116
13022 msgid ""
13023 "B<tkill>()  is supported since Linux 2.4.19 / 2.5.4.  B<tgkill>()  was added "
13024 "in Linux 2.5.75."
13025 msgstr ""
13026 "B<tkill>()  は Linux 2.4.19 / 2.5.4 以降でサポートされ、 B<tgkill>()  は "
13027 "Linux 2.5.75 で追加された。"
13028
13029 #. type: Plain text
13030 #: build/C/man2/tkill.2:122
13031 msgid ""
13032 "B<tkill>()  and B<tgkill>()  are Linux-specific and should not be used in "
13033 "programs that are intended to be portable."
13034 msgstr ""
13035 "B<tkill>()  と B<tgkill>()  は Linux 固有であり、 移植を想定したプログラムで"
13036 "は使用すべきではない。"
13037
13038 #. type: Plain text
13039 #: build/C/man2/tkill.2:128
13040 msgid ""
13041 "See the description of B<CLONE_THREAD> in B<clone>(2)  for an explanation of "
13042 "thread groups."
13043 msgstr ""
13044 "スレッド・グループの説明については B<clone>(2)  の B<CLONE_THREAD> の説明を参"
13045 "照のこと。"
13046
13047 #. type: Plain text
13048 #: build/C/man2/tkill.2:131
13049 msgid ""
13050 "Glibc does not provide wrappers for these system calls; call them using "
13051 "B<syscall>(2)."
13052 msgstr ""
13053 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
13054 "B<syscall>(2)  を使って呼び出すこと。"
13055
13056 #. type: Plain text
13057 #: build/C/man2/tkill.2:136
13058 msgid "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
13059 msgstr "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
13060
13061 #. type: TH
13062 #: build/C/man2/wait.2:49
13063 #, no-wrap
13064 msgid "WAIT"
13065 msgstr "WAIT"
13066
13067 #. type: Plain text
13068 #: build/C/man2/wait.2:52
13069 msgid "wait, waitpid, waitid - wait for process to change state"
13070 msgstr "wait, waitpid, waitid - プロセスの状態変化を待つ"
13071
13072 #. type: Plain text
13073 #: build/C/man2/wait.2:54
13074 msgid "B<#include E<lt>sys/types.hE<gt>>"
13075 msgstr "B<#include E<lt>sys/types.hE<gt>>"
13076
13077 #. type: Plain text
13078 #: build/C/man2/wait.2:56
13079 msgid "B<#include E<lt>sys/wait.hE<gt>>"
13080 msgstr "B<#include E<lt>sys/wait.hE<gt>>"
13081
13082 #. type: Plain text
13083 #: build/C/man2/wait.2:58
13084 msgid "B<pid_t wait(int *>I<status>B<);>"
13085 msgstr "B<pid_t wait(int *>I<status>B<);>"
13086
13087 #. type: Plain text
13088 #: build/C/man2/wait.2:60
13089 msgid ""
13090 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
13091 msgstr ""
13092 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
13093
13094 #. type: Plain text
13095 #: build/C/man2/wait.2:65
13096 #, no-wrap
13097 msgid ""
13098 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, int >I<options>B<);>\n"
13099 "                /* This is the glibc and POSIX interface; see\n"
13100 "                   NOTES for information on the raw system call. */\n"
13101 msgstr ""
13102 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, int >I<options>B<);>\n"
13103 "                /* これは glibc と POSIX のインターフェイスである。\n"
13104 "                   生のシステムコールについての情報は「注意」の節を参照。 */\n"
13105
13106 #. type: Plain text
13107 #: build/C/man2/wait.2:74
13108 msgid "B<waitid>():"
13109 msgstr "B<waitid>():"
13110
13111 #. type: Plain text
13112 #: build/C/man2/wait.2:78
13113 msgid ""
13114 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13115 "_XOPEN_SOURCE_EXTENDED"
13116 msgstr ""
13117 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13118 "_XOPEN_SOURCE_EXTENDED"
13119
13120 #. type: Plain text
13121 #: build/C/man2/wait.2:93
13122 msgid ""
13123 "All of these system calls are used to wait for state changes in a child of "
13124 "the calling process, and obtain information about the child whose state has "
13125 "changed.  A state change is considered to be: the child terminated; the "
13126 "child was stopped by a signal; or the child was resumed by a signal.  In the "
13127 "case of a terminated child, performing a wait allows the system to release "
13128 "the resources associated with the child; if a wait is not performed, then "
13129 "the terminated child remains in a \"zombie\" state (see NOTES below)."
13130 msgstr ""
13131 "これらのシステムコールはいずれも、呼び出し元プロセスの子プロセスの 状態変化を"
13132 "待ち、状態が変化したその子プロセスの情報を取得するのに 使用される。 状態変化"
13133 "とは以下のいずれかである: 子プロセスの終了、シグナルによる子プロセスの停止、 "
13134 "シグナルによる子プロセスの再開。 子プロセスが終了した場合は、wait を実行する"
13135 "ことで、 システムがその子プロセスに関連するリソースを解放できるようになる。 "
13136 "wait が実行されなかった場合には、終了した子プロセスは 「ゾンビ」状態で残り続"
13137 "ける (下記の注意の章を参照のこと)。"
13138
13139 #. type: Plain text
13140 #: build/C/man2/wait.2:105
13141 msgid ""
13142 "If a child has already changed state, then these calls return immediately.  "
13143 "Otherwise they block until either a child changes state or a signal handler "
13144 "interrupts the call (assuming that system calls are not automatically "
13145 "restarted using the B<SA_RESTART> flag of B<sigaction>(2)).  In the "
13146 "remainder of this page, a child whose state has changed and which has not "
13147 "yet been waited upon by one of these system calls is termed I<waitable>."
13148 msgstr ""
13149 "子プロセスの状態変化がすでに発生していた場合、これらのコールは すぐに復帰す"
13150 "る。それ以外の場合は、子プロセスの状態変化が起こるか、 シグナルハンドラにより"
13151 "システムコールが中断されるまで、 停止 (block) する (後者は、 B<sigaction>"
13152 "(2)  の B<SA_RESTART> フラグによりシステムコールが自動的に再スタートするよう"
13153 "になっていない 場合の動作である)。 以下の説明では、状態変化が起こったがこれら"
13154 "のシステムコールのいずれかに よって待たれていない子プロセスを I<waitable> (待"
13155 "ち可能) と呼ぶ。"
13156
13157 #. type: SS
13158 #: build/C/man2/wait.2:105
13159 #, no-wrap
13160 msgid "wait() and waitpid()"
13161 msgstr "wait() と waitpid()"
13162
13163 #. type: Plain text
13164 #: build/C/man2/wait.2:113
13165 msgid ""
13166 "The B<wait>()  system call suspends execution of the calling process until "
13167 "one of its children terminates.  The call I<wait(&status)> is equivalent to:"
13168 msgstr ""
13169 "B<wait>()  システムコールは、子プロセスのいずれかが終了するまで 呼び出し元の"
13170 "プロセスの実行を一時停止する。 呼び出し I<wait(&status)> は以下と等価である:"
13171
13172 #. type: Plain text
13173 #: build/C/man2/wait.2:116
13174 #, no-wrap
13175 msgid "    waitpid(-1, &status, 0);\n"
13176 msgstr "    waitpid(-1, &status, 0);\n"
13177
13178 #. type: Plain text
13179 #: build/C/man2/wait.2:130
13180 msgid ""
13181 "The B<waitpid>()  system call suspends execution of the calling process "
13182 "until a child specified by I<pid> argument has changed state.  By default, "
13183 "B<waitpid>()  waits only for terminated children, but this behavior is "
13184 "modifiable via the I<options> argument, as described below."
13185 msgstr ""
13186 "B<waitpid>()  システムコールは、 I<pid> 引き数で指定した子プロセスの状態変化"
13187 "が起こるまで、 呼び出し元のプロセスの実行を一時停止する。デフォルトでは、 "
13188 "B<waitpid>()  は子プロセスの終了だけを待つが、この動作は I<options> 引き数に"
13189 "より変更可能である。"
13190
13191 #. type: Plain text
13192 #: build/C/man2/wait.2:134
13193 msgid "The value of I<pid> can be:"
13194 msgstr "I<pid> に指定できる値は以下の通り:"
13195
13196 #. type: IP
13197 #: build/C/man2/wait.2:134
13198 #, no-wrap
13199 msgid "E<lt> -1"
13200 msgstr "E<lt> -1"
13201
13202 #. type: Plain text
13203 #: build/C/man2/wait.2:138
13204 msgid ""
13205 "meaning wait for any child process whose process group ID is equal to the "
13206 "absolute value of I<pid>."
13207 msgstr ""
13208 "プロセスグループID が I<pid> の絶対値に等しい子プロセスのいずれかが終了するま"
13209 "でを待つ。"
13210
13211 #. type: IP
13212 #: build/C/man2/wait.2:138
13213 #, no-wrap
13214 msgid "-1"
13215 msgstr "-1"
13216
13217 #. type: Plain text
13218 #: build/C/man2/wait.2:140
13219 msgid "meaning wait for any child process."
13220 msgstr "子プロセスのどれかが終了するまで待つ。"
13221
13222 #. type: IP
13223 #: build/C/man2/wait.2:140
13224 #, no-wrap
13225 msgid "0"
13226 msgstr "0"
13227
13228 #. type: Plain text
13229 #: build/C/man2/wait.2:143
13230 msgid ""
13231 "meaning wait for any child process whose process group ID is equal to that "
13232 "of the calling process."
13233 msgstr ""
13234 "プロセスグループID が呼び出したプロセスのものと等しい 子プロセスを待つ。"
13235
13236 #. type: IP
13237 #: build/C/man2/wait.2:143
13238 #, no-wrap
13239 msgid "E<gt> 0"
13240 msgstr "E<gt> 0"
13241
13242 #. type: Plain text
13243 #: build/C/man2/wait.2:147
13244 msgid ""
13245 "meaning wait for the child whose process ID is equal to the value of I<pid>."
13246 msgstr "プロセスID が I<pid> に等しい子プロセスを待つ。"
13247
13248 #. type: Plain text
13249 #: build/C/man2/wait.2:151
13250 msgid ""
13251 "The value of I<options> is an OR of zero or more of the following constants:"
13252 msgstr "I<options> の値は次の定数の 0 個以上の論理和である:"
13253
13254 #. type: TP
13255 #: build/C/man2/wait.2:151 build/C/man2/wait.2:280
13256 #, no-wrap
13257 msgid "B<WNOHANG>"
13258 msgstr "B<WNOHANG>"
13259
13260 #. type: Plain text
13261 #: build/C/man2/wait.2:154
13262 msgid "return immediately if no child has exited."
13263 msgstr "状態変化が起こった子プロセスがない場合にすぐに復帰する。"
13264
13265 #. type: TP
13266 #: build/C/man2/wait.2:154
13267 #, no-wrap
13268 msgid "B<WUNTRACED>"
13269 msgstr "B<WUNTRACED>"
13270
13271 #. type: Plain text
13272 #: build/C/man2/wait.2:163
13273 msgid ""
13274 "also return if a child has stopped (but not traced via B<ptrace>(2)).  "
13275 "Status for I<traced> children which have stopped is provided even if this "
13276 "option is not specified."
13277 msgstr ""
13278 "子プロセスが停止した場合にも復帰する (子プロセスが B<ptrace>(2)  でトレースさ"
13279 "れている場合は除く)。 このオプションが指定されていない場合でも、停止したプロ"
13280 "セスが 「トレース (traced)」されていれば、子プロセスの状態が報告される。"
13281
13282 #. type: TP
13283 #: build/C/man2/wait.2:163
13284 #, no-wrap
13285 msgid "B<WCONTINUED> (since Linux 2.6.10)"
13286 msgstr "B<WCONTINUED> (Linux 2.6.10 以降)"
13287
13288 #. type: Plain text
13289 #: build/C/man2/wait.2:167
13290 msgid ""
13291 "also return if a stopped child has been resumed by delivery of B<SIGCONT>."
13292 msgstr "停止した子プロセスが B<SIGCONT> の配送により再開した場合にも復帰する。"
13293
13294 #. type: Plain text
13295 #: build/C/man2/wait.2:169
13296 msgid "(For Linux-only options, see below.)"
13297 msgstr "(Linux 専用オプションについては後述する)"
13298
13299 #. type: Plain text
13300 #: build/C/man2/wait.2:183
13301 msgid ""
13302 "If I<status> is not NULL, B<wait>()  and B<waitpid>()  store status "
13303 "information in the I<int> to which it points.  This integer can be inspected "
13304 "with the following macros (which take the integer itself as an argument, not "
13305 "a pointer to it, as is done in B<wait>()  and B<waitpid>()!):"
13306 msgstr ""
13307 "I<status> が NULL でなければ、 B<wait>()  や B<waitpid>()  は I<status> で指"
13308 "す I<int> に状態情報を格納する。 この整数は以下のマクロを使って検査できる。 "
13309 "(これらのマクロの引き数には、 B<wait>()  や B<waitpid>()  が書き込んだ整数そ"
13310 "のものを指定する。ポインタではない!)"
13311
13312 #. type: TP
13313 #: build/C/man2/wait.2:183
13314 #, no-wrap
13315 msgid "B<WIFEXITED(>I<status>B<)>"
13316 msgstr "B<WIFEXITED(>I<status>B<)>"
13317
13318 #. type: Plain text
13319 #: build/C/man2/wait.2:191
13320 msgid ""
13321 "returns true if the child terminated normally, that is, by calling B<exit>"
13322 "(3)  or B<_exit>(2), or by returning from main()."
13323 msgstr ""
13324 "子プロセスが正常に終了した場合に真を返す。 「正常に」とは、 B<exit>(3)  か "
13325 "B<_exit>(2)  が呼び出された場合、もしくは main() から復帰した場合である。"
13326
13327 #. type: TP
13328 #: build/C/man2/wait.2:191
13329 #, no-wrap
13330 msgid "B<WEXITSTATUS(>I<status>B<)>"
13331 msgstr "B<WEXITSTATUS(>I<status>B<)>"
13332
13333 #. type: Plain text
13334 #: build/C/man2/wait.2:204
13335 msgid ""
13336 "returns the exit status of the child.  This consists of the least "
13337 "significant 8 bits of the I<status> argument that the child specified in a "
13338 "call to B<exit>(3)  or B<_exit>(2)  or as the argument for a return "
13339 "statement in main().  This macro should be employed only if B<WIFEXITED> "
13340 "returned true."
13341 msgstr ""
13342 "子プロセスの終了ステータスを返す。 終了ステータスは I<status> 引き数の下位 8"
13343 "ビットで構成されており、 B<exit>(3)  や B<_exit>(2)  の呼び出し時に渡された"
13344 "値、もしくは main() の return 文の 引き数として指定された値である。 このマク"
13345 "ロを使用するのは B<WIFEXITED> が真を返した場合だけにすべきである。"
13346
13347 #. type: TP
13348 #: build/C/man2/wait.2:204
13349 #, no-wrap
13350 msgid "B<WIFSIGNALED(>I<status>B<)>"
13351 msgstr "B<WIFSIGNALED(>I<status>B<)>"
13352
13353 #. type: Plain text
13354 #: build/C/man2/wait.2:207
13355 msgid "returns true if the child process was terminated by a signal."
13356 msgstr "子プロセスがシグナルにより終了した場合に真を返す。"
13357
13358 #. type: TP
13359 #: build/C/man2/wait.2:207
13360 #, no-wrap
13361 msgid "B<WTERMSIG(>I<status>B<)>"
13362 msgstr "B<WTERMSIG(>I<status>B<)>"
13363
13364 #. type: Plain text
13365 #: build/C/man2/wait.2:214
13366 msgid ""
13367 "returns the number of the signal that caused the child process to "
13368 "terminate.  This macro should be employed only if B<WIFSIGNALED> returned "
13369 "true."
13370 msgstr ""
13371 "子プロセス終了の原因となったシグナルの番号を返す。 このマクロを使用するのは "
13372 "B<WIFSIGNALED> が真を返した場合だけにすべきである。"
13373
13374 #. type: TP
13375 #: build/C/man2/wait.2:214
13376 #, no-wrap
13377 msgid "B<WCOREDUMP(>I<status>B<)>"
13378 msgstr "B<WCOREDUMP(>I<status>B<)>"
13379
13380 #. type: Plain text
13381 #: build/C/man2/wait.2:223
13382 msgid ""
13383 "returns true if the child produced a core dump.  This macro should be "
13384 "employed only if B<WIFSIGNALED> returned true.  This macro is not specified "
13385 "in POSIX.1-2001 and is not available on some UNIX implementations (e.g., "
13386 "AIX, SunOS).  Only use this enclosed in #ifdef WCOREDUMP ... #endif."
13387 msgstr ""
13388 "子プロセスがコアダンプを生成した場合に真を返す。 このマクロを使用するのは "
13389 "B<WIFSIGNALED> が真を返した場合だけにすべきである。 このマクロは "
13390 "POSIX.1-2001 では規定されておらず、 (AIX, SunOS などの) いくつかの UNIX の実"
13391 "装では利用できない。 必ず #ifdef WCOREDUMP ... #endif で括って使用すること。"
13392
13393 #. type: TP
13394 #: build/C/man2/wait.2:223
13395 #, no-wrap
13396 msgid "B<WIFSTOPPED(>I<status>B<)>"
13397 msgstr "B<WIFSTOPPED(>I<status>B<)>"
13398
13399 #. type: Plain text
13400 #: build/C/man2/wait.2:230
13401 msgid ""
13402 "returns true if the child process was stopped by delivery of a signal; this "
13403 "is possible only if the call was done using B<WUNTRACED> or when the child "
13404 "is being traced (see B<ptrace>(2))."
13405 msgstr ""
13406 "子プロセスがシグナルの配送により停止した場合に真を返す。 これが真になるのは、"
13407 "システムコールが B<WUNTRACED> を指定して呼び出された場合か、子プロセスがト"
13408 "レースされている場合 (B<ptrace>(2)  参照) だけである。"
13409
13410 #. type: TP
13411 #: build/C/man2/wait.2:230
13412 #, no-wrap
13413 msgid "B<WSTOPSIG(>I<status>B<)>"
13414 msgstr "B<WSTOPSIG(>I<status>B<)>"
13415
13416 #. type: Plain text
13417 #: build/C/man2/wait.2:236
13418 msgid ""
13419 "returns the number of the signal which caused the child to stop.  This macro "
13420 "should be employed only if B<WIFSTOPPED> returned true."
13421 msgstr ""
13422 "子プロセスを停止させたシグナルの番号を返す。 このマクロを使用するのは "
13423 "B<WIFSTOPPED> が 0 以外を返した場合だけにすべきである。"
13424
13425 #. type: TP
13426 #: build/C/man2/wait.2:236
13427 #, no-wrap
13428 msgid "B<WIFCONTINUED(>I<status>B<)>"
13429 msgstr "B<WIFCONTINUED(>I<status>B<)>"
13430
13431 #. type: Plain text
13432 #: build/C/man2/wait.2:241
13433 msgid ""
13434 "(since Linux 2.6.10)  returns true if the child process was resumed by "
13435 "delivery of B<SIGCONT>."
13436 msgstr ""
13437 "(Linux 2.6.10 以降)  子プロセスが B<SIGCONT> の配送により再開した場合に真を返"
13438 "す。"
13439
13440 #. type: SS
13441 #: build/C/man2/wait.2:241
13442 #, no-wrap
13443 msgid "waitid()"
13444 msgstr "waitid()"
13445
13446 #. type: Plain text
13447 #: build/C/man2/wait.2:246
13448 msgid ""
13449 "The B<waitid>()  system call (available since Linux 2.6.9) provides more "
13450 "precise control over which child state changes to wait for."
13451 msgstr ""
13452 "B<waitid>()  システムコール (Linux 2.6.9 以降で利用可能) を使うと、 子プロセ"
13453 "スのどの状態変化を待つかについてより細かな制御ができる。"
13454
13455 #. type: Plain text
13456 #: build/C/man2/wait.2:252
13457 msgid ""
13458 "The I<idtype> and I<id> arguments select the child(ren) to wait for, as "
13459 "follows:"
13460 msgstr "引き数 I<idtype> と I<id> でどの子プロセスを待つかを選択する:"
13461
13462 #. type: IP
13463 #: build/C/man2/wait.2:252
13464 #, no-wrap
13465 msgid "I<idtype> == B<P_PID>"
13466 msgstr "I<idtype> == B<P_PID>"
13467
13468 #. type: Plain text
13469 #: build/C/man2/wait.2:255
13470 msgid "Wait for the child whose process ID matches I<id>."
13471 msgstr "プロセスID が I<id> と一致する子プロセスを待つ。"
13472
13473 #. type: IP
13474 #: build/C/man2/wait.2:255
13475 #, no-wrap
13476 msgid "I<idtype> == B<P_PGID>"
13477 msgstr "I<idtype> == B<P_PGID>"
13478
13479 #. type: Plain text
13480 #: build/C/man2/wait.2:258
13481 msgid "Wait for any child whose process group ID matches I<id>."
13482 msgstr "プロセスグループID が I<id> と一致する子プロセスを待つ。"
13483
13484 #. type: IP
13485 #: build/C/man2/wait.2:258
13486 #, no-wrap
13487 msgid "I<idtype> == B<P_ALL>"
13488 msgstr "I<idtype> == B<P_ALL>"
13489
13490 #. type: Plain text
13491 #: build/C/man2/wait.2:262
13492 msgid "Wait for any child; I<id> is ignored."
13493 msgstr "子プロセス全部を対象に待つ。 I<id> は無視される。"
13494
13495 #. type: Plain text
13496 #: build/C/man2/wait.2:266
13497 msgid ""
13498 "The child state changes to wait for are specified by ORing one or more of "
13499 "the following flags in I<options>:"
13500 msgstr ""
13501 "子プロセスのどの状態変化を待つかは以下のフラグで指定する (I<options> には 1個"
13502 "以上のフラグの論理和をとって指定する):"
13503
13504 #. type: TP
13505 #: build/C/man2/wait.2:266
13506 #, no-wrap
13507 msgid "B<WEXITED>"
13508 msgstr "B<WEXITED>"
13509
13510 #. type: Plain text
13511 #: build/C/man2/wait.2:269
13512 msgid "Wait for children that have terminated."
13513 msgstr "子プロセスの終了を待つ。"
13514
13515 #. type: TP
13516 #: build/C/man2/wait.2:269
13517 #, no-wrap
13518 msgid "B<WSTOPPED>"
13519 msgstr "B<WSTOPPED>"
13520
13521 #. type: Plain text
13522 #: build/C/man2/wait.2:272
13523 msgid "Wait for children that have been stopped by delivery of a signal."
13524 msgstr "子プロセスがシグナルの配送により停止するのを待つ。"
13525
13526 #. type: TP
13527 #: build/C/man2/wait.2:272
13528 #, no-wrap
13529 msgid "B<WCONTINUED>"
13530 msgstr "B<WCONTINUED>"
13531
13532 #. type: Plain text
13533 #: build/C/man2/wait.2:277
13534 msgid ""
13535 "Wait for (previously stopped) children that have been resumed by delivery of "
13536 "B<SIGCONT>."
13537 msgstr "(停止していた) 子プロセスが B<SIGCONT> が配送されて再開するのを待つ。"
13538
13539 #. type: Plain text
13540 #: build/C/man2/wait.2:280
13541 msgid "The following flags may additionally be ORed in I<options>:"
13542 msgstr "さらに以下のフラグを論理和の形で I<options> に指定できる:"
13543
13544 #. type: Plain text
13545 #: build/C/man2/wait.2:284
13546 msgid "As for B<waitpid>()."
13547 msgstr "B<waitpid>()  と同様。"
13548
13549 #. type: TP
13550 #: build/C/man2/wait.2:284
13551 #, no-wrap
13552 msgid "B<WNOWAIT>"
13553 msgstr "B<WNOWAIT>"
13554
13555 #. type: Plain text
13556 #: build/C/man2/wait.2:288
13557 msgid ""
13558 "Leave the child in a waitable state; a later wait call can be used to again "
13559 "retrieve the child status information."
13560 msgstr ""
13561 "waitable 状態のプロセスをそのままにする。この後で wait コールを 使って、同じ"
13562 "子プロセスの状態情報をもう一度取得することができる。"
13563
13564 #. type: Plain text
13565 #: build/C/man2/wait.2:295
13566 msgid ""
13567 "Upon successful return, B<waitid>()  fills in the following fields of the "
13568 "I<siginfo_t> structure pointed to by I<infop>:"
13569 msgstr ""
13570 "成功した場合には、 B<waitid>()  は I<infop> が指す I<siginfo_t> 構造体の以下"
13571 "のフィールドを設定する:"
13572
13573 #. type: Plain text
13574 #: build/C/man2/wait.2:298
13575 msgid "The process ID of the child."
13576 msgstr "子プロセスのプロセスID。"
13577
13578 #. type: Plain text
13579 #: build/C/man2/wait.2:302
13580 msgid ""
13581 "The real user ID of the child.  (This field is not set on most other "
13582 "implementations.)"
13583 msgstr ""
13584 "子プロセスの実ユーザID (このフィールドは他のほとんどの実装では設定されない)。"
13585
13586 #. type: Plain text
13587 #: build/C/man2/wait.2:306
13588 msgid "Always set to B<SIGCHLD>."
13589 msgstr "常に B<SIGCHLD> が設定される。"
13590
13591 #. type: TP
13592 #: build/C/man2/wait.2:306
13593 #, no-wrap
13594 msgid "I<si_status>"
13595 msgstr "I<si_status>"
13596
13597 #. type: Plain text
13598 #: build/C/man2/wait.2:316
13599 msgid ""
13600 "Either the exit status of the child, as given to B<_exit>(2)  (or B<exit>"
13601 "(3)), or the signal that caused the child to terminate, stop, or continue.  "
13602 "The I<si_code> field can be used to determine how to interpret this field."
13603 msgstr ""
13604 "B<_exit>(2)  (か B<exit>(3))  に指定された子プロセスの終了ステータス、もしく"
13605 "は 子プロセスの終了、停止、再開の原因となったシグナルが設定される。 この"
13606 "フィールドをどう解釈するかは、 I<si_code> フィールドを参照して決めることがで"
13607 "きる。"
13608
13609 #. type: Plain text
13610 #: build/C/man2/wait.2:333
13611 msgid ""
13612 "Set to one of: B<CLD_EXITED> (child called B<_exit>(2)); B<CLD_KILLED> "
13613 "(child killed by signal); B<CLD_DUMPED> (child killed by signal, and dumped "
13614 "core); B<CLD_STOPPED> (child stopped by signal); B<CLD_TRAPPED> (traced "
13615 "child has trapped); or B<CLD_CONTINUED> (child continued by B<SIGCONT>)."
13616 msgstr ""
13617 "以下のいずれかが設定される: B<CLD_EXITED> (子プロセスが B<_exit>(2)  を呼び出"
13618 "した); B<CLD_KILLED> (シグナルにより子プロセスが kill された); B<CLD_DUMPED> "
13619 "(シグナルにより子プロセスが kill され、コア・ダンプが行われた); "
13620 "B<CLD_STOPPED> (シグナルにより子プロセスが停止した); B<CLD_TRAPPED> (トレース"
13621 "されていた子プロセスがトラップを受信した); B<CLD_CONTINUED> (B<SIGCONT> によ"
13622 "り子プロセスが再開された)。"
13623
13624 #.  POSIX.1-2001 leaves this possibility unspecified; most
13625 #.  implementations (including Linux) zero out the structure
13626 #.  in this case, but at least one implementation (AIX 5.1)
13627 #.  does not -- MTK Nov 04
13628 #. type: Plain text
13629 #: build/C/man2/wait.2:355
13630 msgid ""
13631 "If B<WNOHANG> was specified in I<options> and there were no children in a "
13632 "waitable state, then B<waitid>()  returns 0 immediately and the state of the "
13633 "I<siginfo_t> structure pointed to by I<infop> is unspecified.  To "
13634 "distinguish this case from that where a child was in a waitable state, zero "
13635 "out the I<si_pid> field before the call and check for a nonzero value in "
13636 "this field after the call returns."
13637 msgstr ""
13638 "B<WNOHANG> が I<options> に指定されていて、 waitable 状態の子プロセスがなかっ"
13639 "た場合には、 B<waitid>()  はすぐに 0 を返す。このとき、 I<infop> が指す "
13640 "I<siginfo_t> 構造体の内容は不定である。 この場合を waitable 状態の子プロセス"
13641 "があった場合と区別するには、 B<waitid>()  を呼び出す前に I<si_pid> を 0 にし"
13642 "ておき、コールが復帰した後でこのフィールドが 0 以外の値かどうか をチェックす"
13643 "ればよい。"
13644
13645 #. type: Plain text
13646 #: build/C/man2/wait.2:359
13647 msgid ""
13648 "B<wait>(): on success, returns the process ID of the terminated child; on "
13649 "error, -1 is returned."
13650 msgstr ""
13651 "B<wait>(): 成功すると、終了した子プロセスのプロセスID を返す。 エラーの場合 "
13652 "-1 を返す。"
13653
13654 #. type: Plain text
13655 #: build/C/man2/wait.2:368
13656 msgid ""
13657 "B<waitpid>(): on success, returns the process ID of the child whose state "
13658 "has changed; if B<WNOHANG> was specified and one or more child(ren) "
13659 "specified by I<pid> exist, but have not yet changed state, then 0 is "
13660 "returned.  On error, -1 is returned."
13661 msgstr ""
13662 "B<waitpid>(): 成功すると、状態が変化した子プロセスのプロセスID を返す。 "
13663 "B<WNOHANG> が指定されていて、 I<pid> で指示された子プロセスが一つ以上存在する"
13664 "が、どの子プロセスでも 状態変化が起こっていなかった場合は、 0 を返す。 エラー"
13665 "の場合 -1 を返す。"
13666
13667 #.  FIXME: As reported by Vegard Nossum, if infop is NULL, then waitid()
13668 #.  returns the PID of the child.  Either this is a bug, or it is intended
13669 #.  behavior that needs to be documented.  See my Jan 2009 LKML mail
13670 #.  "waitid() return value strangeness when infop is NULL".
13671 #. type: Plain text
13672 #: build/C/man2/wait.2:384
13673 msgid ""
13674 "B<waitid>(): returns 0 on success or if B<WNOHANG> was specified and no child"
13675 "(ren) specified by I<id> has yet changed state; on error, -1 is returned.  "
13676 "Each of these calls sets I<errno> to an appropriate value in the case of an "
13677 "error."
13678 msgstr ""
13679 "B<waitid>(): 成功すると 0 を返す。 B<WNOHANG> が指定されていて、 I<pid> で指"
13680 "示された子プロセスで状態変化が起こっていなかった場合にも 0 を返す。 エラーの"
13681 "場合 -1 を返す。 エラーの場合、これらのシステムコールはいずれも I<errno> に適"
13682 "切な値を設定する。"
13683
13684 #. type: TP
13685 #: build/C/man2/wait.2:385 build/C/man2/wait.2:390
13686 #, no-wrap
13687 msgid "B<ECHILD>"
13688 msgstr "B<ECHILD>"
13689
13690 #. type: Plain text
13691 #: build/C/man2/wait.2:390
13692 msgid ""
13693 "(for B<wait>())  The calling process does not have any unwaited-for children."
13694 msgstr ""
13695 "(B<wait>()  の場合)  呼び出し元プロセスには、wait を行っていない子プロセスは"
13696 "ない。"
13697
13698 #. type: Plain text
13699 #: build/C/man2/wait.2:410
13700 msgid ""
13701 "(for B<waitpid>()  or B<waitid>())  The process specified by I<pid> "
13702 "(B<waitpid>())  or I<idtype> and I<id> (B<waitid>())  does not exist or is "
13703 "not a child of the calling process.  (This can happen for one's own child if "
13704 "the action for B<SIGCHLD> is set to B<SIG_IGN>.  See also the I<Linux Notes> "
13705 "section about threads.)"
13706 msgstr ""
13707 "(B<waitpid>()  か B<waitid>()  の場合)  I<pid> (B<waitpid>())  か I<idtype> "
13708 "と I<id> (B<waitid>())  で指定したプロセスが存在しないか、呼び出し元プロセス"
13709 "の子プロセスでない (B<SIGCHLD> の動作に B<SIG_IGN> を設定した場合には、自分自"
13710 "身の子プロセスでも起こりうる。 スレッドに関しては「Linux での注意」の節も参照"
13711 "すること)。"
13712
13713 #. type: Plain text
13714 #: build/C/man2/wait.2:417
13715 msgid ""
13716 "B<WNOHANG> was not set and an unblocked signal or a B<SIGCHLD> was caught; "
13717 "see B<signal>(7)."
13718 msgstr ""
13719 "B<WNOHANG> が設定されておらず、禁止 (block) されていないシグナルや "
13720 "B<SIGCHLD> を受信した。 B<signal>(7)  参照。"
13721
13722 #. type: Plain text
13723 #: build/C/man2/wait.2:422
13724 msgid "The I<options> argument was invalid."
13725 msgstr "I<options> 引き数が不正である。"
13726
13727 #. type: Plain text
13728 #: build/C/man2/wait.2:437
13729 msgid ""
13730 "A child that terminates, but has not been waited for becomes a \"zombie\".  "
13731 "The kernel maintains a minimal set of information about the zombie process "
13732 "(PID, termination status, resource usage information)  in order to allow the "
13733 "parent to later perform a wait to obtain information about the child.  As "
13734 "long as a zombie is not removed from the system via a wait, it will consume "
13735 "a slot in the kernel process table, and if this table fills, it will not be "
13736 "possible to create further processes.  If a parent process terminates, then "
13737 "its \"zombie\" children (if any)  are adopted by B<init>(8), which "
13738 "automatically performs a wait to remove the zombies."
13739 msgstr ""
13740 "終了したが、wait されていない子プロセスは「ゾンビ」になる。 後で親プロセスが "
13741 "wait を実行して子プロセスについての情報を取得できるように、 カーネルはゾンビ"
13742 "プロセスについて最小限の情報 (PID、終了ステータス、 リソース使用状況) を保持"
13743 "する。 ゾンビプロセスは、 wait によってシステムから削除されない限り、 カーネ"
13744 "ルのプロセステーブルの 1 エントリを消費する。このプロセステーブルが 一杯にな"
13745 "ると、新たにプロセスを作ることができなくなる。 親プロセスが終了すると、その親"
13746 "プロセスの「ゾンビ」の 子プロセスは (もしあれば)  B<init>(8)  の養子となる。 "
13747 "B<init>(8)  は wait を自動的に実行し、ゾンビを削除する。"
13748
13749 #. type: Plain text
13750 #: build/C/man2/wait.2:478
13751 msgid ""
13752 "POSIX.1-2001 specifies that if the disposition of B<SIGCHLD> is set to "
13753 "B<SIG_IGN> or the B<SA_NOCLDWAIT> flag is set for B<SIGCHLD> (see "
13754 "B<sigaction>(2)), then children that terminate do not become zombies and a "
13755 "call to B<wait>()  or B<waitpid>()  will block until all children have "
13756 "terminated, and then fail with I<errno> set to B<ECHILD>.  (The original "
13757 "POSIX standard left the behavior of setting B<SIGCHLD> to B<SIG_IGN> "
13758 "unspecified.  Note that even though the default disposition of B<SIGCHLD> is "
13759 "\"ignore\", explicitly setting the disposition to B<SIG_IGN> results in "
13760 "different treatment of zombie process children.)  Linux 2.6 conforms to this "
13761 "specification.  However, Linux 2.4 (and earlier) does not: if a B<wait>()  "
13762 "or B<waitpid>()  call is made while B<SIGCHLD> is being ignored, the call "
13763 "behaves just as though B<SIGCHLD> were not being ignored, that is, the call "
13764 "blocks until the next child terminates and then returns the process ID and "
13765 "status of that child."
13766 msgstr ""
13767 "POSIX.1-2001 では以下のように規定されている。 B<SIGCHLD> の動作が B<SIG_IGN> "
13768 "に設定されたか、 B<SIGCHLD> に対して B<SA_NOCLDWAIT> フラグが設定された場合 "
13769 "(B<sigaction>(2)  参照)、終了した子プロセスはゾンビにはならず、 B<wait>()  "
13770 "や B<waitpid>()  の呼び出しは全ての子プロセスが終了するまで停止し、 子プロセ"
13771 "スが全部終了した後 I<errno> に B<ECHILD> を設定して失敗する。 (もともとの "
13772 "POSIX 標準は B<SIGCHLD> に B<SIG_IGN> を設定した場合の振る舞いを未規定のまま"
13773 "にしている。 B<SIGCHLD> のデフォルトの動作が「無視」であるにもかかわらず、 "
13774 "B<SIGCHLD> の動作として B<SIG_IGN> を明示的に設定した場合にはゾンビプロセスの"
13775 "子プロセスの扱いが 異なる点に注意すること。)  Linux 2.6 はこの仕様に準拠して"
13776 "いる。 しかし、Linux 2.4 (とそれ以前のバージョン) はそうではない: B<SIGCHLD> "
13777 "が無視される状態で B<wait>()  または B<waitpid>()  が呼び出された場合、 "
13778 "B<SIGCHLD> が無視されていないかのように振る舞う。 つまり、呼び出しによって次"
13779 "の子プロセスの終了までブロックされ、 終了した子プロセスの PID と状態が返され"
13780 "る。"
13781
13782 #. type: Plain text
13783 #: build/C/man2/wait.2:494
13784 msgid ""
13785 "In the Linux kernel, a kernel-scheduled thread is not a distinct construct "
13786 "from a process.  Instead, a thread is simply a process that is created using "
13787 "the Linux-unique B<clone>(2)  system call; other routines such as the "
13788 "portable B<pthread_create>(3)  call are implemented using B<clone>(2).  "
13789 "Before Linux 2.4, a thread was just a special case of a process, and as a "
13790 "consequence one thread could not wait on the children of another thread, "
13791 "even when the latter belongs to the same thread group.  However, POSIX "
13792 "prescribes such functionality, and since Linux 2.4 a thread can, and by "
13793 "default will, wait on children of other threads in the same thread group."
13794 msgstr ""
13795 "Linux カーネルでは、カーネルによってスケジュールされるスレッドは プロセスと明"
13796 "確に区別できる構成要素ではない。スレッドは Linux 固有の B<clone>(2)  システム"
13797 "コールを使用して生成されるプロセスに過ぎない。 移植性のある B<pthread_create>"
13798 "(3)  コールのような他のルーチンは B<clone>(2)  を使用して実装されている; これ"
13799 "らでは B<waitid>()  を使うことはできない。 Linux 2.4 より前では、スレッドは単"
13800 "に特殊なプロセスであったので、 例え同じスレッドグループであっても、 あるス"
13801 "レッドが別のスレッドの子プロセスが終了するのを待つことは出来なかった。 しか"
13802 "し、POSIX ではこのような機能を規定しており、 Linux 2.4 以降では、あるスレッド"
13803 "が同じスレッドグループの他のスレッドの 子プロセスが終了するのを待つことができ"
13804 "るようになった。 そして将来はこれがデフォルトの動作になるであろう。"
13805
13806 #. type: Plain text
13807 #: build/C/man2/wait.2:501
13808 msgid ""
13809 "The following Linux-specific I<options> are for use with children created "
13810 "using B<clone>(2); they cannot be used with B<waitid>():"
13811 msgstr ""
13812 "B<clone>(2)  を用いて作られた子プロセスには、以下の Linux 固有の I<options> "
13813 "が使用できる。"
13814
13815 #. type: TP
13816 #: build/C/man2/wait.2:501
13817 #, no-wrap
13818 msgid "B<__WCLONE>"
13819 msgstr "B<__WCLONE>"
13820
13821 #.  since 0.99pl10
13822 #. type: Plain text
13823 #: build/C/man2/wait.2:512
13824 msgid ""
13825 "Wait for \"clone\" children only.  If omitted, then wait for \"non-clone\" "
13826 "children only.  (A \"clone\" child is one which delivers no signal, or a "
13827 "signal other than B<SIGCHLD> to its parent upon termination.)  This option "
13828 "is ignored if B<__WALL> is also specified."
13829 msgstr ""
13830 "\"clone\" な子プロセスだけを待つ。 指定されなかった場合は非 \"clone\" な子プ"
13831 "ロセスだけを待つ (\"clone\" な子プロセスは、終了時に親プロセスへ全くシグナル"
13832 "を送らないか、 B<SIGCHLD> 以外のシグナルを送る)。 このオプションは B<__WALL> "
13833 "も指定された場合は無視される。"
13834
13835 #. type: TP
13836 #: build/C/man2/wait.2:512
13837 #, no-wrap
13838 msgid "B<__WALL> (since Linux 2.4)"
13839 msgstr "B<__WALL> (Linux 2.4 以降)"
13840
13841 #.  since patch-2.3.48
13842 #. type: Plain text
13843 #: build/C/man2/wait.2:517
13844 msgid "Wait for all children, regardless of type (\"clone\" or \"non-clone\")."
13845 msgstr "\"clone\" であるかないかに関わらず、 全ての子プロセスを待つ。"
13846
13847 #. type: TP
13848 #: build/C/man2/wait.2:517
13849 #, no-wrap
13850 msgid "B<__WNOTHREAD> (since Linux 2.4)"
13851 msgstr "B<__WNOTHREAD> (Linux 2.4 以降)"
13852
13853 #.  since patch-2.4.0-test8
13854 #. type: Plain text
13855 #: build/C/man2/wait.2:523
13856 msgid ""
13857 "Do not wait for children of other threads in the same thread group.  This "
13858 "was the default before Linux 2.4."
13859 msgstr ""
13860 "同じスレッドグループの他のスレッドの子プロセスは待たない。 Linux 2.4 より前で"
13861 "はデフォルトであった。"
13862
13863 #. type: Plain text
13864 #: build/C/man2/wait.2:535
13865 msgid ""
13866 "The raw B<waitid>()  system call takes a fith argument, of type I<struct "
13867 "rusage\\ *>.  If this argument is non-NULL, then it is used to return "
13868 "resource usage information about the child, in the same manner as B<wait4>"
13869 "(2).  See B<getrusage>(2)  for details."
13870 msgstr ""
13871 "生の B<waitid>() システムコールは I<struct rusage\\ *> 型の第 5 引数を取る。 "
13872 "この引数が NULL 以外の場合、 この引数が子プロセスのリソース使用状況を返すのに"
13873 "使用される。 これは B<wait4>(2) と同じ方法である。 詳細は B<getrusage>(2) を"
13874 "参照。"
13875
13876 #. type: Plain text
13877 #: build/C/man2/wait.2:550
13878 msgid ""
13879 "According to POSIX.1-2008, an application calling B<waitid>()  must ensure "
13880 "that I<infop> points to a I<siginfo_t> structure (i.e., that it is a non-"
13881 "null pointer).  On Linux, if I<infop> is NULL, B<waitid>()  succeeds, and "
13882 "returns the process ID of the waited-for child.  Applications should avoid "
13883 "relying on this inconsistent, nonstandard, and unnecessary feature."
13884 msgstr ""
13885 "POSIX.1-2008 によると、 B<waitid>() を呼び出すアプリケーションは、 I<infop> "
13886 "が I<siginfo_t> 構造体を指していること (つまり I<infop> が NULL でないポイン"
13887 "タであること) を保証しなければならない。 Linux では、 I<infop> が NULL の場"
13888 "合、 B<waitid>() は成功し、wait している子プロセスのプロセス ID を返す。 アプ"
13889 "リケーションは、この食い違った、非標準で、不必要な機能に依存しないようにすべ"
13890 "きである。"
13891
13892 #.  fork.2 refers to this example program.
13893 #. type: Plain text
13894 #: build/C/man2/wait.2:567
13895 msgid ""
13896 "The following program demonstrates the use of B<fork>(2)  and B<waitpid>().  "
13897 "The program creates a child process.  If no command-line argument is "
13898 "supplied to the program, then the child suspends its execution using B<pause>"
13899 "(2), to allow the user to send signals to the child.  Otherwise, if a "
13900 "command-line argument is supplied, then the child exits immediately, using "
13901 "the integer supplied on the command line as the exit status.  The parent "
13902 "process executes a loop that monitors the child using B<waitpid>(), and uses "
13903 "the W*() macros described above to analyze the wait status value."
13904 msgstr ""
13905 "以下のプログラムは、 B<fork>(2)  と B<waitpid>()  の使用方法の例を示してい"
13906 "る。 このプログラムでは子プロセスを生成する。 コマンドライン引き数が指定され"
13907 "なかったときは、 子プロセスは B<pause>(2)  を使ってその実行を一時停止し、ユー"
13908 "ザがその子プロセスに シグナルを送信できるようにする。 コマンドライン引き数が"
13909 "指定された場合は、 子プロセスは直ちに終了し、 コマンドラインで指定された整数"
13910 "を終了ステータスとして使用する。 親プロセスは、 B<waitpid>()  を使って子プロ"
13911 "セスを監視し、 wait のステータス値を上記の W*() マクロを使って解析するという "
13912 "ループを実行する。"
13913
13914 #. type: Plain text
13915 #: build/C/man2/wait.2:583
13916 #, no-wrap
13917 msgid ""
13918 "$B< ./a.out &>\n"
13919 "Child PID is 32360\n"
13920 "[1] 32359\n"
13921 "$B< kill -STOP 32360>\n"
13922 "stopped by signal 19\n"
13923 "$B< kill -CONT 32360>\n"
13924 "continued\n"
13925 "$B< kill -TERM 32360>\n"
13926 "killed by signal 15\n"
13927 "[1]+  Done                    ./a.out\n"
13928 "$\n"
13929 msgstr ""
13930 "$B< ./a.out &>\n"
13931 "Child PID is 32360\n"
13932 "[1] 32359\n"
13933 "$B< kill -STOP 32360>\n"
13934 "stopped by signal 19\n"
13935 "$B< kill -CONT 32360>\n"
13936 "continued\n"
13937 "$B< kill -TERM 32360>\n"
13938 "killed by signal 15\n"
13939 "[1]+  Done                    ./a.out\n"
13940 "$\n"
13941
13942 #. type: Plain text
13943 #: build/C/man2/wait.2:592
13944 #, no-wrap
13945 msgid ""
13946 "#include E<lt>sys/wait.hE<gt>\n"
13947 "#include E<lt>stdlib.hE<gt>\n"
13948 "#include E<lt>unistd.hE<gt>\n"
13949 "#include E<lt>stdio.hE<gt>\n"
13950 msgstr ""
13951 "#include E<lt>sys/wait.hE<gt>\n"
13952 "#include E<lt>stdlib.hE<gt>\n"
13953 "#include E<lt>unistd.hE<gt>\n"
13954 "#include E<lt>stdio.hE<gt>\n"
13955
13956 #. type: Plain text
13957 #: build/C/man2/wait.2:598
13958 #, no-wrap
13959 msgid ""
13960 "int\n"
13961 "main(int argc, char *argv[])\n"
13962 "{\n"
13963 "    pid_t cpid, w;\n"
13964 "    int status;\n"
13965 msgstr ""
13966 "int\n"
13967 "main(int argc, char *argv[])\n"
13968 "{\n"
13969 "    pid_t cpid, w;\n"
13970 "    int status;\n"
13971
13972 #. type: Plain text
13973 #: build/C/man2/wait.2:604
13974 #, no-wrap
13975 msgid ""
13976 "    cpid = fork();\n"
13977 "    if (cpid == -1) {\n"
13978 "        perror(\"fork\");\n"
13979 "        exit(EXIT_FAILURE);\n"
13980 "    }\n"
13981 msgstr ""
13982 "    cpid = fork();\n"
13983 "    if (cpid == -1) {\n"
13984 "        perror(\"fork\");\n"
13985 "        exit(EXIT_FAILURE);\n"
13986 "    }\n"
13987
13988 #. type: Plain text
13989 #: build/C/man2/wait.2:610
13990 #, no-wrap
13991 msgid ""
13992 "    if (cpid == 0) {            /* Code executed by child */\n"
13993 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
13994 "        if (argc == 1)\n"
13995 "            pause();                    /* Wait for signals */\n"
13996 "        _exit(atoi(argv[1]));\n"
13997 msgstr ""
13998 "    if (cpid == 0) {            /* Code executed by child */\n"
13999 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
14000 "        if (argc == 1)\n"
14001 "            pause();                    /* Wait for signals */\n"
14002 "        _exit(atoi(argv[1]));\n"
14003
14004 #. type: Plain text
14005 #: build/C/man2/wait.2:618
14006 #, no-wrap
14007 msgid ""
14008 "    } else {                    /* Code executed by parent */\n"
14009 "        do {\n"
14010 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
14011 "            if (w == -1) {\n"
14012 "                perror(\"waitpid\");\n"
14013 "                exit(EXIT_FAILURE);\n"
14014 "            }\n"
14015 msgstr ""
14016 "    } else {                    /* Code executed by parent */\n"
14017 "        do {\n"
14018 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
14019 "            if (w == -1) {\n"
14020 "                perror(\"waitpid\");\n"
14021 "                exit(EXIT_FAILURE);\n"
14022 "            }\n"
14023
14024 #. type: Plain text
14025 #: build/C/man2/wait.2:632
14026 #, no-wrap
14027 msgid ""
14028 "            if (WIFEXITED(status)) {\n"
14029 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
14030 "            } else if (WIFSIGNALED(status)) {\n"
14031 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
14032 "            } else if (WIFSTOPPED(status)) {\n"
14033 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
14034 "            } else if (WIFCONTINUED(status)) {\n"
14035 "                printf(\"continued\\en\");\n"
14036 "            }\n"
14037 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
14038 "        exit(EXIT_SUCCESS);\n"
14039 "    }\n"
14040 "}\n"
14041 msgstr ""
14042 "            if (WIFEXITED(status)) {\n"
14043 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
14044 "            } else if (WIFSIGNALED(status)) {\n"
14045 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
14046 "            } else if (WIFSTOPPED(status)) {\n"
14047 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
14048 "            } else if (WIFCONTINUED(status)) {\n"
14049 "                printf(\"continued\\en\");\n"
14050 "            }\n"
14051 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
14052 "        exit(EXIT_SUCCESS);\n"
14053 "    }\n"
14054 "}\n"
14055
14056 #. type: Plain text
14057 #: build/C/man2/wait.2:645
14058 msgid ""
14059 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), B<sigaction>"
14060 "(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), B<credentials>(7), "
14061 "B<signal>(7)"
14062 msgstr ""
14063 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), B<sigaction>"
14064 "(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), B<credentials>(7), "
14065 "B<signal>(7)"
14066
14067 #. type: TH
14068 #: build/C/man2/wait4.2:33
14069 #, no-wrap
14070 msgid "WAIT4"
14071 msgstr "WAIT4"
14072
14073 #. type: TH
14074 #: build/C/man2/wait4.2:33
14075 #, no-wrap
14076 msgid "2012-09-23"
14077 msgstr "2012-09-23"
14078
14079 #. type: Plain text
14080 #: build/C/man2/wait4.2:36
14081 msgid "wait3, wait4 - wait for process to change state, BSD style"
14082 msgstr "wait3, wait4 - BSD スタイルでプロセスの状態変化を待つ"
14083
14084 #. type: Plain text
14085 #: build/C/man2/wait4.2:42
14086 #, no-wrap
14087 msgid ""
14088 "B<#include E<lt>sys/types.hE<gt>>\n"
14089 "B<#include E<lt>sys/time.hE<gt>>\n"
14090 "B<#include E<lt>sys/resource.hE<gt>>\n"
14091 "B<#include E<lt>sys/wait.hE<gt>>\n"
14092 msgstr ""
14093 "B<#include E<lt>sys/types.hE<gt>>\n"
14094 "B<#include E<lt>sys/time.hE<gt>>\n"
14095 "B<#include E<lt>sys/resource.hE<gt>>\n"
14096 "B<#include E<lt>sys/wait.hE<gt>>\n"
14097
14098 #. type: Plain text
14099 #: build/C/man2/wait4.2:45
14100 #, no-wrap
14101 msgid ""
14102 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14103 "B<            struct rusage *>I<rusage>B<);>\n"
14104 msgstr ""
14105 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14106 "B<            struct rusage *>I<rusage>B<);>\n"
14107
14108 #. type: Plain text
14109 #: build/C/man2/wait4.2:48
14110 #, no-wrap
14111 msgid ""
14112 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14113 "B<            struct rusage *>I<rusage>B<);>\n"
14114 msgstr ""
14115 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14116 "B<            struct rusage *>I<rusage>B<);>\n"
14117
14118 #. type: Plain text
14119 #: build/C/man2/wait4.2:57
14120 msgid "B<wait3>():"
14121 msgstr "B<wait3>():"
14122
14123 #. type: Plain text
14124 #: build/C/man2/wait4.2:63
14125 msgid "B<wait4>():"
14126 msgstr "B<wait4>():"
14127
14128 #. type: Plain text
14129 #: build/C/man2/wait4.2:65
14130 msgid "_BSD_SOURCE"
14131 msgstr "_BSD_SOURCE"
14132
14133 #. type: Plain text
14134 #: build/C/man2/wait4.2:73
14135 msgid ""
14136 "These functions are obsolete; use B<waitpid>(2)  or B<waitid>(2)  in new "
14137 "programs."
14138 msgstr ""
14139 "これらの関数は廃止予定である。 新しいプログラムでは B<waitpid>(2) や "
14140 "B<waitid>(2) を使用すること。"
14141
14142 #. type: Plain text
14143 #: build/C/man2/wait4.2:83
14144 msgid ""
14145 "The B<wait3>()  and B<wait4>()  system calls are similar to B<waitpid>(2), "
14146 "but additionally return resource usage information about the child in the "
14147 "structure pointed to by I<rusage>."
14148 msgstr ""
14149 "システムコール B<wait3>()  と B<wait4>()  は B<waitpid>(2)  と同様の動作をす"
14150 "る。それに加え、子プロセスのリソース使用状況の情報を I<rusage> が指す構造体に"
14151 "入れて返す。"
14152
14153 #. type: Plain text
14154 #: build/C/man2/wait4.2:89
14155 msgid ""
14156 "Other than the use of the I<rusage> argument, the following B<wait3>()  call:"
14157 msgstr "I<rusage> を使用する点を除けば、次の B<wait3>()  の呼び出し"
14158
14159 #. type: Plain text
14160 #: build/C/man2/wait4.2:92
14161 #, no-wrap
14162 msgid "    wait3(status, options, rusage);\n"
14163 msgstr "    wait3(status, options, rusage);\n"
14164
14165 #. type: Plain text
14166 #: build/C/man2/wait4.2:95 build/C/man2/wait4.2:109
14167 msgid "is equivalent to:"
14168 msgstr "は以下と等価である。"
14169
14170 #. type: Plain text
14171 #: build/C/man2/wait4.2:98
14172 #, no-wrap
14173 msgid "    waitpid(-1, status, options);\n"
14174 msgstr "    waitpid(-1, status, options);\n"
14175
14176 #. type: Plain text
14177 #: build/C/man2/wait4.2:103
14178 msgid "Similarly, the following B<wait4>()  call:"
14179 msgstr "同様に、次の B<wait4>()  の呼び出し"
14180
14181 #. type: Plain text
14182 #: build/C/man2/wait4.2:106
14183 #, no-wrap
14184 msgid "    wait4(pid, status, options, rusage);\n"
14185 msgstr "    wait4(pid, status, options, rusage);\n"
14186
14187 #. type: Plain text
14188 #: build/C/man2/wait4.2:112
14189 #, no-wrap
14190 msgid "    waitpid(pid, status, options);\n"
14191 msgstr "    waitpid(pid, status, options);\n"
14192
14193 #. type: Plain text
14194 #: build/C/man2/wait4.2:122
14195 msgid ""
14196 "In other words, B<wait3>()  waits of any child, while B<wait4>()  can be "
14197 "used to select a specific child, or children, on which to wait.  See B<wait>"
14198 "(2)  for further details."
14199 msgstr ""
14200 "言い換えると、 B<wait3>()  は全ての子プロセスを対象に待つが、 B<wait4>()  で"
14201 "は特定の子プロセス (複数可) を選んで待つことができる。"
14202
14203 #. type: Plain text
14204 #: build/C/man2/wait4.2:132
14205 msgid ""
14206 "If I<rusage> is not NULL, the I<struct rusage> to which it points will be "
14207 "filled with accounting information about the child.  See B<getrusage>(2)  "
14208 "for details."
14209 msgstr ""
14210 "I<rusage> が NULL でない場合、 I<rusage> が指す I<rusage 構造体> には子プロセ"
14211 "スのアカウント情報が格納される。 詳しくは B<getrusage>(2)  を参照のこと。"
14212
14213 #. type: Plain text
14214 #: build/C/man2/wait4.2:135 build/C/man2/wait4.2:138
14215 msgid "As for B<waitpid>(2)."
14216 msgstr "B<waitpid>(2)  と同様。"
14217
14218 #. type: Plain text
14219 #: build/C/man2/wait4.2:140
14220 msgid "4.3BSD."
14221 msgstr "4.3BSD."
14222
14223 #. type: Plain text
14224 #: build/C/man2/wait4.2:147
14225 msgid ""
14226 "SUSv1 included a specification of B<wait3>(); SUSv2 included B<wait3>(), but "
14227 "marked it LEGACY; SUSv3 removed it."
14228 msgstr ""
14229 "SUSv1 には B<wait3>() の規定があった。 SUSv2 には B<wait3>() が含まれていた"
14230 "が、「過去の名残 (LEGACY)」となっていた。 SUSv3 では B<wait3>() は削除され"
14231 "た。"
14232
14233 #. type: Plain text
14234 #: build/C/man2/wait4.2:159
14235 msgid ""
14236 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
14237 "portability.  (Indeed, I<E<lt>sys/resource.hE<gt>> defines the I<rusage> "
14238 "structure with fields of type I<struct timeval> defined in I<E<lt>sys/time."
14239 "hE<gt>>.)"
14240 msgstr ""
14241 "現在では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、インクルード"
14242 "しておくと 移植性を高めることができる (実際には I<E<lt>sys/resource.hE<gt>> "
14243 "で I<rusage> 構造体が定義されているが、そのフィールドで使用されている "
14244 "I<struct timeval> 型は I<E<lt>sys/time.hE<gt>> で定義されている)。"
14245
14246 #. type: Plain text
14247 #: build/C/man2/wait4.2:165
14248 msgid ""
14249 "On Linux, B<wait3>()  is a library function implemented on top of the "
14250 "B<wait4>()  system call."
14251 msgstr ""
14252 "Linux では、 B<wait3>()  はライブラリ関数であり、 B<wait4>()  システムコール"
14253 "を使って実装されている。"
14254
14255 #. type: Plain text
14256 #: build/C/man2/wait4.2:172
14257 msgid ""
14258 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14259 "B<signal>(7)"
14260 msgstr ""
14261 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14262 "B<signal>(7)"