OSDN Git Service

LDP: Update POT and ja.po to LDP v3.67
[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-06-03 01:29+0900\n"
10 "PO-Revision-Date: 2014-04-30 00:56+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:802
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:822
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/sigsetops.3:131 build/C/man3/sigvec.3:221
253 #: build/C/man3/sigwait.3:80 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/sigsetops.3:132 build/C/man3/sigvec.3:222
262 #: build/C/man3/sigwait.3:81 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:1068 build/C/man3/profil.3:70
277 #: build/C/man3/psignal.3:99 build/C/man3/raise.3:69
278 #: build/C/man2/restart_syscall.2:96 build/C/man2/rt_sigqueueinfo.2:176
279 #: build/C/man2/s390_runtime_instr.2:81 build/C/man2/sgetmask.2:66
280 #: build/C/man2/sigaction.2:677 build/C/man2/sigaltstack.2:158
281 #: build/C/man7/sigevent.7:130 build/C/man3/siginterrupt.3:87
282 #: build/C/man2/signal.2:110 build/C/man7/signal.7:838
283 #: build/C/man2/signalfd.2:307 build/C/man3/sigpause.3:61
284 #: build/C/man2/sigpending.2:64 build/C/man2/sigprocmask.2:112
285 #: build/C/man3/sigqueue.3:119 build/C/man2/sigreturn.2:60
286 #: build/C/man3/sigset.3:173 build/C/man3/sigsetops.3:144
287 #: build/C/man2/sigsuspend.2:84 build/C/man3/sigvec.3:234
288 #: build/C/man3/sigwait.3:85 build/C/man2/sigwaitinfo.2:133
289 #: build/C/man3/sysv_signal.3:65 build/C/man2/timer_create.2:193
290 #: build/C/man2/timer_delete.2:67 build/C/man2/timer_getoverrun.2:97
291 #: build/C/man2/timer_settime.2:207 build/C/man2/timerfd_create.2:371
292 #: build/C/man2/tkill.2:116 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:160
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:146 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:1082 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:234
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:185
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:634 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:1085 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:241
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:190
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:646 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:112 build/C/man2/eventfd.2:436
411 #: build/C/man2/getitimer.2:254 build/C/man3/gsignal.3:115
412 #: build/C/man2/kill.2:189 build/C/man2/killpg.2:148 build/C/man2/pause.2:72
413 #: build/C/man2/prctl.2:1093 build/C/man3/profil.3:94
414 #: build/C/man3/psignal.3:126 build/C/man3/raise.3:97
415 #: build/C/man2/restart_syscall.2:139 build/C/man2/rt_sigqueueinfo.2:204
416 #: build/C/man2/s390_runtime_instr.2:99 build/C/man2/sgetmask.2:93
417 #: build/C/man2/sigaction.2:821 build/C/man2/sigaltstack.2:249
418 #: build/C/man7/sigevent.7:150 build/C/man3/siginterrupt.3:106
419 #: build/C/man2/signal.2:305 build/C/man7/signal.7:892
420 #: build/C/man2/signalfd.2:454 build/C/man3/sigpause.3:127
421 #: build/C/man2/sigpending.2:107 build/C/man2/sigprocmask.2:163
422 #: build/C/man3/sigqueue.3:170 build/C/man2/sigreturn.2:88
423 #: build/C/man3/sigset.3:284 build/C/man3/sigsetops.3:198
424 #: build/C/man2/sigsuspend.2:126 build/C/man3/sigvec.3:283
425 #: build/C/man3/sigwait.3:110 build/C/man2/sigwaitinfo.2:207
426 #: build/C/man3/sysv_signal.3:105 build/C/man2/timer_create.2:430
427 #: build/C/man2/timer_delete.2:83 build/C/man2/timer_getoverrun.2:149
428 #: build/C/man2/timer_settime.2:224 build/C/man2/timerfd_create.2:561
429 #: build/C/man2/tkill.2:144 build/C/man2/wait.2:654 build/C/man2/wait4.2:180
430 #, fuzzy
431 #| msgid ""
432 #| "This page is part of release 3.65 of the Linux I<man-pages> project.  A "
433 #| "description of the project, and information about reporting bugs, can be "
434 #| "found at \\%http://www.kernel.org/doc/man-pages/."
435 msgid ""
436 "This page is part of release 3.67 of the Linux I<man-pages> project.  A "
437 "description of the project, information about reporting bugs, and the latest "
438 "version of this page, can be found at \\%http://www.kernel.org/doc/man-"
439 "pages/."
440 msgstr ""
441 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.65 の一部であ"
442 "る。 プロジェクトの説明とバグ報告に関する情報は \\%http://www.kernel.org/doc/"
443 "man-pages/ に書かれている。"
444
445 #. type: TH
446 #: build/C/man2/eventfd.2:22
447 #, no-wrap
448 msgid "EVENTFD"
449 msgstr "EVENTFD"
450
451 #. type: TH
452 #: build/C/man2/eventfd.2:22
453 #, no-wrap
454 msgid "2010-08-30"
455 msgstr "2010-08-30"
456
457 #. type: TH
458 #: build/C/man2/eventfd.2:22 build/C/man2/getitimer.2:12
459 #: build/C/man2/kill.2:44 build/C/man2/killpg.2:42 build/C/man2/pause.2:30
460 #: build/C/man2/prctl.2:52 build/C/man3/profil.3:28
461 #: build/C/man2/restart_syscall.2:33 build/C/man2/rt_sigqueueinfo.2:25
462 #: build/C/man2/sgetmask.2:26 build/C/man2/sigaction.2:47
463 #: build/C/man2/sigaltstack.2:27 build/C/man2/signal.2:36
464 #: build/C/man7/signal.7:46 build/C/man2/signalfd.2:20
465 #: build/C/man3/sigpause.3:25 build/C/man2/sigpending.2:29
466 #: build/C/man2/sigprocmask.2:29 build/C/man3/sigqueue.3:28
467 #: build/C/man2/sigreturn.2:29 build/C/man3/sigset.3:26
468 #: build/C/man3/sigsetops.3:31 build/C/man2/sigsuspend.2:29
469 #: build/C/man3/sigvec.3:26 build/C/man3/sigwait.3:26
470 #: build/C/man2/sigwaitinfo.2:25 build/C/man2/timer_create.2:31
471 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
472 #: build/C/man2/timer_settime.2:26 build/C/man2/timerfd_create.2:21
473 #: build/C/man2/tkill.2:29 build/C/man2/wait.2:49 build/C/man2/wait4.2:33
474 #, no-wrap
475 msgid "Linux"
476 msgstr "Linux"
477
478 #. type: Plain text
479 #: build/C/man2/eventfd.2:25
480 msgid "eventfd - create a file descriptor for event notification"
481 msgstr "eventfd - イベント通知用のファイルディスクリプタを生成する"
482
483 #. type: Plain text
484 #: build/C/man2/eventfd.2:27
485 msgid "B<#include E<lt>sys/eventfd.hE<gt>>"
486 msgstr "B<#include E<lt>sys/eventfd.hE<gt>>"
487
488 #. type: Plain text
489 #: build/C/man2/eventfd.2:29
490 msgid "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
491 msgstr "B<int eventfd(unsigned int >I<initval>B<, int >I<flags>B<);>"
492
493 #. type: Plain text
494 #: build/C/man2/eventfd.2:39
495 msgid ""
496 "B<eventfd>()  creates an \"eventfd object\" that can be used as an event "
497 "wait/notify mechanism by user-space applications, and by the kernel to "
498 "notify user-space applications of events.  The object contains an unsigned "
499 "64-bit integer (I<uint64_t>)  counter that is maintained by the kernel.  "
500 "This counter is initialized with the value specified in the argument "
501 "I<initval>."
502 msgstr ""
503 "B<eventfd>()  は \"eventfd オブジェクト\" を生成する。 eventfd オブジェクトは"
504 "ユーザ空間アプリケーションがイベント待ち受け/通知用の 仕組みとして使うことが"
505 "できる。また、カーネルがユーザ空間アプリケーションに イベントを通知するために"
506 "も使うことができる。 このオブジェクトには、unsigned の 64 ビット整数 "
507 "(I<uint64_t>)  型のカウンタが含まれており、このカウンタはカーネルにより管理さ"
508 "れる。 このカウンタは I<initval> 引き数で指定された値で初期化される。"
509
510 #. type: Plain text
511 #: build/C/man2/eventfd.2:44
512 msgid ""
513 "The following values may be bitwise ORed in I<flags> to change the behaviour "
514 "of B<eventfd>():"
515 msgstr ""
516 "以下の値のいくつかをビット単位の論理和 (OR) で指定することで、 B<eventfd>() "
517 "の振舞いを変更することができる。"
518
519 #. type: TP
520 #: build/C/man2/eventfd.2:44
521 #, no-wrap
522 msgid "B<EFD_CLOEXEC> (since Linux 2.6.27)"
523 msgstr "B<EFD_CLOEXEC> (Linux 2.6.27 以降)"
524
525 #. type: Plain text
526 #: build/C/man2/eventfd.2:54 build/C/man2/signalfd.2:95
527 #: build/C/man2/timerfd_create.2:103
528 msgid ""
529 "Set the close-on-exec (B<FD_CLOEXEC>)  flag on the new file descriptor.  See "
530 "the description of the B<O_CLOEXEC> flag in B<open>(2)  for reasons why this "
531 "may be useful."
532 msgstr ""
533 "新しいファイルディスクリプタに対して close-on-exec (B<FD_CLOEXEC>)  フラグを"
534 "セットする。 このフラグが役に立つ理由については、 B<open>(2)  の "
535 "B<O_CLOEXEC> フラグの説明を参照のこと。"
536
537 #. type: TP
538 #: build/C/man2/eventfd.2:54
539 #, no-wrap
540 msgid "B<EFD_NONBLOCK> (since Linux 2.6.27)"
541 msgstr "B<EFD_NONBLOCK> (Linux 2.6.27 以降)"
542
543 #. type: Plain text
544 #: build/C/man2/eventfd.2:62 build/C/man2/signalfd.2:85
545 #: build/C/man2/timerfd_create.2:93
546 msgid ""
547 "Set the B<O_NONBLOCK> file status flag on the new open file description.  "
548 "Using this flag saves extra calls to B<fcntl>(2)  to achieve the same result."
549 msgstr ""
550 "新しく生成されるオープンファイル記述 (open file description) の "
551 "B<O_NONBLOCK> ファイルステータスフラグをセットする。 このフラグを使うこと"
552 "で、 B<O_NONBLOCK> をセットするために B<fcntl>(2)  を追加で呼び出す必要がなく"
553 "なる。"
554
555 #. type: TP
556 #: build/C/man2/eventfd.2:62
557 #, no-wrap
558 msgid "B<EFD_SEMAPHORE> (since Linux 2.6.30)"
559 msgstr "B<EFD_SEMAPHORE> (Linux 2.6.30 以降)"
560
561 #. type: Plain text
562 #: build/C/man2/eventfd.2:66
563 msgid ""
564 "Provide semaphore-like semantics for reads from the new file descriptor.  "
565 "See below."
566 msgstr ""
567 "新しいファイルディスクリプタからの読み出しにおいて、セマフォ風の動作を行う。 "
568 "下記参照。"
569
570 #. type: Plain text
571 #: build/C/man2/eventfd.2:70 build/C/man2/signalfd.2:99
572 msgid ""
573 "In Linux up to version 2.6.26, the I<flags> argument is unused, and must be "
574 "specified as zero."
575 msgstr ""
576 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
577 "しなければならない。"
578
579 #. type: Plain text
580 #: build/C/man2/eventfd.2:76
581 msgid ""
582 "As its return value, B<eventfd>()  returns a new file descriptor that can be "
583 "used to refer to the eventfd object.  The following operations can be "
584 "performed on the file descriptor:"
585 msgstr ""
586 "B<eventfd>()  は eventfd オブジェクトを参照するのに使用できる新しいファイル"
587 "ディスクリプタ を返す。返されたファイルディスクリプタに対しては以下の操作を実"
588 "行できる。"
589
590 #. type: TP
591 #: build/C/man2/eventfd.2:76 build/C/man2/signalfd.2:102
592 #: build/C/man2/timerfd_create.2:211
593 #, no-wrap
594 msgid "B<read>(2)"
595 msgstr "B<read>(2)"
596
597 #. type: Plain text
598 #: build/C/man2/eventfd.2:86
599 msgid ""
600 "Each successful B<read>(2)  returns an 8-byte integer.  A B<read>(2)  will "
601 "fail with the error B<EINVAL> if the size of the supplied buffer is less "
602 "than 8 bytes."
603 msgstr ""
604 "B<read>(2) は成功すると、8 バイトの整数を返す。 渡されたバッファの大きさが 8 "
605 "バイト未満の場合、 B<read>(2)  はエラー B<EINVAL> で失敗する。"
606
607 #. type: Plain text
608 #: build/C/man2/eventfd.2:91
609 msgid ""
610 "The value returned by B<read>(2)  is in host byte order\\(emthat is, the "
611 "native byte order for integers on the host machine."
612 msgstr ""
613 "B<read>(2) が返す値は、ホストバイトオーダ、つまり、そのホストマシンにおける整"
614 "数の通常のバイトオーダである。"
615
616 #. type: Plain text
617 #: build/C/man2/eventfd.2:98
618 msgid ""
619 "The semantics of B<read>(2)  depend on whether the eventfd counter currently "
620 "has a nonzero value and whether the B<EFD_SEMAPHORE> flag was specified when "
621 "creating the eventfd file descriptor:"
622 msgstr ""
623 "B<read>(2) の動作は、 eventfd カウンタの現在の値が 0 以外であるかと、 "
624 "eventfd ファイルディスクリプタを作成する際に B<EFD_SEMAPHORE> フラグが指定さ"
625 "れたか、により変化する。"
626
627 #. type: IP
628 #: build/C/man2/eventfd.2:99 build/C/man2/eventfd.2:106
629 #: build/C/man2/eventfd.2:113 build/C/man2/eventfd.2:158
630 #: build/C/man2/eventfd.2:168 build/C/man2/eventfd.2:178
631 #: build/C/man2/prctl.2:865 build/C/man2/prctl.2:870 build/C/man2/prctl.2:875
632 #: build/C/man2/prctl.2:885 build/C/man3/psignal.3:105
633 #: build/C/man3/psignal.3:109 build/C/man2/sigaction.2:298
634 #: build/C/man2/sigaction.2:313 build/C/man2/sigaction.2:329
635 #: build/C/man2/sigaction.2:344 build/C/man2/sigaction.2:391
636 #: build/C/man2/sigaction.2:427 build/C/man2/signal.2:68
637 #: build/C/man2/signal.2:73 build/C/man2/signal.2:80 build/C/man2/signal.2:224
638 #: build/C/man2/signal.2:228 build/C/man2/signal.2:267
639 #: build/C/man7/signal.7:149 build/C/man7/signal.7:157
640 #: build/C/man7/signal.7:615 build/C/man7/signal.7:617
641 #: build/C/man7/signal.7:638 build/C/man7/signal.7:653
642 #: build/C/man7/signal.7:657 build/C/man7/signal.7:664
643 #: build/C/man7/signal.7:680 build/C/man7/signal.7:686
644 #: build/C/man7/signal.7:693 build/C/man7/signal.7:698
645 #: build/C/man7/signal.7:717 build/C/man7/signal.7:736
646 #: build/C/man7/signal.7:743 build/C/man7/signal.7:752
647 #: build/C/man7/signal.7:760 build/C/man7/signal.7:766
648 #: build/C/man7/signal.7:771 build/C/man7/signal.7:791
649 #: build/C/man7/signal.7:810 build/C/man7/signal.7:813
650 #: build/C/man7/signal.7:816 build/C/man7/signal.7:819
651 #: build/C/man7/signal.7:824 build/C/man7/signal.7:830
652 #: build/C/man7/signal.7:834 build/C/man3/sigwait.3:62
653 #: build/C/man3/sigwait.3:67 build/C/man2/timer_create.2:216
654 #: build/C/man2/timer_create.2:219 build/C/man2/timer_create.2:222
655 #: build/C/man2/timer_create.2:226 build/C/man2/timer_create.2:229
656 #: build/C/man2/timer_create.2:235 build/C/man2/timer_create.2:239
657 #, no-wrap
658 msgid "*"
659 msgstr "*"
660
661 #. type: Plain text
662 #: build/C/man2/eventfd.2:106
663 msgid ""
664 "If B<EFD_SEMAPHORE> was not specified and the eventfd counter has a nonzero "
665 "value, then a B<read>(2)  returns 8 bytes containing that value, and the "
666 "counter's value is reset to zero."
667 msgstr ""
668 "B<EFD_SEMAPHORE> が指定されておらず、eventfd カウンタが 0 以外の値の場合、 "
669 "B<read>(2) はカウンタ値を格納した 8 バイトの値を返し、 カウンタ値は 0 にリ"
670 "セットされる。"
671
672 #. type: Plain text
673 #: build/C/man2/eventfd.2:113
674 msgid ""
675 "If B<EFD_SEMAPHORE> was specified and the eventfd counter has a nonzero "
676 "value, then a B<read>(2)  returns 8 bytes containing the value 1, and the "
677 "counter's value is decremented by 1."
678 msgstr ""
679 "B<EFD_SEMAPHORE> が指定されていて eventfd カウンタが 0 以外の値の場合、 "
680 "B<read>(2) は値 1 の 8 バイト値を返し、カウンタ値は 1 減算される。"
681
682 #. type: Plain text
683 #: build/C/man2/eventfd.2:123
684 msgid ""
685 "If the eventfd counter is zero at the time of the call to B<read>(2), then "
686 "the call either blocks until the counter becomes nonzero (at which time, the "
687 "B<read>(2)  proceeds as described above)  or fails with the error B<EAGAIN> "
688 "if the file descriptor has been made nonblocking."
689 msgstr ""
690 "B<read>(2) を呼び出した時点で eventfd カウンタが 0 の場合、 B<read>(2) はカウ"
691 "ンタが 0 以外になるまで停止 (block) する (0 以外になった時点で B<read>(2) は"
692 "上記で述べた通り実行を再開する)、 もしくはファイルディスクリプタが非停止 "
693 "(nonblocking) に設定されている場合はエラー B<EAGAIN> で失敗する。"
694
695 #. type: TP
696 #: build/C/man2/eventfd.2:124
697 #, no-wrap
698 msgid "B<write>(2)"
699 msgstr "B<write>(2)"
700
701 #. type: Plain text
702 #: build/C/man2/eventfd.2:141
703 msgid ""
704 "A B<write>(2)  call adds the 8-byte integer value supplied in its buffer to "
705 "the counter.  The maximum value that may be stored in the counter is the "
706 "largest unsigned 64-bit value minus 1 (i.e., 0xfffffffffffffffe).  If the "
707 "addition would cause the counter's value to exceed the maximum, then the "
708 "B<write>(2)  either blocks until a B<read>(2)  is performed on the file "
709 "descriptor, or fails with the error B<EAGAIN> if the file descriptor has "
710 "been made nonblocking."
711 msgstr ""
712 "B<write>(2)  は、引き数のバッファで渡された 8 バイトの整数値をカウンタに加算"
713 "する。 カウンタに格納可能な最大値は unsigned の 64 ビット整数の最大値から 1 "
714 "を引いた値 (すなわち 0xfffffffffffffffe) である。 加算を行うとカウンタ値が最"
715 "大値を超過する場合には、 そのファイルディスクリプタに対して B<read>(2)  が実"
716 "行されるまで、 B<write>(2)  は停止 (block) する、 もしくはファイルディスクリ"
717 "プタが非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗す"
718 "る。"
719
720 #. type: Plain text
721 #: build/C/man2/eventfd.2:148
722 msgid ""
723 "A B<write>(2)  will fail with the error B<EINVAL> if the size of the "
724 "supplied buffer is less than 8 bytes, or if an attempt is made to write the "
725 "value 0xffffffffffffffff."
726 msgstr ""
727 "渡されたバッファの大きさが 8 バイト未満の場合、もしくは 値 "
728 "0xffffffffffffffff を書き込もうとした場合、 B<write>(2)  はエラー B<EINVAL> "
729 "で失敗する。"
730
731 #. type: TP
732 #: build/C/man2/eventfd.2:148 build/C/man2/signalfd.2:140
733 #: build/C/man2/timerfd_create.2:244
734 #, no-wrap
735 msgid "B<poll>(2), B<select>(2) (and similar)"
736 msgstr "B<poll>(2), B<select>(2) (と同様の操作)"
737
738 #. type: Plain text
739 #: build/C/man2/eventfd.2:157
740 msgid ""
741 "The returned file descriptor supports B<poll>(2)  (and analogously "
742 "B<epoll>(7))  and B<select>(2), as follows:"
743 msgstr ""
744 "返されたファイルディスクリプタは、 B<poll>(2)  (B<epoll>(7)  も同じ) や "
745 "B<select>(2)  をサポートしており、以下のような動作をする。"
746
747 #. type: Plain text
748 #: build/C/man2/eventfd.2:168
749 msgid ""
750 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
751 "B<poll>(2)  B<POLLIN> flag)  if the counter has a value greater than 0."
752 msgstr ""
753 "カウンタが 0 より大きい値の場合、 ファイルディスクリプタは読み出し可能となる "
754 "(B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
755
756 #. type: Plain text
757 #: build/C/man2/eventfd.2:178
758 msgid ""
759 "The file descriptor is writable (the B<select>(2)  I<writefds> argument; the "
760 "B<poll>(2)  B<POLLOUT> flag)  if it is possible to write a value of at least "
761 "\"1\" without blocking."
762 msgstr ""
763 "少なくとも値 \"1\" を、停止 (block) を伴わずに書き込める場合、 ファイルディス"
764 "クリプタは書き込み可能となる (B<select>(2)  の I<writefds> 引き数や "
765 "B<poll>(2)  の B<POLLOUT> フラグ)。"
766
767 #. type: Plain text
768 #: build/C/man2/eventfd.2:198
769 msgid ""
770 "If an overflow of the counter value was detected, then B<select>(2)  "
771 "indicates the file descriptor as being both readable and writable, and "
772 "B<poll>(2)  returns a B<POLLERR> event.  As noted above, B<write>(2)  can "
773 "never overflow the counter.  However an overflow can occur if 2^64 eventfd "
774 "\"signal posts\" were performed by the KAIO subsystem (theoretically "
775 "possible, but practically unlikely).  If an overflow has occurred, then "
776 "B<read>(2)  will return that maximum I<uint64_t> value (i.e., "
777 "0xffffffffffffffff)."
778 msgstr ""
779 "カウンタ値のオーバーフローが検出された場合、 B<select>(2)  はファイルディスク"
780 "リプタは読み出し可能と書き込み可能の両方を通知し、 B<poll>(2)  は B<POLLERR> "
781 "イベントを返す。 上述の通り、 B<write>(2)  でカウンタがオーバーフローすること"
782 "は決してない。 しかしながら、 KAIO サブシステムによって 2^64 回の eventfd "
783 "\"signal posts\" が 実行された場合にはオーバーフローが起こり得る (理論的には"
784 "あり得るが、実用的にはあり得ない)。 オーバーフローが発生した場合、 "
785 "B<read>(2)  は I<uint64_t> の最大値 (すなわち 0xffffffffffffffff) を返す。"
786
787 #. type: Plain text
788 #: build/C/man2/eventfd.2:205
789 msgid ""
790 "The eventfd file descriptor also supports the other file-descriptor "
791 "multiplexing APIs: B<pselect>(2)  and B<ppoll>(2)."
792 msgstr ""
793 "eventfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
794 "である B<pselect>(2) と B<ppoll>(2) もサポートしている。"
795
796 #. type: TP
797 #: build/C/man2/eventfd.2:205 build/C/man2/signalfd.2:160
798 #: build/C/man2/timerfd_create.2:262
799 #, no-wrap
800 msgid "B<close>(2)"
801 msgstr "B<close>(2)"
802
803 #. type: Plain text
804 #: build/C/man2/eventfd.2:210
805 msgid ""
806 "When the file descriptor is no longer required it should be closed.  When "
807 "all file descriptors associated with the same eventfd object have been "
808 "closed, the resources for object are freed by the kernel."
809 msgstr ""
810 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
811 "る。 同じ eventfd オブジェクトに関連付けられたファイルディスクリプタが全て ク"
812 "ローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
813
814 #. type: Plain text
815 #: build/C/man2/eventfd.2:222
816 msgid ""
817 "A copy of the file descriptor created by B<eventfd>()  is inherited by the "
818 "child produced by B<fork>(2).  The duplicate file descriptor is associated "
819 "with the same eventfd object.  File descriptors created by B<eventfd>()  are "
820 "preserved across B<execve>(2), unless the close-on-exec flag has been set."
821 msgstr ""
822 "B<fork>(2) で生成された子プロセスは、 B<eventfd>() で生成されたファイルディス"
823 "クリプタのコピーを継承する。 複製されたファイルディスクリプタは同じ eventfd "
824 "オブジェクトに関連付けられる。 close-on-exec フラグが設定されていない場合、 "
825 "B<execve>(2) の前後で B<eventfd>() で生成されたファイルディスクリプタは保持さ"
826 "れる。"
827
828 #. type: Plain text
829 #: build/C/man2/eventfd.2:229
830 msgid ""
831 "On success, B<eventfd>()  returns a new eventfd file descriptor.  On error, "
832 "-1 is returned and I<errno> is set to indicate the error."
833 msgstr ""
834 "成功すると、 B<eventfd>()  は新規の eventfd ファイルディスクリプタを返す。 エ"
835 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
836
837 #. type: TP
838 #: build/C/man2/eventfd.2:230 build/C/man2/getitimer.2:135
839 #: build/C/man2/kill.2:106 build/C/man2/killpg.2:95 build/C/man2/prctl.2:827
840 #: build/C/man2/prctl.2:832 build/C/man2/prctl.2:844 build/C/man2/prctl.2:849
841 #: build/C/man2/prctl.2:858 build/C/man2/prctl.2:898 build/C/man2/prctl.2:908
842 #: build/C/man2/prctl.2:916 build/C/man2/prctl.2:927 build/C/man2/prctl.2:936
843 #: build/C/man2/prctl.2:950 build/C/man2/prctl.2:962 build/C/man2/prctl.2:973
844 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man2/s390_runtime_instr.2:66
845 #: build/C/man2/sigaction.2:670 build/C/man2/sigaltstack.2:142
846 #: build/C/man3/siginterrupt.3:84 build/C/man2/signal.2:106
847 #: build/C/man2/signalfd.2:271 build/C/man2/signalfd.2:279
848 #: build/C/man2/sigprocmask.2:107 build/C/man3/sigqueue.3:98
849 #: build/C/man3/sigsetops.3:127 build/C/man3/sigwait.3:75
850 #: build/C/man2/sigwaitinfo.2:129 build/C/man2/timer_create.2:179
851 #: build/C/man2/timer_delete.2:61 build/C/man2/timer_getoverrun.2:91
852 #: build/C/man2/timer_settime.2:191 build/C/man2/timer_settime.2:199
853 #: build/C/man2/timerfd_create.2:305 build/C/man2/timerfd_create.2:313
854 #: build/C/man2/timerfd_create.2:349 build/C/man2/timerfd_create.2:356
855 #: build/C/man2/timerfd_create.2:362 build/C/man2/tkill.2:100
856 #: build/C/man2/wait.2:417
857 #, no-wrap
858 msgid "B<EINVAL>"
859 msgstr "B<EINVAL>"
860
861 #. type: Plain text
862 #: build/C/man2/eventfd.2:234
863 msgid "An unsupported value was specified in I<flags>."
864 msgstr "I<flags> にサポートされていない値が指定された。"
865
866 #. type: TP
867 #: build/C/man2/eventfd.2:234 build/C/man2/signalfd.2:286
868 #: build/C/man2/timerfd_create.2:320
869 #, no-wrap
870 msgid "B<EMFILE>"
871 msgstr "B<EMFILE>"
872
873 #. type: Plain text
874 #: build/C/man2/eventfd.2:237
875 msgid "The per-process limit on open file descriptors has been reached."
876 msgstr ""
877 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
878
879 #. type: TP
880 #: build/C/man2/eventfd.2:237 build/C/man2/signalfd.2:289
881 #: build/C/man2/timerfd_create.2:323
882 #, no-wrap
883 msgid "B<ENFILE>"
884 msgstr "B<ENFILE>"
885
886 #. type: Plain text
887 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
888 #: build/C/man2/timerfd_create.2:327
889 msgid ""
890 "The system-wide limit on the total number of open files has been reached."
891 msgstr "オープン済みのファイル総数がシステム全体の上限に達していた。"
892
893 #. type: TP
894 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
895 #: build/C/man2/timerfd_create.2:327
896 #, no-wrap
897 msgid "B<ENODEV>"
898 msgstr "B<ENODEV>"
899
900 #. type: Plain text
901 #: build/C/man2/eventfd.2:249 build/C/man2/signalfd.2:296
902 #: build/C/man2/timerfd_create.2:330
903 msgid "Could not mount (internal) anonymous inode device."
904 msgstr "(カーネル内の) 無名 inode デバイスをマウントできなかった。"
905
906 #. type: TP
907 #: build/C/man2/eventfd.2:249 build/C/man2/s390_runtime_instr.2:73
908 #: build/C/man2/sigaltstack.2:147 build/C/man2/signalfd.2:296
909 #: build/C/man2/timer_create.2:187 build/C/man2/timerfd_create.2:330
910 #, no-wrap
911 msgid "B<ENOMEM>"
912 msgstr "B<ENOMEM>"
913
914 #. type: Plain text
915 #: build/C/man2/eventfd.2:253
916 msgid "There was insufficient memory to create a new eventfd file descriptor."
917 msgstr ""
918 "新しい eventfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
919
920 #. type: SH
921 #: build/C/man2/eventfd.2:253 build/C/man2/prctl.2:1063
922 #: build/C/man3/psignal.3:95 build/C/man2/restart_syscall.2:92
923 #: build/C/man2/rt_sigqueueinfo.2:169 build/C/man2/s390_runtime_instr.2:79
924 #: build/C/man2/signalfd.2:299 build/C/man3/sigqueue.3:112
925 #: build/C/man2/timer_create.2:191 build/C/man2/timer_delete.2:65
926 #: build/C/man2/timer_getoverrun.2:95 build/C/man2/timer_settime.2:205
927 #: build/C/man2/timerfd_create.2:368 build/C/man2/tkill.2:111
928 #, no-wrap
929 msgid "VERSIONS"
930 msgstr "バージョン"
931
932 #.  eventfd() is in glibc 2.7, but reportedly does not build
933 #. type: Plain text
934 #: build/C/man2/eventfd.2:266
935 msgid ""
936 "B<eventfd>()  is available on Linux since kernel 2.6.22.  Working support is "
937 "provided in glibc since version 2.8.  The B<eventfd2>()  system call (see "
938 "NOTES) is available on Linux since kernel 2.6.27.  Since version 2.9, the "
939 "glibc B<eventfd>()  wrapper will employ the B<eventfd2>()  system call, if "
940 "it is supported by the kernel."
941 msgstr ""
942 "B<eventfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
943 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<eventfd2>()  "
944 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
945 "る。 バージョン 2.9 以降では、glibc の B<eventfd>()  のラッパー関数は、カーネ"
946 "ルが対応していれば B<eventfd2>()  システムコールを利用する。"
947
948 #. type: Plain text
949 #: build/C/man2/eventfd.2:271
950 msgid "B<eventfd>()  and B<eventfd2>()  are Linux-specific."
951 msgstr "B<eventfd>()  と B<eventfd2>()  は Linux 固有である。"
952
953 #. type: Plain text
954 #: build/C/man2/eventfd.2:279
955 msgid ""
956 "Applications can use an eventfd file descriptor instead of a pipe (see "
957 "B<pipe>(2))  in all cases where a pipe is used simply to signal events.  The "
958 "kernel overhead of an eventfd file descriptor is much lower than that of a "
959 "pipe, and only one file descriptor is required (versus the two required for "
960 "a pipe)."
961 msgstr ""
962 "アプリケーションは、パイプをイベントを通知するためだけに使用している 全ての場"
963 "面において、パイプの代わりに eventfd ファイルディスクリプタを 使用することが"
964 "できる。 eventfd ファイルディスクリプタを使う方が、パイプを使う場合に比べて "
965 "カーネルでのオーバヘッドは比べるとずっと小さく、ファイルディスクリプタも 一つ"
966 "しか必要としない (パイプの場合は二つ必要である)。"
967
968 #.  or eventually syslets/threadlets
969 #. type: Plain text
970 #: build/C/man2/eventfd.2:285
971 msgid ""
972 "When used in the kernel, an eventfd file descriptor can provide a bridge "
973 "from kernel to user space, allowing, for example, functionalities like KAIO "
974 "(kernel AIO)  to signal to a file descriptor that some operation is complete."
975 msgstr ""
976 "カーネル内で使用すると、eventfd ファイルディスクリプタはカーネル空間からユー"
977 "ザ空間へのブリッジ機能を提供することができ、 例えば KAIO (kernel AIO)  のよう"
978 "な機能が、あるファイルディスクリプタに何らかの操作が完了したことを 通知するこ"
979 "とができる。"
980
981 #. type: Plain text
982 #: build/C/man2/eventfd.2:302
983 msgid ""
984 "A key point about an eventfd file descriptor is that it can be monitored "
985 "just like any other file descriptor using B<select>(2), B<poll>(2), or "
986 "B<epoll>(7).  This means that an application can simultaneously monitor the "
987 "readiness of \"traditional\" files and the readiness of other kernel "
988 "mechanisms that support the eventfd interface.  (Without the B<eventfd>()  "
989 "interface, these mechanisms could not be multiplexed via B<select>(2), "
990 "B<poll>(2), or B<epoll>(7).)"
991 msgstr ""
992 "eventfd ファイルディスクリプタの重要な点は、 eventfd ファイルディスクリプタ"
993 "が B<select>(2), B<poll>(2), B<epoll>(7)  を使って他のファイルディスクリプタ"
994 "と全く同様に監視できる点である。 このことは、アプリケーションは「従来の "
995 "(traditional)」 ファイルの状態変化と eventfd インタフェースをサポートする他の"
996 "カーネル機構の状態変化を同時に監視 できることを意味する (B<eventfd>()  インタ"
997 "フェースがない時には、これらのカーネル機構は B<select>(2), B<poll>(2), "
998 "B<epoll>(7)  経由で多重することはできなかった)。"
999
1000 #. type: SS
1001 #: build/C/man2/eventfd.2:302 build/C/man2/signalfd.2:336
1002 #, no-wrap
1003 msgid "Underlying Linux system calls"
1004 msgstr "下層にある Linux のシステムコール"
1005
1006 #. type: Plain text
1007 #: build/C/man2/eventfd.2:316
1008 msgid ""
1009 "There are two underlying Linux system calls: B<eventfd>()  and the more "
1010 "recent B<eventfd2>().  The former system call does not implement a I<flags> "
1011 "argument.  The latter system call implements the I<flags> values described "
1012 "above.  The glibc wrapper function will use B<eventfd2>()  where it is "
1013 "available."
1014 msgstr ""
1015 "下層にある Linux システムコールは二種類あり、 B<eventfd>()  と、もっと新しい "
1016 "B<eventfd2>()  である。 B<eventfd>()  は I<flags> 引き数を実装していない。 "
1017 "B<eventfd2>()  では上記の値の I<flags> が実装されている。 glibc のラッパー関"
1018 "数は、 B<eventfd2>()  が利用可能であれば、これを使用する。"
1019
1020 #. type: SS
1021 #: build/C/man2/eventfd.2:316
1022 #, no-wrap
1023 msgid "Additional glibc features"
1024 msgstr "glibc の追加機能"
1025
1026 #. type: Plain text
1027 #: build/C/man2/eventfd.2:320
1028 msgid ""
1029 "The GNU C library defines an additional type, and two functions that attempt "
1030 "to abstract some of the details of reading and writing on an eventfd file "
1031 "descriptor:"
1032 msgstr ""
1033 "GNU C ライブラリは、eventfd ファイルディスクリプタの読み出しと書き込みに を関"
1034 "する詳細のいくつか抽象化するために、一つの型と、二つの関数を追加で 定義してい"
1035 "る。"
1036
1037 #. type: Plain text
1038 #: build/C/man2/eventfd.2:324
1039 #, no-wrap
1040 msgid "typedef uint64_t eventfd_t;\n"
1041 msgstr "typedef uint64_t eventfd_t;\n"
1042
1043 #. type: Plain text
1044 #: build/C/man2/eventfd.2:327
1045 #, no-wrap
1046 msgid ""
1047 "int eventfd_read(int fd, eventfd_t *value);\n"
1048 "int eventfd_write(int fd, eventfd_t value);\n"
1049 msgstr ""
1050 "int eventfd_read(int fd, eventfd_t *value);\n"
1051 "int eventfd_write(int fd, eventfd_t value);\n"
1052
1053 #. type: Plain text
1054 #: build/C/man2/eventfd.2:334
1055 msgid ""
1056 "The functions perform the read and write operations on an eventfd file "
1057 "descriptor, returning 0 if the correct number of bytes was transferred, or "
1058 "-1 otherwise."
1059 msgstr ""
1060 "これらの関数は、eventfd ファイルディスクリプタに対する読み出しと 書き込みの操"
1061 "作を実行し、正しいバイト数が転送された場合には 0 を返し、そうでない場合は -1 "
1062 "を返す。"
1063
1064 #. type: SH
1065 #: build/C/man2/eventfd.2:334 build/C/man2/sigaction.2:790
1066 #: build/C/man2/sigaltstack.2:217 build/C/man2/signalfd.2:360
1067 #: build/C/man3/sigwait.3:91 build/C/man2/timer_create.2:261
1068 #: build/C/man2/timer_getoverrun.2:128 build/C/man2/timer_settime.2:209
1069 #: build/C/man2/timerfd_create.2:379 build/C/man2/wait.2:551
1070 #, no-wrap
1071 msgid "EXAMPLE"
1072 msgstr "例"
1073
1074 #. type: Plain text
1075 #: build/C/man2/eventfd.2:343
1076 msgid ""
1077 "The following program creates an eventfd file descriptor and then forks to "
1078 "create a child process.  While the parent briefly sleeps, the child writes "
1079 "each of the integers supplied in the program's command-line arguments to the "
1080 "eventfd file descriptor.  When the parent has finished sleeping, it reads "
1081 "from the eventfd file descriptor."
1082 msgstr ""
1083 "以下のプログラムは eventfd ファイルディスクリプタを生成し、 その後 fork を実"
1084 "行して子プロセスを生成する。 親プロセスが少しの間 sleep する間に、子プロセス"
1085 "は プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ eventfd "
1086 "ファイルディスクリプタに書き込む。 親プロセスは sleep を完了すると eventfd "
1087 "ファイルディスクリプタから 読み出しを行う。"
1088
1089 #. type: Plain text
1090 #: build/C/man2/eventfd.2:345
1091 msgid "The following shell session shows a sample run of the program:"
1092 msgstr "以下に示すシェルセッションにこのプログラムの使い方を示す。"
1093
1094 #. type: Plain text
1095 #: build/C/man2/eventfd.2:357
1096 #, no-wrap
1097 msgid ""
1098 "$B< ./a.out 1 2 4 7 14>\n"
1099 "Child writing 1 to efd\n"
1100 "Child writing 2 to efd\n"
1101 "Child writing 4 to efd\n"
1102 "Child writing 7 to efd\n"
1103 "Child writing 14 to efd\n"
1104 "Child completed write loop\n"
1105 "Parent about to read\n"
1106 "Parent read 28 (0x1c) from efd\n"
1107 msgstr ""
1108 "$B< ./a.out 1 2 4 7 14>\n"
1109 "Child writing 1 to efd\n"
1110 "Child writing 2 to efd\n"
1111 "Child writing 4 to efd\n"
1112 "Child writing 7 to efd\n"
1113 "Child writing 14 to efd\n"
1114 "Child completed write loop\n"
1115 "Parent about to read\n"
1116 "Parent read 28 (0x1c) from efd\n"
1117
1118 #. type: SS
1119 #: build/C/man2/eventfd.2:359 build/C/man2/signalfd.2:383
1120 #: build/C/man2/timer_create.2:292 build/C/man2/timerfd_create.2:407
1121 #: build/C/man2/wait.2:586
1122 #, no-wrap
1123 msgid "Program source"
1124 msgstr "プログラムのソース"
1125
1126 #. type: Plain text
1127 #: build/C/man2/eventfd.2:367
1128 #, no-wrap
1129 msgid ""
1130 "#include E<lt>sys/eventfd.hE<gt>\n"
1131 "#include E<lt>unistd.hE<gt>\n"
1132 "#include E<lt>stdlib.hE<gt>\n"
1133 "#include E<lt>stdio.hE<gt>\n"
1134 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1135 msgstr ""
1136 "#include E<lt>sys/eventfd.hE<gt>\n"
1137 "#include E<lt>unistd.hE<gt>\n"
1138 "#include E<lt>stdlib.hE<gt>\n"
1139 "#include E<lt>stdio.hE<gt>\n"
1140 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1141
1142 #. type: Plain text
1143 #: build/C/man2/eventfd.2:370 build/C/man2/signalfd.2:394
1144 #, no-wrap
1145 msgid ""
1146 "#define handle_error(msg) \\e\n"
1147 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1148 msgstr ""
1149 "#define handle_error(msg) \\e\n"
1150 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1151
1152 #. type: Plain text
1153 #: build/C/man2/eventfd.2:377
1154 #, no-wrap
1155 msgid ""
1156 "int\n"
1157 "main(int argc, char *argv[])\n"
1158 "{\n"
1159 "    int efd, j;\n"
1160 "    uint64_t u;\n"
1161 "    ssize_t s;\n"
1162 msgstr ""
1163 "int\n"
1164 "main(int argc, char *argv[])\n"
1165 "{\n"
1166 "    int efd, j;\n"
1167 "    uint64_t u;\n"
1168 "    ssize_t s;\n"
1169
1170 #. type: Plain text
1171 #: build/C/man2/eventfd.2:382
1172 #, no-wrap
1173 msgid ""
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 msgstr ""
1179 "    if (argc E<lt> 2) {\n"
1180 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1181 "        exit(EXIT_FAILURE);\n"
1182 "    }\n"
1183
1184 #. type: Plain text
1185 #: build/C/man2/eventfd.2:386
1186 #, no-wrap
1187 msgid ""
1188 "    efd = eventfd(0, 0);\n"
1189 "    if (efd == -1)\n"
1190 "        handle_error(\"eventfd\");\n"
1191 msgstr ""
1192 "    efd = eventfd(0, 0);\n"
1193 "    if (efd == -1)\n"
1194 "        handle_error(\"eventfd\");\n"
1195
1196 #. type: Plain text
1197 #: build/C/man2/eventfd.2:398
1198 #, no-wrap
1199 msgid ""
1200 "    switch (fork()) {\n"
1201 "    case 0:\n"
1202 "        for (j = 1; j E<lt> argc; j++) {\n"
1203 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1204 "            u = strtoull(argv[j], NULL, 0);\n"
1205 "                    /* strtoull() allows various bases */\n"
1206 "            s = write(efd, &u, sizeof(uint64_t));\n"
1207 "            if (s != sizeof(uint64_t))\n"
1208 "                handle_error(\"write\");\n"
1209 "        }\n"
1210 "        printf(\"Child completed write loop\\en\");\n"
1211 msgstr ""
1212 "    switch (fork()) {\n"
1213 "    case 0:\n"
1214 "        for (j = 1; j E<lt> argc; j++) {\n"
1215 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1216 "            u = strtoull(argv[j], NULL, 0);\n"
1217 "                    /* strtoull() allows various bases */\n"
1218 "            s = write(efd, &u, sizeof(uint64_t));\n"
1219 "            if (s != sizeof(uint64_t))\n"
1220 "                handle_error(\"write\");\n"
1221 "        }\n"
1222 "        printf(\"Child completed write loop\\en\");\n"
1223
1224 #. type: Plain text
1225 #: build/C/man2/eventfd.2:400
1226 #, no-wrap
1227 msgid "        exit(EXIT_SUCCESS);\n"
1228 msgstr "        exit(EXIT_SUCCESS);\n"
1229
1230 #. type: Plain text
1231 #: build/C/man2/eventfd.2:403
1232 #, no-wrap
1233 msgid ""
1234 "    default:\n"
1235 "        sleep(2);\n"
1236 msgstr ""
1237 "    default:\n"
1238 "        sleep(2);\n"
1239
1240 #. type: Plain text
1241 #: build/C/man2/eventfd.2:411
1242 #, no-wrap
1243 msgid ""
1244 "        printf(\"Parent about to read\\en\");\n"
1245 "        s = read(efd, &u, sizeof(uint64_t));\n"
1246 "        if (s != sizeof(uint64_t))\n"
1247 "            handle_error(\"read\");\n"
1248 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1249 "                (unsigned long long) u, (unsigned long long) u);\n"
1250 "        exit(EXIT_SUCCESS);\n"
1251 msgstr ""
1252 "        printf(\"Parent about to read\\en\");\n"
1253 "        s = read(efd, &u, sizeof(uint64_t));\n"
1254 "        if (s != sizeof(uint64_t))\n"
1255 "            handle_error(\"read\");\n"
1256 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1257 "                (unsigned long long) u, (unsigned long long) u);\n"
1258 "        exit(EXIT_SUCCESS);\n"
1259
1260 #. type: Plain text
1261 #: build/C/man2/eventfd.2:416
1262 #, no-wrap
1263 msgid ""
1264 "    case -1:\n"
1265 "        handle_error(\"fork\");\n"
1266 "    }\n"
1267 "}\n"
1268 msgstr ""
1269 "    case -1:\n"
1270 "        handle_error(\"fork\");\n"
1271 "    }\n"
1272 "}\n"
1273
1274 #. type: Plain text
1275 #: build/C/man2/eventfd.2:428
1276 msgid ""
1277 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), "
1278 "B<signalfd>(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), "
1279 "B<sem_overview>(7)"
1280 msgstr ""
1281 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), "
1282 "B<signalfd>(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), "
1283 "B<sem_overview>(7)"
1284
1285 #. type: TH
1286 #: build/C/man2/getitimer.2:12
1287 #, no-wrap
1288 msgid "GETITIMER"
1289 msgstr "GETITIMER"
1290
1291 #. type: TH
1292 #: build/C/man2/getitimer.2:12
1293 #, no-wrap
1294 msgid "2012-10-01"
1295 msgstr "2012-10-01"
1296
1297 #. type: Plain text
1298 #: build/C/man2/getitimer.2:15
1299 msgid "getitimer, setitimer - get or set value of an interval timer"
1300 msgstr "getitimer, setitimer - インターバル・タイマーの値を取得または設定する"
1301
1302 #. type: Plain text
1303 #: build/C/man2/getitimer.2:18
1304 #, no-wrap
1305 msgid "B<#include E<lt>sys/time.hE<gt>>\n"
1306 msgstr "B<#include E<lt>sys/time.hE<gt>>\n"
1307
1308 #. type: Plain text
1309 #: build/C/man2/getitimer.2:20
1310 #, no-wrap
1311 msgid "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1312 msgstr "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1313
1314 #. type: Plain text
1315 #: build/C/man2/getitimer.2:23
1316 #, no-wrap
1317 msgid ""
1318 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1319 "B<              struct itimerval *>I<old_value>B<);>\n"
1320 msgstr ""
1321 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1322 "B<              struct itimerval *>I<old_value>B<);>\n"
1323
1324 #. type: Plain text
1325 #: build/C/man2/getitimer.2:29
1326 msgid ""
1327 "The system provides each process with three interval timers, each "
1328 "decrementing in a distinct time domain.  When any timer expires, a signal is "
1329 "sent to the process, and the timer (potentially) restarts."
1330 msgstr ""
1331 "システムは 1 個のプロセスにつき 3 個のインターバル・タイマーを提供する。 それ"
1332 "ぞれのタイマーは別々の時間領域で減少する。 どのタイマーも満了するとプロセスに"
1333 "シグナルが送られ、 タイマーは (設定によっては) 再び開始される。"
1334
1335 #. type: TP
1336 #: build/C/man2/getitimer.2:29
1337 #, no-wrap
1338 msgid "B<ITIMER_REAL>"
1339 msgstr "B<ITIMER_REAL>"
1340
1341 #. type: Plain text
1342 #: build/C/man2/getitimer.2:34
1343 msgid "decrements in real time, and delivers B<SIGALRM> upon expiration."
1344 msgstr "実時間 (real time) で減少し、満了すると B<SIGALRM> が送られる。"
1345
1346 #. type: TP
1347 #: build/C/man2/getitimer.2:34
1348 #, no-wrap
1349 msgid "B<ITIMER_VIRTUAL>"
1350 msgstr "B<ITIMER_VIRTUAL>"
1351
1352 #. type: Plain text
1353 #: build/C/man2/getitimer.2:39
1354 msgid ""
1355 "decrements only when the process is executing, and delivers B<SIGVTALRM> "
1356 "upon expiration."
1357 msgstr ""
1358 "プロセスが実行されている間のみ減少し、満了すると B<SIGVTALRM> が送られる。"
1359
1360 #. type: TP
1361 #: build/C/man2/getitimer.2:39
1362 #, no-wrap
1363 msgid "B<ITIMER_PROF>"
1364 msgstr "B<ITIMER_PROF>"
1365
1366 #. type: Plain text
1367 #: build/C/man2/getitimer.2:49
1368 msgid ""
1369 "decrements both when the process executes and when the system is executing "
1370 "on behalf of the process.  Coupled with B<ITIMER_VIRTUAL>, this timer is "
1371 "usually used to profile the time spent by the application in user and kernel "
1372 "space.  B<SIGPROF> is delivered upon expiration."
1373 msgstr ""
1374 "プロセスが実行されていて、 かつシステムがそのプロセスのために処理を行なってい"
1375 "る間に減少する。 多くの場合、このタイマーは B<ITIMER_VIRTUAL> と組み合わされ"
1376 "て、アプリケーションがカーネル空間とユーザー空間で どれだけの時間を過ごしたか"
1377 "をプロファイルするのに使用される。 満了すると B<SIGPROF> が送られる。"
1378
1379 #. type: Plain text
1380 #: build/C/man2/getitimer.2:51
1381 msgid "Timer values are defined by the following structures:"
1382 msgstr "タイマーの値は以下の構造体によって定義される:"
1383
1384 #. type: Plain text
1385 #: build/C/man2/getitimer.2:59
1386 #, no-wrap
1387 msgid ""
1388 "struct itimerval {\n"
1389 "    struct timeval it_interval; /* next value */\n"
1390 "    struct timeval it_value;    /* current value */\n"
1391 "};\n"
1392 msgstr ""
1393 "struct itimerval {\n"
1394 "    struct timeval it_interval; /* next value */\n"
1395 "    struct timeval it_value;    /* current value */\n"
1396 "};\n"
1397
1398 #. type: Plain text
1399 #: build/C/man2/getitimer.2:64
1400 #, no-wrap
1401 msgid ""
1402 "struct timeval {\n"
1403 "    time_t      tv_sec;         /* seconds */\n"
1404 "    suseconds_t tv_usec;        /* microseconds */\n"
1405 "};\n"
1406 msgstr ""
1407 "struct timeval {\n"
1408 "    time_t      tv_sec;         /* seconds */\n"
1409 "    suseconds_t tv_usec;        /* microseconds */\n"
1410 "};\n"
1411
1412 #. type: Plain text
1413 #: build/C/man2/getitimer.2:86
1414 msgid ""
1415 "The function B<getitimer>()  fills the structure pointed to by I<curr_value> "
1416 "with the current setting for the timer specified by I<which> (one of "
1417 "B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>).  The element "
1418 "I<it_value> is set to the amount of time remaining on the timer, or zero if "
1419 "the timer is disabled.  Similarly, I<it_interval> is set to the reset value."
1420 msgstr ""
1421 "B<getitimer>()  関数は、 I<which> で指定されたタイマー (B<ITIMER_REAL>, "
1422 "B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれか) の現在の設定を、 I<curr_value> で"
1423 "指定された構造体に格納する。 I<it_value> 要素にはタイマーの残り時間が設定され"
1424 "る。タイマーがオフの場合は ゼロが設定される。同様に I<it_interval> には初期値"
1425 "が設定される。"
1426
1427 #. type: Plain text
1428 #: build/C/man2/getitimer.2:94
1429 msgid ""
1430 "The function B<setitimer>()  sets the specified timer to the value in "
1431 "I<new_value>.  If I<old_value> is non-NULL, the old value of the timer is "
1432 "stored there."
1433 msgstr ""
1434 "B<setitimer>()  関数は指定されたタイマーに I<new_value> の値を設定する。 "
1435 "I<old_value> が NULL 以外の場合、タイマーの古い値が I<old_value> に格納され"
1436 "る。"
1437
1438 #. type: Plain text
1439 #: build/C/man2/getitimer.2:104
1440 msgid ""
1441 "Timers decrement from I<it_value> to zero, generate a signal, and reset to "
1442 "I<it_interval>.  A timer which is set to zero (I<it_value> is zero or the "
1443 "timer expires and I<it_interval> is zero) stops."
1444 msgstr ""
1445 "タイマーは I<it_value> からゼロへ向けて減っていき、シグナルを生成し、 "
1446 "I<it_interval> に初期化される。 タイマーがゼロに設定された場合 (I<it_value> "
1447 "がゼロか、タイマーが満了した時に I<it_interval> がゼロの場合) は停止する。"
1448
1449 #. type: Plain text
1450 #: build/C/man2/getitimer.2:110
1451 msgid ""
1452 "Both I<tv_sec> and I<tv_usec> are significant in determining the duration of "
1453 "a timer."
1454 msgstr "タイマーの期間は I<tv_sec> と I<tv_usec> の両方により決定される。"
1455
1456 #. type: Plain text
1457 #: build/C/man2/getitimer.2:122
1458 #, fuzzy
1459 #| msgid ""
1460 #| "Timers will never expire before the requested time, but may expire some "
1461 #| "(short) time afterward, which depends on the system timer resolution and "
1462 #| "on the system load; see B<time>(7).  (But see BUGS below.)  Upon "
1463 #| "expiration, a signal will be generated and the timer reset.  If the timer "
1464 #| "expires while the process is active (always true for B<ITIMER_VIRTUAL>), "
1465 #| "the signal will be delivered immediately when generated.  Otherwise the "
1466 #| "delivery will be offset by a small time dependent on the system loading."
1467 msgid ""
1468 "Timers will never expire before the requested time, but may expire some "
1469 "(short) time afterward, which depends on the system timer resolution and on "
1470 "the system load; see B<time>(7).  (But see BUGS below.)  Upon expiration, a "
1471 "signal will be generated and the timer reset.  If the timer expires while "
1472 "the process is active (always true for B<ITIMER_VIRTUAL>), the signal will "
1473 "be delivered immediately when generated.  Otherwise, the delivery will be "
1474 "offset by a small time dependent on the system loading."
1475 msgstr ""
1476 "要求した時間がくる前にタイマーが満了することはないが、 逆にある (短い) 時間だ"
1477 "け満了が遅れることはある。 どれだけ遅れるかはシステムの時間分解能とシステムの"
1478 "負荷に依存する (B<time>(7)  参照; 但し、バグの項も参照のこと)。 タイマーが満"
1479 "了するとシグナルが生成され、タイマーは初期化される。 プロセスがアクティブな"
1480 "時 (B<ITIMER_VIRTUAL> の場合には常にそうである) にタイマーが満了した場合、生"
1481 "成されたシグナルは すぐに配送される。それ以外の場合は、システムの負荷により少"
1482 "しの時間だけ 遅れて配送される。"
1483
1484 #. type: Plain text
1485 #: build/C/man2/getitimer.2:127 build/C/man2/killpg.2:94
1486 #: build/C/man2/tkill.2:99
1487 msgid ""
1488 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1489 "appropriately."
1490 msgstr ""
1491 "成功した場合、0 が返される。エラーが発生した場合、-1 が返され、 I<errno> が適"
1492 "切に設定される。"
1493
1494 #. type: TP
1495 #: build/C/man2/getitimer.2:128 build/C/man2/prctl.2:823
1496 #: build/C/man2/sigaction.2:666 build/C/man2/sigaltstack.2:138
1497 #: build/C/man2/sigpending.2:60 build/C/man2/sigprocmask.2:100
1498 #: build/C/man2/sigsuspend.2:77 build/C/man2/timer_settime.2:184
1499 #: build/C/man2/timerfd_create.2:342
1500 #, no-wrap
1501 msgid "B<EFAULT>"
1502 msgstr "B<EFAULT>"
1503
1504 #. type: Plain text
1505 #: build/C/man2/getitimer.2:135 build/C/man2/timerfd_create.2:349
1506 msgid "I<new_value>, I<old_value>, or I<curr_value> is not valid a pointer."
1507 msgstr "I<new_value>, I<old_value>, I<curr_value> が有効なポインタではない。"
1508
1509 #. type: Plain text
1510 #: build/C/man2/getitimer.2:148
1511 msgid ""
1512 "I<which> is not one of B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>; "
1513 "or (since Linux 2.6.22) one of the I<tv_usec> fields in the structure "
1514 "pointed to by I<new_value> contains a value outside the range 0 to 999999."
1515 msgstr ""
1516 "I<which> が B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれでもな"
1517 "い。 または (Linux 2.6.22 以降で)  I<new_value> で指定された構造体の "
1518 "I<tv_usec> フィールドの一つが 0 以上 999999 以下の範囲に入らない値である。"
1519
1520 #. type: Plain text
1521 #: build/C/man2/getitimer.2:158
1522 msgid ""
1523 "POSIX.1-2001, SVr4, 4.4BSD (this call first appeared in 4.2BSD).  "
1524 "POSIX.1-2008 marks B<getitimer>()  and B<setitimer>()  obsolete, "
1525 "recommending the use of the POSIX timers API (B<timer_gettime>(2), "
1526 "B<timer_settime>(2), etc.) instead."
1527 msgstr ""
1528 "POSIX.1-2001, SVr4, 4.4BSD (このコールは 4.2BSD で始めて現われた).  "
1529 "POSIX.1-2008 では、 B<getitimer>()  と B<setitimer>()  は廃止予定とされてお"
1530 "り、 代わりに POSIX タイマー API (B<timer_gettime>(2), B<timer_settime>(2)  "
1531 "など) を使うことが推奨されている。"
1532
1533 #. type: Plain text
1534 #: build/C/man2/getitimer.2:164
1535 msgid ""
1536 "A child created via B<fork>(2)  does not inherit its parent's interval "
1537 "timers.  Interval timers are preserved across an B<execve>(2)."
1538 msgstr ""
1539 "B<fork>(2)  で作成された子プロセスは、 親プロセスのインターバル・タイマーを継"
1540 "承しない。 B<execve>(2)  の前後ではインターバル・タイマーは保存される。"
1541
1542 #. type: Plain text
1543 #: build/C/man2/getitimer.2:174
1544 msgid ""
1545 "POSIX.1 leaves the interaction between B<setitimer>()  and the three "
1546 "interfaces B<alarm>(2), B<sleep>(3), and B<usleep>(3)  unspecified."
1547 msgstr ""
1548 "POSIX.1 では、 B<setitimer>()  と、 B<alarm>(2), B<sleep>(3), B<usleep>(3)  "
1549 "という 3 つのインタフェースとの相互の影響については規定していない。"
1550
1551 #. type: Plain text
1552 #: build/C/man2/getitimer.2:176
1553 msgid "The standards are silent on the meaning of the call:"
1554 msgstr "標準では、次の呼び出しの意味については規定されていない。"
1555
1556 #. type: Plain text
1557 #: build/C/man2/getitimer.2:178
1558 #, no-wrap
1559 msgid "    setitimer(which, NULL, &old_value);\n"
1560 msgstr "    setitimer(which, NULL, &old_value);\n"
1561
1562 #. type: Plain text
1563 #: build/C/man2/getitimer.2:181
1564 msgid ""
1565 "Many systems (Solaris, the BSDs, and perhaps others)  treat this as "
1566 "equivalent to:"
1567 msgstr ""
1568 "(Solaris, BSD 系やおそらく他のシステムもそうだが) 多くのシステムでは、この呼"
1569 "び出しは以下と等価である。"
1570
1571 #. type: Plain text
1572 #: build/C/man2/getitimer.2:183
1573 #, no-wrap
1574 msgid "    getitimer(which, &old_value);\n"
1575 msgstr "    getitimer(which, &old_value);\n"
1576
1577 #. type: Plain text
1578 #: build/C/man2/getitimer.2:189
1579 msgid ""
1580 "In Linux, this is treated as being equivalent to a call in which the "
1581 "I<new_value> fields are zero; that is, the timer is disabled.  I<Don't use "
1582 "this Linux misfeature>: it is nonportable and unnecessary."
1583 msgstr ""
1584 "Linux では、この呼び出しは I<new_value> フィールドが 0 の呼び出しと等価なもの"
1585 "と扱われる。 つまり、タイマーが無効になる。 I<Linux のこの間違った機能を使用"
1586 "しないこと>。移植性もなく、不必要な機能である。"
1587
1588 #. type: SH
1589 #: build/C/man2/getitimer.2:189 build/C/man2/kill.2:161
1590 #: build/C/man3/profil.3:72 build/C/man3/psignal.3:101
1591 #: build/C/man2/sigaction.2:781 build/C/man2/signalfd.2:352
1592 #: build/C/man2/sigpending.2:85 build/C/man3/sigset.3:232
1593 #: build/C/man2/timer_getoverrun.2:115 build/C/man2/timerfd_create.2:373
1594 #: build/C/man2/wait.2:536
1595 #, no-wrap
1596 msgid "BUGS"
1597 msgstr "バグ"
1598
1599 #. type: Plain text
1600 #: build/C/man2/getitimer.2:198
1601 msgid ""
1602 "The generation and delivery of a signal are distinct, and only one instance "
1603 "of each of the signals listed above may be pending for a process.  Under "
1604 "very heavy loading, an B<ITIMER_REAL> timer may expire before the signal "
1605 "from a previous expiration has been delivered.  The second signal in such an "
1606 "event will be lost."
1607 msgstr ""
1608 "シグナルの生成と配送は別個のものであり、 前述のシグナルのそれぞれについて一つ"
1609 "だけがプロセスのために 待機する。 非常に重い負荷の下では、 B<ITIMER_REAL> タ"
1610 "イマーでは、時間切れにより生成された一つ前のシグナルが配送される前に、 次の時"
1611 "間切れが起こる場合がある。 そのような場合、 2 個めのイベントに対するシグナル"
1612 "は失われてしまう。"
1613
1614 #. type: Plain text
1615 #: build/C/man2/getitimer.2:213
1616 msgid ""
1617 "On Linux kernels before 2.6.16, timer values are represented in jiffies.  If "
1618 "a request is made set a timer with a value whose jiffies representation "
1619 "exceeds B<MAX_SEC_IN_JIFFIES> (defined in I<include/linux/jiffies.h>), then "
1620 "the timer is silently truncated to this ceiling value.  On Linux/i386 "
1621 "(where, since Linux 2.6.13, the default jiffy is 0.004 seconds), this means "
1622 "that the ceiling value for a timer is approximately 99.42 days.  Since Linux "
1623 "2.6.16, the kernel uses a different internal representation for times, and "
1624 "this ceiling is removed."
1625 msgstr ""
1626 "バージョン 2.6.16 より前の Linux カーネルでは、 タイマーの値は jiffy で表現さ"
1627 "れる。 要求が jiffy 表現で (I<include/linux/jiffies.h> で定義されている)  "
1628 "B<MAX_SEC_IN_JIFFIES> を越える値をタイマーに設定しようとするものの場合、 タイ"
1629 "マーは暗黙にこの上限値に切り詰められる。 Linux/i386 の場合 (Linux 2.6.13 以降"
1630 "では jiffy は 0.004 秒) の場合、 これはタイマーの上限値がおよそ 99.42 日にな"
1631 "ることを意味する。 Linux 2.6.16 以降では、カーネルは時間に関する内部表現とし"
1632 "て 異なる表現を使うようになっており、この上限はなくなった。"
1633
1634 #.  4 Jul 2005: It looks like this bug may remain in 2.4.x.
1635 #.      http://lkml.org/lkml/2005/7/1/165
1636 #. type: Plain text
1637 #: build/C/man2/getitimer.2:220
1638 msgid ""
1639 "On certain systems (including i386), Linux kernels before version 2.6.12 "
1640 "have a bug which will produce premature timer expirations of up to one jiffy "
1641 "under some circumstances.  This bug is fixed in kernel 2.6.12."
1642 msgstr ""
1643 "(i386 を含む) いくつかのシステムでは、 バージョン 2.6.12 以前の Linux カーネ"
1644 "ルは ある種の状況では 1 jiffy 早くタイマーが終了してしまうというバグがあっ"
1645 "た。 このバグはカーネル 2.6.12 で修正された。"
1646
1647 #.  Bugzilla report 25 Apr 2006:
1648 #.  http://bugzilla.kernel.org/show_bug.cgi?id=6443
1649 #.  "setitimer() should reject noncanonical arguments"
1650 #. type: Plain text
1651 #: build/C/man2/getitimer.2:239
1652 msgid ""
1653 "POSIX.1-2001 says that B<setitimer>()  should fail if a I<tv_usec> value is "
1654 "specified that is outside of the range 0 to 999999.  However, in kernels up "
1655 "to and including 2.6.21, Linux does not give an error, but instead silently "
1656 "adjusts the corresponding seconds value for the timer.  From kernel 2.6.22 "
1657 "onward, this nonconformance has been repaired: an improper I<tv_usec> value "
1658 "results in an B<EINVAL> error."
1659 msgstr ""
1660 "POSIX.1-2001 では B<setitimer>()  は I<tv_usec> の値が 0 から 999999 の範囲外"
1661 "である場合には失敗するべきだとしている。 しかし、2.6.21 以前のカーネルの "
1662 "Linux ではエラーにならず、 対応する秒数の分だけそのタイマーの秒の値が暗黙に調"
1663 "整される。 カーネル 2.6.22 以降では、この標準非準拠の動作は修正され、 "
1664 "I<tv_usec> の値が不適切な場合には B<EINVAL> エラーとなる。"
1665
1666 #. type: Plain text
1667 #: build/C/man2/getitimer.2:246
1668 msgid ""
1669 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1670 "B<timerfd_create>(2), B<time>(7)"
1671 msgstr ""
1672 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1673 "B<timerfd_create>(2), B<time>(7)"
1674
1675 #. type: TH
1676 #: build/C/man3/gsignal.3:27
1677 #, no-wrap
1678 msgid "GSIGNAL"
1679 msgstr "GSIGNAL"
1680
1681 #. type: TH
1682 #: build/C/man3/gsignal.3:27 build/C/man3/profil.3:28
1683 #, no-wrap
1684 msgid "2007-07-26"
1685 msgstr "2007-07-26"
1686
1687 #. type: Plain text
1688 #: build/C/man3/gsignal.3:30
1689 msgid "gsignal, ssignal - software signal facility"
1690 msgstr "gsignal, ssignal - ソフトウェア・シグナル機能"
1691
1692 #. type: Plain text
1693 #: build/C/man3/gsignal.3:33 build/C/man2/kill.2:52 build/C/man3/psignal.3:36
1694 #: build/C/man3/raise.3:35 build/C/man2/sigaction.2:53
1695 #: build/C/man3/siginterrupt.3:37 build/C/man3/sigpause.3:31
1696 #: build/C/man3/sigwait.3:32 build/C/man2/sigwaitinfo.2:31
1697 #, no-wrap
1698 msgid "B<#include E<lt>signal.hE<gt>>\n"
1699 msgstr "B<#include E<lt>signal.hE<gt>>\n"
1700
1701 #. type: Plain text
1702 #: build/C/man3/gsignal.3:35
1703 #, no-wrap
1704 msgid "B<typedef void (*sighandler_t)(int);>\n"
1705 msgstr "B<typedef void (*sighandler_t)(int);>\n"
1706
1707 #. type: Plain text
1708 #: build/C/man3/gsignal.3:37
1709 #, no-wrap
1710 msgid "B<int gsignal(int >I<signum>B<);>\n"
1711 msgstr "B<int gsignal(int >I<signum>B<);>\n"
1712
1713 #. type: Plain text
1714 #: build/C/man3/gsignal.3:39
1715 #, no-wrap
1716 msgid "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1717 msgstr "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1718
1719 #. type: Plain text
1720 #: build/C/man3/gsignal.3:44 build/C/man2/kill.2:59 build/C/man2/killpg.2:53
1721 #: build/C/man3/profil.3:42 build/C/man3/psignal.3:46
1722 #: build/C/man2/sigaction.2:61 build/C/man2/sigaltstack.2:38
1723 #: build/C/man3/siginterrupt.3:44 build/C/man2/sigpending.2:40
1724 #: build/C/man2/sigprocmask.2:41 build/C/man3/sigqueue.3:39
1725 #: build/C/man3/sigset.3:45 build/C/man3/sigsetops.3:51
1726 #: build/C/man2/sigsuspend.2:40 build/C/man3/sigvec.3:45
1727 #: build/C/man3/sigwait.3:39 build/C/man2/sigwaitinfo.2:41
1728 #: build/C/man2/timer_create.2:48 build/C/man2/timer_delete.2:41
1729 #: build/C/man2/timer_getoverrun.2:41 build/C/man2/timer_settime.2:45
1730 #: build/C/man2/wait.2:69 build/C/man2/wait4.2:53
1731 msgid ""
1732 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
1733 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7)  参照):"
1734
1735 #. type: Plain text
1736 #: build/C/man3/gsignal.3:49
1737 msgid "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1738 msgstr "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1739
1740 #. type: Plain text
1741 #: build/C/man3/gsignal.3:57
1742 msgid ""
1743 "Don't use these functions under Linux.  Due to a historical mistake, under "
1744 "Linux these functions are aliases for B<raise>(3)  and B<signal>(2), "
1745 "respectively."
1746 msgstr ""
1747 "Linux ではこれらの関数を使用しないこと。 過去に間違いがあり、Linux では "
1748 "B<gsignal>()  と B<ssignal>()  はそれぞれ B<raise>(3)  と B<signal>(2)  の別"
1749 "名になっている。"
1750
1751 #. type: Plain text
1752 #: build/C/man3/gsignal.3:95
1753 msgid ""
1754 "Elsewhere, on System V-like systems, these functions implement software "
1755 "signaling, entirely independent of the classical B<signal>(2)  and "
1756 "B<kill>(2)  functions.  The function B<ssignal>()  defines the action to "
1757 "take when the software signal with number I<signum> is raised using the "
1758 "function B<gsignal>(), and returns the previous such action or B<SIG_DFL>.  "
1759 "The function B<gsignal>()  does the following: if no action (or the action "
1760 "B<SIG_DFL>)  was specified for I<signum>, then it does nothing and returns "
1761 "0.  If the action B<SIG_IGN> was specified for I<signum>, then it does "
1762 "nothing and returns 1.  Otherwise, it resets the action to B<SIG_DFL> and "
1763 "calls the action function with argument I<signum>, and returns the value "
1764 "returned by that function.  The range of possible values I<signum> varies "
1765 "(often 1-15 or 1-17)."
1766 msgstr ""
1767 "一方、System V 風のシステムでは、これらの関数で、 従来の B<signal>(2)  や "
1768 "B<kill>(2)  の関数群とは完全に独立な、 ソフトウェア・シグナリングを実現してい"
1769 "る。 B<ssignal>()  関数は、番号 I<signum> のソフトウェア・シグナルが "
1770 "B<gsignal>()  関数を使って発生された時にとるべきアクションを定義する。 "
1771 "B<gsignal>()  の返り値は、一つ前に指定されていたアクション、もしくは "
1772 "B<SIG_DFL> である。 B<gsignal>()  は以下のような動作を行う: I<signum> に対し"
1773 "てアクションが指定されていないか、アクション B<SIG_DFL> が指定されていた場"
1774 "合、何もせずに 0 を返す。 I<signum> に対して アクション B<SIG_IGN> が指定され"
1775 "ていた場合、何もせずに 1 を返す。 それ以外の場合、アクションを B<SIG_DFL> に"
1776 "リセットし、引き数に I<signum> を指定してアクション関数を呼び出して、アクショ"
1777 "ン関数の返り値を返す。 I<signum> がとり得る値の範囲は実装により異なる (多くの"
1778 "場合 1〜15 か 1〜17 である)。"
1779
1780 #. type: Plain text
1781 #: build/C/man3/gsignal.3:103
1782 msgid ""
1783 "These functions are available under AIX, DG/UX, HP-UX, SCO, Solaris, Tru64.  "
1784 "They are called obsolete under most of these systems, and are broken under "
1785 "Linux libc and glibc.  Some systems also have B<gsignal_r>()  and "
1786 "B<ssignal_r>()."
1787 msgstr ""
1788 "これらの関数は、AIX, DG/UX, HP-UX, SCO, Solaris, Tru64 で使用可能である。 こ"
1789 "れらのシステムのほとんどで廃止されたことになっており、 Linux の libc および "
1790 "glibc では正しく実装されていない。 B<gsignal_r>()  と B<ssignal_r>()  が実装"
1791 "されているシステムもある。"
1792
1793 #. type: Plain text
1794 #: build/C/man3/gsignal.3:107
1795 msgid "B<kill>(2), B<signal>(2), B<raise>(3)"
1796 msgstr "B<kill>(2), B<signal>(2), B<raise>(3)"
1797
1798 #. type: TH
1799 #: build/C/man2/kill.2:44
1800 #, no-wrap
1801 msgid "KILL"
1802 msgstr "KILL"
1803
1804 #. type: TH
1805 #: build/C/man2/kill.2:44
1806 #, no-wrap
1807 msgid "2013-09-17"
1808 msgstr "2013-09-17"
1809
1810 #. type: Plain text
1811 #: build/C/man2/kill.2:47
1812 msgid "kill - send signal to a process"
1813 msgstr "kill - プロセスにシグナルを送る"
1814
1815 #. type: Plain text
1816 #: build/C/man2/kill.2:50
1817 #, no-wrap
1818 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
1819 msgstr "B<#include E<lt>sys/types.hE<gt>>\n"
1820
1821 #. type: Plain text
1822 #: build/C/man2/kill.2:54
1823 #, no-wrap
1824 msgid "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1825 msgstr "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1826
1827 #. type: Plain text
1828 #: build/C/man2/kill.2:64
1829 msgid ""
1830 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1831 msgstr ""
1832 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1833
1834 #. type: Plain text
1835 #: build/C/man2/kill.2:70
1836 msgid ""
1837 "The B<kill>()  system call can be used to send any signal to any process "
1838 "group or process."
1839 msgstr ""
1840 "システムコールの B<kill>()  は、任意のプロセス・グループもしくはプロセスにシ"
1841 "グナルを 送るのに使われる。"
1842
1843 #. type: Plain text
1844 #: build/C/man2/kill.2:73
1845 msgid ""
1846 "If I<pid> is positive, then signal I<sig> is sent to the process with the ID "
1847 "specified by I<pid>."
1848 msgstr ""
1849 "I<pid> に正の値を指定した場合、シグナル I<sig> が I<pid> で指定された ID を持"
1850 "つプロセスに送られる。"
1851
1852 #. type: Plain text
1853 #: build/C/man2/kill.2:76
1854 msgid ""
1855 "If I<pid> equals 0, then I<sig> is sent to every process in the process "
1856 "group of the calling process."
1857 msgstr ""
1858 "I<pid> に 0 を指定した場合、 呼び出し元のプロセスのプロセス・グループに属する"
1859 "すべてのプロセスに I<sig> で指定したシグナルが送られる。"
1860
1861 #. type: Plain text
1862 #: build/C/man2/kill.2:80
1863 msgid ""
1864 "If I<pid> equals -1, then I<sig> is sent to every process for which the "
1865 "calling process has permission to send signals, except for process 1 "
1866 "(I<init>), but see below."
1867 msgstr ""
1868 "I<pid> に -1 を指定した場合、 I<sig> で指定したシグナルが、 呼び出し元のプロ"
1869 "セスがシグナルを送る許可を持つ全てのプロセスに 送られる。但し、プロセス番号 "
1870 "1 (I<init>) へはシグナルは送られない。 以下の関連部分も参照のこと。"
1871
1872 #. type: Plain text
1873 #: build/C/man2/kill.2:83
1874 msgid ""
1875 "If I<pid> is less than -1, then I<sig> is sent to every process in the "
1876 "process group whose ID is I<-pid>."
1877 msgstr ""
1878 "I<pid> に -1 より小さな値を指定した場合、 ID が I<-pid> のプロセス・グループ"
1879 "に属するすべてのプロセスに I<sig> で指定したシグナルが送られる。"
1880
1881 #. type: Plain text
1882 #: build/C/man2/kill.2:88
1883 msgid ""
1884 "If I<sig> is 0, then no signal is sent, but error checking is still "
1885 "performed; this can be used to check for the existence of a process ID or "
1886 "process group ID."
1887 msgstr ""
1888 "I<sig> に 0 を指定した場合、シグナルは送られないが、 エラーのチェックは行われ"
1889 "る。これを使って、プロセス ID や プロセスグループ ID の存在確認を行うことがで"
1890 "きる。"
1891
1892 #. type: Plain text
1893 #: build/C/man2/kill.2:100
1894 msgid ""
1895 "For a process to have permission to send a signal it must either be "
1896 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
1897 "effective user ID of the sending process must equal the real or saved set-"
1898 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
1899 "the sending and receiving processes belong to the same session.  "
1900 "(Historically, the rules were different; see NOTES.)"
1901 msgstr ""
1902 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
1903 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
1904 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
1905 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
1906 "プロセスが 同じセッションに属していれば十分である。 (過去には、 ルールは違っ"
1907 "ていた; 「注意」の節を参照。)"
1908
1909 #. type: Plain text
1910 #: build/C/man2/kill.2:105
1911 msgid ""
1912 "On success (at least one signal was sent), zero is returned.  On error, -1 "
1913 "is returned, and I<errno> is set appropriately."
1914 msgstr ""
1915 "成功した場合 (少なくとも一つのシグナルが送信された場合)、 0 が返される。エ"
1916 "ラーの場合 -1 が返され、 I<errno> が適切に設定される。"
1917
1918 #. type: Plain text
1919 #: build/C/man2/kill.2:109
1920 msgid "An invalid signal was specified."
1921 msgstr "無効なシグナルを指定した。"
1922
1923 #. type: TP
1924 #: build/C/man2/kill.2:109 build/C/man2/killpg.2:99 build/C/man2/prctl.2:985
1925 #: build/C/man2/prctl.2:997 build/C/man2/prctl.2:1007
1926 #: build/C/man2/prctl.2:1015 build/C/man2/rt_sigqueueinfo.2:148
1927 #: build/C/man2/sigaltstack.2:153 build/C/man3/sigqueue.3:102
1928 #: build/C/man2/tkill.2:103
1929 #, no-wrap
1930 msgid "B<EPERM>"
1931 msgstr "B<EPERM>"
1932
1933 #. type: Plain text
1934 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103
1935 msgid ""
1936 "The process does not have permission to send the signal to any of the target "
1937 "processes."
1938 msgstr ""
1939 "プロセスが、受信するプロセスのいずれに対しても シグナルを送る許可を持っていな"
1940 "い。"
1941
1942 #. type: TP
1943 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103 build/C/man2/killpg.2:107
1944 #: build/C/man2/rt_sigqueueinfo.2:156 build/C/man3/sigqueue.3:108
1945 #: build/C/man2/tkill.2:108
1946 #, no-wrap
1947 msgid "B<ESRCH>"
1948 msgstr "B<ESRCH>"
1949
1950 #. type: Plain text
1951 #: build/C/man2/kill.2:121
1952 msgid ""
1953 "The pid or process group does not exist.  Note that an existing process "
1954 "might be a zombie, a process which already committed termination, but has "
1955 "not yet been B<wait>(2)ed for."
1956 msgstr ""
1957 "指定したプロセスまたはプロセス・グループが存在しなかった。 ゾンビプロセスは存"
1958 "在するプロセスとしてみなされる。 ゾンビプロセスとはすでに処理は終了している"
1959 "が、親プロセスによる B<wait>()  処理が行われていないプロセスのことである。"
1960
1961 #. type: Plain text
1962 #: build/C/man2/kill.2:123 build/C/man2/pause.2:59 build/C/man2/wait.2:424
1963 msgid "SVr4, 4.3BSD, POSIX.1-2001."
1964 msgstr "SVr4, 4.3BSD, POSIX.1-2001."
1965
1966 #. type: Plain text
1967 #: build/C/man2/kill.2:131
1968 msgid ""
1969 "The only signals that can be sent to process ID 1, the I<init> process, are "
1970 "those for which I<init> has explicitly installed signal handlers.  This is "
1971 "done to assure the system is not brought down accidentally."
1972 msgstr ""
1973 "プロセス番号 1 の I<init> プロセスに送ることができるシグナルは、 I<init> が明"
1974 "示的にシグナルハンドラを設定したシグナルだけである。 こうなっているのは、誤っ"
1975 "てシステムをダウンさせないようにするためである。"
1976
1977 #. type: Plain text
1978 #: build/C/man2/kill.2:137
1979 msgid ""
1980 "POSIX.1-2001 requires that I<kill(-1,sig)> send I<sig> to all processes that "
1981 "the calling process may send signals to, except possibly for some "
1982 "implementation-defined system processes.  Linux allows a process to signal "
1983 "itself, but on Linux the call I<kill(-1,sig)> does not signal the calling "
1984 "process."
1985 msgstr ""
1986 "POSIX.1-2001 では、 I<kill(-1,sig)> が 呼び出し元のプロセスがシグナルを送るこ"
1987 "とが出来るプロセス全てに I<sig> を送ることを要求している。 但し、システム実装"
1988 "時に定められたシステムプロセスは シグナルの送信対象から除外される。 Linux で"
1989 "は、プロセスが自分自身にシグナルを送れるようになっているが、 Linux の "
1990 "I<kill(-1,sig)> は呼び出し元のプロセスにはシグナルを送らない。"
1991
1992 #. type: Plain text
1993 #: build/C/man2/kill.2:147
1994 msgid ""
1995 "POSIX.1-2001 requires that if a process sends a signal to itself, and the "
1996 "sending thread does not have the signal blocked, and no other thread has it "
1997 "unblocked or is waiting for it in B<sigwait>(3), at least one unblocked "
1998 "signal must be delivered to the sending thread before the B<kill>()  returns."
1999 msgstr ""
2000 "POSIX.1-2001 では以下の動作になることを要求している。 自分自身にシグナルを送"
2001 "ると、シグナルを送ったスレッドがそのシグナルをブロック しておらず、他のどのス"
2002 "レッドもそのシグナルを受ける状態にもなく B<sigwait>(3)  でそのシグナルを待っ"
2003 "てもいない場合、 B<kill>()  が返る前に少なくとも一つのブロックされていない シ"
2004 "グナルがシグナルを送ったスレッドに配送されなければならない。"
2005
2006 #. type: SS
2007 #: build/C/man2/kill.2:147 build/C/man3/sigpause.3:82 build/C/man2/wait.2:479
2008 #, no-wrap
2009 msgid "Linux notes"
2010 msgstr "Linux での注意"
2011
2012 #.  In the 0.* kernels things chopped and changed quite
2013 #.  a bit - MTK, 24 Jul 02
2014 #. type: Plain text
2015 #: build/C/man2/kill.2:161
2016 msgid ""
2017 "Across different kernel versions, Linux has enforced different rules for the "
2018 "permissions required for an unprivileged process to send a signal to another "
2019 "process.  In kernels 1.0 to 1.2.2, a signal could be sent if the effective "
2020 "user ID of the sender matched effective user ID of the target, or the real "
2021 "user ID of the sender matched the real user ID of the target.  From kernel "
2022 "1.2.3 until 1.3.77, a signal could be sent if the effective user ID of the "
2023 "sender matched either the real or effective user ID of the target.  The "
2024 "current rules, which conform to POSIX.1-2001, were adopted in kernel 1.3.78."
2025 msgstr ""
2026 "Linux では、特権のないプロセスが他のプロセスにシグナルを送信するために必要な"
2027 "権限についてのルールが、カーネルバージョンにより違っている。 カーネル 1.0 か"
2028 "ら 1.2.2 では、送信側の実効ユーザー ID が送信対象の実効ユーザー ID と一致する"
2029 "か、 送信側の実ユーザー ID が送信対象の実ユーザー ID と一致すれば、 シグナル"
2030 "を送信できた。 カーネル 1.2.3 から 1.3.77では、送信側の実効ユーザー ID が送信"
2031 "対象の実ユーザー ID か実効ユーザー ID のいずれかと一致すればシグナルを送信で"
2032 "きた。 現在のルールは、POSIX.1-2001 に準拠しており、カーネル 1.3.78 以降で 適"
2033 "用されている。"
2034
2035 #. type: Plain text
2036 #: build/C/man2/kill.2:171
2037 msgid ""
2038 "In 2.6 kernels up to and including 2.6.7, there was a bug that meant that "
2039 "when sending signals to a process group, B<kill>()  failed with the error "
2040 "B<EPERM> if the caller did not have permission to send the signal to I<any> "
2041 "(rather than I<all>) of the members of the process group.  Notwithstanding "
2042 "this error return, the signal was still delivered to all of the processes "
2043 "for which the caller had permission to signal."
2044 msgstr ""
2045 "バージョン 2.6.7 以前の 2.6 系のカーネルには、 プロセスグループにシグナルを"
2046 "送ったときに、 呼び出し元のプロセスがプロセスグループの (全メンバーではなく) "
2047 "一部のメンバーに対してのみシグナルを送る許可を持っていない場合に、 "
2048 "B<kill>()  がエラー B<EPERM> で失敗するというバグがある。 このエラーが返るに"
2049 "もかかわらず、そのシグナルは呼び出し元が シグナルを送る許可を持つ全てのプロセ"
2050 "スへ送られる。"
2051
2052 #. type: Plain text
2053 #: build/C/man2/kill.2:181
2054 msgid ""
2055 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), "
2056 "B<sigqueue>(3), B<capabilities>(7), B<credentials>(7), B<signal>(7)"
2057 msgstr ""
2058 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), "
2059 "B<sigqueue>(3), B<credentials>(7), B<capabilities>(7), B<signal>(7)"
2060
2061 #. type: TH
2062 #: build/C/man2/killpg.2:42
2063 #, no-wrap
2064 msgid "KILLPG"
2065 msgstr "KILLPG"
2066
2067 #. type: TH
2068 #: build/C/man2/killpg.2:42 build/C/man3/sigset.3:26
2069 #, no-wrap
2070 msgid "2010-09-20"
2071 msgstr "2010-09-20"
2072
2073 #. type: Plain text
2074 #: build/C/man2/killpg.2:45
2075 msgid "killpg - send signal to a process group"
2076 msgstr "killpg - シグナルをプロセス・グループに送る"
2077
2078 #. type: Plain text
2079 #: build/C/man2/killpg.2:49
2080 msgid "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2081 msgstr "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2082
2083 #. type: TP
2084 #: build/C/man2/killpg.2:55
2085 #, no-wrap
2086 msgid "B<killpg>():"
2087 msgstr "B<killpg>():"
2088
2089 #. type: Plain text
2090 #: build/C/man2/killpg.2:59 build/C/man2/sigaltstack.2:46
2091 #: build/C/man3/siginterrupt.3:51 build/C/man2/wait4.2:60
2092 msgid ""
2093 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2094 "_XOPEN_SOURCE_EXTENDED"
2095 msgstr ""
2096 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2097 "_XOPEN_SOURCE_EXTENDED"
2098
2099 #. type: Plain text
2100 #: build/C/man2/killpg.2:69
2101 msgid ""
2102 "B<killpg>()  sends the signal I<sig> to the process group I<pgrp>.  See "
2103 "B<signal>(7)  for a list of signals."
2104 msgstr ""
2105 "B<killpg>()  は I<sig> で指定したシグナルを I<pgrp> で指定したプロセス・グ"
2106 "ループに送る。 シグナルの定義の一覧は B<signal>(7)  を参照のこと。"
2107
2108 #. type: Plain text
2109 #: build/C/man2/killpg.2:78
2110 msgid ""
2111 "If I<pgrp> is 0, B<killpg>()  sends the signal to the calling process's "
2112 "process group.  (POSIX says: If I<pgrp> is less than or equal to 1, the "
2113 "behavior is undefined.)"
2114 msgstr ""
2115 "引き数 I<pgrp> に 0 を指定した場合には B<killpg>()  は呼び出し元のプロセスが"
2116 "属しているプロセス・グループに対してシグナルを送る。 (POSIX では以下のように"
2117 "記述されている: I<pgrp> が 1 以下である場合、動作は未定義である。)"
2118
2119 #. type: Plain text
2120 #: build/C/man2/killpg.2:89
2121 msgid ""
2122 "For a process to have permission to send a signal it must either be "
2123 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
2124 "effective user ID of the sending process must equal the real or saved set-"
2125 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
2126 "the sending and receiving processes belong to the same session."
2127 msgstr ""
2128 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
2129 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
2130 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
2131 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
2132 "プロセスが 同じセッションに属していれば十分である。"
2133
2134 #. type: Plain text
2135 #: build/C/man2/killpg.2:99
2136 msgid "I<sig> is not a valid signal number."
2137 msgstr "I<sig> で指定された値は無効なシグナル番号である。"
2138
2139 #. type: Plain text
2140 #: build/C/man2/killpg.2:107
2141 msgid "No process can be found in the process group specified by I<pgrp>."
2142 msgstr ""
2143 "I<pgrp> で指定されたプロセス・グループに属するプロセスが存在しなかった。"
2144
2145 #. type: Plain text
2146 #: build/C/man2/killpg.2:111
2147 msgid ""
2148 "The process group was given as 0 but the sending process does not have a "
2149 "process group."
2150 msgstr ""
2151 "プロセス・グループとして 0 が指定されたが、送信プロセスは プロセス・グループ"
2152 "を持っていない。"
2153
2154 #. type: Plain text
2155 #: build/C/man2/killpg.2:115
2156 msgid ""
2157 "SVr4, 4.4BSD (the B<killpg>()  function call first appeared in 4BSD), "
2158 "POSIX.1-2001."
2159 msgstr "SVr4, 4.4BSD (B<killpg>()  は 4BSD で初めて追加された), POSIX.1-2001。"
2160
2161 #. type: Plain text
2162 #: build/C/man2/killpg.2:129
2163 #, fuzzy
2164 #| msgid ""
2165 #| "There are various differences between the permission checking in BSD-type "
2166 #| "systems and System V-type systems.  See the POSIX rationale for "
2167 #| "B<kill>().  A difference not mentioned by POSIX concerns the return value "
2168 #| "B<EPERM>: BSD documents that no signal is sent and B<EPERM> returned when "
2169 #| "the permission check failed for at least one target process, while POSIX "
2170 #| "documents B<EPERM> only when the permission check failed for all target "
2171 #| "processes."
2172 msgid ""
2173 "There are various differences between the permission checking in BSD-type "
2174 "systems and System\\ V-type systems.  See the POSIX rationale for "
2175 "B<kill>().  A difference not mentioned by POSIX concerns the return value "
2176 "B<EPERM>: BSD documents that no signal is sent and B<EPERM> returned when "
2177 "the permission check failed for at least one target process, while POSIX "
2178 "documents B<EPERM> only when the permission check failed for all target "
2179 "processes."
2180 msgstr ""
2181 "BSD 系システムと System V 系システムでは、 許可のチェックに様々な違いがあ"
2182 "る。 B<kill>(2)  についての POSIX の原理 (rationale) を参照すること。 POSIX "
2183 "で記述されていない違いとしては、返り値 B<EPERM> がある。 BSD では「送信先プロ"
2184 "セスの許可のチェックが 1 つでも失敗した場合は、 シグナルが送信されず、 "
2185 "B<EPERM> が返される」と記述されている。 POSIX では「送信先プロセスの許可の"
2186 "チェックが全て失敗した場合にのみ、 B<EPERM> が返される」と記述されている。"
2187
2188 #. type: Plain text
2189 #: build/C/man2/killpg.2:134
2190 msgid ""
2191 "On Linux, B<killpg>()  is implemented as a library function that makes the "
2192 "call I<kill(-pgrp,\\ sig)>."
2193 msgstr ""
2194 "Linux では、 B<killpg>()  はライブラリ関数として実装されており、 I<kill(-"
2195 "pgrp,\\ sig)> の呼び出しが行われる。"
2196
2197 #. type: Plain text
2198 #: build/C/man2/killpg.2:140
2199 msgid ""
2200 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<capabilities>(7), "
2201 "B<credentials>(7)"
2202 msgstr ""
2203 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<credentials>(7), "
2204 "B<capabilities>(7)"
2205
2206 #. type: TH
2207 #: build/C/man2/pause.2:30
2208 #, no-wrap
2209 msgid "PAUSE"
2210 msgstr "PAUSE"
2211
2212 #. type: TH
2213 #: build/C/man2/pause.2:30
2214 #, no-wrap
2215 msgid "2008-10-06"
2216 msgstr "2008-10-06"
2217
2218 #. type: Plain text
2219 #: build/C/man2/pause.2:33
2220 msgid "pause - wait for signal"
2221 msgstr "pause - シグナルを待つ"
2222
2223 #. type: Plain text
2224 #: build/C/man2/pause.2:35
2225 msgid "B<#include E<lt>unistd.hE<gt>>"
2226 msgstr "B<#include E<lt>unistd.hE<gt>>"
2227
2228 #. type: Plain text
2229 #: build/C/man2/pause.2:37
2230 msgid "B<int pause(void);>"
2231 msgstr "B<int pause(void);>"
2232
2233 #. type: Plain text
2234 #: build/C/man2/pause.2:42
2235 msgid ""
2236 "B<pause>()  causes the calling process (or thread) to sleep until a signal "
2237 "is delivered that either terminates the process or causes the invocation of "
2238 "a signal-catching function."
2239 msgstr ""
2240 "B<pause>()  は、呼び出したプロセス (またはスレッド) を、 そのプロセスを終了さ"
2241 "せたり、シグナル捕捉関数が起動されるような シグナルが配送されるまで、スリープ"
2242 "させる。"
2243
2244 #.  .BR ERESTARTNOHAND .
2245 #. type: Plain text
2246 #: build/C/man2/pause.2:53
2247 msgid ""
2248 "B<pause>()  returns only when a signal was caught and the signal-catching "
2249 "function returned.  In this case, B<pause>()  returns -1, and I<errno> is "
2250 "set to B<EINTR>."
2251 msgstr ""
2252 "B<pause>()  が返るのは、シグナルを受け取りシグナル捕獲関数から返った場合だけ"
2253 "である。 この場合は B<pause>()  は -1 を返し、 I<errno> に B<EINTR> が設定さ"
2254 "れる。"
2255
2256 #. type: TP
2257 #: build/C/man2/pause.2:54 build/C/man2/sigsuspend.2:81
2258 #: build/C/man2/sigwaitinfo.2:123 build/C/man2/wait.2:410
2259 #, no-wrap
2260 msgid "B<EINTR>"
2261 msgstr "B<EINTR>"
2262
2263 #. type: Plain text
2264 #: build/C/man2/pause.2:57
2265 msgid "a signal was caught and the signal-catching function returned."
2266 msgstr "シグナルを受け取り、シグナル捕獲関数から帰ってきた。"
2267
2268 #. type: Plain text
2269 #: build/C/man2/pause.2:64
2270 msgid "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2271 msgstr "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2272
2273 #. type: TH
2274 #: build/C/man2/prctl.2:52
2275 #, no-wrap
2276 msgid "PRCTL"
2277 msgstr "PRCTL"
2278
2279 #. type: TH
2280 #: build/C/man2/prctl.2:52 build/C/man3/sigsetops.3:31
2281 #, no-wrap
2282 msgid "2014-04-14"
2283 msgstr "2014-04-14"
2284
2285 #. type: Plain text
2286 #: build/C/man2/prctl.2:55
2287 msgid "prctl - operations on a process"
2288 msgstr "prctl - プロセスの操作を行なう"
2289
2290 #. type: Plain text
2291 #: build/C/man2/prctl.2:58
2292 #, no-wrap
2293 msgid "B<#include E<lt>sys/prctl.hE<gt>>\n"
2294 msgstr "B<#include E<lt>sys/prctl.hE<gt>>\n"
2295
2296 #. type: Plain text
2297 #: build/C/man2/prctl.2:61
2298 #, no-wrap
2299 msgid ""
2300 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2301 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2302 msgstr ""
2303 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2304 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2305
2306 #. type: Plain text
2307 #: build/C/man2/prctl.2:68
2308 msgid ""
2309 "B<prctl>()  is called with a first argument describing what to do (with "
2310 "values defined in I<E<lt>linux/prctl.hE<gt>>), and further arguments with a "
2311 "significance depending on the first one.  The first argument can be:"
2312 msgstr ""
2313 "B<prctl>()  の動作は最初の引き数によって決定される (この値は I<E<lt>linux/"
2314 "prctl.hE<gt>> に定義されている)。 残りの引き数は最初の引き数によって変化す"
2315 "る。 一番目の引き数として以下のものを指定できる:"
2316
2317 #. type: TP
2318 #: build/C/man2/prctl.2:68
2319 #, no-wrap
2320 msgid "B<PR_CAPBSET_READ> (since Linux 2.6.25)"
2321 msgstr "B<PR_CAPBSET_READ> (Linux 2.6.25 以降)"
2322
2323 #. type: Plain text
2324 #: build/C/man2/prctl.2:80
2325 msgid ""
2326 "Return (as the function result) 1 if the capability specified in I<arg2> is "
2327 "in the calling thread's capability bounding set, or 0 if it is not.  (The "
2328 "capability constants are defined in I<E<lt>linux/capability.hE<gt>>.)  The "
2329 "capability bounding set dictates whether the process can receive the "
2330 "capability through a file's permitted capability set on a subsequent call to "
2331 "B<execve>(2)."
2332 msgstr ""
2333 "で指定されたケーパビリティが呼び出したスレッドのケーパビリティ バインディング"
2334 "セット (capability bounding set) に含まれている場合、 (関数の結果として) 1 を"
2335 "返し、そうでない場合 0 を返す (ケーパビリティ定数は I<E<lt>linux/capability."
2336 "hE<gt>> で定義されている)。 ケーパビリティバウンディングセットは、 "
2337 "B<execve>(2)  を呼び出した際に、ファイルの許可 (permitted) ケーパビリティの中"
2338 "で そのプロセスが獲得できるケーパビリティを指示するものである。"
2339
2340 #. type: Plain text
2341 #: build/C/man2/prctl.2:85
2342 msgid ""
2343 "If the capability specified in I<arg2> is not valid, then the call fails "
2344 "with the error B<EINVAL>."
2345 msgstr ""
2346 "I<arg2> に指定されたケーパビリティが有効でない場合、 呼び出しはエラー "
2347 "B<EINVAL> で失敗する。"
2348
2349 #. type: TP
2350 #: build/C/man2/prctl.2:85
2351 #, no-wrap
2352 msgid "B<PR_CAPBSET_DROP> (since Linux 2.6.25)"
2353 msgstr "B<PR_CAPBSET_DROP> (Linux 2.6.25 以降)"
2354
2355 #. type: Plain text
2356 #: build/C/man2/prctl.2:94
2357 msgid ""
2358 "If the calling thread has the B<CAP_SETPCAP> capability, then drop the "
2359 "capability specified by I<arg2> from the calling thread's capability "
2360 "bounding set.  Any children of the calling thread will inherit the newly "
2361 "reduced bounding set."
2362 msgstr ""
2363 "呼び出したスレッドがケーパビリティ B<CAP_SETPCAP> を持っている場合、 呼び出し"
2364 "たスレッドのケーパビリティバウンディングセットから I<arg2> で指定されたケーパ"
2365 "ビリティを外す。 呼び出したスレッドの子プロセスは変更後のバウンディングセット"
2366 "を 継承する。"
2367
2368 #. type: Plain text
2369 #: build/C/man2/prctl.2:106
2370 msgid ""
2371 "The call fails with the error: B<EPERM> if the calling thread does not have "
2372 "the B<CAP_SETPCAP>; B<EINVAL> if I<arg2> does not represent a valid "
2373 "capability; or B<EINVAL> if file capabilities are not enabled in the kernel, "
2374 "in which case bounding sets are not supported."
2375 msgstr ""
2376 "呼び出したスレッドが B<CAP_SETPCAP> を持っていない場合、呼び出しはエラー "
2377 "B<EPERM> で失敗する。 I<arg2> に指定されたケーパビリティが有効でない場合、 "
2378 "B<EINVAL> で失敗する。 ファイルケーパビリティがカーネルで有効になっていない場"
2379 "合 (この場合にはバウンディングセットがサポートされない)、 B<EINVAL> で失敗す"
2380 "る。"
2381
2382 #. type: TP
2383 #: build/C/man2/prctl.2:106
2384 #, no-wrap
2385 msgid "B<PR_SET_CHILD_SUBREAPER> (since Linux 3.4)"
2386 msgstr "B<PR_SET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2387
2388 #.  commit ebec18a6d3aa1e7d84aab16225e87fd25170ec2b
2389 #. type: Plain text
2390 #: build/C/man2/prctl.2:131
2391 msgid ""
2392 "If I<arg2> is nonzero, set the \"child subreaper\" attribute of the calling "
2393 "process; if I<arg2> is zero, unset the attribute.  When a process is marked "
2394 "as a child subreaper, all of the children that it creates, and their "
2395 "descendants, will be marked as having a subreaper.  In effect, a subreaper "
2396 "fulfills the role of B<init>(1)  for its descendant processes.  Upon "
2397 "termination of a process that is orphaned (i.e., its immediate parent has "
2398 "already terminated)  and marked as having a subreaper, the nearest still "
2399 "living ancestor subreaper will receive a B<SIGCHLD> signal and be able to "
2400 "B<wait>(2)  on the process to discover its termination status."
2401 msgstr ""
2402
2403 #. type: TP
2404 #: build/C/man2/prctl.2:131
2405 #, no-wrap
2406 msgid "B<PR_GET_CHILD_SUBREAPER> (since Linux 3.4)"
2407 msgstr "B<PR_GET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2408
2409 #. type: Plain text
2410 #: build/C/man2/prctl.2:136
2411 msgid ""
2412 "Return the \"child subreaper\" setting of the caller, in the location "
2413 "pointed to by I<(int\\ *) arg2>."
2414 msgstr ""
2415
2416 #. type: TP
2417 #: build/C/man2/prctl.2:136
2418 #, no-wrap
2419 msgid "B<PR_SET_DUMPABLE> (since Linux 2.3.20)"
2420 msgstr "B<PR_SET_DUMPABLE> (Linux 2.3.20 以降)"
2421
2422 #.  See http://marc.theaimsgroup.com/?l=linux-kernel&m=115270289030630&w=2
2423 #.  Subject:    Fix prctl privilege escalation (CVE-2006-2451)
2424 #.  From:       Marcel Holtmann <marcel () holtmann ! org>
2425 #.  Date:       2006-07-12 11:12:00
2426 #. type: Plain text
2427 #: build/C/man2/prctl.2:162
2428 msgid ""
2429 "Set the state of the flag determining whether core dumps are produced for "
2430 "the calling process upon delivery of a signal whose default behavior is to "
2431 "produce a core dump.  (Normally, this flag is set for a process by default, "
2432 "but it is cleared when a set-user-ID or set-group-ID program is executed and "
2433 "also by various system calls that manipulate process UIDs and GIDs).  In "
2434 "kernels up to and including 2.6.12, I<arg2> must be either 0 (process is not "
2435 "dumpable) or 1 (process is dumpable).  Between kernels 2.6.13 and 2.6.17, "
2436 "the value 2 was also permitted, which caused any binary which normally would "
2437 "not be dumped to be dumped readable by root only; for security reasons, this "
2438 "feature has been removed.  (See also the description of I</proc/sys/fs/"
2439 "suid_dumpable> in B<proc>(5).)  Processes that are not dumpable can not be "
2440 "attached via B<ptrace>(2)  B<PTRACE_ATTACH>."
2441 msgstr ""
2442 "(Linux 2.3.20 以降) デフォルトの振る舞いではコアダンプを引き起こすようなシグ"
2443 "ナルを受信したときに、呼び出し元のプロセスでコアダンプを生成するかどうかを決"
2444 "定するフラグを設定する (通常このフラグは、デフォルトではセットされているが、 "
2445 "set-user-ID あるいは set-group-ID プログラムが実行されたり、 さまざまなシステ"
2446 "ムコールによってプロセスの UID や GID が操作されたときに クリアされる)。 "
2447 "2.6.12 以前のカーネルでは、 I<arg2> は 0 (プロセスはダンプ不可) あるいは 1 "
2448 "(プロセスはダンプ可能) の どちらかでなければならない。 2.6.13 から 2.6.17 ま"
2449 "でのカーネルでは、値 2 も認められていた。 この値を指定すると、通常はダンプさ"
2450 "れないバイナリが root だけが 読み込み可能な形でダンプされた。 セキュリティ上"
2451 "の理由から、この機能は削除された (B<proc>(5) の I</proc/sys/fs/"
2452 "suid_dumpable> の説明も参照)。 ダンプ不可のプロセスを B<ptrace>(2) "
2453 "B<PTRACE_ATTACH> 経由で接続することはできない。"
2454
2455 #. type: TP
2456 #: build/C/man2/prctl.2:162
2457 #, no-wrap
2458 msgid "B<PR_GET_DUMPABLE> (since Linux 2.3.20)"
2459 msgstr "B<PR_GET_DUMPABLE> (Linux 2.3.20 以降)"
2460
2461 #.  Since Linux 2.6.13, the dumpable flag can have the value 2,
2462 #.  but in 2.6.13 PR_GET_DUMPABLE simply returns 1 if the dumpable
2463 #.  flags has a nonzero value.  This was fixed in 2.6.14.
2464 #. type: Plain text
2465 #: build/C/man2/prctl.2:169
2466 msgid ""
2467 "Return (as the function result) the current state of the calling process's "
2468 "dumpable flag."
2469 msgstr ""
2470 "(Linux 2.3.20 以降)  呼び出し元プロセスにおけるダンプ可能フラグの 現在の状態"
2471 "を (関数の結果として) 返す。"
2472
2473 #. type: TP
2474 #: build/C/man2/prctl.2:169
2475 #, no-wrap
2476 msgid "B<PR_SET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2477 msgstr "B<PR_SET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2478
2479 #.  Respectively 0, 1, 2
2480 #. type: Plain text
2481 #: build/C/man2/prctl.2:179
2482 msgid ""
2483 "Set the endian-ness of the calling process to the value given in I<arg2>, "
2484 "which should be one of the following: B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2485 "or B<PR_ENDIAN_PPC_LITTLE> (PowerPC pseudo little endian)."
2486 msgstr ""
2487 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<arg2> で指定された値"
2488 "に設定する。 指定できる値は B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2489 "B<PR_ENDIAN_PPC_LITTLE> (PowerPC 擬似リトルエンディアン)  のいずれか一つであ"
2490 "る。"
2491
2492 #. type: TP
2493 #: build/C/man2/prctl.2:179
2494 #, no-wrap
2495 msgid "B<PR_GET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2496 msgstr "B<PR_GET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2497
2498 #. type: Plain text
2499 #: build/C/man2/prctl.2:184
2500 msgid ""
2501 "Return the endian-ness of the calling process, in the location pointed to by "
2502 "I<(int\\ *) arg2>."
2503 msgstr ""
2504 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<(int\\ *) arg2> が指"
2505 "す場所に格納して返す。"
2506
2507 #. type: TP
2508 #: build/C/man2/prctl.2:184
2509 #, no-wrap
2510 msgid "B<PR_SET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2511 msgstr "B<PR_SET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2512
2513 #. type: Plain text
2514 #: build/C/man2/prctl.2:191
2515 msgid ""
2516 "Set floating-point emulation control bits to I<arg2>.  Pass "
2517 "B<PR_FPEMU_NOPRINT> to silently emulate fp operations accesses, or "
2518 "B<PR_FPEMU_SIGFPE> to not emulate fp operations and send B<SIGFPE> instead."
2519 msgstr ""
2520 "浮動小数点エミュレーション (floating-point emulation) 制御ビットを I<arg2> で"
2521 "指定された値に設定する。 指定できる値は B<PR_FPEMU_NOPRINT> (浮動小数点命令ア"
2522 "クセスを黙って エミュレートする) か B<PR_FPEMU_SIGFPE> (浮動小数点命令をエ"
2523 "ミュレートせず、 代わりに B<SIGFPE> を送る) である。"
2524
2525 #. type: TP
2526 #: build/C/man2/prctl.2:191
2527 #, no-wrap
2528 msgid "B<PR_GET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2529 msgstr "B<PR_GET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2530
2531 #. type: Plain text
2532 #: build/C/man2/prctl.2:196
2533 msgid ""
2534 "Return floating-point emulation control bits, in the location pointed to by "
2535 "I<(int\\ *) arg2>."
2536 msgstr ""
2537 "浮動小数点エミュレーション制御ビットの値を I<(int\\ *) arg2> が指す場所に格納"
2538 "して返す。"
2539
2540 #. type: TP
2541 #: build/C/man2/prctl.2:196
2542 #, no-wrap
2543 msgid "B<PR_SET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2544 msgstr "B<PR_SET_FPEXC> (Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2545
2546 #. type: Plain text
2547 #: build/C/man2/prctl.2:209
2548 msgid ""
2549 "Set floating-point exception mode to I<arg2>.  Pass B<PR_FP_EXC_SW_ENABLE> "
2550 "to use FPEXC for FP exception enables, B<PR_FP_EXC_DIV> for floating-point "
2551 "divide by zero, B<PR_FP_EXC_OVF> for floating-point overflow, "
2552 "B<PR_FP_EXC_UND> for floating-point underflow, B<PR_FP_EXC_RES> for floating-"
2553 "point inexact result, B<PR_FP_EXC_INV> for floating-point invalid operation, "
2554 "B<PR_FP_EXC_DISABLED> for FP exceptions disabled, B<PR_FP_EXC_NONRECOV> for "
2555 "async nonrecoverable exception mode, B<PR_FP_EXC_ASYNC> for async "
2556 "recoverable exception mode, B<PR_FP_EXC_PRECISE> for precise exception mode."
2557 msgstr ""
2558 "浮動小数点例外モード (floating-point exception mode) を I<arg2> で指定された"
2559 "値に設定する。 指定できるのは以下の値である: B<PR_FP_EXC_SW_ENABLE> (FPEXC で"
2560 "浮動小数点例外を有効にする)、 B<PR_FP_EXC_DIV> (0 除算)、 B<PR_FP_EXC_OVF> "
2561 "(オーバーフロー)、 B<PR_FP_EXC_UND> (アンダーフロー)、 B<PR_FP_EXC_RES> (不正"
2562 "確な結果 (inexact result))、 B<PR_FP_EXC_INV> (不正な命令 (invalid "
2563 "operation))、 B<PR_FP_EXC_DISABLED> (浮動小数点例外を無効にする)、 "
2564 "B<PR_FP_EXC_NONRECOV> (async nonrecoverable exception mode)、 "
2565 "B<PR_FP_EXC_ASYNC> (async recoverable exception mode)、 B<PR_FP_EXC_PRECISE> "
2566 "(precise exception mode)。"
2567
2568 #. type: TP
2569 #: build/C/man2/prctl.2:209
2570 #, no-wrap
2571 msgid "B<PR_GET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2572 msgstr "B<PR_GET_FPEXC>(Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2573
2574 #. type: Plain text
2575 #: build/C/man2/prctl.2:214
2576 msgid ""
2577 "Return floating-point exception mode, in the location pointed to by I<(int\\ "
2578 "*) arg2>."
2579 msgstr ""
2580 "浮動小数点例外モードの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
2581
2582 #. type: TP
2583 #: build/C/man2/prctl.2:214
2584 #, no-wrap
2585 msgid "B<PR_SET_KEEPCAPS> (since Linux 2.2.18)"
2586 msgstr "B<PR_SET_KEEPCAPS> (Linux 2.2.18 以降)"
2587
2588 #. type: Plain text
2589 #: build/C/man2/prctl.2:232
2590 msgid ""
2591 "Set the state of the thread's \"keep capabilities\" flag, which determines "
2592 "whether the threads's permitted capability set is cleared when a change is "
2593 "made to the threads's user IDs such that the threads's real UID, effective "
2594 "UID, and saved set-user-ID all become nonzero when at least one of them "
2595 "previously had the value 0.  By default, the permitted capability set is "
2596 "cleared when such a change is made; setting the \"keep capabilities\" flag "
2597 "prevents it from being cleared.  I<arg2> must be either 0 (permitted "
2598 "capabilities are cleared)  or 1 (permitted capabilities are kept).  (A "
2599 "thread's I<effective> capability set is always cleared when such a "
2600 "credential change is made, regardless of the setting of the \"keep "
2601 "capabilities\" flag.)  The \"keep capabilities\" value will be reset to 0 on "
2602 "subsequent calls to B<execve>(2)."
2603 msgstr ""
2604 "スレッドの「ケーパビリティ保持」フラグを設定する。 このフラグは、スレッドの"
2605 "実 UID、実効 UID、保存 set-user-ID のうち少なくとも一つが 0 であった状態か"
2606 "ら、これら全てが 0 以外に変更されたとき、 スレッドの許可ケーパビリティ集合が"
2607 "クリアされるかどうかを決定する。 デフォルトでは、このような変更が行われた場"
2608 "合、許可ケーパビリティセットはクリアされる。「ケーパビリティ保持」フラグを設"
2609 "定すると、許可ケーパビリティセットはクリアされなくなる。 I<arg2> は 0 (許可"
2610 "ケーパビリティをクリアする) か 1 (許可ケーパビリティを保持する) の どちらかで"
2611 "なければならない。 (このような ID の変更が行われた場合、「ケーパビリティ保"
2612 "持」フラグの設定に関わらず、スレッドのI<実効>ケーパビリティセットは常にクリア"
2613 "される。) B<execve>(2) が呼び出されると、「ケーパビリティ保持」フラグは 0 に"
2614 "リセットされる。"
2615
2616 #. type: TP
2617 #: build/C/man2/prctl.2:232
2618 #, no-wrap
2619 msgid "B<PR_GET_KEEPCAPS> (since Linux 2.2.18)"
2620 msgstr "B<PR_GET_KEEPCAPS> (Linux 2.2.18 以降)"
2621
2622 #. type: Plain text
2623 #: build/C/man2/prctl.2:236
2624 msgid ""
2625 "Return (as the function result) the current state of the calling threads's "
2626 "\"keep capabilities\" flag."
2627 msgstr ""
2628 "呼び出し元スレッドにおける「ケーパビリティ保持」フラグの 現在の状態を (関数の"
2629 "結果として) 返す。"
2630
2631 #. type: TP
2632 #: build/C/man2/prctl.2:236
2633 #, no-wrap
2634 msgid "B<PR_SET_NAME> (since Linux 2.6.9)"
2635 msgstr "B<PR_SET_NAME> (Linux 2.6.9 以降)"
2636
2637 #.  TASK_COMM_LEN in include/linux/sched.h
2638 #. type: Plain text
2639 #: build/C/man2/prctl.2:253
2640 msgid ""
2641 "Set the name of the calling thread, using the value in the location pointed "
2642 "to by I<(char\\ *) arg2>.  The name can be up to 16 bytes long, and should "
2643 "be null-terminated if it contains fewer bytes.  This is the same attribute "
2644 "that can be set via B<pthread_setname_np>(3)  and retrieved using "
2645 "B<pthread_getname_np>(3).  The attribute is likewise accessible via I</proc/"
2646 "self/task/[tid]/comm>, where I<tid> is the name of the calling thread."
2647 msgstr ""
2648 "呼び出し元スレッドのプロセス名を I<(char\\ *) arg2> が指す場所に格納された値"
2649 "を使って設定する。 名前は最大で 16 バイトであり、 それより少ないバイト数の場"
2650 "合はヌルで終端すべきである。 これは、 B<pthread_setname_np>(3) で設定でき、 "
2651 "B<pthread_getname_np>(3) で取得できるのと同じ属性である。 同様に、 I<tid> が"
2652 "呼び出し元スレッドの ID の場合、 この属性は I</proc/self/task/[tid]/comm> 経"
2653 "由でもアクセス可能である。"
2654
2655 #. type: TP
2656 #: build/C/man2/prctl.2:253
2657 #, no-wrap
2658 msgid "B<PR_GET_NAME> (since Linux 2.6.11)"
2659 msgstr "B<PR_GET_NAME> (Linux 2.6.11 以降)"
2660
2661 #. type: Plain text
2662 #: build/C/man2/prctl.2:260
2663 msgid ""
2664 "Return the name of the calling thread, in the buffer pointed to by I<(char\\ "
2665 "*) arg2>.  The buffer should allow space for up to 16 bytes; the returned "
2666 "string will be null-terminated if it is shorter than that."
2667 msgstr ""
2668 "呼び出し元スレッドの名前を I<(char\\ *) arg2> が指す場所に格納して返す。 バッ"
2669 "ファは最大で 16 バイトを格納できるようにすべきである。 返される文字列は、長さ"
2670 "が 16 バイトより短い場合はヌル終端される。"
2671
2672 #. type: TP
2673 #: build/C/man2/prctl.2:260
2674 #, no-wrap
2675 msgid "B<PR_SET_NO_NEW_PRIVS> (since Linux 3.5)"
2676 msgstr "B<PR_SET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2677
2678 #. type: Plain text
2679 #: build/C/man2/prctl.2:283
2680 msgid ""
2681 "Set the calling process's I<no_new_privs> bit to the value in I<arg2>.  With "
2682 "I<no_new_privs> set to 1, B<execve>(2)  promises not to grant privileges to "
2683 "do anything that could not have been done without the B<execve>(2)  call "
2684 "(for example, rendering the set-user-ID and set-group-ID permission bits, "
2685 "and file capabilities non-functional).  Once set, this bit cannot be unset.  "
2686 "The setting of this bit is inherited by children created by B<fork>(2)  and "
2687 "B<clone>(2), and preserved across B<execve>(2)."
2688 msgstr ""
2689
2690 #. type: Plain text
2691 #: build/C/man2/prctl.2:286
2692 msgid ""
2693 "For more information, see the kernel source file I<Documentation/prctl/"
2694 "no_new_privs.txt>."
2695 msgstr ""
2696 "詳しい情報は、カーネルソースファイル I<Documentation/prctl/no_new_privs.txt> "
2697 "を参照。"
2698
2699 #. type: TP
2700 #: build/C/man2/prctl.2:286
2701 #, no-wrap
2702 msgid "B<PR_GET_NO_NEW_PRIVS> (since Linux 3.5)"
2703 msgstr "B<PR_GET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2704
2705 #. type: Plain text
2706 #: build/C/man2/prctl.2:297
2707 msgid ""
2708 "Return (as the function result) the value of the I<no_new_privs> bit for the "
2709 "current process.  A value of 0 indicates the regular B<execve>(2)  "
2710 "behavior.  A value of 1 indicates B<execve>(2)  will operate in the "
2711 "privilege-restricting mode described above."
2712 msgstr ""
2713
2714 #. type: TP
2715 #: build/C/man2/prctl.2:297
2716 #, no-wrap
2717 msgid "B<PR_SET_PDEATHSIG> (since Linux 2.1.57)"
2718 msgstr "B<PR_SET_PDEATHSIG> (Linux 2.1.57 以降)"
2719
2720 #. type: Plain text
2721 #: build/C/man2/prctl.2:310
2722 msgid ""
2723 "Set the parent process death signal of the calling process to I<arg2> "
2724 "(either a signal value in the range 1..maxsig, or 0 to clear).  This is the "
2725 "signal that the calling process will get when its parent dies.  This value "
2726 "is cleared for the child of a B<fork>(2)  and (since Linux 2.4.36 / 2.6.23)  "
2727 "when executing a set-user-ID or set-group-ID binary.  This value is "
2728 "preserved across B<execve>(2)."
2729 msgstr ""
2730 "親プロセス死亡シグナル (parent process death signal) を I<arg2> に設定する "
2731 "(設定できるシグナル値の範囲は 1..maxsig であり、0 は通知の解除である)。 呼び"
2732 "出し元プロセスの親プロセスが死んだ際に、ここで設定した値が シグナルとして通知"
2733 "される。この値は B<fork>(2) の子プロセスでは解除される。 (Linux 2.4.36 以降お"
2734 "よび 2.6.23 以降では) set-user-ID もしくは set-group-ID されたバイナリを実行"
2735 "した場合にも、このフラグは解除される。この値は B<execve>(2) の前後で保持され"
2736 "る。"
2737
2738 #. type: TP
2739 #: build/C/man2/prctl.2:310
2740 #, no-wrap
2741 msgid "B<PR_GET_PDEATHSIG> (since Linux 2.3.15)"
2742 msgstr "B<PR_GET_PDEATHSIG> (Linux 2.3.15 以降)"
2743
2744 #. type: Plain text
2745 #: build/C/man2/prctl.2:315
2746 msgid ""
2747 "Return the current value of the parent process death signal, in the location "
2748 "pointed to by I<(int\\ *) arg2>."
2749 msgstr ""
2750 "親プロセス死亡シグナルの現在の値を I<(int\\ *) arg2> が指す場所に格納して返"
2751 "す。"
2752
2753 #. type: TP
2754 #: build/C/man2/prctl.2:315
2755 #, no-wrap
2756 msgid "B<PR_SET_PTRACER> (since Linux 3.4)"
2757 msgstr "B<PR_SET_PTRACER> (Linux 3.4 以降)"
2758
2759 #.  commit 2d514487faf188938a4ee4fb3464eeecfbdcf8eb
2760 #.  commit bf06189e4d14641c0148bea16e9dd24943862215
2761 #. type: Plain text
2762 #: build/C/man2/prctl.2:340
2763 msgid ""
2764 "This is meaningful only when the Yama LSM is enabled and in mode 1 "
2765 "(\"restricted ptrace\", visible via I</proc/sys/kernel/yama/ptrace_scope>).  "
2766 "When a \"ptracer process ID\" is passed in I<arg2>, the caller is declaring "
2767 "that the ptracer process can B<ptrace>(2)  the calling process as if it were "
2768 "a direct process ancestor.  Each B<PR_SET_PTRACER> operation replaces the "
2769 "previous \"ptracer process ID\".  Employing B<PR_SET_PTRACER> with I<arg2> "
2770 "set to 0 clears the caller's \"ptracer process ID\".  If I<arg2> is "
2771 "B<PR_SET_PTRACER_ANY>, the ptrace restrictions introduced by Yama are "
2772 "effectively disabled for the calling process."
2773 msgstr ""
2774
2775 #. type: Plain text
2776 #: build/C/man2/prctl.2:343
2777 msgid ""
2778 "For further information, see the kernel source file I<Documentation/security/"
2779 "Yama.txt>."
2780 msgstr ""
2781 "詳しい情報は、カーネルソースファイル I<Documentation/security/Yama.txt> を参"
2782 "照。"
2783
2784 #. type: TP
2785 #: build/C/man2/prctl.2:343
2786 #, no-wrap
2787 msgid "B<PR_SET_SECCOMP> (since Linux 2.6.23)"
2788 msgstr "B<PR_SET_SECCOMP> (Linux 2.6.23 以降)"
2789
2790 #.  See http://thread.gmane.org/gmane.linux.kernel/542632
2791 #.  [PATCH 0 of 2] seccomp updates
2792 #.  andrea@cpushare.com
2793 #. type: Plain text
2794 #: build/C/man2/prctl.2:354
2795 msgid ""
2796 "Set the secure computing (seccomp) mode for the calling thread, to limit the "
2797 "available system calls.  The seccomp mode is selected via I<arg2>.  (The "
2798 "seccomp constants are defined in I<E<lt>linux/seccomp.hE<gt>>.)"
2799 msgstr ""
2800 "呼び出したスレッドのセキュアコンピューティング (seccomp) モードを設定する。 "
2801 "seccomp モードは利用できるシステムコールを制限するものである。 seccomp モード"
2802 "は I<arg2> で指定できる (seccomp 定数は I<E<lt>linux/seccomp.hE<gt>> で定義さ"
2803 "れている)。"
2804
2805 #. type: Plain text
2806 #: build/C/man2/prctl.2:375
2807 msgid ""
2808 "With I<arg2> set to B<SECCOMP_MODE_STRICT> the only system calls that the "
2809 "thread is permitted to make are B<read>(2), B<write>(2), B<_exit>(2), and "
2810 "B<sigreturn>(2).  Other system calls result in the delivery of a B<SIGKILL> "
2811 "signal.  Strict secure computing mode is useful for number-crunching "
2812 "applications that may need to execute untrusted byte code, perhaps obtained "
2813 "by reading from a pipe or socket.  This operation is available only if the "
2814 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2815 msgstr ""
2816 "I<arg2> を B<SECCOMP_MODE_STRICT> に設定すると、 そのスレッドが呼び出しを許可"
2817 "されるシステムコールは B<read>(2), B<write>(2), B<_exit>(2), B<sigreturn>(2) "
2818 "だけになる。 それ以外のシステムコールを呼び出すと、シグナル B<SIGKILL> が配送"
2819 "される。 パイプやソケットから読み込んだ、 信頼できないバイトコードを実行する"
2820 "必要がある大量の演算を行うアプリケーションにおいて、 strict secure computing "
2821 "モードは役立つ。 この操作は利用できるのは、 カーネルが B<CONFIG_SECCOMP> を有"
2822 "効にして作成されている場合だけである。"
2823
2824 #. type: Plain text
2825 #: build/C/man2/prctl.2:390
2826 msgid ""
2827 "With I<arg2> set to B<SECCOMP_MODE_FILTER> (since Linux 3.5)  the system "
2828 "calls allowed are defined by a pointer to a Berkeley Packet Filter passed in "
2829 "I<arg3>.  This argument is a pointer to I<struct sock_fprog>; it can be "
2830 "designed to filter arbitrary system calls and system call arguments.  This "
2831 "mode is available only if the kernel is configured with "
2832 "B<CONFIG_SECCOMP_FILTER> enabled."
2833 msgstr ""
2834 "I<arg2> を B<SECCOMP_MODE_FILTER> (Linux 3.5 以降) に設定すると、 許可される"
2835 "システムコールは I<arg3> で渡された Berkeley Packet Filter へのポインターで定"
2836 "義される。 この引き数は I<struct sock_fprog> へのポインターである。 これは任"
2837 "意のシステムコールやシステムコール引き数をフィルタリングするために設計され"
2838 "た。 このモードはカーネルで B<CONFIG_SECCOMP_FILTER> が有効になっている場合に"
2839 "のみ利用可能である。"
2840
2841 #. type: Plain text
2842 #: build/C/man2/prctl.2:405
2843 msgid ""
2844 "If B<SECCOMP_MODE_FILTER> filters permit B<fork>(2), then the seccomp mode "
2845 "is inherited by children created by B<fork>(2); if B<execve>(2)  is "
2846 "permitted, then the seccomp mode is preserved across B<execve>(2).  If the "
2847 "filters permit B<prctl>()  calls, then additional filters can be added; they "
2848 "are run in order until the first non-allow result is seen."
2849 msgstr ""
2850 "B<SECCOMP_MODE_FILTER> フィルターで B<fork>(2) が許可されている場合、 "
2851 "seccomp モードは B<fork>(2) で作成された子プロセスに継承される。 "
2852 "B<execve>(2) が許可されている場合、 seccomp モードは B<execve>(2) の前後で維"
2853 "持される。 フィルターで B<prctl>() コールが許可されている場合、 追加でフィル"
2854 "ターが定義され、 これらのフィルターは許可されないものが見つかるまで指定された"
2855 "順序で実行される。"
2856
2857 #. type: Plain text
2858 #: build/C/man2/prctl.2:408
2859 msgid ""
2860 "For further information, see the kernel source file I<Documentation/prctl/"
2861 "seccomp_filter.txt>."
2862 msgstr ""
2863 "詳しい情報は、カーネルソースファイル I<Documentation/prctl/seccomp_filter."
2864 "txt> を参照。"
2865
2866 #. type: TP
2867 #: build/C/man2/prctl.2:408
2868 #, no-wrap
2869 msgid "B<PR_GET_SECCOMP> (since Linux 2.6.23)"
2870 msgstr "B<PR_GET_SECCOMP> (Linux 2.6.23 以降)"
2871
2872 #. type: Plain text
2873 #: build/C/man2/prctl.2:424
2874 msgid ""
2875 "Return (as the function result)  the secure computing mode of the calling "
2876 "thread.  If the caller is not in secure computing mode, this operation "
2877 "returns 0; if the caller is in strict secure computing mode, then the "
2878 "B<prctl>()  call will cause a B<SIGKILL> signal to be sent to the process.  "
2879 "If the caller is in filter mode, and this system call is allowed by the "
2880 "seccomp filters, it returns 2.  This operation is available only if the "
2881 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2882 msgstr ""
2883 "呼び出したスレッドの secure computing モードを (関数の結果として) 返す。 呼び"
2884 "出したスレッドが secure computing モードでなかった場合、 この操作は 0 を返"
2885 "す。 呼び出したスレッドが secure computing モードの場合、 B<prctl>()  を呼び"
2886 "出すとシグナル B<SIGKILL> がそのプロセスに送信される。 呼び出したスレッドが"
2887 "フィルタモードで、 このシステムコールが seccomp フィルタにより許可されている"
2888 "場合、 2 を返す。 この操作が利用できるのは、カーネルが B<CONFIG_SECCOMP> を有"
2889 "効にして作成されている場合だけである。"
2890
2891 #. type: TP
2892 #: build/C/man2/prctl.2:424
2893 #, no-wrap
2894 msgid "B<PR_SET_SECUREBITS> (since Linux 2.6.26)"
2895 msgstr "B<PR_SET_SECUREBITS> (Linux 2.6.26 以降)"
2896
2897 #. type: Plain text
2898 #: build/C/man2/prctl.2:430
2899 msgid ""
2900 "Set the \"securebits\" flags of the calling thread to the value supplied in "
2901 "I<arg2>.  See B<capabilities>(7)."
2902 msgstr ""
2903 "呼び出したスレッドの \"securebits\" フラグを I<arg2> で渡された値に設定す"
2904 "る。 B<capabilities>(7)  参照。"
2905
2906 #. type: TP
2907 #: build/C/man2/prctl.2:430
2908 #, no-wrap
2909 msgid "B<PR_GET_SECUREBITS> (since Linux 2.6.26)"
2910 msgstr "B<PR_GET_SECUREBITS> (Linux 2.6.26 以降)"
2911
2912 #. type: Plain text
2913 #: build/C/man2/prctl.2:436
2914 msgid ""
2915 "Return (as the function result)  the \"securebits\" flags of the calling "
2916 "thread.  See B<capabilities>(7)."
2917 msgstr ""
2918 "呼び出したスレッドの \"securebits\" フラグを (関数の結果として) 返す。 "
2919 "B<capabilities>(7)  参照。"
2920
2921 #. type: TP
2922 #: build/C/man2/prctl.2:436
2923 #, no-wrap
2924 msgid "B<PR_SET_THP_DISABLE> (since Linux 3.15)"
2925 msgstr "B<PR_SET_THP_DISABLE> (Linux 3.15 以降)"
2926
2927 #.  commit a0715cc22601e8830ace98366c0c2bd8da52af52
2928 #. type: Plain text
2929 #: build/C/man2/prctl.2:452
2930 msgid ""
2931 "Set the state of the \"THP disable\" flag for the calling thread.  If "
2932 "I<arg2> has a nonzero value, the flag is set, otherwise it is cleared.  "
2933 "Setting this flag provides a method for disabling transparent huge pages for "
2934 "jobs where the code cannot be modified, and using a malloc hook with "
2935 "B<madvise>(2)  is not an option (i.e., statically allocated data).  The "
2936 "setting of the \"THP disable\" flag is inherited by a child created via "
2937 "B<fork>(2)  and is preserved across B<execve>(2)."
2938 msgstr ""
2939 "呼び出したスレッドの \"THP disable\" (THP 無効) フラグの状態を設定する。 "
2940 "I<arg2> が 0 以外の場合、フラグは有効になり、そうでない場合はクリーンされ"
2941 "る。 このフラグを設定する方法により、 コードを変更できなかったり "
2942 "B<madvise>(2) の malloc hook をが有効ではないジョブ (この方法は静的に割り当て"
2943 "られたデータには有効ではない)に対して、 transparent huge pages を無効にする手"
2944 "段が提供される。 \"THP disable\" フラグの設定は B<fork>(2) で作成された子プロ"
2945 "セスに継承され、 B<execve> の前後で維持される。"
2946
2947 #. type: TP
2948 #: build/C/man2/prctl.2:452
2949 #, no-wrap
2950 msgid "B<PR_GET_THP_DISABLE> (since Linux 3.15)"
2951 msgstr "B<PR_GET_THP_DISABLE> (Linux 3.15 以降)"
2952
2953 #. type: Plain text
2954 #: build/C/man2/prctl.2:457
2955 msgid ""
2956 "Return (via the function result) the current setting of the \"THP disable\" "
2957 "flag for the calling thread: either 1, if the flag is set, or 0, if it is "
2958 "not."
2959 msgstr ""
2960 "呼び出し元スレッドの \"THP disable\" フラグの現在の設定を (関数の結果として) "
2961 "返す。フラグがセットされている場合は 1 が、セットされていない場合は 0 が返"
2962 "る。"
2963
2964 #. type: TP
2965 #: build/C/man2/prctl.2:457
2966 #, no-wrap
2967 msgid "B<PR_GET_TID_ADDRESS> (since Linux 3.5)"
2968 msgstr "B<PR_GET_TID_ADDRESS> (Linux 3.5 以降)"
2969
2970 #.  commit 300f786b2683f8bb1ec0afb6e1851183a479c86d
2971 #. type: Plain text
2972 #: build/C/man2/prctl.2:472
2973 msgid ""
2974 "Retrieve the I<clear_child_tid> address set by B<set_tid_address>(2)  and "
2975 "the B<clone>(2)  B<CLONE_CHILD_CLEARTID> flag, in the location pointed to by "
2976 "I<(int\\ **)\\ arg2>.  This feature is available only if the kernel is built "
2977 "with the B<CONFIG_CHECKPOINT_RESTORE> option enabled."
2978 msgstr ""
2979 "B<set_tid_address>(2) や B<clone>(2) B<CLONE_CHILD_CLEARTID> フラグで設定され"
2980 "た I<clear_child_tid> を取得し、 I<(int\\ **)\\ arg2> が指す場所に格納して返"
2981 "す。 この機能はカーネルが B<CONFIG_CHECKPOINT_RESTORE> オプションを有効にして"
2982 "作成されている場合にのみ利用できる。"
2983
2984 #. type: TP
2985 #: build/C/man2/prctl.2:472
2986 #, no-wrap
2987 msgid "B<PR_SET_TIMERSLACK> (since Linux 2.6.28)"
2988 msgstr "B<PR_SET_TIMERSLACK> (Linux 2.6.28 以降)"
2989
2990 #.  See https://lwn.net/Articles/369549/
2991 #.  commit 6976675d94042fbd446231d1bd8b7de71a980ada
2992 #.  It seems that it's not possible to set the timer slack to zero;
2993 #.  The minimum value is 1? Seems a little strange.
2994 #. type: Plain text
2995 #: build/C/man2/prctl.2:491
2996 msgid ""
2997 "Set the current timer slack for the calling thread to the nanosecond value "
2998 "supplied in I<arg2>.  If I<arg2> is less than or equal to zero, reset the "
2999 "current timer slack to the thread's default timer slack value.  The timer "
3000 "slack is used by the kernel to group timer expirations for the calling "
3001 "thread that are close to one another; as a consequence, timer expirations "
3002 "for the thread may be up to the specified number of nanoseconds late (but "
3003 "will never expire early).  Grouping timer expirations can help reduce system "
3004 "power consumption by minimizing CPU wake-ups."
3005 msgstr ""
3006
3007 #.  List obtained by grepping for futex usage in glibc source
3008 #. type: Plain text
3009 #: build/C/man2/prctl.2:511
3010 msgid ""
3011 "The timer expirations affected by timer slack are those set by B<select>(2), "
3012 "B<pselect>(2), B<poll>(2), B<ppoll>(2), B<epoll_wait>(2), B<epoll_pwait>(2), "
3013 "B<clock_nanosleep>(2), B<nanosleep>(2), and B<futex>(2)  (and thus the "
3014 "library functions implemented via futexes, including "
3015 "B<pthread_cond_timedwait>(3), B<pthread_mutex_timedlock>(3), "
3016 "B<pthread_rwlock_timedrdlock>(3), B<pthread_rwlock_timedwrlock>(3), and "
3017 "B<sem_timedwait>(3))."
3018 msgstr ""
3019
3020 #. type: Plain text
3021 #: build/C/man2/prctl.2:515
3022 msgid ""
3023 "Timer slack is not applied to threads that are scheduled under a real-time "
3024 "scheduling policy (see B<sched_setscheduler>(2))."
3025 msgstr ""
3026
3027 #. type: Plain text
3028 #: build/C/man2/prctl.2:532
3029 msgid ""
3030 "Each thread has two associated timer slack values: a \"default\" value, and "
3031 "a \"current\" value.  The current value is the one that governs grouping of "
3032 "timer expirations.  When a new thread is created, the two timer slack values "
3033 "are made the same as the current value of the creating thread.  Thereafter, "
3034 "a thread can adjust its current timer slack value via B<PR_SET_TIMERSLACK> "
3035 "(the default value can't be changed).  The timer slack values of I<init> "
3036 "(PID 1), the ancestor of all processes, are 50,000 nanoseconds (50 "
3037 "microseconds).  The timer slack values are preserved across B<execve>(2)."
3038 msgstr ""
3039
3040 #. type: TP
3041 #: build/C/man2/prctl.2:532
3042 #, no-wrap
3043 msgid "B<PR_GET_TIMERSLACK> (since Linux 2.6.28)"
3044 msgstr "B<PR_GET_TIMERSLACK> (Linux 2.6.28 以降)"
3045
3046 #. type: Plain text
3047 #: build/C/man2/prctl.2:536
3048 msgid ""
3049 "Return (as the function result)  the current timer slack value of the "
3050 "calling thread."
3051 msgstr ""
3052 "呼び出し元スレッドの現在のタイマーのスラック値を (関数の結果として) 返す。"
3053
3054 #. type: TP
3055 #: build/C/man2/prctl.2:536
3056 #, no-wrap
3057 msgid "B<PR_SET_TIMING> (since Linux 2.6.0-test4)"
3058 msgstr "B<PR_SET_TIMING> (Linux 2.6.0-test4 以降)"
3059
3060 #.  0
3061 #.  1
3062 #.  PR_TIMING_TIMESTAMP doesn't do anything in 2.6.26-rc8,
3063 #.  and looking at the patch history, it appears
3064 #.  that it never did anything.
3065 #. type: Plain text
3066 #: build/C/man2/prctl.2:553
3067 msgid ""
3068 "Set whether to use (normal, traditional) statistical process timing or "
3069 "accurate timestamp-based process timing, by passing B<PR_TIMING_STATISTICAL> "
3070 "or B<PR_TIMING_TIMESTAMP> to I<arg2>.  B<PR_TIMING_TIMESTAMP> is not "
3071 "currently implemented (attempting to set this mode will yield the error "
3072 "B<EINVAL>)."
3073 msgstr ""
3074 "(通常の、伝統的に使われてきた) 統計的なプロセスタイミングを使用するか、 正確"
3075 "なタイムスタンプに基づくプロセスタイミングを使用するかを設定する。 I<arg2> に"
3076 "指定できる値は B<PR_TIMING_STATISTICAL> か B<PR_TIMING_TIMESTAMP> である。 "
3077 "B<PR_TIMING_TIMESTAMP> は現在のところ実装されていない (このモードに設定しよう"
3078 "とするとエラー B<EINVAL> が起こることだろう)。"
3079
3080 #. type: TP
3081 #: build/C/man2/prctl.2:553
3082 #, no-wrap
3083 msgid "B<PR_GET_TIMING> (since Linux 2.6.0-test4)"
3084 msgstr "B<PR_GET_TIMING> (Linux 2.6.0-test4 以降)"
3085
3086 #. type: Plain text
3087 #: build/C/man2/prctl.2:557
3088 msgid ""
3089 "Return (as the function result) which process timing method is currently in "
3090 "use."
3091 msgstr "現在使用中のプロセスタイミングを決める方法を (関数の結果として) 返す。"
3092
3093 #. type: TP
3094 #: build/C/man2/prctl.2:557
3095 #, no-wrap
3096 msgid "B<PR_TASK_PERF_EVENTS_DISABLE> (since Linux 2.6.31)"
3097 msgstr "B<PR_TASK_PERF_EVENTS_DISABLE> (Linux 2.6.31 以降)"
3098
3099 #. type: Plain text
3100 #: build/C/man2/prctl.2:566
3101 msgid ""
3102 "Disable all performance counters attached to the calling process, regardless "
3103 "of whether the counters were created by this process or another process.  "
3104 "Performance counters created by the calling process for other processes are "
3105 "unaffected.  For more information on performance counters, see the Linux "
3106 "kernel source file I<tools/perf/design.txt>."
3107 msgstr ""
3108 "呼び出したプロセスに接続されたすべての性能カウンターを無効にする。 カウンター"
3109 "がこのプロセスにより作成されたか他のプロセスにより作成されたかは関係ない。 呼"
3110 "び出したプロセスが他のプロセス用に作成した性能カウンターは影響を受けない。 性"
3111 "能カウンターの詳細については Linux カーネルソースの I<tools/perf/design.txt> "
3112 "を参照。"
3113
3114 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3115 #. type: Plain text
3116 #: build/C/man2/prctl.2:572
3117 msgid ""
3118 "Originally called B<PR_TASK_PERF_COUNTERS_DISABLE>; renamed (with same "
3119 "numerical value)  in Linux 2.6.32."
3120 msgstr ""
3121 "以前は B<PR_TASK_PERF_COUNTERS_DISABLE> と呼ばれていた。 Linux 2.6.32 で名前"
3122 "が変更された (数値は同じままである)。"
3123
3124 #. type: TP
3125 #: build/C/man2/prctl.2:572
3126 #, no-wrap
3127 msgid "B<PR_TASK_PERF_EVENTS_ENABLE> (since Linux 2.6.31)"
3128 msgstr "B<PR_TASK_PERF_EVENTS_ENABLE> (Linux 2.6.31 以降)"
3129
3130 #. type: Plain text
3131 #: build/C/man2/prctl.2:577
3132 msgid ""
3133 "The converse of B<PR_TASK_PERF_EVENTS_DISABLE>; enable performance counters "
3134 "attached to the calling process."
3135 msgstr ""
3136 "B<PR_TASK_PERF_EVENTS_DISABLE> の逆。 呼び出したプロセスに接続された性能カウ"
3137 "ンターを有効にする。"
3138
3139 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3140 #.  commit cdd6c482c9ff9c55475ee7392ec8f672eddb7be6
3141 #. type: Plain text
3142 #: build/C/man2/prctl.2:584
3143 msgid ""
3144 "Originally called B<PR_TASK_PERF_COUNTERS_ENABLE>; renamed in Linux 2.6.32."
3145 msgstr ""
3146 "以前は B<PR_TASK_PERF_COUNTERS_ENABLE> と呼ばれていた。 Linux 2.6.32 で名前が"
3147 "変更された。"
3148
3149 #. type: TP
3150 #: build/C/man2/prctl.2:584
3151 #, no-wrap
3152 msgid "B<PR_SET_TSC> (since Linux 2.6.26, x86 only)"
3153 msgstr "B<PR_SET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3154
3155 #. type: Plain text
3156 #: build/C/man2/prctl.2:597
3157 msgid ""
3158 "Set the state of the flag determining whether the timestamp counter can be "
3159 "read by the process.  Pass B<PR_TSC_ENABLE> to I<arg2> to allow it to be "
3160 "read, or B<PR_TSC_SIGSEGV> to generate a B<SIGSEGV> when the process tries "
3161 "to read the timestamp counter."
3162 msgstr ""
3163 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態を"
3164 "設定する。 読み出しを許可する場合は I<arg2> に B<PR_TSC_ENABLE> を、そのプロ"
3165 "セスがタイムスタンプ・カウンタを読み出そうとした際に B<SIGSEGV> を発生させる"
3166 "場合には B<PR_TSC_SIGSEGV> を渡す。"
3167
3168 #. type: TP
3169 #: build/C/man2/prctl.2:597
3170 #, no-wrap
3171 msgid "B<PR_GET_TSC> (since Linux 2.6.26, x86 only)"
3172 msgstr "B<PR_GET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3173
3174 #. type: Plain text
3175 #: build/C/man2/prctl.2:603
3176 msgid ""
3177 "Return the state of the flag determining whether the timestamp counter can "
3178 "be read, in the location pointed to by I<(int\\ *) arg2>."
3179 msgstr ""
3180 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態"
3181 "を I<(int\\ *) arg2> が指す場所に格納して返す。"
3182
3183 #. type: TP
3184 #: build/C/man2/prctl.2:603
3185 #, no-wrap
3186 msgid "B<PR_SET_UNALIGN>"
3187 msgstr "B<PR_SET_UNALIGN>"
3188
3189 #. type: Plain text
3190 #: build/C/man2/prctl.2:613
3191 msgid ""
3192 "(Only on: ia64, since Linux 2.3.48; parisc, since Linux 2.6.15; PowerPC, "
3193 "since Linux 2.6.18; Alpha, since Linux 2.6.22)  Set unaligned access control "
3194 "bits to I<arg2>.  Pass B<PR_UNALIGN_NOPRINT> to silently fix up unaligned "
3195 "user accesses, or B<PR_UNALIGN_SIGBUS> to generate B<SIGBUS> on unaligned "
3196 "user access."
3197 msgstr ""
3198 "(ia64 では Linux 2.3.48 以降; parisc では Linux 2.6.15 以降; PowerPC では "
3199 "Linux 2.6.18 以降; Alpha では Linux 2.6.22 以降; これらのアーキテクチャの"
3200 "み)  unaligned アクセス制御ビットを I<arg2> で指定された値に設定する。 指定で"
3201 "きる値は B<PR_UNALIGN_NOPRINT> (unaligned なユーザアクセスを黙って 修正する) "
3202 "か B<PR_UNALIGN_SIGBUS> (unaligned なユーザアクセスがあった場合 B<SIGBUS> を"
3203 "生成する) である。"
3204
3205 #. type: TP
3206 #: build/C/man2/prctl.2:613
3207 #, no-wrap
3208 msgid "B<PR_GET_UNALIGN>"
3209 msgstr "B<PR_GET_UNALIGN>"
3210
3211 #. type: Plain text
3212 #: build/C/man2/prctl.2:620
3213 msgid ""
3214 "(see B<PR_SET_UNALIGN> for information on versions and architectures)  "
3215 "Return unaligned access control bits, in the location pointed to by I<(int\\ "
3216 "*) arg2>."
3217 msgstr ""
3218 "(バージョンとアーキテクチャの情報は B<PR_SET_UNALIGN> 参照)  unaligned アクセ"
3219 "ス制御ビットの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
3220
3221 #. type: TP
3222 #: build/C/man2/prctl.2:620
3223 #, no-wrap
3224 msgid "B<PR_MCE_KILL> (since Linux 2.6.32)"
3225 msgstr "B<PR_MCE_KILL> (Linux 2.6.32 以降)"
3226
3227 #. type: Plain text
3228 #: build/C/man2/prctl.2:660
3229 msgid ""
3230 "Set the machine check memory corruption kill policy for the current thread.  "
3231 "If I<arg2> is B<PR_MCE_KILL_CLEAR>, clear the thread memory corruption kill "
3232 "policy and use the system-wide default.  (The system-wide default is defined "
3233 "by I</proc/sys/vm/memory_failure_early_kill>; see B<proc>(5).)  If I<arg2> "
3234 "is B<PR_MCE_KILL_SET>, use a thread-specific memory corruption kill policy.  "
3235 "In this case, I<arg3> defines whether the policy is I<early kill> "
3236 "(B<PR_MCE_KILL_EARLY>), I<late kill> (B<PR_MCE_KILL_LATE>), or the system-"
3237 "wide default (B<PR_MCE_KILL_DEFAULT>).  Early kill means that the thread "
3238 "receives a B<SIGBUS> signal as soon as hardware memory corruption is "
3239 "detected inside its address space.  In late kill mode, the process is killed "
3240 "only when it accesses a corrupted page.  See B<sigaction>(2)  for more "
3241 "information on the B<SIGBUS> signal.  The policy is inherited by children.  "
3242 "The remaining unused B<prctl>()  arguments must be zero for future "
3243 "compatibility."
3244 msgstr ""
3245
3246 #. type: TP
3247 #: build/C/man2/prctl.2:660
3248 #, no-wrap
3249 msgid "B<PR_MCE_KILL_GET> (since Linux 2.6.32)"
3250 msgstr "B<PR_MCE_KILL_GET> (Linux 2.6.32 以降)"
3251
3252 #. type: Plain text
3253 #: build/C/man2/prctl.2:666
3254 msgid ""
3255 "Return the current per-process machine check kill policy.  All unused "
3256 "B<prctl>()  arguments must be zero."
3257 msgstr ""
3258
3259 #. type: TP
3260 #: build/C/man2/prctl.2:666
3261 #, no-wrap
3262 msgid "B<PR_SET_MM> (since Linux 3.3)"
3263 msgstr "B<PR_SET_MM> (Linux 3.3 以降)"
3264
3265 #.  commit 028ee4be34a09a6d48bdf30ab991ae933a7bc036
3266 #. type: Plain text
3267 #: build/C/man2/prctl.2:687
3268 msgid ""
3269 "Modify certain kernel memory map descriptor fields of the calling process.  "
3270 "Usually these fields are set by the kernel and dynamic loader (see B<ld."
3271 "so>(8)  for more information) and a regular application should not use this "
3272 "feature.  However, there are cases, such as self-modifying programs, where a "
3273 "program might find it useful to change its own memory map.  This feature is "
3274 "available only if the kernel is built with the B<CONFIG_CHECKPOINT_RESTORE> "
3275 "option enabled.  The calling process must have the B<CAP_SYS_RESOURCE> "
3276 "capability.  The value in I<arg2> is one of the options below, while I<arg3> "
3277 "provides a new value for the option."
3278 msgstr ""
3279 "呼び出したプロセスのカーネルメモリマップディスクリプタのフィールドを変更す"
3280 "る。 これらのフィールドは通常カーネルと動的リンカーにより設定される (詳しい情"
3281 "報は B<ld.so> を参照)。 通常のアプリケーションはこの機能を利用すべきではな"
3282 "い。 しかしながら、自分を書き換えるプログラムなど、 プログラムが自分自身のメ"
3283 "モリマップを変更するのが有用な場面もある。 この機能はカーネルが "
3284 "B<CONFIG_CHECKPOINT_RESTORE> オプションを有効にして作成されている場合にのみ利"
3285 "用できる。 呼び出したプロセスは B<CAP_SYS_RESOURCE> ケーパビリティを持ってい"
3286 "なければならない。 I<arg2> の値には以下のいずれかを指定し、 I<arg3> でそのオ"
3287 "プションの新しい値を指定する。"
3288
3289 #. type: TP
3290 #: build/C/man2/prctl.2:688
3291 #, no-wrap
3292 msgid "B<PR_SET_MM_START_CODE>"
3293 msgstr "B<PR_SET_MM_START_CODE>"
3294
3295 #. type: Plain text
3296 #: build/C/man2/prctl.2:697
3297 msgid ""
3298 "Set the address above which the program text can run.  The corresponding "
3299 "memory area must be readable and executable, but not writable or sharable "
3300 "(see B<mprotect>(2)  and B<mmap>(2)  for more information)."
3301 msgstr ""
3302 "プログラムテキストを実行できるアドレスの上限を設定する。 対応するメモリ領域は"
3303 "読み出し可能で実行可能でなければならないが、 書き込み可能だったり共有可能だっ"
3304 "たりしてはならない (詳しい情報は B<mprotect>(2) と B<mmap>(2) 参照)。"
3305
3306 #. type: TP
3307 #: build/C/man2/prctl.2:697
3308 #, no-wrap
3309 msgid "B<PR_SET_MM_END_CODE>"
3310 msgstr "B<PR_SET_MM_END_CODE>"
3311
3312 #. type: Plain text
3313 #: build/C/man2/prctl.2:702
3314 msgid ""
3315 "Set the address below which the program text can run.  The corresponding "
3316 "memory area must be readable and executable, but not writable or sharable."
3317 msgstr ""
3318 "プログラムテキストを実行できるアドレスの下限を設定する。 対応するメモリ領域は"
3319 "読み出し可能で実行可能でなければならないが、 書き込み可能だったり共有可能だっ"
3320 "たりしてはならない。"
3321
3322 #. type: TP
3323 #: build/C/man2/prctl.2:702
3324 #, no-wrap
3325 msgid "B<PR_SET_MM_START_DATA>"
3326 msgstr "B<PR_SET_MM_START_DATA>"
3327
3328 #. type: Plain text
3329 #: build/C/man2/prctl.2:708
3330 msgid ""
3331 "Set the address above which initialized and uninitialized (bss) data are "
3332 "placed.  The corresponding memory area must be readable and writable, but "
3333 "not executable or sharable."
3334 msgstr ""
3335 "初期化済データや未初期化 (bss) データを配置する領域のアドレス上限を指定す"
3336 "る。 対応するメモリ領域は読み書き可能でなければならないが、 実行可能だったり"
3337 "共有可能だったりしてはならない。"
3338
3339 #. type: TP
3340 #: build/C/man2/prctl.2:708
3341 #, no-wrap
3342 msgid "B<PR_SET_MM_END_DATA>"
3343 msgstr "B<PR_SET_MM_END_DATA>"
3344
3345 #. type: Plain text
3346 #: build/C/man2/prctl.2:714
3347 msgid ""
3348 "Set the address below which initialized and uninitialized (bss) data are "
3349 "placed.  The corresponding memory area must be readable and writable, but "
3350 "not executable or sharable."
3351 msgstr ""
3352 "初期化済データや未初期化 (bss) データを配置する領域のアドレス下限を指定す"
3353 "る。 対応するメモリ領域は読み書き可能でなければならないが、 実行可能だったり"
3354 "共有可能だったりしてはならない。"
3355
3356 #. type: TP
3357 #: build/C/man2/prctl.2:714
3358 #, no-wrap
3359 msgid "B<PR_SET_MM_START_STACK>"
3360 msgstr "B<PR_SET_MM_START_STACK>"
3361
3362 #. type: Plain text
3363 #: build/C/man2/prctl.2:718
3364 msgid ""
3365 "Set the start address of the stack.  The corresponding memory area must be "
3366 "readable and writable."
3367 msgstr ""
3368 "スタックの開始アドレスを設定する。 対応するメモリ領域は読み書き可能でなければ"
3369 "ならない。"
3370
3371 #. type: TP
3372 #: build/C/man2/prctl.2:718
3373 #, no-wrap
3374 msgid "B<PR_SET_MM_START_BRK>"
3375 msgstr "B<PR_SET_MM_START_BRK>"
3376
3377 #. type: Plain text
3378 #: build/C/man2/prctl.2:730
3379 msgid ""
3380 "Set the address above which the program heap can be expanded with B<brk>(2)  "
3381 "call.  The address must be greater than the ending address of the current "
3382 "program data segment.  In addition, the combined size of the resulting heap "
3383 "and the size of the data segment can't exceed the B<RLIMIT_DATA> resource "
3384 "limit (see B<setrlimit>(2))."
3385 msgstr ""
3386 "B<brk>(2) コールで拡張できるプログラムのヒープ領域のアドレス上限を設定する。 "
3387 "このアドレスは、プログラムの現在のデータセグメントの最終アドレスより大きくな"
3388 "ければならない。 また、 変更後のヒープとデータセグメントのサイズを合わせたサ"
3389 "イズが B<RLIMIT_DATA> リソースリミットを超えることはできない "
3390 "(B<setrlimit>(2) 参照)。"
3391
3392 #. type: TP
3393 #: build/C/man2/prctl.2:730
3394 #, no-wrap
3395 msgid "B<PR_SET_MM_BRK>"
3396 msgstr "B<PR_SET_MM_BRK>"
3397
3398 #. type: Plain text
3399 #: build/C/man2/prctl.2:738
3400 msgid ""
3401 "Set the current B<brk>(2)  value.  The requirements for the address are the "
3402 "same as for the B<PR_SET_MM_START_BRK> option."
3403 msgstr ""
3404 "現在の B<brk>(2) 値を設定する。 このアドレスの要件は B<PR_SET_MM_START_BRK> "
3405 "オプションと同じである。"
3406
3407 #.  commit fe8c7f5cbf91124987106faa3bdf0c8b955c4cf7
3408 #. type: Plain text
3409 #: build/C/man2/prctl.2:741
3410 msgid "The following options are available since Linux 3.5."
3411 msgstr "以下のオプションは Linux 3.5 以降で利用できる。"
3412
3413 #. type: TP
3414 #: build/C/man2/prctl.2:741
3415 #, no-wrap
3416 msgid "B<PR_SET_MM_ARG_START>"
3417 msgstr "B<PR_SET_MM_ARG_START>"
3418
3419 #. type: Plain text
3420 #: build/C/man2/prctl.2:744
3421 msgid "Set the address above which the program command line is placed."
3422 msgstr "プログラムのコマンドラインを配置するアドレスの上限を設定する。"
3423
3424 #. type: TP
3425 #: build/C/man2/prctl.2:744
3426 #, no-wrap
3427 msgid "B<PR_SET_MM_ARG_END>"
3428 msgstr "B<PR_SET_MM_ARG_END>"
3429
3430 #. type: Plain text
3431 #: build/C/man2/prctl.2:747
3432 msgid "Set the address below which the program command line is placed."
3433 msgstr "プログラムのコマンドラインを配置するアドレスの下限を設定する。"
3434
3435 #. type: TP
3436 #: build/C/man2/prctl.2:747
3437 #, no-wrap
3438 msgid "B<PR_SET_MM_ENV_START>"
3439 msgstr "B<PR_SET_MM_ENV_START>"
3440
3441 #. type: Plain text
3442 #: build/C/man2/prctl.2:750
3443 msgid "Set the address above which the program environment is placed."
3444 msgstr ""
3445 "プログラムの環境情報 (environment) を配置するアドレスの上限を設定する。"
3446
3447 #. type: TP
3448 #: build/C/man2/prctl.2:750
3449 #, no-wrap
3450 msgid "B<PR_SET_MM_ENV_END>"
3451 msgstr "B<PR_SET_MM_ENV_END>"
3452
3453 #. type: Plain text
3454 #: build/C/man2/prctl.2:753
3455 msgid "Set the address below which the program environment is placed."
3456 msgstr ""
3457 "プログラムの環境情報 (environment) を配置するアドレスの下限を設定する。"
3458
3459 #. type: Plain text
3460 #: build/C/man2/prctl.2:766
3461 msgid ""
3462 "The address passed with B<PR_SET_MM_ARG_START>, B<PR_SET_MM_ARG_END>, "
3463 "B<PR_SET_MM_ENV_START>, and B<PR_SET_MM_ENV_END> should belong to a process "
3464 "stack area.  Thus, the corresponding memory area must be readable, writable, "
3465 "and (depending on the kernel configuration) have the B<MAP_GROWSDOWN> "
3466 "attribute set (see B<mmap>(2))."
3467 msgstr ""
3468 "B<PR_SET_MM_ARG_START>, B<PR_SET_MM_ARG_END>, B<PR_SET_MM_ENV_START>, "
3469 "B<PR_SET_MM_ENV_END> で指定されるアドレスはプロセスのスタック領域に属している"
3470 "必要がある。 したがって、これらのメモリ領域は読み書き可能でなければならな"
3471 "い。 また、 (カーネル設定によっては) B<MAP_GROWSDOWN> 属性がセットされていな"
3472 "ければならない (B<mmap>(2) 参照)。"
3473
3474 #. type: TP
3475 #: build/C/man2/prctl.2:766
3476 #, no-wrap
3477 msgid "B<PR_SET_MM_AUXV>"
3478 msgstr "B<PR_SET_MM_AUXV>"
3479
3480 #. type: Plain text
3481 #: build/C/man2/prctl.2:775
3482 msgid ""
3483 "Set a new auxiliary vector.  The I<arg3> argument should provide the address "
3484 "of the vector.  The I<arg4> is the size of the vector."
3485 msgstr ""
3486 "新しい補助ベクトル (auxiliary vector) を設定する。 I<arg3> 引き数はベクトルの"
3487 "アドレスを指定し、 I<arg4> はベクトルのサイズを指定する。"
3488
3489 #. type: TP
3490 #: build/C/man2/prctl.2:775
3491 #, no-wrap
3492 msgid "B<PR_SET_MM_EXE_FILE>"
3493 msgstr "B<PR_SET_MM_EXE_FILE>"
3494
3495 #.  commit b32dfe377102ce668775f8b6b1461f7ad428f8b6
3496 #. type: Plain text
3497 #: build/C/man2/prctl.2:787
3498 msgid ""
3499 "Supersede the I</proc/pid/exe> symbolic link with a new one pointing to a "
3500 "new executable file identified by the file descriptor provided in I<arg3> "
3501 "argument.  The file descriptor should be obtained with a regular B<open>(2)  "
3502 "call."
3503 msgstr ""
3504 "I</proc/pid/exe> シンボリックリンクを I<arg3> 引き数で渡された新しい実行可能"
3505 "なファイルディスクリプタを指すシンボリックリンクで置き換える。 ファイルディス"
3506 "クリプタは通常の B<open>(2) コールで取得すべきである。"
3507
3508 #. type: Plain text
3509 #: build/C/man2/prctl.2:794
3510 msgid ""
3511 "To change the symbolic link, one needs to unmap all existing executable "
3512 "memory areas, including those created by the kernel itself (for example the "
3513 "kernel usually creates at least one executable memory area for the ELF I<."
3514 "text> section)."
3515 msgstr ""
3516 "シンボリックリンクを変更するには、 既存の実行可能なメモリ領域のすべてをアン"
3517 "マップする必要がある。これにはカーネル自身が作成した領域も含まれる (例えば、"
3518 "カーネルは通常 ELF I<.text> セクションに少なくとも一つの実行可能なメモリ領域"
3519 "を作成する)。"
3520
3521 #. type: Plain text
3522 #: build/C/man2/prctl.2:800
3523 msgid ""
3524 "The second limitation is that such transitions can be done only once in a "
3525 "process life time.  Any further attempts will be rejected.  This should help "
3526 "system administrators monitor unusual symbolic-link transitions over all "
3527 "processes running on a system."
3528 msgstr ""
3529 "二つ目の制限は、このような変更はプロセスの生存期間で一度だけ行うことができる"
3530 "という点である。 一度変更を行った後で変更を行おうとすると拒否される。 この動"
3531 "作は、 システム管理者が、 システムで動作するすべてのプロセスが行う、 普通でな"
3532 "いシンボリックリンクの変更を監視するのを楽にする。"
3533
3534 #. type: Plain text
3535 #: build/C/man2/prctl.2:822
3536 msgid ""
3537 "On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3538 "B<PR_GET_THP_DISABLE>, B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, "
3539 "B<PR_GET_TIMERSLACK>, B<PR_GET_SECUREBITS>, B<PR_MCE_KILL_GET>, and (if it "
3540 "returns)  B<PR_GET_SECCOMP> return the nonnegative values described above.  "
3541 "All other I<option> values return 0 on success.  On error, -1 is returned, "
3542 "and I<errno> is set appropriately."
3543 msgstr ""
3544 "成功すると、 B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3545 "B<PR_GET_THP_DISABLE>, B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, "
3546 "B<PR_GET_TIMERSLACK>, B<PR_GET_SECUREBITS>, B<PR_MCE_KILL_GET>, "
3547 "B<PR_GET_SECCOMP> は上述の負でない値を返す (なお、B<PR_GET_SECCOMP> は返らな"
3548 "い場合もある)。 I<option> が他の値の場合は成功時に 0 を返す。 エラーの場"
3549 "合、-1 を返し、 I<errno> に適切な値を設定する。"
3550
3551 #. type: Plain text
3552 #: build/C/man2/prctl.2:827
3553 msgid "I<arg2> is an invalid address."
3554 msgstr "I<arg2> が不正なアドレスである。"
3555
3556 #. type: Plain text
3557 #: build/C/man2/prctl.2:832
3558 msgid "The value of I<option> is not recognized."
3559 msgstr "I<option> の値が理解できない。"
3560
3561 #. type: Plain text
3562 #: build/C/man2/prctl.2:844
3563 msgid ""
3564 "I<option> is B<PR_MCE_KILL> or B<PR_MCE_KILL_GET> or B<PR_SET_MM>, and "
3565 "unused B<prctl>()  arguments were not specified as zero."
3566 msgstr ""
3567 "I<option> が B<PR_MCE_KILL>, B<PR_MCE_KILL_GET>, B<PR_SET_MM> のいずれかで、"
3568 "かつ未使用の B<prctl>() 引き数に 0 が指定されていなかった。"
3569
3570 #. type: Plain text
3571 #: build/C/man2/prctl.2:849
3572 msgid "I<arg2> is not valid value for this I<option>."
3573 msgstr "I<arg2> が指定された I<option> で有効な値ではない。"
3574
3575 #. type: Plain text
3576 #: build/C/man2/prctl.2:858
3577 msgid ""
3578 "I<option> is B<PR_SET_SECCOMP> or B<PR_GET_SECCOMP>, and the kernel was not "
3579 "configured with B<CONFIG_SECCOMP>."
3580 msgstr ""
3581 "I<option> が B<PR_SET_SECCOMP> か B<PR_GET_SECCOMP> だが、カーネルが "
3582 "B<CONFIG_SECCOMP> を有効にして作成されていなかった。"
3583
3584 #. type: Plain text
3585 #: build/C/man2/prctl.2:864
3586 msgid "I<option> is B<PR_SET_MM>, and one of the following is true"
3587 msgstr "I<option> が B<PR_SET_MM> で、以下のいずれかが真である。"
3588
3589 #. type: Plain text
3590 #: build/C/man2/prctl.2:870
3591 msgid "I<arg4> or I<arg5> is nonzero;"
3592 msgstr "I<arg4> が I<arg5> で 0 以外である。"
3593
3594 #. type: Plain text
3595 #: build/C/man2/prctl.2:875
3596 msgid ""
3597 "I<arg3> is greater than B<TASK_SIZE> (the limit on the size of the user "
3598 "address space for this architecture);"
3599 msgstr ""
3600 "I<arg3> が B<TASK_SIZE> よりも大きい  (B<TASK_SIZE> はこのアーキテクチャーで"
3601 "ユーザー空間アドレススペースの最大サイズである)。"
3602
3603 #. type: Plain text
3604 #: build/C/man2/prctl.2:885
3605 msgid ""
3606 "I<arg2> is B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3607 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, or B<PR_SET_MM_START_STACK>, "
3608 "and the permissions of the corresponding memory area are not as required;"
3609 msgstr ""
3610 "I<arg2> が B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3611 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, B<PR_SET_MM_START_STACK> のど"
3612 "れかで、対応するメモリ領域のアクセス許可が要件を満たしていない。"
3613
3614 #. type: Plain text
3615 #: build/C/man2/prctl.2:897
3616 msgid ""
3617 "I<arg2> is B<PR_SET_MM_START_BRK> or B<PR_SET_MM_BRK>, and I<arg3> is less "
3618 "than or equal to the end of the data segment or specifies a value that would "
3619 "cause the B<RLIMIT_DATA> resource limit to be exceeded."
3620 msgstr ""
3621 "I<arg2> が B<PR_SET_MM_START_BRK> か B<PR_SET_MM_BRK> で、 I<arg3> データセグ"
3622 "メントの末尾と同じかそれより前か、 I<arg3> に B<RLIMIT_DATA> リソースリミット"
3623 "を超えてしまうような値が指定されている。"
3624
3625 #. type: Plain text
3626 #: build/C/man2/prctl.2:908
3627 msgid ""
3628 "I<option> is B<PR_SET_PTRACER> and I<arg2> is not 0, B<PR_SET_PTRACER_ANY>, "
3629 "or the PID of an existing process."
3630 msgstr ""
3631 "I<option> が B<PR_SET_PTRACER> で I<arg2> が 0, B<PR_SET_PTRACER_ANY>, 既存プ"
3632 "ロセスの PID のいずれでもない。"
3633
3634 #. type: Plain text
3635 #: build/C/man2/prctl.2:916
3636 msgid ""
3637 "I<option> is B<PR_SET_PDEATHSIG> and I<arg2> is not a valid signal number."
3638 msgstr ""
3639 "I<option> が B<PR_SET_PDEATHSIG> で、 I<arg2> で指定された値は無効なシグナル"
3640 "番号である。"
3641
3642 #. type: Plain text
3643 #: build/C/man2/prctl.2:927
3644 msgid ""
3645 "I<option> is B<PR_SET_DUMPABLE> and I<arg2> is neither B<SUID_DUMP_DISABLE> "
3646 "nor B<SUID_DUMP_USER>."
3647 msgstr ""
3648 "I<option> が B<PR_SET_DUMPABLE> で、 I<arg2> が B<SUID_DUMP_DISABLE> でも "
3649 "B<SUID_DUMP_USER> でもない。"
3650
3651 #. type: Plain text
3652 #: build/C/man2/prctl.2:936
3653 msgid ""
3654 "I<option> is B<PR_SET_TIMING> and I<arg2> is not B<PR_TIMING_STATISTICAL>."
3655 msgstr ""
3656 "I<option> が B<PR_SET_TIMING> で、 I<arg2> が B<PR_TIMING_STATISTICAL> ではな"
3657 "い。"
3658
3659 #. type: Plain text
3660 #: build/C/man2/prctl.2:950
3661 msgid ""
3662 "I<option> is B<PR_SET_NO_NEW_PRIVS> and I<arg2> is not equal to 1 or "
3663 "I<arg3>, I<arg4>, or I<arg5> is nonzero."
3664 msgstr ""
3665 "I<option> が B<PR_SET_NO_NEW_PRIVS> で、 I<arg2> が 1 以外か、 I<arg3>, "
3666 "I<arg4>, I<arg5> のどれかが 0 ではない。"
3667
3668 #. type: Plain text
3669 #: build/C/man2/prctl.2:962
3670 msgid ""
3671 "I<option> is B<PR_GET_NO_NEW_PRIVS> and I<arg2>, I<arg3>, I<arg4>, or "
3672 "I<arg5> is nonzero."
3673 msgstr ""
3674 "I<option> が B<PR_GET_NO_NEW_PRIVS> で、 I<arg2>, I<arg3>, I<arg4>, I<arg5> "
3675 "のどれかが 0 ではない。"
3676
3677 #. type: Plain text
3678 #: build/C/man2/prctl.2:973
3679 #, fuzzy
3680 #| msgid ""
3681 #| "I<option> is PR_SET_THP_DISABLE and I<arg3>, I<arg4>, or I<arg5> is "
3682 #| "nonzero."
3683 msgid ""
3684 "I<option> is B<PR_SET_THP_DISABLE> and I<arg3>, I<arg4>, or I<arg5> is "
3685 "nonzero."
3686 msgstr ""
3687 "I<option> が B<PR_SET_THP_DISABLE> で I<arg3>, I<arg4>, I<arg5> のどれかが 0 "
3688 "ではない。"
3689
3690 #. type: Plain text
3691 #: build/C/man2/prctl.2:985
3692 #, fuzzy
3693 #| msgid ""
3694 #| "I<option> is PR_GET_THP_DISABLE and I<arg2>, I<arg3>, I<arg4>, or I<arg5> "
3695 #| "is nonzero."
3696 msgid ""
3697 "I<option> is B<PR_GET_THP_DISABLE> and I<arg2>, I<arg3>, I<arg4>, or I<arg5> "
3698 "is nonzero."
3699 msgstr ""
3700 "I<option> が B<PR_GET_THP_DISABLE> で I<arg2>, I<arg3>, I<arg4>, I<arg5> のい"
3701 "ずれが 0 ではない。"
3702
3703 #. type: Plain text
3704 #: build/C/man2/prctl.2:997
3705 msgid ""
3706 "I<option> is B<PR_SET_SECUREBITS>, and the caller does not have the "
3707 "B<CAP_SETPCAP> capability, or tried to unset a \"locked\" flag, or tried to "
3708 "set a flag whose corresponding locked flag was set (see B<capabilities>(7))."
3709 msgstr ""
3710 "I<option> が B<PR_SET_SECUREBITS> で、呼び出し元がケーパビリティ "
3711 "B<CAP_SETPCAP> を持っていない。 または、\"locked\" フラグを解除しようとし"
3712 "た。 または、locked フラグがセットされているフラグをセットしようとした "
3713 "(B<capabilities>(7)  参照)。"
3714
3715 #. type: Plain text
3716 #: build/C/man2/prctl.2:1007
3717 msgid ""
3718 "I<option> is B<PR_SET_KEEPCAPS>, and the callers's "
3719 "B<SECURE_KEEP_CAPS_LOCKED> flag is set (see B<capabilities>(7))."
3720 msgstr ""
3721 "I<option> が B<PR_SET_KEEPCAPS> で、呼び出し元のフラグ "
3722 "B<SECURE_KEEP_CAPS_LOCKED> がセットされている (B<capabilities>(7)  参照)。"
3723
3724 #. type: Plain text
3725 #: build/C/man2/prctl.2:1015
3726 msgid ""
3727 "I<option> is B<PR_CAPBSET_DROP>, and the caller does not have the "
3728 "B<CAP_SETPCAP> capability."
3729 msgstr ""
3730 "I<option> が B<PR_CAPBSET_DROP> で、呼び出し元がケーパビリティ "
3731 "B<CAP_SETPCAP> を持っていない。"
3732
3733 #. type: Plain text
3734 #: build/C/man2/prctl.2:1023
3735 msgid ""
3736 "I<option> is B<PR_SET_MM>, and the caller does not have the "
3737 "B<CAP_SYS_RESOURCE> capability."
3738 msgstr ""
3739 "I<option> が B<PR_SET_MM> で、呼び出し元がケーパビリティ B<CAP_SYS_RESOURCE> "
3740 "を持っていない。"
3741
3742 #. type: TP
3743 #: build/C/man2/prctl.2:1023
3744 #, no-wrap
3745 msgid "B<EACCES>"
3746 msgstr "B<EACCES>"
3747
3748 #. type: Plain text
3749 #: build/C/man2/prctl.2:1033
3750 msgid ""
3751 "I<option> is B<PR_SET_MM>, and I<arg3> is B<PR_SET_MM_EXE_FILE>, the file is "
3752 "not executable."
3753 msgstr ""
3754 "I<option> が B<PR_SET_MM>、かつ I<arg3> が B<PR_SET_MM_EXE_FILE> で、ファイル"
3755 "が実行可能ではない。"
3756
3757 #. type: TP
3758 #: build/C/man2/prctl.2:1033
3759 #, no-wrap
3760 msgid "B<EBUSY>"
3761 msgstr "B<EBUSY>"
3762
3763 #. type: Plain text
3764 #: build/C/man2/prctl.2:1044
3765 msgid ""
3766 "I<option> is B<PR_SET_MM>, I<arg3> is B<PR_SET_MM_EXE_FILE>, and this the "
3767 "second attempt to change the I</proc/pid/exe> symbolic link, which is "
3768 "prohibited."
3769 msgstr ""
3770 "I<option> が B<PR_SET_MM> で、 I<arg3> が B<PR_SET_MM_EXE_FILE> で、 I</proc/"
3771 "pid/exe> シンボリックリンクを変更しようとしたが、 禁止されている。"
3772
3773 #. type: TP
3774 #: build/C/man2/prctl.2:1044 build/C/man2/signalfd.2:266
3775 #: build/C/man2/timerfd_create.2:338
3776 #, no-wrap
3777 msgid "B<EBADF>"
3778 msgstr "B<EBADF>"
3779
3780 #.  The following can't actually happen, because prctl() in
3781 #.  seccomp mode will cause SIGKILL.
3782 #.  .TP
3783 #.  .B EPERM
3784 #.  .I option
3785 #.  is
3786 #.  .BR PR_SET_SECCOMP ,
3787 #.  and secure computing mode is already 1.
3788 #. type: Plain text
3789 #: build/C/man2/prctl.2:1063
3790 msgid ""
3791 "I<option> is B<PR_SET_MM>, I<arg3> is B<PR_SET_MM_EXE_FILE>, and the file "
3792 "descriptor passed in I<arg4> is not valid."
3793 msgstr ""
3794 "I<option> が B<PR_SET_MM> で、 I<arg3> が B<PR_SET_MM_EXE_FILE> で、 I<arg4> "
3795 "で渡されたファイルディスクリプタが有効ではない。"
3796
3797 #.  The library interface was added in glibc 2.0.6
3798 #. type: Plain text
3799 #: build/C/man2/prctl.2:1068
3800 msgid "The B<prctl>()  system call was introduced in Linux 2.1.57."
3801 msgstr "B<prctl>()  システムコールは Linux 2.1.57 で導入された。"
3802
3803 #. type: Plain text
3804 #: build/C/man2/prctl.2:1075
3805 msgid ""
3806 "This call is Linux-specific.  IRIX has a B<prctl>()  system call (also "
3807 "introduced in Linux 2.1.44 as irix_prctl on the MIPS architecture), with "
3808 "prototype"
3809 msgstr ""
3810 "このコールは Linux 特有である。 IRIX には B<prctl>()  システム・コールがある"
3811 "が (MIPS アーキテクチャにおいて irix_prctl として Linux 2.1.44 で同様に導入さ"
3812 "れた)、 そのプロトタイプは"
3813
3814 #. type: Plain text
3815 #: build/C/man2/prctl.2:1077
3816 msgid "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3817 msgstr "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3818
3819 #. type: Plain text
3820 #: build/C/man2/prctl.2:1082
3821 msgid ""
3822 "and options to get the maximum number of processes per user, get the maximum "
3823 "number of processors the calling process can use, find out whether a "
3824 "specified process is currently blocked, get or set the maximum stack size, "
3825 "and so on."
3826 msgstr ""
3827 "である。ユーザー当りのプロセス最大数を取得するオプション、 プロセスの使用でき"
3828 "る最大プロッサー数を取得するオプション、 現在特定のプロセスが停止(block)させ"
3829 "られているかどうか調べるオプション、 スタックサイズの最大値の取得や設定を行な"
3830 "うオプションなどがある。"
3831
3832 #. type: Plain text
3833 #: build/C/man2/prctl.2:1085
3834 msgid "B<signal>(2), B<core>(5)"
3835 msgstr "B<signal>(2), B<core>(5)"
3836
3837 #. type: TH
3838 #: build/C/man3/profil.3:28
3839 #, no-wrap
3840 msgid "PROFIL"
3841 msgstr "PROFIL"
3842
3843 #. type: Plain text
3844 #: build/C/man3/profil.3:31
3845 msgid "profil - execution time profile"
3846 msgstr "profil - 実行時間プロファイル (profile)"
3847
3848 #. type: Plain text
3849 #: build/C/man3/profil.3:34
3850 #, no-wrap
3851 msgid "B<#include E<lt>unistd.hE<gt>>\n"
3852 msgstr "B<#include E<lt>unistd.hE<gt>>\n"
3853
3854 #. type: Plain text
3855 #: build/C/man3/profil.3:37
3856 #, no-wrap
3857 msgid ""
3858 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3859 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3860 msgstr ""
3861 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3862 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3863
3864 #. type: Plain text
3865 #: build/C/man3/profil.3:46
3866 msgid ""
3867 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3868 msgstr ""
3869 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3870
3871 #. type: Plain text
3872 #: build/C/man3/profil.3:68
3873 msgid ""
3874 "This routine provides a means to find out in what areas your program spends "
3875 "most of its time.  The argument I<buf> points to I<bufsiz> bytes of core.  "
3876 "Every virtual 10 milliseconds, the user's program counter (PC)  is examined: "
3877 "I<offset> is subtracted and the result is multiplied by I<scale> and divided "
3878 "by 65536.  If the resulting value is less than I<bufsiz>, then the "
3879 "corresponding entry in I<buf> is incremented.  If I<buf> is NULL, profiling "
3880 "is disabled."
3881 msgstr ""
3882 "このルーティンはプログラムのどこの部分で時間を費やしているかを調べる 手段を提"
3883 "供する。引き数 I<buf> は I<bufsiz> バイトのメモリを指している。仮想の 10 ミリ"
3884 "秒ごとに、ユーザーの プログラム・カウンター (PC) が検査される: I<offset> が引"
3885 "かれ、その結果が I<scale> 倍され 65536 で割られる。 結果が I<bufsiz> より小さ"
3886 "い場合は I<buf> の対応するエントリがインクリメントされる。 I<buf> が NULL な"
3887 "らば、プロファイル (profile) は無効にされる。"
3888
3889 #. type: Plain text
3890 #: build/C/man3/profil.3:70
3891 msgid "Zero is always returned."
3892 msgstr "常に 0 が返される。"
3893
3894 #. type: Plain text
3895 #: build/C/man3/profil.3:72
3896 msgid "Similar to a call in SVr4 (but not POSIX.1-2001)."
3897 msgstr "SVr4 のコールに似ている (しかし POSIX.1-2001 ではない)。"
3898
3899 #. type: Plain text
3900 #: build/C/man3/profil.3:78
3901 msgid ""
3902 "B<profil>()  cannot be used on a program that also uses B<ITIMER_PROF> "
3903 "interval timers (see B<setitimer>(2))."
3904 msgstr ""
3905 "B<profil>()  は B<ITIMER_PROF> インターバル・タイマーも使用しているプログラム"
3906 "では使用できない (B<setitimer>(2)  参照)。"
3907
3908 #. type: Plain text
3909 #: build/C/man3/profil.3:81
3910 msgid ""
3911 "True kernel profiling provides more accurate results.  Libc 4.4 contained a "
3912 "kernel patch providing a system call profil."
3913 msgstr ""
3914 "本当のカーネル・プロファイルはより正確な結果を与える。 libc 4.4 にはシステム"
3915 "コール profil を提供するための カーネルパッチが含まれていた。"
3916
3917 #. type: Plain text
3918 #: build/C/man3/profil.3:86
3919 msgid "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3920 msgstr "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3921
3922 #. type: TH
3923 #: build/C/man3/psignal.3:30
3924 #, no-wrap
3925 msgid "PSIGNAL"
3926 msgstr "PSIGNAL"
3927
3928 #. type: TH
3929 #: build/C/man3/psignal.3:30
3930 #, no-wrap
3931 msgid "2010-10-06"
3932 msgstr "2010-10-06"
3933
3934 #. type: TH
3935 #: build/C/man3/psignal.3:30 build/C/man3/raise.3:29
3936 #: build/C/man7/sigevent.7:26
3937 #, no-wrap
3938 msgid "GNU"
3939 msgstr "GNU"
3940
3941 #. type: Plain text
3942 #: build/C/man3/psignal.3:33
3943 msgid "psignal, psiginfo - print signal message"
3944 msgstr "psignal, psiginfo - シグナルメッセージを表示"
3945
3946 #. type: Plain text
3947 #: build/C/man3/psignal.3:39
3948 #, no-wrap
3949 msgid ""
3950 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3951 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3952 msgstr ""
3953 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3954 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3955
3956 #. type: Plain text
3957 #: build/C/man3/psignal.3:41
3958 #, no-wrap
3959 msgid "B<extern const char *const >I<sys_siglist>B<[];>\n"
3960 msgstr "B<extern const char *const >I<sys_siglist>B<[];>\n"
3961
3962 #. type: Plain text
3963 #: build/C/man3/psignal.3:50
3964 msgid "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3965 msgstr "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3966
3967 #. type: Plain text
3968 #: build/C/man3/psignal.3:53
3969 msgid ""
3970 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3971 "200809L"
3972 msgstr ""
3973 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3974 "200809L"
3975
3976 #. type: Plain text
3977 #: build/C/man3/psignal.3:56
3978 msgid "I<sys_siglist>: _BSD_SOURCE"
3979 msgstr "I<sys_siglist>: _BSD_SOURCE"
3980
3981 #. type: Plain text
3982 #: build/C/man3/psignal.3:65
3983 msgid ""
3984 "The B<psignal>()  function displays a message on I<stderr> consisting of the "
3985 "string I<s>, a colon, a space, a string describing the signal number I<sig>, "
3986 "and a trailing newline.  If the string I<s> is NULL or empty, the colon and "
3987 "space are omitted.  If I<sig> is invalid, the message displayed will "
3988 "indicate an unknown signal."
3989 msgstr ""
3990 "B<psignal>() 関数は、文字列 I<s>、コロン、スペース、シグナル番号 I<sig> を説"
3991 "明する文字列、終端の改行から構成されるメッセージを I<stderr> に表示する。 文"
3992 "字列 I<s> が NULL か空の場合、コロンとスペースは省略される。 I<sig> が不正な"
3993 "らば、表示される メッセージは未知のシグナルを示す。"
3994
3995 #. type: Plain text
3996 #: build/C/man3/psignal.3:86
3997 msgid ""
3998 "The B<psiginfo>()  function is like B<psignal>(), except that it displays "
3999 "information about the signal described by I<pinfo>, which should point to a "
4000 "valid I<siginfo_t> structure.  As well as the signal description, "
4001 "B<psiginfo>()  displays information about the origin of the signal, and "
4002 "other information relevant to the signal (e.g., the relevant memory address "
4003 "for hardware-generated signals, the child process ID for B<SIGCHLD>, and the "
4004 "user ID and process ID of the sender, for signals set using B<kill>(2)  or "
4005 "B<sigqueue>(3))."
4006 msgstr ""
4007 "B<psiginfo>() 関数は B<psignal>() と同じだが、 I<pinfo> に書かれたシグナルの"
4008 "情報を表示する点が異なる。 I<pinfo> は有効な I<siginfo_t> 構造体を指している"
4009 "必要がある。 B<psiginfo>() は、 シグナルの説明だけでなく、 シグナルの送信元や"
4010 "そのシグナルに関連するその他の情報も表示する (例えば、ハードウェアが発生した"
4011 "シグナルの関連メモリアドレス、 B<SIGCHLD> の子プロセス ID、 I<kill>(2) や "
4012 "B<sigqueue>(3) を使って送信されたシグナルの送信元プロセスのユーザ ID とプロセ"
4013 "ス ID など)。"
4014
4015 #. type: Plain text
4016 #: build/C/man3/psignal.3:89
4017 msgid ""
4018 "The array I<sys_siglist> holds the signal description strings indexed by "
4019 "signal number."
4020 msgstr ""
4021 "配列 I<sys_siglist> はシグナルを説明する文字列を保持しており、 配列へのアクセ"
4022 "スにはシグナル番号を添え字として用いる事ができる。"
4023
4024 #. type: Plain text
4025 #: build/C/man3/psignal.3:95
4026 msgid "The B<psignal>()  and B<psiginfo>()  functions return no value."
4027 msgstr "関数 B<psignal>() と B<psiginfo>() は、値を返さない。"
4028
4029 #. type: Plain text
4030 #: build/C/man3/psignal.3:99
4031 msgid "The B<psiginfo>()  function was added to glibc in version 2.10."
4032 msgstr "B<psiginfo>() 関数は glibc バージョン 2.10 で追加された。"
4033
4034 #. type: Plain text
4035 #: build/C/man3/psignal.3:101
4036 msgid "POSIX.1-2008, 4.3BSD."
4037 msgstr "POSIX.1-2008, 4.3BSD."
4038
4039 #. type: Plain text
4040 #: build/C/man3/psignal.3:105
4041 msgid "In glibc versions up to 2.12, B<psiginfo>()  had the following bugs:"
4042 msgstr ""
4043 "バージョン 2.12 までの glibc では B<psiginfo>() には以下のバグがあった。"
4044
4045 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12107
4046 #.  Reportedly now fixed; check glibc 2.13
4047 #. type: Plain text
4048 #: build/C/man3/psignal.3:109
4049 msgid "In some circumstances, a trailing newline is not printed."
4050 msgstr "特定の状況で、末尾の改行が出力されない。"
4051
4052 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12108
4053 #.  Reportedly now fixed; check glibc 2.13
4054 #. type: Plain text
4055 #: build/C/man3/psignal.3:113
4056 msgid "Additional details are not displayed for real-time signals."
4057 msgstr "リアルタイムシグナルの場合に、追加の詳細情報が表示されない。"
4058
4059 #. type: Plain text
4060 #: build/C/man3/psignal.3:118
4061 msgid "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
4062 msgstr "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
4063
4064 #. type: TH
4065 #: build/C/man3/raise.3:29
4066 #, no-wrap
4067 msgid "RAISE"
4068 msgstr "RAISE"
4069
4070 #. type: TH
4071 #: build/C/man3/raise.3:29
4072 #, no-wrap
4073 msgid "2014-03-10"
4074 msgstr "2014-03-10"
4075
4076 #. type: Plain text
4077 #: build/C/man3/raise.3:32
4078 msgid "raise - send a signal to the caller"
4079 msgstr "raise - 呼び出し元にシグナルを送る"
4080
4081 #. type: Plain text
4082 #: build/C/man3/raise.3:37
4083 #, no-wrap
4084 msgid "B<int raise(int >I<sig>B<);>\n"
4085 msgstr "B<int raise(int >I<sig>B<);>\n"
4086
4087 #. type: Plain text
4088 #: build/C/man3/raise.3:43
4089 msgid ""
4090 "The B<raise>()  function sends a signal to the calling process or thread.  "
4091 "In a single-threaded program it is equivalent to"
4092 msgstr ""
4093 "B<raise>()  関数は、呼び出し元のプロセスもしくはスレッドにシグナルを送る。 シ"
4094 "ングルスレッドのプログラムでは、以下と等価である。"
4095
4096 #. type: Plain text
4097 #: build/C/man3/raise.3:47
4098 #, no-wrap
4099 msgid "kill(getpid(), sig);\n"
4100 msgstr "kill(getpid(), sig);\n"
4101
4102 #. type: Plain text
4103 #: build/C/man3/raise.3:51
4104 msgid "In a multithreaded program it is equivalent to"
4105 msgstr "マルチスレッドのプログラムでは、以下と等価である。"
4106
4107 #. type: Plain text
4108 #: build/C/man3/raise.3:55
4109 #, no-wrap
4110 msgid "pthread_kill(pthread_self(), sig);\n"
4111 msgstr "pthread_kill(pthread_self(), sig);\n"
4112
4113 #. type: Plain text
4114 #: build/C/man3/raise.3:61
4115 msgid ""
4116 "If the signal causes a handler to be called, B<raise>()  will return only "
4117 "after the signal handler has returned."
4118 msgstr ""
4119 "シグナルに起因してシグナル・ハンドラが呼び出される場合には、 B<raise>()  が返"
4120 "るのは必ずシグナル・ハンドラが返った後になる。"
4121
4122 #. type: Plain text
4123 #: build/C/man3/raise.3:64
4124 msgid "B<raise>()  returns 0 on success, and nonzero for failure."
4125 msgstr "成功した場合は 0 を、失敗した場合は 0 以外の値を返す。"
4126
4127 #. type: Plain text
4128 #: build/C/man3/raise.3:69
4129 msgid "The B<raise>()  function is thread-safe."
4130 msgstr "B<raise>() 関数はスレッドセーフである。"
4131
4132 #. type: Plain text
4133 #: build/C/man3/raise.3:71 build/C/man2/signal.2:112
4134 msgid "C89, C99, POSIX.1-2001."
4135 msgstr "C89, C99, POSIX.1-2001."
4136
4137 #.  2.3.2 used the obsolete tkill(), if available.
4138 #. type: Plain text
4139 #: build/C/man3/raise.3:82
4140 msgid ""
4141 "Since version 2.3.3, glibc implements B<raise>()  by calling B<tgkill>(2), "
4142 "if the kernel supports that system call.  Older glibc versions implemented "
4143 "B<raise>()  using B<kill>(2)."
4144 msgstr ""
4145 "glibc バージョン 2.3.3 以降では、カーネルが B<tgkill>(2) システムコールをサ"
4146 "ポートしている場合はB<raise>() は B<tgkill>(2) を使って実装されている。古い"
4147 "バージョンの glibc では、B<raise>() は B<kill>(2) を使って実装されている。"
4148
4149 #. type: Plain text
4150 #: build/C/man3/raise.3:89
4151 msgid ""
4152 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
4153 "B<signal>(7)"
4154 msgstr ""
4155 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
4156 "B<signal>(7)"
4157
4158 #. type: TH
4159 #: build/C/man2/restart_syscall.2:33
4160 #, no-wrap
4161 msgid "RESTART_SYSCALL"
4162 msgstr ""
4163
4164 #. type: TH
4165 #: build/C/man2/restart_syscall.2:33
4166 #, no-wrap
4167 msgid "2014-02-11"
4168 msgstr "2014-02-11"
4169
4170 #. type: Plain text
4171 #: build/C/man2/restart_syscall.2:36
4172 msgid ""
4173 "restart_syscall - restart a system call after interruption by a stop signal"
4174 msgstr ""
4175 "restart_syscall - 一時停止シグナルによる割り込み後にシステムコールを再開する"
4176
4177 #. type: Plain text
4178 #: build/C/man2/restart_syscall.2:38
4179 msgid "B<int restart_syscall(void);>"
4180 msgstr "B<int restart_syscall(void);>"
4181
4182 #. type: Plain text
4183 #: build/C/man2/restart_syscall.2:41
4184 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
4185 msgstr ""
4186 "I<注>: このシステムコールには、glibc のラッパー関数はない。「注意」の節を参"
4187 "照。"
4188
4189 #. type: Plain text
4190 #: build/C/man2/restart_syscall.2:53
4191 msgid ""
4192 "The B<restart_syscall>()  system call is used to restart certain system "
4193 "calls after a process that was stopped by a signal (e.g., B<SIGSTOP> or "
4194 "B<SIGTSTP>)  is later resumed after receiving a B<SIGCONT> signal.  This "
4195 "system call is designed only for internal use by the kernel."
4196 msgstr ""
4197
4198 #.  These system calls correspond to the special internal errno value
4199 #.  ERESTART_RESTARTBLOCK. Each of the system calls has a "restart"
4200 #.  helper function that is invoked by restart_syscall().
4201 #. type: Plain text
4202 #: build/C/man2/restart_syscall.2:84
4203 msgid ""
4204 "B<restart_syscall>()  is used for restarting only those system calls that, "
4205 "when restarted, should adjust their time-related parameters\\(emnamely "
4206 "B<poll>(2)  (since Linux 2.6.24), B<nanosleep>(2)  (since Linux 2.6), "
4207 "B<clock_nanosleep>(2)  (since Linux 2.6), and B<futex>(2), when employed "
4208 "with the B<FUTEX_WAIT> (since Linux 2.6.22)  and B<FUTEX_WAIT_BITSET> (since "
4209 "Linux 2.6.31)  operations.  B<restart_syscall>()  restarts the interrupted "
4210 "system call with a time argument that is suitably adjusted to account for "
4211 "the time that has already elapsed (including the time where the process was "
4212 "stopped by a signal).  Without the B<restart_syscall>()  mechanism, "
4213 "restarting these system calls would not correctly deduce the already elapsed "
4214 "time when the process continued execution."
4215 msgstr ""
4216
4217 #. type: Plain text
4218 #: build/C/man2/restart_syscall.2:88
4219 msgid ""
4220 "The return value of B<restart_syscall>()  is the return value of whatever "
4221 "system call is being restarted."
4222 msgstr ""
4223
4224 #. type: Plain text
4225 #: build/C/man2/restart_syscall.2:92
4226 msgid ""
4227 "I<errno> is set as per the errors for whatever system call is being "
4228 "restarted by B<restart_syscall>()."
4229 msgstr ""
4230
4231 #. type: Plain text
4232 #: build/C/man2/restart_syscall.2:96
4233 msgid "The B<restart_syscall>()  system call is present since Linux 2.6."
4234 msgstr "B<restart_syscall>() システムコールは Linux 2.6 以降に存在する。"
4235
4236 #. type: Plain text
4237 #: build/C/man2/restart_syscall.2:98
4238 msgid "This system call is Linux-specific."
4239 msgstr "このシステムコールは Linux 固有である。"
4240
4241 #. type: Plain text
4242 #: build/C/man2/restart_syscall.2:102
4243 msgid ""
4244 "There is no glibc wrapper for this system call, because it is intended for "
4245 "use only by the kernel and should never be called by applications."
4246 msgstr ""
4247
4248 #
4249 #.  FIXME
4250 #.  There is one oddness in the implementation though, with respect to
4251 #.  nanosleep() (and probably also clock_nanosleep()). The scenario
4252 #.  is as follows:
4253 #.     1. Start a nanosleep() for (say) 30 seconds,
4254 #.     2. Stop the process with (say) SIGTSTP (^Z).
4255 #.     3. Resume the process with SIGCONT,
4256 #.     4. Upon return, the 'rem' argument of nanosleep() will contain the
4257 #.        remaining unslept time **at the time when SIGTSTP was delivered**.
4258 #.  The behavior at point 4 is odd, but doesn't violate the standards, which
4259 #.  specify the treatment of 'rem' only when the system call returns with
4260 #.  the error EINTR (i.e., the call was interrupted by a signal handler).
4261 #. type: Plain text
4262 #: build/C/man2/restart_syscall.2:123
4263 msgid ""
4264 "From user space, the operation of B<restart_syscall>(2)  is largely "
4265 "invisible: to the process that made the system call that is restarted, it "
4266 "appears as though that system call executed and returned in the usual "
4267 "fashion."
4268 msgstr ""
4269
4270 #.  FIXME select(2) should probably get the restart_syscall() treatment:
4271 #.      If a select() call is suspended by stop-sig+SIGCONT, the time
4272 #.      spent suspended is *not* deducted when the select() is restarted.
4273 #.  FIXME: check whether recvmmsg() handles stop-sig+SIGCONT properly.
4274 #. type: Plain text
4275 #: build/C/man2/restart_syscall.2:131
4276 msgid "B<sigaction>(2), B<sigreturn>(2), B<signal>(7)"
4277 msgstr "B<sigaction>(2), B<sigreturn>(2), B<signal>(7)"
4278
4279 #. type: TH
4280 #: build/C/man2/rt_sigqueueinfo.2:25
4281 #, no-wrap
4282 msgid "RT_SIGQUEUEINFO"
4283 msgstr "RT_SIGQUEUEINFO"
4284
4285 #. type: TH
4286 #: build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/tkill.2:29
4287 #, no-wrap
4288 msgid "2012-07-13"
4289 msgstr "2012-07-13"
4290
4291 #. type: Plain text
4292 #: build/C/man2/rt_sigqueueinfo.2:28
4293 msgid "rt_sigqueueinfo, rt_tgsigqueueinfo - queue a signal and data"
4294 msgstr ""
4295
4296 #. type: Plain text
4297 #: build/C/man2/rt_sigqueueinfo.2:31
4298 #, no-wrap
4299 msgid "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
4300 msgstr "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
4301
4302 #. type: Plain text
4303 #: build/C/man2/rt_sigqueueinfo.2:34
4304 #, no-wrap
4305 msgid ""
4306 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
4307 "B<                      siginfo_t *>I<uinfo>B<);>\n"
4308 msgstr ""
4309 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
4310 "B<                      siginfo_t *>I<uinfo>B<);>\n"
4311
4312 #. type: Plain text
4313 #: build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/sgetmask.2:36
4314 #: build/C/man2/tkill.2:41
4315 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
4316 msgstr ""
4317 "I<注>: これらのシステムコールには、glibc のラッパー関数はない。「注意」の節を"
4318 "参照。"
4319
4320 #. type: Plain text
4321 #: build/C/man2/rt_sigqueueinfo.2:50
4322 msgid ""
4323 "The B<rt_sigqueueinfo>()  and B<rt_tgsigqueueinfo>()  system calls are the "
4324 "low-level interfaces used to send a signal plus data to a process or "
4325 "thread.  The receiver of the signal can obtain the accompanying data by "
4326 "establishing a signal handler with the B<sigaction>(2)  B<SA_SIGINFO> flag."
4327 msgstr ""
4328
4329 #. type: Plain text
4330 #: build/C/man2/rt_sigqueueinfo.2:56
4331 msgid ""
4332 "These system calls are not intended for direct application use; they are "
4333 "provided to allow the implementation of B<sigqueue>(3)  and "
4334 "B<pthread_sigqueue>(3)."
4335 msgstr ""
4336
4337 #. type: Plain text
4338 #: build/C/man2/rt_sigqueueinfo.2:68
4339 msgid ""
4340 "The B<rt_sigqueueinfo>()  system call sends the signal I<sig> to the thread "
4341 "group with the ID I<tgid>.  (The term \"thread group\" is synonymous with "
4342 "\"process\", and I<tid> corresponds to the traditional UNIX process ID.)  "
4343 "The signal will be delivered to an arbitrary member of the thread group (i."
4344 "e., one of the threads that is not currently blocking the signal)."
4345 msgstr ""
4346
4347 #. type: Plain text
4348 #: build/C/man2/rt_sigqueueinfo.2:79
4349 msgid ""
4350 "The I<uinfo> argument specifies the data to accompany the signal.  This "
4351 "argument is a pointer to a structure of type I<siginfo_t>, described in "
4352 "B<sigaction>(2)  (and defined by including I<E<lt>sigaction.hE<gt>>).  The "
4353 "caller should set the following fields in this structure:"
4354 msgstr ""
4355
4356 #. type: TP
4357 #: build/C/man2/rt_sigqueueinfo.2:79 build/C/man7/sigevent.7:88
4358 #: build/C/man2/wait.2:316
4359 #, no-wrap
4360 msgid "I<si_code>"
4361 msgstr "I<si_code>"
4362
4363 #.  tkill(2) or
4364 #. type: Plain text
4365 #: build/C/man2/rt_sigqueueinfo.2:95
4366 msgid ""
4367 "This must be one of the B<SI_*> codes in the Linux kernel source file "
4368 "I<include/asm-generic/siginfo.h>, with the restriction that the code must be "
4369 "negative (i.e., cannot be B<SI_USER>, which is used by the kernel to "
4370 "indicate a signal sent by B<kill>(2))  and cannot (since Linux 2.6.39) be "
4371 "B<SI_TKILL> (which is used by the kernel to indicate a signal sent using "
4372 "B<tgkill>(2))."
4373 msgstr ""
4374
4375 #. type: TP
4376 #: build/C/man2/rt_sigqueueinfo.2:95 build/C/man2/wait.2:295
4377 #, no-wrap
4378 msgid "I<si_pid>"
4379 msgstr "I<si_pid>"
4380
4381 #. type: Plain text
4382 #: build/C/man2/rt_sigqueueinfo.2:99
4383 msgid ""
4384 "This should be set to a process ID, typically the process ID of the sender."
4385 msgstr ""
4386
4387 #. type: TP
4388 #: build/C/man2/rt_sigqueueinfo.2:99 build/C/man2/wait.2:298
4389 #, no-wrap
4390 msgid "I<si_uid>"
4391 msgstr "I<si_uid>"
4392
4393 #. type: Plain text
4394 #: build/C/man2/rt_sigqueueinfo.2:103
4395 msgid ""
4396 "This should be set to a user ID, typically the real user ID of the sender."
4397 msgstr ""
4398
4399 #. type: TP
4400 #: build/C/man2/rt_sigqueueinfo.2:103 build/C/man7/sigevent.7:96
4401 #, no-wrap
4402 msgid "I<si_value>"
4403 msgstr "I<si_value>"
4404
4405 #. type: Plain text
4406 #: build/C/man2/rt_sigqueueinfo.2:110
4407 msgid ""
4408 "This field contains the user data to accompany the signal.  For more "
4409 "information, see the description of the last (I<union sigval>)  argument of "
4410 "B<sigqueue>(3)."
4411 msgstr ""
4412
4413 #. type: Plain text
4414 #: build/C/man2/rt_sigqueueinfo.2:117
4415 msgid ""
4416 "Internally, the kernel sets the I<si_signo> field to the value specified in "
4417 "I<sig>, so that the receiver of the signal can also obtain the signal number "
4418 "via that field."
4419 msgstr ""
4420
4421 #. type: Plain text
4422 #: build/C/man2/rt_sigqueueinfo.2:129
4423 msgid ""
4424 "The B<rt_tgsigqueueinfo>()  system call is like B<rt_sigqueueinfo>(), but "
4425 "sends the signal and data to the single thread specified by the combination "
4426 "of I<tgid>, a thread group ID, and I<tid>, a thread in that thread group."
4427 msgstr ""
4428
4429 #. type: Plain text
4430 #: build/C/man2/rt_sigqueueinfo.2:134
4431 msgid ""
4432 "On success, these system calls return 0.  On error, they return -1 and "
4433 "I<errno> is set to indicate the error."
4434 msgstr ""
4435
4436 #. type: TP
4437 #: build/C/man2/rt_sigqueueinfo.2:135 build/C/man3/sigqueue.3:92
4438 #: build/C/man2/sigwaitinfo.2:115 build/C/man2/timer_create.2:176
4439 #, no-wrap
4440 msgid "B<EAGAIN>"
4441 msgstr "B<EAGAIN>"
4442
4443 #. type: Plain text
4444 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man3/sigqueue.3:98
4445 msgid ""
4446 "The limit of signals which may be queued has been reached.  (See "
4447 "B<signal>(7)  for further information.)"
4448 msgstr ""
4449 "待ち行列に入れられるシグナルの最大数に達した (より詳しい情報は B<signal>(7)  "
4450 "を参照すること)。"
4451
4452 #. type: Plain text
4453 #: build/C/man2/rt_sigqueueinfo.2:148
4454 msgid "I<sig>, I<tgid>, or I<tid> was invalid."
4455 msgstr ""
4456
4457 #. type: Plain text
4458 #: build/C/man2/rt_sigqueueinfo.2:156
4459 msgid ""
4460 "The caller does not have permission to send the signal to the target.  For "
4461 "the required permissions, see B<kill>(2).  Or: I<uinfo-E<gt>si_code> is "
4462 "invalid."
4463 msgstr ""
4464
4465 #. type: Plain text
4466 #: build/C/man2/rt_sigqueueinfo.2:162
4467 msgid "B<rt_sigqueueinfo>(): No thread group matching I<tgid> was found."
4468 msgstr ""
4469
4470 #. type: Plain text
4471 #: build/C/man2/rt_sigqueueinfo.2:169
4472 msgid "B<rt_tgsigqueinfo>(): No thread matching I<tgid> and I<tid> was found."
4473 msgstr ""
4474
4475 #. type: Plain text
4476 #: build/C/man2/rt_sigqueueinfo.2:176
4477 msgid ""
4478 "The B<rt_sigqueueinfo>()  system call was added to Linux in version 2.2.  "
4479 "The B<rt_tgsigqueueinfo>()  system call was added to Linux in version 2.6.31."
4480 msgstr ""
4481
4482 #. type: Plain text
4483 #: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/sgetmask.2:68
4484 #: build/C/man2/timerfd_create.2:373
4485 msgid "These system calls are Linux-specific."
4486 msgstr "これらのシステムコールは Linux 固有である。"
4487
4488 #. type: Plain text
4489 #: build/C/man2/rt_sigqueueinfo.2:183
4490 msgid ""
4491 "Since these system calls are not intended for application use, there are no "
4492 "glibc wrapper functions; use B<syscall>(2)  in the unlikely case that you "
4493 "want to call them directly."
4494 msgstr ""
4495 "これらのシステムコールはアプリケーションでの使用を目的として用意されたわけで"
4496 "はないので、 glibc のラッパー関数は存在しない。おそらくないと思うが、このシス"
4497 "テムコールを直接呼び出したい場合は B<syscall>(2) を使うこと。"
4498
4499 #. type: Plain text
4500 #: build/C/man2/rt_sigqueueinfo.2:188
4501 msgid ""
4502 "As with B<kill>(2), the null signal (0) can be used to check if the "
4503 "specified process or thread exists."
4504 msgstr ""
4505
4506 #. type: Plain text
4507 #: build/C/man2/rt_sigqueueinfo.2:196
4508 msgid ""
4509 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4510 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4511 msgstr ""
4512 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4513 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4514
4515 #. type: TH
4516 #: build/C/man2/s390_runtime_instr.2:25
4517 #, no-wrap
4518 msgid "S390_RUNTIME_INSTR"
4519 msgstr ""
4520
4521 #. type: TH
4522 #: build/C/man2/s390_runtime_instr.2:25
4523 #, no-wrap
4524 msgid "2012-12-17"
4525 msgstr "2012-12-17"
4526
4527 #. type: Plain text
4528 #: build/C/man2/s390_runtime_instr.2:28
4529 msgid "s390_runtime_instr - enable/disable s390 CPU run-time instrumentation"
4530 msgstr ""
4531
4532 #. type: Plain text
4533 #: build/C/man2/s390_runtime_instr.2:31
4534 #, no-wrap
4535 msgid "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4536 msgstr "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4537
4538 #. type: Plain text
4539 #: build/C/man2/s390_runtime_instr.2:33
4540 #, no-wrap
4541 msgid "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4542 msgstr "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4543
4544 #. type: Plain text
4545 #: build/C/man2/s390_runtime_instr.2:39
4546 msgid ""
4547 "The B<s390_runtime_instr>()  system call starts or stops CPU run-time "
4548 "instrumentation for the calling thread."
4549 msgstr ""
4550
4551 #. type: Plain text
4552 #: build/C/man2/s390_runtime_instr.2:47
4553 msgid ""
4554 "The I<command> argument controls whether run-time instrumentation is started "
4555 "(B<S390_RUNTIME_INSTR_START>, 1) or stopped (B<S390_RUNTIME_INSTR_STOP>, 2) "
4556 "for the calling thread."
4557 msgstr ""
4558
4559 #. type: Plain text
4560 #: build/C/man2/s390_runtime_instr.2:54
4561 msgid ""
4562 "The I<signum> argument specifies the number of a real-time signal.  The real-"
4563 "time signal is sent to the thread if the run-time instrumentation buffer is "
4564 "full or if the run-time-instrumentation-halted interrupt occurred."
4565 msgstr ""
4566
4567 #. type: Plain text
4568 #: build/C/man2/s390_runtime_instr.2:65
4569 msgid ""
4570 "On success, B<s390_runtime_instr>()  returns 0 and enables the thread for "
4571 "run-time instrumentation by assigning the thread a default run-time "
4572 "instrumentation control block.  The caller can then read and modify the "
4573 "control block and start the run-time instrumentation.  On error, -1 is "
4574 "returned and I<errno> is set to one of the error codes listed below."
4575 msgstr ""
4576
4577 #. type: Plain text
4578 #: build/C/man2/s390_runtime_instr.2:73
4579 msgid ""
4580 "The value specified in I<command> is not a valid command or the value "
4581 "specified in I<signum> is not a real-time signal number."
4582 msgstr ""
4583
4584 #. type: Plain text
4585 #: build/C/man2/s390_runtime_instr.2:76
4586 msgid ""
4587 "Allocating memory for the run-time instrumentation control block failed."
4588 msgstr ""
4589
4590 #. type: TP
4591 #: build/C/man2/s390_runtime_instr.2:76
4592 #, no-wrap
4593 msgid "B<EOPNOTSUPP>"
4594 msgstr ""
4595
4596 #. type: Plain text
4597 #: build/C/man2/s390_runtime_instr.2:79
4598 msgid "The run-time instrumentation facility is not available."
4599 msgstr ""
4600
4601 #. type: Plain text
4602 #: build/C/man2/s390_runtime_instr.2:81
4603 msgid "This system call is available since Linux 3.7."
4604 msgstr "このシステムコールは Linux 3.7 で初めて登場した。"
4605
4606 #. type: Plain text
4607 #: build/C/man2/s390_runtime_instr.2:84
4608 msgid ""
4609 "This Linux-specific system call is available only on the s390 architecture.  "
4610 "The run-time instrumentation facility is available beginning with System z "
4611 "EC12."
4612 msgstr ""
4613
4614 #. type: Plain text
4615 #: build/C/man2/s390_runtime_instr.2:88
4616 msgid ""
4617 "Glibc does not provide a wrapper for this system call, use B<syscall>(2)  to "
4618 "call it."
4619 msgstr ""
4620 "glibc はこのシステムコールに対するラッパー関数を提供していない。 "
4621 "B<syscall>(2) を使用すること。"
4622
4623 #. type: Plain text
4624 #: build/C/man2/s390_runtime_instr.2:91
4625 msgid "B<syscall>(2), B<signal>(7)"
4626 msgstr "B<syscall>(2), B<signal>(7)"
4627
4628 #. type: TH
4629 #: build/C/man2/sgetmask.2:26
4630 #, no-wrap
4631 msgid "SGETMASK"
4632 msgstr "SGETMASK"
4633
4634 #. type: TH
4635 #: build/C/man2/sgetmask.2:26
4636 #, no-wrap
4637 msgid "2014-02-25"
4638 msgstr "2014-02-25"
4639
4640 #. type: Plain text
4641 #: build/C/man2/sgetmask.2:29
4642 msgid "sgetmask, ssetmask - manipulation of signal mask (obsolete)"
4643 msgstr "sgetmask, ssetmask - シグナルマスクの操作 (廃止予定)"
4644
4645 #. type: Plain text
4646 #: build/C/man2/sgetmask.2:31
4647 msgid "B<long sgetmask(void);>"
4648 msgstr "B<long sgetmask(void);>"
4649
4650 #. type: Plain text
4651 #: build/C/man2/sgetmask.2:33
4652 msgid "B<long ssetmask(long >I<newmask>B<);>"
4653 msgstr "B<long ssetmask(long >I<newmask>B<);>"
4654
4655 #. type: Plain text
4656 #: build/C/man2/sgetmask.2:42
4657 msgid ""
4658 "These system calls are obsolete.  I<Do not use them>; use B<sigprocmask>(2)  "
4659 "instead."
4660 msgstr ""
4661 "これらのシステムコールは廃止予定であり、 「使用しないこと」。 代わりに "
4662 "B<sigprocmask>(2)  を使用すること。"
4663
4664 #. type: Plain text
4665 #: build/C/man2/sgetmask.2:45
4666 msgid "B<sgetmask>()  returns the signal mask of the calling process."
4667 msgstr "B<sgetmask>()  は、呼び出し元プロセスのシグナルマスクを返す。"
4668
4669 #. type: Plain text
4670 #: build/C/man2/sgetmask.2:50
4671 msgid ""
4672 "B<ssetmask>()  sets the signal mask of the calling process to the value "
4673 "given in I<newmask>.  The previous signal mask is returned."
4674 msgstr ""
4675 "B<ssetmask>()  は、呼び出し元プロセスのシグナルマスクを I<newmask> で指定され"
4676 "た値に設定し、変更前のシグナルマスクを返す。"
4677
4678 #. type: Plain text
4679 #: build/C/man2/sgetmask.2:59
4680 msgid ""
4681 "The signal masks dealt with by these two system calls are plain bit masks "
4682 "(unlike the I<sigset_t> used by B<sigprocmask>(2)); use B<sigmask>(3)  to "
4683 "create and inspect these masks."
4684 msgstr ""
4685 "これら二つのシステムコールが扱うシグナルマスクは、 単純なビットマスクである "
4686 "(この点が B<sigprocmask>(2)  で使用される I<sigset_t> と異なる)。 これらのマ"
4687 "スクを作成したり検査するには B<sigmask>(3)  を使用すること。"
4688
4689 #. type: Plain text
4690 #: build/C/man2/sgetmask.2:64
4691 msgid ""
4692 "B<sgetmask>()  always successfully returns the signal mask.  B<ssetmask>()  "
4693 "always succeeds, and returns the previous signal mask."
4694 msgstr ""
4695 "B<sgetmask>()  は常に成功し、シグナルマスクを返す。 B<ssetmask>()  は常に成功"
4696 "し、直前のシグナルマスクを返す。"
4697
4698 #. type: Plain text
4699 #: build/C/man2/sgetmask.2:66
4700 msgid "These system calls always succeed."
4701 msgstr "これらのシステムコールは常に成功する。"
4702
4703 #. type: Plain text
4704 #: build/C/man2/sgetmask.2:72
4705 msgid ""
4706 "Glibc does not provide wrappers for these obsolete system calls; in the "
4707 "unlikely event that you want to call them, use B<syscall>(2)."
4708 msgstr ""
4709 "glibc はこれらの古いシステムコールに対するラッパー関数を提供していない。 あま"
4710 "りないと思うが、これらを呼び出したい場合には B<syscall>(2) を使うこと。"
4711
4712 #. type: Plain text
4713 #: build/C/man2/sgetmask.2:75
4714 msgid ""
4715 "These system calls are unaware of signal numbers greater than 31 (i.e., real-"
4716 "time signals)."
4717 msgstr ""
4718 "これらのシステムコールは、 31 より大きいシグナル番号 (つまり、リアルタイムシ"
4719 "グナル) を扱えない。"
4720
4721 #. type: Plain text
4722 #: build/C/man2/sgetmask.2:77
4723 msgid "These system calls do not exist on x86-64."
4724 msgstr "これらのシステムコールは x86-64 には存在しない。"
4725
4726 #. type: Plain text
4727 #: build/C/man2/sgetmask.2:82
4728 msgid "It is not possible to block B<SIGSTOP> or B<SIGKILL>."
4729 msgstr "B<SIGSTOP> や B<SIGKILL> をブロックすることはできない。"
4730
4731 #. type: Plain text
4732 #: build/C/man2/sgetmask.2:85
4733 msgid "B<sigprocmask>(2), B<signal>(7)"
4734 msgstr "B<sigprocmask>(2), B<signal>(7)"
4735
4736 #. type: TH
4737 #: build/C/man2/sigaction.2:47
4738 #, no-wrap
4739 msgid "SIGACTION"
4740 msgstr "SIGACTION"
4741
4742 #. type: TH
4743 #: build/C/man2/sigaction.2:47
4744 #, fuzzy, no-wrap
4745 #| msgid "2014-04-14"
4746 msgid "2014-04-27"
4747 msgstr "2014-04-14"
4748
4749 #. type: Plain text
4750 #: build/C/man2/sigaction.2:50
4751 msgid "sigaction - examine and change a signal action"
4752 msgstr "sigaction - シグナルの動作の確認と変更"
4753
4754 #. type: Plain text
4755 #: build/C/man2/sigaction.2:56
4756 #, no-wrap
4757 msgid ""
4758 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4759 "B<              struct sigaction *>I<oldact>B<);>\n"
4760 msgstr ""
4761 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4762 "B<              struct sigaction *>I<oldact>B<);>\n"
4763
4764 #. type: Plain text
4765 #: build/C/man2/sigaction.2:66
4766 msgid ""
4767 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4768 "_POSIX_SOURCE"
4769 msgstr ""
4770 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4771 "_POSIX_SOURCE"
4772
4773 #. type: Plain text
4774 #: build/C/man2/sigaction.2:69
4775 msgid "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4776 msgstr "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4777
4778 #. type: Plain text
4779 #: build/C/man2/sigaction.2:78
4780 msgid ""
4781 "The B<sigaction>()  system call is used to change the action taken by a "
4782 "process on receipt of a specific signal.  (See B<signal>(7)  for an overview "
4783 "of signals.)"
4784 msgstr ""
4785 "B<sigaction>()  システムコールは、特定のシグナルを受信した際の プロセスの動作"
4786 "を変更するのに使用される (シグナルの概要については B<signal>(7)  を参照)。"
4787
4788 #. type: Plain text
4789 #: build/C/man2/sigaction.2:84
4790 msgid ""
4791 "I<signum> specifies the signal and can be any valid signal except B<SIGKILL> "
4792 "and B<SIGSTOP>."
4793 msgstr ""
4794 "I<signum> には、 B<SIGKILL> と B<SIGSTOP> 以外の有効なシグナルをどれでも指定"
4795 "できる。"
4796
4797 #. type: Plain text
4798 #: build/C/man2/sigaction.2:95
4799 msgid ""
4800 "If I<act> is non-NULL, the new action for signal I<signum> is installed from "
4801 "I<act>.  If I<oldact> is non-NULL, the previous action is saved in I<oldact>."
4802 msgstr ""
4803 "I<act> が NULL 以外であれば、シグナル I<signum> の新しい動作 (action) として "
4804 "I<act> が設定される。 I<oldact> が NULL でなければ、今までの動作が I<oldact> "
4805 "に格納される。"
4806
4807 #. type: Plain text
4808 #: build/C/man2/sigaction.2:99
4809 msgid "The I<sigaction> structure is defined as something like:"
4810 msgstr "I<sigaction> 構造体は以下のような感じに定義される。"
4811
4812 #. type: Plain text
4813 #: build/C/man2/sigaction.2:109
4814 #, no-wrap
4815 msgid ""
4816 "struct sigaction {\n"
4817 "    void     (*sa_handler)(int);\n"
4818 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4819 "    sigset_t   sa_mask;\n"
4820 "    int        sa_flags;\n"
4821 "    void     (*sa_restorer)(void);\n"
4822 "};\n"
4823 msgstr ""
4824 "struct sigaction {\n"
4825 "    void     (*sa_handler)(int);\n"
4826 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4827 "    sigset_t   sa_mask;\n"
4828 "    int        sa_flags;\n"
4829 "    void     (*sa_restorer)(void);\n"
4830 "};\n"
4831
4832 #. type: Plain text
4833 #: build/C/man2/sigaction.2:116
4834 msgid ""
4835 "On some architectures a union is involved: do not assign to both "
4836 "I<sa_handler> and I<sa_sigaction>."
4837 msgstr ""
4838 "アーキテクチャによっては共用体 (union) が用いられており、その場合には "
4839 "I<sa_handler> と I<sa_sigaction> の両方を同時に割り当てることはできない。"
4840
4841 #. type: Plain text
4842 #: build/C/man2/sigaction.2:123
4843 msgid ""
4844 "The I<sa_restorer> element is obsolete and should not be used.  POSIX does "
4845 "not specify a I<sa_restorer> element."
4846 msgstr ""
4847 "I<sa_restorer> 要素は廃止予定であり使用すべきではない。 POSIX には "
4848 "I<sa_restorer> 要素に関する規定はない。"
4849
4850 #. type: Plain text
4851 #: build/C/man2/sigaction.2:133
4852 msgid ""
4853 "I<sa_handler> specifies the action to be associated with I<signum> and may "
4854 "be B<SIG_DFL> for the default action, B<SIG_IGN> to ignore this signal, or a "
4855 "pointer to a signal handling function.  This function receives the signal "
4856 "number as its only argument."
4857 msgstr ""
4858 "I<sa_handler> は I<signum> に対応する動作を指定するもので、 デフォルトの動作"
4859 "を行う B<SIG_DFL>、 そのシグナルを無視する B<SIG_IGN>、 シグナルハンドラ関数"
4860 "へのポインタが設定できる。 シグナルハンドラ関数の引き数は一つであり、シグナル"
4861 "番号が引き数として 渡される。"
4862
4863 #. type: Plain text
4864 #: build/C/man2/sigaction.2:155
4865 msgid ""
4866 "If B<SA_SIGINFO> is specified in I<sa_flags>, then I<sa_sigaction> (instead "
4867 "of I<sa_handler>)  specifies the signal-handling function for I<signum>.  "
4868 "This function receives the signal number as its first argument, a pointer to "
4869 "a I<siginfo_t> as its second argument and a pointer to a I<ucontext_t> (cast "
4870 "to I<void\\ *>) as its third argument.  (Commonly, the handler function "
4871 "doesn't make any use of the third argument.  See B<getcontext>(3)  for "
4872 "further information about I<ucontext_t>.)"
4873 msgstr ""
4874 "I<sa_flags> に B<SA_SIGINFO> が指定された場合、 (I<sa_handler> ではなく) "
4875 "I<sa_sigaction> により I<signum> に対応するシグナルハンドラ関数が指定される。"
4876 "指定される関数は、最初の引き数としてシグナル番号を、二番目の引き数として "
4877 "I<siginfo_t> へのポインタを、三番目の引き数として (I<void\\ *> にキャストし"
4878 "た) I<ucontext_t> へのポインタを受けとる。 (一般的には、ハンドラ関数の三番目"
4879 "の引き数が使用されない。I<ucontext_t> についての詳しい情報は "
4880 "B<getcontext>(3) を参照。)"
4881
4882 #. type: Plain text
4883 #: build/C/man2/sigaction.2:165
4884 msgid ""
4885 "I<sa_mask> specifies a mask of signals which should be blocked (i.e., added "
4886 "to the signal mask of the thread in which the signal handler is invoked)  "
4887 "during execution of the signal handler.  In addition, the signal which "
4888 "triggered the handler will be blocked, unless the B<SA_NODEFER> flag is used."
4889 msgstr ""
4890 "I<sa_mask> は、シグナル・ハンドラ実行中に禁止 (block) すべきシグナルのマスク"
4891 "を指定する (ハンドラ実行中のシグナルの禁止は、シグナル・ハンドラが起動された"
4892 "スレッド のシグナルのマスクに追加することで行われる)。 さらに、 "
4893 "B<SA_NODEFER> フラグが指定されていない場合は、ハンドラを起動するきっかけとな"
4894 "る シグナルにも I<sa_mask> が適用される。"
4895
4896 #. type: Plain text
4897 #: build/C/man2/sigaction.2:169
4898 msgid ""
4899 "I<sa_flags> specifies a set of flags which modify the behavior of the "
4900 "signal.  It is formed by the bitwise OR of zero or more of the following:"
4901 msgstr ""
4902 "I<sa_flags> はシグナル・ハンドラの動作を変更するためのフラグの集合を指定す"
4903 "る。 I<sa_flags> には、以下に示すフラグの (0 個以上の) 論理和をとったものを指"
4904 "定する。"
4905
4906 #. type: TP
4907 #: build/C/man2/sigaction.2:170
4908 #, no-wrap
4909 msgid "B<SA_NOCLDSTOP>"
4910 msgstr "B<SA_NOCLDSTOP>"
4911
4912 #. type: Plain text
4913 #: build/C/man2/sigaction.2:187
4914 msgid ""
4915 "If I<signum> is B<SIGCHLD>, do not receive notification when child processes "
4916 "stop (i.e., when they receive one of B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, or "
4917 "B<SIGTTOU>)  or resume (i.e., they receive B<SIGCONT>)  (see B<wait>(2)).  "
4918 "This flag is meaningful only when establishing a handler for B<SIGCHLD>."
4919 msgstr ""
4920 "I<signum> が B<SIGCHLD> の場合、 子プロセスが停止したり (子プロセスが "
4921 "B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, B<SIGTTOU> を受けたとき) 再開したり (子プ"
4922 "ロセスが B<SIGCONT> を受けたとき) したときに B<SIGCHLD> の通知を受けない。 こ"
4923 "のフラグは、 B<SIGCHLD> に対してハンドラを設定する際にのみ意味を持つ。"
4924
4925 #. type: TP
4926 #: build/C/man2/sigaction.2:187
4927 #, no-wrap
4928 msgid "B<SA_NOCLDWAIT> (since Linux 2.6)"
4929 msgstr "B<SA_NOCLDWAIT> (Linux 2.6 以降)"
4930
4931 #.  To be precise: Linux 2.5.60 -- MTK
4932 #. type: Plain text
4933 #: build/C/man2/sigaction.2:201
4934 msgid ""
4935 "If I<signum> is B<SIGCHLD>, do not transform children into zombies when they "
4936 "terminate.  See also B<waitpid>(2).  This flag is meaningful only when "
4937 "establishing a handler for B<SIGCHLD>, or when setting that signal's "
4938 "disposition to B<SIG_DFL>."
4939 msgstr ""
4940 "(Linux 2.6 以降)  I<signum> が B<SIGCHLD> の場合、子プロセスが終了したときに "
4941 "子プロセスをゾンビプロセスに変化させない (B<waitpid>(2)  も参照)。 このフラグ"
4942 "は、 B<SIGCHLD> に対してハンドラを設定する際、もしくはそのシグナルの処理方法"
4943 "を B<SIG_DFL> に設定する際にのみ意味を持つ。"
4944
4945 #. type: Plain text
4946 #: build/C/man2/sigaction.2:213
4947 msgid ""
4948 "If the B<SA_NOCLDWAIT> flag is set when establishing a handler for "
4949 "B<SIGCHLD>, POSIX.1 leaves it unspecified whether a B<SIGCHLD> signal is "
4950 "generated when a child process terminates.  On Linux, a B<SIGCHLD> signal is "
4951 "generated in this case; on some other implementations, it is not."
4952 msgstr ""
4953 "B<SIGCHLD> に対してハンドラを設定する際に B<SA_NOCLDWAIT> フラグをセットした"
4954 "場合、 子プロセスが終了した際に B<SIGCHLD> シグナルが生成されるかどうかは、 "
4955 "POSIX.1 では規定されていない。 Linux では、この状況で B<SIGCHLD> シグナルは生"
4956 "成される。 いくつかの他の実装では生成されない。"
4957
4958 #. type: TP
4959 #: build/C/man2/sigaction.2:213
4960 #, no-wrap
4961 msgid "B<SA_NODEFER>"
4962 msgstr "B<SA_NODEFER>"
4963
4964 #. type: Plain text
4965 #: build/C/man2/sigaction.2:220
4966 msgid ""
4967 "Do not prevent the signal from being received from within its own signal "
4968 "handler.  This flag is meaningful only when establishing a signal handler.  "
4969 "B<SA_NOMASK> is an obsolete, nonstandard synonym for this flag."
4970 msgstr ""
4971 "それ自身のシグナル・ハンドラーの内部にいる時でも そのシグナルをマスクしないよ"
4972 "うにする。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 "
4973 "B<SA_NOMASK> はこのフラグと同じ意味だが、廃止されており、非標準である。"
4974
4975 #. type: TP
4976 #: build/C/man2/sigaction.2:220
4977 #, no-wrap
4978 msgid "B<SA_ONSTACK>"
4979 msgstr "B<SA_ONSTACK>"
4980
4981 #. type: Plain text
4982 #: build/C/man2/sigaction.2:226
4983 msgid ""
4984 "Call the signal handler on an alternate signal stack provided by "
4985 "B<sigaltstack>(2).  If an alternate stack is not available, the default "
4986 "stack will be used.  This flag is meaningful only when establishing a signal "
4987 "handler."
4988 msgstr ""
4989 "B<sigaltstack>(2)  で提供される別のシグナル・スタックでシグナルハンドラを呼び"
4990 "出す。 別のシグナル・スタックが利用可能でなければ、デフォルトのスタックが 使"
4991 "用される。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。"
4992
4993 #. type: TP
4994 #: build/C/man2/sigaction.2:226
4995 #, no-wrap
4996 msgid "B<SA_RESETHAND>"
4997 msgstr "B<SA_RESETHAND>"
4998
4999 #. type: Plain text
5000 #: build/C/man2/sigaction.2:232
5001 msgid ""
5002 "Restore the signal action to the default upon entry to the signal handler.  "
5003 "This flag is meaningful only when establishing a signal handler.  "
5004 "B<SA_ONESHOT> is an obsolete, nonstandard synonym for this flag."
5005 msgstr ""
5006 "シグナルハンドラを設定する際に、シグナルの動作をデフォルトに戻す。 このフラグ"
5007 "はシグナルハンドラを設定する際にのみ意味を持つ。 B<SA_ONESHOT> はこのフラグと"
5008 "同じ意味だが、廃止されており、非標準である。"
5009
5010 #. type: TP
5011 #: build/C/man2/sigaction.2:232
5012 #, no-wrap
5013 msgid "B<SA_RESTART>"
5014 msgstr "B<SA_RESTART>"
5015
5016 #. type: Plain text
5017 #: build/C/man2/sigaction.2:240
5018 msgid ""
5019 "Provide behavior compatible with BSD signal semantics by making certain "
5020 "system calls restartable across signals.  This flag is meaningful only when "
5021 "establishing a signal handler.  See B<signal>(7)  for a discussion of system "
5022 "call restarting."
5023 msgstr ""
5024 "いくつかのシステムコールをシグナルの通知の前後で再開できるようにして、 BSD シ"
5025 "グナル方式 (semantics) と互換性のある動作を提供する。 このフラグはシグナルハ"
5026 "ンドラを設定する際にのみ意味を持つ。 B<signal>(7)  に書かれているシステムコー"
5027 "ルの再開に関する議論を参照のこと。"
5028
5029 #. type: TP
5030 #: build/C/man2/sigaction.2:240
5031 #, no-wrap
5032 msgid "B<SA_SIGINFO> (since Linux 2.2)"
5033 msgstr "B<SA_SIGINFO> (Linux 2.2 以降)"
5034
5035 #.  (The
5036 #.  .I sa_sigaction
5037 #.  field was added in Linux 2.1.86.)
5038 #. type: Plain text
5039 #: build/C/man2/sigaction.2:251
5040 msgid ""
5041 "The signal handler takes three arguments, not one.  In this case, "
5042 "I<sa_sigaction> should be set instead of I<sa_handler>.  This flag is "
5043 "meaningful only when establishing a signal handler."
5044 msgstr ""
5045 "シグナルハンドラは一つではなく、三つの引き数を持つ。この場合は I<sa_handler> "
5046 "のかわりに I<sa_sigaction> を設定しなければならない このフラグはシグナルハン"
5047 "ドラを設定する際にのみ意味を持つ。"
5048
5049 #. type: Plain text
5050 #: build/C/man2/sigaction.2:258
5051 msgid ""
5052 "The I<siginfo_t> argument to I<sa_sigaction> is a struct with the following "
5053 "elements:"
5054 msgstr ""
5055 "I<sa_sigaction> のパラメータ I<siginfo_t> は以下の要素を持つ構造体である:"
5056
5057 #.  FIXME
5058 #.  si_trapno seems to be only used on SPARC and Alpha;
5059 #.  this page could use a little more detail on its purpose there.
5060 #.  In the kernel: si_tid
5061 #. type: Plain text
5062 #: build/C/man2/sigaction.2:289
5063 #, no-wrap
5064 msgid ""
5065 "siginfo_t {\n"
5066 "    int      si_signo;    /* Signal number */\n"
5067 "    int      si_errno;    /* An errno value */\n"
5068 "    int      si_code;     /* Signal code */\n"
5069 "    int      si_trapno;   /* Trap number that caused\n"
5070 "                             hardware-generated signal\n"
5071 "                             (unused on most architectures) */\n"
5072 "    pid_t    si_pid;      /* Sending process ID */\n"
5073 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
5074 "    int      si_status;   /* Exit value or signal */\n"
5075 "    clock_t  si_utime;    /* User time consumed */\n"
5076 "    clock_t  si_stime;    /* System time consumed */\n"
5077 "    sigval_t si_value;    /* Signal value */\n"
5078 "    int      si_int;      /* POSIX.1b signal */\n"
5079 "    void    *si_ptr;      /* POSIX.1b signal */\n"
5080 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
5081 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
5082 "    void    *si_addr;     /* Memory location which caused fault */\n"
5083 "    long     si_band;     /* Band event (was I<int> in\n"
5084 "                             glibc 2.3.2 and earlier) */\n"
5085 "    int      si_fd;       /* File descriptor */\n"
5086 "    short    si_addr_lsb; /* Least significant bit of address\n"
5087 "                             (since Linux 2.6.32) */\n"
5088 "}\n"
5089 msgstr ""
5090 "siginfo_t {\n"
5091 "    int      si_signo;    /* Signal number */\n"
5092 "    int      si_errno;    /* An errno value */\n"
5093 "    int      si_code;     /* Signal code */\n"
5094 "    int      si_trapno;   /* Trap number that caused\n"
5095 "                             hardware-generated signal\n"
5096 "                             (unused on most architectures) */\n"
5097 "    pid_t    si_pid;      /* Sending process ID */\n"
5098 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
5099 "    int      si_status;   /* Exit value or signal */\n"
5100 "    clock_t  si_utime;    /* User time consumed */\n"
5101 "    clock_t  si_stime;    /* System time consumed */\n"
5102 "    sigval_t si_value;    /* Signal value */\n"
5103 "    int      si_int;      /* POSIX.1b signal */\n"
5104 "    void    *si_ptr;      /* POSIX.1b signal */\n"
5105 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
5106 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
5107 "    void    *si_addr;     /* Memory location which caused fault */\n"
5108 "    long     si_band;     /* Band event (was I<int> in\n"
5109 "                             glibc 2.3.2 and earlier) */\n"
5110 "    int      si_fd;       /* File descriptor */\n"
5111 "    short    si_addr_lsb; /* Least significant bit of address\n"
5112 "                             (since Linux 2.6.32) */\n"
5113 "}\n"
5114
5115 #. type: Plain text
5116 #: build/C/man2/sigaction.2:298
5117 msgid ""
5118 "I<si_signo>, I<si_errno> and I<si_code> are defined for all signals.  "
5119 "(I<si_errno> is generally unused on Linux.)  The rest of the struct may be a "
5120 "union, so that one should read only the fields that are meaningful for the "
5121 "given signal:"
5122 msgstr ""
5123 "I<si_signo>, I<si_errno>, I<si_code> は全てのシグナルに対して定義されている "
5124 "(I<si_errno> は Linux では一般的には使用されない)。 構造体の残りの部分は、共"
5125 "用体 (union) になっているかもしれない。 その場合は該当するシグナルにおいて意"
5126 "味のあるフィールドのみを読み込む ことができる。"
5127
5128 #. type: Plain text
5129 #: build/C/man2/sigaction.2:313
5130 msgid ""
5131 "Signals sent with B<kill>(2)  and B<sigqueue>(3)  fill in I<si_pid> and "
5132 "I<si_uid>.  In addition, signals sent with B<sigqueue>(3)  fill in I<si_int> "
5133 "and I<si_ptr> with the values specified by the sender of the signal; see "
5134 "B<sigqueue>(3)  for more details."
5135 msgstr ""
5136 "B<kill>(2) や B<sigqueue>(3) で送信されたシグナルでは I<si_pid> と I<si_uid> "
5137 "が設定される。 さらに、 B<sigqueue>(3) で送信されたシグナルでは I<si_int> と "
5138 "I<si_pid> にシグナルの送信者により指定された値が設定される。詳細は "
5139 "B<sigqueue>(3) を参照。"
5140
5141 #. type: Plain text
5142 #: build/C/man2/sigaction.2:329
5143 msgid ""
5144 "Signals sent by POSIX.1b timers (since Linux 2.6) fill in I<si_overrun> and "
5145 "I<si_timerid>.  The I<si_timerid> field is an internal ID used by the kernel "
5146 "to identify the timer; it is not the same as the timer ID returned by "
5147 "B<timer_create>(2).  The I<si_overrun> field is the timer overrun count; "
5148 "this is the same information as is obtained by a call to "
5149 "B<timer_getoverrun>(2).  These fields are nonstandard Linux extensions."
5150 msgstr ""
5151 "POSIX.1b タイマ (Linux 2.6 以降) は I<si_overrun> と I<si_timerid> を設定す"
5152 "る。 I<si_timerid> フィールドはカーネルがタイマを特定するのに使用する内部 ID "
5153 "であり、 B<timer_create>(2) が返すタイマ ID と同じではない。 I<si_overrun> "
5154 "フィールドはタイマが回り切った回数である。 これは B<timer_getoverrun>(2) の呼"
5155 "び出しで取得できる情報と同じである。 これらのフィールドは非標準で Linux によ"
5156 "る拡張である。"
5157
5158 #. type: Plain text
5159 #: build/C/man2/sigaction.2:344
5160 msgid ""
5161 "Signals sent for message queue notification (see the description of "
5162 "B<SIGEV_SIGNAL> in B<mq_notify>(3))  fill in I<si_int>/I<si_ptr>, with the "
5163 "I<sigev_value> supplied to B<mq_notify>(3); I<si_pid>, with the process ID "
5164 "of the message sender; and I<si_uid>, with the real user ID of the message "
5165 "sender."
5166 msgstr ""
5167 "メッセージキューの通知用に送信されたシグナル (B<mq_notify>(3) の "
5168 "B<SIGEV_SIGNAL> の説明を参照) では、 I<si_int>/I<si_ptr> に B<mq_notify>(3) "
5169 "に渡された I<sigev_value> が設定される。 I<si_pid> にはメッセージ送信者のプロ"
5170 "セス ID が設定され、 I<si_uid> にはメッセージ送信者の実ユーザ ID が設定され"
5171 "る。"
5172
5173 #.  FIXME .
5174 #.  When si_utime and si_stime where originally implemented, the
5175 #.  measurement unit was HZ, which was the same as clock ticks
5176 #.  (sysconf(_SC_CLK_TCK)).  In 2.6, HZ became configurable, and
5177 #.  was *still* used as the unit to return the info these fields,
5178 #.  with the result that the field values depended on the the
5179 #.  configured HZ.  Of course, the should have been measured in
5180 #.  USER_HZ instead, so that sysconf(_SC_CLK_TCK) could be used to
5181 #.  convert to seconds.  I have a queued patch to fix this:
5182 #.  http://thread.gmane.org/gmane.linux.kernel/698061/ .
5183 #.  This patch made it into 2.6.27.
5184 #.  But note that these fields still don't return the times of
5185 #.  waited-for children (as is done by getrusage() and times()
5186 #.  and wait4()).  Solaris 8 does include child times.
5187 #. type: Plain text
5188 #: build/C/man2/sigaction.2:391
5189 #, fuzzy
5190 #| msgid ""
5191 #| "B<SIGCHLD> fills in I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>, and "
5192 #| "I<si_stime>, providing information about the child.  The I<si_pid> field "
5193 #| "is the process ID of the child; I<si_uid> is the child's real user ID.  "
5194 #| "The I<si_status> field contains the exit status of the child (if "
5195 #| "I<si_code> is B<CLD_EXITED>), or the signal number that caused the "
5196 #| "process to change state.  The I<si_utime> and I<si_stime> contain the "
5197 #| "user and system CPU time used by the child process; these fields do not "
5198 #| "include the times used by waited-for children (unlike B<getrusage>(2)  "
5199 #| "and B<time>(2)).  In kernels up to 2.6, and since 2.6.27, these fields "
5200 #| "report CPU time in units of I<sysconf(_SC_CLK_TCK)>.  In 2.6 kernels "
5201 #| "before 2.6.27, a bug meant that these fields reported time in units of "
5202 #| "the (configurable) system jiffy (see B<time>(7))."
5203 msgid ""
5204 "B<SIGCHLD> fills in I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>, and "
5205 "I<si_stime>, providing information about the child.  The I<si_pid> field is "
5206 "the process ID of the child; I<si_uid> is the child's real user ID.  The "
5207 "I<si_status> field contains the exit status of the child (if I<si_code> is "
5208 "B<CLD_EXITED>), or the signal number that caused the process to change "
5209 "state.  The I<si_utime> and I<si_stime> contain the user and system CPU time "
5210 "used by the child process; these fields do not include the times used by "
5211 "waited-for children (unlike B<getrusage>(2)  and B<times>(2)).  In kernels "
5212 "up to 2.6, and since 2.6.27, these fields report CPU time in units of "
5213 "I<sysconf(_SC_CLK_TCK)>.  In 2.6 kernels before 2.6.27, a bug meant that "
5214 "these fields reported time in units of the (configurable) system jiffy (see "
5215 "B<time>(7))."
5216 msgstr ""
5217 "B<SIGCHLD> は I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>, I<si_stime> を"
5218 "設定し、子プロセスに関する情報を提供する。 I<si_pid> フィールドは子プロセスの"
5219 "プロセス ID で、 I<si_uid> フィールドは子プロセスの実ユーザ ID である。 "
5220 "I<si_stime> フィールドには、 (I<si_code> が B<CLD_EXITED> の場合は) 子プロセ"
5221 "スの終了ステータスが、それ以外の場合は状態が変化する原因となったシグナル番号"
5222 "が格納される。 I<si_utime> と I<si_stime> には子プロセスが使用したユーザ CPU "
5223 "時間とシステム CPU 時間がそれぞれ格納される。(B<getrusage>(2) や B<time>(2) "
5224 "と異なり) これらのフィールドには wait 待ちの子プロセスにより使用された時間は"
5225 "含まれない。 2.6 より前と 2.6.27 以降のカーネルでは、 これらのフィールドに格"
5226 "納される CPU 時間の単位は I<sysconf(_SC_CLK_TCK)> である。 2.6.27 より前の "
5227 "2.6 系のカーネルでは、バグがあり、 これらのフィールドの CPU 時間の単位が "
5228 "(カーネルのコンフィグで指定される) システムの jiffy であった (B<time>(7) 参"
5229 "照)。"
5230
5231 #.  FIXME SIGTRAP also sets the following for ptrace_notify() ?
5232 #.      info.si_code = exit_code;
5233 #.      info.si_pid = task_pid_vnr(current);
5234 #.      info.si_uid = current_uid();  /* Real UID */
5235 #. type: Plain text
5236 #: build/C/man2/sigaction.2:427
5237 msgid ""
5238 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, and B<SIGTRAP> fill in "
5239 "I<si_addr> with the address of the fault.  On some architectures, these "
5240 "signals also fill in the I<si_trapno> field.  Some suberrors of B<SIGBUS>, "
5241 "in particular B<BUS_MCEERR_AO> and B<BUS_MCEERR_AR>, also fill in "
5242 "I<si_addr_lsb>.  This field indicates the least significant bit of the "
5243 "reported address and therefore the extent of the corruption.  For example, "
5244 "if a full page was corrupted, I<si_addr_lsb> contains "
5245 "I<log2(sysconf(_SC_PAGESIZE))>.  B<BUS_MCERR_*> and I<si_addr_lsb> are Linux-"
5246 "specific extensions."
5247 msgstr ""
5248 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, B<SIGTRAP> では、 I<si_addr> に "
5249 "fault が発生したアドレスが設定される。 いくつかのアーキテクチャでは、 これら"
5250 "のシグナルは I<si_trapno> フィールドにも設定される。 B<SIGBUS> が発生するエ"
5251 "ラーのいくつか、特に B<BUS_MCEERR_AO> と B<BUS_MCEERR_AR> では、 "
5252 "I<si_addr_lsb> も設定される。 このフィールドは報告されるアドレスの最下位ビッ"
5253 "トを示し、 これによりメモリ破壊の程度を知ることができる。 例えば、ページ全体"
5254 "が壊れている場合には I<si_addr_lsb> には I<log2(sysconf(_SC_PAGESIZE))> が入"
5255 "る。 B<BUS_MCERR_*> と I<si_addr_lsb> は Linux 固有の拡張である。"
5256
5257 #. type: Plain text
5258 #: build/C/man2/sigaction.2:441
5259 msgid ""
5260 "B<SIGIO>/B<SIGPOLL> (the two names are synonyms on Linux)  fills in "
5261 "I<si_band> and I<si_fd>.  The I<si_band> event is a bit mask containing the "
5262 "same values as are filled in the I<revents> field by B<poll>(2).  The "
5263 "I<si_fd> field indicates the file descriptor for which the I/O event "
5264 "occurred."
5265 msgstr ""
5266 "B<SIGIO>/B<SIGPOLL> (2 つの名前は Linux では同義語) では I<si_band> と "
5267 "I<si_fd> が設定される。 I<si_band> イベントは、 B<poll>(2) が I<revents> "
5268 "フィールドに設定するのと同じ値が入ったビットマスクである。 I<si_fd> フィール"
5269 "ドは I/O イベントが発生したファイルディスクリプタを示す。"
5270
5271 #. type: Plain text
5272 #: build/C/man2/sigaction.2:448
5273 msgid ""
5274 "I<si_code> is a value (not a bit mask)  indicating why this signal was "
5275 "sent.  The following list shows the values which can be placed in I<si_code> "
5276 "for any signal, along with reason that the signal was generated."
5277 msgstr ""
5278 "I<si_code> は、そのシグナルが送信された理由を示す値である (ビットマスクではな"
5279 "い)。 以下は、どのシグナルの場合でも I<si_code> に入りうる値のリストである。"
5280 "シグナルが生成された理由も記載している。"
5281
5282 #. type: TP
5283 #: build/C/man2/sigaction.2:449
5284 #, no-wrap
5285 msgid "B<SI_USER>"
5286 msgstr "B<SI_USER>"
5287
5288 #. type: TP
5289 #: build/C/man2/sigaction.2:452 build/C/man7/signal.7:111
5290 #, no-wrap
5291 msgid "B<kill>(2)"
5292 msgstr "B<kill>(2)"
5293
5294 #. type: TP
5295 #: build/C/man2/sigaction.2:452
5296 #, no-wrap
5297 msgid "B<SI_KERNEL>"
5298 msgstr "B<SI_KERNEL>"
5299
5300 #. type: Plain text
5301 #: build/C/man2/sigaction.2:455
5302 msgid "Sent by the kernel."
5303 msgstr "カーネルにより送信された"
5304
5305 #. type: TP
5306 #: build/C/man2/sigaction.2:455
5307 #, no-wrap
5308 msgid "B<SI_QUEUE>"
5309 msgstr "B<SI_QUEUE>"
5310
5311 #. type: TP
5312 #: build/C/man2/sigaction.2:458 build/C/man7/signal.7:128
5313 #, no-wrap
5314 msgid "B<sigqueue>(3)"
5315 msgstr "B<sigqueue>(3)"
5316
5317 #. type: TP
5318 #: build/C/man2/sigaction.2:458
5319 #, no-wrap
5320 msgid "B<SI_TIMER>"
5321 msgstr "B<SI_TIMER>"
5322
5323 #. type: Plain text
5324 #: build/C/man2/sigaction.2:461
5325 msgid "POSIX timer expired"
5326 msgstr "POSIX タイマが満了した"
5327
5328 #. type: TP
5329 #: build/C/man2/sigaction.2:461
5330 #, no-wrap
5331 msgid "B<SI_MESGQ>"
5332 msgstr "B<SI_MESGQ>"
5333
5334 #. type: Plain text
5335 #: build/C/man2/sigaction.2:465
5336 msgid ""
5337 "POSIX message queue state changed (since Linux 2.6.6); see B<mq_notify>(3)"
5338 msgstr ""
5339 "POSIX メッセージキューの状態が変化した (Linux 2.6.6 以降)。 B<mq_notify>(3)B<"
5340 "参照。>"
5341
5342 #. type: TP
5343 #: build/C/man2/sigaction.2:465
5344 #, no-wrap
5345 msgid "B<SI_ASYNCIO>"
5346 msgstr "B<SI_ASYNCIO>"
5347
5348 #. type: Plain text
5349 #: build/C/man2/sigaction.2:468
5350 msgid "AIO completed"
5351 msgstr "非同期 IO (AIO) が完了した"
5352
5353 #. type: TP
5354 #: build/C/man2/sigaction.2:468
5355 #, no-wrap
5356 msgid "B<SI_SIGIO>"
5357 msgstr "B<SI_SIGIO>"
5358
5359 #. type: Plain text
5360 #: build/C/man2/sigaction.2:477
5361 msgid ""
5362 "Queued B<SIGIO> (only in kernels up to Linux 2.2; from Linux 2.4 onward "
5363 "B<SIGIO>/B<SIGPOLL> fills in I<si_code> as described below)."
5364 msgstr ""
5365 "B<SIGIO> がキューイングされた (Linux 2.2 以下のカーネルのみ; Linux 2.4 以降で"
5366 "は以下で説明する B<SIGIO>/B<SIGPOLL> の I<si_code> が入る)。"
5367
5368 #. type: TP
5369 #: build/C/man2/sigaction.2:477
5370 #, no-wrap
5371 msgid "B<SI_TKILL>"
5372 msgstr "B<SI_TKILL>"
5373
5374 #.  SI_DETHREAD is defined in 2.6.9 sources, but isn't implemented
5375 #.  It appears to have been an idea that was tried during 2.5.6
5376 #.  through to 2.5.24 and then was backed out.
5377 #. type: Plain text
5378 #: build/C/man2/sigaction.2:486
5379 msgid "B<tkill>(2)  or B<tgkill>(2)  (since Linux 2.4.19)"
5380 msgstr "B<tkill>(2)  または B<tgkill>(2)  (Linux 2.4.19 以降)"
5381
5382 #. type: Plain text
5383 #: build/C/man2/sigaction.2:493
5384 msgid ""
5385 "The following values can be placed in I<si_code> for a B<SIGILL> signal:"
5386 msgstr "B<SIGILL> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5387
5388 #. type: TP
5389 #: build/C/man2/sigaction.2:494
5390 #, no-wrap
5391 msgid "B<ILL_ILLOPC>"
5392 msgstr "B<ILL_ILLOPC>"
5393
5394 #. type: Plain text
5395 #: build/C/man2/sigaction.2:497
5396 msgid "illegal opcode"
5397 msgstr "不正な命令コード (opcode)"
5398
5399 #. type: TP
5400 #: build/C/man2/sigaction.2:497
5401 #, no-wrap
5402 msgid "B<ILL_ILLOPN>"
5403 msgstr "B<ILL_ILLOPN>"
5404
5405 #. type: Plain text
5406 #: build/C/man2/sigaction.2:500
5407 msgid "illegal operand"
5408 msgstr "不正なオペランド"
5409
5410 #. type: TP
5411 #: build/C/man2/sigaction.2:500
5412 #, no-wrap
5413 msgid "B<ILL_ILLADR>"
5414 msgstr "B<ILL_ILLADR>"
5415
5416 #. type: Plain text
5417 #: build/C/man2/sigaction.2:503
5418 msgid "illegal addressing mode"
5419 msgstr "不正なアドレッシングモード"
5420
5421 #. type: TP
5422 #: build/C/man2/sigaction.2:503
5423 #, no-wrap
5424 msgid "B<ILL_ILLTRP>"
5425 msgstr "B<ILL_ILLTRP>"
5426
5427 #. type: Plain text
5428 #: build/C/man2/sigaction.2:506
5429 msgid "illegal trap"
5430 msgstr "不正なトラップ"
5431
5432 #. type: TP
5433 #: build/C/man2/sigaction.2:506
5434 #, no-wrap
5435 msgid "B<ILL_PRVOPC>"
5436 msgstr "B<ILL_PRVOPC>"
5437
5438 #. type: Plain text
5439 #: build/C/man2/sigaction.2:509
5440 msgid "privileged opcode"
5441 msgstr "特権が必要な命令コード (opcode)"
5442
5443 #. type: TP
5444 #: build/C/man2/sigaction.2:509
5445 #, no-wrap
5446 msgid "B<ILL_PRVREG>"
5447 msgstr "B<ILL_PRVREG>"
5448
5449 #. type: Plain text
5450 #: build/C/man2/sigaction.2:512
5451 msgid "privileged register"
5452 msgstr "特権が必要なレジスタ"
5453
5454 #. type: TP
5455 #: build/C/man2/sigaction.2:512
5456 #, no-wrap
5457 msgid "B<ILL_COPROC>"
5458 msgstr "B<ILL_COPROC>"
5459
5460 #. type: Plain text
5461 #: build/C/man2/sigaction.2:515
5462 msgid "coprocessor error"
5463 msgstr "コプロセッサのエラー"
5464
5465 #. type: TP
5466 #: build/C/man2/sigaction.2:515
5467 #, no-wrap
5468 msgid "B<ILL_BADSTK>"
5469 msgstr "B<ILL_BADSTK>"
5470
5471 #. type: Plain text
5472 #: build/C/man2/sigaction.2:518
5473 msgid "internal stack error"
5474 msgstr "内部スタックエラー"
5475
5476 #. type: Plain text
5477 #: build/C/man2/sigaction.2:525
5478 msgid ""
5479 "The following values can be placed in I<si_code> for a B<SIGFPE> signal:"
5480 msgstr "B<SIGFPE> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5481
5482 #. type: TP
5483 #: build/C/man2/sigaction.2:526
5484 #, no-wrap
5485 msgid "B<FPE_INTDIV>"
5486 msgstr "B<FPE_INTDIV>"
5487
5488 #. type: Plain text
5489 #: build/C/man2/sigaction.2:529
5490 msgid "integer divide by zero"
5491 msgstr "整数の 0 による除算"
5492
5493 #. type: TP
5494 #: build/C/man2/sigaction.2:529
5495 #, no-wrap
5496 msgid "B<FPE_INTOVF>"
5497 msgstr "B<FPE_INTOVF>"
5498
5499 #. type: Plain text
5500 #: build/C/man2/sigaction.2:532
5501 msgid "integer overflow"
5502 msgstr "整数のオーバーフロー"
5503
5504 #. type: TP
5505 #: build/C/man2/sigaction.2:532
5506 #, no-wrap
5507 msgid "B<FPE_FLTDIV>"
5508 msgstr "B<FPE_FLTDIV>"
5509
5510 #. type: Plain text
5511 #: build/C/man2/sigaction.2:535
5512 msgid "floating-point divide by zero"
5513 msgstr "浮動小数点の 0 による除算"
5514
5515 #. type: TP
5516 #: build/C/man2/sigaction.2:535
5517 #, no-wrap
5518 msgid "B<FPE_FLTOVF>"
5519 msgstr "B<FPE_FLTOVF>"
5520
5521 #. type: Plain text
5522 #: build/C/man2/sigaction.2:538
5523 msgid "floating-point overflow"
5524 msgstr "浮動小数点のオーバーフロー"
5525
5526 #. type: TP
5527 #: build/C/man2/sigaction.2:538
5528 #, no-wrap
5529 msgid "B<FPE_FLTUND>"
5530 msgstr "B<FPE_FLTUND>"
5531
5532 #. type: Plain text
5533 #: build/C/man2/sigaction.2:541
5534 msgid "floating-point underflow"
5535 msgstr "浮動小数点のアンダーフロー"
5536
5537 #. type: TP
5538 #: build/C/man2/sigaction.2:541
5539 #, no-wrap
5540 msgid "B<FPE_FLTRES>"
5541 msgstr "B<FPE_FLTRES>"
5542
5543 #. type: Plain text
5544 #: build/C/man2/sigaction.2:544
5545 msgid "floating-point inexact result"
5546 msgstr "浮動小数点の不正確な演算結果 (inexact result)"
5547
5548 #. type: TP
5549 #: build/C/man2/sigaction.2:544
5550 #, no-wrap
5551 msgid "B<FPE_FLTINV>"
5552 msgstr "B<FPE_FLTINV>"
5553
5554 #. type: Plain text
5555 #: build/C/man2/sigaction.2:547
5556 msgid "floating-point invalid operation"
5557 msgstr "浮動小数点の不正な操作"
5558
5559 #. type: TP
5560 #: build/C/man2/sigaction.2:547
5561 #, no-wrap
5562 msgid "B<FPE_FLTSUB>"
5563 msgstr "B<FPE_FLTSUB>"
5564
5565 #. type: Plain text
5566 #: build/C/man2/sigaction.2:550
5567 msgid "subscript out of range"
5568 msgstr "範囲外の添字 (subscript)"
5569
5570 #. type: Plain text
5571 #: build/C/man2/sigaction.2:557
5572 msgid ""
5573 "The following values can be placed in I<si_code> for a B<SIGSEGV> signal:"
5574 msgstr "B<SIGSEGV> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5575
5576 #. type: TP
5577 #: build/C/man2/sigaction.2:558
5578 #, no-wrap
5579 msgid "B<SEGV_MAPERR>"
5580 msgstr "B<SEGV_MAPERR>"
5581
5582 #. type: Plain text
5583 #: build/C/man2/sigaction.2:561
5584 msgid "address not mapped to object"
5585 msgstr "オブジェクトにマッピングされていないアドレス"
5586
5587 #. type: TP
5588 #: build/C/man2/sigaction.2:561
5589 #, no-wrap
5590 msgid "B<SEGV_ACCERR>"
5591 msgstr "B<SEGV_ACCERR>"
5592
5593 #. type: Plain text
5594 #: build/C/man2/sigaction.2:564
5595 msgid "invalid permissions for mapped object"
5596 msgstr "マッピングされたオブジェクトに対するアクセス許可がない"
5597
5598 #. type: Plain text
5599 #: build/C/man2/sigaction.2:571
5600 msgid ""
5601 "The following values can be placed in I<si_code> for a B<SIGBUS> signal:"
5602 msgstr "B<SIGBUS> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5603
5604 #. type: TP
5605 #: build/C/man2/sigaction.2:572
5606 #, no-wrap
5607 msgid "B<BUS_ADRALN>"
5608 msgstr "B<BUS_ADRALN>"
5609
5610 #. type: Plain text
5611 #: build/C/man2/sigaction.2:575
5612 msgid "invalid address alignment"
5613 msgstr "不正なアドレス・アライメント (alignment)"
5614
5615 #. type: TP
5616 #: build/C/man2/sigaction.2:575
5617 #, no-wrap
5618 msgid "B<BUS_ADRERR>"
5619 msgstr "B<BUS_ADRERR>"
5620
5621 #. type: Plain text
5622 #: build/C/man2/sigaction.2:578
5623 msgid "nonexistent physical address"
5624 msgstr "存在しない物理アドレス"
5625
5626 #. type: TP
5627 #: build/C/man2/sigaction.2:578
5628 #, no-wrap
5629 msgid "B<BUS_OBJERR>"
5630 msgstr "B<BUS_OBJERR>"
5631
5632 #. type: Plain text
5633 #: build/C/man2/sigaction.2:581
5634 msgid "object-specific hardware error"
5635 msgstr "オブジェクト固有のハードウェアエラー"
5636
5637 #. type: TP
5638 #: build/C/man2/sigaction.2:581
5639 #, no-wrap
5640 msgid "B<BUS_MCEERR_AR> (since Linux 2.6.32)"
5641 msgstr "B<BUS_MCEERR_AR> (Linux 2.6.32 以降)"
5642
5643 #. type: Plain text
5644 #: build/C/man2/sigaction.2:584
5645 msgid "Hardware memory error consumed on a machine check; action required."
5646 msgstr ""
5647 "マシンチェックで使用中のハードウェアメモリのエラーが検出された。対応が必須。"
5648
5649 #. type: TP
5650 #: build/C/man2/sigaction.2:584
5651 #, no-wrap
5652 msgid "B<BUS_MCEERR_AO> (since Linux 2.6.32)"
5653 msgstr "B<BUS_MCEERR_AO> (Linux 2.6.32  以降)"
5654
5655 #. type: Plain text
5656 #: build/C/man2/sigaction.2:587
5657 msgid ""
5658 "Hardware memory error detected in process but not consumed; action optional."
5659 msgstr ""
5660 "実行中にハードウェアメモリエラーが検出されたが、使用中のメモリではない。対応"
5661 "は必須ではない。"
5662
5663 #. type: Plain text
5664 #: build/C/man2/sigaction.2:594
5665 msgid ""
5666 "The following values can be placed in I<si_code> for a B<SIGTRAP> signal:"
5667 msgstr "B<SIGTRAP> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5668
5669 #. type: TP
5670 #: build/C/man2/sigaction.2:595
5671 #, no-wrap
5672 msgid "B<TRAP_BRKPT>"
5673 msgstr "B<TRAP_BRKPT>"
5674
5675 #. type: Plain text
5676 #: build/C/man2/sigaction.2:598
5677 msgid "process breakpoint"
5678 msgstr "プロセスのブレークポイント"
5679
5680 #. type: TP
5681 #: build/C/man2/sigaction.2:598
5682 #, no-wrap
5683 msgid "B<TRAP_TRACE>"
5684 msgstr "B<TRAP_TRACE>"
5685
5686 #. type: Plain text
5687 #: build/C/man2/sigaction.2:601
5688 msgid "process trace trap"
5689 msgstr "プロセスのトレース・トラップ"
5690
5691 #. type: TP
5692 #: build/C/man2/sigaction.2:601
5693 #, no-wrap
5694 msgid "B<TRAP_BRANCH> (since Linux 2.4)"
5695 msgstr "B<TRAP_BRANCH> (Linux 2.4 以降)"
5696
5697 #. type: Plain text
5698 #: build/C/man2/sigaction.2:604
5699 msgid "process taken branch trap"
5700 msgstr "プロセスのブランチ・トラップ"
5701
5702 #. type: TP
5703 #: build/C/man2/sigaction.2:604
5704 #, no-wrap
5705 msgid "B<TRAP_HWBKPT> (since Linux 2.4)"
5706 msgstr "B<TRAP_HWBKPT> (Linux 2.4 以降)"
5707
5708 #. type: Plain text
5709 #: build/C/man2/sigaction.2:607
5710 msgid "hardware breakpoint/watchpoint"
5711 msgstr "ハードウェア・ブレークポイント/ウォッチポイント"
5712
5713 #. type: Plain text
5714 #: build/C/man2/sigaction.2:614
5715 msgid ""
5716 "The following values can be placed in I<si_code> for a B<SIGCHLD> signal:"
5717 msgstr "B<SIGCHLD> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5718
5719 #. type: TP
5720 #: build/C/man2/sigaction.2:615
5721 #, no-wrap
5722 msgid "B<CLD_EXITED>"
5723 msgstr "B<CLD_EXITED>"
5724
5725 #. type: Plain text
5726 #: build/C/man2/sigaction.2:618
5727 msgid "child has exited"
5728 msgstr "子プロセスが終了した (exited)"
5729
5730 #. type: TP
5731 #: build/C/man2/sigaction.2:618
5732 #, no-wrap
5733 msgid "B<CLD_KILLED>"
5734 msgstr "B<CLD_KILLED>"
5735
5736 #. type: Plain text
5737 #: build/C/man2/sigaction.2:621
5738 msgid "child was killed"
5739 msgstr "子プロセスが kill された"
5740
5741 #. type: TP
5742 #: build/C/man2/sigaction.2:621
5743 #, no-wrap
5744 msgid "B<CLD_DUMPED>"
5745 msgstr "B<CLD_DUMPED>"
5746
5747 #. type: Plain text
5748 #: build/C/man2/sigaction.2:624
5749 msgid "child terminated abnormally"
5750 msgstr "子プロセスが異常終了した"
5751
5752 #. type: TP
5753 #: build/C/man2/sigaction.2:624
5754 #, no-wrap
5755 msgid "B<CLD_TRAPPED>"
5756 msgstr "B<CLD_TRAPPED>"
5757
5758 #. type: Plain text
5759 #: build/C/man2/sigaction.2:627
5760 msgid "traced child has trapped"
5761 msgstr "トレース対象の子プロセスがトラップを上げた"
5762
5763 #. type: TP
5764 #: build/C/man2/sigaction.2:627
5765 #, no-wrap
5766 msgid "B<CLD_STOPPED>"
5767 msgstr "B<CLD_STOPPED>"
5768
5769 #. type: Plain text
5770 #: build/C/man2/sigaction.2:630
5771 msgid "child has stopped"
5772 msgstr "子プロセスが停止 (stop) した"
5773
5774 #. type: TP
5775 #: build/C/man2/sigaction.2:630
5776 #, no-wrap
5777 msgid "B<CLD_CONTINUED>"
5778 msgstr "B<CLD_CONTINUED>"
5779
5780 #. type: Plain text
5781 #: build/C/man2/sigaction.2:633
5782 msgid "stopped child has continued (since Linux 2.6.9)"
5783 msgstr "停止していた子プロセスが再開した (Linux 2.6.9 以降)"
5784
5785 #. type: Plain text
5786 #: build/C/man2/sigaction.2:640
5787 msgid ""
5788 "The following values can be placed in I<si_code> for a B<SIGIO>/B<SIGPOLL> "
5789 "signal:"
5790 msgstr ""
5791 "B<SIGIO>/B<SIGPOLL> シグナルの場合、 I<si_code> には以下の値が入る可能性があ"
5792 "る:"
5793
5794 #. type: TP
5795 #: build/C/man2/sigaction.2:641
5796 #, no-wrap
5797 msgid "B<POLL_IN>"
5798 msgstr "B<POLL_IN>"
5799
5800 #. type: Plain text
5801 #: build/C/man2/sigaction.2:644
5802 msgid "data input available"
5803 msgstr "入力データが利用可能"
5804
5805 #. type: TP
5806 #: build/C/man2/sigaction.2:644
5807 #, no-wrap
5808 msgid "B<POLL_OUT>"
5809 msgstr "B<POLL_OUT>"
5810
5811 #. type: Plain text
5812 #: build/C/man2/sigaction.2:647
5813 msgid "output buffers available"
5814 msgstr "出力バッファが利用可能"
5815
5816 #. type: TP
5817 #: build/C/man2/sigaction.2:647
5818 #, no-wrap
5819 msgid "B<POLL_MSG>"
5820 msgstr "B<POLL_MSG>"
5821
5822 #. type: Plain text
5823 #: build/C/man2/sigaction.2:650
5824 msgid "input message available"
5825 msgstr "入力メッセージが利用可能"
5826
5827 #. type: TP
5828 #: build/C/man2/sigaction.2:650
5829 #, no-wrap
5830 msgid "B<POLL_ERR>"
5831 msgstr "B<POLL_ERR>"
5832
5833 #. type: Plain text
5834 #: build/C/man2/sigaction.2:653
5835 msgid "I/O error"
5836 msgstr "I/O エラー"
5837
5838 #. type: TP
5839 #: build/C/man2/sigaction.2:653
5840 #, no-wrap
5841 msgid "B<POLL_PRI>"
5842 msgstr "B<POLL_PRI>"
5843
5844 #. type: Plain text
5845 #: build/C/man2/sigaction.2:656
5846 msgid "high priority input available"
5847 msgstr "高優先の入力が利用可能"
5848
5849 #. type: TP
5850 #: build/C/man2/sigaction.2:656
5851 #, no-wrap
5852 msgid "B<POLL_HUP>"
5853 msgstr "B<POLL_HUP>"
5854
5855 #. type: Plain text
5856 #: build/C/man2/sigaction.2:659
5857 msgid "device disconnected"
5858 msgstr "デバイスが接続されていない"
5859
5860 #. type: Plain text
5861 #: build/C/man2/sigaction.2:665
5862 msgid ""
5863 "B<sigaction>()  returns 0 on success; on error, -1 is returned, and I<errno> "
5864 "is set to indicate the error."
5865 msgstr ""
5866 "B<sigaction>() 関数は成功すると 0 を返す。 エラーの場合、-1 を返し、 "
5867 "I<errno> にエラーを示す値をセットする。"
5868
5869 #. type: Plain text
5870 #: build/C/man2/sigaction.2:670
5871 msgid ""
5872 "I<act> or I<oldact> points to memory which is not a valid part of the "
5873 "process address space."
5874 msgstr ""
5875 "I<act> か I<oldact> が指しているメモリが正しいプロセスのアドレス空間にない。"
5876
5877 #. type: Plain text
5878 #: build/C/man2/sigaction.2:677
5879 msgid ""
5880 "An invalid signal was specified.  This will also be generated if an attempt "
5881 "is made to change the action for B<SIGKILL> or B<SIGSTOP>, which cannot be "
5882 "caught or ignored."
5883 msgstr ""
5884 "無効なシグナルが指定された。補足 (catch) したり無視したりできない シグナルで"
5885 "ある B<SIGKILL> や B<SIGSTOP> に対する動作を変更しようとした場合にも発生す"
5886 "る。"
5887
5888 #.  SVr4 does not document the EINTR condition.
5889 #. type: Plain text
5890 #: build/C/man2/sigaction.2:680
5891 msgid "POSIX.1-2001, SVr4."
5892 msgstr "POSIX.1-2001, SVr4."
5893
5894 #. type: Plain text
5895 #: build/C/man2/sigaction.2:688 build/C/man7/signal.7:105
5896 msgid ""
5897 "A child created via B<fork>(2)  inherits a copy of its parent's signal "
5898 "dispositions.  During an B<execve>(2), the dispositions of handled signals "
5899 "are reset to the default; the dispositions of ignored signals are left "
5900 "unchanged."
5901 msgstr ""
5902 "B<fork>(2) 経由で作成された子プロセスは、親プロセスのシグナルの処理方法の コ"
5903 "ピーを継承する。 B<execve>(2) の前後で、ハンドラが設定されているシグナルの処"
5904 "理方法はデフォルトにリセットされ、 無視が設定されているシグナルの処理方法は変"
5905 "更されずそのままとなる。"
5906
5907 #. type: Plain text
5908 #: build/C/man2/sigaction.2:706 build/C/man2/signal.2:134
5909 msgid ""
5910 "According to POSIX, the behavior of a process is undefined after it ignores "
5911 "a B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> signal that was not generated by "
5912 "B<kill>(2)  or B<raise>(3).  Integer division by zero has undefined result.  "
5913 "On some architectures it will generate a B<SIGFPE> signal.  (Also dividing "
5914 "the most negative integer by -1 may generate B<SIGFPE>.)  Ignoring this "
5915 "signal might lead to an endless loop."
5916 msgstr ""
5917 "POSIX では、 B<kill>(2)  や B<raise>(3)  で生成できないシグナル B<SIGFPE>, "
5918 "B<SIGILL>, B<SIGSEGV> を無視 (ignore) した場合、その後の動作は未定義である。 "
5919 "ゼロによる整数割り算の結果は未定義となる。 アーキテクチャーによっては、このと"
5920 "き B<SIGFPE> シグナルが生成される。 (同様に負の最大整数を -1 で割ると "
5921 "B<SIGFPE> が生成されるかもしれない)  このシグナルを無視すると無限ループに陥る"
5922 "かもしれない。"
5923
5924 #. type: Plain text
5925 #: build/C/man2/sigaction.2:723
5926 #, fuzzy
5927 #| msgid ""
5928 #| "POSIX.1-1990 disallowed setting the action for B<SIGCHLD> to B<SIG_IGN>.  "
5929 #| "POSIX.1-2001 allows this possibility, so that ignoring B<SIGCHLD> can be "
5930 #| "used to prevent the creation of zombies (see B<wait>(2)).  Nevertheless, "
5931 #| "the historical BSD and System V behaviors for ignoring B<SIGCHLD> differ, "
5932 #| "so that the only completely portable method of ensuring that terminated "
5933 #| "children do not become zombies is to catch the B<SIGCHLD> signal and "
5934 #| "perform a B<wait>(2)  or similar."
5935 msgid ""
5936 "POSIX.1-1990 disallowed setting the action for B<SIGCHLD> to B<SIG_IGN>.  "
5937 "POSIX.1-2001 allows this possibility, so that ignoring B<SIGCHLD> can be "
5938 "used to prevent the creation of zombies (see B<wait>(2)).  Nevertheless, the "
5939 "historical BSD and System\\ V behaviors for ignoring B<SIGCHLD> differ, so "
5940 "that the only completely portable method of ensuring that terminated "
5941 "children do not become zombies is to catch the B<SIGCHLD> signal and perform "
5942 "a B<wait>(2)  or similar."
5943 msgstr ""
5944 "POSIX.1-1990 では B<SIGCHLD> に B<SIG_IGN> を設定することを認めていない。 "
5945 "POSIX.1-2001 では認められており、 B<SIGCHLD> を無視することでゾンビプロセスの"
5946 "生成を防止することができる (B<wait>(2)  を参照)。 さらに、BSD と SystemV で"
5947 "は B<SIGCHLD> を無視した際の動作が異なっている。 そのため、完全に移植性がある"
5948 "方法で、終了した子プロセスがゾンビにならないこと を保証するには、 B<SIGCHLD> "
5949 "シグナルを補足し、 B<wait>(2)  などを実行するしかない。"
5950
5951 #. type: Plain text
5952 #: build/C/man2/sigaction.2:736
5953 msgid ""
5954 "POSIX.1-1990 specified only B<SA_NOCLDSTOP>.  POSIX.1-2001 added "
5955 "B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, and B<SA_SIGINFO>.  Use of "
5956 "these latter values in I<sa_flags> may be less portable in applications "
5957 "intended for older UNIX implementations."
5958 msgstr ""
5959 "POSIX.1-1990 の仕様では B<SA_NOCLDSTOP> のみが定義されている。 POSIX.1-2001 "
5960 "では B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, B<SA_SIGINFO> が追加さ"
5961 "れた。 UNIX の古い実装で動かすアプリケーションで、 他の I<sa_flags> フラグを"
5962 "使用すると移植性が下がる。"
5963
5964 #. type: Plain text
5965 #: build/C/man2/sigaction.2:740
5966 msgid ""
5967 "The B<SA_RESETHAND> flag is compatible with the SVr4 flag of the same name."
5968 msgstr "B<SA_RESETHAND> フラグは SVr4 の同じ名前のフラグと互換性がある。"
5969
5970 #. type: Plain text
5971 #: build/C/man2/sigaction.2:750
5972 msgid ""
5973 "The B<SA_NODEFER> flag is compatible with the SVr4 flag of the same name "
5974 "under kernels 1.3.9 and newer.  On older kernels the Linux implementation "
5975 "allowed the receipt of any signal, not just the one we are installing "
5976 "(effectively overriding any I<sa_mask> settings)."
5977 msgstr ""
5978 "B<SA_NODEFER> フラグは 1.3.9 以降のカーネルでは同じ名前の SVr4 のフラグと互換"
5979 "性がある。 ぞれ以前の Linux カーネルの実装では、このフラグを設定しているシグ"
5980 "ナル だけでなく、どのシグナルでも受けることを許していた (実際には I<sa_mask> "
5981 "の設定により無効にできる)。"
5982
5983 #. type: Plain text
5984 #: build/C/man2/sigaction.2:756
5985 msgid ""
5986 "B<sigaction>()  can be called with a NULL second argument to query the "
5987 "current signal handler.  It can also be used to check whether a given signal "
5988 "is valid for the current machine by calling it with NULL second and third "
5989 "arguments."
5990 msgstr ""
5991 "B<sigaction>()  の二番目の引き数に NULL を指定して呼び出すと、現在のシグナル"
5992 "ハンドラを確認する ことができる。また、二番目と三番目の引き数を NULL にて呼び"
5993 "出すことで、 指定されたシグナルが現在のマシンで使えるかどうかチェックできる。"
5994
5995 #. type: Plain text
5996 #: build/C/man2/sigaction.2:762
5997 msgid ""
5998 "It is not possible to block B<SIGKILL> or B<SIGSTOP> (by specifying them in "
5999 "I<sa_mask>).  Attempts to do so are silently ignored."
6000 msgstr ""
6001 "B<SIGKILL> や B<SIGSTOP> を (I<sa_mask> に指定して) 禁止することはできない。 "
6002 "禁止しようとしても黙って無視される。"
6003
6004 #. type: Plain text
6005 #: build/C/man2/sigaction.2:766 build/C/man2/sigpending.2:70
6006 #: build/C/man2/sigprocmask.2:144 build/C/man2/sigsuspend.2:108
6007 msgid "See B<sigsetops>(3)  for details on manipulating signal sets."
6008 msgstr "シグナル集合の操作に関する詳細は B<sigsetops>(3)  を参照のこと。"
6009
6010 #. type: Plain text
6011 #: build/C/man2/sigaction.2:771
6012 msgid ""
6013 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
6014 "safely called inside from inside a signal handler."
6015 msgstr ""
6016 "シグナルハンドラ内から安全に呼び出すことができる、 async-signal-safe "
6017 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
6018 "照。"
6019
6020 #. type: SS
6021 #: build/C/man2/sigaction.2:771
6022 #, no-wrap
6023 msgid "Undocumented"
6024 msgstr "非公式"
6025
6026 #. type: Plain text
6027 #: build/C/man2/sigaction.2:781
6028 msgid ""
6029 "Before the introduction of B<SA_SIGINFO> it was also possible to get some "
6030 "additional information, namely by using a I<sa_handler> with second argument "
6031 "of type I<struct sigcontext>.  See the relevant Linux kernel sources for "
6032 "details.  This use is obsolete now."
6033 msgstr ""
6034 "B<SA_SIGINFO> が導入される前は、 I<struct sigcontext> 型の二番目の引き数と一"
6035 "緒に I<sa_handler> を使用することで、 いくつかの追加の情報を入手することがで"
6036 "きた。 詳細については Linux カーネルソースの関連部分を見てほしい。 現在はこの"
6037 "使用法は廃止されている。"
6038
6039 #. type: Plain text
6040 #: build/C/man2/sigaction.2:790
6041 msgid ""
6042 "In kernels up to and including 2.6.13, specifying B<SA_NODEFER> in "
6043 "I<sa_flags> prevents not only the delivered signal from being masked during "
6044 "execution of the handler, but also the signals specified in I<sa_mask>.  "
6045 "This bug was fixed in kernel 2.6.14."
6046 msgstr ""
6047 "2.6.13 以前のカーネルでは、 I<sa_flags> に B<SA_NODEFER> を指定した場合、 ハ"
6048 "ンドラが実行中に配送されたシグナル自身がマスクされなくなるだけでなく、 "
6049 "I<sa_mask> に指定されたシグナルもマスクされなくなる。 このバグは、カーネル "
6050 "2.6.14 で修正された。"
6051
6052 #. type: Plain text
6053 #: build/C/man2/sigaction.2:793
6054 msgid "See B<mprotect>(2)."
6055 msgstr "B<mprotect>(2)  参照。"
6056
6057 #. type: Plain text
6058 #: build/C/man2/sigaction.2:813
6059 msgid ""
6060 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
6061 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
6062 "B<sigprocmask>(2), B<sigsuspend>(2), B<wait>(2), B<raise>(3), "
6063 "B<siginterrupt>(3), B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), "
6064 "B<core>(5), B<signal>(7)"
6065 msgstr ""
6066 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
6067 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
6068 "B<sigprocmask>(2), B<sigsuspend>(2), B<wait>(2), B<raise>(3), "
6069 "B<siginterrupt>(3), B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), "
6070 "B<core>(5), B<signal>(7)"
6071
6072 #. type: TH
6073 #: build/C/man2/sigaltstack.2:27
6074 #, no-wrap
6075 msgid "SIGALTSTACK"
6076 msgstr "SIGALTSTACK"
6077
6078 #. type: TH
6079 #: build/C/man2/sigaltstack.2:27
6080 #, no-wrap
6081 msgid "2010-09-26"
6082 msgstr "2010-09-26"
6083
6084 #. type: Plain text
6085 #: build/C/man2/sigaltstack.2:30
6086 msgid "sigaltstack - set and/or get signal stack context"
6087 msgstr "sigaltstack - シグナルスタックのコンテキストを設定・取得する"
6088
6089 #. type: Plain text
6090 #: build/C/man2/sigaltstack.2:34
6091 msgid "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
6092 msgstr "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
6093
6094 #. type: Plain text
6095 #: build/C/man2/sigaltstack.2:41
6096 msgid "B<sigaltstack>():"
6097 msgstr "B<sigaltstack>():"
6098
6099 #. type: Plain text
6100 #: build/C/man2/sigaltstack.2:48 build/C/man3/siginterrupt.3:53
6101 #: build/C/man2/wait.2:80
6102 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
6103 msgstr "|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
6104
6105 #. type: Plain text
6106 #: build/C/man2/sigaltstack.2:60
6107 msgid ""
6108 "B<sigaltstack>()  allows a process to define a new alternate signal stack "
6109 "and/or retrieve the state of an existing alternate signal stack.  An "
6110 "alternate signal stack is used during the execution of a signal handler if "
6111 "the establishment of that handler (see B<sigaction>(2))  requested it."
6112 msgstr ""
6113 "B<sigaltstack>()  を使うと、 プロセスは新しい代替シグナルスタックを定義した"
6114 "り、 既存の代替シグナルスタックの状態を取得できる。 シグナルハンドラが代替シ"
6115 "グナルスタックを要求するように設定されていると (B<sigaction>(2)  参照)、ハン"
6116 "ドラの実行中はそのシグナルスタックが使われる。"
6117
6118 #. type: Plain text
6119 #: build/C/man2/sigaltstack.2:63
6120 msgid ""
6121 "The normal sequence of events for using an alternate signal stack is the "
6122 "following:"
6123 msgstr "代替シグナルスタックを使う際の一般的な手順は、以下の通りである:"
6124
6125 #. type: IP
6126 #: build/C/man2/sigaltstack.2:63 build/C/man7/signal.7:387
6127 #, no-wrap
6128 msgid "1."
6129 msgstr "1."
6130
6131 #. type: Plain text
6132 #: build/C/man2/sigaltstack.2:67
6133 msgid "Allocate an area of memory to be used for the alternate signal stack."
6134 msgstr "代替シグナルスタックで使うメモリ領域を確保する。"
6135
6136 #. type: IP
6137 #: build/C/man2/sigaltstack.2:67 build/C/man7/signal.7:391
6138 #, no-wrap
6139 msgid "2."
6140 msgstr "2."
6141
6142 #. type: Plain text
6143 #: build/C/man2/sigaltstack.2:73
6144 msgid ""
6145 "Use B<sigaltstack>()  to inform the system of the existence and location of "
6146 "the alternate signal stack."
6147 msgstr ""
6148 "B<sigaltstack>()  を使って、 代替シグナルスタックの存在と場所をシステムに知ら"
6149 "せる。"
6150
6151 #. type: IP
6152 #: build/C/man2/sigaltstack.2:73 build/C/man7/signal.7:411
6153 #, no-wrap
6154 msgid "3."
6155 msgstr "3."
6156
6157 #. type: Plain text
6158 #: build/C/man2/sigaltstack.2:80
6159 msgid ""
6160 "When establishing a signal handler using B<sigaction>(2), inform the system "
6161 "that the signal handler should be executed on the alternate signal stack by "
6162 "specifying the B<SA_ONSTACK> flag."
6163 msgstr ""
6164 "B<sigaction>(2)  を使ってシグナルハンドラを確立する際、 B<SA_ONSTACK> フラグ"
6165 "を指定することにより、 そのシグナルハンドラを代替シグナルスタック上で実行する"
6166 "ことを システムに知らせる。"
6167
6168 #. type: Plain text
6169 #: build/C/man2/sigaltstack.2:88
6170 msgid ""
6171 "The I<ss> argument is used to specify a new alternate signal stack, while "
6172 "the I<oss> argument is used to retrieve information about the currently "
6173 "established signal stack.  If we are interested in performing just one of "
6174 "these tasks, then the other argument can be specified as NULL.  Each of "
6175 "these arguments is a structure of the following type:"
6176 msgstr ""
6177 "I<ss> 引き数は、新しいシグナルスタックを指定するために使う。 また I<oss> 引き"
6178 "数は、現在確立されている シグナルスタックの情報を取得するために使う。 この操"
6179 "作のうち 1 つだけを実行させるには、 使用しない引き数を NULL に指定すればよ"
6180 "い。 引き数となる構造体は、以下のような型である:"
6181
6182 #. type: Plain text
6183 #: build/C/man2/sigaltstack.2:96
6184 #, no-wrap
6185 msgid ""
6186 "typedef struct {\n"
6187 "    void  *ss_sp;     /* Base address of stack */\n"
6188 "    int    ss_flags;  /* Flags */\n"
6189 "    size_t ss_size;   /* Number of bytes in stack */\n"
6190 "} stack_t;\n"
6191 msgstr ""
6192 "typedef struct {\n"
6193 "    void  *ss_sp;     /* スタックのベースアドレス */\n"
6194 "    int    ss_flags;  /* フラグ */\n"
6195 "    size_t ss_size;   /* スタックのバイト数 */\n"
6196 "} stack_t;\n"
6197
6198 #. type: Plain text
6199 #: build/C/man2/sigaltstack.2:107
6200 msgid ""
6201 "To establish a new alternate signal stack, I<ss.ss_flags> is set to zero, "
6202 "and I<ss.ss_sp> and I<ss.ss_size> specify the starting address and size of "
6203 "the stack.  The constant B<SIGSTKSZ> is defined to be large enough to cover "
6204 "the usual size requirements for an alternate signal stack, and the constant "
6205 "B<MINSIGSTKSZ> defines the minimum size required to execute a signal handler."
6206 msgstr ""
6207 "新規の代替シグナルスタックを確立するには、 I<ss.ss_flags> を 0 に設定し、 "
6208 "I<ss.ss_sp> と I<ss.ss_size> に スタックの開始アドレスとスタックサイズを指定"
6209 "する。 定数 B<SIGSTKSZ> は、代替シグナルスタックが通常必要する サイズよりも充"
6210 "分大きく定義されている。 また定数 B<MINSIGSTKSZ> は、 シグナルハンドラの実行"
6211 "に必要な最小サイズに定義されている。"
6212
6213 #. type: Plain text
6214 #: build/C/man2/sigaltstack.2:111
6215 msgid ""
6216 "When a signal handler is invoked on the alternate stack, the kernel "
6217 "automatically aligns the address given in I<ss.ss_sp> to a suitable address "
6218 "boundary for the underlying hardware architecture."
6219 msgstr ""
6220 "代替スタックでシグナルハンドラが起動された場合には、 カーネルにより自動的に、"
6221 "I<ss.ss_sp> で指定されたアドレスは 動作しているハードウェアアーキテクチャに適"
6222 "したアドレス境界に 調整される。"
6223
6224 #. type: Plain text
6225 #: build/C/man2/sigaltstack.2:116
6226 msgid ""
6227 "To disable an existing stack, specify I<ss.ss_flags> as B<SS_DISABLE>.  In "
6228 "this case, the remaining fields in I<ss> are ignored."
6229 msgstr ""
6230 "既存のスタックを無効にするには、 I<ss.ss_flags> を B<SS_DISABLE> に指定す"
6231 "る。 この場合、I<ss> の他のフィールドは無視される。"
6232
6233 #. type: Plain text
6234 #: build/C/man2/sigaltstack.2:124
6235 msgid ""
6236 "If I<oss> is not NULL, then it is used to return information about the "
6237 "alternate signal stack which was in effect prior to the call to "
6238 "B<sigaltstack>().  The I<oss.ss_sp> and I<oss.ss_size> fields return the "
6239 "starting address and size of that stack.  The I<oss.ss_flags> may return "
6240 "either of the following values:"
6241 msgstr ""
6242 "I<oss> が NULL 以外の場合、 I<oss> に代替シグナルスタックの情報が返される。 "
6243 "これは (実質的に)  B<sigaltstack>()  の呼び出しより先に行われる。 I<oss."
6244 "ss_sp> と I<oss.ss_size> フィールドに スタックの開始アドレスとスタックサイズ"
6245 "が返される。 I<oss.ss_flags> には以下のどちらかの値が返される:"
6246
6247 #. type: TP
6248 #: build/C/man2/sigaltstack.2:124
6249 #, no-wrap
6250 msgid "B<SS_ONSTACK>"
6251 msgstr "B<SS_ONSTACK>"
6252
6253 #. type: Plain text
6254 #: build/C/man2/sigaltstack.2:130
6255 msgid ""
6256 "The process is currently executing on the alternate signal stack.  (Note "
6257 "that it is not possible to change the alternate signal stack if the process "
6258 "is currently executing on it.)"
6259 msgstr ""
6260 "プロセスが代替シグナルスタック上で実行されている (プロセスが既にそのシグナル"
6261 "スタック上で実行されている場合は、 それと同じシグナルスタックには変更できない"
6262 "点に注意すること)。"
6263
6264 #. type: TP
6265 #: build/C/man2/sigaltstack.2:130
6266 #, no-wrap
6267 msgid "B<SS_DISABLE>"
6268 msgstr "B<SS_DISABLE>"
6269
6270 #. type: Plain text
6271 #: build/C/man2/sigaltstack.2:133
6272 msgid "The alternate signal stack is currently disabled."
6273 msgstr "代替シグナルスタックが現在無効になっている。"
6274
6275 #. type: Plain text
6276 #: build/C/man2/sigaltstack.2:137
6277 msgid ""
6278 "B<sigaltstack>()  returns 0 on success, or -1 on failure with I<errno> set "
6279 "to indicate the error."
6280 msgstr ""
6281 "B<sigaltstack>()  は成功した場合 0 を返す。 失敗した場合は -1 を返して、 エ"
6282 "ラーを示す値に I<errno> を設定する。"
6283
6284 #. type: Plain text
6285 #: build/C/man2/sigaltstack.2:142
6286 msgid ""
6287 "Either I<ss> or I<oss> is not NULL and points to an area outside of the "
6288 "process's address space."
6289 msgstr ""
6290 "I<ss> または I<oss> のどちらが、NULL 以外で、 かつプロセスのアドレス空間の外"
6291 "を指している。"
6292
6293 #. type: Plain text
6294 #: build/C/man2/sigaltstack.2:147
6295 msgid ""
6296 "I<ss> is not NULL and the I<ss_flags> field contains a nonzero value other "
6297 "than B<SS_DISABLE>."
6298 msgstr ""
6299 "I<ss> が NULL 以外で、I<ss_flags> フィールドが B<SS_DISABLE> 以外の 0 でない"
6300 "値になっている。"
6301
6302 #. type: Plain text
6303 #: build/C/man2/sigaltstack.2:153
6304 #, fuzzy
6305 #| msgid ""
6306 #| "The specified size of the new alternate signal stack (I<ss.ss_size>) was "
6307 #| "less than B<MINSTKSZ>."
6308 msgid ""
6309 "The specified size of the new alternate signal stack I<ss.ss_size> as less "
6310 "than B<MINSTKSZ>."
6311 msgstr ""
6312 "新しい代替シグナルスタック (I<ss.ss_size>) に指定したサイズが B<MINSTKSZ> よ"
6313 "り小さい。"
6314
6315 #. type: Plain text
6316 #: build/C/man2/sigaltstack.2:158
6317 msgid ""
6318 "An attempt was made to change the alternate signal stack while it was active "
6319 "(i.e., the process was already executing on the current alternate signal "
6320 "stack)."
6321 msgstr ""
6322 "代替シグナルスタックが有効であるときに変更を行おうとした (つまり、プロセスが"
6323 "既に現在の代替シグナルスタック上で実行されていた)。"
6324
6325 #. type: Plain text
6326 #: build/C/man2/sigaltstack.2:160
6327 msgid "SUSv2, SVr4, POSIX.1-2001."
6328 msgstr "SUSv2, SVr4, POSIX.1-2001."
6329
6330 #. type: Plain text
6331 #: build/C/man2/sigaltstack.2:168
6332 msgid ""
6333 "The most common usage of an alternate signal stack is to handle the "
6334 "B<SIGSEGV> signal that is generated if the space available for the normal "
6335 "process stack is exhausted: in this case, a signal handler for B<SIGSEGV> "
6336 "cannot be invoked on the process stack; if we wish to handle it, we must use "
6337 "an alternate signal stack."
6338 msgstr ""
6339 "代替シグナルスタックを使用する最もよくある場面は、 B<SIGSEGV> シグナルを扱う"
6340 "ときである。 B<SIGSEGV> はプロセスの通常のスタックが利用できる空間が使い果た"
6341 "された際に 生成されるシグナルである。この場合には、 B<SIGSEGV> 用のシグナルハ"
6342 "ンドラをプロセスのスタック上では起動することができない。 そのため、このシグナ"
6343 "ルを扱おうとする場合には、 代替シグナルスタックを使用しなければならない。"
6344
6345 #. type: Plain text
6346 #: build/C/man2/sigaltstack.2:178
6347 msgid ""
6348 "Establishing an alternate signal stack is useful if a process expects that "
6349 "it may exhaust its standard stack.  This may occur, for example, because the "
6350 "stack grows so large that it encounters the upwardly growing heap, or it "
6351 "reaches a limit established by a call to B<setrlimit(RLIMIT_STACK, &rlim)>.  "
6352 "If the standard stack is exhausted, the kernel sends the process a "
6353 "B<SIGSEGV> signal.  In these circumstances the only way to catch this signal "
6354 "is on an alternate signal stack."
6355 msgstr ""
6356 "プロセスが標準のシグナルスタックを使い果たすことが予想される場合は、 代替シグ"
6357 "ナルスタックを確立すると便利である。 例えば、スタックが最上位アドレスから 下"
6358 "位アドレス方向に非常にたくさん積まれてしまうことで、 最下位アドレスから上位ア"
6359 "ドレス方向に積まれるヒープとぶつかってしまう場合や、 "
6360 "B<setrlimit(RLIMIT_STACK, &rlim)> の呼び出しで確立された 制限に達してしまった"
6361 "場合に、この様な事が起こる。 標準のスタックを使い果たしてしまうと、 カーネル"
6362 "はプロセスに B<SIGSEGV> シグナルを送る。 このような状況では、代替シグナルス"
6363 "タック上でしかシグナルをキャッチできない。"
6364
6365 #. type: Plain text
6366 #: build/C/man2/sigaltstack.2:184
6367 msgid ""
6368 "On most hardware architectures supported by Linux, stacks grow downward.  "
6369 "B<sigaltstack>()  automatically takes account of the direction of stack "
6370 "growth."
6371 msgstr ""
6372 "Linux がサポートする多くのハードウェアアーキテクチャでは、 スタックは下位アド"
6373 "レス方向に積まれる。 B<sigaltstack>()  はスタックが積まれる方向を自動的に決定"
6374 "する。"
6375
6376 #. type: Plain text
6377 #: build/C/man2/sigaltstack.2:193
6378 msgid ""
6379 "Functions called from a signal handler executing on an alternate signal "
6380 "stack will also use the alternate signal stack.  (This also applies to any "
6381 "handlers invoked for other signals while the process is executing on the "
6382 "alternate signal stack.)  Unlike the standard stack, the system does not "
6383 "automatically extend the alternate signal stack.  Exceeding the allocated "
6384 "size of the alternate signal stack will lead to unpredictable results."
6385 msgstr ""
6386 "代替シグナルスタック上で実行されている シグナルハンドラから呼ばれる関数も、代"
6387 "替シグナルハンドラを使う (プロセスが代替シグナルスタック上で実行されている場"
6388 "合、 他のシグナルで呼び出されるハンドラもこの代替シグナルハンドラを使う)。 標"
6389 "準のスタックとは異なり、 システムは代替シグナルスタックを自動的に拡張しな"
6390 "い。 代替シグナルスタック用に確保したサイズを越えた場合、 結果は予想できな"
6391 "い。"
6392
6393 #. type: Plain text
6394 #: build/C/man2/sigaltstack.2:201
6395 msgid ""
6396 "A successful call to B<execve>(2)  removes any existing alternate signal "
6397 "stack.  A child process created via B<fork>(2)  inherits a copy of its "
6398 "parent's alternate signal stack settings."
6399 msgstr ""
6400 "B<execve>(2)  の呼び出しが成功すると、 既存の全ての代替シグナルスタックが削除"
6401 "される。 B<fork>(2)  経由で作成された子プロセスは、親プロセスの代替シグナルス"
6402 "タックの 設定のコピーを継承する。"
6403
6404 #. type: Plain text
6405 #: build/C/man2/sigaltstack.2:210
6406 msgid ""
6407 "B<sigaltstack>()  supersedes the older B<sigstack>()  call.  For backward "
6408 "compatibility, glibc also provides B<sigstack>().  All new applications "
6409 "should be written using B<sigaltstack>()."
6410 msgstr ""
6411 "B<sigaltstack>()  は以前の B<sigstack>()  を置き換えるものである。 過去プログ"
6412 "ラムとの互換性のため、glibc では B<sigstack>()  も提供している。 新しいのアプ"
6413 "リケーションは全て B<sigaltstack>()  を使って書くべきである。"
6414
6415 #. type: SS
6416 #: build/C/man2/sigaltstack.2:210 build/C/man3/sigpause.3:66
6417 #, no-wrap
6418 msgid "History"
6419 msgstr "歴史"
6420
6421 #. type: Plain text
6422 #: build/C/man2/sigaltstack.2:217
6423 msgid ""
6424 "4.2BSD had a B<sigstack>()  system call.  It used a slightly different "
6425 "struct, and had the major disadvantage that the caller had to know the "
6426 "direction of stack growth."
6427 msgstr ""
6428 "4.2BSD には B<sigstack>()  システムコールがあった。 この関数は少し異なった構"
6429 "造体を使っており、 呼び出した側がスタックの積まれる方向を知っていなければなら"
6430 "ないという 大きな欠点があった。"
6431
6432 #. type: Plain text
6433 #: build/C/man2/sigaltstack.2:220
6434 msgid "The following code segment demonstrates the use of B<sigaltstack>():"
6435 msgstr "以下のコードで B<sigaltstack>()  の使用法の一部を示す:"
6436
6437 #. type: Plain text
6438 #: build/C/man2/sigaltstack.2:224
6439 #, no-wrap
6440 msgid "stack_t ss;\n"
6441 msgstr "stack_t ss;\n"
6442
6443 #. type: Plain text
6444 #: build/C/man2/sigaltstack.2:232
6445 #, no-wrap
6446 msgid ""
6447 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6448 "if (ss.ss_sp == NULL)\n"
6449 "    /* Handle error */;\n"
6450 "ss.ss_size = SIGSTKSZ;\n"
6451 "ss.ss_flags = 0;\n"
6452 "if (sigaltstack(&ss, NULL) == -1)\n"
6453 "    /* Handle error */;\n"
6454 msgstr ""
6455 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6456 "if (ss.ss_sp == NULL)\n"
6457 "    /* ハンドルエラー */;\n"
6458 "ss.ss_size = SIGSTKSZ;\n"
6459 "ss.ss_flags = 0;\n"
6460 "if (sigaltstack(&ss, NULL) == -1)\n"
6461 "    /* ハンドルエラー */;\n"
6462
6463 #. type: Plain text
6464 #: build/C/man2/sigaltstack.2:241
6465 msgid ""
6466 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6467 "B<sigsetjmp>(3), B<signal>(7)"
6468 msgstr ""
6469 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6470 "B<sigsetjmp>(3), B<signal>(7)"
6471
6472 #. type: TH
6473 #: build/C/man7/sigevent.7:26
6474 #, no-wrap
6475 msgid "SIGEVENT"
6476 msgstr "SIGEVENT"
6477
6478 #. type: TH
6479 #: build/C/man7/sigevent.7:26
6480 #, no-wrap
6481 msgid "2011-09-09"
6482 msgstr "2011-09-09"
6483
6484 #. type: Plain text
6485 #: build/C/man7/sigevent.7:29
6486 msgid "sigevent - structure for notification from asynchronous routines"
6487 msgstr "sigevent - 非同期ルーチンからの通知用の構造体"
6488
6489 #. type: Plain text
6490 #: build/C/man7/sigevent.7:36
6491 #, no-wrap
6492 msgid ""
6493 "union sigval {          /* Data passed with notification */\n"
6494 "    int     sival_int;         /* Integer value */\n"
6495 "    void   *sival_ptr;         /* Pointer value */\n"
6496 "};\n"
6497 msgstr ""
6498 "union sigval {          /* Data passed with notification */\n"
6499 "    int     sival_int;         /* Integer value */\n"
6500 "    void   *sival_ptr;         /* Pointer value */\n"
6501 "};\n"
6502
6503 #. type: Plain text
6504 #: build/C/man7/sigevent.7:51
6505 #, no-wrap
6506 msgid ""
6507 "struct sigevent {\n"
6508 "    int          sigev_notify; /* Notification method */\n"
6509 "    int          sigev_signo;  /* Notification signal */\n"
6510 "    union sigval sigev_value;  /* Data passed with\n"
6511 "                                  notification */\n"
6512 "    void       (*sigev_notify_function) (union sigval);\n"
6513 "                     /* Function used for thread\n"
6514 "                        notification (SIGEV_THREAD) */\n"
6515 "    void        *sigev_notify_attributes;\n"
6516 "                     /* Attributes for notification thread\n"
6517 "                        (SIGEV_THREAD) */\n"
6518 "    pid_t        sigev_notify_thread_id;\n"
6519 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6520 "};\n"
6521 msgstr ""
6522 "struct sigevent {\n"
6523 "    int          sigev_notify; /* Notification method */\n"
6524 "    int          sigev_signo;  /* Notification signal */\n"
6525 "    union sigval sigev_value;  /* Data passed with\n"
6526 "                                  notification */\n"
6527 "    void       (*sigev_notify_function) (union sigval);\n"
6528 "                     /* Function used for thread\n"
6529 "                        notification (SIGEV_THREAD) */\n"
6530 "    void        *sigev_notify_attributes;\n"
6531 "                     /* Attributes for notification thread\n"
6532 "                        (SIGEV_THREAD) */\n"
6533 "    pid_t        sigev_notify_thread_id;\n"
6534 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6535 "};\n"
6536
6537 #. type: Plain text
6538 #: build/C/man7/sigevent.7:60
6539 msgid ""
6540 "The I<sigevent> structure is used by various APIs to describe the way a "
6541 "process is to be notified about an event (e.g., completion of an "
6542 "asynchronous request, expiration of a timer, or the arrival of a message)."
6543 msgstr ""
6544 "I<sigevent> 構造体は、イベントに関する情報をプロセスに通知するために様々な "
6545 "API で使用される (イベントの例としては、 非同期処理要求の完了、 タイマーの満"
6546 "了、 メッセージの到着など)。"
6547
6548 #. type: Plain text
6549 #: build/C/man7/sigevent.7:68
6550 msgid ""
6551 "The definition shown in the SYNOPSIS is approximate: some of the fields in "
6552 "the I<sigevent> structure may be defined as part of a union.  Programs "
6553 "should employ only those fields relevant to the value specified in "
6554 "I<sigev_notify>."
6555 msgstr ""
6556 "「書式」に記載されている定義はおおよそのものである。 I<sigevent> 構造体のいく"
6557 "つかのフィールドは、 共用体の一部として定義されているものもある。 プログラム"
6558 "は、 I<sigev_notify> で指定された値に応じたフィールドだけを利用すべきである。"
6559
6560 #. type: Plain text
6561 #: build/C/man7/sigevent.7:73
6562 msgid ""
6563 "The I<sigev_notify> field specifies how notification is to be performed.  "
6564 "This field can have one of the following values:"
6565 msgstr ""
6566 "I<sigev_notify> フィールドは、通知をどのように処理すべきかを指定する。 この"
6567 "フィールドは、以下のいずれかの値である。"
6568
6569 #. type: TP
6570 #: build/C/man7/sigevent.7:73 build/C/man2/timer_create.2:107
6571 #, no-wrap
6572 msgid "B<SIGEV_NONE>"
6573 msgstr "B<SIGEV_NONE>"
6574
6575 #. type: Plain text
6576 #: build/C/man7/sigevent.7:76
6577 msgid "A \"null\" notification: don't do anything when the event occurs."
6578 msgstr "「空 (null)」の通知。 イベントが発生時には何もしないこと。"
6579
6580 #. type: TP
6581 #: build/C/man7/sigevent.7:76 build/C/man2/timer_create.2:112
6582 #, no-wrap
6583 msgid "B<SIGEV_SIGNAL>"
6584 msgstr "B<SIGEV_SIGNAL>"
6585
6586 #. type: Plain text
6587 #: build/C/man7/sigevent.7:80
6588 msgid "Notify the process by sending the signal specified in I<sigev_signo>."
6589 msgstr ""
6590 "I<sigev_signo> で指定されたシグナルを送信することで、プロセスへの通知を行う。"
6591
6592 #. type: Plain text
6593 #: build/C/man7/sigevent.7:87
6594 msgid ""
6595 "If the signal is caught with a signal handler that was registered using the "
6596 "B<sigaction>(2)  B<SA_SIGINFO> flag, then the following fields are set in "
6597 "the I<siginfo_t> structure that is passed as the second argument of the "
6598 "handler:"
6599 msgstr ""
6600 "B<sigaction>(2) の B<SA_SIGINFO> フラグを使った登録されたシグナルハンドラによ"
6601 "りシグナルが捕捉されると、 シグナルハンドラの 2 番目の引き数として渡された "
6602 "I<siginfo_t> 構造体の以下のフィールドが設定される。"
6603
6604 #. type: Plain text
6605 #: build/C/man7/sigevent.7:92
6606 msgid ""
6607 "This field is set to a value that depends on the API delivering the "
6608 "notification."
6609 msgstr "このフィールドには通知を配送した API に応じた決まる値が設定される。"
6610
6611 #. type: TP
6612 #: build/C/man7/sigevent.7:92 build/C/man2/wait.2:302
6613 #, no-wrap
6614 msgid "I<si_signo>"
6615 msgstr "I<si_signo>"
6616
6617 #. type: Plain text
6618 #: build/C/man7/sigevent.7:96
6619 msgid ""
6620 "This field is set to the signal number (i.e., the same value as in "
6621 "I<sigev_signo>)."
6622 msgstr ""
6623 "このフィールドにはシグナル番号 (すなわち I<sigev_signo> と同じ値) が設定され"
6624 "る。"
6625
6626 #. type: Plain text
6627 #: build/C/man7/sigevent.7:100
6628 msgid "This field is set to the value specified in I<sigev_value>."
6629 msgstr "このフィールドには I<sigev_value> で指定された値が設定される。"
6630
6631 #. type: Plain text
6632 #: build/C/man7/sigevent.7:105
6633 msgid ""
6634 "Depending on the API, other fields may also be set in the I<siginfo_t> "
6635 "structure."
6636 msgstr ""
6637 "API によっては I<siginfo_t> 構造体の他のフィールドが設定される場合もある。"
6638
6639 #. type: Plain text
6640 #: build/C/man7/sigevent.7:108
6641 msgid ""
6642 "The same information is also available if the signal is accepted using "
6643 "B<sigwaitinfo>(2)."
6644 msgstr ""
6645 "シグナルを受け取ったときには B<sigwaitinfo>(2) でも同じ情報が得られる。"
6646
6647 #. type: TP
6648 #: build/C/man7/sigevent.7:108 build/C/man2/timer_create.2:130
6649 #, no-wrap
6650 msgid "B<SIGEV_THREAD>"
6651 msgstr "B<SIGEV_THREAD>"
6652
6653 #. type: Plain text
6654 #: build/C/man7/sigevent.7:125
6655 msgid ""
6656 "Notify the process by invoking I<sigev_notify_function> \"as if\" it were "
6657 "the start function of a new thread.  (Among the implementation possibilities "
6658 "here are that each timer notification could result in the creation of a new "
6659 "thread, or that a single thread is created to receive all notifications.)  "
6660 "The function is invoked with I<sigev_value> as its sole argument.  If "
6661 "I<sigev_notify_attributes> is not NULL, it should point to a "
6662 "I<pthread_attr_t> structure that defines attributes for the new thread (see "
6663 "B<pthread_attr_init>(3))."
6664 msgstr ""
6665 "「あたかも」新しいスレッドセーフの開始関数であるかのように "
6666 "I<sigev_notify_function> を起動することで、 プロセスへの通知を行う (実装の可"
6667 "能性としては、 タイマー通知の度に新しいスレッドセーフが作成される場合も、 一"
6668 "つのスレッドを作成してすべての通知を受信する場合もある)。 この関数は "
6669 "I<sigev_value> を唯一の引き数として起動される。 I<sigev_notify_attributes> "
6670 "は、 NULL 以外の場合は、 新しいスレッドセーフの属性を定義する "
6671 "I<pthread_attr_t> 構造体を指していなければならない (B<pthread_attr_init>(3) "
6672 "参照)。"
6673
6674 #. type: TP
6675 #: build/C/man7/sigevent.7:125 build/C/man2/timer_create.2:138
6676 #, no-wrap
6677 msgid "B<SIGEV_THREAD_ID> (Linux-specific)"
6678 msgstr "B<SIGEV_THREAD_ID> (Linux 固有)"
6679
6680 #.  | SIGEV_SIGNAL vs not?
6681 #. type: Plain text
6682 #: build/C/man7/sigevent.7:130
6683 msgid "Currently used only by POSIX timers; see B<timer_create>(2)."
6684 msgstr "現在のところ POSIX でのみ使用されている。 B<timer_create>(2) 参照。"
6685
6686 #. type: Plain text
6687 #: build/C/man7/sigevent.7:132 build/C/man2/sigpending.2:66
6688 #: build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:121
6689 #: build/C/man3/sigsetops.3:146 build/C/man2/sigsuspend.2:86
6690 #: build/C/man3/sigwait.3:87 build/C/man2/sigwaitinfo.2:135
6691 #: build/C/man2/timer_create.2:195 build/C/man2/timer_delete.2:69
6692 #: build/C/man2/timer_getoverrun.2:99 build/C/man2/timer_settime.2:209
6693 msgid "POSIX.1-2001."
6694 msgstr "POSIX.1-2001."
6695
6696 #. type: Plain text
6697 #: build/C/man7/sigevent.7:142
6698 msgid ""
6699 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6700 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6701 "B<pthreads>(7)"
6702 msgstr ""
6703 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6704 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6705 "B<pthreads>(7)"
6706
6707 #. type: TH
6708 #: build/C/man3/siginterrupt.3:31
6709 #, no-wrap
6710 msgid "SIGINTERRUPT"
6711 msgstr "SIGINTERRUPT"
6712
6713 #. type: TH
6714 #: build/C/man3/siginterrupt.3:31 build/C/man2/signal.2:36
6715 #: build/C/man2/sigprocmask.2:29 build/C/man2/sigsuspend.2:29
6716 #, no-wrap
6717 msgid "2013-04-19"
6718 msgstr "2013-04-19"
6719
6720 #. type: Plain text
6721 #: build/C/man3/siginterrupt.3:34
6722 msgid "siginterrupt - allow signals to interrupt system calls"
6723 msgstr "siginterrupt - シグナルでシステム・コールに割り込むことを許す"
6724
6725 #. type: Plain text
6726 #: build/C/man3/siginterrupt.3:39
6727 #, no-wrap
6728 msgid "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6729 msgstr "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6730
6731 #. type: Plain text
6732 #: build/C/man3/siginterrupt.3:47
6733 msgid "B<siginterrupt>():"
6734 msgstr "B<siginterrupt>():"
6735
6736 #. type: Plain text
6737 #: build/C/man3/siginterrupt.3:64
6738 msgid ""
6739 "The B<siginterrupt>()  function changes the restart behavior when a system "
6740 "call is interrupted by the signal I<sig>.  If the I<flag> argument is false "
6741 "(0), then system calls will be restarted if interrupted by the specified "
6742 "signal I<sig>.  This is the default behavior in Linux."
6743 msgstr ""
6744 "B<siginterrupt>()  関数は、システム・コールがシグナル I<sig> によって割り込ま"
6745 "れた後、再実行の際の振る舞いを変更する。 I<flag> 引き数が偽 (0) ならば、シス"
6746 "テム・コールが指定した シグナル I<sig> によって割り込まれた後に、そのシステ"
6747 "ム・コールは 再実行される。これは Linux においてデフォルトの動作である。"
6748
6749 #. type: Plain text
6750 #: build/C/man3/siginterrupt.3:69
6751 msgid ""
6752 "If the I<flag> argument is true (1) and no data has been transferred, then a "
6753 "system call interrupted by the signal I<sig> will return -1 and I<errno> "
6754 "will be set to B<EINTR>."
6755 msgstr ""
6756 "I<flag> 引き数が真 (1) でデータの転送が全く行なわれていないならば、 シグナル "
6757 "I<sig> でシステム・コールは中断されて、-1 が返され、 I<errno> に B<EINTR> が"
6758 "設定される。"
6759
6760 #. type: Plain text
6761 #: build/C/man3/siginterrupt.3:73
6762 msgid ""
6763 "If the I<flag> argument is true (1) and data transfer has started, then the "
6764 "system call will be interrupted and will return the actual amount of data "
6765 "transferred."
6766 msgstr ""
6767 "I<flag> 引き数が真 (1) でデータの転送が開始されていれば、 システム・コールは"
6768 "中断され、それまでに実際に転送されたデータ の量が返される。"
6769
6770 #. type: Plain text
6771 #: build/C/man3/siginterrupt.3:83
6772 msgid ""
6773 "The B<siginterrupt>()  function returns 0 on success.  It returns -1 if the "
6774 "signal number I<sig> is invalid, with I<errno> set to indicate the cause of "
6775 "the error."
6776 msgstr ""
6777 "B<siginterrupt>()  関数は成功した場合 0 を返す。 シグナル番号 I<sig> が不正な"
6778 "場合、 -1 を返し、 I<errno> にエラーの原因を示す値を設定する。"
6779
6780 #. type: Plain text
6781 #: build/C/man3/siginterrupt.3:87
6782 msgid "The specified signal number is invalid."
6783 msgstr "指定したシグナル番号が不正である。"
6784
6785 #. type: Plain text
6786 #: build/C/man3/siginterrupt.3:96
6787 msgid ""
6788 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 marks B<siginterrupt>()  as obsolete, "
6789 "recommending the use of B<sigaction>(2)  with the B<SA_RESTART> flag instead."
6790 msgstr ""
6791 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 は、 B<siginterrupt>()  を廃止予定として"
6792 "いる。 代わりに、 B<sigaction>(2)  に B<SA_RESTART> フラグを指定して使うこと"
6793 "を推奨している。"
6794
6795 #. type: Plain text
6796 #: build/C/man3/siginterrupt.3:98
6797 msgid "B<signal>(2)"
6798 msgstr "B<signal>(2)"
6799
6800 #. type: TH
6801 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
6802 #, no-wrap
6803 msgid "SIGNAL"
6804 msgstr "SIGNAL"
6805
6806 #. type: Plain text
6807 #: build/C/man2/signal.2:39
6808 msgid "signal - ANSI C signal handling"
6809 msgstr "signal - ANSI C シグナル操作"
6810
6811 #. type: Plain text
6812 #: build/C/man2/signal.2:45
6813 msgid "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
6814 msgstr ""
6815 "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<sighandler>B<);>"
6816
6817 #. type: Plain text
6818 #: build/C/man2/signal.2:54
6819 msgid ""
6820 "The behavior of B<signal>()  varies across UNIX versions, and has also "
6821 "varied historically across different versions of Linux.  B<Avoid its use>: "
6822 "use B<sigaction>(2)  instead.  See I<Portability> below."
6823 msgstr ""
6824 "B<signal>()  の動作は UNIX のバージョンにより異なる。 また、歴史的に見て "
6825 "Linux のバージョンによっても異なっている。 B<このシステムコールの使用は避け、"
6826 "> 代わりに B<sigaction>(2)  を使用すること。 下記の「移植性」を参照。"
6827
6828 #. type: Plain text
6829 #: build/C/man2/signal.2:64
6830 msgid ""
6831 "B<signal>()  sets the disposition of the signal I<signum> to I<handler>, "
6832 "which is either B<SIG_IGN>, B<SIG_DFL>, or the address of a programmer-"
6833 "defined function (a \"signal handler\")."
6834 msgstr ""
6835 "B<signal>()  はシグナル I<signum> の処理方法を I<handler> に設定する。 "
6836 "I<handler> には、 B<SIG_IGN>、 B<SIG_DFL>、 プログラマが定義した関数 (「シグ"
6837 "ナル・ハンドラ」) のアドレスの いずれかを指定する。"
6838
6839 #. type: Plain text
6840 #: build/C/man2/signal.2:68
6841 msgid ""
6842 "If the signal I<signum> is delivered to the process, then one of the "
6843 "following happens:"
6844 msgstr ""
6845 "シグナル I<signum> がプロセスに配送されると、以下のいずれかが発生する。"
6846
6847 #. type: Plain text
6848 #: build/C/man2/signal.2:73
6849 msgid "If the disposition is set to B<SIG_IGN>, then the signal is ignored."
6850 msgstr "処理方法が B<SIG_IGN> に設定されている場合、そのシグナルは無視される。"
6851
6852 #. type: Plain text
6853 #: build/C/man2/signal.2:80
6854 msgid ""
6855 "If the disposition is set to B<SIG_DFL>, then the default action associated "
6856 "with the signal (see B<signal>(7))  occurs."
6857 msgstr ""
6858 "処理方法が B<SIG_DFL> に設定されている場合、シグナルに関連づけられた デフォル"
6859 "トの動作が行われる (B<signal>(7)  参照)。"
6860
6861 #. type: Plain text
6862 #: build/C/man2/signal.2:91
6863 msgid ""
6864 "If the disposition is set to a function, then first either the disposition "
6865 "is reset to B<SIG_DFL>, or the signal is blocked (see I<Portability> below), "
6866 "and then I<handler> is called with argument I<signum>.  If invocation of the "
6867 "handler caused the signal to be blocked, then the signal is unblocked upon "
6868 "return from the handler."
6869 msgstr ""
6870 "処理方法として関数が設定されている場合、 まず最初に処理方法が B<SIG_DFL> にリ"
6871 "セットされるかそのシグナルのブロックが実行された後、 I<signum> を引き数とし"
6872 "て I<handler> が呼び出される。 ハンドラが起動される際にシグナルがブロックされ"
6873 "た場合、 ハンドラが返る際にそのシグナルのブロックが解除される。"
6874
6875 #. type: Plain text
6876 #: build/C/man2/signal.2:97
6877 msgid "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught or ignored."
6878 msgstr ""
6879 "シグナル B<SIGKILL> と B<SIGSTOP> は捕捉できず、無視することもできない。"
6880
6881 #. type: Plain text
6882 #: build/C/man2/signal.2:105
6883 msgid ""
6884 "B<signal>()  returns the previous value of the signal handler, or B<SIG_ERR> "
6885 "on error.  In the event of an error, I<errno> is set to indicate the cause."
6886 msgstr ""
6887 "B<signal>()  は、今までのシグナル・ハンドラの値を返す。 エラーの場合は "
6888 "B<SIG_ERR> を返し、 I<errno> にエラーの原因を示す値を設定する。"
6889
6890 #. type: Plain text
6891 #: build/C/man2/signal.2:110
6892 msgid "I<signum> is invalid."
6893 msgstr "I<signum> が不正である。"
6894
6895 #. type: Plain text
6896 #: build/C/man2/signal.2:116
6897 msgid "The effects of B<signal>()  in a multithreaded process are unspecified."
6898 msgstr ""
6899 "マルチスレッドプロセスにおける B<signal>()  の結果は、指定されていない。"
6900
6901 #. type: Plain text
6902 #: build/C/man2/signal.2:141
6903 msgid ""
6904 "See B<sigaction>(2)  for details on what happens when B<SIGCHLD> is set to "
6905 "B<SIG_IGN>."
6906 msgstr ""
6907 "B<SIGCHLD> の動作として B<SIG_IGN> を設定した場合の詳細な動作については、 "
6908 "B<sigaction>(2)  を参照すること。"
6909
6910 #. type: Plain text
6911 #: build/C/man2/signal.2:146
6912 msgid ""
6913 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
6914 "safely called from inside a signal handler."
6915 msgstr ""
6916 "シグナル・ハンドラ内から安全に呼び出すことができる、 async-signal-safe "
6917 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
6918 "照。"
6919
6920 #.  libc4 and libc5 define
6921 #.  .IR SignalHandler ;
6922 #. type: Plain text
6923 #: build/C/man2/signal.2:162
6924 msgid ""
6925 "The use of I<sighandler_t> is a GNU extension, exposed if B<_GNU_SOURCE> is "
6926 "defined; glibc also defines (the BSD-derived)  I<sig_t> if B<_BSD_SOURCE> is "
6927 "defined.  Without use of such a type, the declaration of B<signal>()  is the "
6928 "somewhat harder to read:"
6929 msgstr ""
6930 "I<sighandler_t> の使用は GNU 拡張であり、 B<_GNU_SOURCE> が定義された場合に公"
6931 "開される。glibc では B<_BSD_SOURCE> が定義された場合には (BSD 由来の) "
6932 "I<sig_t> も定義される。このような型を使用しないと、 B<signal>() の宣言は読み"
6933 "にくいものとなる。"
6934
6935 #. type: Plain text
6936 #: build/C/man2/signal.2:166
6937 #, no-wrap
6938 msgid "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6939 msgstr "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6940
6941 #. type: SS
6942 #: build/C/man2/signal.2:168
6943 #, no-wrap
6944 msgid "Portability"
6945 msgstr "移植性"
6946
6947 #. type: Plain text
6948 #: build/C/man2/signal.2:180
6949 msgid ""
6950 "The only portable use of B<signal>()  is to set a signal's disposition to "
6951 "B<SIG_DFL> or B<SIG_IGN>.  The semantics when using B<signal>()  to "
6952 "establish a signal handler vary across systems (and POSIX.1 explicitly "
6953 "permits this variation); B<do not use it for this purpose.>"
6954 msgstr ""
6955 "移植性のある B<signal>()  の使い方は、シグナルの処理方法を B<SIG_DFL> か "
6956 "B<SIG_IGN> に設定する方法だけである。 シグナル・ハンドラを設定するのに "
6957 "B<signal>()  を使ったときの動作はシステムにより異なる (POSIX.1 は明示的にこの"
6958 "違いを認めている)。 B<移植性が必要なときはこのシステムコールを使用しないこ"
6959 "と。>"
6960
6961 #. type: Plain text
6962 #: build/C/man2/signal.2:186
6963 msgid ""
6964 "POSIX.1 solved the portability mess by specifying B<sigaction>(2), which "
6965 "provides explicit control of the semantics when a signal handler is invoked; "
6966 "use that interface instead of B<signal>()."
6967 msgstr ""
6968 "POSIX.1 は、 B<sigaction>(2)  を規定することで移植性に関する混乱を解決した。 "
6969 "B<sigaction>(2)  はシグナル・ハンドラが起動される際の挙動を明示的に制御でき"
6970 "る。 B<signal>()  の代わりにこのインターフェイスを使うこと。"
6971
6972 #. type: Plain text
6973 #: build/C/man2/signal.2:196
6974 msgid ""
6975 "In the original UNIX systems, when a handler that was established using "
6976 "B<signal>()  was invoked by the delivery of a signal, the disposition of the "
6977 "signal would be reset to B<SIG_DFL>, and the system did not block delivery "
6978 "of further instances of the signal.  This is equivalent to calling "
6979 "B<sigaction>(2)  with the following flags:"
6980 msgstr ""
6981 "オリジナルの UNIX システムでは、 B<signal>()  を使って設定されたハンドラがシ"
6982 "グナルの配送により起動されると、 そのシグナルの処理方法は B<SIG_DFL> にリセッ"
6983 "トされ、システムは同じシグナルがさらに生成されても シグナルの配送をブロックし"
6984 "なかった。これは、以下のフラグで B<sigaction>(2) を呼び出すのと等価である。"
6985
6986 #. type: Plain text
6987 #: build/C/man2/signal.2:198
6988 #, no-wrap
6989 msgid "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6990 msgstr "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6991
6992 #. type: Plain text
6993 #: build/C/man2/signal.2:205
6994 #, fuzzy
6995 #| msgid ""
6996 #| "System V also provides these semantics for B<signal>().  This was bad "
6997 #| "because the signal might be delivered again before the handler had a "
6998 #| "chance to reestablish itself.  Furthermore, rapid deliveries of the same "
6999 #| "signal could result in recursive invocations of the handler."
7000 msgid ""
7001 "System\\ V also provides these semantics for B<signal>().  This was bad "
7002 "because the signal might be delivered again before the handler had a chance "
7003 "to reestablish itself.  Furthermore, rapid deliveries of the same signal "
7004 "could result in recursive invocations of the handler."
7005 msgstr ""
7006 "System V でも、 B<signal>()  に対してこれらの挙動を規定している。 こうした挙"
7007 "動はまずく、ハンドラがハンドラ自身を再設定する機会が 来るより前に、同じシグナ"
7008 "ルがまた配送される可能性がある。 さらに、同じシグナルが立て続けに配送される"
7009 "と、同じシグナルが ハンドラを繰り返し起動されることになる。"
7010
7011 #. type: Plain text
7012 #: build/C/man2/signal.2:220
7013 msgid ""
7014 "BSD improved on this situation, but unfortunately also changed the semantics "
7015 "of the existing B<signal>()  interface while doing so.  On BSD, when a "
7016 "signal handler is invoked, the signal disposition is not reset, and further "
7017 "instances of the signal are blocked from being delivered while the handler "
7018 "is executing.  Furthermore, certain blocking system calls are automatically "
7019 "restarted if interrupted by a signal handler (see B<signal>(7)).  The BSD "
7020 "semantics are equivalent to calling B<sigaction>(2)  with the following "
7021 "flags:"
7022 msgstr ""
7023 "BSD はこの状況が改善したが、残念なことに、その過程で既存の B<signal>() の挙動"
7024 "も変更された。 BSD では、シグナルハンドラが起動された際、 シグナルの処理方法"
7025 "はリセットされず、 ハンドラの実行中は、同じシグナルのさらなる生成は配送がブ"
7026 "ロックされる。 また、 シグナルハンドラが中断された場合、 停止中のシステムコー"
7027 "ルのいくつかは自動的に再スタートされる。 BSD の挙動は、 以下のフラグを指定し"
7028 "た B<sigaction>(2) の呼び出しと等価である。"
7029
7030 #. type: Plain text
7031 #: build/C/man2/signal.2:222
7032 #, no-wrap
7033 msgid "    sa.sa_flags = SA_RESTART;\n"
7034 msgstr "    sa.sa_flags = SA_RESTART;\n"
7035
7036 #. type: Plain text
7037 #: build/C/man2/signal.2:224
7038 msgid "The situation on Linux is as follows:"
7039 msgstr "Linux での状況は以下の通りである。"
7040
7041 #. type: Plain text
7042 #: build/C/man2/signal.2:228
7043 #, fuzzy
7044 #| msgid "The kernel's B<signal>()  system call provides System V semantics."
7045 msgid "The kernel's B<signal>()  system call provides System\\ V semantics."
7046 msgstr "カーネルの B<signal>()  システムコールは System V 方式を提供している。"
7047
7048 #. type: Plain text
7049 #: build/C/man2/signal.2:244
7050 msgid ""
7051 "By default, in glibc 2 and later, the B<signal>()  wrapper function does not "
7052 "invoke the kernel system call.  Instead, it calls B<sigaction>(2)  using "
7053 "flags that supply BSD semantics.  This default behavior is provided as long "
7054 "as the B<_BSD_SOURCE> feature test macro is defined.  By default, "
7055 "B<_BSD_SOURCE> is defined; it is also implicitly defined if one defines "
7056 "B<_GNU_SOURCE>, and can of course be explicitly defined."
7057 msgstr ""
7058 "デフォルトでは、glibc 2 以降では、 B<signal>()  ラッパー関数はカーネルのシス"
7059 "テムコールを起動しない。 代わりに、ラッパー関数は BSD 方式を示すフラグを使っ"
7060 "て B<sigaction>(2)  を呼び出す。 機能検査マクロ B<_BSD_SOURCE> を定義していれ"
7061 "ば、このデフォルトの動作となる。 デフォルトでは、 B<_BSD_SOURCE> が定義され"
7062 "る。 B<_BSD_SOURCE> は B<_GNU_SOURCE> が定義された場合には暗黙のうちに定義さ"
7063 "れ、 もちろん明示的に定義することもできる。"
7064
7065 #.  System V semantics are also provided if one uses the separate
7066 #.  .BR sysv_signal (3)
7067 #.  function.
7068 #. type: Plain text
7069 #: build/C/man2/signal.2:267
7070 #, fuzzy
7071 #| msgid ""
7072 #| "On glibc 2 and later, if the B<_BSD_SOURCE> feature test macro is not "
7073 #| "defined, then B<signal>()  provides System V semantics.  (The default "
7074 #| "implicit definition of B<_BSD_SOURCE> is not provided if one invokes "
7075 #| "B<gcc>(1)  in one of its standard modes (I<-std=xxx> or I<-ansi>)  or "
7076 #| "defines various other feature test macros such as B<_POSIX_SOURCE>, "
7077 #| "B<_XOPEN_SOURCE>, or B<_SVID_SOURCE>; see B<feature_test_macros>(7).)"
7078 msgid ""
7079 "On glibc 2 and later, if the B<_BSD_SOURCE> feature test macro is not "
7080 "defined, then B<signal>()  provides System\\ V semantics.  (The default "
7081 "implicit definition of B<_BSD_SOURCE> is not provided if one invokes "
7082 "B<gcc>(1)  in one of its standard modes (I<-std=xxx> or I<-ansi>)  or "
7083 "defines various other feature test macros such as B<_POSIX_SOURCE>, "
7084 "B<_XOPEN_SOURCE>, or B<_SVID_SOURCE>; see B<feature_test_macros>(7).)"
7085 msgstr ""
7086 "glibc 2 以降では、機能検査マクロ B<_BSD_SOURCE> が定義されていなければ、 "
7087 "B<signal>()  は System V 方式となる。 (B<gcc>(1)  が標準指定モード (I<-"
7088 "std=xxx> or I<-ansi>)  で起動された場合、もしくは B<_POSIX_SOURCE>, "
7089 "B<_XOPEN_SOURCE>, B<_SVID_SOURCE> といった他の様々な機能検査マクロが定義され"
7090 "た場合、 デフォルトの B<_BSD_SOURCE> の暗黙の定義は行われない。 "
7091 "B<feature_test_macros>(7)  を参照のこと。)"
7092
7093 #. type: Plain text
7094 #: build/C/man2/signal.2:278
7095 #, fuzzy
7096 #| msgid ""
7097 #| "The B<signal>()  function in Linux libc4 and libc5 provide System V "
7098 #| "semantics.  If one on a libc5 system includes I<E<lt>bsd/signal.hE<gt>> "
7099 #| "instead of I<E<lt>signal.hE<gt>>, then B<signal>()  provides BSD "
7100 #| "semantics."
7101 msgid ""
7102 "The B<signal>()  function in Linux libc4 and libc5 provide System\\ V "
7103 "semantics.  If one on a libc5 system includes I<E<lt>bsd/signal.hE<gt>> "
7104 "instead of I<E<lt>signal.hE<gt>>, then B<signal>()  provides BSD semantics."
7105 msgstr ""
7106 "Linux の libc4 と libc5 の B<signal>()  関数は System V 方式である。 libc5 シ"
7107 "ステムにおいて I<E<lt>signal.hE<gt>> のかわりに I<E<lt>bsd/signal.hE<gt>> を"
7108 "インクルードすると、 B<signal>()  は B<__bsd_signal>()  に再定義され、 "
7109 "B<signal>()  は BSD 方式となる。"
7110
7111 #. type: Plain text
7112 #: build/C/man2/signal.2:297
7113 msgid ""
7114 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), "
7115 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
7116 "B<sigsuspend>(2), B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), "
7117 "B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), "
7118 "B<signal>(7)"
7119 msgstr ""
7120 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), "
7121 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
7122 "B<sigsuspend>(2), B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), "
7123 "B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), "
7124 "B<signal>(7)"
7125
7126 #. type: TH
7127 #: build/C/man7/signal.7:46 build/C/man2/sigreturn.2:29
7128 #, no-wrap
7129 msgid "2013-07-30"
7130 msgstr "2013-07-30"
7131
7132 #. type: Plain text
7133 #: build/C/man7/signal.7:49
7134 msgid "signal - overview of signals"
7135 msgstr "signal - シグナルの概要"
7136
7137 #. type: Plain text
7138 #: build/C/man7/signal.7:52
7139 msgid ""
7140 "Linux supports both POSIX reliable signals (hereinafter \"standard signals"
7141 "\") and POSIX real-time signals."
7142 msgstr ""
7143 "Linux は POSIX 信頼シグナル (reliable signal; 以後 \"標準シグナル\"と表記)  "
7144 "と POSIX リアルタイムシグナルの両方に対応している。"
7145
7146 #. type: SS
7147 #: build/C/man7/signal.7:52
7148 #, no-wrap
7149 msgid "Signal dispositions"
7150 msgstr "シグナル処理方法"
7151
7152 #. type: Plain text
7153 #: build/C/man7/signal.7:57
7154 msgid ""
7155 "Each signal has a current I<disposition>, which determines how the process "
7156 "behaves when it is delivered the signal."
7157 msgstr ""
7158 "シグナルはそれぞれ現在の「処理方法 (disposition)」を保持しており、 この処理方"
7159 "法によりシグナルが配送された際にプロセスが どのような振舞いをするかが決まる。"
7160
7161 #. type: Plain text
7162 #: build/C/man7/signal.7:60
7163 msgid ""
7164 "The entries in the \"Action\" column of the tables below specify the default "
7165 "disposition for each signal, as follows:"
7166 msgstr ""
7167 "後述の表の \"動作\" の欄のエントリは各シグナルのデフォルトの 処理方法を示して"
7168 "おり、以下のような意味を持つ。"
7169
7170 #. type: IP
7171 #: build/C/man7/signal.7:60
7172 #, no-wrap
7173 msgid "Term"
7174 msgstr "Term"
7175
7176 #. type: Plain text
7177 #: build/C/man7/signal.7:62
7178 msgid "Default action is to terminate the process."
7179 msgstr "デフォルトの動作はプロセス終了。"
7180
7181 #. type: IP
7182 #: build/C/man7/signal.7:62
7183 #, no-wrap
7184 msgid "Ign"
7185 msgstr "Ign"
7186
7187 #. type: Plain text
7188 #: build/C/man7/signal.7:64
7189 msgid "Default action is to ignore the signal."
7190 msgstr "デフォルトの動作はこのシグナルの無視。"
7191
7192 #. type: IP
7193 #: build/C/man7/signal.7:64
7194 #, no-wrap
7195 msgid "Core"
7196 msgstr "Core"
7197
7198 #. type: Plain text
7199 #: build/C/man7/signal.7:67
7200 msgid ""
7201 "Default action is to terminate the process and dump core (see B<core>(5))."
7202 msgstr "デフォルトの動作はプロセス終了とコアダンプ出力 (B<core>(5)  参照)。"
7203
7204 #. type: IP
7205 #: build/C/man7/signal.7:67
7206 #, no-wrap
7207 msgid "Stop"
7208 msgstr "Stop"
7209
7210 #. type: Plain text
7211 #: build/C/man7/signal.7:69
7212 msgid "Default action is to stop the process."
7213 msgstr "デフォルトの動作はプロセスの一時停止。"
7214
7215 #. type: IP
7216 #: build/C/man7/signal.7:69
7217 #, no-wrap
7218 msgid "Cont"
7219 msgstr "Cont"
7220
7221 #. type: Plain text
7222 #: build/C/man7/signal.7:71
7223 msgid "Default action is to continue the process if it is currently stopped."
7224 msgstr "デフォルトの動作は、プロセスが停止中の場合にその実行の再開。"
7225
7226 #. type: Plain text
7227 #: build/C/man7/signal.7:93
7228 msgid ""
7229 "A process can change the disposition of a signal using B<sigaction>(2)  or "
7230 "B<signal>(2).  (The latter is less portable when establishing a signal "
7231 "handler; see B<signal>(2)  for details.)  Using these system calls, a "
7232 "process can elect one of the following behaviors to occur on delivery of the "
7233 "signal: perform the default action; ignore the signal; or catch the signal "
7234 "with a I<signal handler>, a programmer-defined function that is "
7235 "automatically invoked when the signal is delivered.  (By default, the signal "
7236 "handler is invoked on the normal process stack.  It is possible to arrange "
7237 "that the signal handler uses an alternate stack; see B<sigaltstack>(2)  for "
7238 "a discussion of how to do this and when it might be useful.)"
7239 msgstr ""
7240 "プロセスは、 B<sigaction>(2)  や B<signal>(2)  を使って、シグナルの処理方法を"
7241 "変更することができる (B<signal>(2)  の方がシグナルハンドラを設定する際の移植"
7242 "性が低い; 詳細は B<signal>(2)  を参照)。 シグナルの配送時に起こる動作として "
7243 "プロセスが選択できるのは、次のいずれか一つである。 デフォルトの動作を実行す"
7244 "る、シグナルを無視する、 I<シグナルハンドラ (signal handler)> でシグナルを捕"
7245 "捉する。シグナルハンドラとは、シグナル配送時に 自動的に起動されるプログラマ定"
7246 "義の関数である。 (デフォルトでは、シグナルハンドラは通常のプロセスのスタック"
7247 "上で起動される。 シグナルハンドラが代替スタック (alternate stack) を使用する"
7248 "ように設定する こともできる。代替スタックを使用するように設定する方法と、どの"
7249 "ような際に 代替スタックが役に立つかについての議論については "
7250 "B<sigaltstack>(2)  を参照のこと。"
7251
7252 #. type: Plain text
7253 #: build/C/man7/signal.7:97
7254 msgid ""
7255 "The signal disposition is a per-process attribute: in a multithreaded "
7256 "application, the disposition of a particular signal is the same for all "
7257 "threads."
7258 msgstr ""
7259 "シグナルの処理方法はプロセス単位の属性である。 マルチスレッドのアプリケーショ"
7260 "ンでは、あるシグナルの処理方法は 全てのスレッドで同じである。"
7261
7262 #. type: SS
7263 #: build/C/man7/signal.7:105
7264 #, no-wrap
7265 msgid "Sending a signal"
7266 msgstr "シグナルの送信"
7267
7268 #. type: Plain text
7269 #: build/C/man7/signal.7:108
7270 msgid ""
7271 "The following system calls and library functions allow the caller to send a "
7272 "signal:"
7273 msgstr ""
7274 "以下のシステムコールとライブラリ関数を使って、 呼び出し者はシグナルを送信する"
7275 "ことができる。"
7276
7277 #. type: TP
7278 #: build/C/man7/signal.7:108
7279 #, no-wrap
7280 msgid "B<raise>(3)"
7281 msgstr "B<raise>(3)"
7282
7283 #. type: Plain text
7284 #: build/C/man7/signal.7:111
7285 msgid "Sends a signal to the calling thread."
7286 msgstr "呼び出したスレッドにシグナルを送る。"
7287
7288 #. type: Plain text
7289 #: build/C/man7/signal.7:116
7290 msgid ""
7291 "Sends a signal to a specified process, to all members of a specified process "
7292 "group, or to all processes on the system."
7293 msgstr ""
7294 "指定されたプロセスや、指定されたプロセスグループの全メンバー、 システムの全プ"
7295 "ロセスにシグナルを送る。"
7296
7297 #. type: TP
7298 #: build/C/man7/signal.7:116
7299 #, no-wrap
7300 msgid "B<killpg>(2)"
7301 msgstr "B<killpg>(2)"
7302
7303 #. type: Plain text
7304 #: build/C/man7/signal.7:119
7305 msgid "Sends a signal to all of the members of a specified process group."
7306 msgstr "指定されたプロセスグループの全メンバーにシグナルを送る。"
7307
7308 #. type: TP
7309 #: build/C/man7/signal.7:119
7310 #, no-wrap
7311 msgid "B<pthread_kill>(3)"
7312 msgstr "B<pthread_kill>(3)"
7313
7314 #. type: Plain text
7315 #: build/C/man7/signal.7:123
7316 msgid ""
7317 "Sends a signal to a specified POSIX thread in the same process as the caller."
7318 msgstr ""
7319 "呼び出し者と同じプロセス内の指定された POSIX スレッドにシグナルを送る。"
7320
7321 #. type: TP
7322 #: build/C/man7/signal.7:123
7323 #, no-wrap
7324 msgid "B<tgkill>(2)"
7325 msgstr "B<tgkill>(2)"
7326
7327 #. type: Plain text
7328 #: build/C/man7/signal.7:128
7329 msgid ""
7330 "Sends a signal to a specified thread within a specific process.  (This is "
7331 "the system call used to implement B<pthread_kill>(3).)"
7332 msgstr ""
7333 "指定されたプロセス内の指定されたスレッドにシグナルを送る (このシステムコール"
7334 "を使って B<pthread_kill>(3)  は実装されている)。"
7335
7336 #. type: Plain text
7337 #: build/C/man7/signal.7:131
7338 msgid "Sends a real-time signal with accompanying data to a specified process."
7339 msgstr "指定されたプロセスに付属データとともにリアルタイムシグナルを送る。"
7340
7341 #. type: SS
7342 #: build/C/man7/signal.7:131
7343 #, no-wrap
7344 msgid "Waiting for a signal to be caught"
7345 msgstr "シグナルが捕捉されるのを待つ"
7346
7347 #. type: Plain text
7348 #: build/C/man7/signal.7:135
7349 msgid ""
7350 "The following system calls suspend execution of the calling process or "
7351 "thread until a signal is caught (or an unhandled signal terminates the "
7352 "process):"
7353 msgstr ""
7354 "以下のシステムコールを使って、シグナルが捕捉されるまで 呼び出したプロセスやス"
7355 "レッドの実行を中断 (suspend) することができる (ハンドラが設定されていないシグ"
7356 "ナルによりそのプロセスが終了した 場合にも実行の停止は終了する)。"
7357
7358 #. type: TP
7359 #: build/C/man7/signal.7:135
7360 #, no-wrap
7361 msgid "B<pause>(2)"
7362 msgstr "B<pause>(2)"
7363
7364 #. type: Plain text
7365 #: build/C/man7/signal.7:138
7366 msgid "Suspends execution until any signal is caught."
7367 msgstr "何かシグナルが捕捉されるまで実行を停止する。"
7368
7369 #. type: TP
7370 #: build/C/man7/signal.7:138
7371 #, no-wrap
7372 msgid "B<sigsuspend>(2)"
7373 msgstr "B<sigsuspend>(2)"
7374
7375 #. type: Plain text
7376 #: build/C/man7/signal.7:142
7377 msgid ""
7378 "Temporarily changes the signal mask (see below) and suspends execution until "
7379 "one of the unmasked signals is caught."
7380 msgstr ""
7381 "一時的にシグナルマスク (下記参照) を変更し、 マスクされていないシグナルのいず"
7382 "れかが捕捉されるまで 実行を中断する。"
7383
7384 #. type: SS
7385 #: build/C/man7/signal.7:142
7386 #, no-wrap
7387 msgid "Synchronously accepting a signal"
7388 msgstr "シグナルの同期受信"
7389
7390 #. type: Plain text
7391 #: build/C/man7/signal.7:149
7392 msgid ""
7393 "Rather than asynchronously catching a signal via a signal handler, it is "
7394 "possible to synchronously accept the signal, that is, to block execution "
7395 "until the signal is delivered, at which point the kernel returns information "
7396 "about the signal to the caller.  There are two general ways to do this:"
7397 msgstr ""
7398 "シグナルハンドラ経由でシグナルを非同期 (asynchronously) で捕捉する以外にも、 "
7399 "シグナルを同期 (synchronously) して受け付けることもできる。 同期して受け付け"
7400 "るとは、シグナルが配送されるまで実行を停止 (block)  するということである。シ"
7401 "グナルを受け付けた際に、カーネルは そのシグナルに関する情報を呼び出し者に返"
7402 "す。 これを行う一般的な方法が二つある。"
7403
7404 #. type: Plain text
7405 #: build/C/man7/signal.7:157
7406 msgid ""
7407 "B<sigwaitinfo>(2), B<sigtimedwait>(2), and B<sigwait>(3)  suspend execution "
7408 "until one of the signals in a specified set is delivered.  Each of these "
7409 "calls returns information about the delivered signal."
7410 msgstr ""
7411 "B<sigwaitinfo>(2), B<sigtimedwait>(2), B<sigwait>(3)  は、指定されたシグナル"
7412 "集合のシグナルの一つが配送されるまで実行を中断する。 どのシステムコールや関数"
7413 "でも、配送されたシグナルに関する情報が返される。"
7414
7415 #. type: Plain text
7416 #: build/C/man7/signal.7:170
7417 msgid ""
7418 "B<signalfd>(2)  returns a file descriptor that can be used to read "
7419 "information about signals that are delivered to the caller.  Each "
7420 "B<read>(2)  from this file descriptor blocks until one of the signals in the "
7421 "set specified in the B<signalfd>(2)  call is delivered to the caller.  The "
7422 "buffer returned by B<read>(2)  contains a structure describing the signal."
7423 msgstr ""
7424 "B<signalfd>(2)  が返すファイルディスクリプタを使うと、呼び出し元に配送された "
7425 "シグナルに関する情報を読み出すことができる。 このファイルディスクリプタから"
7426 "の B<read>(2)  は、 B<signalfd>(2)  の呼び出し時に指定されたシグナル集合のシ"
7427 "グナルの一つが呼び出し元に 配送されるまで停止 (block) する。 B<read>(2)  が返"
7428 "すバッファにはシグナルに関する情報を格納した構造体が入っている。"
7429
7430 #. type: SS
7431 #: build/C/man7/signal.7:170
7432 #, no-wrap
7433 msgid "Signal mask and pending signals"
7434 msgstr "シグナルマスクと処理待ちシグナル"
7435
7436 #. type: Plain text
7437 #: build/C/man7/signal.7:177
7438 msgid ""
7439 "A signal may be I<blocked>, which means that it will not be delivered until "
7440 "it is later unblocked.  Between the time when it is generated and when it is "
7441 "delivered a signal is said to be I<pending>."
7442 msgstr ""
7443 "シグナルは I<ブロック (block)> されることがある。ブロックされると、そのシグナ"
7444 "ルは その後ブロックを解除されるまで配送されなくなる。 シグナルが生成されてか"
7445 "ら配送されるまでの間、そのシグナルは I<処理待ち (pending)> であると呼ばれる。"
7446
7447 #. type: Plain text
7448 #: build/C/man7/signal.7:186
7449 msgid ""
7450 "Each thread in a process has an independent I<signal mask>, which indicates "
7451 "the set of signals that the thread is currently blocking.  A thread can "
7452 "manipulate its signal mask using B<pthread_sigmask>(3).  In a traditional "
7453 "single-threaded application, B<sigprocmask>(2)  can be used to manipulate "
7454 "the signal mask."
7455 msgstr ""
7456 "プロセス内の各スレッドは、それぞれ独立な I<シグナルマスク (signal mask)> を持"
7457 "つ。シグナルマスクはそのスレッドが現在ブロックしている シグナル集合を示すもの"
7458 "である。 スレッドは、 B<pthread_sigmask>(3)  を使って自分のシグナルマスクを操"
7459 "作できる。 伝統的なシングルスレッドのアプリケーションでは、 "
7460 "B<sigprocmask>(2)  を使って、シグナルマスクを操作できる。"
7461
7462 #. type: Plain text
7463 #: build/C/man7/signal.7:192 build/C/man2/sigprocmask.2:126
7464 msgid ""
7465 "A child created via B<fork>(2)  inherits a copy of its parent's signal mask; "
7466 "the signal mask is preserved across B<execve>(2)."
7467 msgstr ""
7468 "B<fork>(2)  経由で作成された子プロセスは親プロセスのシグナルマスクのコピーを"
7469 "継承する。 B<execve>(2)  の前後でシグナルマスクは保持される。"
7470
7471 #. type: Plain text
7472 #: build/C/man7/signal.7:209
7473 msgid ""
7474 "A signal may be generated (and thus pending)  for a process as a whole (e."
7475 "g., when sent using B<kill>(2))  or for a specific thread (e.g., certain "
7476 "signals, such as B<SIGSEGV> and B<SIGFPE>, generated as a consequence of "
7477 "executing a specific machine-language instruction are thread directed, as "
7478 "are signals targeted at a specific thread using B<pthread_kill>(3)).  A "
7479 "process-directed signal may be delivered to any one of the threads that does "
7480 "not currently have the signal blocked.  If more than one of the threads has "
7481 "the signal unblocked, then the kernel chooses an arbitrary thread to which "
7482 "to deliver the signal."
7483 msgstr ""
7484 "生成されるシグナル (したがって処理待ちとなるシグナル) には、 プロセス全体宛て"
7485 "と特定のスレッド宛てがある。 例えば、プロセス全体宛てのシグナルは "
7486 "B<kill>(2)  を使って送信される。 特定のマシン語の命令の実行の結果として生成さ"
7487 "れる、 B<SIGSEGV> や B<SIGFPE> などのシグナルは、スレッド宛てとなる。 また、 "
7488 "B<pthread_kill>(3)  を使って特定のスレッド宛てに生成されたシグナルも スレッド"
7489 "宛てとなる。 プロセス宛てのシグナルは、そのシグナルをブロックしていないスレッ"
7490 "ドのうち いずれかの一つに配送することができる。そのシグナルをブロックしていな"
7491 "い スレッドが複数ある場合、シグナルを配送するスレッドはカーネルが 無作為に選"
7492 "択する。"
7493
7494 #. type: Plain text
7495 #: build/C/man7/signal.7:216
7496 msgid ""
7497 "A thread can obtain the set of signals that it currently has pending using "
7498 "B<sigpending>(2).  This set will consist of the union of the set of pending "
7499 "process-directed signals and the set of signals pending for the calling "
7500 "thread."
7501 msgstr ""
7502 "スレッドは、 B<sigpending>(2)  を使って、現在処理待ちのシグナル集合を取得する"
7503 "ことができる。 この集合は、プロセス宛ての処理待ちシグナルと 呼び出したスレッ"
7504 "ド宛てのシグナルの両方から構成される。"
7505
7506 #. type: Plain text
7507 #: build/C/man7/signal.7:222 build/C/man2/sigpending.2:85
7508 msgid ""
7509 "A child created via B<fork>(2)  initially has an empty pending signal set; "
7510 "the pending signal set is preserved across an B<execve>(2)."
7511 msgstr ""
7512 "B<fork>(2)  経由で作成された子プロセスでは、処理待ちのシグナル集合は空の集合"
7513 "で初期化される。 B<execve>(2)  の前後で、処理待ちのシグナル集合は保持される。"
7514
7515 #. type: SS
7516 #: build/C/man7/signal.7:222
7517 #, no-wrap
7518 msgid "Standard signals"
7519 msgstr "標準シグナル"
7520
7521 #. type: Plain text
7522 #: build/C/man7/signal.7:234
7523 msgid ""
7524 "Linux supports the standard signals listed below.  Several signal numbers "
7525 "are architecture-dependent, as indicated in the \"Value\" column.  (Where "
7526 "three values are given, the first one is usually valid for alpha and sparc, "
7527 "the middle one for x86, arm, and most other architectures, and the last one "
7528 "for mips.  (Values for parisc are I<not> shown; see the Linux kernel source "
7529 "for signal numbering on that architecture.)  A - denotes that a signal is "
7530 "absent on the corresponding architecture.)"
7531 msgstr ""
7532 "Linux は以下に示す標準シグナルに対応している。シグナル番号の一部はアーキテク"
7533 "チャ依存であり、\"値\" 欄に示す通りである。 (3つの値が書かれているものは、 1"
7534 "つ目が alpha と sparc で通常有効な値、 真ん中が x86, arm や他のほとんどのアー"
7535 "キテクチャでの有効な値、最後が mips での値である。 (parisc での値は記載されて"
7536 "I<いない>。 parisc でのシグナル番号は Linux カーネルソースを参照してほし"
7537 "い)。 - はそのアーキテクチャにおいて対応するシグナルがないことを示す。)"
7538
7539 #. type: Plain text
7540 #: build/C/man7/signal.7:236
7541 msgid "First the signals described in the original POSIX.1-1990 standard."
7542 msgstr "最初に、POSIX.1-1990 に定義されているシグナルを示す。"
7543
7544 #. type: tbl table
7545 #: build/C/man7/signal.7:240 build/C/man7/signal.7:276
7546 #: build/C/man7/signal.7:305
7547 #, no-wrap
7548 msgid "Signal\tValue\tAction\tComment\n"
7549 msgstr "シグナル\t値\t動作\tコメント\n"
7550
7551 #. type: tbl table
7552 #: build/C/man7/signal.7:241
7553 #, no-wrap
7554 msgid "SIGHUP\t\\01\tTerm\tHangup detected on controlling terminal\n"
7555 msgstr "SIGHUP\t\\01\tTerm\t制御端末(controlling terminal)のハングアップ検出、\n"
7556
7557 #. type: tbl table
7558 #: build/C/man7/signal.7:242
7559 #, no-wrap
7560 msgid "\t\t\tor death of controlling process\n"
7561 msgstr "\t\t\tまたは制御しているプロセスの死\n"
7562
7563 #. type: tbl table
7564 #: build/C/man7/signal.7:243
7565 #, no-wrap
7566 msgid "SIGINT\t\\02\tTerm\tInterrupt from keyboard\n"
7567 msgstr "SIGINT\t\\02\tTerm\tキーボードからの割り込み (Interrupt)\n"
7568
7569 #. type: tbl table
7570 #: build/C/man7/signal.7:244
7571 #, no-wrap
7572 msgid "SIGQUIT\t\\03\tCore\tQuit from keyboard\n"
7573 msgstr "SIGQUIT\t\\03\tCore\tキーボードによる中止 (Quit)\n"
7574
7575 #. type: tbl table
7576 #: build/C/man7/signal.7:245
7577 #, no-wrap
7578 msgid "SIGILL\t\\04\tCore\tIllegal Instruction\n"
7579 msgstr "SIGILL\t\\04\tCore\t不正な命令\n"
7580
7581 #. type: tbl table
7582 #: build/C/man7/signal.7:246
7583 #, no-wrap
7584 msgid "SIGABRT\t\\06\tCore\tAbort signal from B<abort>(3)\n"
7585 msgstr "SIGABRT\t\\06\tCore\tB<abort>(3) からの中断 (Abort) シグナル\n"
7586
7587 #. type: tbl table
7588 #: build/C/man7/signal.7:247
7589 #, no-wrap
7590 msgid "SIGFPE\t\\08\tCore\tFloating point exception\n"
7591 msgstr "SIGFPE\t\\08\tCore\t浮動小数点例外\n"
7592
7593 #. type: tbl table
7594 #: build/C/man7/signal.7:248
7595 #, no-wrap
7596 msgid "SIGKILL\t\\09\tTerm\tKill signal\n"
7597 msgstr "SIGKILL\t\\09\tTerm\tKill シグナル\n"
7598
7599 #. type: tbl table
7600 #: build/C/man7/signal.7:249
7601 #, no-wrap
7602 msgid "SIGSEGV\t11\tCore\tInvalid memory reference\n"
7603 msgstr "SIGSEGV\t11\tCore\t不正なメモリ参照\n"
7604
7605 #. type: tbl table
7606 #: build/C/man7/signal.7:250
7607 #, no-wrap
7608 msgid "SIGPIPE\t13\tTerm\tBroken pipe: write to pipe with no\n"
7609 msgstr "SIGPIPE\t13\tTerm\tパイプ破壊:\n"
7610
7611 #. type: tbl table
7612 #: build/C/man7/signal.7:251
7613 #, no-wrap
7614 msgid "\t\t\treaders\n"
7615 msgstr "\t\t\t読み手の無いパイプへの書き出し\n"
7616
7617 #. type: tbl table
7618 #: build/C/man7/signal.7:252
7619 #, no-wrap
7620 msgid "SIGALRM\t14\tTerm\tTimer signal from B<alarm>(2)\n"
7621 msgstr "SIGALRM\t14\tTerm\tB<alarm>(2) からのタイマーシグナル\n"
7622
7623 #. type: tbl table
7624 #: build/C/man7/signal.7:253
7625 #, no-wrap
7626 msgid "SIGTERM\t15\tTerm\tTermination signal\n"
7627 msgstr "SIGTERM\t15\tTerm\t終了 (termination) シグナル\n"
7628
7629 #. type: tbl table
7630 #: build/C/man7/signal.7:254
7631 #, no-wrap
7632 msgid "SIGUSR1\t30,10,16\tTerm\tUser-defined signal 1\n"
7633 msgstr "SIGUSR1\t30,10,16\tTerm\tユーザ定義シグナル 1\n"
7634
7635 #. type: tbl table
7636 #: build/C/man7/signal.7:255
7637 #, no-wrap
7638 msgid "SIGUSR2\t31,12,17\tTerm\tUser-defined signal 2\n"
7639 msgstr "SIGUSR2\t31,12,17\tTerm\tユーザ定義シグナル 2\n"
7640
7641 #. type: tbl table
7642 #: build/C/man7/signal.7:256
7643 #, no-wrap
7644 msgid "SIGCHLD\t20,17,18\tIgn\tChild stopped or terminated\n"
7645 msgstr "SIGCHLD\t20,17,18\tIgn\t子プロセスの一時停止 (stop) または終了\n"
7646
7647 #. type: tbl table
7648 #: build/C/man7/signal.7:257
7649 #, no-wrap
7650 msgid "SIGCONT\t19,18,25\tCont\tContinue if stopped\n"
7651 msgstr "SIGCONT\t19,18,25\tCont\t一時停止 (stop) からの再開\n"
7652
7653 #. type: tbl table
7654 #: build/C/man7/signal.7:258
7655 #, no-wrap
7656 msgid "SIGSTOP\t17,19,23\tStop\tStop process\n"
7657 msgstr "SIGSTOP\t17,19,23\tStop\tプロセスの一時停止 (stop)\n"
7658
7659 #. type: tbl table
7660 #: build/C/man7/signal.7:259
7661 #, no-wrap
7662 msgid "SIGTSTP\t18,20,24\tStop\tStop typed at terminal\n"
7663 msgstr "SIGTSTP\t18,20,24\tStop\t端末より入力された一時停止 (stop)\n"
7664
7665 #. type: tbl table
7666 #: build/C/man7/signal.7:260
7667 #, no-wrap
7668 msgid "SIGTTIN\t21,21,26\tStop\tTerminal input for background process\n"
7669 msgstr "SIGTTIN\t21,21,26\tStop\tバックグランドプロセスの端末入力\n"
7670
7671 #. type: tbl table
7672 #: build/C/man7/signal.7:261
7673 #, no-wrap
7674 msgid "SIGTTOU\t22,22,27\tStop\tTerminal output for background process\n"
7675 msgstr "SIGTTOU\t22,22,27\tStop\tバックグランドプロセスの端末出力\n"
7676
7677 #. type: Plain text
7678 #: build/C/man7/signal.7:269
7679 msgid ""
7680 "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught, blocked, or ignored."
7681 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> はキャッチ、ブロック、無視できない。"
7682
7683 #. type: Plain text
7684 #: build/C/man7/signal.7:272
7685 msgid ""
7686 "Next the signals not in the POSIX.1-1990 standard but described in SUSv2 and "
7687 "POSIX.1-2001."
7688 msgstr ""
7689 "次に、 POSIX.1-1990 標準にはないが、 SUSv2 と POSIX.1-2001 に記述されているシ"
7690 "グナルを示す。"
7691
7692 #. type: tbl table
7693 #: build/C/man7/signal.7:277
7694 #, no-wrap
7695 msgid "SIGBUS\t10,7,10\tCore\tBus error (bad memory access)\n"
7696 msgstr "SIGBUS\t10,7,10\tCore\tバスエラー (不正なメモリアクセス)\n"
7697
7698 #. type: tbl table
7699 #: build/C/man7/signal.7:278
7700 #, no-wrap
7701 msgid "SIGPOLL\t\tTerm\tPollable event (Sys V).\n"
7702 msgstr "SIGPOLL\t\tTerm\tポーリング可能なイベント (Sys V)。\n"
7703
7704 #. type: tbl table
7705 #: build/C/man7/signal.7:279
7706 #, no-wrap
7707 msgid "\t\t\tSynonym for B<SIGIO>\n"
7708 msgstr "\t\t\tB<SIGIO> と同義\n"
7709
7710 #. type: tbl table
7711 #: build/C/man7/signal.7:280
7712 #, no-wrap
7713 msgid "SIGPROF\t27,27,29\tTerm\tProfiling timer expired\n"
7714 msgstr "SIGPROF\t27,27,29\tTerm\tprofiling タイマの時間切れ\n"
7715
7716 #. type: tbl table
7717 #: build/C/man7/signal.7:281
7718 #, no-wrap
7719 msgid "SIGSYS\t12,31,12\tCore\tBad argument to routine (SVr4)\n"
7720 msgstr "SIGSYS\t12,31,12\tCore\tルーチンへの引き数が不正 (SVr4)\n"
7721
7722 #. type: tbl table
7723 #: build/C/man7/signal.7:282
7724 #, no-wrap
7725 msgid "SIGTRAP\t5\tCore\tTrace/breakpoint trap\n"
7726 msgstr "SIGTRAP\t5\tCore\tトレース/ブレークポイント トラップ\n"
7727
7728 #. type: tbl table
7729 #: build/C/man7/signal.7:283
7730 #, no-wrap
7731 msgid "SIGURG\t16,23,21\tIgn\tUrgent condition on socket (4.2BSD)\n"
7732 msgstr "SIGURG\t16,23,21\tIgn\tソケットの緊急事態 (urgent condition) (4.2BSD)\n"
7733
7734 #. type: tbl table
7735 #: build/C/man7/signal.7:284
7736 #, no-wrap
7737 msgid "SIGVTALRM\t26,26,28\tTerm\tVirtual alarm clock (4.2BSD)\n"
7738 msgstr "SIGVTALRM\t26,26,28\tTerm\t仮想アラームクロック (4.2BSD)\n"
7739
7740 #. type: tbl table
7741 #: build/C/man7/signal.7:285
7742 #, no-wrap
7743 msgid "SIGXCPU\t24,24,30\tCore\tCPU time limit exceeded (4.2BSD)\n"
7744 msgstr "SIGXCPU\t24,24,30\tCore\tCPU時間制限超過 (4.2BSD)\n"
7745
7746 #. type: tbl table
7747 #: build/C/man7/signal.7:286
7748 #, no-wrap
7749 msgid "SIGXFSZ\t25,25,31\tCore\tFile size limit exceeded (4.2BSD)\n"
7750 msgstr "SIGXFSZ\t25,25,31\tCore\tファイルサイズ制限の超過 (4.2BSD)\n"
7751
7752 #. type: Plain text
7753 #: build/C/man7/signal.7:299
7754 msgid ""
7755 "Up to and including Linux 2.2, the default behavior for B<SIGSYS>, "
7756 "B<SIGXCPU>, B<SIGXFSZ>, and (on architectures other than SPARC and MIPS)  "
7757 "B<SIGBUS> was to terminate the process (without a core dump).  (On some "
7758 "other UNIX systems the default action for B<SIGXCPU> and B<SIGXFSZ> is to "
7759 "terminate the process without a core dump.)  Linux 2.4 conforms to the "
7760 "POSIX.1-2001 requirements for these signals, terminating the process with a "
7761 "core dump."
7762 msgstr ""
7763 "Linux 2.2 以前では、 B<SIGSYS>, B<SIGXCPU>, B<SIGXFSZ> および SPARC と MIPS "
7764 "以外のアーキテクチャでの B<SIGBUS> のデフォルトの振る舞いは (コアダンプ出力な"
7765 "しの) プロセス終了であった。 (他の UNIX システムにも B<SIGXCPU> と "
7766 "B<SIGXFSZ> のデフォルトの動作がコアダンプなしのプロセス終了のものがある。)  "
7767 "Linux 2.4 では、POSIX.1-2001 での要求仕様に準拠して、 これらのシグナルで、プ"
7768 "ロセスを終了させ、コアダンプを出力する ようになっている。"
7769
7770 #. type: Plain text
7771 #: build/C/man7/signal.7:301
7772 msgid "Next various other signals."
7773 msgstr "次にその他の各種シグナルを示す。"
7774
7775 #. type: tbl table
7776 #: build/C/man7/signal.7:306
7777 #, no-wrap
7778 msgid "SIGIOT\t6\tCore\tIOT trap. A synonym for B<SIGABRT>\n"
7779 msgstr "SIGIOT\t6\tCore\tIOT トラップ。B<SIGABRT> と同義\n"
7780
7781 #. type: tbl table
7782 #: build/C/man7/signal.7:307
7783 #, no-wrap
7784 msgid "SIGEMT\t7,-,7\tTerm\n"
7785 msgstr "SIGEMT\t7,-,7\tTerm\n"
7786
7787 #. type: tbl table
7788 #: build/C/man7/signal.7:308
7789 #, no-wrap
7790 msgid "SIGSTKFLT\t-,16,-\tTerm\tStack fault on coprocessor (unused)\n"
7791 msgstr "SIGSTKFLT\t-,16,-\tA\t数値演算プロセッサにおけるスタックフォルト (未使用)\n"
7792
7793 #. type: tbl table
7794 #: build/C/man7/signal.7:309
7795 #, no-wrap
7796 msgid "SIGIO\t23,29,22\tTerm\tI/O now possible (4.2BSD)\n"
7797 msgstr "SIGIO\t23,29,22\tTerm\t入出力が可能になった (4.2BSD)\n"
7798
7799 #. type: tbl table
7800 #: build/C/man7/signal.7:310
7801 #, no-wrap
7802 msgid "SIGCLD\t-,-,18\tIgn\tA synonym for B<SIGCHLD>\n"
7803 msgstr "SIGCLD\t-,-,18\tIgn\tB<SIGCHLD> と同義\n"
7804
7805 #. type: tbl table
7806 #: build/C/man7/signal.7:311
7807 #, no-wrap
7808 msgid "SIGPWR\t29,30,19\tTerm\tPower failure (System V)\n"
7809 msgstr "SIGPWR\t29,30,19\tTerm\t電源喪失 (Power failure) (System V)\n"
7810
7811 #. type: tbl table
7812 #: build/C/man7/signal.7:312
7813 #, no-wrap
7814 msgid "SIGINFO\t29,-,-\t\tA synonym for B<SIGPWR>\n"
7815 msgstr "SIGINFO\t29,-,-\t \tB<SIGPWR> と同義\n"
7816
7817 #. type: tbl table
7818 #: build/C/man7/signal.7:313
7819 #, no-wrap
7820 msgid "SIGLOST\t-,-,-\tTerm\tFile lock lost (unused)\n"
7821 msgstr "SIGLOST\t-,-,-\tTerm\tファイルロックが失われた (未使用)\n"
7822
7823 #. type: tbl table
7824 #: build/C/man7/signal.7:314
7825 #, no-wrap
7826 msgid "SIGWINCH\t28,28,20\tIgn\tWindow resize signal (4.3BSD, Sun)\n"
7827 msgstr "SIGWINCH\t28,28,20\tIgn\tウィンドウ リサイズ シグナル (4.3BSD, Sun)\n"
7828
7829 #. type: tbl table
7830 #: build/C/man7/signal.7:315
7831 #, no-wrap
7832 msgid "SIGUNUSED\t-,31,-\tCore\tSynonymous with B<SIGSYS>\n"
7833 msgstr "SIGUNUSED\t-,31,-\tCore\tB<SIGSYS> と同義\n"
7834
7835 #. type: Plain text
7836 #: build/C/man7/signal.7:325
7837 msgid ""
7838 "(Signal 29 is B<SIGINFO> / B<SIGPWR> on an alpha but B<SIGLOST> on a sparc.)"
7839 msgstr ""
7840 "(シグナル 29 は alpha では B<SIGINFO> / B<SIGPWR> だが、sparc では "
7841 "B<SIGLOST> である。)"
7842
7843 #. type: Plain text
7844 #: build/C/man7/signal.7:331
7845 msgid ""
7846 "B<SIGEMT> is not specified in POSIX.1-2001, but nevertheless appears on most "
7847 "other UNIX systems, where its default action is typically to terminate the "
7848 "process with a core dump."
7849 msgstr ""
7850 "B<SIGEMT> は POSIX.1-2001 に規定されていないが、 その他の多くの UNIX システム"
7851 "に存在する。 デフォルトの動作は多くの場合、コアダンプ出力を伴うプロセスの終了"
7852 "である。"
7853
7854 #. type: Plain text
7855 #: build/C/man7/signal.7:335
7856 msgid ""
7857 "B<SIGPWR> (which is not specified in POSIX.1-2001) is typically ignored by "
7858 "default on those other UNIX systems where it appears."
7859 msgstr ""
7860 "B<SIGPWR> は (POSIX.1-2001 に規定されていないが) このシグナルが存在する 他の "
7861 "UNIX システムでは多くの場合、デフォルト動作は無視である。"
7862
7863 #. type: Plain text
7864 #: build/C/man7/signal.7:339
7865 msgid ""
7866 "B<SIGIO> (which is not specified in POSIX.1-2001) is ignored by default on "
7867 "several other UNIX systems."
7868 msgstr ""
7869 "B<SIGIO> は (POSIX.1-2001 に規定されていないが) いくつかの他の UNIX システム"
7870 "では デフォルト動作は無視である。"
7871
7872 #.  parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31
7873 #. type: Plain text
7874 #: build/C/man7/signal.7:346
7875 msgid ""
7876 "Where defined, B<SIGUNUSED> is synonymous with B<SIGSYS> on most "
7877 "architectures."
7878 msgstr ""
7879 "B<SIGUNUSED> が定義されている場合には、ほとんどのアーキテクチャで B<SIGSYS> "
7880 "の同義語となっている。"
7881
7882 #. type: SS
7883 #: build/C/man7/signal.7:346
7884 #, no-wrap
7885 msgid "Real-time signals"
7886 msgstr "リアルタイムシグナル"
7887
7888 #. type: Plain text
7889 #: build/C/man7/signal.7:356
7890 msgid ""
7891 "Linux supports real-time signals as originally defined in the POSIX.1b real-"
7892 "time extensions (and now included in POSIX.1-2001).  The range of supported "
7893 "real-time signals is defined by the macros B<SIGRTMIN> and B<SIGRTMAX>.  "
7894 "POSIX.1-2001 requires that an implementation support at least "
7895 "B<_POSIX_RTSIG_MAX> (8) real-time signals."
7896 msgstr ""
7897 "Linux はリアルタイムシグナルをサポートしている。 リアルタイムシグナルは元々 "
7898 "POSIX.1b のリアルタイム拡張で定義されて いるものであり、現在では "
7899 "POSIX.1-2001 に含まれている。 対応しているリアルタイムシグナルの範囲は、マク"
7900 "ロ B<SIGRTMIN> と B<SIGRTMAX> で定義される。 POSIX.1-2001 では、少なくとも "
7901 "B<_POSIX_RTSIG_MAX> (8) 個のリアルタイムシグナルに対応した実装が要求されてい"
7902 "る。"
7903
7904 #. type: Plain text
7905 #: build/C/man7/signal.7:378
7906 msgid ""
7907 "The Linux kernel supports a range of 32 different real-time signals, "
7908 "numbered 33 to 64.  However, the glibc POSIX threads implementation "
7909 "internally uses two (for NPTL) or three (for LinuxThreads) real-time signals "
7910 "(see B<pthreads>(7)), and adjusts the value of B<SIGRTMIN> suitably (to 34 "
7911 "or 35).  Because the range of available real-time signals varies according "
7912 "to the glibc threading implementation (and this variation can occur at run "
7913 "time according to the available kernel and glibc), and indeed the range of "
7914 "real-time signals varies across UNIX systems, programs should I<never refer "
7915 "to real-time signals using hard-coded numbers>, but instead should always "
7916 "refer to real-time signals using the notation B<SIGRTMIN>+n, and include "
7917 "suitable (run-time) checks that B<SIGRTMIN>+n does not exceed B<SIGRTMAX>."
7918 msgstr ""
7919 "Linux は、32 個の異なるリアルタイムシグナルに対応しており、 その番号は 33 か"
7920 "ら 64 である。 しかしながら、glibc の POSIX スレッド実装は、 内部で 2個 "
7921 "(NPTL の場合) か 3個 (LinuxThreads の場合) の リアルタイムシグナルを使用して"
7922 "おり (B<pthreads>(7)  参照)、 B<SIGRTMIN> の値を適切に (34 か 35 に) 調整す"
7923 "る。 利用可能なリアルタイムシグナルの範囲は glibc のスレッド実装により 異なる"
7924 "し (使用するカーネルと glibc により実行時にも変化する)、 UNIX システムの種類"
7925 "によっても異なる。したがって、 プログラムでは「ハードコーディングした数字を"
7926 "使ってのリアルタイムシグナルの 参照は決してすべきではなく」、代わりに "
7927 "B<SIGRTMIN>+n の形で参照すべきである。また、 B<SIGRTMIN>+n が B<SIGRTMAX> を"
7928 "超えていないかのチェックを (実行時に) 適切に行うべきである。"
7929
7930 #. type: Plain text
7931 #: build/C/man7/signal.7:382
7932 msgid ""
7933 "Unlike standard signals, real-time signals have no predefined meanings: the "
7934 "entire set of real-time signals can be used for application-defined purposes."
7935 msgstr ""
7936 "標準シグナルと異なり、リアルタイムシグナルには 事前に定義された意味はない。 "
7937 "リアルタイムシグナルの全部をアプリケーションで定義した用途に使える。"
7938
7939 #. type: Plain text
7940 #: build/C/man7/signal.7:385
7941 msgid ""
7942 "The default action for an unhandled real-time signal is to terminate the "
7943 "receiving process."
7944 msgstr ""
7945 "ハンドリングしないリアルタイムシグナルのデフォルトの動作は 受信したプロセスの"
7946 "終了である。"
7947
7948 #. type: Plain text
7949 #: build/C/man7/signal.7:387
7950 msgid "Real-time signals are distinguished by the following:"
7951 msgstr "リアルタイムシグナルは以下の特徴がある:"
7952
7953 #. type: Plain text
7954 #: build/C/man7/signal.7:391
7955 msgid ""
7956 "Multiple instances of real-time signals can be queued.  By contrast, if "
7957 "multiple instances of a standard signal are delivered while that signal is "
7958 "currently blocked, then only one instance is queued."
7959 msgstr ""
7960 "リアルタイムシグナルは複数の実体をキューに入れることができる。 一方、標準シグ"
7961 "ナルの場合、そのシグナルがブロックされている間に 同じシグナルの複数のインスタ"
7962 "ンスが配送されても、 1 つだけがキューに入れられる。"
7963
7964 #. type: Plain text
7965 #: build/C/man7/signal.7:411
7966 msgid ""
7967 "If the signal is sent using B<sigqueue>(3), an accompanying value (either an "
7968 "integer or a pointer) can be sent with the signal.  If the receiving process "
7969 "establishes a handler for this signal using the B<SA_SIGINFO> flag to "
7970 "B<sigaction>(2), then it can obtain this data via the I<si_value> field of "
7971 "the I<siginfo_t> structure passed as the second argument to the handler.  "
7972 "Furthermore, the I<si_pid> and I<si_uid> fields of this structure can be "
7973 "used to obtain the PID and real user ID of the process sending the signal."
7974 msgstr ""
7975 "シグナルが B<sigqueue>(3)  を用いて送信された場合、 付属データ (整数かポイン"
7976 "タ) をシグナルと共に送信できる。 受信側プロセスが B<sigaction>(2)  に "
7977 "B<SA_SIGINFO> フラグを指定してシグナルハンドラを設定した場合、 このデータは "
7978 "I<siginfo_t> 構造体の I<si_value> フィールド経由でハンドラの第 2 引き数として"
7979 "渡され、 利用することができる。 さらに、この構造体の I<si_pid> と I<si_uid> "
7980 "フィールドでシグナルを送信したプロセスの PID と実ユーザ ID を 得ることができ"
7981 "る。"
7982
7983 #. type: Plain text
7984 #: build/C/man7/signal.7:420
7985 msgid ""
7986 "Real-time signals are delivered in a guaranteed order.  Multiple real-time "
7987 "signals of the same type are delivered in the order they were sent.  If "
7988 "different real-time signals are sent to a process, they are delivered "
7989 "starting with the lowest-numbered signal.  (I.e., low-numbered signals have "
7990 "highest priority.)  By contrast, if multiple standard signals are pending "
7991 "for a process, the order in which they are delivered is unspecified."
7992 msgstr ""
7993 "リアルタイムシグナルでは配送される順序が保証される。 同じタイプのリアルタイム"
7994 "シグナルは送信された順番に到着する。 異なるリアルタイムシグナルが一つのプロセ"
7995 "スに送信された場合、 番号の小さいシグナルから先に到着する。 (つまり小さい番号"
7996 "のシグナルが高い優先順位を持つ。)  対照的に、一つのプロセスに対して複数の標準"
7997 "シグナルが処理待ちとなった場合、 これらのシグナルが配送される順序は不定であ"
7998 "る。"
7999
8000 #. type: Plain text
8001 #: build/C/man7/signal.7:425
8002 msgid ""
8003 "If both standard and real-time signals are pending for a process, POSIX "
8004 "leaves it unspecified which is delivered first.  Linux, like many other "
8005 "implementations, gives priority to standard signals in this case."
8006 msgstr ""
8007 "一つのプロセスに対して標準シグナルとリアルタイムシグナルの両方が 処理待ちの場"
8008 "合、POSIX はどちらが先に配送されるかを規定していない。 Linux では、他の多くの"
8009 "実装と同様、このような場合には 標準シグナルが優先される。"
8010
8011 #. type: Plain text
8012 #: build/C/man7/signal.7:448
8013 msgid ""
8014 "According to POSIX, an implementation should permit at least "
8015 "B<_POSIX_SIGQUEUE_MAX> (32) real-time signals to be queued to a process.  "
8016 "However, Linux does things differently.  In kernels up to and including "
8017 "2.6.7, Linux imposes a system-wide limit on the number of queued real-time "
8018 "signals for all processes.  This limit can be viewed and (with privilege) "
8019 "changed via the I</proc/sys/kernel/rtsig-max> file.  A related file, I</proc/"
8020 "sys/kernel/rtsig-nr>, can be used to find out how many real-time signals are "
8021 "currently queued.  In Linux 2.6.8, these I</proc> interfaces were replaced "
8022 "by the B<RLIMIT_SIGPENDING> resource limit, which specifies a per-user limit "
8023 "for queued signals; see B<setrlimit>(2)  for further details."
8024 msgstr ""
8025 "POSIX によれば、1 プロセス毎に最低 B<_POSIX_SIGQUEUE_MAX> (32) 個のリアルタイ"
8026 "ムシグナルをキューに入れられるべきとしている。 しかし、 Linux では違った実装"
8027 "になっている。カーネル 2.6.7 までは (2.6.7 を含む)、全プロセスでキューに入っ"
8028 "ているリアルタイムシグナル の数の合計についてシステム全体での制限がある。 こ"
8029 "の制限は I</proc/sys/kernel/rtsig-max> ファイルで見ることができ、 (権限があれ"
8030 "ば) 変更もできる。 関係するファイルとして、 I</proc/sys/kernel/rtsig-nr> を見"
8031 "ることで、いくつのリアルタイムシグナルが現在キューに入っているかを 知ることが"
8032 "できる。 Linux 2.6.8 で、これらの I</proc> 経由のインターフェースは、 "
8033 "B<RLIMIT_SIGPENDING> リソース制限に置き換えられた。 これは、キューに入るシグ"
8034 "ナル数に関してユーザ単位に 上限を指定するものである。 詳しくは "
8035 "B<setrlimit>(2)  を参照。"
8036
8037 #. type: SS
8038 #: build/C/man7/signal.7:448
8039 #, no-wrap
8040 msgid "Async-signal-safe functions"
8041 msgstr "非同期シグナルで安全な関数 (async-signal-safe functions)"
8042
8043 #. type: Plain text
8044 #: build/C/man7/signal.7:457
8045 msgid ""
8046 "A signal handler function must be very careful, since processing elsewhere "
8047 "may be interrupted at some arbitrary point in the execution of the program.  "
8048 "POSIX has the concept of \"safe function\".  If a signal interrupts the "
8049 "execution of an unsafe function, and I<handler> calls an unsafe function, "
8050 "then the behavior of the program is undefined."
8051 msgstr ""
8052 "シグナルハンドラ関数には非常に注意しなければならない。 他の場所の処理はプログ"
8053 "ラム実行の任意の箇所で中断される可能性があるためである。 POSIX には「安全な関"
8054 "数 (safe function)」という概念がある。 シグナルが安全でない関数の実行を中断"
8055 "し、かつ I<handler> が安全でない関数を呼び出した場合、プログラムの挙動は未定"
8056 "義である。"
8057
8058 #. type: Plain text
8059 #: build/C/man7/signal.7:461
8060 msgid ""
8061 "POSIX.1-2004 (also known as POSIX.1-2001 Technical Corrigendum 2)  requires "
8062 "an implementation to guarantee that the following functions can be safely "
8063 "called inside a signal handler:"
8064 msgstr ""
8065 "POSIX.1-2004 (POSIX.1-2001 Technical Corrigendum (正誤表) 2 とも言う) では、 "
8066 "シグナルハンドラ内での安全な呼び出しを保証することが必須の関数として 以下が規"
8067 "定されている。"
8068
8069 #. type: Plain text
8070 #: build/C/man7/signal.7:582
8071 #, no-wrap
8072 msgid ""
8073 "_Exit()\n"
8074 "_exit()\n"
8075 "abort()\n"
8076 "accept()\n"
8077 "access()\n"
8078 "aio_error()\n"
8079 "aio_return()\n"
8080 "aio_suspend()\n"
8081 "alarm()\n"
8082 "bind()\n"
8083 "cfgetispeed()\n"
8084 "cfgetospeed()\n"
8085 "cfsetispeed()\n"
8086 "cfsetospeed()\n"
8087 "chdir()\n"
8088 "chmod()\n"
8089 "chown()\n"
8090 "clock_gettime()\n"
8091 "close()\n"
8092 "connect()\n"
8093 "creat()\n"
8094 "dup()\n"
8095 "dup2()\n"
8096 "execle()\n"
8097 "execve()\n"
8098 "fchmod()\n"
8099 "fchown()\n"
8100 "fcntl()\n"
8101 "fdatasync()\n"
8102 "fork()\n"
8103 "fpathconf()\n"
8104 "fstat()\n"
8105 "fsync()\n"
8106 "ftruncate()\n"
8107 "getegid()\n"
8108 "geteuid()\n"
8109 "getgid()\n"
8110 "getgroups()\n"
8111 "getpeername()\n"
8112 "getpgrp()\n"
8113 "getpid()\n"
8114 "getppid()\n"
8115 "getsockname()\n"
8116 "getsockopt()\n"
8117 "getuid()\n"
8118 "kill()\n"
8119 "link()\n"
8120 "listen()\n"
8121 "lseek()\n"
8122 "lstat()\n"
8123 "mkdir()\n"
8124 "mkfifo()\n"
8125 "open()\n"
8126 "pathconf()\n"
8127 "pause()\n"
8128 "pipe()\n"
8129 "poll()\n"
8130 "posix_trace_event()\n"
8131 "pselect()\n"
8132 "raise()\n"
8133 "read()\n"
8134 "readlink()\n"
8135 "recv()\n"
8136 "recvfrom()\n"
8137 "recvmsg()\n"
8138 "rename()\n"
8139 "rmdir()\n"
8140 "select()\n"
8141 "sem_post()\n"
8142 "send()\n"
8143 "sendmsg()\n"
8144 "sendto()\n"
8145 "setgid()\n"
8146 "setpgid()\n"
8147 "setsid()\n"
8148 "setsockopt()\n"
8149 "setuid()\n"
8150 "shutdown()\n"
8151 "sigaction()\n"
8152 "sigaddset()\n"
8153 "sigdelset()\n"
8154 "sigemptyset()\n"
8155 "sigfillset()\n"
8156 "sigismember()\n"
8157 "signal()\n"
8158 "sigpause()\n"
8159 "sigpending()\n"
8160 "sigprocmask()\n"
8161 "sigqueue()\n"
8162 "sigset()\n"
8163 "sigsuspend()\n"
8164 "sleep()\n"
8165 "sockatmark()\n"
8166 "socket()\n"
8167 "socketpair()\n"
8168 "stat()\n"
8169 "symlink()\n"
8170 "sysconf()\n"
8171 "tcdrain()\n"
8172 "tcflow()\n"
8173 "tcflush()\n"
8174 "tcgetattr()\n"
8175 "tcgetpgrp()\n"
8176 "tcsendbreak()\n"
8177 "tcsetattr()\n"
8178 "tcsetpgrp()\n"
8179 "time()\n"
8180 "timer_getoverrun()\n"
8181 "timer_gettime()\n"
8182 "timer_settime()\n"
8183 "times()\n"
8184 "umask()\n"
8185 "uname()\n"
8186 "unlink()\n"
8187 "utime()\n"
8188 "wait()\n"
8189 "waitpid()\n"
8190 "write()\n"
8191 msgstr ""
8192 "_Exit()\n"
8193 "_exit()\n"
8194 "abort()\n"
8195 "accept()\n"
8196 "access()\n"
8197 "aio_error()\n"
8198 "aio_return()\n"
8199 "aio_suspend()\n"
8200 "alarm()\n"
8201 "bind()\n"
8202 "cfgetispeed()\n"
8203 "cfgetospeed()\n"
8204 "cfsetispeed()\n"
8205 "cfsetospeed()\n"
8206 "chdir()\n"
8207 "chmod()\n"
8208 "chown()\n"
8209 "clock_gettime()\n"
8210 "close()\n"
8211 "connect()\n"
8212 "creat()\n"
8213 "dup()\n"
8214 "dup2()\n"
8215 "execle()\n"
8216 "execve()\n"
8217 "fchmod()\n"
8218 "fchown()\n"
8219 "fcntl()\n"
8220 "fdatasync()\n"
8221 "fork()\n"
8222 "fpathconf()\n"
8223 "fstat()\n"
8224 "fsync()\n"
8225 "ftruncate()\n"
8226 "getegid()\n"
8227 "geteuid()\n"
8228 "getgid()\n"
8229 "getgroups()\n"
8230 "getpeername()\n"
8231 "getpgrp()\n"
8232 "getpid()\n"
8233 "getppid()\n"
8234 "getsockname()\n"
8235 "getsockopt()\n"
8236 "getuid()\n"
8237 "kill()\n"
8238 "link()\n"
8239 "listen()\n"
8240 "lseek()\n"
8241 "lstat()\n"
8242 "mkdir()\n"
8243 "mkfifo()\n"
8244 "open()\n"
8245 "pathconf()\n"
8246 "pause()\n"
8247 "pipe()\n"
8248 "poll()\n"
8249 "posix_trace_event()\n"
8250 "pselect()\n"
8251 "raise()\n"
8252 "read()\n"
8253 "readlink()\n"
8254 "recv()\n"
8255 "recvfrom()\n"
8256 "recvmsg()\n"
8257 "rename()\n"
8258 "rmdir()\n"
8259 "select()\n"
8260 "sem_post()\n"
8261 "send()\n"
8262 "sendmsg()\n"
8263 "sendto()\n"
8264 "setgid()\n"
8265 "setpgid()\n"
8266 "setsid()\n"
8267 "setsockopt()\n"
8268 "setuid()\n"
8269 "shutdown()\n"
8270 "sigaction()\n"
8271 "sigaddset()\n"
8272 "sigdelset()\n"
8273 "sigemptyset()\n"
8274 "sigfillset()\n"
8275 "sigismember()\n"
8276 "signal()\n"
8277 "sigpause()\n"
8278 "sigpending()\n"
8279 "sigprocmask()\n"
8280 "sigqueue()\n"
8281 "sigset()\n"
8282 "sigsuspend()\n"
8283 "sleep()\n"
8284 "sockatmark()\n"
8285 "socket()\n"
8286 "socketpair()\n"
8287 "stat()\n"
8288 "symlink()\n"
8289 "sysconf()\n"
8290 "tcdrain()\n"
8291 "tcflow()\n"
8292 "tcflush()\n"
8293 "tcgetattr()\n"
8294 "tcgetpgrp()\n"
8295 "tcsendbreak()\n"
8296 "tcsetattr()\n"
8297 "tcsetpgrp()\n"
8298 "time()\n"
8299 "timer_getoverrun()\n"
8300 "timer_gettime()\n"
8301 "timer_settime()\n"
8302 "times()\n"
8303 "umask()\n"
8304 "uname()\n"
8305 "unlink()\n"
8306 "utime()\n"
8307 "wait()\n"
8308 "waitpid()\n"
8309 "write()\n"
8310
8311 #. type: Plain text
8312 #: build/C/man7/signal.7:587
8313 msgid ""
8314 "POSIX.1-2008 removes fpathconf(), pathconf(), and sysconf()  from the above "
8315 "list, and adds the following functions:"
8316 msgstr ""
8317 "POSIX.1-2008 では、上記のリストのうち fpathconf(), pathconf(), sysconf()  が"
8318 "削除され、以下の関数が追加された。"
8319
8320 #. type: Plain text
8321 #: build/C/man7/signal.7:610
8322 #, no-wrap
8323 msgid ""
8324 "execl()\n"
8325 "execv()\n"
8326 "faccessat()\n"
8327 "fchmodat()\n"
8328 "fchownat()\n"
8329 "fexecve()\n"
8330 "fstatat()\n"
8331 "futimens()\n"
8332 "linkat()\n"
8333 "mkdirat()\n"
8334 "mkfifoat()\n"
8335 "mknod()\n"
8336 "mknodat()\n"
8337 "openat()\n"
8338 "readlinkat()\n"
8339 "renameat()\n"
8340 "symlinkat()\n"
8341 "unlinkat()\n"
8342 "utimensat()\n"
8343 "utimes()\n"
8344 msgstr ""
8345 "execl()\n"
8346 "execv()\n"
8347 "faccessat()\n"
8348 "fchmodat()\n"
8349 "fchownat()\n"
8350 "fexecve()\n"
8351 "fstatat()\n"
8352 "futimens()\n"
8353 "linkat()\n"
8354 "mkdirat()\n"
8355 "mkfifoat()\n"
8356 "mknod()\n"
8357 "mknodat()\n"
8358 "openat()\n"
8359 "readlinkat()\n"
8360 "renameat()\n"
8361 "symlinkat()\n"
8362 "unlinkat()\n"
8363 "utimensat()\n"
8364 "utimes()\n"
8365
8366 #. type: SS
8367 #: build/C/man7/signal.7:612
8368 #, no-wrap
8369 msgid "Interruption of system calls and library functions by signal handlers"
8370 msgstr "シグナルハンドラによるシステムコールやライブラリ関数への割り込み"
8371
8372 #. type: Plain text
8373 #: build/C/man7/signal.7:615
8374 msgid ""
8375 "If a signal handler is invoked while a system call or library function call "
8376 "is blocked, then either:"
8377 msgstr ""
8378 "システムコールやライブラリが停止 (block) している間にシグナルハンドラが 起動"
8379 "されると、以下のどちらかとなる。"
8380
8381 #. type: Plain text
8382 #: build/C/man7/signal.7:617
8383 msgid ""
8384 "the call is automatically restarted after the signal handler returns; or"
8385 msgstr "シグナルが返った後、呼び出しは自動的に再スタートされる。"
8386
8387 #. type: Plain text
8388 #: build/C/man7/signal.7:620
8389 msgid "the call fails with the error B<EINTR>."
8390 msgstr "呼び出しはエラー B<EINTR> で失敗する。"
8391
8392 #. type: Plain text
8393 #: build/C/man7/signal.7:628
8394 msgid ""
8395 "Which of these two behaviors occurs depends on the interface and whether or "
8396 "not the signal handler was established using the B<SA_RESTART> flag (see "
8397 "B<sigaction>(2)).  The details vary across UNIX systems; below, the details "
8398 "for Linux."
8399 msgstr ""
8400 "これらの二つの挙動のうちどちらが起こるかは、インターフェイスにより依存し、 シ"
8401 "グナルハンドラが B<SA_RESTART> フラグ (B<sigaction>(2)  参照) を使って設定さ"
8402 "れていたかにも依存する。 詳細は UNIX システムによって異なる。 Linux における"
8403 "詳細を以下で説明する。"
8404
8405 #.  The following system calls use ERESTARTSYS,
8406 #.  so that they are restartable
8407 #. type: Plain text
8408 #: build/C/man7/signal.7:637
8409 msgid ""
8410 "If a blocked call to one of the following interfaces is interrupted by a "
8411 "signal handler, then the call will be automatically restarted after the "
8412 "signal handler returns if the B<SA_RESTART> flag was used; otherwise the "
8413 "call will fail with the error B<EINTR>:"
8414 msgstr ""
8415 "以下のインターフェイスのいずれかの呼び出しが停止している間に シグナルハンドラ"
8416 "により割り込まれた場合、 B<SA_RESTART> フラグが使用されていれば、シグナルハン"
8417 "ドラが返った後に その呼び出しは自動的に再スタートされることになる。 それ以外"
8418 "の場合は、その呼び出しはエラー B<EINTR> で失敗することになる。"
8419
8420 #. type: Plain text
8421 #: build/C/man7/signal.7:653
8422 msgid ""
8423 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), and B<ioctl>(2)  calls "
8424 "on \"slow\" devices.  A \"slow\" device is one where the I/O call may block "
8425 "for an indefinite time, for example, a terminal, pipe, or socket.  (A disk "
8426 "is not a slow device according to this definition.)  If an I/O call on a "
8427 "slow device has already transferred some data by the time it is interrupted "
8428 "by a signal handler, then the call will return a success status (normally, "
8429 "the number of bytes transferred)."
8430 msgstr ""
8431 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), B<ioctl>(2)  の「遅い "
8432 "(slow)」デバイスに対する呼び出し。 ここでいう「遅い」デバイスとは、I/O 呼び出"
8433 "しが無期限に停止 (block) する 可能性のあるデバイスのことで、例としては端末、"
8434 "パイプ、ソケットがある (この定義では、ディスクは遅いデバイスではない)。 遅い"
8435 "デバイスに対する I/O 呼び出しが、 シグナルハンドラにより割り込まれた時点まで"
8436 "に何らかのデータを すでに転送していれば、呼び出しは成功ステータス (通常は、転"
8437 "送されたバイト数) を返すことだろう。"
8438
8439 #. type: Plain text
8440 #: build/C/man7/signal.7:657
8441 msgid ""
8442 "B<open>(2), if it can block (e.g., when opening a FIFO; see B<fifo>(7))."
8443 msgstr ""
8444 "停止 (block) する可能性のある B<open>(2)  (例えば、FIFO のオープン時; "
8445 "B<fifo>(7)  参照)。"
8446
8447 #. type: Plain text
8448 #: build/C/man7/signal.7:664
8449 msgid "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), and B<waitpid>(2)."
8450 msgstr "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), B<waitpid>(2)."
8451
8452 #.  If a timeout (setsockopt()) is in effect on the socket, then these
8453 #.  system calls switch to using EINTR.  Consequently, they and are not
8454 #.  automatically restarted, and they show the stop/cont behavior
8455 #.  described below.  (Verified from 2.6.26 source, and by experiment; mtk)
8456 #. type: Plain text
8457 #: build/C/man7/signal.7:680
8458 msgid ""
8459 "Socket interfaces: B<accept>(2), B<connect>(2), B<recv>(2), B<recvfrom>(2), "
8460 "B<recvmsg>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), unless a timeout "
8461 "has been set on the socket (see below)."
8462 msgstr ""
8463 "ソケットインターフェイス: B<accept>(2), B<connect>(2), B<recv>(2), "
8464 "B<recvfrom>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), B<sendmsg>(2).  但"
8465 "し、ソケットにタイムアウトが設定されていない場合 (下記参照)。"
8466
8467 #. type: Plain text
8468 #: build/C/man7/signal.7:686
8469 msgid "File locking interfaces: B<flock>(2)  and B<fcntl>(2)  B<F_SETLKW>."
8470 msgstr ""
8471 "ファイルロック用インターフェイス: B<flock>(2), B<fcntl>(2)  B<F_SETLKW>."
8472
8473 #. type: Plain text
8474 #: build/C/man7/signal.7:693
8475 msgid ""
8476 "POSIX message queue interfaces: B<mq_receive>(3), B<mq_timedreceive>(3), "
8477 "B<mq_send>(3), and B<mq_timedsend>(3)."
8478 msgstr ""
8479 "POSIX メッセージキューインターフェイス: B<mq_receive>(3), "
8480 "B<mq_timedreceive>(3), B<mq_send>(3), B<mq_timedsend>(3)."
8481
8482 #. type: Plain text
8483 #: build/C/man7/signal.7:698
8484 msgid ""
8485 "B<futex>(2)  B<FUTEX_WAIT> (since Linux 2.6.22; beforehand, always failed "
8486 "with B<EINTR>)."
8487 msgstr ""
8488 "B<futex>(2)  B<FUTEX_WAIT> (Linux 2.6.22 以降; それ以前は常に B<EINTR> で失敗"
8489 "していた)。"
8490
8491 #. type: Plain text
8492 #: build/C/man7/signal.7:705
8493 msgid ""
8494 "POSIX semaphore interfaces: B<sem_wait>(3)  and B<sem_timedwait>(3)  (since "
8495 "Linux 2.6.22; beforehand, always failed with B<EINTR>)."
8496 msgstr ""
8497 "POSIX セマフォインターフェイス: B<sem_wait>(3), B<sem_timedwait>(3)  (Linux "
8498 "2.6.22 以降; それ以前は常に B<EINTR> で失敗していた)。"
8499
8500 #.  These are the system calls that give EINTR or ERESTARTNOHAND
8501 #.  on interruption by a signal handler.
8502 #. type: Plain text
8503 #: build/C/man7/signal.7:716
8504 msgid ""
8505 "The following interfaces are never restarted after being interrupted by a "
8506 "signal handler, regardless of the use of B<SA_RESTART>; they always fail "
8507 "with the error B<EINTR> when interrupted by a signal handler:"
8508 msgstr ""
8509 "以下のインターフェイスは、 B<SA_RESTART> を使っているどうかに関わらず、シグナ"
8510 "ルハンドラにより割り込まれた後、 再スタートすることは決してない。 これらは、"
8511 "シグナルハンドラにより割り込まれると、常にエラー B<EINTR> で失敗する。"
8512
8513 #. type: Plain text
8514 #: build/C/man7/signal.7:736 build/C/man7/signal.7:810
8515 msgid ""
8516 "Socket interfaces, when a timeout has been set on the socket using "
8517 "B<setsockopt>(2): B<accept>(2), B<recv>(2), B<recvfrom>(2), and "
8518 "B<recvmsg>(2), if a receive timeout (B<SO_RCVTIMEO>)  has been set; "
8519 "B<connect>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), if a send "
8520 "timeout (B<SO_SNDTIMEO>)  has been set."
8521 msgstr ""
8522 "B<setsockopt>(2)  を使ってタイムアウトが設定されているソケットインターフェー"
8523 "ス: B<accept>(2), B<recv>(2), B<recvfrom>(2), B<recvmsg>(2)  で受信タイムアウ"
8524 "ト (B<SO_RCVTIMEO>)  が設定されている場合と、 B<connect>(2), B<send>(2), "
8525 "B<sendto>(2), B<sendmsg>(2)  で送信タイムアウト (B<SO_SNDTIMEO>)  が設定され"
8526 "ている場合。"
8527
8528 #. type: Plain text
8529 #: build/C/man7/signal.7:743
8530 msgid ""
8531 "Interfaces used to wait for signals: B<pause>(2), B<sigsuspend>(2), "
8532 "B<sigtimedwait>(2), and B<sigwaitinfo>(2)."
8533 msgstr ""
8534 "シグナル待ちに使われるインターフェイス: B<pause>(2), B<sigsuspend>(2), "
8535 "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8536
8537 #. type: Plain text
8538 #: build/C/man7/signal.7:752
8539 msgid ""
8540 "File descriptor multiplexing interfaces: B<epoll_wait>(2), "
8541 "B<epoll_pwait>(2), B<poll>(2), B<ppoll>(2), B<select>(2), and B<pselect>(2)."
8542 msgstr ""
8543 "ファイルディスクリプタ多重インターフェイス: B<epoll_wait>(2), "
8544 "B<epoll_pwait>(2), B<poll>(2), B<ppoll>(2), B<select>(2), B<pselect>(2)."
8545
8546 #.  On some other systems, SA_RESTART does restart these system calls
8547 #. type: Plain text
8548 #: build/C/man7/signal.7:760
8549 msgid ""
8550 "System V IPC interfaces: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), and "
8551 "B<semtimedop>(2)."
8552 msgstr ""
8553 "System V IPC インターフェイス: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), "
8554 "B<semtimedop>(2)."
8555
8556 #. type: Plain text
8557 #: build/C/man7/signal.7:766
8558 msgid ""
8559 "Sleep interfaces: B<clock_nanosleep>(2), B<nanosleep>(2), and B<usleep>(3)."
8560 msgstr ""
8561 "スリープ用のインターフェイス: B<clock_nanosleep>(2), B<nanosleep>(2), "
8562 "B<usleep>(3)."
8563
8564 #. type: Plain text
8565 #: build/C/man7/signal.7:771 build/C/man7/signal.7:824
8566 msgid "B<read>(2)  from an B<inotify>(7)  file descriptor."
8567 msgstr "B<inotify>(7)  ファイルディスクリプタからの B<read>(2)."
8568
8569 #. type: Plain text
8570 #: build/C/man7/signal.7:773
8571 msgid "B<io_getevents>(2)."
8572 msgstr "B<io_getevents>(2)."
8573
8574 #. type: Plain text
8575 #: build/C/man7/signal.7:779
8576 msgid ""
8577 "The B<sleep>(3)  function is also never restarted if interrupted by a "
8578 "handler, but gives a success return: the number of seconds remaining to "
8579 "sleep."
8580 msgstr ""
8581 "B<sleep>(3)  関数も、ハンドラにより割り込まれた場合、決して再スタートされるこ"
8582 "とはない。 しかし、成功となり、残っている停止時間を返す。"
8583
8584 #. type: SS
8585 #: build/C/man7/signal.7:779
8586 #, no-wrap
8587 msgid "Interruption of system calls and library functions by stop signals"
8588 msgstr "一時停止シグナルによるシステムコールやライブラリ関数への割り込み"
8589
8590 #. type: Plain text
8591 #: build/C/man7/signal.7:788
8592 msgid ""
8593 "On Linux, even in the absence of signal handlers, certain blocking "
8594 "interfaces can fail with the error B<EINTR> after the process is stopped by "
8595 "one of the stop signals and then resumed via B<SIGCONT>.  This behavior is "
8596 "not sanctioned by POSIX.1, and doesn't occur on other systems."
8597 msgstr ""
8598 "Linux では、シグナルハンドラが設定されていない場合でも、 いくつかのブロッキン"
8599 "グ型のインターフェイスは、 プロセスが一時停止 (stop) シグナルの一つにより停止"
8600 "され、 B<SIGCONT> により再開された後に、エラー B<EINTR> で失敗する可能性があ"
8601 "る。 この挙動は POSIX.1 で認められておらず、他のシステムでは起こらない。"
8602
8603 #. type: Plain text
8604 #: build/C/man7/signal.7:790
8605 msgid "The Linux interfaces that display this behavior are:"
8606 msgstr "この挙動を示す Linux のインターフェイスは以下の通りである。"
8607
8608 #. type: Plain text
8609 #: build/C/man7/signal.7:813
8610 msgid "B<epoll_wait>(2), B<epoll_pwait>(2)."
8611 msgstr "B<epoll_wait>(2), B<epoll_pwait>(2)."
8612
8613 #. type: Plain text
8614 #: build/C/man7/signal.7:816
8615 msgid "B<semop>(2), B<semtimedop>(2)."
8616 msgstr "B<semop>(2), B<semtimedop>(2)."
8617
8618 #. type: Plain text
8619 #: build/C/man7/signal.7:819
8620 msgid "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8621 msgstr "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8622
8623 #. type: Plain text
8624 #: build/C/man7/signal.7:830
8625 msgid ""
8626 "Linux 2.6.21 and earlier: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8627 "B<sem_wait>(3)."
8628 msgstr ""
8629 "Linux 2.6.21 以前: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8630 "B<sem_wait>(3)."
8631
8632 #. type: Plain text
8633 #: build/C/man7/signal.7:834
8634 msgid "Linux 2.6.8 and earlier: B<msgrcv>(2), B<msgsnd>(2)."
8635 msgstr "Linux 2.6.8 以前: B<msgrcv>(2), B<msgsnd>(2)."
8636
8637 #. type: Plain text
8638 #: build/C/man7/signal.7:837
8639 msgid "Linux 2.4 and earlier: B<nanosleep>(2)."
8640 msgstr "Linux 2.4 以前: B<nanosleep>(2)."
8641
8642 #.  It must be a *very* long time since this was true:
8643 #.  .SH BUGS
8644 #.  .B SIGIO
8645 #.  and
8646 #.  .B SIGLOST
8647 #.  have the same value.
8648 #.  The latter is commented out in the kernel source, but
8649 #.  the build process of some software still thinks that
8650 #.  signal 29 is
8651 #.  .BR SIGLOST .
8652 #. type: Plain text
8653 #: build/C/man7/signal.7:850
8654 msgid "POSIX.1, except as noted."
8655 msgstr "POSIX.1 (注記した内容以外)。"
8656
8657 #. type: Plain text
8658 #: build/C/man7/signal.7:884
8659 msgid ""
8660 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), "
8661 "B<restart_syscall>(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), "
8662 "B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), B<sigaltstack>(2), "
8663 "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
8664 "B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), B<bsd_signal>(3), "
8665 "B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), B<sigqueue>(3), "
8666 "B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), B<strsignal>(3), "
8667 "B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), B<sigevent>(7)"
8668 msgstr ""
8669 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), "
8670 "B<restart_syscall>(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), "
8671 "B<setrlimit>(2), B<sgetmask>(2), B<sigaction>(2), B<sigaltstack>(2), "
8672 "B<signal>(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), "
8673 "B<sigsuspend>(2), B<sigwaitinfo>(2), B<abort>(3), B<bsd_signal>(3), "
8674 "B<longjmp>(3), B<raise>(3), B<pthread_sigqueue>(3), B<sigqueue>(3), "
8675 "B<sigset>(3), B<sigsetops>(3), B<sigvec>(3), B<sigwait>(3), B<strsignal>(3), "
8676 "B<sysv_signal>(3), B<core>(5), B<proc>(5), B<pthreads>(7), B<sigevent>(7)"
8677
8678 #. type: TH
8679 #: build/C/man2/signalfd.2:20
8680 #, no-wrap
8681 msgid "SIGNALFD"
8682 msgstr "SIGNALFD"
8683
8684 #. type: TH
8685 #: build/C/man2/signalfd.2:20
8686 #, no-wrap
8687 msgid "2009-01-13"
8688 msgstr "2009-01-13"
8689
8690 #. type: Plain text
8691 #: build/C/man2/signalfd.2:23
8692 msgid "signalfd - create a file descriptor for accepting signals"
8693 msgstr "signalfd - シグナル受け付け用のファイルディスクリプタを生成する"
8694
8695 #. type: Plain text
8696 #: build/C/man2/signalfd.2:25
8697 msgid "B<#include E<lt>sys/signalfd.hE<gt>>"
8698 msgstr "B<#include E<lt>sys/signalfd.hE<gt>>"
8699
8700 #. type: Plain text
8701 #: build/C/man2/signalfd.2:27
8702 msgid ""
8703 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8704 msgstr ""
8705 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8706
8707 #. type: Plain text
8708 #: build/C/man2/signalfd.2:38
8709 msgid ""
8710 "B<signalfd>()  creates a file descriptor that can be used to accept signals "
8711 "targeted at the caller.  This provides an alternative to the use of a signal "
8712 "handler or B<sigwaitinfo>(2), and has the advantage that the file descriptor "
8713 "may be monitored by B<select>(2), B<poll>(2), and B<epoll>(7)."
8714 msgstr ""
8715 "B<signalfd>()  は、呼び出し元宛てのシグナルを受け付けるために使用されるファイ"
8716 "ル ディスクリプタを生成する。 この方法はシグナルハンドラや "
8717 "B<sigwaitinfo>(2)  を用いる方法の代わりとなるものであり、このファイルディスク"
8718 "リプタを B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点があ"
8719 "る。"
8720
8721 #. type: Plain text
8722 #: build/C/man2/signalfd.2:58
8723 msgid ""
8724 "The I<mask> argument specifies the set of signals that the caller wishes to "
8725 "accept via the file descriptor.  This argument is a signal set whose "
8726 "contents can be initialized using the macros described in B<sigsetops>(3).  "
8727 "Normally, the set of signals to be received via the file descriptor should "
8728 "be blocked using B<sigprocmask>(2), to prevent the signals being handled "
8729 "according to their default dispositions.  It is not possible to receive "
8730 "B<SIGKILL> or B<SIGSTOP> signals via a signalfd file descriptor; these "
8731 "signals are silently ignored if specified in I<mask>."
8732 msgstr ""
8733 "I<mask> 引き数には、呼び出し元がこのファイルディスクリプタ経由で受け付けたい "
8734 "シグナル集合を指定する。この引き数で指定するシグナル集合の内容は、 "
8735 "B<sigsetops>(3)  で説明されているマクロを使って初期化することができる。 通"
8736 "常、ファイルディスクリプタ経由で受信するシグナル集合は、 そのシグナルがデフォ"
8737 "ルトの配送方法に基いて処理されるのを防ぐために、 B<sigprocmask>(2)  を使って"
8738 "ブロックしておくべきである。 シグナル B<SIGKILL> と B<SIGSTOP> を signalfd "
8739 "ファイルディスクリプタ経由で受信することはできない。 これらのシグナルが "
8740 "I<mask> で指定された場合には黙って無視される。"
8741
8742 #. type: Plain text
8743 #: build/C/man2/signalfd.2:72
8744 msgid ""
8745 "If the I<fd> argument is -1, then the call creates a new file descriptor and "
8746 "associates the signal set specified in I<mask> with that descriptor.  If "
8747 "I<fd> is not -1, then it must specify a valid existing signalfd file "
8748 "descriptor, and I<mask> is used to replace the signal set associated with "
8749 "that descriptor."
8750 msgstr ""
8751 "I<fd> 引き数が -1 の場合、 B<signalfd>()  は新しいファイルディスクリプタを生"
8752 "成し、 I<mask> で指定されたシグナル集合をそのファイルディスクリプタに関連付け"
8753 "る。 I<fd> 引き数が -1 以外の場合、 I<fd> には有効な既存の signalfd ファイル"
8754 "ディスクリプタを指定しなければならず、 そのディスクリプタに関連付けられている"
8755 "シグナル集合は I<mask> を使って置き換えられる。"
8756
8757 #. type: Plain text
8758 #: build/C/man2/signalfd.2:77
8759 msgid ""
8760 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
8761 "I<flags> to change the behaviour of B<signalfd>():"
8762 msgstr ""
8763 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
8764 "ることで、 B<signalfd>()  の振舞いを変更することができる。"
8765
8766 #. type: TP
8767 #: build/C/man2/signalfd.2:77
8768 #, no-wrap
8769 msgid "B<SFD_NONBLOCK>"
8770 msgstr "B<SFD_NONBLOCK>"
8771
8772 #. type: TP
8773 #: build/C/man2/signalfd.2:85
8774 #, no-wrap
8775 msgid "B<SFD_CLOEXEC>"
8776 msgstr "B<SFD_CLOEXEC>"
8777
8778 #. type: Plain text
8779 #: build/C/man2/signalfd.2:102
8780 msgid ""
8781 "B<signalfd>()  returns a file descriptor that supports the following "
8782 "operations:"
8783 msgstr ""
8784 "B<signalfd>()  が返すファイルディスクリプタは以下の操作をサポートしている。"
8785
8786 #. type: Plain text
8787 #: build/C/man2/signalfd.2:121
8788 msgid ""
8789 "If one or more of the signals specified in I<mask> is pending for the "
8790 "process, then the buffer supplied to B<read>(2)  is used to return one or "
8791 "more I<signalfd_siginfo> structures (see below) that describe the signals.  "
8792 "The B<read>(2)  returns information for as many signals as are pending and "
8793 "will fit in the supplied buffer.  The buffer must be at least "
8794 "I<sizeof(struct signalfd_siginfo)> bytes.  The return value of the "
8795 "B<read>(2)  is the total number of bytes read."
8796 msgstr ""
8797 "I<mask> に指定されているシグナルのうち一つ以上がそのプロセスに対して 処理待"
8798 "ち (pending) であれば、それらのシグナルの情報が B<read>(2)  に渡されたバッ"
8799 "ファを使って、 I<signalfd_siginfo> 構造体に格納されて返される。 B<read>(2)  "
8800 "は、バッファに格納可能な範囲でできるだけ多くの処理待ちのシグナルに ついての情"
8801 "報を返す。 バッファは最低でも I<sizeof(struct signalfd_siginfo)> バイトの大き"
8802 "さがなければならない。 B<read>(2)  の返り値は読み出されたトータルのバイト数で"
8803 "ある。"
8804
8805 #. type: Plain text
8806 #: build/C/man2/signalfd.2:129
8807 msgid ""
8808 "As a consequence of the B<read>(2), the signals are consumed, so that they "
8809 "are no longer pending for the process (i.e., will not be caught by signal "
8810 "handlers, and cannot be accepted using B<sigwaitinfo>(2))."
8811 msgstr ""
8812 "B<read>(2)  が行われた結果、シグナルは消費され、 これらのシグナルはそのプロセ"
8813 "スに対しては処理待ちではなくなる (つまり、シグナルハンドラで捕捉されることも"
8814 "なく、 B<sigwaitinfo>(2)  を使って受け取ることもできなくなる)。"
8815
8816 #. type: Plain text
8817 #: build/C/man2/signalfd.2:140
8818 msgid ""
8819 "If none of the signals in I<mask> is pending for the process, then the "
8820 "B<read>(2)  either blocks until one of the signals in I<mask> is generated "
8821 "for the process, or fails with the error B<EAGAIN> if the file descriptor "
8822 "has been made nonblocking."
8823 msgstr ""
8824 "I<mask> に指定されているシグナルがそのプロセスに対して一つも処理待ちでなけれ"
8825 "ば、 B<read>(2)  は、 I<mask> で指定されたシグナルのうちいずれか一つがそのプ"
8826 "ロセスに対して発生するまで 停止 (block) する、もしくはファイルディスクリプタ"
8827 "が非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗する。"
8828
8829 #. type: Plain text
8830 #: build/C/man2/signalfd.2:153
8831 msgid ""
8832 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
8833 "B<poll>(2)  B<POLLIN> flag)  if one or more of the signals in I<mask> is "
8834 "pending for the process."
8835 msgstr ""
8836 "I<mask> に指定されたシグナルのうち一つ以上がそのプロセスに対して処理待ちであ"
8837 "れば、 ファイルディスクリプタは読み出し可能となる (B<select>(2)  の "
8838 "I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
8839
8840 #. type: Plain text
8841 #: build/C/man2/signalfd.2:160
8842 msgid ""
8843 "The signalfd file descriptor also supports the other file-descriptor "
8844 "multiplexing APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
8845 msgstr ""
8846 "signalfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
8847 "である B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
8848
8849 #. type: Plain text
8850 #: build/C/man2/signalfd.2:165
8851 msgid ""
8852 "When the file descriptor is no longer required it should be closed.  When "
8853 "all file descriptors associated with the same signalfd object have been "
8854 "closed, the resources for object are freed by the kernel."
8855 msgstr ""
8856 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
8857 "る。 同じ signalfd オブジェクトに関連付けられたファイルディスクリプタが全て "
8858 "クローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
8859
8860 #. type: SS
8861 #: build/C/man2/signalfd.2:165
8862 #, no-wrap
8863 msgid "The signalfd_siginfo structure"
8864 msgstr "signalfd_siginfo 構造体"
8865
8866 #. type: Plain text
8867 #: build/C/man2/signalfd.2:171
8868 msgid ""
8869 "The format of the I<signalfd_siginfo> structure(s) returned by B<read>(2)s "
8870 "from a signalfd file descriptor is as follows:"
8871 msgstr ""
8872 "signalfd ファイルディスクリプタからの B<read>(2)  で返される "
8873 "I<signalfd_siginfo> 構造体のフォーマットは以下の通りである。"
8874
8875 #.  ssi_trapno is unused on most arches
8876 #.  FIXME Since Linux 2.6.37 there is 'uint16_t ssi_addr_lsb'
8877 #.  which is not yet documented
8878 #. type: Plain text
8879 #: build/C/man2/signalfd.2:198
8880 #, no-wrap
8881 msgid ""
8882 "struct signalfd_siginfo {\n"
8883 "    uint32_t ssi_signo;   /* Signal number */\n"
8884 "    int32_t  ssi_errno;   /* Error number (unused) */\n"
8885 "    int32_t  ssi_code;    /* Signal code */\n"
8886 "    uint32_t ssi_pid;     /* PID of sender */\n"
8887 "    uint32_t ssi_uid;     /* Real UID of sender */\n"
8888 "    int32_t  ssi_fd;      /* File descriptor (SIGIO) */\n"
8889 "    uint32_t ssi_tid;     /* Kernel timer ID (POSIX timers)\n"
8890 "    uint32_t ssi_band;    /* Band event (SIGIO) */\n"
8891 "    uint32_t ssi_overrun; /* POSIX timer overrun count */\n"
8892 "    uint32_t ssi_trapno;  /* Trap number that caused signal */\n"
8893 "    int32_t  ssi_status;  /* Exit status or signal (SIGCHLD) */\n"
8894 "    int32_t  ssi_int;     /* Integer sent by sigqueue(3) */\n"
8895 "    uint64_t ssi_ptr;     /* Pointer sent by sigqueue(3) */\n"
8896 "    uint64_t ssi_utime;   /* User CPU time consumed (SIGCHLD) */\n"
8897 "    uint64_t ssi_stime;   /* System CPU time consumed (SIGCHLD) */\n"
8898 "    uint64_t ssi_addr;    /* Address that generated signal\n"
8899 "                             (for hardware-generated signals) */\n"
8900 "    uint8_t  pad[I<X>];      /* Pad size to 128 bytes (allow for\n"
8901 "                              additional fields in the future) */\n"
8902 "};\n"
8903 msgstr ""
8904 "struct signalfd_siginfo {\n"
8905 "struct signalfd_siginfo {\n"
8906 "    uint32_t ssi_signo;   /* シグナル番号 */\n"
8907 "    int32_t  ssi_errno;   /* エラー番号 (未使用) */\n"
8908 "    int32_t  ssi_code;    /* シグナルコード */\n"
8909 "    uint32_t ssi_pid;     /* 送信元の PID */\n"
8910 "    uint32_t ssi_uid;     /* 送信元の実 UID */\n"
8911 "    int32_t  ssi_fd;      /* ファイルディスクリプタ (SIGIO) */\n"
8912 "    uint32_t ssi_tid;     /* カーネルタイマ ID (POSIX タイマ)\n"
8913 "    uint32_t ssi_band;    /* Band イベント (SIGIO) */\n"
8914 "    uint32_t ssi_overrun; /* POSIX タイマのオーバーラン回数 */\n"
8915 "    uint32_t ssi_trapno;  /* シグナルの原因となったトラップ番号 */\n"
8916 "    int32_t  ssi_status;  /* 終了ステータスかシグナル (SIGCHLD) */\n"
8917 "    int32_t  ssi_int;     /* sigqueue(3) から送られた整数 */\n"
8918 "    uint64_t ssi_ptr;     /* sigqueue(3) から送られたポインタ */\n"
8919 "    uint64_t ssi_utime;   /* 消費したユーザ CPU 時間 (SIGCHLD) */\n"
8920 "    uint64_t ssi_stime;   /* 消費したシステム CPU 時間 (SIGCHLD) */\n"
8921 "    uint64_t ssi_addr;    /* シグナルを生成したアドレス\n"
8922 "                             (ハードウェアが生成したシグナルの場合) */\n"
8923 "    uint8_t  pad[I<X>];      /* pad の大きさは 128 バイト\n"
8924 "                             (将来のフィールド追加用の場所の確保) */\n"
8925 "};\n"
8926
8927 #. type: Plain text
8928 #: build/C/man2/signalfd.2:221
8929 msgid ""
8930 "Each of the fields in this structure is analogous to the similarly named "
8931 "field in the I<siginfo_t> structure.  The I<siginfo_t> structure is "
8932 "described in B<sigaction>(2).  Not all fields in the returned "
8933 "I<signalfd_siginfo> structure will be valid for a specific signal; the set "
8934 "of valid fields can be determined from the value returned in the I<ssi_code> "
8935 "field.  This field is the analog of the I<siginfo_t> I<si_code> field; see "
8936 "B<sigaction>(2)  for details."
8937 msgstr ""
8938 "I<signalfd_siginfo> 構造体の各フィールドは、 I<siginfo_t> 構造体の同じような"
8939 "名前のフィールドと同様である。 I<siginfo_t> 構造体については "
8940 "B<sigaction>(2)  に説明がある。 返された I<signalfd_siginfo> 構造体の全ての"
8941 "フィールドがあるシグナルに対して有効なわけではない。 どのフィールドが有効か"
8942 "は、 I<ssi_code> フィールドで返される値から判定することができる。 このフィー"
8943 "ルドは I<siginfo_t> の I<si_code> フィールドと同様である。詳細は "
8944 "B<sigaction>(2)  を参照。"
8945
8946 #. type: SS
8947 #: build/C/man2/signalfd.2:221 build/C/man2/timerfd_create.2:269
8948 #, no-wrap
8949 msgid "fork(2) semantics"
8950 msgstr "fork(2) での扱い"
8951
8952 #. type: Plain text
8953 #: build/C/man2/signalfd.2:229
8954 msgid ""
8955 "After a B<fork>(2), the child inherits a copy of the signalfd file "
8956 "descriptor.  A B<read>(2)  from the file descriptor in the child will return "
8957 "information about signals queued to the child."
8958 msgstr ""
8959 "B<fork>(2)  が行われると、子プロセスは signalfd ファイルディスクリプタのコ"
8960 "ピーを 継承する。 子プロセスでこのファイルディスクリプタから B<read>(2)  を行"
8961 "うと、子プロセスに対するキューに入っているシグナルに関する 情報が返される。"
8962
8963 #. type: SS
8964 #: build/C/man2/signalfd.2:229 build/C/man2/timerfd_create.2:281
8965 #, no-wrap
8966 msgid "execve(2) semantics"
8967 msgstr "execve(2) での扱い"
8968
8969 #. type: Plain text
8970 #: build/C/man2/signalfd.2:241
8971 msgid ""
8972 "Just like any other file descriptor, a signalfd file descriptor remains open "
8973 "across an B<execve>(2), unless it has been marked for close-on-exec (see "
8974 "B<fcntl>(2)).  Any signals that were available for reading before the "
8975 "B<execve>(2)  remain available to the newly loaded program.  (This is "
8976 "analogous to traditional signal semantics, where a blocked signal that is "
8977 "pending remains pending across an B<execve>(2).)"
8978 msgstr ""
8979 "他のファイルディスクリプタと全く同様に、 signalfd ファイルディスクリプタも "
8980 "B<execve>(2)  の前後でオープンされたままとなる。但し、そのファイルディスクリ"
8981 "プタに close-on-exec のマーク (B<fcntl>(2)  参照) が付いている場合はクローズ"
8982 "される。 B<execve>(2)  の前に読み出し可能となっていた全てのシグナルは新しく起"
8983 "動されたプログラム でも引き続き読み出し可能である (これは伝統的なシグナルの扱"
8984 "いと同じであり、 処理待ちのブロックされたシグナルは B<execve>(2)  の前後で処"
8985 "理待ちのままとなる)。"
8986
8987 #. type: SS
8988 #: build/C/man2/signalfd.2:241
8989 #, no-wrap
8990 msgid "Thread semantics"
8991 msgstr "スレッドでの扱い"
8992
8993 #. type: Plain text
8994 #: build/C/man2/signalfd.2:251
8995 msgid ""
8996 "The semantics of signalfd file descriptors in a multithreaded program mirror "
8997 "the standard semantics for signals.  In other words, when a thread reads "
8998 "from a signalfd file descriptor, it will read the signals that are directed "
8999 "to the thread itself and the signals that are directed to the process (i.e., "
9000 "the entire thread group).  (A thread will not be able to read signals that "
9001 "are directed to other threads in the process.)"
9002 msgstr ""
9003 "マルチスレッドプログラムにおける signalfd ファイルディスクリプタの扱いは シグ"
9004 "ナルの標準的な扱いと全く同じである。 言い換えると、あるスレッドが signalfd "
9005 "ファイルディスクリプタから 読み出しを行うと、そのスレッド自身宛てのシグナルと"
9006 "プロセス (すなわち スレッドグループ全体) 宛てのシグナルが読み出される。 (ス"
9007 "レッドは同じプロセスの他のスレッド宛てのシグナルを読み出すことはできない。)"
9008
9009 #. type: Plain text
9010 #: build/C/man2/signalfd.2:265
9011 msgid ""
9012 "On success, B<signalfd>()  returns a signalfd file descriptor; this is "
9013 "either a new file descriptor (if I<fd> was -1), or I<fd> if I<fd> was a "
9014 "valid signalfd file descriptor.  On error, -1 is returned and I<errno> is "
9015 "set to indicate the error."
9016 msgstr ""
9017 "成功すると、 B<signalfd>()  は signalfd ファイルディスクリプタを返す。 返され"
9018 "るファイルディスクリプタは、 I<fd> が -1 の場合は新規のファイルディスクリプタ"
9019 "であり、 I<fd> が有効な signalfd ファイルディスクリプタだった場合は I<fd> 自"
9020 "身である。 エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
9021
9022 #. type: Plain text
9023 #: build/C/man2/signalfd.2:271
9024 msgid "The I<fd> file descriptor is not a valid file descriptor."
9025 msgstr "ファイルディスクリプタ I<fd> が有効なファイルディスクリプタでない。"
9026
9027 #.  or, the
9028 #.  .I sizemask
9029 #.  argument is not equal to
9030 #.  .IR sizeof(sigset_t) ;
9031 #. type: Plain text
9032 #: build/C/man2/signalfd.2:279
9033 msgid "I<fd> is not a valid signalfd file descriptor."
9034 msgstr "I<fd> が有効な signalfd ファイルディスクリプタではない。"
9035
9036 #. type: Plain text
9037 #: build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:320
9038 msgid ""
9039 "I<flags> is invalid; or, in Linux 2.6.26 or earlier, I<flags> is nonzero."
9040 msgstr ""
9041 "I<flags> が無効である。もしくは、Linux 2.6.26 以前の場合には I<flags> が 0 以"
9042 "外である。"
9043
9044 #. type: Plain text
9045 #: build/C/man2/signalfd.2:289 build/C/man2/timerfd_create.2:323
9046 msgid "The per-process limit of open file descriptors has been reached."
9047 msgstr ""
9048 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
9049
9050 #. type: Plain text
9051 #: build/C/man2/signalfd.2:299
9052 msgid "There was insufficient memory to create a new signalfd file descriptor."
9053 msgstr ""
9054 "新しい signalfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
9055
9056 #.  signalfd() is in glibc 2.7, but reportedly does not build
9057 #. type: Plain text
9058 #: build/C/man2/signalfd.2:307
9059 msgid ""
9060 "B<signalfd>()  is available on Linux since kernel 2.6.22.  Working support "
9061 "is provided in glibc since version 2.8.  The B<signalfd4>()  system call "
9062 "(see NOTES) is available on Linux since kernel 2.6.27."
9063 msgstr ""
9064 "B<signalfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
9065 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<signalfd4>()  "
9066 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
9067 "る。"
9068
9069 #. type: Plain text
9070 #: build/C/man2/signalfd.2:312
9071 msgid "B<signalfd>()  and B<signalfd4>()  are Linux-specific."
9072 msgstr "B<signalfd>()  と B<signalfd4>()  は Linux 固有である。"
9073
9074 #. type: Plain text
9075 #: build/C/man2/signalfd.2:322
9076 msgid ""
9077 "The underlying Linux system call requires an additional argument, I<size_t "
9078 "sizemask>, which specifies the size of the I<mask> argument.  The glibc "
9079 "B<signalfd>()  wrapper function does not include this argument, since it "
9080 "provides the required value for the underlying system call."
9081 msgstr ""
9082 "実際の Linux のシステムコールでは I<size_t sizemask> という引き数が追加で必要"
9083 "である。この引き数で I<mask> のサイズを指定する。 glibc の B<signalfd>()  "
9084 "ラッパー関数にはこの引き数は含まれず、 ラッパー関数が必要な値を計算して内部で"
9085 "呼び出すシステムコールに提供する。"
9086
9087 #. type: Plain text
9088 #: build/C/man2/signalfd.2:336
9089 msgid ""
9090 "A process can create multiple signalfd file descriptors.  This makes it "
9091 "possible to accept different signals on different file descriptors.  (This "
9092 "may be useful if monitoring the file descriptors using B<select>(2), "
9093 "B<poll>(2), or B<epoll>(7): the arrival of different signals will make "
9094 "different descriptors ready.)  If a signal appears in the I<mask> of more "
9095 "than one of the file descriptors, then occurrences of that signal can be "
9096 "read (once) from any one of the descriptors."
9097 msgstr ""
9098 "一つのプロセスは複数の signalfd ファイルディスクリプタを生成することができ"
9099 "る。 これにより、異なるファイルディスクリプタで異なるシグナルを受け取ること"
9100 "が できる (この機能は B<select>(2), B<poll>(2), B<epoll>(7)  を使ってファイル"
9101 "ディスクリプタを監視する場合に有用かもしれない。 異なるシグナルが到着すると、"
9102 "異なるファイルディスクリプタが利用可能に なるからだ)。 一つのシグナルが二つ以"
9103 "上のファイルディスクリプタの I<mask> に含まれている場合、そのシグナルの発生は"
9104 "そのシグナルを I<mask> に含むファイルディスクリプタのうちいずれか一つから読み"
9105 "出すことができる。"
9106
9107 #. type: Plain text
9108 #: build/C/man2/signalfd.2:352
9109 msgid ""
9110 "There are two underlying Linux system calls: B<signalfd>()  and the more "
9111 "recent B<signalfd4>().  The former system call does not implement a I<flags> "
9112 "argument.  The latter system call implements the I<flags> values described "
9113 "above.  Starting with glibc 2.9, the B<signalfd>()  wrapper function will "
9114 "use B<signalfd4>()  where it is available."
9115 msgstr ""
9116 "下層にある Linux システムコールは二種類あり、 B<signalfd>()  と、もっと新し"
9117 "い B<signalfd4>()  である。 B<signalfd>()  は I<flags> 引き数を実装していな"
9118 "い。 B<signalfd4>()  では上記の値の I<flags> が実装されている。 glibc 2.9 以"
9119 "降では、 B<signalfd>()  のラッパー関数は、 B<signalfd4>()  が利用可能であれ"
9120 "ば、これを使用する。"
9121
9122 #.  The fix also was put into 2.6.24.5
9123 #. type: Plain text
9124 #: build/C/man2/signalfd.2:360
9125 msgid ""
9126 "In kernels before 2.6.25, the I<ssi_ptr> and I<ssi_int> fields are not "
9127 "filled in with the data accompanying a signal sent by B<sigqueue>(3)."
9128 msgstr ""
9129 "カーネル 2.6.25 より前では、 B<sigqueue>(3)  により送信されたシグナルと一緒に"
9130 "渡されるデータでは、フィールド I<ssi_ptr> と I<ssi_int> は設定されない。"
9131
9132 #. type: Plain text
9133 #: build/C/man2/signalfd.2:370
9134 msgid ""
9135 "The program below accepts the signals B<SIGINT> and B<SIGQUIT> via a "
9136 "signalfd file descriptor.  The program terminates after accepting a "
9137 "B<SIGQUIT> signal.  The following shell session demonstrates the use of the "
9138 "program:"
9139 msgstr ""
9140 "下記のプログラムは、シグナル B<SIGINT> と B<SIGQUIT> を signalfd ファイルディ"
9141 "スクリプタ経由で受信する。 シグナル B<SIGQUIT> 受信後にプログラムは終了す"
9142 "る。 以下に示すシェルセッションにこのプログラムの使い方を示す。"
9143
9144 #. type: Plain text
9145 #: build/C/man2/signalfd.2:381
9146 #, no-wrap
9147 msgid ""
9148 "$B< ./signalfd_demo>\n"
9149 "B<^C>                   # Control-C generates SIGINT\n"
9150 "Got SIGINT\n"
9151 "B<^C>\n"
9152 "Got SIGINT\n"
9153 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
9154 "Got SIGQUIT\n"
9155 "$\n"
9156 msgstr ""
9157 "$B< ./signalfd_demo>\n"
9158 "B<^C>                   # Control-C generates SIGINT\n"
9159 "Got SIGINT\n"
9160 "B<^C>\n"
9161 "Got SIGINT\n"
9162 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
9163 "Got SIGQUIT\n"
9164 "$\n"
9165
9166 #. type: Plain text
9167 #: build/C/man2/signalfd.2:391
9168 #, no-wrap
9169 msgid ""
9170 "#include E<lt>sys/signalfd.hE<gt>\n"
9171 "#include E<lt>signal.hE<gt>\n"
9172 "#include E<lt>unistd.hE<gt>\n"
9173 "#include E<lt>stdlib.hE<gt>\n"
9174 "#include E<lt>stdio.hE<gt>\n"
9175 msgstr ""
9176 "#include E<lt>sys/signalfd.hE<gt>\n"
9177 "#include E<lt>signal.hE<gt>\n"
9178 "#include E<lt>unistd.hE<gt>\n"
9179 "#include E<lt>stdlib.hE<gt>\n"
9180 "#include E<lt>stdio.hE<gt>\n"
9181
9182 #. type: Plain text
9183 #: build/C/man2/signalfd.2:402
9184 #, no-wrap
9185 msgid ""
9186 "int\n"
9187 "main(int argc, char *argv[])\n"
9188 "{\n"
9189 "    sigset_t mask;\n"
9190 "    int sfd;\n"
9191 "    struct signalfd_siginfo fdsi;\n"
9192 "    ssize_t s;\n"
9193 msgstr ""
9194 "int\n"
9195 "main(int argc, char *argv[])\n"
9196 "{\n"
9197 "    sigset_t mask;\n"
9198 "    int sfd;\n"
9199 "    struct signalfd_siginfo fdsi;\n"
9200 "    ssize_t s;\n"
9201
9202 #. type: Plain text
9203 #: build/C/man2/signalfd.2:406
9204 #, no-wrap
9205 msgid ""
9206 "    sigemptyset(&mask);\n"
9207 "    sigaddset(&mask, SIGINT);\n"
9208 "    sigaddset(&mask, SIGQUIT);\n"
9209 msgstr ""
9210 "    sigemptyset(&mask);\n"
9211 "    sigaddset(&mask, SIGINT);\n"
9212 "    sigaddset(&mask, SIGQUIT);\n"
9213
9214 #. type: Plain text
9215 #: build/C/man2/signalfd.2:409
9216 #, no-wrap
9217 msgid ""
9218 "    /* Block signals so that they aren\\(aqt handled\n"
9219 "       according to their default dispositions */\n"
9220 msgstr ""
9221 "    /* Block signals so that they aren\\(aqt handled\n"
9222 "       according to their default dispositions */\n"
9223
9224 #. type: Plain text
9225 #: build/C/man2/signalfd.2:412
9226 #, no-wrap
9227 msgid ""
9228 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
9229 "        handle_error(\"sigprocmask\");\n"
9230 msgstr ""
9231 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
9232 "        handle_error(\"sigprocmask\");\n"
9233
9234 #. type: Plain text
9235 #: build/C/man2/signalfd.2:416
9236 #, no-wrap
9237 msgid ""
9238 "    sfd = signalfd(-1, &mask, 0);\n"
9239 "    if (sfd == -1)\n"
9240 "        handle_error(\"signalfd\");\n"
9241 msgstr ""
9242 "    sfd = signalfd(-1, &mask, 0);\n"
9243 "    if (sfd == -1)\n"
9244 "        handle_error(\"signalfd\");\n"
9245
9246 #. type: Plain text
9247 #: build/C/man2/signalfd.2:421
9248 #, no-wrap
9249 msgid ""
9250 "    for (;;) {\n"
9251 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
9252 "        if (s != sizeof(struct signalfd_siginfo))\n"
9253 "            handle_error(\"read\");\n"
9254 msgstr ""
9255 "    for (;;) {\n"
9256 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
9257 "        if (s != sizeof(struct signalfd_siginfo))\n"
9258 "            handle_error(\"read\");\n"
9259
9260 #. type: Plain text
9261 #: build/C/man2/signalfd.2:432
9262 #, no-wrap
9263 msgid ""
9264 "        if (fdsi.ssi_signo == SIGINT) {\n"
9265 "            printf(\"Got SIGINT\\en\");\n"
9266 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
9267 "            printf(\"Got SIGQUIT\\en\");\n"
9268 "            exit(EXIT_SUCCESS);\n"
9269 "        } else {\n"
9270 "            printf(\"Read unexpected signal\\en\");\n"
9271 "        }\n"
9272 "    }\n"
9273 "}\n"
9274 msgstr ""
9275 "        if (fdsi.ssi_signo == SIGINT) {\n"
9276 "            printf(\"Got SIGINT\\en\");\n"
9277 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
9278 "            printf(\"Got SIGQUIT\\en\");\n"
9279 "            exit(EXIT_SUCCESS);\n"
9280 "        } else {\n"
9281 "            printf(\"Read unexpected signal\\en\");\n"
9282 "        }\n"
9283 "    }\n"
9284 "}\n"
9285
9286 #. type: Plain text
9287 #: build/C/man2/signalfd.2:446
9288 msgid ""
9289 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
9290 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
9291 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
9292 msgstr ""
9293 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
9294 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
9295 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
9296
9297 #. type: TH
9298 #: build/C/man3/sigpause.3:25
9299 #, no-wrap
9300 msgid "SIGPAUSE"
9301 msgstr "SIGPAUSE"
9302
9303 #. type: TH
9304 #: build/C/man3/sigpause.3:25
9305 #, no-wrap
9306 msgid "2014-01-07"
9307 msgstr "2014-01-07"
9308
9309 #. type: Plain text
9310 #: build/C/man3/sigpause.3:28
9311 msgid "sigpause - atomically release blocked signals and wait for interrupt"
9312 msgstr "sigpause - ブロックされたシグナルをアトミックに解放して割り込みを待つ"
9313
9314 #. type: Plain text
9315 #: build/C/man3/sigpause.3:33
9316 #, no-wrap
9317 msgid "B<int sigpause(int >I<sigmask>B<);  /* BSD (but see NOTES) */>\n"
9318 msgstr "B<int sigpause(int >I<sigmask>B<);  /* BSD (ただし「備考」を参照) */>\n"
9319
9320 #. type: Plain text
9321 #: build/C/man3/sigpause.3:35
9322 #, no-wrap
9323 msgid "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
9324 msgstr "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
9325
9326 #. type: Plain text
9327 #: build/C/man3/sigpause.3:41
9328 msgid "Don't use this function.  Use B<sigsuspend>(2)  instead."
9329 msgstr "この関数を使わないこと。 代わりに B<sigsuspend>(2)  を使うこと。"
9330
9331 #. type: Plain text
9332 #: build/C/man3/sigpause.3:48
9333 msgid ""
9334 "The function B<sigpause>()  is designed to wait for some signal.  It changes "
9335 "the process's signal mask (set of blocked signals), and then waits for a "
9336 "signal to arrive.  Upon arrival of a signal, the original signal mask is "
9337 "restored."
9338 msgstr ""
9339 "関数 B<sigpause>()  はシグナルを待つように設計されている。 この関数はプロセス"
9340 "のシグナルマスク (ブロックされたシグナルのセット) を変更し、 シグナルが到着す"
9341 "るのを待つ。 シグナルが到着すると、シグナルマスクは元に戻される。"
9342
9343 #. type: Plain text
9344 #: build/C/man3/sigpause.3:56
9345 msgid ""
9346 "If B<sigpause>()  returns, it was interrupted by a signal and the return "
9347 "value is -1 with I<errno> set to B<EINTR>."
9348 msgstr ""
9349 "B<sigpause>()  が返った場合、この関数はシグナルによって割り込まれている。 返"
9350 "り値は -1 で、 I<errno> は B<EINTR> に設定される。"
9351
9352 #. type: Plain text
9353 #: build/C/man3/sigpause.3:61
9354 msgid "The B<sigpause>()  function is thread-safe."
9355 msgstr "B<sigpause>() 関数はスレッドセーフである。"
9356
9357 #. type: Plain text
9358 #: build/C/man3/sigpause.3:65
9359 msgid "The System V version of B<sigpause>()  is standardized in POSIX.1-2001."
9360 msgstr "System V 版の B<sigpause>()  は POSIX.1-2001 で標準化されている。"
9361
9362 #.  __xpg_sigpause: UNIX 95, spec 1170, SVID, SVr4, XPG
9363 #. type: Plain text
9364 #: build/C/man3/sigpause.3:82
9365 msgid ""
9366 "The classical BSD version of this function appeared in 4.2BSD.  It sets the "
9367 "process's signal mask to I<sigmask>.  UNIX 95 standardized the incompatible "
9368 "System V version of this function, which removes only the specified signal "
9369 "I<sig> from the process's signal mask.  The unfortunate situation with two "
9370 "incompatible functions with the same name was solved by the B<\\"
9371 "%sigsuspend>(2)  function, that takes a I<sigset_t\\ *> argument (instead of "
9372 "an I<int>)."
9373 msgstr ""
9374 "この関数の古典的な BSD 版は 4.2BSD で登場した。 この関数はプロセスのシグナル"
9375 "マスクを I<sigmask> に設定する。 UNIX 95 では BSD 版と互換性のない System V "
9376 "版のこの関数が標準化された。 UNIX 95 版は、指定されたシグナル I<sig> をプロセ"
9377 "スのシグナルマスクから削除するだけである。 同じ名前で互換性のない 2 つの関数"
9378 "があるという不幸な事態は、 B<\\%sigsuspend>(2)  関数によって解消された。 この"
9379 "関数は (I<int> の代わりに)  B<sigset_t\\ *> 引き数をとる。"
9380
9381 #. type: Plain text
9382 #: build/C/man3/sigpause.3:85
9383 msgid ""
9384 "On Linux, this routine is a system call only on the Sparc (sparc64)  "
9385 "architecture."
9386 msgstr ""
9387 "Linux では、このルーチンは Sparc (sparc64) アーキテクチャでのみ システムコー"
9388 "ルとなっている。"
9389
9390 #. type: Plain text
9391 #: build/C/man3/sigpause.3:87
9392 msgid "Libc4 and libc5 know only about the BSD version."
9393 msgstr "libc4 と libc5 には BSD 版しかない。"
9394
9395 #.  For the BSD version, one usually uses a zero
9396 #.  .I sigmask
9397 #.  to indicate that no signals are to be blocked.
9398 #. type: Plain text
9399 #: build/C/man3/sigpause.3:111
9400 msgid ""
9401 "Glibc uses the BSD version if the B<_BSD_SOURCE> feature test macro is "
9402 "defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
9403 "B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined.  Otherwise, the System V "
9404 "version is used (and B<_XOPEN_SOURCE> must be defined to obtain the "
9405 "declaration).  Since glibc 2.19, only the System V version is exposed by "
9406 "I<E<lt>signal.hE<gt>>; applications that formerly used the BSD "
9407 "B<sigpause>()  should be amended to use B<sigsuspend>(2)."
9408 msgstr ""
9409 "機能検査マクロ B<_BSD_SOURCE> が定義され、 B<_POSIX_SOURCE>, "
9410 "B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, B<_GNU_SOURCE>, B<_SVID_SOURCE> のいず"
9411 "れも定義されていない場合、 glibc は BSD 版を使う。 それ以外の場合には、"
9412 "System V 版を使用する (宣言を得るためには B<_XOPEN_SOURCE> が定義されていなけ"
9413 "ればならない)。 glibc 2.19 以降では、 I<E<lt>signal.hE<gt>> では System V 版"
9414 "だけが公開される。 BSD 版の B<sigpause>() を使用していたアプリケーションは "
9415 "B<sigsuspend>(2) を使用するように修正すべきである。"
9416
9417 #. type: Plain text
9418 #: build/C/man3/sigpause.3:119
9419 msgid ""
9420 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
9421 "B<sigblock>(3), B<sigvec>(3), B<feature_test_macros>(7)"
9422 msgstr ""
9423 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
9424 "B<sigblock>(3), B<sigvec>(3), B<feature_test_macros>(7)"
9425
9426 #. type: TH
9427 #: build/C/man2/sigpending.2:29
9428 #, no-wrap
9429 msgid "SIGPENDING"
9430 msgstr "SIGPENDING"
9431
9432 #. type: TH
9433 #: build/C/man2/sigpending.2:29
9434 #, no-wrap
9435 msgid "2013-12-11"
9436 msgstr "2013-12-11"
9437
9438 #. type: Plain text
9439 #: build/C/man2/sigpending.2:32
9440 msgid "sigpending - examine pending signals"
9441 msgstr "sigpending - 処理待ちのシグナルの検査"
9442
9443 #. type: Plain text
9444 #: build/C/man2/sigpending.2:36
9445 msgid "B<int sigpending(sigset_t *>I<set>B<);>"
9446 msgstr "B<int sigpending(sigset_t *>I<set>B<);>"
9447
9448 #. type: Plain text
9449 #: build/C/man2/sigpending.2:45
9450 msgid ""
9451 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9452 "_POSIX_SOURCE"
9453 msgstr ""
9454 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9455 "_POSIX_SOURCE"
9456
9457 #. type: Plain text
9458 #: build/C/man2/sigpending.2:53
9459 msgid ""
9460 "B<sigpending>()  returns the set of signals that are pending for delivery to "
9461 "the calling thread (i.e., the signals which have been raised while "
9462 "blocked).  The mask of pending signals is returned in I<set>."
9463 msgstr ""
9464 "B<sigpending>()  は、呼び出し元のスレッドへの配送を待っている (pending) シグ"
9465 "ナル集合 (すなわち、禁止中に発生したシグナル) を返す。 処理待ちのシグナルのマ"
9466 "スクが I<set> に格納される。"
9467
9468 #. type: Plain text
9469 #: build/C/man2/sigpending.2:59
9470 msgid ""
9471 "B<sigpending>()  returns 0 on success and -1 on error.  In the event of an "
9472 "error, I<errno> is set to indicate the cause."
9473 msgstr ""
9474 "B<sigpending>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、I<errno> "
9475 "にエラーの原因を示す値を設定する。"
9476
9477 #. type: Plain text
9478 #: build/C/man2/sigpending.2:64
9479 msgid ""
9480 "I<set> points to memory which is not a valid part of the process address "
9481 "space."
9482 msgstr ""
9483 "I<set> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
9484
9485 #. type: Plain text
9486 #: build/C/man2/sigpending.2:74
9487 msgid ""
9488 "If a signal is both blocked and has a disposition of \"ignored\", it is "
9489 "I<not> added to the mask of pending signals when generated."
9490 msgstr ""
9491 "シグナルが禁止 (ブロック) されており、かつ配送方法が \"ignored\" (無視) に"
9492 "なっている場合、そのシグナルが発生した場合に処理待ちシグナルのマスクにそのシ"
9493 "グナルは追加I<されない>。"
9494
9495 #. type: Plain text
9496 #: build/C/man2/sigpending.2:79
9497 msgid ""
9498 "The set of signals that is pending for a thread is the union of the set of "
9499 "signals that is pending for that thread and the set of signals that is "
9500 "pending for the process as a whole; see B<signal>(7)."
9501 msgstr ""
9502 "あるスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体への処理待ち"
9503 "のシグナル集合と、プロセス全体への処理待ちの シグナル集合をあわせたものであ"
9504 "る。 B<signal>(7)  参照。"
9505
9506 #. type: Plain text
9507 #: build/C/man2/sigpending.2:91
9508 msgid ""
9509 "In versions of glibc up to and including 2.2.1, there is a bug in the "
9510 "wrapper function for B<sigpending>()  which means that information about "
9511 "pending real-time signals is not correctly returned."
9512 msgstr ""
9513 "バージョン 2.2.1 以前の glibc では、 B<sigpending>()  のラッパー関数に、処理"
9514 "待ちのリアルタイムシグナルに関する情報が 正しく返されないというバグがある。"
9515
9516 #. type: Plain text
9517 #: build/C/man2/sigpending.2:99
9518 msgid ""
9519 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9520 "B<sigsuspend>(2), B<sigsetops>(3), B<signal>(7)"
9521 msgstr ""
9522 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
9523 "B<sigsuspend>(2), B<sigsetops>(3), B<signal>(7)"
9524
9525 #. type: TH
9526 #: build/C/man2/sigprocmask.2:29
9527 #, no-wrap
9528 msgid "SIGPROCMASK"
9529 msgstr "SIGPROCMASK"
9530
9531 #. type: Plain text
9532 #: build/C/man2/sigprocmask.2:32
9533 msgid "sigprocmask - examine and change blocked signals"
9534 msgstr "sigprocmask - 禁止するシグナルの確認と変更"
9535
9536 #. type: Plain text
9537 #: build/C/man2/sigprocmask.2:37
9538 msgid ""
9539 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9540 "*>I<oldset>B<);>"
9541 msgstr ""
9542 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9543 "*>I<oldset>B<);>"
9544
9545 #. type: Plain text
9546 #: build/C/man2/sigprocmask.2:46
9547 msgid ""
9548 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9549 "_POSIX_SOURCE"
9550 msgstr ""
9551 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9552 "_POSIX_SOURCE"
9553
9554 #. type: Plain text
9555 #: build/C/man2/sigprocmask.2:55
9556 msgid ""
9557 "B<sigprocmask>()  is used to fetch and/or change the signal mask of the "
9558 "calling thread.  The signal mask is the set of signals whose delivery is "
9559 "currently blocked for the caller (see also B<signal>(7)  for more details)."
9560 msgstr ""
9561 "B<sigprocmask>()  を使うと、呼び出したスレッドのシグナルマスクの取得/変更がで"
9562 "きる。 シグナルマスクは、呼び出し元に対して現在配送が禁止されているシグナル"
9563 "の 集合のことである (詳細については B<signal>(7)  も参照のこと)。"
9564
9565 #. type: Plain text
9566 #: build/C/man2/sigprocmask.2:59
9567 msgid ""
9568 "The behavior of the call is dependent on the value of I<how>, as follows."
9569 msgstr "このコールの動作は I<how> の値によって決まる:"
9570
9571 #. type: TP
9572 #: build/C/man2/sigprocmask.2:59
9573 #, no-wrap
9574 msgid "B<SIG_BLOCK>"
9575 msgstr "B<SIG_BLOCK>"
9576
9577 #. type: Plain text
9578 #: build/C/man2/sigprocmask.2:64
9579 msgid ""
9580 "The set of blocked signals is the union of the current set and the I<set> "
9581 "argument."
9582 msgstr ""
9583 "禁止されたシグナルの集合は現在の値と I<set> 引き数を結合したものとなる。"
9584
9585 #. type: TP
9586 #: build/C/man2/sigprocmask.2:64
9587 #, no-wrap
9588 msgid "B<SIG_UNBLOCK>"
9589 msgstr "B<SIG_UNBLOCK>"
9590
9591 #. type: Plain text
9592 #: build/C/man2/sigprocmask.2:70
9593 msgid ""
9594 "The signals in I<set> are removed from the current set of blocked signals.  "
9595 "It is permissible to attempt to unblock a signal which is not blocked."
9596 msgstr ""
9597 "現在禁止されているシグナルの集合から I<set> にあるシグナルを取り除く。禁止さ"
9598 "れていないシグナルを取り除こうと することも認められている。"
9599
9600 #. type: TP
9601 #: build/C/man2/sigprocmask.2:70
9602 #, no-wrap
9603 msgid "B<SIG_SETMASK>"
9604 msgstr "B<SIG_SETMASK>"
9605
9606 #. type: Plain text
9607 #: build/C/man2/sigprocmask.2:74
9608 msgid "The set of blocked signals is set to the argument I<set>."
9609 msgstr "禁止されているシグナルの集合に I<set> 引き数を設定する。"
9610
9611 #. type: Plain text
9612 #: build/C/man2/sigprocmask.2:79
9613 msgid ""
9614 "If I<oldset> is non-NULL, the previous value of the signal mask is stored in "
9615 "I<oldset>."
9616 msgstr ""
9617 "I<oldset> が NULL でなければ、シグナルマスクの今までの値を I<oldset> に格納す"
9618 "る。"
9619
9620 #. type: Plain text
9621 #: build/C/man2/sigprocmask.2:88
9622 msgid ""
9623 "If I<set> is NULL, then the signal mask is unchanged (i.e., I<how> is "
9624 "ignored), but the current value of the signal mask is nevertheless returned "
9625 "in I<oldset> (if it is not NULL)."
9626 msgstr ""
9627 "I<set> が NULL であれば、シグナルマスクは変更されない (すなわち、 I<how> は無"
9628 "視される)。 I<set> の値にかかわらず、現在のシグナルマスクの値は I<oldset> に"
9629 "入れて返される (但し、 I<oldset> が NULL でない場合)。"
9630
9631 #. type: Plain text
9632 #: build/C/man2/sigprocmask.2:93
9633 msgid ""
9634 "The use of B<sigprocmask>()  is unspecified in a multithreaded process; see "
9635 "B<pthread_sigmask>(3)."
9636 msgstr ""
9637 "マルチスレッドのプロセスで B<sigprocmask>()  を使用した場合の動作は規定されて"
9638 "いない。 B<pthread_sigmask>(3)  を参照のこと。"
9639
9640 #. type: Plain text
9641 #: build/C/man2/sigprocmask.2:99
9642 msgid ""
9643 "B<sigprocmask>()  returns 0 on success and -1 on error.  In the event of an "
9644 "error, I<errno> is set to indicate the cause."
9645 msgstr ""
9646 "B<sigprocmask>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、 "
9647 "I<errno> にエラーの原因を示す値を設定する。"
9648
9649 #. type: Plain text
9650 #: build/C/man2/sigprocmask.2:107
9651 msgid ""
9652 "the I<set> or I<oldset> argument points outside the process's allocated "
9653 "address space."
9654 msgstr ""
9655 "引き数 I<set> か I<oldset> がプロセスに割り当てられたアドレス空間の外を指して"
9656 "いる。"
9657
9658 #. type: Plain text
9659 #: build/C/man2/sigprocmask.2:112
9660 msgid "The value specified in I<how> was invalid."
9661 msgstr "I<how> に指定された値が有効ではない。"
9662
9663 #. type: Plain text
9664 #: build/C/man2/sigprocmask.2:118
9665 msgid ""
9666 "It is not possible to block B<SIGKILL> or B<SIGSTOP>.  Attempts to do so are "
9667 "silently ignored."
9668 msgstr ""
9669 "B<SIGKILL> や B<SIGSTOP> を禁止することはできない。 禁止しようとしても黙って"
9670 "無視される。"
9671
9672 #. type: Plain text
9673 #: build/C/man2/sigprocmask.2:120
9674 msgid "Each of the threads in a process has its own signal mask."
9675 msgstr "プロセス内の各スレッドはそれぞれ専用のシグナルマスクを持つ。"
9676
9677 #. type: Plain text
9678 #: build/C/man2/sigprocmask.2:140
9679 msgid ""
9680 "If B<SIGBUS>, B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> are generated while they "
9681 "are blocked, the result is undefined, unless the signal was generated by "
9682 "B<kill>(2), B<sigqueue>(3), or B<raise>(3)."
9683 msgstr ""
9684 "シグナル B<SIGBUS>, B<SIGFPE>, B<SIGILL>, B<SIGSEGV> が禁止されている間に生成"
9685 "された場合で、 そのシグナルが B<kill>(2), B<sigqueue>(3), B<raise>(3)  によっ"
9686 "て生成されたものでないときには、 その後の動作は未定義である。"
9687
9688 #. type: Plain text
9689 #: build/C/man2/sigprocmask.2:155
9690 msgid ""
9691 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9692 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9693 "B<signal>(7)"
9694 msgstr ""
9695 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9696 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9697 "B<signal>(7)"
9698
9699 #. type: TH
9700 #: build/C/man3/sigqueue.3:28
9701 #, no-wrap
9702 msgid "SIGQUEUE"
9703 msgstr "SIGQUEUE"
9704
9705 #. type: TH
9706 #: build/C/man3/sigqueue.3:28 build/C/man3/sigwait.3:26
9707 #, no-wrap
9708 msgid "2013-12-16"
9709 msgstr "2013-12-16"
9710
9711 #. type: Plain text
9712 #: build/C/man3/sigqueue.3:31
9713 msgid "sigqueue - queue a signal and data to a process"
9714 msgstr "sigqueue - シグナルとデータをプロセスに送る"
9715
9716 #. type: Plain text
9717 #: build/C/man3/sigqueue.3:35
9718 msgid ""
9719 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9720 ">I<value>B<);>"
9721 msgstr ""
9722 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9723 ">I<value>B<);>"
9724
9725 #. type: Plain text
9726 #: build/C/man3/sigqueue.3:43
9727 msgid "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9728 msgstr "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9729
9730 #. type: Plain text
9731 #: build/C/man3/sigqueue.3:55
9732 msgid ""
9733 "B<sigqueue>()  sends the signal specified in I<sig> to the process whose PID "
9734 "is given in I<pid>.  The permissions required to send a signal are the same "
9735 "as for B<kill>(2).  As with B<kill>(2), the null signal (0) can be used to "
9736 "check if a process with a given PID exists."
9737 msgstr ""
9738 "B<sigqueue>()  は I<sig> で指定されたシグナルを、PID が I<pid> であるプロセス"
9739 "に送る。 シグナルを送るのに必要な権限は B<kill>(2)  と同じである。 "
9740 "B<kill>(2)  と同様に、ヌル・シグナル (0) を使って 指定した PID のプロセスが存"
9741 "在するかをチェックすることができる。"
9742
9743 #. type: Plain text
9744 #: build/C/man3/sigqueue.3:60
9745 msgid ""
9746 "The I<value> argument is used to specify an accompanying item of data "
9747 "(either an integer or a pointer value) to be sent with the signal, and has "
9748 "the following type:"
9749 msgstr ""
9750 "I<value> 引き数はシグナルと一緒に送るデータの付属アイテムを指定する。 "
9751 "I<value> は (整数またはポインタの値であり) 以下のような型である。"
9752
9753 #. type: Plain text
9754 #: build/C/man3/sigqueue.3:67
9755 #, no-wrap
9756 msgid ""
9757 "union sigval {\n"
9758 "    int   sival_int;\n"
9759 "    void *sival_ptr;\n"
9760 "};\n"
9761 msgstr ""
9762 "union sigval {\n"
9763 "    int   sival_int;\n"
9764 "    void *sival_ptr;\n"
9765 "};\n"
9766
9767 #. type: Plain text
9768 #: build/C/man3/sigqueue.3:83
9769 msgid ""
9770 "If the receiving process has installed a handler for this signal using the "
9771 "B<SA_SIGINFO> flag to B<sigaction>(2), then it can obtain this data via the "
9772 "I<si_value> field of the I<siginfo_t> structure passed as the second "
9773 "argument to the handler.  Furthermore, the I<si_code> field of that "
9774 "structure will be set to B<SI_QUEUE>."
9775 msgstr ""
9776 "受取先のプロセスに、このシグナルに対するハンドラを (B<sigaction>(2)  に "
9777 "B<SA_SIGINFO> を指定して) インストールしておくと、 そのハンドラの第 2 引き数"
9778 "に渡される I<siginfo_t> 構造体の I<si_value> フィールドによって、このデータを"
9779 "取得できる。 さらに、この構造体の I<si_code> フィールドは B<SI_QUEUE> に設定"
9780 "される。"
9781
9782 #. type: Plain text
9783 #: build/C/man3/sigqueue.3:91
9784 #, fuzzy
9785 #| msgid ""
9786 #| "On success, B<sigqueue>()  returns 0, indicating that the signal was "
9787 #| "successfully queued to the receiving process.  Otherwise -1 is returned "
9788 #| "and I<errno> is set to indicate the error."
9789 msgid ""
9790 "On success, B<sigqueue>()  returns 0, indicating that the signal was "
9791 "successfully queued to the receiving process.  Otherwise, -1 is returned and "
9792 "I<errno> is set to indicate the error."
9793 msgstr ""
9794 "成功した場合、 B<sigqueue>()  は 0 を返す。 これは受け取り側プロセスの待ち行"
9795 "列に シグナルが正しく入れられたことを示す。 失敗した場合は -1 が返され、 "
9796 "I<errno> がエラーを表す値に設定される。"
9797
9798 #. type: Plain text
9799 #: build/C/man3/sigqueue.3:102
9800 msgid "I<sig> was invalid."
9801 msgstr "I<sig> が不正である。"
9802
9803 #. type: Plain text
9804 #: build/C/man3/sigqueue.3:108
9805 msgid ""
9806 "The process does not have permission to send the signal to the receiving "
9807 "process.  For the required permissions, see B<kill>(2)."
9808 msgstr ""
9809 "このプロセスには、受け取り側プロセスにシグナルを送る権限がない。 必要な権限に"
9810 "ついては、 B<kill>(2)  を参照すること。"
9811
9812 #. type: Plain text
9813 #: build/C/man3/sigqueue.3:112
9814 msgid "No process has a PID matching I<pid>."
9815 msgstr "I<pid> にマッチする PID のプロセスがない。"
9816
9817 #. type: Plain text
9818 #: build/C/man3/sigqueue.3:114
9819 msgid "This system call first appeared in Linux 2.2."
9820 msgstr "このシステムコールは Linux 2.2 で初めて登場した。"
9821
9822 #. type: Plain text
9823 #: build/C/man3/sigqueue.3:119
9824 msgid "The B<sigqueue>()  function is thread-safe."
9825 msgstr "B<sigqueue>() 関数はスレッドセーフである。"
9826
9827 #. type: Plain text
9828 #: build/C/man3/sigqueue.3:129
9829 msgid ""
9830 "If this function results in the sending of a signal to the process that "
9831 "invoked it, and that signal was not blocked by the calling thread, and no "
9832 "other threads were willing to handle this signal (either by having it "
9833 "unblocked, or by waiting for it using B<sigwait>(3)), then at least some "
9834 "signal must be delivered to this thread before this function returns."
9835 msgstr ""
9836 "この関数を呼び出したプロセスにこの関数がシグナルを送ったときに、 シグナルが呼"
9837 "び出し側スレッドにブロックされず、 かつ (シグナルがブロックされなかった、また"
9838 "は B<sigwait>(3)  を使用するのを待っていることにより)  このシグナルを扱うス"
9839 "レッドが何もない場合は、 この関数がリターンする前に、少なくとも そのスレッド"
9840 "に対してシグナルが配送されていなければならない。"
9841
9842 #. type: Plain text
9843 #: build/C/man3/sigqueue.3:144
9844 msgid ""
9845 "On Linux, this function is implemented using the B<rt_sigqueueinfo>(2)  "
9846 "system call.  The system call differs in its third argument, which is the "
9847 "I<siginfo_t> structure that will be supplied to the receiving process's "
9848 "signal handler or returned by the receiving process's B<sigtimedwait>(2)  "
9849 "call.  Inside the glibc B<sigqueue>()  wrapper, this argument, I<uinfo>, is "
9850 "initialized as follows:"
9851 msgstr ""
9852 "Linux では、この関数は B<rt_sigqueueinfo>(2)  システムコールを使って実装され"
9853 "ている。 両者には 3 番目の引き数に違いがあり、 B<rt_sigqueueinfo>(2)  では 3 "
9854 "番目の引き数は I<siginfo_t> 構造体である。 I<siginfo_t> 構造体は、シグナルを"
9855 "受信するプロセスのシグナルハンドラに渡されたり、 シグナル受信プロセスの "
9856 "B<sigtimedwait>(2)  システムコールから返されたりする。 glibc の "
9857 "B<sigqueue>()  ラッパー関数内部では、 この引き数 I<uinfo> は以下のように初期"
9858 "化される。"
9859
9860 #. type: Plain text
9861 #: build/C/man3/sigqueue.3:152
9862 #, fuzzy, no-wrap
9863 #| msgid ""
9864 #| "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9865 #| "uinfo.si_code = SI_QUEUE;\n"
9866 #| "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9867 #| "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9868 #| "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9869 msgid ""
9870 "uinfo.si_signo = sig;      /* Argument supplied to sigqueue() */\n"
9871 "uinfo.si_code = SI_QUEUE;\n"
9872 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9873 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9874 "uinfo.si_value = val;      /* Argument supplied to sigqueue() */\n"
9875 msgstr ""
9876 "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9877 "uinfo.si_code = SI_QUEUE;\n"
9878 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9879 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9880 "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9881
9882 #. type: Plain text
9883 #: build/C/man3/sigqueue.3:162
9884 msgid ""
9885 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9886 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9887 msgstr ""
9888 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9889 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9890
9891 #. type: TH
9892 #: build/C/man2/sigreturn.2:29
9893 #, no-wrap
9894 msgid "SIGRETURN"
9895 msgstr "SIGRETURN"
9896
9897 #. type: Plain text
9898 #: build/C/man2/sigreturn.2:32
9899 msgid "sigreturn - return from signal handler and cleanup stack frame"
9900 msgstr "sigreturn - シグナル・ハンドラから返り、スタックを掃除する"
9901
9902 #. type: Plain text
9903 #: build/C/man2/sigreturn.2:34
9904 msgid "B<int sigreturn(unsigned long >I<__unused>B<);>"
9905 msgstr "B<int sigreturn(unsigned long >I<__unused>B<);>"
9906
9907 #. type: Plain text
9908 #: build/C/man2/sigreturn.2:42
9909 msgid ""
9910 "When the Linux kernel creates the stack frame for a signal handler, a call "
9911 "to B<sigreturn>()  is inserted into the stack frame so that upon return from "
9912 "the signal handler, B<sigreturn>()  will be called."
9913 msgstr ""
9914 "Linux カーネルは、 シグナル・ハンドラ用にスタック・フレームを作成する際、 "
9915 "B<sigreturn>()  をスタック・フレームに挿入し、シグナル・ハンドラが返るときに "
9916 "B<sigreturn>()  が呼ばれるようにする。"
9917
9918 #. type: Plain text
9919 #: build/C/man2/sigreturn.2:53
9920 msgid ""
9921 "This B<sigreturn>()  call undoes everything that was done\\(emchanging the "
9922 "process's signal mask, switching stacks (see B<sigaltstack>(2))\\(emin order "
9923 "to invoke the signal handler: it restores the process's signal mask, "
9924 "switches stacks, and restores the process's context (registers, processor "
9925 "flags), so that the process directly resumes execution at the point where it "
9926 "was interrupted by the signal."
9927 msgstr ""
9928 "B<sigreturn>()  は、シグナル・ハンドラを起動するために行ったことの全て \\(em "
9929 "プロセスのシグナルマスクの変更、スタックの切り替え (B<sigaltstack>(2)  参照) "
9930 "\\(em の取り消しを行う。 プロセスのシグナルマスクの復元、スタックの切り替"
9931 "え、 プロセスのコンテキスト (レジスタ、プロセッサ・フラグ) の復元を行い、 プ"
9932 "ロセスがシグナルにより割り込まれた場所からそのまま実行を 再開できるようにす"
9933 "る。"
9934
9935 #. type: Plain text
9936 #: build/C/man2/sigreturn.2:56
9937 msgid "B<sigreturn>()  never returns."
9938 msgstr "B<sigreturn>()  が返ることはない。"
9939
9940 #. type: SH
9941 #: build/C/man2/sigreturn.2:56
9942 #, no-wrap
9943 msgid "FILES"
9944 msgstr "ファイル"
9945
9946 #. type: Plain text
9947 #: build/C/man2/sigreturn.2:58
9948 msgid "/usr/src/linux/arch/i386/kernel/signal.c"
9949 msgstr "/usr/src/linux/arch/i386/kernel/signal.c"
9950
9951 #. type: Plain text
9952 #: build/C/man2/sigreturn.2:60
9953 msgid "/usr/src/linux/arch/alpha/kernel/entry.S"
9954 msgstr "/usr/src/linux/arch/alpha/kernel/entry.S"
9955
9956 #. type: Plain text
9957 #: build/C/man2/sigreturn.2:64
9958 msgid ""
9959 "B<sigreturn>()  is specific to Linux and should not be used in programs "
9960 "intended to be portable."
9961 msgstr ""
9962 "B<sigreturn>()  は Linux 特有であり、移植を意図したプログラムでは使用してはい"
9963 "けない。"
9964
9965 #. type: Plain text
9966 #: build/C/man2/sigreturn.2:74
9967 msgid ""
9968 "The B<sigreturn>()  call is used by the kernel to implement signal "
9969 "handlers.  It should B<never> be called directly.  Better yet, the specific "
9970 "use of the I<__unused> argument varies depending on the architecture."
9971 msgstr ""
9972 "B<sigreturn>()  コールは、シグナル・ハンドラを実装するためにカーネルにより使"
9973 "用される。 これを直接呼び出しては B<決して> いけない。さらに I<__unused> 引き"
9974 "数がどのように使われるかはそのアーキテクチャに依存して変化する。"
9975
9976 #. type: Plain text
9977 #: build/C/man2/sigreturn.2:80
9978 msgid ""
9979 "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), "
9980 "B<signal>(7)"
9981 msgstr ""
9982 "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), "
9983 "B<signal>(7)"
9984
9985 #. type: TH
9986 #: build/C/man3/sigset.3:26
9987 #, no-wrap
9988 msgid "SIGSET"
9989 msgstr "SIGSET"
9990
9991 #. type: Plain text
9992 #: build/C/man3/sigset.3:29
9993 msgid "sigset, sighold, sigrelse, sigignore - System V signal API"
9994 msgstr "sigset, sighold, sigrelse, sigignore - System V 版シグナル API"
9995
9996 #. type: Plain text
9997 #: build/C/man3/sigset.3:35
9998 msgid "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
9999 msgstr "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
10000
10001 #. type: Plain text
10002 #: build/C/man3/sigset.3:37
10003 msgid "B<int sighold(int >I<sig>B<);>"
10004 msgstr "B<int sighold(int >I<sig>B<);>"
10005
10006 #. type: Plain text
10007 #: build/C/man3/sigset.3:39
10008 msgid "B<int sigrelse(int >I<sig>B<);>"
10009 msgstr "B<int sigrelse(int >I<sig>B<);>"
10010
10011 #. type: Plain text
10012 #: build/C/man3/sigset.3:41
10013 msgid "B<int sigignore(int >I<sig>B<);>"
10014 msgstr "B<int sigignore(int >I<sig>B<);>"
10015
10016 #. type: Plain text
10017 #: build/C/man3/sigset.3:52
10018 msgid "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
10019 msgstr "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
10020
10021 #. type: Plain text
10022 #: build/C/man3/sigset.3:56
10023 msgid ""
10024 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
10025 msgstr ""
10026 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
10027
10028 #. type: Plain text
10029 #: build/C/man3/sigset.3:65
10030 msgid ""
10031 "These functions are provided in glibc as a compatibility interface for "
10032 "programs that make use of the historical System V signal API.  This API is "
10033 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
10034 "B<sigprocmask>(2), etc.)"
10035 msgstr ""
10036 "これらの関数は、昔ながらの System V 版シグナル API を使用しているプログラム "
10037 "に対して互換性のあるインタフェースを glibc で提供するものである。 この API は"
10038 "過去のものであり、新しいアプリケーションでは POSIX シグナル API "
10039 "(B<sigaction>(2), B<sigprocmask>(2)  など) を使用すべきである。"
10040
10041 #. type: Plain text
10042 #: build/C/man3/sigset.3:74
10043 msgid ""
10044 "The B<sigset>()  function modifies the disposition of the signal I<sig>.  "
10045 "The I<disp> argument can be the address of a signal handler function, or one "
10046 "of the following constants:"
10047 msgstr ""
10048 "関数 B<sigset>()  はシグナル I<sig> のシグナルハンドラの動作を変更する。 "
10049 "I<disp> 引き数には、シグナルハンドラ関数のアドレスか、 以下の定数のいずれか一"
10050 "つを指定できる。"
10051
10052 #. type: TP
10053 #: build/C/man3/sigset.3:74
10054 #, no-wrap
10055 msgid "B<SIG_DFL>"
10056 msgstr "B<SIG_DFL>"
10057
10058 #. type: Plain text
10059 #: build/C/man3/sigset.3:79
10060 msgid "Reset the disposition of I<sig> to the default."
10061 msgstr "I<sig> の動作をデフォルトにリセットする。"
10062
10063 #. type: TP
10064 #: build/C/man3/sigset.3:79
10065 #, no-wrap
10066 msgid "B<SIG_IGN>"
10067 msgstr "B<SIG_IGN>"
10068
10069 #. type: Plain text
10070 #: build/C/man3/sigset.3:83
10071 msgid "Ignore I<sig>."
10072 msgstr "I<sig> を無視する。"
10073
10074 #. type: TP
10075 #: build/C/man3/sigset.3:83
10076 #, no-wrap
10077 msgid "B<SIG_HOLD>"
10078 msgstr "B<SIG_HOLD>"
10079
10080 #. type: Plain text
10081 #: build/C/man3/sigset.3:90
10082 msgid ""
10083 "Add I<sig> to the process's signal mask, but leave the disposition of I<sig> "
10084 "unchanged."
10085 msgstr ""
10086 "そのプロセスのシグナルマスクに I<sig> を追加するが、 I<sig> の動作は変更しな"
10087 "い。"
10088
10089 #. type: Plain text
10090 #: build/C/man3/sigset.3:96
10091 msgid ""
10092 "If I<disp> specifies the address of a signal handler, then I<sig> is added "
10093 "to the process's signal mask during execution of the handler."
10094 msgstr ""
10095 "I<disp> にシグナルハンドラのアドレスが指定された場合、 シグナルハンドラの実行"
10096 "中は、そのプロセスのシグナルマスクに I<sig> が追加される。"
10097
10098 #. type: Plain text
10099 #: build/C/man3/sigset.3:104
10100 msgid ""
10101 "If I<disp> was specified as a value other than B<SIG_HOLD>, then I<sig> is "
10102 "removed from the process's signal mask."
10103 msgstr ""
10104 "I<disp> に B<SIG_HOLD> 以外の値が指定された場合、 そのプロセスのシグナルマス"
10105 "クから I<sig> が削除される。"
10106
10107 #. type: Plain text
10108 #: build/C/man3/sigset.3:110 build/C/man3/sigvec.3:87
10109 msgid "The dispositions for B<SIGKILL> and B<SIGSTOP> cannot be changed."
10110 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> に対する動作は変更できない。"
10111
10112 #. type: Plain text
10113 #: build/C/man3/sigset.3:116
10114 msgid ""
10115 "The B<sighold>()  function adds I<sig> to the calling process's signal mask."
10116 msgstr ""
10117 "関数 B<sighold>()  は、呼び出し元プロセスのシグナルマスクに I<sig> を追加す"
10118 "る。"
10119
10120 #. type: Plain text
10121 #: build/C/man3/sigset.3:122
10122 msgid ""
10123 "The B<sigrelse>()  function removes I<sig> from the calling process's signal "
10124 "mask."
10125 msgstr ""
10126 "関数 B<sigrelse>()  は、呼び出し元プロセスのシグナルマスクから I<sig> を削除"
10127 "する。"
10128
10129 #. type: Plain text
10130 #: build/C/man3/sigset.3:129
10131 msgid ""
10132 "The B<sigignore>()  function sets the disposition of I<sig> to B<SIG_IGN>."
10133 msgstr "関数 B<sigignore>()  は、 I<sig> の動作を B<SIG_IGN> に設定する。"
10134
10135 #. type: Plain text
10136 #: build/C/man3/sigset.3:145
10137 msgid ""
10138 "On success, B<sigset>()  returns B<SIG_HOLD> if I<sig> was blocked before "
10139 "the call, or the signal's previous disposition if it was not blocked before "
10140 "the call.  On error, B<sigset>()  returns -1, with I<errno> set to indicate "
10141 "the error.  (But see BUGS below.)"
10142 msgstr ""
10143 "B<sigset>()  は成功すると、 呼び出し前に I<sig> がブロックされていた場合には "
10144 "B<SIG_HOLD> を返し、 ブロックされていなかった場合には 変更前のそのシグナルの"
10145 "動作を返す。 エラーの場合、 B<sigset>()  は -1 を返し、 I<errno> にエラーを示"
10146 "す値をセットする。 但し、以下の「バグ」の節も参照のこと。"
10147
10148 #. type: Plain text
10149 #: build/C/man3/sigset.3:154
10150 msgid ""
10151 "The B<sighold>(), B<sigrelse>(), and B<sigignore>()  functions return 0 on "
10152 "success; on error, these functions return -1 and set I<errno> to indicate "
10153 "the error."
10154 msgstr ""
10155 "関数 B<sighold>(), B<sigrelse>(), B<sigignore>()  は成功すると 0 を返す。エ"
10156 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値をセットする。"
10157
10158 #. type: Plain text
10159 #: build/C/man3/sigset.3:161
10160 msgid ""
10161 "For B<sigset>()  see the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
10162 msgstr ""
10163 "B<sigset>()  に関しては、 B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」"
10164 "の節を参照。"
10165
10166 #. type: Plain text
10167 #: build/C/man3/sigset.3:168
10168 msgid ""
10169 "For B<sighold>()  and B<sigrelse>()  see the ERRORS under B<sigprocmask>(2)."
10170 msgstr ""
10171 "B<sighold>()  と B<sigrelse>()  に関しては、 B<sigprocmask>(2)  の「エラー」"
10172 "の節を参照。"
10173
10174 #. type: Plain text
10175 #: build/C/man3/sigset.3:173
10176 msgid "For B<sigignore>(), see the errors under B<sigaction>(2)."
10177 msgstr "B<sigignore>()  に関しては、 B<sigaction>(2)  の「エラー」の節を参照。"
10178
10179 #. type: Plain text
10180 #: build/C/man3/sigset.3:190
10181 msgid ""
10182 "SVr4, POSIX.1-2001.  These functions are obsolete: do not use them in new "
10183 "programs.  POSIX.1-2008 marks B<sighold>(), B<sigignore>(), B<sigpause>(), "
10184 "B<sigrelse>(), and B<sigset>()  as obsolete, recommending the use of "
10185 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), and "
10186 "B<sigsuspend>(2)  instead."
10187 msgstr ""
10188 "SVr4, POSIX.1-2001.  これらの関数は廃止予定である。新しいプログラムでは使用し"
10189 "ないこと。 POSIX.1-2008 は、 B<sighold>(), B<sigignore>(), B<sigpause>(), "
10190 "B<sigrelse>(), B<sigset>()  を廃止予定としている。 代わりに、 "
10191 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), B<sigsuspend>(2)  "
10192 "の使用が推奨されている。"
10193
10194 #. type: Plain text
10195 #: build/C/man3/sigset.3:192
10196 msgid "These functions appeared in glibc version 2.1."
10197 msgstr "これらの関数は glibc 2.1 で登場した。"
10198
10199 #. type: Plain text
10200 #: build/C/man3/sigset.3:198
10201 msgid ""
10202 "The I<sighandler_t> type is a GNU extension; it is used on this page only to "
10203 "make the B<sigset>()  prototype more easily readable."
10204 msgstr ""
10205 "I<sighandler_t> 型は GNU による拡張であり、この man page で B<sigset>()  のプ"
10206 "ロトタイプをより読みやすくするために使われているだけである。"
10207
10208 #. type: Plain text
10209 #: build/C/man3/sigset.3:206
10210 msgid ""
10211 "The B<sigset>()  function provides reliable signal handling semantics (as "
10212 "when calling B<sigaction>(2)  with I<sa_mask> equal to 0)."
10213 msgstr ""
10214 "関数 B<sigset>()  は信頼性のあるシグナル処理機構を提供する (I<sa_mask> を 0 "
10215 "で B<sigaction>(2)  を呼び出したときと同様)。"
10216
10217 #. type: Plain text
10218 #: build/C/man3/sigset.3:224
10219 msgid ""
10220 "On System V, the B<signal>()  function provides unreliable semantics (as "
10221 "when calling B<sigaction>(2)  with I<sa_mask> equal to I<SA_RESETHAND | "
10222 "SA_NODEFER>).  On BSD, B<signal>()  provides reliable semantics.  "
10223 "POSIX.1-2001 leaves these aspects of B<signal>()  unspecified.  See "
10224 "B<signal>(2)  for further details."
10225 msgstr ""
10226 "System V では、関数 B<signal>()  が提供する処理機構は信頼性のないものである "
10227 "(I<sa_mask> を I<SA_RESETHAND | SA_NODEFER> として B<sigaction>(2)  を呼び出"
10228 "したときと同様)。 BSD では、 B<signal>()  は信頼性のある処理機構を提供する。 "
10229 "POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままとなっている。 さら"
10230 "なる詳細については B<signal>(2)  を参照。"
10231
10232 #. type: Plain text
10233 #: build/C/man3/sigset.3:232 build/C/man3/sigvec.3:265
10234 msgid ""
10235 "In order to wait for a signal, BSD and System V both provided a function "
10236 "named B<sigpause>(3), but this function has a different argument on the two "
10237 "systems.  See B<sigpause>(3)  for details."
10238 msgstr ""
10239 "BSD と System V のどちらのシステムでも シグナルを待つために、 "
10240 "B<sigpause>(3)  という名前の関数が提供されているが、 この関数の引き数は両方の"
10241 "システムで異なる。 詳細は B<sigpause>(3)  を参照。"
10242
10243 #. type: Plain text
10244 #: build/C/man3/sigset.3:241
10245 msgid ""
10246 "In versions of glibc before 2.2, B<sigset>()  did not unblock I<sig> if "
10247 "I<disp> was specified as a value other than B<SIG_HOLD>."
10248 msgstr ""
10249 "2.2 より前のバージョンの glibc では、 I<disp> に B<SIG_HOLD> 以外の値が指定さ"
10250 "れた場合、 I<sig> のブロック解除を行っていなかった。"
10251
10252 #.  See http://sourceware.org/bugzilla/show_bug.cgi?id=1951
10253 #. type: Plain text
10254 #: build/C/man3/sigset.3:266
10255 msgid ""
10256 "In versions of glibc before 2.5, B<sigset>()  does not correctly return the "
10257 "previous disposition of the signal in two cases.  First, if I<disp> is "
10258 "specified as B<SIG_HOLD>, then a successful B<sigset>()  always returns "
10259 "B<SIG_HOLD>.  Instead, it should return the previous disposition of the "
10260 "signal (unless the signal was blocked, in which case B<SIG_HOLD> should be "
10261 "returned).  Second, if the signal is currently blocked, then the return "
10262 "value of a successful B<sigset>()  should be B<SIG_HOLD>.  Instead, the "
10263 "previous disposition of the signal is returned.  These problems have been "
10264 "fixed since glibc 2.5."
10265 msgstr ""
10266 "2.3.5 以前の全てのバージョンの glibc では、 B<sigset>()  が変更前のシグナルの"
10267 "動作を正しく返さない場合が 2つある。 一つめは、 I<disp> に B<SIG_HOLD> が指定"
10268 "されると、成功した場合 B<sigset>()  は常に B<SIG_HOLD> を返すことである。 正"
10269 "しくは、(シグナルがブロックされていなかった場合には)  変更前のシグナルの動作"
10270 "を返すべきである (シグナルがブロックされていた場合には、 B<SIG_HOLD> が返され"
10271 "る)。 もう一つは、シグナルが現在ブロックされている場合には、 成功した場合の "
10272 "B<sigset>()  の返り値は B<SIG_HOLD> になるべきであるが、実際には 変更前のシグ"
10273 "ナルの動作が返されることである。 これらの問題は glibc 2.5 以降で修正されてい"
10274 "る。"
10275
10276 #. type: Plain text
10277 #: build/C/man3/sigset.3:276
10278 msgid ""
10279 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10280 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
10281 msgstr ""
10282 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10283 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
10284
10285 #. type: TH
10286 #: build/C/man3/sigsetops.3:31
10287 #, no-wrap
10288 msgid "SIGSETOPS"
10289 msgstr "SIGSETOPS"
10290
10291 #. type: Plain text
10292 #: build/C/man3/sigsetops.3:35
10293 msgid ""
10294 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX signal "
10295 "set operations"
10296 msgstr ""
10297 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX シグナル集"
10298 "合の操作"
10299
10300 #. type: Plain text
10301 #: build/C/man3/sigsetops.3:39
10302 msgid "B<int sigemptyset(sigset_t *>I<set>B<);>"
10303 msgstr "B<int sigemptyset(sigset_t *>I<set>B<);>"
10304
10305 #. type: Plain text
10306 #: build/C/man3/sigsetops.3:41
10307 msgid "B<int sigfillset(sigset_t *>I<set>B<);>"
10308 msgstr "B<int sigfillset(sigset_t *>I<set>B<);>"
10309
10310 #. type: Plain text
10311 #: build/C/man3/sigsetops.3:43
10312 msgid "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10313 msgstr "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10314
10315 #. type: Plain text
10316 #: build/C/man3/sigsetops.3:45
10317 msgid "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10318 msgstr "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10319
10320 #. type: Plain text
10321 #: build/C/man3/sigsetops.3:47
10322 msgid "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
10323 msgstr "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
10324
10325 #. type: Plain text
10326 #: build/C/man3/sigsetops.3:59
10327 msgid ""
10328 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10329 "B<sigismember>():"
10330 msgstr ""
10331 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10332 "B<sigismember>():"
10333
10334 #. type: Plain text
10335 #: build/C/man3/sigsetops.3:61
10336 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10337 msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10338
10339 #. type: Plain text
10340 #: build/C/man3/sigsetops.3:65
10341 msgid "These functions allow the manipulation of POSIX signal sets."
10342 msgstr "これらの関数は POSIX シグナル集合(signal set)を操作するため使用する。"
10343
10344 #. type: Plain text
10345 #: build/C/man3/sigsetops.3:70
10346 msgid ""
10347 "B<sigemptyset>()  initializes the signal set given by I<set> to empty, with "
10348 "all signals excluded from the set."
10349 msgstr ""
10350 "B<sigemptyset>()  は I<set> で与えられたシグナル集合を空に初期化し、シグナル"
10351 "が一つも 含まれていない状態にする。"
10352
10353 #. type: Plain text
10354 #: build/C/man3/sigsetops.3:75
10355 msgid "B<sigfillset>()  initializes I<set> to full, including all signals."
10356 msgstr ""
10357 "B<sigfillset>()  は I<set> で与えられたシグナル集合が全てのシグナルを含むよう"
10358 "にする。"
10359
10360 #. type: Plain text
10361 #: build/C/man3/sigsetops.3:83
10362 msgid ""
10363 "B<sigaddset>()  and B<sigdelset>()  add and delete respectively signal "
10364 "I<signum> from I<set>."
10365 msgstr ""
10366 "B<sigaddset>()  と B<sigdelset>()  は I<set> に I<signum> シグナルをそれぞれ"
10367 "加えたり、削除したりする。"
10368
10369 #. type: Plain text
10370 #: build/C/man3/sigsetops.3:89
10371 msgid "B<sigismember>()  tests whether I<signum> is a member of I<set>."
10372 msgstr ""
10373 "B<sigismember>()  は I<signum> が I<set> に含まれているかどうかをテストする。"
10374
10375 #. type: Plain text
10376 #: build/C/man3/sigsetops.3:107
10377 msgid ""
10378 "Objects of type I<sigset_t> must be initialized by a call to either "
10379 "B<sigemptyset>()  or B<sigfillset>()  before being passed to the functions "
10380 "B<sigaddset>(), B<sigdelset>()  and B<sigismember>()  or the additional "
10381 "glibc functions described below (B<sigisemptyset>(), B<sigandset>(), and "
10382 "B<sigorset>()).  The results are undefined if this is not done."
10383 msgstr ""
10384 "I<sigset_t> 型のオブジェクトは、関数 B<sigaddset>(), B<sigdelset>(), "
10385 "B<sigismember>()  や後述の glibc の追加関数 (B<sigisemptyset>(), "
10386 "B<sigandset>(), B<sigorset>())  に渡す前に、 B<sigemptyset>()  か "
10387 "B<sigfillset>()  を呼び出して初期化しなければならない。 初期化しなかった場合"
10388 "の結果は未定義である。"
10389
10390 #. type: Plain text
10391 #: build/C/man3/sigsetops.3:114
10392 msgid ""
10393 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), and B<sigdelset>()  "
10394 "return 0 on success and -1 on error."
10395 msgstr ""
10396 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>()  は成功すれ"
10397 "ば 0 を、エラーの場合は -1 を返す。"
10398
10399 #. type: Plain text
10400 #: build/C/man3/sigsetops.3:126
10401 msgid ""
10402 "B<sigismember>()  returns 1 if I<signum> is a member of I<set>, 0 if "
10403 "I<signum> is not a member, and -1 on error.  On error, these functions set "
10404 "I<errno> to indicate the cause."
10405 msgstr ""
10406 "B<sigismember>()  は I<signum> が I<set> のメンバの場合 1 を返し、メンバでな"
10407 "い場合 0 を返す。 エラーの場合は -1 を返し、 I<errno> にエラーの原因を示す値"
10408 "を設定する。"
10409
10410 #. type: Plain text
10411 #: build/C/man3/sigsetops.3:131
10412 msgid "I<sig> is not a valid signal."
10413 msgstr "I<sig> が有効なシグナルではない。"
10414
10415 #. type: Plain text
10416 #: build/C/man3/sigsetops.3:144
10417 msgid ""
10418 "The B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10419 "B<sigismember>(), B<sigisemptyset>(), B<sigorset>(), and B<sigandset>()  "
10420 "functions are thread-safe."
10421 msgstr ""
10422 "関数 B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10423 "B<sigismember>(), B<sigisemptyset>(), B<sigorset>(), B<sigandset>() はスレッ"
10424 "ドセーフである。"
10425
10426 #. type: SS
10427 #: build/C/man3/sigsetops.3:147
10428 #, no-wrap
10429 msgid "Glibc notes"
10430 msgstr "glibc での注意"
10431
10432 #. type: Plain text
10433 #: build/C/man3/sigsetops.3:153
10434 msgid ""
10435 "If the B<_GNU_SOURCE> feature test macro is defined, then I<E<lt>signal."
10436 "hE<gt>> exposes three other functions for manipulating signal sets:"
10437 msgstr ""
10438 "B<_GNU_SOURCE> 機能検査マクロが定義されていると、 I<E<lt>signal.hE<gt>> でシ"
10439 "グナル集合を操作する 3 つの関数が追加で公開される。"
10440
10441 #. type: Plain text
10442 #: build/C/man3/sigsetops.3:160
10443 #, no-wrap
10444 msgid ""
10445 "B<int sigisemptyset(const sigset_t *>I<set>B<);>\n"
10446 "B<int sigorset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10447 "B<              const sigset_t *>I<right>B<);>\n"
10448 "B<int sigandset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10449 "B<              const sigset_t *>I<right>B<);>\n"
10450 msgstr ""
10451 "B<int sigisemptyset(const sigset_t *>I<set>B<);>\n"
10452 "B<int sigorset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10453 "B<              const sigset_t *>I<right>B<);>\n"
10454 "B<int sigandset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10455 "B<              const sigset_t *>I<right>B<);>\n"
10456
10457 #. type: Plain text
10458 #: build/C/man3/sigsetops.3:166
10459 msgid ""
10460 "B<sigisemptyset>()  returns 1 if I<set> contains no signals, and 0 otherwise."
10461 msgstr ""
10462 "B<sigisemptyset>() は I<set> にシグナルが一つも含まれていなければ 1 を返し、 "
10463 "それ以外は 0 を返す。"
10464
10465 #. type: Plain text
10466 #: build/C/man3/sigsetops.3:182
10467 msgid ""
10468 "B<sigorset>()  places the union of the sets I<left> and I<right> in "
10469 "I<dest>.  B<sigandset>()  places the intersection of the sets I<left> and "
10470 "I<right> in I<dest>.  Both functions return 0 on success, and -1 on failure."
10471 msgstr ""
10472 "B<sigorset>() は集合 I<left> と I<right> の和集合を I<dest> に設定する。 "
10473 "B<sigandset>() は集合 I<left> と I<right> の積集合を I<dest> に設定する。 ど"
10474 "ちらの関数も成功すると 0 を返し、失敗時には -1 を返す。"
10475
10476 #. type: Plain text
10477 #: build/C/man3/sigsetops.3:185
10478 msgid ""
10479 "These functions are nonstandard (a few other systems provide similar "
10480 "functions) and their use should be avoided in portable applications."
10481 msgstr ""
10482 "これらの関数は非標準であり、(他にも同様の関数を提供しているシステムも いくつ"
10483 "かはあるが) 移植性を考慮したアプリケーションでは使用を避けるべき である。"
10484
10485 #. type: Plain text
10486 #: build/C/man3/sigsetops.3:190
10487 msgid "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10488 msgstr "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10489
10490 #. type: TH
10491 #: build/C/man2/sigsuspend.2:29
10492 #, no-wrap
10493 msgid "SIGSUSPEND"
10494 msgstr "SIGSUSPEND"
10495
10496 #. type: Plain text
10497 #: build/C/man2/sigsuspend.2:32
10498 msgid "sigsuspend - wait for a signal"
10499 msgstr "sigsuspend - シグナルを待つ"
10500
10501 #. type: Plain text
10502 #: build/C/man2/sigsuspend.2:36
10503 msgid "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10504 msgstr "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10505
10506 #. type: Plain text
10507 #: build/C/man2/sigsuspend.2:45
10508 msgid ""
10509 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10510 "_POSIX_SOURCE"
10511 msgstr ""
10512 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10513 "_POSIX_SOURCE"
10514
10515 #. type: Plain text
10516 #: build/C/man2/sigsuspend.2:53
10517 msgid ""
10518 "B<sigsuspend>()  temporarily replaces the signal mask of the calling process "
10519 "with the mask given by I<mask> and then suspends the process until delivery "
10520 "of a signal whose action is to invoke a signal handler or to terminate a "
10521 "process."
10522 msgstr ""
10523 "B<sigsuspend>()  は、呼び出し元プロセスのシグナルマスクを I<mask> で指定され"
10524 "たマスクに一時的に置き換え、 シグナルハンドラの起動もしくはプロセスの終了がア"
10525 "クションとして 設定されたシグナルが配送されるまで、そのプロセスを停止する。"
10526
10527 #. type: Plain text
10528 #: build/C/man2/sigsuspend.2:62
10529 msgid ""
10530 "If the signal terminates the process, then B<sigsuspend>()  does not "
10531 "return.  If the signal is caught, then B<sigsuspend>()  returns after the "
10532 "signal handler returns, and the signal mask is restored to the state before "
10533 "the call to B<sigsuspend>()."
10534 msgstr ""
10535 "シグナルがプロセスを終了させるものの場合、 B<sigsuspend>()  は返らない。シグ"
10536 "ナルが捕捉された場合、 シグナルハンドラの処理が終わった後に B<sigsuspend>()  "
10537 "は返り、シグナルマスクは B<sigsuspend>()  が呼び出される前の状態に復元され"
10538 "る。"
10539
10540 #. type: Plain text
10541 #: build/C/man2/sigsuspend.2:70
10542 msgid ""
10543 "It is not possible to block B<SIGKILL> or B<SIGSTOP>; specifying these "
10544 "signals in I<mask>, has no effect on the process's signal mask."
10545 msgstr ""
10546 "B<SIGKILL> と B<SIGSTOP> を禁止 (block) することはできない; これらのシグナル"
10547 "を I<mask> に指定しても、プロセスのシグナルマスクは影響を受けない。"
10548
10549 #. type: Plain text
10550 #: build/C/man2/sigsuspend.2:76
10551 msgid ""
10552 "B<sigsuspend>()  always returns -1, with I<errno> set to indicate the error "
10553 "(normally, B<EINTR>)."
10554 msgstr ""
10555 "B<sigsuspend>() は常に -1 を返し、 I<errno> にエラーの原因を示す値 (通常は "
10556 "B<EINTR>) を設定する。"
10557
10558 #. type: Plain text
10559 #: build/C/man2/sigsuspend.2:81
10560 msgid ""
10561 "I<mask> points to memory which is not a valid part of the process address "
10562 "space."
10563 msgstr ""
10564 "I<mask> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
10565
10566 #. type: Plain text
10567 #: build/C/man2/sigsuspend.2:84
10568 msgid "The call was interrupted by a signal."
10569 msgstr "システムコールはシグナルにより割り込まれた。"
10570
10571 #. type: Plain text
10572 #: build/C/man2/sigsuspend.2:104
10573 msgid ""
10574 "Normally, B<sigsuspend>()  is used in conjunction with B<sigprocmask>(2)  in "
10575 "order to prevent delivery of a signal during the execution of a critical "
10576 "code section.  The caller first blocks the signals with B<sigprocmask>(2).  "
10577 "When the critical code has completed, the caller then waits for the signals "
10578 "by calling B<sigsuspend>()  with the signal mask that was returned by "
10579 "B<sigprocmask>(2)  (in the I<oldset> argument)."
10580 msgstr ""
10581 "B<sigsuspend>()  は、通常、クリティカル・コード・セクション (critical code "
10582 "section) の 実行中にシグナルが配送されるのを防止するために、 "
10583 "B<sigprocmask>(2)  と組み合わせて使用される。 まず最初に、呼び出し元は "
10584 "B<sigprocmask>(2)  を使ってシグナルを禁止する。 クリティカル・コードが完了す"
10585 "ると、呼び出し元は B<sigprocmask>(2)  が (I<oldset> 引き数で) 返すシグナルマ"
10586 "スクを指定して B<sigsuspend>()  を呼び出すことで、クリティカル・コード実行中"
10587 "に発生した シグナルを待つことができる。"
10588
10589 #. type: Plain text
10590 #: build/C/man2/sigsuspend.2:118
10591 msgid ""
10592 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10593 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10594 msgstr ""
10595 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10596 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10597
10598 #. type: TH
10599 #: build/C/man3/sigvec.3:26
10600 #, no-wrap
10601 msgid "SIGVEC"
10602 msgstr "SIGVEC"
10603
10604 #. type: TH
10605 #: build/C/man3/sigvec.3:26
10606 #, no-wrap
10607 msgid "2014-03-24"
10608 msgstr "2014-03-24"
10609
10610 #. type: Plain text
10611 #: build/C/man3/sigvec.3:29
10612 msgid "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD signal API"
10613 msgstr "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD 版シグナル API"
10614
10615 #. type: Plain text
10616 #: build/C/man3/sigvec.3:33
10617 msgid ""
10618 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
10619 "*>I<ovec>B<);>"
10620 msgstr ""
10621 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
10622 "*>I<ovec>B<);>"
10623
10624 #. type: Plain text
10625 #: build/C/man3/sigvec.3:35
10626 msgid "B<int sigmask(int >I<signum>B<);>"
10627 msgstr "B<int sigmask(int >I<signum>B<);>"
10628
10629 #. type: Plain text
10630 #: build/C/man3/sigvec.3:37
10631 msgid "B<int sigblock(int >I<mask>B<);>"
10632 msgstr "B<int sigblock(int >I<mask>B<);>"
10633
10634 #. type: Plain text
10635 #: build/C/man3/sigvec.3:39
10636 msgid "B<int sigsetmask(int >I<mask>B<);>"
10637 msgstr "B<int sigsetmask(int >I<mask>B<);>"
10638
10639 #. type: Plain text
10640 #: build/C/man3/sigvec.3:41
10641 msgid "B<int siggetmask(void);>"
10642 msgstr "B<int siggetmask(void);>"
10643
10644 #. type: Plain text
10645 #: build/C/man3/sigvec.3:49
10646 msgid "All functions shown above: _BSD_SOURCE"
10647 msgstr "上記の全ての関数: _BSD_SOURCE"
10648
10649 #. type: Plain text
10650 #: build/C/man3/sigvec.3:56
10651 msgid ""
10652 "These functions are provided in glibc as a compatibility interface for "
10653 "programs that make use of the historical BSD signal API.  This API is "
10654 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
10655 "B<sigprocmask>(2), etc.)."
10656 msgstr ""
10657 "これらの関数は、昔ながらの BSD 版シグナル API を使用しているプログラム に対し"
10658 "て互換性のあるインタフェースを glibc で提供するものである。 この API は過去の"
10659 "ものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>(2), "
10660 "B<sigprocmask>(2)  など) を使用すべきである。"
10661
10662 #. type: Plain text
10663 #: build/C/man3/sigvec.3:81
10664 msgid ""
10665 "The B<sigvec>()  function sets and/or gets the disposition of the signal "
10666 "I<sig> (like the POSIX B<sigaction>(2)).  If I<vec> is not NULL, it points "
10667 "to a I<sigvec> structure that defines the new disposition for I<sig>.  If "
10668 "I<ovec> is not NULL, it points to a I<sigvec> structure that is used to "
10669 "return the previous disposition of I<sig>.  To obtain the current "
10670 "disposition of I<sig> without changing it, specify NULL for I<vec>, and a "
10671 "non-null pointer for I<ovec>."
10672 msgstr ""
10673 "関数 B<sigvec>()  は、(POSIX の B<sigaction>(2)  と同様に) シグナル I<sig> の"
10674 "動作の設定・取得を行う。 I<vec> は、NULL 以外の場合、 I<sig> の新しい動作を定"
10675 "義した I<sigvec> 構造体へのポインタである。 I<ovec> は、NULL 以外の場合、 "
10676 "I<sig> の変更前の動作を返すために使用される I<sigvec> 構造体へのポインタであ"
10677 "る。 I<sig> の動作を変更せずに現在の動作を取得するためには、 I<vec> に NULL "
10678 "を指定し、 I<ovec> に NULL でないポインタを指定すればよい。"
10679
10680 #. type: Plain text
10681 #: build/C/man3/sigvec.3:91
10682 msgid "The I<sigvec> structure has the following form:"
10683 msgstr "I<sigvec> 構造体は以下の通りである:"
10684
10685 #. type: Plain text
10686 #: build/C/man3/sigvec.3:99
10687 #, no-wrap
10688 msgid ""
10689 "struct sigvec {\n"
10690 "    void (*sv_handler)(int); /* Signal disposition */\n"
10691 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10692 "    int    sv_flags;         /* Flags */\n"
10693 "};\n"
10694 msgstr ""
10695 "struct sigvec {\n"
10696 "    void (*sv_handler)(int); /* Signal disposition */\n"
10697 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10698 "    int    sv_flags;         /* Flags */\n"
10699 "};\n"
10700
10701 #. type: Plain text
10702 #: build/C/man3/sigvec.3:110
10703 msgid ""
10704 "The I<sv_handler> field specifies the disposition of the signal, and is "
10705 "either: the address of a signal handler function; B<SIG_DFL>, meaning the "
10706 "default disposition applies for the signal; or B<SIG_IGN>, meaning that the "
10707 "signal is ignored."
10708 msgstr ""
10709 "I<sv_handler> フィールドはシグナルの動作を指定するもので、 シグナルハンドラ関"
10710 "数のアドレスか、 B<SIG_DFL> と B<SIG_IGN> のいずれかを指定できる。 "
10711 "B<SIG_DFL> はシグナルに適用されるデフォルトの動作を意味し、 B<SIG_IGN> はシグ"
10712 "ナルを無視することを意味する。"
10713
10714 #. type: Plain text
10715 #: build/C/man3/sigvec.3:124
10716 msgid ""
10717 "If I<sv_handler> specifies the address of a signal handler, then I<sv_mask> "
10718 "specifies a mask of signals that are to be blocked while the handler is "
10719 "executing.  In addition, the signal for which the handler is invoked is also "
10720 "blocked.  Attempts to block B<SIGKILL> or B<SIGSTOP> are silently ignored."
10721 msgstr ""
10722 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_mask> はハン"
10723 "ドラが実行中にブロックされるべきシグナルのマスクを指定する。 また、ハンドラを"
10724 "起動したシグナル自身はブロックされる。 B<SIGKILL> か B<SIGSTOP> をブロックし"
10725 "ようとした場合には、黙って無視される。"
10726
10727 #. type: Plain text
10728 #: build/C/man3/sigvec.3:131
10729 msgid ""
10730 "If I<sv_handler> specifies the address of a signal handler, then the "
10731 "I<sv_flags> field specifies flags controlling what happens when the handler "
10732 "is called.  This field may contain zero or more of the following flags:"
10733 msgstr ""
10734 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_flags> フィー"
10735 "ルドはハンドラが呼ばれた際の挙動を制御するフラグを指定する。 このフィールドに"
10736 "は、0 か、以下のフラグを 1個以上指定できる:"
10737
10738 #. type: TP
10739 #: build/C/man3/sigvec.3:131
10740 #, no-wrap
10741 msgid "B<SV_INTERRUPT>"
10742 msgstr "B<SV_INTERRUPT>"
10743
10744 #. type: Plain text
10745 #: build/C/man3/sigvec.3:139
10746 msgid ""
10747 "If the signal handler interrupts a blocking system call, then upon return "
10748 "from the handler the system call will not be restarted: instead it will fail "
10749 "with the error B<EINTR>.  If this flag is not specified, then system calls "
10750 "are restarted by default."
10751 msgstr ""
10752 "シグナルハンドラが停止中のシステムコールを中断した場合、 ハンドラから復帰して"
10753 "も、システムコールは再開されず、 エラー B<EINTR> で失敗する。 このフラグを指"
10754 "定しなかった場合、システムコールは デフォルトで再開される。"
10755
10756 #. type: TP
10757 #: build/C/man3/sigvec.3:139
10758 #, no-wrap
10759 msgid "B<SV_RESETHAND>"
10760 msgstr "B<SV_RESETHAND>"
10761
10762 #. type: Plain text
10763 #: build/C/man3/sigvec.3:148
10764 msgid ""
10765 "Reset the disposition of the signal to the default before calling the signal "
10766 "handler.  If this flag is not specified, then the handler remains "
10767 "established until explicitly removed by a later call to B<sigvec>()  or "
10768 "until the process performs an B<execve>(2)."
10769 msgstr ""
10770 "シグナルハンドラを呼び出す前にシグナルの動作を デフォルトにリセットする。 こ"
10771 "のフラグを指定しなかった場合、もう一度 B<sigvec>()  を呼び出して明示的に削除"
10772 "されるか、プロセスが B<execve>(2)  を実行するまで、ハンドラは設定されたままと"
10773 "なる。"
10774
10775 #. type: TP
10776 #: build/C/man3/sigvec.3:148
10777 #, no-wrap
10778 msgid "B<SV_ONSTACK>"
10779 msgstr "B<SV_ONSTACK>"
10780
10781 #. type: Plain text
10782 #: build/C/man3/sigvec.3:155
10783 msgid ""
10784 "Handle the signal on the alternate signal stack (historically established "
10785 "under BSD using the obsolete B<sigstack>()  function; the POSIX replacement "
10786 "is B<sigaltstack>(2))."
10787 msgstr ""
10788 "代替シグナルスタック上でシグナルハンドラを実行する (歴史的に、BSD では代替シ"
10789 "グナルスタックは廃止された関数 B<sigstack>()  を使って設定する。POSIX では、"
10790 "代わりに B<sigaltstack>(2)  を使用する)。"
10791
10792 #. type: Plain text
10793 #: build/C/man3/sigvec.3:165
10794 msgid ""
10795 "The B<sigmask>()  macro constructs and returns a \"signal mask\" for "
10796 "I<signum>.  For example, we can initialize the I<vec.sv_mask> field given to "
10797 "B<sigvec>()  using code such as the following:"
10798 msgstr ""
10799 "マクロ B<sigmask>()  は I<signum> に対する「シグナルマスク」を構成して返す。 "
10800 "例えば、以下のようなコードを使うと、 B<sigvec>()  に渡す I<vec.sv_mask> を初"
10801 "期化できる。"
10802
10803 #. type: Plain text
10804 #: build/C/man3/sigvec.3:170
10805 #, no-wrap
10806 msgid ""
10807 "    vec.sv_mask = sigmask(SIGQUIT) | sigmask(SIGABRT);\n"
10808 "                /* Block SIGQUIT and SIGABRT during\n"
10809 "                   handler execution */\n"
10810 msgstr ""
10811 "    vec.sv_mask = sigmask(SIGQUIT) | sigmask(SIGABRT);\n"
10812 "                /* Block SIGQUIT and SIGABRT during\n"
10813 "                   handler execution */\n"
10814
10815 #. type: Plain text
10816 #: build/C/man3/sigvec.3:185
10817 msgid ""
10818 "The B<sigblock>()  function adds the signals in I<mask> to the process's "
10819 "signal mask (like POSIX I<sigprocmask(SIG_BLOCK)>), and returns the "
10820 "process's previous signal mask.  Attempts to block B<SIGKILL> or B<SIGSTOP> "
10821 "are silently ignored."
10822 msgstr ""
10823 "B<sigblock>()  関数は、 I<mask> にあるシグナルをプロセスのシグナルマスクに追"
10824 "加し (POSIX の I<sigprocmask(SIG_BLOCK)> と同様)、変更前のプロセスのシグナル"
10825 "マスクを返す。 B<SIGKILL> や B<SIGSTOP> をブロックしようとした場合には、黙っ"
10826 "て無視される。"
10827
10828 #. type: Plain text
10829 #: build/C/man3/sigvec.3:193
10830 msgid ""
10831 "The B<sigsetmask>()  function sets the process's signal mask to the value "
10832 "given in I<mask> (like POSIX I<sigprocmask(SIG_SETMASK)>), and returns the "
10833 "process's previous signal mask."
10834 msgstr ""
10835 "B<sigsetmask>()  関数はプロセスのシグナルマスクを I<mask> で指定された値に設"
10836 "定し (POSIX の I<sigprocmask(SIG_SETMASK)> と同様)、変更前のプロセスのシグナ"
10837 "ルマスクを返す。"
10838
10839 #. type: Plain text
10840 #: build/C/man3/sigvec.3:199
10841 msgid ""
10842 "The B<siggetmask>()  function returns the process's current signal mask.  "
10843 "This call is equivalent to I<sigblock(0)>."
10844 msgstr ""
10845 "B<siggetmask>()  関数はプロセスの現在のシグナルマスクを返す。この関数は "
10846 "I<sigblock(0)> と等価である。"
10847
10848 #. type: Plain text
10849 #: build/C/man3/sigvec.3:205
10850 msgid ""
10851 "The B<sigvec>()  function returns 0 on success; on error, it returns -1 and "
10852 "sets I<errno> to indicate the error."
10853 msgstr ""
10854 "B<sigvec>()  関数は成功すると 0 を返す。エラーの場合、-1 を返し、 I<errno> に"
10855 "エラーを示す値をセットする。"
10856
10857 #. type: Plain text
10858 #: build/C/man3/sigvec.3:211
10859 msgid ""
10860 "The B<sigblock>()  and B<sigsetmask>()  functions return the previous signal "
10861 "mask."
10862 msgstr "B<sigblock>()  と B<sigsetmask>()  は変更前のシグナルマスクを返す。"
10863
10864 #. type: Plain text
10865 #: build/C/man3/sigvec.3:216
10866 msgid "The B<sigmask>()  macro returns the signal mask for I<signum>."
10867 msgstr "B<sigmask>() マクロは I<signum> のシグナルマスクを返す。"
10868
10869 #. type: Plain text
10870 #: build/C/man3/sigvec.3:221
10871 msgid "See the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
10872 msgstr "B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」の節を参照。"
10873
10874 #. type: Plain text
10875 #: build/C/man3/sigvec.3:230
10876 msgid ""
10877 "The B<sigvec>(), B<sigblock>(), B<sigsetmask>(), and B<siggetmask>()  "
10878 "functions are thread-safe."
10879 msgstr ""
10880 "関数 B<sigvec>(), B<sigblock>(), B<sigsetmask>(), B<siggetmask>() はスレッド"
10881 "セーフである。"
10882
10883 #. type: Plain text
10884 #: build/C/man3/sigvec.3:234
10885 msgid "The B<sigmask>()  macro is thread-safe."
10886 msgstr "B<sigmask>() マクロはスレッドセーフである。"
10887
10888 #. type: Plain text
10889 #: build/C/man3/sigvec.3:240
10890 msgid ""
10891 "All of these functions were in 4.3BSD, except B<siggetmask>(), whose origin "
10892 "is unclear.  These functions are obsolete: do not use them in new programs."
10893 msgstr ""
10894 "これらの関数のうち B<siggetmask>()  以外の全ては 4.3BSD にあった。 "
10895 "B<siggetmask>()  の出自ははっきりしない。 これらの関数は廃止予定であり、新し"
10896 "いプログラムでは使用しないこと。"
10897
10898 #. type: Plain text
10899 #: build/C/man3/sigvec.3:257
10900 msgid ""
10901 "On 4.3BSD, the B<signal>()  function provided reliable semantics (as when "
10902 "calling B<sigvec>()  with I<vec.sv_mask> equal to 0).  On System V, "
10903 "B<signal>()  provides unreliable semantics.  POSIX.1-2001 leaves these "
10904 "aspects of B<signal>()  unspecified.  See B<signal>(2)  for further details."
10905 msgstr ""
10906 "4.3BSD では、信頼性のあるシグナル処理機構を提供する (I<vec.sv_mask> を 0 で "
10907 "B<sigvec>()  を呼び出したときと同様)。 System V が提供する処理機構は信頼性の"
10908 "ないものである。 POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままと"
10909 "なっている。 さらなる詳細については B<signal>(2)  を参照。"
10910
10911 #. type: Plain text
10912 #: build/C/man3/sigvec.3:275
10913 msgid ""
10914 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10915 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10916 msgstr ""
10917 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10918 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10919
10920 #. type: TH
10921 #: build/C/man3/sigwait.3:26
10922 #, no-wrap
10923 msgid "SIGWAIT"
10924 msgstr "SIGWAIT"
10925
10926 #. type: Plain text
10927 #: build/C/man3/sigwait.3:29
10928 msgid "sigwait - wait for a signal"
10929 msgstr "sigwait - シグナルを待つ"
10930
10931 #. type: Plain text
10932 #: build/C/man3/sigwait.3:34
10933 #, no-wrap
10934 msgid "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10935 msgstr "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10936
10937 #. type: Plain text
10938 #: build/C/man3/sigwait.3:44
10939 msgid ""
10940 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10941 msgstr ""
10942 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10943
10944 #. type: Plain text
10945 #: build/C/man3/sigwait.3:56
10946 msgid ""
10947 "The B<sigwait>()  function suspends execution of the calling thread until "
10948 "one of the signals specified in the signal set I<set> becomes pending.  The "
10949 "function accepts the signal (removes it from the pending list of signals), "
10950 "and returns the signal number in I<sig>."
10951 msgstr ""
10952 "B<sigwait>()  関数は、シグナル集合 I<set> で指定されたシグナルの一つが処理待"
10953 "ち (pending) になるまで、 呼び出したスレッドの実行を中断する。 この関数はその"
10954 "シグナルを受け取り (つまり、処理待ちのシグナルのリスト からそのシグナルを削除"
10955 "し)、そのシグナル番号を I<sig> に格納して返す。"
10956
10957 #. type: Plain text
10958 #: build/C/man3/sigwait.3:62
10959 msgid ""
10960 "The operation of B<sigwait>()  is the same as B<sigwaitinfo>(2), except that:"
10961 msgstr ""
10962 "B<sigwait>()  の動作は B<sigwaitinfo>(2)  と同じだが、以下の点が異なる。"
10963
10964 #. type: Plain text
10965 #: build/C/man3/sigwait.3:67
10966 msgid ""
10967 "B<sigwait>()  returns only the signal number, rather than a I<siginfo_t> "
10968 "structure describing the signal."
10969 msgstr ""
10970 "B<sigwait>()  は、シグナルの内容を表す I<siginfo_t> 構造体を返すのではなく、"
10971 "単にシグナル番号を返す。"
10972
10973 #. type: Plain text
10974 #: build/C/man3/sigwait.3:69
10975 msgid "The return values of the two functions are different."
10976 msgstr "返り値が B<sigwaitinfo>(2)  とは異なる。"
10977
10978 #. type: Plain text
10979 #: build/C/man3/sigwait.3:74
10980 msgid ""
10981 "On success, B<sigwait>()  returns 0.  On error, it returns a positive error "
10982 "number (listed in ERRORS)."
10983 msgstr ""
10984 "成功すると、 B<sigwait>()  は 0 を返す。 エラーの場合、(「エラー」の節のリス"
10985 "トにある) 正のエラー番号を返す。"
10986
10987 #.  Does not occur for glibc.
10988 #. type: Plain text
10989 #: build/C/man3/sigwait.3:80
10990 msgid "I<set> contains an invalid signal number."
10991 msgstr "I<set> に無効なシグナル番号が入っている。"
10992
10993 #. type: Plain text
10994 #: build/C/man3/sigwait.3:85
10995 msgid "The B<sigwait>()  function is thread-safe."
10996 msgstr "B<sigwait>() 関数はスレッドセーフである。"
10997
10998 #. type: Plain text
10999 #: build/C/man3/sigwait.3:91
11000 msgid "B<sigwait>()  is implemented using B<sigtimedwait>(2)."
11001 msgstr "B<sigwait>()  は B<sigtimedwait>(2)  を使って実装されている。"
11002
11003 #. type: Plain text
11004 #: build/C/man3/sigwait.3:94
11005 msgid "See B<pthread_sigmask>(3)."
11006 msgstr "B<pthread_sigmask>(3)  を参照。"
11007
11008 #. type: Plain text
11009 #: build/C/man3/sigwait.3:102
11010 msgid ""
11011 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
11012 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
11013 msgstr ""
11014 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
11015 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
11016
11017 #. type: TH
11018 #: build/C/man2/sigwaitinfo.2:25
11019 #, no-wrap
11020 msgid "SIGWAITINFO"
11021 msgstr "SIGWAITINFO"
11022
11023 #. type: TH
11024 #: build/C/man2/sigwaitinfo.2:25 build/C/man2/wait.2:49
11025 #, no-wrap
11026 msgid "2013-09-04"
11027 msgstr "2013-09-04"
11028
11029 #. type: Plain text
11030 #: build/C/man2/sigwaitinfo.2:28
11031 msgid "sigwaitinfo, sigtimedwait - synchronously wait for queued signals"
11032 msgstr "sigwaitinfo, sigtimedwait - キューに入れられたシグナルを同期して待つ"
11033
11034 #. type: Plain text
11035 #: build/C/man2/sigwaitinfo.2:33
11036 #, no-wrap
11037 msgid "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
11038 msgstr "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
11039
11040 #. type: Plain text
11041 #: build/C/man2/sigwaitinfo.2:36
11042 #, no-wrap
11043 msgid ""
11044 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
11045 "B<                 const struct timespec *>I<timeout>B<);>\n"
11046 msgstr ""
11047 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
11048 "B<                 const struct timespec *>I<timeout>B<);>\n"
11049
11050 #. type: Plain text
11051 #: build/C/man2/sigwaitinfo.2:46
11052 msgid "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11053 msgstr ""
11054 "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11055
11056 #. type: Plain text
11057 #: build/C/man2/sigwaitinfo.2:56
11058 msgid ""
11059 "B<sigwaitinfo>()  suspends execution of the calling thread until one of the "
11060 "signals in I<set> is pending (If one of the signals in I<set> is already "
11061 "pending for the calling thread, B<sigwaitinfo>()  will return immediately.)"
11062 msgstr ""
11063 "B<sigwaitinfo>()  は I<set> のうちのどれかのシグナルが処理待ちになるまで、 呼"
11064 "び出しスレッドの実行を一時停止する (呼び出しスレッドに対して I<set> のうちの"
11065 "どれかのシグナルが既に待機中 (pending) である場合、 B<sigwaitinfo>()  はすぐ"
11066 "に戻る)。"
11067
11068 #. type: Plain text
11069 #: build/C/man2/sigwaitinfo.2:68
11070 msgid ""
11071 "B<sigwaitinfo>()  removes the signal from the set of pending signals and "
11072 "returns the signal number as its function result.  If the I<info> argument "
11073 "is not NULL, then the buffer that it points to is used to return a structure "
11074 "of type I<siginfo_t> (see B<sigaction>(2))  containing information about the "
11075 "signal."
11076 msgstr ""
11077 "B<sigwaitinfo>()  はそのシグナルを待機中のシグナルの集合から削除し、関数の結"
11078 "果としてシグナル番号を返す。 I<info> 引き数が NULL でない場合、配送されたシグ"
11079 "ナルの情報が入った I<siginfo_t> 型 (B<sigaction>(2)  を参照) の構造体を "
11080 "I<info> が指すバッファに入れて返す。"
11081
11082 #. type: Plain text
11083 #: build/C/man2/sigwaitinfo.2:76
11084 msgid ""
11085 "If multiple signals in I<set> are pending for the caller, the signal that is "
11086 "retrieved by B<sigwaitinfo>()  is determined according to the usual ordering "
11087 "rules; see B<signal>(7)  for further details."
11088 msgstr ""
11089 "呼び出し元に対して I<set> の複数のシグナルが処理待ちの場合、 "
11090 "B<sigwaitinfo>() で取得するシグナルは通常の順序決定ルールに基づいて決定され"
11091 "る。 詳細は B<signal>(7) を参照のこと。"
11092
11093 #. type: Plain text
11094 #: build/C/man2/sigwaitinfo.2:88
11095 msgid ""
11096 "B<sigtimedwait>()  operates in exactly the same way as B<sigwaitinfo>()  "
11097 "except that it has an additional argument, I<timeout>, which specifies the "
11098 "interval for which the thread is suspended waiting for a signal.  (This "
11099 "interval will be rounded up to the system clock granularity, and kernel "
11100 "scheduling delays mean that the interval may overrun by a small amount.)  "
11101 "This argument is of the following type:"
11102 msgstr ""
11103 "B<sigtimedwait>() は、 B<sigwaitinfo>() と次の点を除いて全く同じように動作す"
11104 "る。この関数にはもう 1 つの引き数 I<timeout> があり、シグナル待ちでスレッドが"
11105 "一時停止する時間を指定することができる(この時間はシステムクロックの粒度に切り"
11106 "上げられ、カーネルのスケジューリング遅延により少しだけ長くなる可能性がある)。"
11107 "この引き数の型は以下のとおりである:"
11108
11109 #. type: Plain text
11110 #: build/C/man2/sigwaitinfo.2:95
11111 #, no-wrap
11112 msgid ""
11113 "struct timespec {\n"
11114 "    long    tv_sec;         /* seconds */\n"
11115 "    long    tv_nsec;        /* nanoseconds */\n"
11116 "}\n"
11117 msgstr ""
11118 "struct timespec {\n"
11119 "    long    tv_sec;         /* 秒 */\n"
11120 "    long    tv_nsec;        /* ナノ秒 */\n"
11121 "}\n"
11122
11123 #. type: Plain text
11124 #: build/C/man2/sigwaitinfo.2:105
11125 msgid ""
11126 "If both fields of this structure are specified as 0, a poll is performed: "
11127 "B<sigtimedwait>()  returns immediately, either with information about a "
11128 "signal that was pending for the caller, or with an error if none of the "
11129 "signals in I<set> was pending."
11130 msgstr ""
11131 "この構造体の 2 つのフィールドがともに 0 の場合、ポーリングが行われる: "
11132 "B<sigtimedwait>()  は、呼び出し側プロセスに対して 待機しているシグナルの情報"
11133 "を返して戻るか、 I<set> のうちのどのシグナルも待機していない場合はエラーを返"
11134 "して戻る。"
11135
11136 #. type: Plain text
11137 #: build/C/man2/sigwaitinfo.2:114
11138 msgid ""
11139 "On success, both B<sigwaitinfo>()  and B<sigtimedwait>()  return a signal "
11140 "number (i.e., a value greater than zero).  On failure both calls return -1, "
11141 "with I<errno> set to indicate the error."
11142 msgstr ""
11143 "成功した場合、 B<sigwaitinfo>()  と B<sigtimedwait>()  はシグナル番号 (すなわ"
11144 "ち 0 より大きい数) を返す。 失敗した場合、2 つの関数は -1 を返し、 I<errno> "
11145 "はエラーを表す値に設定される。"
11146
11147 #. type: Plain text
11148 #: build/C/man2/sigwaitinfo.2:123
11149 msgid ""
11150 "No signal in I<set> was became pending within the I<timeout> period "
11151 "specified to B<sigtimedwait>()."
11152 msgstr ""
11153 "I<set> のうちのどのシグナルも B<sigtimedwait>()  に指定された I<timeout> の期"
11154 "間内に処理待ちにならなかった。"
11155
11156 #. type: Plain text
11157 #: build/C/man2/sigwaitinfo.2:129
11158 msgid ""
11159 "The wait was interrupted by a signal handler; see B<signal>(7).  (This "
11160 "handler was for a signal other than one of those in I<set>.)"
11161 msgstr ""
11162 "シグナル待ちがシグナルハンドラによって中断 (interrupt) された (このハンドラ"
11163 "は I<set> にあるシグナル以外のものである)。 B<signal>(7)  参照。"
11164
11165 #. type: Plain text
11166 #: build/C/man2/sigwaitinfo.2:133
11167 msgid "I<timeout> was invalid."
11168 msgstr "I<timeout> が不正である。"
11169
11170 #. type: Plain text
11171 #: build/C/man2/sigwaitinfo.2:153
11172 msgid ""
11173 "In normal usage, the calling program blocks the signals in I<set> via a "
11174 "prior call to B<sigprocmask>(2)  (so that the default disposition for these "
11175 "signals does not occur if they become pending between successive calls to "
11176 "B<sigwaitinfo>()  or B<sigtimedwait>())  and does not establish handlers for "
11177 "these signals.  In a multithreaded program, the signal should be blocked in "
11178 "all threads, in order to prevent the signal being treated according to its "
11179 "default disposition in a thread other than the one calling B<sigwaitinfo>()  "
11180 "or B<sigtimedwait>())."
11181 msgstr ""
11182 "通常の使用法では、呼び出し側プロセスはこれらの関数より先に "
11183 "B<sigprocmask>(2)  の呼び出すことにより I<set> に含まれるシグナルをブロック"
11184 "し (そのためにこれらのシグナルがこの後に続く B<sigwaitinfo>()  や "
11185 "B<sigtimedwait>()  の呼び出しの間に処理待ちになった場合には、デフォルトの動作"
11186 "は行われず)、 これらのシグナルに対するハンドラは設定しない。 マルチスレッドプ"
11187 "ログラムでは、 B<sigwaitinfo>()  や B<sigtimedwait>() を呼び出したスレッド以"
11188 "外のスレッドで、そのシグナルがデフォルトの動作に基いて処理されないように、全"
11189 "てのスレッドで該当シグナルをブロックすべきである。"
11190
11191 #. type: Plain text
11192 #: build/C/man2/sigwaitinfo.2:158
11193 msgid ""
11194 "The set of signals that is pending for a given thread is the union of the "
11195 "set of signals that is pending specifically for that thread and the set of "
11196 "signals that is pending for the process as a whole (see B<signal>(7))."
11197 msgstr ""
11198 "指定されたスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体宛ての"
11199 "処理待ちのシグナル集合と、プロセス全体宛ての 処理待ちのシグナル集合をあわせた"
11200 "ものである (B<signal>(7)  参照)。"
11201
11202 #. type: Plain text
11203 #: build/C/man2/sigwaitinfo.2:164
11204 msgid "Attempts to wait for B<SIGKILL> and B<SIGSTOP> are silently ignored."
11205 msgstr "B<SIGKILL> と B<SIGSTOP> を待とうとした場合、黙って無視される。"
11206
11207 #. type: Plain text
11208 #: build/C/man2/sigwaitinfo.2:173
11209 msgid ""
11210 "If multiple threads of a process are blocked waiting for the same signal(s) "
11211 "in B<sigwaitinfo>()  or B<sigtimedwait>(), then exactly one of the threads "
11212 "will actually receive the signal if it becomes pending for the process as a "
11213 "whole; which of the threads receives the signal is indeterminate."
11214 msgstr ""
11215 "一つのプロセス内の複数のスレッドが B<sigwaitinfo>()  や B<sigtimedwait>()  で"
11216 "同じシグナルを待って停止した場合、 プロセス全体宛てのシグナルが処理待ちになる"
11217 "と、複数のスレッドのうち一つだけが 実際にそのシグナルを受信することになる。 "
11218 "どのスレッドがシグナルを受信するかは決まっていない。"
11219
11220 #. type: Plain text
11221 #: build/C/man2/sigwaitinfo.2:182
11222 msgid ""
11223 "POSIX leaves the meaning of a NULL value for the I<timeout> argument of "
11224 "B<sigtimedwait>()  unspecified, permitting the possibility that this has the "
11225 "same meaning as a call to B<sigwaitinfo>(), and indeed this is what is done "
11226 "on Linux."
11227 msgstr ""
11228 "POSIX では B<sigtimedwait>()  の引き数 I<timeout> の値を NULL にした場合の意"
11229 "味を未定義としている。 B<sigwaitinfo>()  を呼び出したのと同じ意味としてもよい"
11230 "ことになっており、 実際 Linux ではこのように動作する。"
11231
11232 #. type: Plain text
11233 #: build/C/man2/sigwaitinfo.2:187
11234 msgid ""
11235 "On Linux, B<sigwaitinfo>()  is a library function implemented on top of "
11236 "B<sigtimedwait>()."
11237 msgstr ""
11238 "Linux では、 B<sigwaitinfo>()  は B<sigtimedwait>()  を用いて実装されたライブ"
11239 "ラリ関数である。"
11240
11241 #. type: Plain text
11242 #: build/C/man2/sigwaitinfo.2:199
11243 msgid ""
11244 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
11245 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), "
11246 "B<signal>(7), B<time>(7)"
11247 msgstr ""
11248 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
11249 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), "
11250 "B<signal>(7), B<time>(7)"
11251
11252 #. type: TH
11253 #: build/C/man3/sysv_signal.3:25
11254 #, no-wrap
11255 msgid "SYSV_SIGNAL"
11256 msgstr "SYSV_SIGNAL"
11257
11258 #. type: TH
11259 #: build/C/man3/sysv_signal.3:25
11260 #, no-wrap
11261 msgid "2014-01-06"
11262 msgstr "2014-01-06"
11263
11264 #. type: Plain text
11265 #: build/C/man3/sysv_signal.3:28
11266 msgid "sysv_signal - signal handling with System V semantics"
11267 msgstr "sysv_signal - System V 方式のシグナル処理"
11268
11269 #. type: Plain text
11270 #: build/C/man3/sysv_signal.3:30
11271 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
11272 msgstr "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */"
11273
11274 #. type: Plain text
11275 #: build/C/man3/sysv_signal.3:36
11276 msgid ""
11277 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
11278 msgstr ""
11279 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
11280
11281 #. type: Plain text
11282 #: build/C/man3/sysv_signal.3:41
11283 msgid ""
11284 "The B<sysv_signal>()  function takes the same arguments, and performs the "
11285 "same task, as B<signal>(2)."
11286 msgstr ""
11287 "B<sysv_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
11288 "る。"
11289
11290 #. type: Plain text
11291 #: build/C/man3/sysv_signal.3:51
11292 msgid ""
11293 "However B<sysv_signal>()  provides the System V unreliable signal semantics, "
11294 "that is: a) the disposition of the signal is reset to the default when the "
11295 "handler is invoked; b) delivery of further instances of the signal is not "
11296 "blocked while the signal handler is executing; and c) if the handler "
11297 "interrupts (certain) blocking system calls, then the system call is not "
11298 "automatically restarted."
11299 msgstr ""
11300 "しかしながら、 B<sysv_signal>()  は System V の信頼性に欠けるシグナル処理方式"
11301 "を提供している。 信頼性に欠けるシグナル処理方式は以下の特徴を持つ。 a) ハンド"
11302 "ラが起動されると、シグナルの処理方法 (disposition) が デフォルトにリセットさ"
11303 "れる、 b) シグナルハンドラの実行中は、それ以降に発生した同じシグナルの配送が "
11304 "ブロックされない、 c) ハンドラが停止中の (blocking している) システムコールを"
11305 "中断した場合、 自動的に再開されないシステムコールがある。"
11306
11307 #. type: Plain text
11308 #: build/C/man3/sysv_signal.3:57
11309 msgid ""
11310 "The B<sysv_signal>()  function returns the previous value of the signal "
11311 "handler, or B<SIG_ERR> on error."
11312 msgstr ""
11313 "B<sysv_signal>()  関数はシグナルハンドラの直前の値を返す。 エラーの場合、 "
11314 "B<SIG_ERR> を返す。"
11315
11316 #. type: Plain text
11317 #: build/C/man3/sysv_signal.3:65
11318 msgid "The B<sysv_signal>()  function is thread-safe."
11319 msgstr "B<sysv_signal>() 関数はスレッドセーフである。"
11320
11321 #. type: Plain text
11322 #: build/C/man3/sysv_signal.3:67
11323 msgid "This function is nonstandard."
11324 msgstr "この関数は非標準である。"
11325
11326 #. type: Plain text
11327 #: build/C/man3/sysv_signal.3:73
11328 msgid ""
11329 "Use of B<sysv_signal>()  should be avoided; use B<sigaction>(2)  instead."
11330 msgstr ""
11331 "B<sysv_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使う"
11332 "こと。"
11333
11334 #. type: Plain text
11335 #: build/C/man3/sysv_signal.3:84
11336 msgid ""
11337 "On older Linux systems, B<sysv_signal>()  and B<signal>(2)  were "
11338 "equivalent.  But on newer systems, B<signal>(2)  provides reliable signal "
11339 "semantics; see B<signal>(2)  for details."
11340 msgstr ""
11341 "以前の Linux システムでは、 B<sysv_signal>()  と B<signal>(2)  は等価であっ"
11342 "た。しかし、新しめのシステムでは、 B<signal>(2)  は信頼性のあるシグナル処理方"
11343 "式を提供している。 詳細は B<signal>(2)  を参照。"
11344
11345 #. type: Plain text
11346 #: build/C/man3/sysv_signal.3:97
11347 msgid "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
11348 msgstr "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
11349
11350 #. type: TH
11351 #: build/C/man2/timer_create.2:31
11352 #, no-wrap
11353 msgid "TIMER_CREATE"
11354 msgstr "TIMER_CREATE"
11355
11356 #. type: TH
11357 #: build/C/man2/timer_create.2:31
11358 #, no-wrap
11359 msgid "2014-01-20"
11360 msgstr "2014-01-20"
11361
11362 #. type: Plain text
11363 #: build/C/man2/timer_create.2:34
11364 msgid "timer_create - create a POSIX per-process timer"
11365 msgstr ""
11366
11367 #. type: Plain text
11368 #: build/C/man2/timer_create.2:38
11369 #, no-wrap
11370 msgid ""
11371 "B<#include E<lt>signal.hE<gt>>\n"
11372 "B<#include E<lt>time.hE<gt>>\n"
11373 msgstr ""
11374 "B<#include E<lt>signal.hE<gt>>\n"
11375 "B<#include E<lt>time.hE<gt>>\n"
11376
11377 #. type: Plain text
11378 #: build/C/man2/timer_create.2:41
11379 #, no-wrap
11380 msgid ""
11381 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
11382 "B<                 timer_t *>I<timerid>B<);>\n"
11383 msgstr ""
11384 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
11385 "B<                 timer_t *>I<timerid>B<);>\n"
11386
11387 #. type: Plain text
11388 #: build/C/man2/timer_create.2:44 build/C/man2/timer_delete.2:37
11389 #: build/C/man2/timer_getoverrun.2:37 build/C/man2/timer_settime.2:41
11390 msgid "Link with I<-lrt>."
11391 msgstr "I<-lrt> でリンクする。"
11392
11393 #. type: Plain text
11394 #: build/C/man2/timer_create.2:52
11395 msgid "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11396 msgstr "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11397
11398 #. type: Plain text
11399 #: build/C/man2/timer_create.2:60
11400 msgid ""
11401 "B<timer_create>()  creates a new per-process interval timer.  The ID of the "
11402 "new timer is returned in the buffer pointed to by I<timerid>, which must be "
11403 "a non-null pointer.  This ID is unique within the process, until the timer "
11404 "is deleted.  The new timer is initially disarmed."
11405 msgstr ""
11406
11407 #. type: Plain text
11408 #: build/C/man2/timer_create.2:65
11409 msgid ""
11410 "The I<clockid> argument specifies the clock that the new timer uses to "
11411 "measure time.  It can be specified as one of the following values:"
11412 msgstr ""
11413
11414 #. type: TP
11415 #: build/C/man2/timer_create.2:65
11416 #, no-wrap
11417 msgid "B<CLOCK_REALTIME>"
11418 msgstr "B<CLOCK_REALTIME>"
11419
11420 #. type: Plain text
11421 #: build/C/man2/timer_create.2:68
11422 msgid "A settable system-wide real-time clock."
11423 msgstr ""
11424
11425 #. type: TP
11426 #: build/C/man2/timer_create.2:68
11427 #, no-wrap
11428 msgid "B<CLOCK_MONOTONIC>"
11429 msgstr "B<CLOCK_MONOTONIC>"
11430
11431 #.  Note: the CLOCK_MONOTONIC_RAW clock added for clock_gettime()
11432 #.  in 2.6.28 is not supported for POSIX timers -- mtk, Feb 2009
11433 #. type: Plain text
11434 #: build/C/man2/timer_create.2:75
11435 msgid ""
11436 "A nonsettable monotonically increasing clock that measures time from some "
11437 "unspecified point in the past that does not change after system startup."
11438 msgstr ""
11439
11440 #. type: TP
11441 #: build/C/man2/timer_create.2:75
11442 #, no-wrap
11443 msgid "B<CLOCK_PROCESS_CPUTIME_ID> (since Linux 2.6.12)"
11444 msgstr ""
11445
11446 #. type: Plain text
11447 #: build/C/man2/timer_create.2:79
11448 msgid ""
11449 "A clock that measures (user and system) CPU time consumed by (all of the "
11450 "threads in) the calling process."
11451 msgstr ""
11452
11453 #. type: TP
11454 #: build/C/man2/timer_create.2:79
11455 #, no-wrap
11456 msgid "B<CLOCK_THREAD_CPUTIME_ID> (since Linux 2.6.12)"
11457 msgstr ""
11458
11459 #.  The CLOCK_MONOTONIC_RAW that was added in 2.6.28 can't be used
11460 #.  to create a timer -- mtk, Feb 2009
11461 #. type: Plain text
11462 #: build/C/man2/timer_create.2:85
11463 msgid ""
11464 "A clock that measures (user and system) CPU time consumed by the calling "
11465 "thread."
11466 msgstr ""
11467
11468 #. type: Plain text
11469 #: build/C/man2/timer_create.2:94
11470 msgid ""
11471 "As well as the above values, I<clockid> can be specified as the I<clockid> "
11472 "returned by a call to B<clock_getcpuclockid>(3)  or "
11473 "B<pthread_getcpuclockid>(3)."
11474 msgstr ""
11475
11476 #. type: Plain text
11477 #: build/C/man2/timer_create.2:103
11478 msgid ""
11479 "The I<sevp> argument points to a I<sigevent> structure that specifies how "
11480 "the caller should be notified when the timer expires.  For the definition "
11481 "and general details of this structure, see B<sigevent>(7)."
11482 msgstr ""
11483
11484 #. type: Plain text
11485 #: build/C/man2/timer_create.2:107
11486 msgid "The I<sevp.sigev_notify> field can have the following values:"
11487 msgstr ""
11488
11489 #. type: Plain text
11490 #: build/C/man2/timer_create.2:112
11491 msgid ""
11492 "Don't asynchronously notify when the timer expires.  Progress of the timer "
11493 "can be monitored using B<timer_gettime>(2)."
11494 msgstr ""
11495
11496 #. type: Plain text
11497 #: build/C/man2/timer_create.2:130
11498 msgid ""
11499 "Upon timer expiration, generate the signal I<sigev_signo> for the process.  "
11500 "See B<sigevent>(7)  for general details.  The I<si_code> field of the "
11501 "I<siginfo_t> structure will be set to B<SI_TIMER>.  At any point in time, at "
11502 "most one signal is queued to the process for a given timer; see "
11503 "B<timer_getoverrun>(2)  for more details."
11504 msgstr ""
11505
11506 #. type: Plain text
11507 #: build/C/man2/timer_create.2:138
11508 msgid ""
11509 "Upon timer expiration, invoke I<sigev_notify_function> as if it were the "
11510 "start function of a new thread.  See B<sigevent>(7)  for details."
11511 msgstr ""
11512
11513 #. type: Plain text
11514 #: build/C/man2/timer_create.2:152
11515 msgid ""
11516 "As for B<SIGEV_SIGNAL>, but the signal is targeted at the thread whose ID is "
11517 "given in I<sigev_notify_thread_id>, which must be a thread in the same "
11518 "process as the caller.  The I<sigev_notify_thread_id> field specifies a "
11519 "kernel thread ID, that is, the value returned by B<clone>(2)  or "
11520 "B<gettid>(2).  This flag is intended only for use by threading libraries."
11521 msgstr ""
11522
11523 #. type: Plain text
11524 #: build/C/man2/timer_create.2:167
11525 msgid ""
11526 "Specifying I<sevp> as NULL is equivalent to specifying a pointer to a "
11527 "I<sigevent> structure in which I<sigev_notify> is B<SIGEV_SIGNAL>, "
11528 "I<sigev_signo> is B<SIGALRM>, and I<sigev_value.sival_int> is the timer ID."
11529 msgstr ""
11530
11531 #. type: Plain text
11532 #: build/C/man2/timer_create.2:175
11533 msgid ""
11534 "On success, B<timer_create>()  returns 0, and the ID of the new timer is "
11535 "placed in I<*timerid>.  On failure, -1 is returned, and I<errno> is set to "
11536 "indicate the error."
11537 msgstr ""
11538
11539 #. type: Plain text
11540 #: build/C/man2/timer_create.2:179
11541 msgid "Temporary error during kernel allocation of timer structures."
11542 msgstr ""
11543
11544 #. type: Plain text
11545 #: build/C/man2/timer_create.2:187
11546 msgid ""
11547 "Clock ID, I<sigev_notify>, I<sigev_signo>, or I<sigev_notify_thread_id> is "
11548 "invalid."
11549 msgstr ""
11550
11551 #.  glibc layer: malloc()
11552 #. type: Plain text
11553 #: build/C/man2/timer_create.2:191
11554 msgid "Could not allocate memory."
11555 msgstr ""
11556
11557 #. type: Plain text
11558 #: build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:67
11559 #: build/C/man2/timer_getoverrun.2:97
11560 msgid "This system call is available since Linux 2.6."
11561 msgstr "このシステムコールは Linux 2.6 以降で利用できる。"
11562
11563 #. type: Plain text
11564 #: build/C/man2/timer_create.2:198
11565 msgid "A program may create multiple interval timers using B<timer_create>()."
11566 msgstr ""
11567
11568 #. type: Plain text
11569 #: build/C/man2/timer_create.2:203
11570 msgid ""
11571 "Timers are not inherited by the child of a B<fork>(2), and are disarmed and "
11572 "deleted during an B<execve>(2)."
11573 msgstr ""
11574
11575 #. type: Plain text
11576 #: build/C/man2/timer_create.2:211
11577 msgid ""
11578 "The kernel preallocates a \"queued real-time signal\" for each timer created "
11579 "using B<timer_create>().  Consequently, the number of timers is limited by "
11580 "the B<RLIMIT_SIGPENDING> resource limit (see B<setrlimit>(2))."
11581 msgstr ""
11582
11583 #. type: Plain text
11584 #: build/C/man2/timer_create.2:216
11585 msgid ""
11586 "The timers created by B<timer_create>()  are commonly known as \"POSIX "
11587 "(interval) timers\".  The POSIX timers API consists of the following "
11588 "interfaces:"
11589 msgstr ""
11590
11591 #. type: Plain text
11592 #: build/C/man2/timer_create.2:219
11593 msgid "B<timer_create>(): Create a timer."
11594 msgstr ""
11595
11596 #. type: Plain text
11597 #: build/C/man2/timer_create.2:222
11598 msgid "B<timer_settime>(2): Arm (start) or disarm (stop) a timer."
11599 msgstr ""
11600
11601 #. type: Plain text
11602 #: build/C/man2/timer_create.2:226
11603 msgid ""
11604 "B<timer_gettime>(2): Fetch the time remaining until the next expiration of a "
11605 "timer, along with the interval setting of the timer."
11606 msgstr ""
11607
11608 #. type: Plain text
11609 #: build/C/man2/timer_create.2:229
11610 msgid ""
11611 "B<timer_getoverrun>(2): Return the overrun count for the last timer "
11612 "expiration."
11613 msgstr ""
11614
11615 #. type: Plain text
11616 #: build/C/man2/timer_create.2:232
11617 msgid "B<timer_delete>(2): Disarm and delete a timer."
11618 msgstr ""
11619
11620 #. type: Plain text
11621 #: build/C/man2/timer_create.2:235
11622 msgid ""
11623 "Part of the implementation of the POSIX timers API is provided by glibc.  In "
11624 "particular:"
11625 msgstr ""
11626
11627 #. type: Plain text
11628 #: build/C/man2/timer_create.2:239
11629 msgid ""
11630 "The functionality for B<SIGEV_THREAD> is implemented within glibc, rather "
11631 "than the kernel."
11632 msgstr ""
11633
11634 #.  See the glibc source file kernel-posix-timers.h for the structure
11635 #.  that glibc uses to map user-space timer IDs to kernel timer IDs
11636 #.  The kernel-level timer ID is exposed via siginfo.si_tid.
11637 #. type: Plain text
11638 #: build/C/man2/timer_create.2:245
11639 msgid ""
11640 "The timer IDs presented at user level are maintained by glibc, which maps "
11641 "these IDs to the timer IDs employed by the kernel."
11642 msgstr ""
11643
11644 #. type: Plain text
11645 #: build/C/man2/timer_create.2:253
11646 msgid ""
11647 "The POSIX timers system calls first appeared in Linux 2.6.  Prior to this, "
11648 "glibc provided an incomplete user-space implementation (B<CLOCK_REALTIME> "
11649 "timers only) using POSIX threads, and current glibc falls back to this "
11650 "implementation on systems running pre-2.6 Linux kernels."
11651 msgstr ""
11652
11653 #. type: Plain text
11654 #: build/C/man2/timer_create.2:261
11655 msgid ""
11656 "Since Linux 3.10, the I</proc/[pid]/timers> file can be used to list the "
11657 "POSIX timers for the process with PID I<pid>.  See B<proc>(5)  for further "
11658 "information."
11659 msgstr ""
11660
11661 #. type: Plain text
11662 #: build/C/man2/timer_create.2:273
11663 msgid ""
11664 "The program below takes two arguments: a sleep period in seconds, and a "
11665 "timer frequency in nanoseconds.  The program establishes a handler for the "
11666 "signal it uses for the timer, blocks that signal, creates and arms a timer "
11667 "that expires with the given frequency, sleeps for the specified number of "
11668 "seconds, and then unblocks the timer signal.  Assuming that the timer "
11669 "expired at least once while the program slept, the signal handler will be "
11670 "invoked, and the handler displays some information about the timer "
11671 "notification.  The program terminates after one invocation of the signal "
11672 "handler."
11673 msgstr ""
11674
11675 #. type: Plain text
11676 #: build/C/man2/timer_create.2:278
11677 msgid ""
11678 "In the following example run, the program sleeps for 1 second, after "
11679 "creating a timer that has a frequency of 100 nanoseconds.  By the time the "
11680 "signal is unblocked and delivered, there have been around ten million "
11681 "overruns."
11682 msgstr ""
11683
11684 #. type: Plain text
11685 #: build/C/man2/timer_create.2:290
11686 #, no-wrap
11687 msgid ""
11688 "$ B<./a.out 1 100>\n"
11689 "Establishing handler for signal 34\n"
11690 "Blocking signal 34\n"
11691 "timer ID is 0x804c008\n"
11692 "Sleeping for 1 seconds\n"
11693 "Unblocking signal 34\n"
11694 "Caught signal 34\n"
11695 "    sival_ptr = 0xbfb174f4;     *sival_ptr = 0x804c008\n"
11696 "    overrun count = 10004886\n"
11697 msgstr ""
11698
11699 #. type: Plain text
11700 #: build/C/man2/timer_create.2:300
11701 #, no-wrap
11702 msgid ""
11703 "#include E<lt>stdlib.hE<gt>\n"
11704 "#include E<lt>unistd.hE<gt>\n"
11705 "#include E<lt>stdio.hE<gt>\n"
11706 "#include E<lt>signal.hE<gt>\n"
11707 "#include E<lt>time.hE<gt>\n"
11708 msgstr ""
11709 "#include E<lt>stdlib.hE<gt>\n"
11710 "#include E<lt>unistd.hE<gt>\n"
11711 "#include E<lt>stdio.hE<gt>\n"
11712 "#include E<lt>signal.hE<gt>\n"
11713 "#include E<lt>time.hE<gt>\n"
11714
11715 #. type: Plain text
11716 #: build/C/man2/timer_create.2:303
11717 #, no-wrap
11718 msgid ""
11719 "#define CLOCKID CLOCK_REALTIME\n"
11720 "#define SIG SIGRTMIN\n"
11721 msgstr ""
11722 "#define CLOCKID CLOCK_REALTIME\n"
11723 "#define SIG SIGRTMIN\n"
11724
11725 #. type: Plain text
11726 #: build/C/man2/timer_create.2:306
11727 #, no-wrap
11728 msgid ""
11729 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11730 "                        } while (0)\n"
11731 msgstr ""
11732 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11733 "                        } while (0)\n"
11734
11735 #. type: Plain text
11736 #: build/C/man2/timer_create.2:312
11737 #, no-wrap
11738 msgid ""
11739 "static void\n"
11740 "print_siginfo(siginfo_t *si)\n"
11741 "{\n"
11742 "    timer_t *tidp;\n"
11743 "    int or;\n"
11744 msgstr ""
11745 "static void\n"
11746 "print_siginfo(siginfo_t *si)\n"
11747 "{\n"
11748 "    timer_t *tidp;\n"
11749 "    int or;\n"
11750
11751 #. type: Plain text
11752 #: build/C/man2/timer_create.2:314
11753 #, no-wrap
11754 msgid "    tidp = si-E<gt>si_value.sival_ptr;\n"
11755 msgstr "    tidp = si-E<gt>si_value.sival_ptr;\n"
11756
11757 #. type: Plain text
11758 #: build/C/man2/timer_create.2:317
11759 #, no-wrap
11760 msgid ""
11761 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11762 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11763 msgstr ""
11764 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11765 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11766
11767 #. type: Plain text
11768 #: build/C/man2/timer_create.2:324
11769 #, no-wrap
11770 msgid ""
11771 "    or = timer_getoverrun(*tidp);\n"
11772 "    if (or == -1)\n"
11773 "        errExit(\"timer_getoverrun\");\n"
11774 "    else\n"
11775 "        printf(\"    overrun count = %d\\en\", or);\n"
11776 "}\n"
11777 msgstr ""
11778 "    or = timer_getoverrun(*tidp);\n"
11779 "    if (or == -1)\n"
11780 "        errExit(\"timer_getoverrun\");\n"
11781 "    else\n"
11782 "        printf(\"    overrun count = %d\\en\", or);\n"
11783 "}\n"
11784
11785 #. type: Plain text
11786 #: build/C/man2/timer_create.2:331
11787 #, no-wrap
11788 msgid ""
11789 "static void\n"
11790 "handler(int sig, siginfo_t *si, void *uc)\n"
11791 "{\n"
11792 "    /* Note: calling printf() from a signal handler is not\n"
11793 "       strictly correct, since printf() is not async-signal-safe;\n"
11794 "       see signal(7) */\n"
11795 msgstr ""
11796 "static void\n"
11797 "handler(int sig, siginfo_t *si, void *uc)\n"
11798 "{\n"
11799 "    /* Note: calling printf() from a signal handler is not\n"
11800 "       strictly correct, since printf() is not async-signal-safe;\n"
11801 "       see signal(7) */\n"
11802
11803 #. type: Plain text
11804 #: build/C/man2/timer_create.2:336
11805 #, no-wrap
11806 msgid ""
11807 "    printf(\"Caught signal %d\\en\", sig);\n"
11808 "    print_siginfo(si);\n"
11809 "    signal(sig, SIG_IGN);\n"
11810 "}\n"
11811 msgstr ""
11812 "    printf(\"Caught signal %d\\en\", sig);\n"
11813 "    print_siginfo(si);\n"
11814 "    signal(sig, SIG_IGN);\n"
11815 "}\n"
11816
11817 #. type: Plain text
11818 #: build/C/man2/timer_create.2:346
11819 #, no-wrap
11820 msgid ""
11821 "int\n"
11822 "main(int argc, char *argv[])\n"
11823 "{\n"
11824 "    timer_t timerid;\n"
11825 "    struct sigevent sev;\n"
11826 "    struct itimerspec its;\n"
11827 "    long long freq_nanosecs;\n"
11828 "    sigset_t mask;\n"
11829 "    struct sigaction sa;\n"
11830 msgstr ""
11831 "int\n"
11832 "main(int argc, char *argv[])\n"
11833 "{\n"
11834 "    timer_t timerid;\n"
11835 "    struct sigevent sev;\n"
11836 "    struct itimerspec its;\n"
11837 "    long long freq_nanosecs;\n"
11838 "    sigset_t mask;\n"
11839 "    struct sigaction sa;\n"
11840
11841 #. type: Plain text
11842 #: build/C/man2/timer_create.2:352
11843 #, no-wrap
11844 msgid ""
11845 "    if (argc != 3) {\n"
11846 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11847 "                argv[0]);\n"
11848 "        exit(EXIT_FAILURE);\n"
11849 "    }\n"
11850 msgstr ""
11851 "    if (argc != 3) {\n"
11852 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11853 "                argv[0]);\n"
11854 "        exit(EXIT_FAILURE);\n"
11855 "    }\n"
11856
11857 #. type: Plain text
11858 #: build/C/man2/timer_create.2:354
11859 #, no-wrap
11860 msgid "    /* Establish handler for timer signal */\n"
11861 msgstr "    /* Establish handler for timer signal */\n"
11862
11863 #. type: Plain text
11864 #: build/C/man2/timer_create.2:361
11865 #, no-wrap
11866 msgid ""
11867 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11868 "    sa.sa_flags = SA_SIGINFO;\n"
11869 "    sa.sa_sigaction = handler;\n"
11870 "    sigemptyset(&sa.sa_mask);\n"
11871 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11872 "        errExit(\"sigaction\");\n"
11873 msgstr ""
11874 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11875 "    sa.sa_flags = SA_SIGINFO;\n"
11876 "    sa.sa_sigaction = handler;\n"
11877 "    sigemptyset(&sa.sa_mask);\n"
11878 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11879 "        errExit(\"sigaction\");\n"
11880
11881 #. type: Plain text
11882 #: build/C/man2/timer_create.2:363
11883 #, no-wrap
11884 msgid "    /* Block timer signal temporarily */\n"
11885 msgstr "    /* Block timer signal temporarily */\n"
11886
11887 #. type: Plain text
11888 #: build/C/man2/timer_create.2:369
11889 #, no-wrap
11890 msgid ""
11891 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11892 "    sigemptyset(&mask);\n"
11893 "    sigaddset(&mask, SIG);\n"
11894 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11895 "        errExit(\"sigprocmask\");\n"
11896 msgstr ""
11897 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11898 "    sigemptyset(&mask);\n"
11899 "    sigaddset(&mask, SIG);\n"
11900 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11901 "        errExit(\"sigprocmask\");\n"
11902
11903 #. type: Plain text
11904 #: build/C/man2/timer_create.2:371
11905 #, no-wrap
11906 msgid "    /* Create the timer */\n"
11907 msgstr "    /* Create the timer */\n"
11908
11909 #. type: Plain text
11910 #: build/C/man2/timer_create.2:377
11911 #, no-wrap
11912 msgid ""
11913 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11914 "    sev.sigev_signo = SIG;\n"
11915 "    sev.sigev_value.sival_ptr = &timerid;\n"
11916 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11917 "        errExit(\"timer_create\");\n"
11918 msgstr ""
11919 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11920 "    sev.sigev_signo = SIG;\n"
11921 "    sev.sigev_value.sival_ptr = &timerid;\n"
11922 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11923 "        errExit(\"timer_create\");\n"
11924
11925 #. type: Plain text
11926 #: build/C/man2/timer_create.2:379
11927 #, no-wrap
11928 msgid "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11929 msgstr "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11930
11931 #. type: Plain text
11932 #: build/C/man2/timer_create.2:381
11933 #, no-wrap
11934 msgid "    /* Start the timer */\n"
11935 msgstr "    /* Start the timer */\n"
11936
11937 #. type: Plain text
11938 #: build/C/man2/timer_create.2:387
11939 #, no-wrap
11940 msgid ""
11941 "    freq_nanosecs = atoll(argv[2]);\n"
11942 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11943 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11944 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11945 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11946 msgstr ""
11947 "    freq_nanosecs = atoll(argv[2]);\n"
11948 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11949 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11950 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11951 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11952
11953 #. type: Plain text
11954 #: build/C/man2/timer_create.2:390
11955 #, no-wrap
11956 msgid ""
11957 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11958 "         errExit(\"timer_settime\");\n"
11959 msgstr ""
11960 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11961 "         errExit(\"timer_settime\");\n"
11962
11963 #. type: Plain text
11964 #: build/C/man2/timer_create.2:393
11965 #, no-wrap
11966 msgid ""
11967 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11968 "       multiple times */\n"
11969 msgstr ""
11970 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11971 "       multiple times */\n"
11972
11973 #. type: Plain text
11974 #: build/C/man2/timer_create.2:396
11975 #, no-wrap
11976 msgid ""
11977 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11978 "    sleep(atoi(argv[1]));\n"
11979 msgstr ""
11980 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11981 "    sleep(atoi(argv[1]));\n"
11982
11983 #. type: Plain text
11984 #: build/C/man2/timer_create.2:399
11985 #, no-wrap
11986 msgid ""
11987 "    /* Unlock the timer signal, so that timer notification\n"
11988 "       can be delivered */\n"
11989 msgstr ""
11990 "    /* Unlock the timer signal, so that timer notification\n"
11991 "       can be delivered */\n"
11992
11993 #. type: Plain text
11994 #: build/C/man2/timer_create.2:403
11995 #, no-wrap
11996 msgid ""
11997 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
11998 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
11999 "        errExit(\"sigprocmask\");\n"
12000 msgstr ""
12001 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
12002 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
12003 "        errExit(\"sigprocmask\");\n"
12004
12005 #. type: Plain text
12006 #: build/C/man2/timer_create.2:406 build/C/man2/timerfd_create.2:540
12007 #, no-wrap
12008 msgid ""
12009 "    exit(EXIT_SUCCESS);\n"
12010 "}\n"
12011 msgstr ""
12012 "    exit(EXIT_SUCCESS);\n"
12013 "}\n"
12014
12015 #. type: Plain text
12016 #: build/C/man2/timer_create.2:422
12017 msgid ""
12018 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), "
12019 "B<timer_getoverrun>(2), B<timer_settime>(2), B<timerfd_create>(2), "
12020 "B<clock_getcpuclockid>(3), B<pthread_getcpuclockid>(3), B<pthreads>(7), "
12021 "B<sigevent>(7), B<signal>(7), B<time>(7)"
12022 msgstr ""
12023 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), "
12024 "B<timer_getoverrun>(2), B<timer_settime>(2), B<timerfd_create>(2), "
12025 "B<clock_getcpuclockid>(3), B<pthread_getcpuclockid>(3), B<pthreads>(7), "
12026 "B<sigevent>(7), B<signal>(7), B<time>(7)"
12027
12028 #. type: TH
12029 #: build/C/man2/timer_delete.2:26
12030 #, no-wrap
12031 msgid "TIMER_DELETE"
12032 msgstr "TIMER_DELETE"
12033
12034 #. type: TH
12035 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
12036 #, no-wrap
12037 msgid "2009-02-20"
12038 msgstr "2009-02-20"
12039
12040 #. type: Plain text
12041 #: build/C/man2/timer_delete.2:29
12042 msgid "timer_delete - delete a POSIX per-process timer"
12043 msgstr "timer_delete - プロセス単位の POSIX タイマーを削除する"
12044
12045 #. type: Plain text
12046 #: build/C/man2/timer_delete.2:32 build/C/man2/timer_getoverrun.2:32
12047 #: build/C/man2/timer_settime.2:33
12048 #, no-wrap
12049 msgid "B<#include E<lt>time.hE<gt>>\n"
12050 msgstr "B<#include E<lt>time.hE<gt>>\n"
12051
12052 #. type: Plain text
12053 #: build/C/man2/timer_delete.2:34
12054 #, no-wrap
12055 msgid "B<int timer_delete(timer_t >I<timerid>B<);>\n"
12056 msgstr "B<int timer_delete(timer_t >I<timerid>B<);>\n"
12057
12058 #. type: Plain text
12059 #: build/C/man2/timer_delete.2:45
12060 msgid "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12061 msgstr "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12062
12063 #. type: Plain text
12064 #: build/C/man2/timer_delete.2:53
12065 msgid ""
12066 "B<timer_delete>()  deletes the timer whose ID is given in I<timerid>.  If "
12067 "the timer was armed at the time of this call, it is disarmed before being "
12068 "deleted.  The treatment of any pending signal generated by the deleted timer "
12069 "is unspecified."
12070 msgstr ""
12071 "B<timer_delete>() は I<timerid> で指定された ID のタイマーを削除する。 "
12072 "B<timer_delete>() が呼び出された時点でタイマーが開始されている場合は、 削除す"
12073 "る前にタイマーの解除が行われる。 削除されるタイマーにより生成された処理待ちシ"
12074 "グナルの扱いは不定 (unspecified) である。"
12075
12076 #. type: Plain text
12077 #: build/C/man2/timer_delete.2:60
12078 msgid ""
12079 "On success, B<timer_delete>()  returns 0.  On failure, -1 is returned, and "
12080 "I<errno> is set to indicate the error."
12081 msgstr ""
12082 "成功すると、 B<timer_delete>() は 0 を返す。 失敗すると、 -1 が返り、 "
12083 "I<errno> にエラーを示す値が設定される。"
12084
12085 #. type: Plain text
12086 #: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
12087 msgid "I<timerid> is not a valid timer ID."
12088 msgstr "I<timerid> が有効なタイマー ID ではない。"
12089
12090 #. type: Plain text
12091 #: build/C/man2/timer_delete.2:75
12092 msgid ""
12093 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
12094 "B<timer_settime>(2), B<time>(7)"
12095 msgstr ""
12096 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
12097 "B<timer_settime>(2), B<time>(7)"
12098
12099 #. type: TH
12100 #: build/C/man2/timer_getoverrun.2:26
12101 #, no-wrap
12102 msgid "TIMER_GETOVERRUN"
12103 msgstr "TIMER_GETOVERRUN"
12104
12105 #. type: Plain text
12106 #: build/C/man2/timer_getoverrun.2:29
12107 msgid "timer_getoverrun - get overrun count for a POSIX per-process timer"
12108 msgstr ""
12109
12110 #. type: Plain text
12111 #: build/C/man2/timer_getoverrun.2:34
12112 #, no-wrap
12113 msgid "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
12114 msgstr "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
12115
12116 #. type: Plain text
12117 #: build/C/man2/timer_getoverrun.2:45
12118 msgid "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12119 msgstr "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12120
12121 #. type: Plain text
12122 #: build/C/man2/timer_getoverrun.2:56
12123 msgid ""
12124 "B<timer_getoverrun>()  returns the \"overrun count\" for the timer referred "
12125 "to by I<timerid>.  An application can use the overrun count to accurately "
12126 "calculate the number of timer expirations that would have occurred over a "
12127 "given time interval.  Timer overruns can occur both when receiving "
12128 "expiration notifications via signals (B<SIGEV_SIGNAL>), and via threads "
12129 "(B<SIGEV_THREAD>)."
12130 msgstr ""
12131
12132 #. type: Plain text
12133 #: build/C/man2/timer_getoverrun.2:76
12134 msgid ""
12135 "When expiration notifications are delivered via a signal, overruns can occur "
12136 "as follows.  Regardless of whether or not a real-time signal is used for "
12137 "timer notifications, the system queues at most one signal per timer.  (This "
12138 "is the behavior specified by POSIX.1-2001.  The alternative, queuing one "
12139 "signal for each timer expiration, could easily result in overflowing the "
12140 "allowed limits for queued signals on the system.)  Because of system "
12141 "scheduling delays, or because the signal may be temporarily blocked, there "
12142 "can be a delay between the time when the notification signal is generated "
12143 "and the time when it is delivered (e.g., caught by a signal handler) or "
12144 "accepted (e.g., using B<sigwaitinfo>(2)).  In this interval, further timer "
12145 "expirations may occur.  The timer overrun count is the number of additional "
12146 "timer expirations that occurred between the time when the signal was "
12147 "generated and when it was delivered or accepted."
12148 msgstr ""
12149
12150 #. type: Plain text
12151 #: build/C/man2/timer_getoverrun.2:82
12152 msgid ""
12153 "Timer overruns can also occur when expiration notifications are delivered "
12154 "via invocation of a thread, since there may be an arbitrary delay between an "
12155 "expiration of the timer and the invocation of the notification thread, and "
12156 "in that delay interval, additional timer expirations may occur."
12157 msgstr ""
12158
12159 #. type: Plain text
12160 #: build/C/man2/timer_getoverrun.2:90
12161 msgid ""
12162 "On success, B<timer_getoverrun>()  returns the overrun count of the "
12163 "specified timer; this count may be 0 if no overruns have occurred.  On "
12164 "failure, -1 is returned, and I<errno> is set to indicate the error."
12165 msgstr ""
12166
12167 #. type: Plain text
12168 #: build/C/man2/timer_getoverrun.2:111
12169 msgid ""
12170 "When timer notifications are delivered via signals (B<SIGEV_SIGNAL>), on "
12171 "Linux it is also possible to obtain the overrun count via the I<si_overrun> "
12172 "field of the I<siginfo_t> structure (see B<sigaction>(2)).  This allows an "
12173 "application to avoid the overhead of making a system call to obtain the "
12174 "overrun count, but is a nonportable extension to POSIX.1-2001."
12175 msgstr ""
12176
12177 #.  FIXME . Austin bug filed, 11 Feb 09
12178 #. type: Plain text
12179 #: build/C/man2/timer_getoverrun.2:115
12180 msgid ""
12181 "POSIX.1-2001 discusses timer overruns only in the context of timer "
12182 "notifications using signals."
12183 msgstr ""
12184
12185 #.  Bug filed: http://bugzilla.kernel.org/show_bug.cgi?id=12665
12186 #.  http://thread.gmane.org/gmane.linux.kernel/113276/
12187 #. type: Plain text
12188 #: build/C/man2/timer_getoverrun.2:128
12189 msgid ""
12190 "POSIX.1-2001 specifies that if the timer overrun count is equal to or "
12191 "greater than an implementation-defined maximum, B<DELAYTIMER_MAX>, then "
12192 "B<timer_getoverrun>()  should return B<DELAYTIMER_MAX>.  However, Linux does "
12193 "not implement this feature: instead, if the timer overrun value exceeds the "
12194 "maximum representable integer, the counter cycles, starting once more from "
12195 "low values."
12196 msgstr ""
12197
12198 #. type: Plain text
12199 #: build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212
12200 msgid "See B<timer_create>(2)."
12201 msgstr ""
12202
12203 #. type: Plain text
12204 #: build/C/man2/timer_getoverrun.2:141
12205 msgid ""
12206 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
12207 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
12208 "B<time>(7)"
12209 msgstr ""
12210 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
12211 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
12212 "B<time>(7)"
12213
12214 #. type: TH
12215 #: build/C/man2/timer_settime.2:26
12216 #, no-wrap
12217 msgid "TIMER_SETTIME"
12218 msgstr "TIMER_SETTIME"
12219
12220 #. type: TH
12221 #: build/C/man2/timer_settime.2:26
12222 #, no-wrap
12223 msgid "2012-10-15"
12224 msgstr "2012-10-15"
12225
12226 #. type: Plain text
12227 #: build/C/man2/timer_settime.2:30
12228 msgid ""
12229 "timer_settime, timer_gettime - arm/disarm and fetch state of POSIX per-"
12230 "process timer"
12231 msgstr ""
12232
12233 #. type: Plain text
12234 #: build/C/man2/timer_settime.2:38
12235 #, no-wrap
12236 msgid ""
12237 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
12238 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
12239 "B<                  struct itimerspec * >I<old_value>B<);>\n"
12240 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
12241 msgstr ""
12242 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
12243 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
12244 "B<                  struct itimerspec * >I<old_value>B<);>\n"
12245 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
12246
12247 #. type: Plain text
12248 #: build/C/man2/timer_settime.2:50
12249 msgid ""
12250 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12251 msgstr ""
12252 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12253
12254 #. type: Plain text
12255 #: build/C/man2/timer_settime.2:63
12256 msgid ""
12257 "B<timer_settime>()  arms or disarms the timer identified by I<timerid>.  The "
12258 "I<new_value> argument is pointer to an I<itimerspec> structure that "
12259 "specifies the new initial value and the new interval for the timer.  The "
12260 "I<itimerspec> structure is defined as follows:"
12261 msgstr ""
12262
12263 #. type: Plain text
12264 #: build/C/man2/timer_settime.2:70 build/C/man2/timerfd_create.2:128
12265 #, no-wrap
12266 msgid ""
12267 "struct timespec {\n"
12268 "    time_t tv_sec;                /* Seconds */\n"
12269 "    long   tv_nsec;               /* Nanoseconds */\n"
12270 "};\n"
12271 msgstr ""
12272 "struct timespec {\n"
12273 "    time_t tv_sec;                /* Seconds */\n"
12274 "    long   tv_nsec;               /* Nanoseconds */\n"
12275 "};\n"
12276
12277 #. type: Plain text
12278 #: build/C/man2/timer_settime.2:75
12279 #, no-wrap
12280 msgid ""
12281 "struct itimerspec {\n"
12282 "    struct timespec it_interval;  /* Timer interval */\n"
12283 "    struct timespec it_value;     /* Initial expiration */\n"
12284 "};\n"
12285 msgstr ""
12286 "struct itimerspec {\n"
12287 "    struct timespec it_interval;  /* Timer interval */\n"
12288 "    struct timespec it_value;     /* Initial expiration */\n"
12289 "};\n"
12290
12291 #. type: Plain text
12292 #: build/C/man2/timer_settime.2:87
12293 msgid ""
12294 "Each of the substructures of the I<itimerspec> structure is a I<timespec> "
12295 "structure that allows a time value to be specified in seconds and "
12296 "nanoseconds.  These time values are measured according to the clock that was "
12297 "specified when the timer was created by B<timer_create>(2)."
12298 msgstr ""
12299
12300 #. type: Plain text
12301 #: build/C/man2/timer_settime.2:101
12302 msgid ""
12303 "If I<new_value-E<gt>it_value> specifies a nonzero value (i.e., either "
12304 "subfield is nonzero), then B<timer_settime>()  arms (starts) the timer, "
12305 "setting it to initially expire at the given time.  (If the timer was already "
12306 "armed, then the previous settings are overwritten.)  If I<new_value-"
12307 "E<gt>it_value> specifies a zero value (i.e., both subfields are zero), then "
12308 "the timer is disarmed."
12309 msgstr ""
12310
12311 #. type: Plain text
12312 #: build/C/man2/timer_settime.2:113
12313 msgid ""
12314 "The I<new_value-E<gt>it_interval> field specifies the period of the timer, "
12315 "in seconds and nanoseconds.  If this field is nonzero, then each time that "
12316 "an armed timer expires, the timer is reloaded from the value specified in "
12317 "I<new_value-E<gt>it_interval>.  If I<new_value-E<gt>it_interval> specifies a "
12318 "zero value, then the timer expires just once, at the time specified by "
12319 "I<it_value>."
12320 msgstr ""
12321
12322 #.  By experiment: the overrun count is set correctly, for CLOCK_REALTIME.
12323 #. type: Plain text
12324 #: build/C/man2/timer_settime.2:134
12325 msgid ""
12326 "By default, the initial expiration time specified in I<new_value-"
12327 "E<gt>it_value> is interpreted relative to the current time on the timer's "
12328 "clock at the time of the call.  This can be modified by specifying "
12329 "B<TIMER_ABSTIME> in I<flags>, in which case I<new_value-E<gt>it_value> is "
12330 "interpreted as an absolute value as measured on the timer's clock; that is, "
12331 "the timer will expire when the clock value reaches the value specified by "
12332 "I<new_value-E<gt>it_value>.  If the specified absolute time has already "
12333 "passed, then the timer expires immediately, and the overrun count (see "
12334 "B<timer_getoverrun>(2))  will be set correctly."
12335 msgstr ""
12336
12337 #.  Similar remarks might apply with respect to process and thread CPU time
12338 #.  clocks, but these clocks are not currently (2.6.28) settable on Linux.
12339 #. type: Plain text
12340 #: build/C/man2/timer_settime.2:144
12341 msgid ""
12342 "If the value of the B<CLOCK_REALTIME> clock is adjusted while an absolute "
12343 "timer based on that clock is armed, then the expiration of the timer will be "
12344 "appropriately adjusted.  Adjustments to the B<CLOCK_REALTIME> clock have no "
12345 "effect on relative timers based on that clock."
12346 msgstr ""
12347
12348 #. type: Plain text
12349 #: build/C/man2/timer_settime.2:153
12350 msgid ""
12351 "If I<old_value> is not NULL, then it points to a buffer that is used to "
12352 "return the previous interval of the timer (in I<old_value-"
12353 "E<gt>it_interval>)  and the amount of time until the timer would previously "
12354 "have next expired (in I<old_value-E<gt>it_value>)."
12355 msgstr ""
12356
12357 #. type: Plain text
12358 #: build/C/man2/timer_settime.2:173
12359 msgid ""
12360 "B<timer_gettime>()  returns the time until next expiration, and the "
12361 "interval, for the timer specified by I<timerid>, in the buffer pointed to by "
12362 "I<curr_value>.  The time remaining until the next timer expiration is "
12363 "returned in I<curr_value-E<gt>it_value>; this is always a relative value, "
12364 "regardless of whether the B<TIMER_ABSTIME> flag was used when arming the "
12365 "timer.  If the value returned in I<curr_value-E<gt>it_value> is zero, then "
12366 "the timer is currently disarmed.  The timer interval is returned in "
12367 "I<curr_value-E<gt>it_interval>.  If the value returned in I<curr_value-"
12368 "E<gt>it_interval> is zero, then this is a \"one-shot\" timer."
12369 msgstr ""
12370
12371 #. type: Plain text
12372 #: build/C/man2/timer_settime.2:182
12373 msgid ""
12374 "On success, B<timer_settime>()  and B<timer_gettime>()  return 0.  On error, "
12375 "-1 is returned, and I<errno> is set to indicate the error."
12376 msgstr ""
12377
12378 #. type: Plain text
12379 #: build/C/man2/timer_settime.2:184
12380 msgid "These functions may fail with the following errors:"
12381 msgstr ""
12382
12383 #. type: Plain text
12384 #: build/C/man2/timer_settime.2:191
12385 msgid "I<new_value>, I<old_value>, or I<curr_value> is not a valid pointer."
12386 msgstr ""
12387
12388 #.  FIXME . eventually: invalid value in flags
12389 #. type: Plain text
12390 #: build/C/man2/timer_settime.2:196
12391 msgid "I<timerid> is invalid."
12392 msgstr ""
12393
12394 #. type: Plain text
12395 #: build/C/man2/timer_settime.2:199
12396 msgid "B<timer_settime>()  may fail with the following errors:"
12397 msgstr ""
12398
12399 #. type: Plain text
12400 #: build/C/man2/timer_settime.2:205
12401 msgid ""
12402 "I<new_value.it_value> is negative; or I<new_value.it_value.tv_nsec> is "
12403 "negative or greater than 999,999,999."
12404 msgstr ""
12405
12406 #. type: Plain text
12407 #: build/C/man2/timer_settime.2:207
12408 msgid "These system calls are available since Linux 2.6."
12409 msgstr "これらのシステムコールは Linux 2.6 以降で利用可能である。"
12410
12411 #. type: Plain text
12412 #: build/C/man2/timer_settime.2:216
12413 msgid "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12414 msgstr "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12415
12416 #. type: TH
12417 #: build/C/man2/timerfd_create.2:21
12418 #, no-wrap
12419 msgid "TIMERFD_CREATE"
12420 msgstr "TIMERFD_CREATE"
12421
12422 #. type: TH
12423 #: build/C/man2/timerfd_create.2:21
12424 #, no-wrap
12425 msgid "2011-09-14"
12426 msgstr "2011-09-14"
12427
12428 #. type: Plain text
12429 #: build/C/man2/timerfd_create.2:25
12430 msgid ""
12431 "timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via "
12432 "file descriptors"
12433 msgstr ""
12434 "timerfd_create, timerfd_settime, timerfd_gettime - ファイルディスクリプタ経由"
12435 "で通知するタイマー"
12436
12437 #. type: Plain text
12438 #: build/C/man2/timerfd_create.2:28
12439 #, no-wrap
12440 msgid "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12441 msgstr "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12442
12443 #. type: Plain text
12444 #: build/C/man2/timerfd_create.2:30
12445 #, no-wrap
12446 msgid "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12447 msgstr "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12448
12449 #. type: Plain text
12450 #: build/C/man2/timerfd_create.2:34
12451 #, no-wrap
12452 msgid ""
12453 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12454 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12455 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12456 msgstr ""
12457 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12458 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12459 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12460
12461 #. type: Plain text
12462 #: build/C/man2/timerfd_create.2:36
12463 #, no-wrap
12464 msgid "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12465 msgstr "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12466
12467 #. type: Plain text
12468 #: build/C/man2/timerfd_create.2:49
12469 msgid ""
12470 "These system calls create and operate on a timer that delivers timer "
12471 "expiration notifications via a file descriptor.  They provide an alternative "
12472 "to the use of B<setitimer>(2)  or B<timer_create>(2), with the advantage "
12473 "that the file descriptor may be monitored by B<select>(2), B<poll>(2), and "
12474 "B<epoll>(7)."
12475 msgstr ""
12476 "これらのシステムコールは、満了通知をファイルディスクリプタ経由で配送する タイ"
12477 "マーの生成と操作を行う。 これらは、 B<setitimer>(2)  や B<timer_create>(2)  "
12478 "を用いる方法の代わりとなるものであり、このファイルディスクリプタを "
12479 "B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
12480
12481 #. type: Plain text
12482 #: build/C/man2/timerfd_create.2:61
12483 msgid ""
12484 "The use of these three system calls is analogous to the use of "
12485 "B<timer_create>(2), B<timer_settime>(2), and B<timer_gettime>(2).  (There is "
12486 "no analog of B<timer_getoverrun>(2), since that functionality is provided by "
12487 "B<read>(2), as described below.)"
12488 msgstr ""
12489 "これらのシステムコールを使うのは、それぞれ B<timer_create>(2), "
12490 "B<timer_settime>(2), B<timer_gettime>(2)  を使うのと同様である "
12491 "(B<timer_getoverrun>(2)  に対応するものはなく、以下で説明するように この機能"
12492 "は B<read>(2)  により提供される)。"
12493
12494 #. type: SS
12495 #: build/C/man2/timerfd_create.2:61
12496 #, no-wrap
12497 msgid "timerfd_create()"
12498 msgstr "timerfd_create()"
12499
12500 #. type: Plain text
12501 #: build/C/man2/timerfd_create.2:80
12502 msgid ""
12503 "B<timerfd_create>()  creates a new timer object, and returns a file "
12504 "descriptor that refers to that timer.  The I<clockid> argument specifies the "
12505 "clock that is used to mark the progress of the timer, and must be either "
12506 "B<CLOCK_REALTIME> or B<CLOCK_MONOTONIC>.  B<CLOCK_REALTIME> is a settable "
12507 "system-wide clock.  B<CLOCK_MONOTONIC> is a nonsettable clock that is not "
12508 "affected by discontinuous changes in the system clock (e.g., manual changes "
12509 "to system time).  The current value of each of these clocks can be retrieved "
12510 "using B<clock_gettime>(2)."
12511 msgstr ""
12512 "B<timerfd_create>()  は新規のタイマーオブジェクトを生成し、そのタイマーを参照"
12513 "するファイル ディスクリプタを返す。 I<clockid> 引き数は、タイマーの進捗を管理"
12514 "するためのクロックを指定するもので、 B<CLOCK_REALTIME> か B<CLOCK_MONOTONIC> "
12515 "のいずれかでなければならない。 B<CLOCK_REALTIME> はシステム全体で使用されるク"
12516 "ロックで、このクロックは変更可能である。 B<CLOCK_MONOTONIC> は変更されること"
12517 "のないクロックで、(システム時刻の手動での変更などの)  システムクロックの不連"
12518 "続な変化の影響を受けない。 これらのクロックの現在の値は B<clock_gettime>(2)  "
12519 "を使って取得できる。"
12520
12521 #. type: Plain text
12522 #: build/C/man2/timerfd_create.2:85
12523 msgid ""
12524 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
12525 "I<flags> to change the behavior of B<timerfd_create>():"
12526 msgstr ""
12527 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
12528 "ることで、 B<timerfd_create>()  の振舞いを変更することができる。"
12529
12530 #. type: TP
12531 #: build/C/man2/timerfd_create.2:85
12532 #, no-wrap
12533 msgid "B<TFD_NONBLOCK>"
12534 msgstr "B<TFD_NONBLOCK>"
12535
12536 #. type: TP
12537 #: build/C/man2/timerfd_create.2:93
12538 #, no-wrap
12539 msgid "B<TFD_CLOEXEC>"
12540 msgstr "B<TFD_CLOEXEC>"
12541
12542 #. type: Plain text
12543 #: build/C/man2/timerfd_create.2:107
12544 msgid ""
12545 "In Linux versions up to and including 2.6.26, I<flags> must be specified as "
12546 "zero."
12547 msgstr ""
12548 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
12549 "しなければならない。"
12550
12551 #. type: SS
12552 #: build/C/man2/timerfd_create.2:107
12553 #, no-wrap
12554 msgid "timerfd_settime()"
12555 msgstr "timerfd_settime()"
12556
12557 #. type: Plain text
12558 #: build/C/man2/timerfd_create.2:112
12559 msgid ""
12560 "B<timerfd_settime>()  arms (starts) or disarms (stops)  the timer referred "
12561 "to by the file descriptor I<fd>."
12562 msgstr ""
12563 "B<timerfd_settime>()  は、ファイルディスクリプタ I<fd> により参照されるタイ"
12564 "マーを開始したり停止したりする。"
12565
12566 #. type: Plain text
12567 #: build/C/man2/timerfd_create.2:121
12568 msgid ""
12569 "The I<new_value> argument specifies the initial expiration and interval for "
12570 "the timer.  The I<itimer> structure used for this argument contains two "
12571 "fields, each of which is in turn a structure of type I<timespec>:"
12572 msgstr ""
12573 "I<new_value> 引き数は、タイマーの満了時間 (expiration) の初期値と間隔 "
12574 "(interval) を 指定する。この引き数で使用されている I<itimerspec> 構造体には "
12575 "2 つのフィールドがあり、各フィールドは I<timespec> 型の構造体である。"
12576
12577 #. type: Plain text
12578 #: build/C/man2/timerfd_create.2:133
12579 #, no-wrap
12580 msgid ""
12581 "struct itimerspec {\n"
12582 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12583 "    struct timespec it_value;     /* Initial expiration */\n"
12584 "};\n"
12585 msgstr ""
12586 "struct itimerspec {\n"
12587 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12588 "    struct timespec it_value;     /* Initial expiration */\n"
12589 "};\n"
12590
12591 #. type: Plain text
12592 #: build/C/man2/timerfd_create.2:145
12593 msgid ""
12594 "I<new_value.it_value> specifies the initial expiration of the timer, in "
12595 "seconds and nanoseconds.  Setting either field of I<new_value.it_value> to a "
12596 "nonzero value arms the timer.  Setting both fields of I<new_value.it_value> "
12597 "to zero disarms the timer."
12598 msgstr ""
12599 "I<new_value.it_value> はタイマーの満了時間の初期値を、秒とナノ秒で指定する。 "
12600 "I<new_value.it_value> のフィールドのうち少なくとも一方に 0 以外の値を設定する"
12601 "と、 タイマーが開始される。 両方のフィールドに 0 を設定すると、タイマーが停止"
12602 "する。"
12603
12604 #. type: Plain text
12605 #: build/C/man2/timerfd_create.2:154
12606 msgid ""
12607 "Setting one or both fields of I<new_value.it_interval> to nonzero values "
12608 "specifies the period, in seconds and nanoseconds, for repeated timer "
12609 "expirations after the initial expiration.  If both fields of I<new_value."
12610 "it_interval> are zero, the timer expires just once, at the time specified by "
12611 "I<new_value.it_value>."
12612 msgstr ""
12613 "I<new_value.it_interval> はタイマーの一回目の満了後に繰り返しタイマーの満了間"
12614 "隔を、秒とナノ秒で指定する。 I<new_value.it_interval> のフィールドのうち少な"
12615 "くとも一方に 0 以外の値を設定すると、 繰り返しタイマーが有効になる。 両方の"
12616 "フィールドに 0 を設定した場合、タイマーは I<new_value.it_value> で指定された"
12617 "時間後に、一回だけ満了して停止する。"
12618
12619 #. type: Plain text
12620 #: build/C/man2/timerfd_create.2:170
12621 msgid ""
12622 "The I<flags> argument is either 0, to start a relative timer (I<new_value."
12623 "it_value> specifies a time relative to the current value of the clock "
12624 "specified by I<clockid>), or B<TFD_TIMER_ABSTIME>, to start an absolute "
12625 "timer (I<new_value.it_value> specifies an absolute time for the clock "
12626 "specified by I<clockid>; that is, the timer will expire when the value of "
12627 "that clock reaches the value specified in I<new_value.it_value>)."
12628 msgstr ""
12629 "I<flags> 引き数には 0 か B<TFD_TIMER_ABSTIME> を指定する。 0 は相対時刻タイ"
12630 "マーを意味し、 I<new_value.it_value> では I<clockid> で指定されたクロックの現"
12631 "在の値からの相対的な時刻を指定する。 B<TFD_TIMER_ABSTIME> は絶対時刻タイマー"
12632 "を意味し、 I<new_value.it_interval> では I<clockid> で指定されたクロックの絶"
12633 "対時刻を指定する。 つまり、クロックの値が I<new_value.it_interval> で指定され"
12634 "た時刻に達したら、タイマーが満了する。"
12635
12636 #. type: Plain text
12637 #: build/C/man2/timerfd_create.2:181
12638 msgid ""
12639 "If the I<old_value> argument is not NULL, then the I<itimerspec> structure "
12640 "that it points to is used to return the setting of the timer that was "
12641 "current at the time of the call; see the description of "
12642 "B<timerfd_gettime>()  following."
12643 msgstr ""
12644 "I<old_value> 引き数が NULL でない場合、 I<old_value> 引き数が指す "
12645 "I<itimerspec> 構造体は、 B<timerfd_settime>() を呼び出した時点でのタイマーの"
12646 "設定を返すのに使用される。 下記の B<timerfd_gettime>() の説明を参照。"
12647
12648 #. type: SS
12649 #: build/C/man2/timerfd_create.2:181
12650 #, no-wrap
12651 msgid "timerfd_gettime()"
12652 msgstr "timerfd_gettime()"
12653
12654 #. type: Plain text
12655 #: build/C/man2/timerfd_create.2:190
12656 msgid ""
12657 "B<timerfd_gettime>()  returns, in I<curr_value>, an I<itimerspec> structure "
12658 "that contains the current setting of the timer referred to by the file "
12659 "descriptor I<fd>."
12660 msgstr ""
12661 "B<timerfd_gettime>()  は、ファイルディスクリプタ I<fd> で参照されるタイマーの"
12662 "現在の設定が入った I<itimerspec> 構造体を、 I<curr_value> に格納して返す。"
12663
12664 #. type: Plain text
12665 #: build/C/man2/timerfd_create.2:200
12666 msgid ""
12667 "The I<it_value> field returns the amount of time until the timer will next "
12668 "expire.  If both fields of this structure are zero, then the timer is "
12669 "currently disarmed.  This field always contains a relative value, regardless "
12670 "of whether the B<TFD_TIMER_ABSTIME> flag was specified when setting the "
12671 "timer."
12672 msgstr ""
12673 "I<it_value> フィールドは、タイマーが次に満了するまでの残り時間を返す。 この構"
12674 "造体の両方のフィールドが 0 であれば、タイマーは現在停止している。 タイマー設"
12675 "定時に B<TFD_TIMER_ABSTIME> フラグが指定されたかに関わらず、このフィールドは"
12676 "常に相対値が格納される。"
12677
12678 #. type: Plain text
12679 #: build/C/man2/timerfd_create.2:207
12680 msgid ""
12681 "The I<it_interval> field returns the interval of the timer.  If both fields "
12682 "of this structure are zero, then the timer is set to expire just once, at "
12683 "the time specified by I<curr_value.it_value>."
12684 msgstr ""
12685 "I<it_interval> フィールドは、タイマーの間隔を返す。 この構造体の両方のフィー"
12686 "ルドが 0 であれば、タイマーは I<new_value.it_value> で指定された時間後に一回"
12687 "だけ満了して停止するように設定されている。"
12688
12689 #. type: SS
12690 #: build/C/man2/timerfd_create.2:207
12691 #, no-wrap
12692 msgid "Operating on a timer file descriptor"
12693 msgstr "タイマー・ファイルディスクリプタに対する操作"
12694
12695 #. type: Plain text
12696 #: build/C/man2/timerfd_create.2:211
12697 msgid ""
12698 "The file descriptor returned by B<timerfd_create>()  supports the following "
12699 "operations:"
12700 msgstr ""
12701 "B<timerfd_create>()  が返すファイルディスクリプタは以下の操作をサポートしてい"
12702 "る。"
12703
12704 #. type: Plain text
12705 #: build/C/man2/timerfd_create.2:225
12706 msgid ""
12707 "If the timer has already expired one or more times since its settings were "
12708 "last modified using B<timerfd_settime>(), or since the last successful "
12709 "B<read>(2), then the buffer given to B<read>(2)  returns an unsigned 8-byte "
12710 "integer (I<uint64_t>)  containing the number of expirations that have "
12711 "occurred.  (The returned value is in host byte order\\(emthat is, the native "
12712 "byte order for integers on the host machine.)"
12713 msgstr ""
12714 "B<timerfd_settime>()  を使ってタイマーの設定が最後変更されて以降、または "
12715 "B<read>(2)  の呼び出しに最後に成功して以降に、タイマーの満了が一回以上発生し"
12716 "ていれば、 B<read>(2)  に渡されたバッファに、タイマー満了回数を示す 8 バイト"
12717 "の unsigned 型の整数 (I<uint64_t>)  が返される (返される値はホストバイトオー"
12718 "ダ、つまりそのホストマシンにおける 整数の通常のバイトオーダである)。"
12719
12720 #. type: Plain text
12721 #: build/C/man2/timerfd_create.2:238
12722 msgid ""
12723 "If no timer expirations have occurred at the time of the B<read>(2), then "
12724 "the call either blocks until the next timer expiration, or fails with the "
12725 "error B<EAGAIN> if the file descriptor has been made nonblocking (via the "
12726 "use of the B<fcntl>(2)  B<F_SETFL> operation to set the B<O_NONBLOCK> flag)."
12727 msgstr ""
12728 "B<read>(2)  を行った時点でタイマーの満了が発生していなければ、 B<read>(2)  は"
12729 "停止 (block) する、もしくはファイルディスクリプタが 非停止 (nonblocking) に設"
12730 "定されている場合はエラー B<EAGAIN> で失敗する (非停止モードにするには、 "
12731 "B<fcntl>(2)  の B<F_SETFL> 命令で B<O_NONBLOCK> フラグをセットする)。"
12732
12733 #. type: Plain text
12734 #: build/C/man2/timerfd_create.2:244
12735 msgid ""
12736 "A B<read>(2)  will fail with the error B<EINVAL> if the size of the supplied "
12737 "buffer is less than 8 bytes."
12738 msgstr ""
12739 "渡されたバッファの大きさが 8 バイト未満の場合、 B<read>(2)  はエラー "
12740 "B<EINVAL> で失敗する。"
12741
12742 #. type: Plain text
12743 #: build/C/man2/timerfd_create.2:255
12744 msgid ""
12745 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
12746 "B<poll>(2)  B<POLLIN> flag)  if one or more timer expirations have occurred."
12747 msgstr ""
12748 "一つ以上のタイマー満了が発生していれば、 ファイルディスクリプタは読み出し可能"
12749 "となる (B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラ"
12750 "グ)。"
12751
12752 #. type: Plain text
12753 #: build/C/man2/timerfd_create.2:262
12754 msgid ""
12755 "The file descriptor also supports the other file-descriptor multiplexing "
12756 "APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
12757 msgstr ""
12758 "このファイルディスクリプタは、他のファイルディスクリプタ多重 API である "
12759 "B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
12760
12761 #. type: Plain text
12762 #: build/C/man2/timerfd_create.2:269
12763 msgid ""
12764 "When the file descriptor is no longer required it should be closed.  When "
12765 "all file descriptors associated with the same timer object have been closed, "
12766 "the timer is disarmed and its resources are freed by the kernel."
12767 msgstr ""
12768 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
12769 "る。 同じ timer オブジェクトに関連付けられたファイルディスクリプタが全て ク"
12770 "ローズされると、そのタイマーは解除され、 そのオブジェクト用の資源がカーネルに"
12771 "より解放される。"
12772
12773 #. type: Plain text
12774 #: build/C/man2/timerfd_create.2:281
12775 msgid ""
12776 "After a B<fork>(2), the child inherits a copy of the file descriptor created "
12777 "by B<timerfd_create>().  The file descriptor refers to the same underlying "
12778 "timer object as the corresponding file descriptor in the parent, and "
12779 "B<read>(2)s in the child will return information about expirations of the "
12780 "timer."
12781 msgstr ""
12782 "B<fork>(2)  が行われると、子プロセスは B<timerfd_create>()  により生成された"
12783 "ファイルディスクリプタのコピーを 継承する。そのファイルディスクリプタは、親プ"
12784 "ロセスの対応する ファイルディスクリプタと同じタイマーオブジェクトを参照してお"
12785 "り、 子プロセスの B<read>(2)  でも同じタイマーの満了に関する情報が返される。"
12786
12787 #. type: Plain text
12788 #: build/C/man2/timerfd_create.2:287
12789 msgid ""
12790 "A file descriptor created by B<timerfd_create>()  is preserved across "
12791 "B<execve>(2), and continues to generate timer expirations if the timer was "
12792 "armed."
12793 msgstr ""
12794 "B<execve>(2)  の前後で B<timerfd_create>()  により生成されたファイルディスク"
12795 "リプタは保持され、 タイマーが開始されていた場合にはタイマーの満了が発生し続け"
12796 "る。"
12797
12798 #. type: Plain text
12799 #: build/C/man2/timerfd_create.2:294
12800 msgid ""
12801 "On success, B<timerfd_create>()  returns a new file descriptor.  On error, "
12802 "-1 is returned and I<errno> is set to indicate the error."
12803 msgstr ""
12804 "成功すると、 B<timerfd_create>()  は新しいファイルディスクリプタを返す。 エ"
12805 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12806
12807 #. type: Plain text
12808 #: build/C/man2/timerfd_create.2:302
12809 msgid ""
12810 "B<timerfd_settime>()  and B<timerfd_gettime>()  return 0 on success; on "
12811 "error they return -1, and set I<errno> to indicate the error."
12812 msgstr ""
12813 "B<timerfd_settime>()  と B<timerfd_gettime>()  は成功すると 0 を返す。 エラー"
12814 "の場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12815
12816 #. type: Plain text
12817 #: build/C/man2/timerfd_create.2:305
12818 msgid "B<timerfd_create>()  can fail with the following errors:"
12819 msgstr "B<timerfd_create>()  は以下のエラーで失敗する可能性がある。"
12820
12821 #. type: Plain text
12822 #: build/C/man2/timerfd_create.2:313
12823 msgid ""
12824 "The I<clockid> argument is neither B<CLOCK_MONOTONIC> nor B<CLOCK_REALTIME>;"
12825 msgstr ""
12826 "I<clockid> 引き数が B<CLOCK_MONOTONIC> でも B<CLOCK_REALTIME> でもない。"
12827
12828 #. type: Plain text
12829 #: build/C/man2/timerfd_create.2:333
12830 msgid "There was insufficient kernel memory to create the timer."
12831 msgstr "タイマーを作成するのに十分なカーネルメモリがなかった。"
12832
12833 #. type: Plain text
12834 #: build/C/man2/timerfd_create.2:338
12835 msgid ""
12836 "B<timerfd_settime>()  and B<timerfd_gettime>()  can fail with the following "
12837 "errors:"
12838 msgstr ""
12839 "B<timerfd_settime>()  と B<timerfd_gettime>()  は以下のエラーで失敗する可能性"
12840 "がある。"
12841
12842 #. type: Plain text
12843 #: build/C/man2/timerfd_create.2:342
12844 msgid "I<fd> is not a valid file descriptor."
12845 msgstr "I<fd> が有効なファイルディスクリプタでない。"
12846
12847 #. type: Plain text
12848 #: build/C/man2/timerfd_create.2:353
12849 msgid "I<fd> is not a valid timerfd file descriptor."
12850 msgstr "I<fd> が有効な timerfd ファイルディスクリプタでない。"
12851
12852 #. type: Plain text
12853 #: build/C/man2/timerfd_create.2:356
12854 msgid "B<timerfd_settime>()  can also fail with the following errors:"
12855 msgstr "B<timerfd_settime>()  は以下のエラーで失敗することもある。"
12856
12857 #. type: Plain text
12858 #: build/C/man2/timerfd_create.2:362
12859 msgid ""
12860 "I<new_value> is not properly initialized (one of the I<tv_nsec> falls "
12861 "outside the range zero to 999,999,999)."
12862 msgstr ""
12863 "I<new_value> が適切に初期化されていない (I<tv_nsec> の一つが 0 から "
12864 "999,999,999 までの範囲に入っていない)。"
12865
12866 #.  This case only checked since 2.6.29, and 2.2.2[78].some-stable-version.
12867 #.  In older kernel versions, no check was made for invalid flags.
12868 #. type: Plain text
12869 #: build/C/man2/timerfd_create.2:368
12870 msgid "I<flags> is invalid."
12871 msgstr "I<flags> が無効である。"
12872
12873 #. type: Plain text
12874 #: build/C/man2/timerfd_create.2:371
12875 msgid ""
12876 "These system calls are available on Linux since kernel 2.6.25.  Library "
12877 "support is provided by glibc since version 2.8."
12878 msgstr ""
12879 "これらのシステムコールはカーネル 2.6.25 以降の Linux で利用可能である。 ライ"
12880 "ブラリ側のサポートはバージョン 2.8 以降の glibc で提供されている。"
12881
12882 #.  2.6.29
12883 #. type: Plain text
12884 #: build/C/man2/timerfd_create.2:379
12885 msgid ""
12886 "Currently, B<timerfd_create>()  supports fewer types of clock IDs than "
12887 "B<timer_create>(2)."
12888 msgstr ""
12889 "現在のところ、 B<timerfd_create>()  が対応している clockid の種類は "
12890 "B<timer_create>(2)  よりも少ない。"
12891
12892 #. type: Plain text
12893 #: build/C/man2/timerfd_create.2:388
12894 msgid ""
12895 "The following program creates a timer and then monitors its progress.  The "
12896 "program accepts up to three command-line arguments.  The first argument "
12897 "specifies the number of seconds for the initial expiration of the timer.  "
12898 "The second argument specifies the interval for the timer, in seconds.  The "
12899 "third argument specifies the number of times the program should allow the "
12900 "timer to expire before terminating.  The second and third command-line "
12901 "arguments are optional."
12902 msgstr ""
12903 "以下のプログラムは、タイマーを作成し、その進捗をモニターするものである。 この"
12904 "プログラムは最大で 3 個のコマンドライン引き数を取り、 第一引き数ではタイマー"
12905 "の満了時間の初期値 (秒数単位) を、 第二引き数ではタイマーの間隔 (秒数単位) "
12906 "を、 第三引き数ではタイマーが何回満了したらプログラムが終了するかを指定す"
12907 "る。 第二引き数と第三引き数は省略可能である。"
12908
12909 #. type: Plain text
12910 #: build/C/man2/timerfd_create.2:390 build/C/man2/wait.2:570
12911 msgid "The following shell session demonstrates the use of the program:"
12912 msgstr "以下のシェルのセッションはこのプログラムの使用例を示したものである。"
12913
12914 #. type: Plain text
12915 #: build/C/man2/timerfd_create.2:405
12916 #, no-wrap
12917 msgid ""
12918 "$B< a.out 3 1 100>\n"
12919 "0.000: timer started\n"
12920 "3.000: read: 1; total=1\n"
12921 "4.000: read: 1; total=2\n"
12922 "B<^Z >                 # type control-Z to suspend the program\n"
12923 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12924 "$ B<fg>                # Resume execution after a few seconds\n"
12925 "a.out 3 1 100\n"
12926 "9.660: read: 5; total=7\n"
12927 "10.000: read: 1; total=8\n"
12928 "11.000: read: 1; total=9\n"
12929 "B<^C >                 # type control-C to suspend the program\n"
12930 msgstr ""
12931 "$B< a.out 3 1 100>\n"
12932 "0.000: timer started\n"
12933 "3.000: read: 1; total=1\n"
12934 "4.000: read: 1; total=2\n"
12935 "B<^Z >                 # type control-Z to suspend the program\n"
12936 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12937 "$ B<fg>                # Resume execution after a few seconds\n"
12938 "a.out 3 1 100\n"
12939 "9.660: read: 5; total=7\n"
12940 "10.000: read: 1; total=8\n"
12941 "11.000: read: 1; total=9\n"
12942 "B<^C >                 # type control-C to suspend the program\n"
12943
12944 #.  The commented out code here is what we currently need until
12945 #.  the required stuff is in glibc
12946 #. /* Link with -lrt */
12947 #. #define _GNU_SOURCE
12948 #. #include <sys/syscall.h>
12949 #. #include <unistd.h>
12950 #. #include <time.h>
12951 #. #if defined(__i386__)
12952 #. #define __NR_timerfd_create 322
12953 #. #define __NR_timerfd_settime 325
12954 #. #define __NR_timerfd_gettime 326
12955 #. #endif
12956 #. static int
12957 #. timerfd_create(int clockid, int flags)
12958 #. {
12959 #.     return syscall(__NR_timerfd_create, clockid, flags);
12960 #. }
12961 #. static int
12962 #. timerfd_settime(int fd, int flags, struct itimerspec *new_value,
12963 #.         struct itimerspec *curr_value)
12964 #. {
12965 #.     return syscall(__NR_timerfd_settime, fd, flags, new_value,
12966 #.                    curr_value);
12967 #. }
12968 #. static int
12969 #. timerfd_gettime(int fd, struct itimerspec *curr_value)
12970 #. {
12971 #.     return syscall(__NR_timerfd_gettime, fd, curr_value);
12972 #. }
12973 #. #define TFD_TIMER_ABSTIME (1 << 0)
12974 #. ////////////////////////////////////////////////////////////
12975 #. type: Plain text
12976 #: build/C/man2/timerfd_create.2:454
12977 #, no-wrap
12978 msgid ""
12979 "#include E<lt>sys/timerfd.hE<gt>\n"
12980 "#include E<lt>time.hE<gt>\n"
12981 "#include E<lt>unistd.hE<gt>\n"
12982 "#include E<lt>stdlib.hE<gt>\n"
12983 "#include E<lt>stdio.hE<gt>\n"
12984 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12985 msgstr ""
12986 "#include E<lt>sys/timerfd.hE<gt>\n"
12987 "#include E<lt>time.hE<gt>\n"
12988 "#include E<lt>unistd.hE<gt>\n"
12989 "#include E<lt>stdlib.hE<gt>\n"
12990 "#include E<lt>stdio.hE<gt>\n"
12991 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12992
12993 #. type: Plain text
12994 #: build/C/man2/timerfd_create.2:457
12995 #, no-wrap
12996 msgid ""
12997 "#define handle_error(msg) \\e\n"
12998 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
12999 msgstr ""
13000 "#define handle_error(msg) \\e\n"
13001 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
13002
13003 #. type: Plain text
13004 #: build/C/man2/timerfd_create.2:465
13005 #, no-wrap
13006 msgid ""
13007 "static void\n"
13008 "print_elapsed_time(void)\n"
13009 "{\n"
13010 "    static struct timespec start;\n"
13011 "    struct timespec curr;\n"
13012 "    static int first_call = 1;\n"
13013 "    int secs, nsecs;\n"
13014 msgstr ""
13015 "static void\n"
13016 "print_elapsed_time(void)\n"
13017 "{\n"
13018 "    static struct timespec start;\n"
13019 "    struct timespec curr;\n"
13020 "    static int first_call = 1;\n"
13021 "    int secs, nsecs;\n"
13022
13023 #. type: Plain text
13024 #: build/C/man2/timerfd_create.2:471
13025 #, no-wrap
13026 msgid ""
13027 "    if (first_call) {\n"
13028 "        first_call = 0;\n"
13029 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
13030 "            handle_error(\"clock_gettime\");\n"
13031 "    }\n"
13032 msgstr ""
13033 "    if (first_call) {\n"
13034 "        first_call = 0;\n"
13035 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
13036 "            handle_error(\"clock_gettime\");\n"
13037 "    }\n"
13038
13039 #. type: Plain text
13040 #: build/C/man2/timerfd_create.2:474
13041 #, no-wrap
13042 msgid ""
13043 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
13044 "        handle_error(\"clock_gettime\");\n"
13045 msgstr ""
13046 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
13047 "        handle_error(\"clock_gettime\");\n"
13048
13049 #. type: Plain text
13050 #: build/C/man2/timerfd_create.2:483
13051 #, no-wrap
13052 msgid ""
13053 "    secs = curr.tv_sec - start.tv_sec;\n"
13054 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
13055 "    if (nsecs E<lt> 0) {\n"
13056 "        secs--;\n"
13057 "        nsecs += 1000000000;\n"
13058 "    }\n"
13059 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
13060 "}\n"
13061 msgstr ""
13062 "    secs = curr.tv_sec - start.tv_sec;\n"
13063 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
13064 "    if (nsecs E<lt> 0) {\n"
13065 "        secs--;\n"
13066 "        nsecs += 1000000000;\n"
13067 "    }\n"
13068 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
13069 "}\n"
13070
13071 #. type: Plain text
13072 #: build/C/man2/timerfd_create.2:492
13073 #, no-wrap
13074 msgid ""
13075 "int\n"
13076 "main(int argc, char *argv[])\n"
13077 "{\n"
13078 "    struct itimerspec new_value;\n"
13079 "    int max_exp, fd;\n"
13080 "    struct timespec now;\n"
13081 "    uint64_t exp, tot_exp;\n"
13082 "    ssize_t s;\n"
13083 msgstr ""
13084 "int\n"
13085 "main(int argc, char *argv[])\n"
13086 "{\n"
13087 "    struct itimerspec new_value;\n"
13088 "    int max_exp, fd;\n"
13089 "    struct timespec now;\n"
13090 "    uint64_t exp, tot_exp;\n"
13091 "    ssize_t s;\n"
13092
13093 #. type: Plain text
13094 #: build/C/man2/timerfd_create.2:498
13095 #, no-wrap
13096 msgid ""
13097 "    if ((argc != 2) && (argc != 4)) {\n"
13098 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
13099 "                argv[0]);\n"
13100 "        exit(EXIT_FAILURE);\n"
13101 "    }\n"
13102 msgstr ""
13103 "    if ((argc != 2) && (argc != 4)) {\n"
13104 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
13105 "                argv[0]);\n"
13106 "        exit(EXIT_FAILURE);\n"
13107 "    }\n"
13108
13109 #. type: Plain text
13110 #: build/C/man2/timerfd_create.2:501
13111 #, no-wrap
13112 msgid ""
13113 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
13114 "        handle_error(\"clock_gettime\");\n"
13115 msgstr ""
13116 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
13117 "        handle_error(\"clock_gettime\");\n"
13118
13119 #. type: Plain text
13120 #: build/C/man2/timerfd_create.2:504
13121 #, no-wrap
13122 msgid ""
13123 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
13124 "       expiration and interval as specified in command line */\n"
13125 msgstr ""
13126 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
13127 "       expiration and interval as specified in command line */\n"
13128
13129 #. type: Plain text
13130 #: build/C/man2/timerfd_create.2:515
13131 #, no-wrap
13132 msgid ""
13133 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
13134 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
13135 "    if (argc == 2) {\n"
13136 "        new_value.it_interval.tv_sec = 0;\n"
13137 "        max_exp = 1;\n"
13138 "    } else {\n"
13139 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
13140 "        max_exp = atoi(argv[3]);\n"
13141 "    }\n"
13142 "    new_value.it_interval.tv_nsec = 0;\n"
13143 msgstr ""
13144 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
13145 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
13146 "    if (argc == 2) {\n"
13147 "        new_value.it_interval.tv_sec = 0;\n"
13148 "        max_exp = 1;\n"
13149 "    } else {\n"
13150 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
13151 "        max_exp = atoi(argv[3]);\n"
13152 "    }\n"
13153 "    new_value.it_interval.tv_nsec = 0;\n"
13154
13155 #. type: Plain text
13156 #: build/C/man2/timerfd_create.2:519
13157 #, no-wrap
13158 msgid ""
13159 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
13160 "    if (fd == -1)\n"
13161 "        handle_error(\"timerfd_create\");\n"
13162 msgstr ""
13163 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
13164 "    if (fd == -1)\n"
13165 "        handle_error(\"timerfd_create\");\n"
13166
13167 #. type: Plain text
13168 #: build/C/man2/timerfd_create.2:522
13169 #, no-wrap
13170 msgid ""
13171 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
13172 "        handle_error(\"timerfd_settime\");\n"
13173 msgstr ""
13174 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
13175 "        handle_error(\"timerfd_settime\");\n"
13176
13177 #. type: Plain text
13178 #: build/C/man2/timerfd_create.2:525
13179 #, no-wrap
13180 msgid ""
13181 "    print_elapsed_time();\n"
13182 "    printf(\"timer started\\en\");\n"
13183 msgstr ""
13184 "    print_elapsed_time();\n"
13185 "    printf(\"timer started\\en\");\n"
13186
13187 #. type: Plain text
13188 #: build/C/man2/timerfd_create.2:530
13189 #, no-wrap
13190 msgid ""
13191 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
13192 "        s = read(fd, &exp, sizeof(uint64_t));\n"
13193 "        if (s != sizeof(uint64_t))\n"
13194 "            handle_error(\"read\");\n"
13195 msgstr ""
13196 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
13197 "        s = read(fd, &exp, sizeof(uint64_t));\n"
13198 "        if (s != sizeof(uint64_t))\n"
13199 "            handle_error(\"read\");\n"
13200
13201 #. type: Plain text
13202 #: build/C/man2/timerfd_create.2:537
13203 #, no-wrap
13204 msgid ""
13205 "        tot_exp += exp;\n"
13206 "        print_elapsed_time();\n"
13207 "        printf(\"read: %llu; total=%llu\\en\",\n"
13208 "                (unsigned long long) exp,\n"
13209 "                (unsigned long long) tot_exp);\n"
13210 "    }\n"
13211 msgstr ""
13212 "        tot_exp += exp;\n"
13213 "        print_elapsed_time();\n"
13214 "        printf(\"read: %llu; total=%llu\\en\",\n"
13215 "                (unsigned long long) exp,\n"
13216 "                (unsigned long long) tot_exp);\n"
13217 "    }\n"
13218
13219 #. type: Plain text
13220 #: build/C/man2/timerfd_create.2:553
13221 msgid ""
13222 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
13223 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), "
13224 "B<timer_settime>(2), B<epoll>(7), B<time>(7)"
13225 msgstr ""
13226 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
13227 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), "
13228 "B<timer_settime>(2), B<epoll>(7), B<time>(7)"
13229
13230 #. type: TH
13231 #: build/C/man2/tkill.2:29
13232 #, no-wrap
13233 msgid "TKILL"
13234 msgstr "TKILL"
13235
13236 #. type: Plain text
13237 #: build/C/man2/tkill.2:32
13238 msgid "tkill, tgkill - send a signal to a thread"
13239 msgstr "tkill, tgkill - スレッドにシグナルを送る"
13240
13241 #. type: Plain text
13242 #: build/C/man2/tkill.2:35
13243 #, no-wrap
13244 msgid "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
13245 msgstr "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
13246
13247 #. type: Plain text
13248 #: build/C/man2/tkill.2:37
13249 #, no-wrap
13250 msgid "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
13251 msgstr "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
13252
13253 #. type: Plain text
13254 #: build/C/man2/tkill.2:54
13255 msgid ""
13256 "B<tgkill>()  sends the signal I<sig> to the thread with the thread ID I<tid> "
13257 "in the thread group I<tgid>.  (By contrast, B<kill>(2)  can be used to send "
13258 "a signal only to a process (i.e., thread group)  as a whole, and the signal "
13259 "will be delivered to an arbitrary thread within that process.)"
13260 msgstr ""
13261 "B<tgkill>()  はスレッド・グループ I<tgid> に属するスレッド ID が I<tid> のス"
13262 "レッドにシグナル I<sig> を送る。 (これに対し、 B<kill>(2)  は一つのプロセス "
13263 "(すなわち、スレッド・グループ) にまとめてシグナルを 送るのにだけ利用できる。 "
13264 "B<kill>(2)  で送信されたシグナルはプロセス内の任意のスレッドに配送される。)"
13265
13266 #.  FIXME: Maybe say something about the following:
13267 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=12889
13268 #.      Rich Felker <bugdal@aerifal.cx>
13269 #.      There is a race condition in pthread_kill: it is possible that,
13270 #.      between the time pthread_kill reads the pid/tid from the target
13271 #.      thread descriptor and the time it makes the tgkill syscall,
13272 #.      the target thread terminates and the same tid gets assigned
13273 #.      to a new thread in the same process.
13274 #.      (The tgkill syscall was designed to eliminate a similar race
13275 #.      condition in tkill, but it only succeeded in eliminating races
13276 #.      where the tid gets reused in a different process, and does not
13277 #.      help if the same tid gets assigned to a new thread in the
13278 #.      same process.)
13279 #.      The only solution I can see is to introduce a mutex that ensures
13280 #.      that a thread cannot exit while pthread_kill is being called on it.
13281 #.      Note that in most real-world situations, like almost all race
13282 #.      conditions, this one will be extremely rare. To make it
13283 #.      measurable, one could exhaust all but 1-2 available pid values,
13284 #.      possibly by lowering the max pid parameter in /proc, forcing
13285 #.      the same tid to be reused rapidly.
13286 #. type: Plain text
13287 #: build/C/man2/tkill.2:85
13288 msgid ""
13289 "B<tkill>()  is an obsolete predecessor to B<tgkill>().  It allows only the "
13290 "target thread ID to be specified, which may result in the wrong thread being "
13291 "signaled if a thread terminates and its thread ID is recycled.  Avoid using "
13292 "this system call."
13293 msgstr ""
13294 "B<tkill>()  はもう使われなくなった B<tgkill>()  の先祖である。 B<tkill>()  で"
13295 "はシグナルの送り先のスレッド ID しか指定できない。 そのため、スレッドが終了し"
13296 "て、そのスレッド ID が再利用される場合に、 意図しないスレッドにシグナルが送ら"
13297 "れる可能性がある。 このシステムコールの使用は避けること。"
13298
13299 #. type: Plain text
13300 #: build/C/man2/tkill.2:92
13301 msgid ""
13302 "If I<tgid> is specified as -1, B<tgkill>()  is equivalent to B<tkill>()."
13303 msgstr ""
13304 "I<tgid> に -1 が指定された場合、 B<tgkill>()  は B<tkill>()  と等価である。"
13305
13306 #. type: Plain text
13307 #: build/C/man2/tkill.2:95
13308 msgid ""
13309 "These are the raw system call interfaces, meant for internal thread library "
13310 "use."
13311 msgstr ""
13312 "これらはシステムコールへの直接のインターフェースであり、 スレッド・ライブラリ"
13313 "内部での使用を意図したものである。"
13314
13315 #. type: Plain text
13316 #: build/C/man2/tkill.2:103
13317 msgid "An invalid thread ID, thread group ID, or signal was specified."
13318 msgstr "指定されたスレッド ID、スレッドグループ ID、シグナルが不正であった。"
13319
13320 #. type: Plain text
13321 #: build/C/man2/tkill.2:108
13322 msgid "Permission denied.  For the required permissions, see B<kill>(2)."
13323 msgstr ""
13324 "許可がなかった。どのような許可が必要かについては、 B<kill>(2)  を参照のこと。"
13325
13326 #. type: Plain text
13327 #: build/C/man2/tkill.2:111
13328 msgid "No process with the specified thread ID (and thread group ID) exists."
13329 msgstr ""
13330 "指定されたスレッドID (とスレッド・グループID) を持つプロセスが存在しない。"
13331
13332 #. type: Plain text
13333 #: build/C/man2/tkill.2:116
13334 msgid ""
13335 "B<tkill>()  is supported since Linux 2.4.19 / 2.5.4.  B<tgkill>()  was added "
13336 "in Linux 2.5.75."
13337 msgstr ""
13338 "B<tkill>()  は Linux 2.4.19 / 2.5.4 以降でサポートされ、 B<tgkill>()  は "
13339 "Linux 2.5.75 で追加された。"
13340
13341 #. type: Plain text
13342 #: build/C/man2/tkill.2:122
13343 msgid ""
13344 "B<tkill>()  and B<tgkill>()  are Linux-specific and should not be used in "
13345 "programs that are intended to be portable."
13346 msgstr ""
13347 "B<tkill>()  と B<tgkill>()  は Linux 固有であり、 移植を想定したプログラムで"
13348 "は使用すべきではない。"
13349
13350 #. type: Plain text
13351 #: build/C/man2/tkill.2:128
13352 msgid ""
13353 "See the description of B<CLONE_THREAD> in B<clone>(2)  for an explanation of "
13354 "thread groups."
13355 msgstr ""
13356 "スレッド・グループの説明については B<clone>(2)  の B<CLONE_THREAD> の説明を参"
13357 "照のこと。"
13358
13359 #. type: Plain text
13360 #: build/C/man2/tkill.2:131
13361 msgid ""
13362 "Glibc does not provide wrappers for these system calls; call them using "
13363 "B<syscall>(2)."
13364 msgstr ""
13365 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
13366 "B<syscall>(2)  を使って呼び出すこと。"
13367
13368 #. type: Plain text
13369 #: build/C/man2/tkill.2:136
13370 msgid "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
13371 msgstr "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
13372
13373 #. type: TH
13374 #: build/C/man2/wait.2:49
13375 #, no-wrap
13376 msgid "WAIT"
13377 msgstr "WAIT"
13378
13379 #. type: Plain text
13380 #: build/C/man2/wait.2:52
13381 msgid "wait, waitpid, waitid - wait for process to change state"
13382 msgstr "wait, waitpid, waitid - プロセスの状態変化を待つ"
13383
13384 #. type: Plain text
13385 #: build/C/man2/wait.2:54
13386 msgid "B<#include E<lt>sys/types.hE<gt>>"
13387 msgstr "B<#include E<lt>sys/types.hE<gt>>"
13388
13389 #. type: Plain text
13390 #: build/C/man2/wait.2:56
13391 msgid "B<#include E<lt>sys/wait.hE<gt>>"
13392 msgstr "B<#include E<lt>sys/wait.hE<gt>>"
13393
13394 #. type: Plain text
13395 #: build/C/man2/wait.2:58
13396 msgid "B<pid_t wait(int *>I<status>B<);>"
13397 msgstr "B<pid_t wait(int *>I<status>B<);>"
13398
13399 #. type: Plain text
13400 #: build/C/man2/wait.2:60
13401 msgid ""
13402 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
13403 msgstr ""
13404 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
13405
13406 #. type: Plain text
13407 #: build/C/man2/wait.2:65
13408 #, no-wrap
13409 msgid ""
13410 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, int >I<options>B<);>\n"
13411 "                /* This is the glibc and POSIX interface; see\n"
13412 "                   NOTES for information on the raw system call. */\n"
13413 msgstr ""
13414 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, int >I<options>B<);>\n"
13415 "                /* これは glibc と POSIX のインターフェイスである。\n"
13416 "                   生のシステムコールについての情報は「注意」の節を参照。 */\n"
13417
13418 #. type: Plain text
13419 #: build/C/man2/wait.2:74
13420 msgid "B<waitid>():"
13421 msgstr "B<waitid>():"
13422
13423 #. type: Plain text
13424 #: build/C/man2/wait.2:78
13425 msgid ""
13426 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13427 "_XOPEN_SOURCE_EXTENDED"
13428 msgstr ""
13429 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13430 "_XOPEN_SOURCE_EXTENDED"
13431
13432 #. type: Plain text
13433 #: build/C/man2/wait.2:93
13434 msgid ""
13435 "All of these system calls are used to wait for state changes in a child of "
13436 "the calling process, and obtain information about the child whose state has "
13437 "changed.  A state change is considered to be: the child terminated; the "
13438 "child was stopped by a signal; or the child was resumed by a signal.  In the "
13439 "case of a terminated child, performing a wait allows the system to release "
13440 "the resources associated with the child; if a wait is not performed, then "
13441 "the terminated child remains in a \"zombie\" state (see NOTES below)."
13442 msgstr ""
13443 "これらのシステムコールはいずれも、呼び出し元プロセスの子プロセスの 状態変化を"
13444 "待ち、状態が変化したその子プロセスの情報を取得するのに 使用される。 状態変化"
13445 "とは以下のいずれかである: 子プロセスの終了、シグナルによる子プロセスの停止、 "
13446 "シグナルによる子プロセスの再開。 子プロセスが終了した場合は、wait を実行する"
13447 "ことで、 システムがその子プロセスに関連するリソースを解放できるようになる。 "
13448 "wait が実行されなかった場合には、終了した子プロセスは 「ゾンビ」状態で残り続"
13449 "ける (下記の注意の章を参照のこと)。"
13450
13451 #. type: Plain text
13452 #: build/C/man2/wait.2:105
13453 #, fuzzy
13454 #| msgid ""
13455 #| "If a child has already changed state, then these calls return "
13456 #| "immediately.  Otherwise they block until either a child changes state or "
13457 #| "a signal handler interrupts the call (assuming that system calls are not "
13458 #| "automatically restarted using the B<SA_RESTART> flag of "
13459 #| "B<sigaction>(2)).  In the remainder of this page, a child whose state has "
13460 #| "changed and which has not yet been waited upon by one of these system "
13461 #| "calls is termed I<waitable>."
13462 msgid ""
13463 "If a child has already changed state, then these calls return immediately.  "
13464 "Otherwise, they block until either a child changes state or a signal handler "
13465 "interrupts the call (assuming that system calls are not automatically "
13466 "restarted using the B<SA_RESTART> flag of B<sigaction>(2)).  In the "
13467 "remainder of this page, a child whose state has changed and which has not "
13468 "yet been waited upon by one of these system calls is termed I<waitable>."
13469 msgstr ""
13470 "子プロセスの状態変化がすでに発生していた場合、これらのコールは すぐに復帰す"
13471 "る。それ以外の場合は、子プロセスの状態変化が起こるか、 シグナルハンドラにより"
13472 "システムコールが中断されるまで、 停止 (block) する (後者は、 "
13473 "B<sigaction>(2)  の B<SA_RESTART> フラグによりシステムコールが自動的に再ス"
13474 "タートするようになっていない 場合の動作である)。 以下の説明では、状態変化が起"
13475 "こったがこれらのシステムコールのいずれかに よって待たれていない子プロセスを "
13476 "I<waitable> (待ち可能) と呼ぶ。"
13477
13478 #. type: SS
13479 #: build/C/man2/wait.2:105
13480 #, no-wrap
13481 msgid "wait() and waitpid()"
13482 msgstr "wait() と waitpid()"
13483
13484 #. type: Plain text
13485 #: build/C/man2/wait.2:113
13486 msgid ""
13487 "The B<wait>()  system call suspends execution of the calling process until "
13488 "one of its children terminates.  The call I<wait(&status)> is equivalent to:"
13489 msgstr ""
13490 "B<wait>()  システムコールは、子プロセスのいずれかが終了するまで 呼び出し元の"
13491 "プロセスの実行を一時停止する。 呼び出し I<wait(&status)> は以下と等価である:"
13492
13493 #. type: Plain text
13494 #: build/C/man2/wait.2:116
13495 #, no-wrap
13496 msgid "    waitpid(-1, &status, 0);\n"
13497 msgstr "    waitpid(-1, &status, 0);\n"
13498
13499 #. type: Plain text
13500 #: build/C/man2/wait.2:130
13501 msgid ""
13502 "The B<waitpid>()  system call suspends execution of the calling process "
13503 "until a child specified by I<pid> argument has changed state.  By default, "
13504 "B<waitpid>()  waits only for terminated children, but this behavior is "
13505 "modifiable via the I<options> argument, as described below."
13506 msgstr ""
13507 "B<waitpid>()  システムコールは、 I<pid> 引き数で指定した子プロセスの状態変化"
13508 "が起こるまで、 呼び出し元のプロセスの実行を一時停止する。デフォルトでは、 "
13509 "B<waitpid>()  は子プロセスの終了だけを待つが、この動作は I<options> 引き数に"
13510 "より変更可能である。"
13511
13512 #. type: Plain text
13513 #: build/C/man2/wait.2:134
13514 msgid "The value of I<pid> can be:"
13515 msgstr "I<pid> に指定できる値は以下の通り:"
13516
13517 #. type: IP
13518 #: build/C/man2/wait.2:134
13519 #, no-wrap
13520 msgid "E<lt> -1"
13521 msgstr "E<lt> -1"
13522
13523 #. type: Plain text
13524 #: build/C/man2/wait.2:138
13525 msgid ""
13526 "meaning wait for any child process whose process group ID is equal to the "
13527 "absolute value of I<pid>."
13528 msgstr ""
13529 "プロセスグループID が I<pid> の絶対値に等しい子プロセスのいずれかが終了するま"
13530 "でを待つ。"
13531
13532 #. type: IP
13533 #: build/C/man2/wait.2:138
13534 #, no-wrap
13535 msgid "-1"
13536 msgstr "-1"
13537
13538 #. type: Plain text
13539 #: build/C/man2/wait.2:140
13540 msgid "meaning wait for any child process."
13541 msgstr "子プロセスのどれかが終了するまで待つ。"
13542
13543 #. type: IP
13544 #: build/C/man2/wait.2:140
13545 #, no-wrap
13546 msgid "0"
13547 msgstr "0"
13548
13549 #. type: Plain text
13550 #: build/C/man2/wait.2:143
13551 msgid ""
13552 "meaning wait for any child process whose process group ID is equal to that "
13553 "of the calling process."
13554 msgstr ""
13555 "プロセスグループID が呼び出したプロセスのものと等しい 子プロセスを待つ。"
13556
13557 #. type: IP
13558 #: build/C/man2/wait.2:143
13559 #, no-wrap
13560 msgid "E<gt> 0"
13561 msgstr "E<gt> 0"
13562
13563 #. type: Plain text
13564 #: build/C/man2/wait.2:147
13565 msgid ""
13566 "meaning wait for the child whose process ID is equal to the value of I<pid>."
13567 msgstr "プロセスID が I<pid> に等しい子プロセスを待つ。"
13568
13569 #. type: Plain text
13570 #: build/C/man2/wait.2:151
13571 msgid ""
13572 "The value of I<options> is an OR of zero or more of the following constants:"
13573 msgstr "I<options> の値は次の定数の 0 個以上の論理和である:"
13574
13575 #. type: TP
13576 #: build/C/man2/wait.2:151 build/C/man2/wait.2:280
13577 #, no-wrap
13578 msgid "B<WNOHANG>"
13579 msgstr "B<WNOHANG>"
13580
13581 #. type: Plain text
13582 #: build/C/man2/wait.2:154
13583 msgid "return immediately if no child has exited."
13584 msgstr "状態変化が起こった子プロセスがない場合にすぐに復帰する。"
13585
13586 #. type: TP
13587 #: build/C/man2/wait.2:154
13588 #, no-wrap
13589 msgid "B<WUNTRACED>"
13590 msgstr "B<WUNTRACED>"
13591
13592 #. type: Plain text
13593 #: build/C/man2/wait.2:163
13594 msgid ""
13595 "also return if a child has stopped (but not traced via B<ptrace>(2)).  "
13596 "Status for I<traced> children which have stopped is provided even if this "
13597 "option is not specified."
13598 msgstr ""
13599 "子プロセスが停止した場合にも復帰する (子プロセスが B<ptrace>(2)  でトレースさ"
13600 "れている場合は除く)。 このオプションが指定されていない場合でも、停止したプロ"
13601 "セスが 「トレース (traced)」されていれば、子プロセスの状態が報告される。"
13602
13603 #. type: TP
13604 #: build/C/man2/wait.2:163
13605 #, no-wrap
13606 msgid "B<WCONTINUED> (since Linux 2.6.10)"
13607 msgstr "B<WCONTINUED> (Linux 2.6.10 以降)"
13608
13609 #. type: Plain text
13610 #: build/C/man2/wait.2:167
13611 msgid ""
13612 "also return if a stopped child has been resumed by delivery of B<SIGCONT>."
13613 msgstr "停止した子プロセスが B<SIGCONT> の配送により再開した場合にも復帰する。"
13614
13615 #. type: Plain text
13616 #: build/C/man2/wait.2:169
13617 msgid "(For Linux-only options, see below.)"
13618 msgstr "(Linux 専用オプションについては後述する)"
13619
13620 #. type: Plain text
13621 #: build/C/man2/wait.2:183
13622 msgid ""
13623 "If I<status> is not NULL, B<wait>()  and B<waitpid>()  store status "
13624 "information in the I<int> to which it points.  This integer can be inspected "
13625 "with the following macros (which take the integer itself as an argument, not "
13626 "a pointer to it, as is done in B<wait>()  and B<waitpid>()!):"
13627 msgstr ""
13628 "I<status> が NULL でなければ、 B<wait>()  や B<waitpid>()  は I<status> で指"
13629 "す I<int> に状態情報を格納する。 この整数は以下のマクロを使って検査できる。 "
13630 "(これらのマクロの引き数には、 B<wait>()  や B<waitpid>()  が書き込んだ整数そ"
13631 "のものを指定する。ポインタではない!)"
13632
13633 #. type: TP
13634 #: build/C/man2/wait.2:183
13635 #, no-wrap
13636 msgid "B<WIFEXITED(>I<status>B<)>"
13637 msgstr "B<WIFEXITED(>I<status>B<)>"
13638
13639 #. type: Plain text
13640 #: build/C/man2/wait.2:191
13641 msgid ""
13642 "returns true if the child terminated normally, that is, by calling "
13643 "B<exit>(3)  or B<_exit>(2), or by returning from main()."
13644 msgstr ""
13645 "子プロセスが正常に終了した場合に真を返す。 「正常に」とは、 B<exit>(3)  か "
13646 "B<_exit>(2)  が呼び出された場合、もしくは main() から復帰した場合である。"
13647
13648 #. type: TP
13649 #: build/C/man2/wait.2:191
13650 #, no-wrap
13651 msgid "B<WEXITSTATUS(>I<status>B<)>"
13652 msgstr "B<WEXITSTATUS(>I<status>B<)>"
13653
13654 #. type: Plain text
13655 #: build/C/man2/wait.2:204
13656 msgid ""
13657 "returns the exit status of the child.  This consists of the least "
13658 "significant 8 bits of the I<status> argument that the child specified in a "
13659 "call to B<exit>(3)  or B<_exit>(2)  or as the argument for a return "
13660 "statement in main().  This macro should be employed only if B<WIFEXITED> "
13661 "returned true."
13662 msgstr ""
13663 "子プロセスの終了ステータスを返す。 終了ステータスは I<status> 引き数の下位 8"
13664 "ビットで構成されており、 B<exit>(3)  や B<_exit>(2)  の呼び出し時に渡された"
13665 "値、もしくは main() の return 文の 引き数として指定された値である。 このマク"
13666 "ロを使用するのは B<WIFEXITED> が真を返した場合だけにすべきである。"
13667
13668 #. type: TP
13669 #: build/C/man2/wait.2:204
13670 #, no-wrap
13671 msgid "B<WIFSIGNALED(>I<status>B<)>"
13672 msgstr "B<WIFSIGNALED(>I<status>B<)>"
13673
13674 #. type: Plain text
13675 #: build/C/man2/wait.2:207
13676 msgid "returns true if the child process was terminated by a signal."
13677 msgstr "子プロセスがシグナルにより終了した場合に真を返す。"
13678
13679 #. type: TP
13680 #: build/C/man2/wait.2:207
13681 #, no-wrap
13682 msgid "B<WTERMSIG(>I<status>B<)>"
13683 msgstr "B<WTERMSIG(>I<status>B<)>"
13684
13685 #. type: Plain text
13686 #: build/C/man2/wait.2:214
13687 msgid ""
13688 "returns the number of the signal that caused the child process to "
13689 "terminate.  This macro should be employed only if B<WIFSIGNALED> returned "
13690 "true."
13691 msgstr ""
13692 "子プロセス終了の原因となったシグナルの番号を返す。 このマクロを使用するのは "
13693 "B<WIFSIGNALED> が真を返した場合だけにすべきである。"
13694
13695 #. type: TP
13696 #: build/C/man2/wait.2:214
13697 #, no-wrap
13698 msgid "B<WCOREDUMP(>I<status>B<)>"
13699 msgstr "B<WCOREDUMP(>I<status>B<)>"
13700
13701 #. type: Plain text
13702 #: build/C/man2/wait.2:223
13703 msgid ""
13704 "returns true if the child produced a core dump.  This macro should be "
13705 "employed only if B<WIFSIGNALED> returned true.  This macro is not specified "
13706 "in POSIX.1-2001 and is not available on some UNIX implementations (e.g., "
13707 "AIX, SunOS).  Only use this enclosed in #ifdef WCOREDUMP ... #endif."
13708 msgstr ""
13709 "子プロセスがコアダンプを生成した場合に真を返す。 このマクロを使用するのは "
13710 "B<WIFSIGNALED> が真を返した場合だけにすべきである。 このマクロは "
13711 "POSIX.1-2001 では規定されておらず、 (AIX, SunOS などの) いくつかの UNIX の実"
13712 "装では利用できない。 必ず #ifdef WCOREDUMP ... #endif で括って使用すること。"
13713
13714 #. type: TP
13715 #: build/C/man2/wait.2:223
13716 #, no-wrap
13717 msgid "B<WIFSTOPPED(>I<status>B<)>"
13718 msgstr "B<WIFSTOPPED(>I<status>B<)>"
13719
13720 #. type: Plain text
13721 #: build/C/man2/wait.2:230
13722 msgid ""
13723 "returns true if the child process was stopped by delivery of a signal; this "
13724 "is possible only if the call was done using B<WUNTRACED> or when the child "
13725 "is being traced (see B<ptrace>(2))."
13726 msgstr ""
13727 "子プロセスがシグナルの配送により停止した場合に真を返す。 これが真になるのは、"
13728 "システムコールが B<WUNTRACED> を指定して呼び出された場合か、子プロセスがト"
13729 "レースされている場合 (B<ptrace>(2)  参照) だけである。"
13730
13731 #. type: TP
13732 #: build/C/man2/wait.2:230
13733 #, no-wrap
13734 msgid "B<WSTOPSIG(>I<status>B<)>"
13735 msgstr "B<WSTOPSIG(>I<status>B<)>"
13736
13737 #. type: Plain text
13738 #: build/C/man2/wait.2:236
13739 msgid ""
13740 "returns the number of the signal which caused the child to stop.  This macro "
13741 "should be employed only if B<WIFSTOPPED> returned true."
13742 msgstr ""
13743 "子プロセスを停止させたシグナルの番号を返す。 このマクロを使用するのは "
13744 "B<WIFSTOPPED> が 0 以外を返した場合だけにすべきである。"
13745
13746 #. type: TP
13747 #: build/C/man2/wait.2:236
13748 #, no-wrap
13749 msgid "B<WIFCONTINUED(>I<status>B<)>"
13750 msgstr "B<WIFCONTINUED(>I<status>B<)>"
13751
13752 #. type: Plain text
13753 #: build/C/man2/wait.2:241
13754 msgid ""
13755 "(since Linux 2.6.10)  returns true if the child process was resumed by "
13756 "delivery of B<SIGCONT>."
13757 msgstr ""
13758 "(Linux 2.6.10 以降)  子プロセスが B<SIGCONT> の配送により再開した場合に真を返"
13759 "す。"
13760
13761 #. type: SS
13762 #: build/C/man2/wait.2:241
13763 #, no-wrap
13764 msgid "waitid()"
13765 msgstr "waitid()"
13766
13767 #. type: Plain text
13768 #: build/C/man2/wait.2:246
13769 msgid ""
13770 "The B<waitid>()  system call (available since Linux 2.6.9) provides more "
13771 "precise control over which child state changes to wait for."
13772 msgstr ""
13773 "B<waitid>()  システムコール (Linux 2.6.9 以降で利用可能) を使うと、 子プロセ"
13774 "スのどの状態変化を待つかについてより細かな制御ができる。"
13775
13776 #. type: Plain text
13777 #: build/C/man2/wait.2:252
13778 msgid ""
13779 "The I<idtype> and I<id> arguments select the child(ren) to wait for, as "
13780 "follows:"
13781 msgstr "引き数 I<idtype> と I<id> でどの子プロセスを待つかを選択する:"
13782
13783 #. type: IP
13784 #: build/C/man2/wait.2:252
13785 #, no-wrap
13786 msgid "I<idtype> == B<P_PID>"
13787 msgstr "I<idtype> == B<P_PID>"
13788
13789 #. type: Plain text
13790 #: build/C/man2/wait.2:255
13791 msgid "Wait for the child whose process ID matches I<id>."
13792 msgstr "プロセスID が I<id> と一致する子プロセスを待つ。"
13793
13794 #. type: IP
13795 #: build/C/man2/wait.2:255
13796 #, no-wrap
13797 msgid "I<idtype> == B<P_PGID>"
13798 msgstr "I<idtype> == B<P_PGID>"
13799
13800 #. type: Plain text
13801 #: build/C/man2/wait.2:258
13802 msgid "Wait for any child whose process group ID matches I<id>."
13803 msgstr "プロセスグループID が I<id> と一致する子プロセスを待つ。"
13804
13805 #. type: IP
13806 #: build/C/man2/wait.2:258
13807 #, no-wrap
13808 msgid "I<idtype> == B<P_ALL>"
13809 msgstr "I<idtype> == B<P_ALL>"
13810
13811 #. type: Plain text
13812 #: build/C/man2/wait.2:262
13813 msgid "Wait for any child; I<id> is ignored."
13814 msgstr "子プロセス全部を対象に待つ。 I<id> は無視される。"
13815
13816 #. type: Plain text
13817 #: build/C/man2/wait.2:266
13818 msgid ""
13819 "The child state changes to wait for are specified by ORing one or more of "
13820 "the following flags in I<options>:"
13821 msgstr ""
13822 "子プロセスのどの状態変化を待つかは以下のフラグで指定する (I<options> には 1個"
13823 "以上のフラグの論理和をとって指定する):"
13824
13825 #. type: TP
13826 #: build/C/man2/wait.2:266
13827 #, no-wrap
13828 msgid "B<WEXITED>"
13829 msgstr "B<WEXITED>"
13830
13831 #. type: Plain text
13832 #: build/C/man2/wait.2:269
13833 msgid "Wait for children that have terminated."
13834 msgstr "子プロセスの終了を待つ。"
13835
13836 #. type: TP
13837 #: build/C/man2/wait.2:269
13838 #, no-wrap
13839 msgid "B<WSTOPPED>"
13840 msgstr "B<WSTOPPED>"
13841
13842 #. type: Plain text
13843 #: build/C/man2/wait.2:272
13844 msgid "Wait for children that have been stopped by delivery of a signal."
13845 msgstr "子プロセスがシグナルの配送により停止するのを待つ。"
13846
13847 #. type: TP
13848 #: build/C/man2/wait.2:272
13849 #, no-wrap
13850 msgid "B<WCONTINUED>"
13851 msgstr "B<WCONTINUED>"
13852
13853 #. type: Plain text
13854 #: build/C/man2/wait.2:277
13855 msgid ""
13856 "Wait for (previously stopped) children that have been resumed by delivery of "
13857 "B<SIGCONT>."
13858 msgstr "(停止していた) 子プロセスが B<SIGCONT> が配送されて再開するのを待つ。"
13859
13860 #. type: Plain text
13861 #: build/C/man2/wait.2:280
13862 msgid "The following flags may additionally be ORed in I<options>:"
13863 msgstr "さらに以下のフラグを論理和の形で I<options> に指定できる:"
13864
13865 #. type: Plain text
13866 #: build/C/man2/wait.2:284
13867 msgid "As for B<waitpid>()."
13868 msgstr "B<waitpid>()  と同様。"
13869
13870 #. type: TP
13871 #: build/C/man2/wait.2:284
13872 #, no-wrap
13873 msgid "B<WNOWAIT>"
13874 msgstr "B<WNOWAIT>"
13875
13876 #. type: Plain text
13877 #: build/C/man2/wait.2:288
13878 msgid ""
13879 "Leave the child in a waitable state; a later wait call can be used to again "
13880 "retrieve the child status information."
13881 msgstr ""
13882 "waitable 状態のプロセスをそのままにする。この後で wait コールを 使って、同じ"
13883 "子プロセスの状態情報をもう一度取得することができる。"
13884
13885 #. type: Plain text
13886 #: build/C/man2/wait.2:295
13887 msgid ""
13888 "Upon successful return, B<waitid>()  fills in the following fields of the "
13889 "I<siginfo_t> structure pointed to by I<infop>:"
13890 msgstr ""
13891 "成功した場合には、 B<waitid>()  は I<infop> が指す I<siginfo_t> 構造体の以下"
13892 "のフィールドを設定する:"
13893
13894 #. type: Plain text
13895 #: build/C/man2/wait.2:298
13896 msgid "The process ID of the child."
13897 msgstr "子プロセスのプロセスID。"
13898
13899 #. type: Plain text
13900 #: build/C/man2/wait.2:302
13901 msgid ""
13902 "The real user ID of the child.  (This field is not set on most other "
13903 "implementations.)"
13904 msgstr ""
13905 "子プロセスの実ユーザID (このフィールドは他のほとんどの実装では設定されない)。"
13906
13907 #. type: Plain text
13908 #: build/C/man2/wait.2:306
13909 msgid "Always set to B<SIGCHLD>."
13910 msgstr "常に B<SIGCHLD> が設定される。"
13911
13912 #. type: TP
13913 #: build/C/man2/wait.2:306
13914 #, no-wrap
13915 msgid "I<si_status>"
13916 msgstr "I<si_status>"
13917
13918 #. type: Plain text
13919 #: build/C/man2/wait.2:316
13920 msgid ""
13921 "Either the exit status of the child, as given to B<_exit>(2)  (or "
13922 "B<exit>(3)), or the signal that caused the child to terminate, stop, or "
13923 "continue.  The I<si_code> field can be used to determine how to interpret "
13924 "this field."
13925 msgstr ""
13926 "B<_exit>(2)  (か B<exit>(3))  に指定された子プロセスの終了ステータス、もしく"
13927 "は 子プロセスの終了、停止、再開の原因となったシグナルが設定される。 この"
13928 "フィールドをどう解釈するかは、 I<si_code> フィールドを参照して決めることがで"
13929 "きる。"
13930
13931 #. type: Plain text
13932 #: build/C/man2/wait.2:333
13933 msgid ""
13934 "Set to one of: B<CLD_EXITED> (child called B<_exit>(2)); B<CLD_KILLED> "
13935 "(child killed by signal); B<CLD_DUMPED> (child killed by signal, and dumped "
13936 "core); B<CLD_STOPPED> (child stopped by signal); B<CLD_TRAPPED> (traced "
13937 "child has trapped); or B<CLD_CONTINUED> (child continued by B<SIGCONT>)."
13938 msgstr ""
13939 "以下のいずれかが設定される: B<CLD_EXITED> (子プロセスが B<_exit>(2)  を呼び出"
13940 "した); B<CLD_KILLED> (シグナルにより子プロセスが kill された); B<CLD_DUMPED> "
13941 "(シグナルにより子プロセスが kill され、コア・ダンプが行われた); "
13942 "B<CLD_STOPPED> (シグナルにより子プロセスが停止した); B<CLD_TRAPPED> (トレース"
13943 "されていた子プロセスがトラップを受信した); B<CLD_CONTINUED> (B<SIGCONT> によ"
13944 "り子プロセスが再開された)。"
13945
13946 #.  POSIX.1-2001 leaves this possibility unspecified; most
13947 #.  implementations (including Linux) zero out the structure
13948 #.  in this case, but at least one implementation (AIX 5.1)
13949 #.  does not -- MTK Nov 04
13950 #. type: Plain text
13951 #: build/C/man2/wait.2:355
13952 msgid ""
13953 "If B<WNOHANG> was specified in I<options> and there were no children in a "
13954 "waitable state, then B<waitid>()  returns 0 immediately and the state of the "
13955 "I<siginfo_t> structure pointed to by I<infop> is unspecified.  To "
13956 "distinguish this case from that where a child was in a waitable state, zero "
13957 "out the I<si_pid> field before the call and check for a nonzero value in "
13958 "this field after the call returns."
13959 msgstr ""
13960 "B<WNOHANG> が I<options> に指定されていて、 waitable 状態の子プロセスがなかっ"
13961 "た場合には、 B<waitid>()  はすぐに 0 を返す。このとき、 I<infop> が指す "
13962 "I<siginfo_t> 構造体の内容は不定である。 この場合を waitable 状態の子プロセス"
13963 "があった場合と区別するには、 B<waitid>()  を呼び出す前に I<si_pid> を 0 にし"
13964 "ておき、コールが復帰した後でこのフィールドが 0 以外の値かどうか をチェックす"
13965 "ればよい。"
13966
13967 #. type: Plain text
13968 #: build/C/man2/wait.2:359
13969 msgid ""
13970 "B<wait>(): on success, returns the process ID of the terminated child; on "
13971 "error, -1 is returned."
13972 msgstr ""
13973 "B<wait>(): 成功すると、終了した子プロセスのプロセスID を返す。 エラーの場合 "
13974 "-1 を返す。"
13975
13976 #. type: Plain text
13977 #: build/C/man2/wait.2:368
13978 msgid ""
13979 "B<waitpid>(): on success, returns the process ID of the child whose state "
13980 "has changed; if B<WNOHANG> was specified and one or more child(ren) "
13981 "specified by I<pid> exist, but have not yet changed state, then 0 is "
13982 "returned.  On error, -1 is returned."
13983 msgstr ""
13984 "B<waitpid>(): 成功すると、状態が変化した子プロセスのプロセスID を返す。 "
13985 "B<WNOHANG> が指定されていて、 I<pid> で指示された子プロセスが一つ以上存在する"
13986 "が、どの子プロセスでも 状態変化が起こっていなかった場合は、 0 を返す。 エラー"
13987 "の場合 -1 を返す。"
13988
13989 #.  FIXME: As reported by Vegard Nossum, if infop is NULL, then waitid()
13990 #.  returns the PID of the child.  Either this is a bug, or it is intended
13991 #.  behavior that needs to be documented.  See my Jan 2009 LKML mail
13992 #.  "waitid() return value strangeness when infop is NULL".
13993 #. type: Plain text
13994 #: build/C/man2/wait.2:384
13995 msgid ""
13996 "B<waitid>(): returns 0 on success or if B<WNOHANG> was specified and no "
13997 "child(ren) specified by I<id> has yet changed state; on error, -1 is "
13998 "returned.  Each of these calls sets I<errno> to an appropriate value in the "
13999 "case of an error."
14000 msgstr ""
14001 "B<waitid>(): 成功すると 0 を返す。 B<WNOHANG> が指定されていて、 I<pid> で指"
14002 "示された子プロセスで状態変化が起こっていなかった場合にも 0 を返す。 エラーの"
14003 "場合 -1 を返す。 エラーの場合、これらのシステムコールはいずれも I<errno> に適"
14004 "切な値を設定する。"
14005
14006 #. type: TP
14007 #: build/C/man2/wait.2:385 build/C/man2/wait.2:390
14008 #, no-wrap
14009 msgid "B<ECHILD>"
14010 msgstr "B<ECHILD>"
14011
14012 #. type: Plain text
14013 #: build/C/man2/wait.2:390
14014 msgid ""
14015 "(for B<wait>())  The calling process does not have any unwaited-for children."
14016 msgstr ""
14017 "(B<wait>()  の場合)  呼び出し元プロセスには、wait を行っていない子プロセスは"
14018 "ない。"
14019
14020 #. type: Plain text
14021 #: build/C/man2/wait.2:410
14022 msgid ""
14023 "(for B<waitpid>()  or B<waitid>())  The process specified by I<pid> "
14024 "(B<waitpid>())  or I<idtype> and I<id> (B<waitid>())  does not exist or is "
14025 "not a child of the calling process.  (This can happen for one's own child if "
14026 "the action for B<SIGCHLD> is set to B<SIG_IGN>.  See also the I<Linux Notes> "
14027 "section about threads.)"
14028 msgstr ""
14029 "(B<waitpid>()  か B<waitid>()  の場合)  I<pid> (B<waitpid>())  か I<idtype> "
14030 "と I<id> (B<waitid>())  で指定したプロセスが存在しないか、呼び出し元プロセス"
14031 "の子プロセスでない (B<SIGCHLD> の動作に B<SIG_IGN> を設定した場合には、自分自"
14032 "身の子プロセスでも起こりうる。 スレッドに関しては「Linux での注意」の節も参照"
14033 "すること)。"
14034
14035 #. type: Plain text
14036 #: build/C/man2/wait.2:417
14037 msgid ""
14038 "B<WNOHANG> was not set and an unblocked signal or a B<SIGCHLD> was caught; "
14039 "see B<signal>(7)."
14040 msgstr ""
14041 "B<WNOHANG> が設定されておらず、禁止 (block) されていないシグナルや "
14042 "B<SIGCHLD> を受信した。 B<signal>(7)  参照。"
14043
14044 #. type: Plain text
14045 #: build/C/man2/wait.2:422
14046 msgid "The I<options> argument was invalid."
14047 msgstr "I<options> 引き数が不正である。"
14048
14049 #. type: Plain text
14050 #: build/C/man2/wait.2:437
14051 msgid ""
14052 "A child that terminates, but has not been waited for becomes a \"zombie\".  "
14053 "The kernel maintains a minimal set of information about the zombie process "
14054 "(PID, termination status, resource usage information)  in order to allow the "
14055 "parent to later perform a wait to obtain information about the child.  As "
14056 "long as a zombie is not removed from the system via a wait, it will consume "
14057 "a slot in the kernel process table, and if this table fills, it will not be "
14058 "possible to create further processes.  If a parent process terminates, then "
14059 "its \"zombie\" children (if any)  are adopted by B<init>(8), which "
14060 "automatically performs a wait to remove the zombies."
14061 msgstr ""
14062 "終了したが、wait されていない子プロセスは「ゾンビ」になる。 後で親プロセスが "
14063 "wait を実行して子プロセスについての情報を取得できるように、 カーネルはゾンビ"
14064 "プロセスについて最小限の情報 (PID、終了ステータス、 リソース使用状況) を保持"
14065 "する。 ゾンビプロセスは、 wait によってシステムから削除されない限り、 カーネ"
14066 "ルのプロセステーブルの 1 エントリを消費する。このプロセステーブルが 一杯にな"
14067 "ると、新たにプロセスを作ることができなくなる。 親プロセスが終了すると、その親"
14068 "プロセスの「ゾンビ」の 子プロセスは (もしあれば)  B<init>(8)  の養子となる。 "
14069 "B<init>(8)  は wait を自動的に実行し、ゾンビを削除する。"
14070
14071 #. type: Plain text
14072 #: build/C/man2/wait.2:466
14073 #, fuzzy
14074 #| msgid ""
14075 #| "POSIX.1-2001 specifies that if the disposition of B<SIGCHLD> is set to "
14076 #| "B<SIG_IGN> or the B<SA_NOCLDWAIT> flag is set for B<SIGCHLD> (see "
14077 #| "B<sigaction>(2)), then children that terminate do not become zombies and "
14078 #| "a call to B<wait>()  or B<waitpid>()  will block until all children have "
14079 #| "terminated, and then fail with I<errno> set to B<ECHILD>.  (The original "
14080 #| "POSIX standard left the behavior of setting B<SIGCHLD> to B<SIG_IGN> "
14081 #| "unspecified.  Note that even though the default disposition of B<SIGCHLD> "
14082 #| "is \"ignore\", explicitly setting the disposition to B<SIG_IGN> results "
14083 #| "in different treatment of zombie process children.)  Linux 2.6 conforms "
14084 #| "to this specification.  However, Linux 2.4 (and earlier) does not: if a "
14085 #| "B<wait>()  or B<waitpid>()  call is made while B<SIGCHLD> is being "
14086 #| "ignored, the call behaves just as though B<SIGCHLD> were not being "
14087 #| "ignored, that is, the call blocks until the next child terminates and "
14088 #| "then returns the process ID and status of that child."
14089 msgid ""
14090 "POSIX.1-2001 specifies that if the disposition of B<SIGCHLD> is set to "
14091 "B<SIG_IGN> or the B<SA_NOCLDWAIT> flag is set for B<SIGCHLD> (see "
14092 "B<sigaction>(2)), then children that terminate do not become zombies and a "
14093 "call to B<wait>()  or B<waitpid>()  will block until all children have "
14094 "terminated, and then fail with I<errno> set to B<ECHILD>.  (The original "
14095 "POSIX standard left the behavior of setting B<SIGCHLD> to B<SIG_IGN> "
14096 "unspecified.  Note that even though the default disposition of B<SIGCHLD> is "
14097 "\"ignore\", explicitly setting the disposition to B<SIG_IGN> results in "
14098 "different treatment of zombie process children.)"
14099 msgstr ""
14100 "POSIX.1-2001 では以下のように規定されている。 B<SIGCHLD> の動作が B<SIG_IGN> "
14101 "に設定されたか、 B<SIGCHLD> に対して B<SA_NOCLDWAIT> フラグが設定された場合 "
14102 "(B<sigaction>(2)  参照)、終了した子プロセスはゾンビにはならず、 B<wait>()  "
14103 "や B<waitpid>()  の呼び出しは全ての子プロセスが終了するまで停止し、 子プロセ"
14104 "スが全部終了した後 I<errno> に B<ECHILD> を設定して失敗する。 (もともとの "
14105 "POSIX 標準は B<SIGCHLD> に B<SIG_IGN> を設定した場合の振る舞いを未規定のまま"
14106 "にしている。 B<SIGCHLD> のデフォルトの動作が「無視」であるにもかかわらず、 "
14107 "B<SIGCHLD> の動作として B<SIG_IGN> を明示的に設定した場合にはゾンビプロセスの"
14108 "子プロセスの扱いが 異なる点に注意すること。)  Linux 2.6 はこの仕様に準拠して"
14109 "いる。 しかし、Linux 2.4 (とそれ以前のバージョン) はそうではない: B<SIGCHLD> "
14110 "が無視される状態で B<wait>()  または B<waitpid>()  が呼び出された場合、 "
14111 "B<SIGCHLD> が無視されていないかのように振る舞う。 つまり、呼び出しによって次"
14112 "の子プロセスの終了までブロックされ、 終了した子プロセスの PID と状態が返され"
14113 "る。"
14114
14115 #. type: Plain text
14116 #: build/C/man2/wait.2:479
14117 msgid ""
14118 "Linux 2.6 conforms to the POSIX requirements.  However, Linux 2.4 (and "
14119 "earlier) does not: if a B<wait>()  or B<waitpid>()  call is made while "
14120 "B<SIGCHLD> is being ignored, the call behaves just as though B<SIGCHLD> were "
14121 "not being ignored, that is, the call blocks until the next child terminates "
14122 "and then returns the process ID and status of that child."
14123 msgstr ""
14124
14125 #. type: Plain text
14126 #: build/C/man2/wait.2:495
14127 msgid ""
14128 "In the Linux kernel, a kernel-scheduled thread is not a distinct construct "
14129 "from a process.  Instead, a thread is simply a process that is created using "
14130 "the Linux-unique B<clone>(2)  system call; other routines such as the "
14131 "portable B<pthread_create>(3)  call are implemented using B<clone>(2).  "
14132 "Before Linux 2.4, a thread was just a special case of a process, and as a "
14133 "consequence one thread could not wait on the children of another thread, "
14134 "even when the latter belongs to the same thread group.  However, POSIX "
14135 "prescribes such functionality, and since Linux 2.4 a thread can, and by "
14136 "default will, wait on children of other threads in the same thread group."
14137 msgstr ""
14138 "Linux カーネルでは、カーネルによってスケジュールされるスレッドは プロセスと明"
14139 "確に区別できる構成要素ではない。スレッドは Linux 固有の B<clone>(2)  システム"
14140 "コールを使用して生成されるプロセスに過ぎない。 移植性のある "
14141 "B<pthread_create>(3)  コールのような他のルーチンは B<clone>(2)  を使用して実"
14142 "装されている; これらでは B<waitid>()  を使うことはできない。 Linux 2.4 より前"
14143 "では、スレッドは単に特殊なプロセスであったので、 例え同じスレッドグループで"
14144 "あっても、 あるスレッドが別のスレッドの子プロセスが終了するのを待つことは出来"
14145 "なかった。 しかし、POSIX ではこのような機能を規定しており、 Linux 2.4 以降で"
14146 "は、あるスレッドが同じスレッドグループの他のスレッドの 子プロセスが終了するの"
14147 "を待つことができるようになった。 そして将来はこれがデフォルトの動作になるであ"
14148 "ろう。"
14149
14150 #. type: Plain text
14151 #: build/C/man2/wait.2:502
14152 msgid ""
14153 "The following Linux-specific I<options> are for use with children created "
14154 "using B<clone>(2); they cannot be used with B<waitid>():"
14155 msgstr ""
14156 "B<clone>(2)  を用いて作られた子プロセスには、以下の Linux 固有の I<options> "
14157 "が使用できる。"
14158
14159 #. type: TP
14160 #: build/C/man2/wait.2:502
14161 #, no-wrap
14162 msgid "B<__WCLONE>"
14163 msgstr "B<__WCLONE>"
14164
14165 #.  since 0.99pl10
14166 #. type: Plain text
14167 #: build/C/man2/wait.2:513
14168 msgid ""
14169 "Wait for \"clone\" children only.  If omitted, then wait for \"non-clone\" "
14170 "children only.  (A \"clone\" child is one which delivers no signal, or a "
14171 "signal other than B<SIGCHLD> to its parent upon termination.)  This option "
14172 "is ignored if B<__WALL> is also specified."
14173 msgstr ""
14174 "\"clone\" な子プロセスだけを待つ。 指定されなかった場合は非 \"clone\" な子プ"
14175 "ロセスだけを待つ (\"clone\" な子プロセスは、終了時に親プロセスへ全くシグナル"
14176 "を送らないか、 B<SIGCHLD> 以外のシグナルを送る)。 このオプションは B<__WALL> "
14177 "も指定された場合は無視される。"
14178
14179 #. type: TP
14180 #: build/C/man2/wait.2:513
14181 #, no-wrap
14182 msgid "B<__WALL> (since Linux 2.4)"
14183 msgstr "B<__WALL> (Linux 2.4 以降)"
14184
14185 #.  since patch-2.3.48
14186 #. type: Plain text
14187 #: build/C/man2/wait.2:518
14188 msgid "Wait for all children, regardless of type (\"clone\" or \"non-clone\")."
14189 msgstr "\"clone\" であるかないかに関わらず、 全ての子プロセスを待つ。"
14190
14191 #. type: TP
14192 #: build/C/man2/wait.2:518
14193 #, no-wrap
14194 msgid "B<__WNOTHREAD> (since Linux 2.4)"
14195 msgstr "B<__WNOTHREAD> (Linux 2.4 以降)"
14196
14197 #.  since patch-2.4.0-test8
14198 #. type: Plain text
14199 #: build/C/man2/wait.2:524
14200 msgid ""
14201 "Do not wait for children of other threads in the same thread group.  This "
14202 "was the default before Linux 2.4."
14203 msgstr ""
14204 "同じスレッドグループの他のスレッドの子プロセスは待たない。 Linux 2.4 より前で"
14205 "はデフォルトであった。"
14206
14207 #. type: Plain text
14208 #: build/C/man2/wait.2:536
14209 msgid ""
14210 "The raw B<waitid>()  system call takes a fith argument, of type I<struct "
14211 "rusage\\ *>.  If this argument is non-NULL, then it is used to return "
14212 "resource usage information about the child, in the same manner as "
14213 "B<wait4>(2).  See B<getrusage>(2)  for details."
14214 msgstr ""
14215 "生の B<waitid>() システムコールは I<struct rusage\\ *> 型の第 5 引数を取る。 "
14216 "この引数が NULL 以外の場合、 この引数が子プロセスのリソース使用状況を返すのに"
14217 "使用される。 これは B<wait4>(2) と同じ方法である。 詳細は B<getrusage>(2) を"
14218 "参照。"
14219
14220 #. type: Plain text
14221 #: build/C/man2/wait.2:551
14222 msgid ""
14223 "According to POSIX.1-2008, an application calling B<waitid>()  must ensure "
14224 "that I<infop> points to a I<siginfo_t> structure (i.e., that it is a non-"
14225 "null pointer).  On Linux, if I<infop> is NULL, B<waitid>()  succeeds, and "
14226 "returns the process ID of the waited-for child.  Applications should avoid "
14227 "relying on this inconsistent, nonstandard, and unnecessary feature."
14228 msgstr ""
14229 "POSIX.1-2008 によると、 B<waitid>() を呼び出すアプリケーションは、 I<infop> "
14230 "が I<siginfo_t> 構造体を指していること (つまり I<infop> が NULL でないポイン"
14231 "タであること) を保証しなければならない。 Linux では、 I<infop> が NULL の場"
14232 "合、 B<waitid>() は成功し、wait している子プロセスのプロセス ID を返す。 アプ"
14233 "リケーションは、この食い違った、非標準で、不必要な機能に依存しないようにすべ"
14234 "きである。"
14235
14236 #.  fork.2 refers to this example program.
14237 #. type: Plain text
14238 #: build/C/man2/wait.2:568
14239 msgid ""
14240 "The following program demonstrates the use of B<fork>(2)  and B<waitpid>().  "
14241 "The program creates a child process.  If no command-line argument is "
14242 "supplied to the program, then the child suspends its execution using "
14243 "B<pause>(2), to allow the user to send signals to the child.  Otherwise, if "
14244 "a command-line argument is supplied, then the child exits immediately, using "
14245 "the integer supplied on the command line as the exit status.  The parent "
14246 "process executes a loop that monitors the child using B<waitpid>(), and uses "
14247 "the W*() macros described above to analyze the wait status value."
14248 msgstr ""
14249 "以下のプログラムは、 B<fork>(2)  と B<waitpid>()  の使用方法の例を示してい"
14250 "る。 このプログラムでは子プロセスを生成する。 コマンドライン引き数が指定され"
14251 "なかったときは、 子プロセスは B<pause>(2)  を使ってその実行を一時停止し、ユー"
14252 "ザがその子プロセスに シグナルを送信できるようにする。 コマンドライン引き数が"
14253 "指定された場合は、 子プロセスは直ちに終了し、 コマンドラインで指定された整数"
14254 "を終了ステータスとして使用する。 親プロセスは、 B<waitpid>()  を使って子プロ"
14255 "セスを監視し、 wait のステータス値を上記の W*() マクロを使って解析するという "
14256 "ループを実行する。"
14257
14258 #. type: Plain text
14259 #: build/C/man2/wait.2:584
14260 #, no-wrap
14261 msgid ""
14262 "$B< ./a.out &>\n"
14263 "Child PID is 32360\n"
14264 "[1] 32359\n"
14265 "$B< kill -STOP 32360>\n"
14266 "stopped by signal 19\n"
14267 "$B< kill -CONT 32360>\n"
14268 "continued\n"
14269 "$B< kill -TERM 32360>\n"
14270 "killed by signal 15\n"
14271 "[1]+  Done                    ./a.out\n"
14272 "$\n"
14273 msgstr ""
14274 "$B< ./a.out &>\n"
14275 "Child PID is 32360\n"
14276 "[1] 32359\n"
14277 "$B< kill -STOP 32360>\n"
14278 "stopped by signal 19\n"
14279 "$B< kill -CONT 32360>\n"
14280 "continued\n"
14281 "$B< kill -TERM 32360>\n"
14282 "killed by signal 15\n"
14283 "[1]+  Done                    ./a.out\n"
14284 "$\n"
14285
14286 #. type: Plain text
14287 #: build/C/man2/wait.2:593
14288 #, no-wrap
14289 msgid ""
14290 "#include E<lt>sys/wait.hE<gt>\n"
14291 "#include E<lt>stdlib.hE<gt>\n"
14292 "#include E<lt>unistd.hE<gt>\n"
14293 "#include E<lt>stdio.hE<gt>\n"
14294 msgstr ""
14295 "#include E<lt>sys/wait.hE<gt>\n"
14296 "#include E<lt>stdlib.hE<gt>\n"
14297 "#include E<lt>unistd.hE<gt>\n"
14298 "#include E<lt>stdio.hE<gt>\n"
14299
14300 #. type: Plain text
14301 #: build/C/man2/wait.2:599
14302 #, no-wrap
14303 msgid ""
14304 "int\n"
14305 "main(int argc, char *argv[])\n"
14306 "{\n"
14307 "    pid_t cpid, w;\n"
14308 "    int status;\n"
14309 msgstr ""
14310 "int\n"
14311 "main(int argc, char *argv[])\n"
14312 "{\n"
14313 "    pid_t cpid, w;\n"
14314 "    int status;\n"
14315
14316 #. type: Plain text
14317 #: build/C/man2/wait.2:605
14318 #, no-wrap
14319 msgid ""
14320 "    cpid = fork();\n"
14321 "    if (cpid == -1) {\n"
14322 "        perror(\"fork\");\n"
14323 "        exit(EXIT_FAILURE);\n"
14324 "    }\n"
14325 msgstr ""
14326 "    cpid = fork();\n"
14327 "    if (cpid == -1) {\n"
14328 "        perror(\"fork\");\n"
14329 "        exit(EXIT_FAILURE);\n"
14330 "    }\n"
14331
14332 #. type: Plain text
14333 #: build/C/man2/wait.2:611
14334 #, no-wrap
14335 msgid ""
14336 "    if (cpid == 0) {            /* Code executed by child */\n"
14337 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
14338 "        if (argc == 1)\n"
14339 "            pause();                    /* Wait for signals */\n"
14340 "        _exit(atoi(argv[1]));\n"
14341 msgstr ""
14342 "    if (cpid == 0) {            /* Code executed by child */\n"
14343 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
14344 "        if (argc == 1)\n"
14345 "            pause();                    /* Wait for signals */\n"
14346 "        _exit(atoi(argv[1]));\n"
14347
14348 #. type: Plain text
14349 #: build/C/man2/wait.2:619
14350 #, no-wrap
14351 msgid ""
14352 "    } else {                    /* Code executed by parent */\n"
14353 "        do {\n"
14354 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
14355 "            if (w == -1) {\n"
14356 "                perror(\"waitpid\");\n"
14357 "                exit(EXIT_FAILURE);\n"
14358 "            }\n"
14359 msgstr ""
14360 "    } else {                    /* Code executed by parent */\n"
14361 "        do {\n"
14362 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
14363 "            if (w == -1) {\n"
14364 "                perror(\"waitpid\");\n"
14365 "                exit(EXIT_FAILURE);\n"
14366 "            }\n"
14367
14368 #. type: Plain text
14369 #: build/C/man2/wait.2:633
14370 #, no-wrap
14371 msgid ""
14372 "            if (WIFEXITED(status)) {\n"
14373 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
14374 "            } else if (WIFSIGNALED(status)) {\n"
14375 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
14376 "            } else if (WIFSTOPPED(status)) {\n"
14377 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
14378 "            } else if (WIFCONTINUED(status)) {\n"
14379 "                printf(\"continued\\en\");\n"
14380 "            }\n"
14381 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
14382 "        exit(EXIT_SUCCESS);\n"
14383 "    }\n"
14384 "}\n"
14385 msgstr ""
14386 "            if (WIFEXITED(status)) {\n"
14387 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
14388 "            } else if (WIFSIGNALED(status)) {\n"
14389 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
14390 "            } else if (WIFSTOPPED(status)) {\n"
14391 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
14392 "            } else if (WIFCONTINUED(status)) {\n"
14393 "                printf(\"continued\\en\");\n"
14394 "            }\n"
14395 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
14396 "        exit(EXIT_SUCCESS);\n"
14397 "    }\n"
14398 "}\n"
14399
14400 #. type: Plain text
14401 #: build/C/man2/wait.2:646
14402 msgid ""
14403 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), "
14404 "B<sigaction>(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), "
14405 "B<credentials>(7), B<signal>(7)"
14406 msgstr ""
14407 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), "
14408 "B<sigaction>(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), "
14409 "B<credentials>(7), B<signal>(7)"
14410
14411 #. type: TH
14412 #: build/C/man2/wait4.2:33
14413 #, no-wrap
14414 msgid "WAIT4"
14415 msgstr "WAIT4"
14416
14417 #. type: TH
14418 #: build/C/man2/wait4.2:33
14419 #, no-wrap
14420 msgid "2012-09-23"
14421 msgstr "2012-09-23"
14422
14423 #. type: Plain text
14424 #: build/C/man2/wait4.2:36
14425 msgid "wait3, wait4 - wait for process to change state, BSD style"
14426 msgstr "wait3, wait4 - BSD スタイルでプロセスの状態変化を待つ"
14427
14428 #. type: Plain text
14429 #: build/C/man2/wait4.2:42
14430 #, no-wrap
14431 msgid ""
14432 "B<#include E<lt>sys/types.hE<gt>>\n"
14433 "B<#include E<lt>sys/time.hE<gt>>\n"
14434 "B<#include E<lt>sys/resource.hE<gt>>\n"
14435 "B<#include E<lt>sys/wait.hE<gt>>\n"
14436 msgstr ""
14437 "B<#include E<lt>sys/types.hE<gt>>\n"
14438 "B<#include E<lt>sys/time.hE<gt>>\n"
14439 "B<#include E<lt>sys/resource.hE<gt>>\n"
14440 "B<#include E<lt>sys/wait.hE<gt>>\n"
14441
14442 #. type: Plain text
14443 #: build/C/man2/wait4.2:45
14444 #, no-wrap
14445 msgid ""
14446 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14447 "B<            struct rusage *>I<rusage>B<);>\n"
14448 msgstr ""
14449 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14450 "B<            struct rusage *>I<rusage>B<);>\n"
14451
14452 #. type: Plain text
14453 #: build/C/man2/wait4.2:48
14454 #, no-wrap
14455 msgid ""
14456 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14457 "B<            struct rusage *>I<rusage>B<);>\n"
14458 msgstr ""
14459 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14460 "B<            struct rusage *>I<rusage>B<);>\n"
14461
14462 #. type: Plain text
14463 #: build/C/man2/wait4.2:57
14464 msgid "B<wait3>():"
14465 msgstr "B<wait3>():"
14466
14467 #. type: Plain text
14468 #: build/C/man2/wait4.2:63
14469 msgid "B<wait4>():"
14470 msgstr "B<wait4>():"
14471
14472 #. type: Plain text
14473 #: build/C/man2/wait4.2:65
14474 msgid "_BSD_SOURCE"
14475 msgstr "_BSD_SOURCE"
14476
14477 #. type: Plain text
14478 #: build/C/man2/wait4.2:73
14479 msgid ""
14480 "These functions are obsolete; use B<waitpid>(2)  or B<waitid>(2)  in new "
14481 "programs."
14482 msgstr ""
14483 "これらの関数は廃止予定である。 新しいプログラムでは B<waitpid>(2) や "
14484 "B<waitid>(2) を使用すること。"
14485
14486 #. type: Plain text
14487 #: build/C/man2/wait4.2:83
14488 msgid ""
14489 "The B<wait3>()  and B<wait4>()  system calls are similar to B<waitpid>(2), "
14490 "but additionally return resource usage information about the child in the "
14491 "structure pointed to by I<rusage>."
14492 msgstr ""
14493 "システムコール B<wait3>()  と B<wait4>()  は B<waitpid>(2)  と同様の動作をす"
14494 "る。それに加え、子プロセスのリソース使用状況の情報を I<rusage> が指す構造体に"
14495 "入れて返す。"
14496
14497 #. type: Plain text
14498 #: build/C/man2/wait4.2:89
14499 msgid ""
14500 "Other than the use of the I<rusage> argument, the following B<wait3>()  call:"
14501 msgstr "I<rusage> を使用する点を除けば、次の B<wait3>()  の呼び出し"
14502
14503 #. type: Plain text
14504 #: build/C/man2/wait4.2:92
14505 #, no-wrap
14506 msgid "    wait3(status, options, rusage);\n"
14507 msgstr "    wait3(status, options, rusage);\n"
14508
14509 #. type: Plain text
14510 #: build/C/man2/wait4.2:95 build/C/man2/wait4.2:109
14511 msgid "is equivalent to:"
14512 msgstr "は以下と等価である。"
14513
14514 #. type: Plain text
14515 #: build/C/man2/wait4.2:98
14516 #, no-wrap
14517 msgid "    waitpid(-1, status, options);\n"
14518 msgstr "    waitpid(-1, status, options);\n"
14519
14520 #. type: Plain text
14521 #: build/C/man2/wait4.2:103
14522 msgid "Similarly, the following B<wait4>()  call:"
14523 msgstr "同様に、次の B<wait4>()  の呼び出し"
14524
14525 #. type: Plain text
14526 #: build/C/man2/wait4.2:106
14527 #, no-wrap
14528 msgid "    wait4(pid, status, options, rusage);\n"
14529 msgstr "    wait4(pid, status, options, rusage);\n"
14530
14531 #. type: Plain text
14532 #: build/C/man2/wait4.2:112
14533 #, no-wrap
14534 msgid "    waitpid(pid, status, options);\n"
14535 msgstr "    waitpid(pid, status, options);\n"
14536
14537 #. type: Plain text
14538 #: build/C/man2/wait4.2:122
14539 msgid ""
14540 "In other words, B<wait3>()  waits of any child, while B<wait4>()  can be "
14541 "used to select a specific child, or children, on which to wait.  See "
14542 "B<wait>(2)  for further details."
14543 msgstr ""
14544 "言い換えると、 B<wait3>()  は全ての子プロセスを対象に待つが、 B<wait4>()  で"
14545 "は特定の子プロセス (複数可) を選んで待つことができる。"
14546
14547 #. type: Plain text
14548 #: build/C/man2/wait4.2:132
14549 msgid ""
14550 "If I<rusage> is not NULL, the I<struct rusage> to which it points will be "
14551 "filled with accounting information about the child.  See B<getrusage>(2)  "
14552 "for details."
14553 msgstr ""
14554 "I<rusage> が NULL でない場合、 I<rusage> が指す I<rusage 構造体> には子プロセ"
14555 "スのアカウント情報が格納される。 詳しくは B<getrusage>(2)  を参照のこと。"
14556
14557 #. type: Plain text
14558 #: build/C/man2/wait4.2:135 build/C/man2/wait4.2:138
14559 msgid "As for B<waitpid>(2)."
14560 msgstr "B<waitpid>(2)  と同様。"
14561
14562 #. type: Plain text
14563 #: build/C/man2/wait4.2:140
14564 msgid "4.3BSD."
14565 msgstr "4.3BSD."
14566
14567 #. type: Plain text
14568 #: build/C/man2/wait4.2:147
14569 msgid ""
14570 "SUSv1 included a specification of B<wait3>(); SUSv2 included B<wait3>(), but "
14571 "marked it LEGACY; SUSv3 removed it."
14572 msgstr ""
14573 "SUSv1 には B<wait3>() の規定があった。 SUSv2 には B<wait3>() が含まれていた"
14574 "が、「過去の名残 (LEGACY)」となっていた。 SUSv3 では B<wait3>() は削除され"
14575 "た。"
14576
14577 #. type: Plain text
14578 #: build/C/man2/wait4.2:159
14579 msgid ""
14580 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
14581 "portability.  (Indeed, I<E<lt>sys/resource.hE<gt>> defines the I<rusage> "
14582 "structure with fields of type I<struct timeval> defined in I<E<lt>sys/time."
14583 "hE<gt>>.)"
14584 msgstr ""
14585 "現在では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、インクルード"
14586 "しておくと 移植性を高めることができる (実際には I<E<lt>sys/resource.hE<gt>> "
14587 "で I<rusage> 構造体が定義されているが、そのフィールドで使用されている "
14588 "I<struct timeval> 型は I<E<lt>sys/time.hE<gt>> で定義されている)。"
14589
14590 #. type: Plain text
14591 #: build/C/man2/wait4.2:165
14592 msgid ""
14593 "On Linux, B<wait3>()  is a library function implemented on top of the "
14594 "B<wait4>()  system call."
14595 msgstr ""
14596 "Linux では、 B<wait3>()  はライブラリ関数であり、 B<wait4>()  システムコール"
14597 "を使って実装されている。"
14598
14599 #. type: Plain text
14600 #: build/C/man2/wait4.2:172
14601 msgid ""
14602 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14603 "B<signal>(7)"
14604 msgstr ""
14605 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14606 "B<signal>(7)"
14607
14608 #~ msgid "2014-02-22"
14609 #~ msgstr "2014-02-22"
14610
14611 #~ msgid "2013-09-24"
14612 #~ msgstr "2013-09-24"