OSDN Git Service

0074168c7b48cebfa925864a63164379acba228d
[linuxjm/LDP_man-pages.git] / po4a / signal / po / ja.po
1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
6 msgid ""
7 msgstr ""
8 "Project-Id-Version: PACKAGE VERSION\n"
9 "POT-Creation-Date: 2014-04-13 10:27+0900\n"
10 "PO-Revision-Date: 2013-10-14 01:45+0900\n"
11 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Language-Team: LANGUAGE <LL@li.org>\n"
13 "Language: \n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17
18 #. type: TH
19 #: build/C/man3/bsd_signal.3:25
20 #, no-wrap
21 msgid "BSD_SIGNAL"
22 msgstr "BSD_SIGNAL"
23
24 #. type: TH
25 #: build/C/man3/bsd_signal.3:25
26 #, fuzzy, no-wrap
27 #| msgid "2013-05-21"
28 msgid "2013-10-22"
29 msgstr "2013-05-21"
30
31 #. type: TH
32 #: build/C/man3/bsd_signal.3:25 build/C/man2/eventfd.2:22
33 #: build/C/man2/getitimer.2:12 build/C/man3/gsignal.3:27
34 #: build/C/man2/kill.2:44 build/C/man2/killpg.2:42 build/C/man2/pause.2:30
35 #: build/C/man2/prctl.2:52 build/C/man3/profil.3:28 build/C/man3/psignal.3:30
36 #: build/C/man3/raise.3:29 build/C/man2/restart_syscall.2:33
37 #: build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/s390_runtime_instr.2:25
38 #: build/C/man2/sgetmask.2:26 build/C/man2/sigaction.2:47
39 #: build/C/man2/sigaltstack.2:27 build/C/man7/sigevent.7:26
40 #: build/C/man3/siginterrupt.3:31 build/C/man2/signal.2:36
41 #: build/C/man7/signal.7:46 build/C/man2/signalfd.2:20
42 #: build/C/man3/sigpause.3:25 build/C/man2/sigpending.2:29
43 #: build/C/man2/sigprocmask.2:29 build/C/man3/sigqueue.3:28
44 #: build/C/man2/sigreturn.2:29 build/C/man3/sigset.3:26
45 #: build/C/man3/sigsetops.3:31 build/C/man2/sigsuspend.2:29
46 #: build/C/man3/sigvec.3:26 build/C/man3/sigwait.3:26
47 #: build/C/man2/sigwaitinfo.2:25 build/C/man3/sysv_signal.3:25
48 #: build/C/man2/timer_create.2:31 build/C/man2/timer_delete.2:26
49 #: build/C/man2/timer_getoverrun.2:26 build/C/man2/timer_settime.2:26
50 #: build/C/man2/timerfd_create.2:21 build/C/man2/tkill.2:29
51 #: build/C/man2/wait.2:49 build/C/man2/wait4.2:33
52 #, no-wrap
53 msgid "Linux Programmer's Manual"
54 msgstr "Linux Programmer's Manual"
55
56 #. type: SH
57 #: build/C/man3/bsd_signal.3:26 build/C/man2/eventfd.2:23
58 #: build/C/man2/getitimer.2:13 build/C/man3/gsignal.3:28
59 #: build/C/man2/kill.2:45 build/C/man2/killpg.2:43 build/C/man2/pause.2:31
60 #: build/C/man2/prctl.2:53 build/C/man3/profil.3:29 build/C/man3/psignal.3:31
61 #: build/C/man3/raise.3:30 build/C/man2/restart_syscall.2:34
62 #: build/C/man2/rt_sigqueueinfo.2:26 build/C/man2/s390_runtime_instr.2:26
63 #: build/C/man2/sgetmask.2:27 build/C/man2/sigaction.2:48
64 #: build/C/man2/sigaltstack.2:28 build/C/man7/sigevent.7:27
65 #: build/C/man3/siginterrupt.3:32 build/C/man2/signal.2:37
66 #: build/C/man7/signal.7:47 build/C/man2/signalfd.2:21
67 #: build/C/man3/sigpause.3:26 build/C/man2/sigpending.2:30
68 #: build/C/man2/sigprocmask.2:30 build/C/man3/sigqueue.3:29
69 #: build/C/man2/sigreturn.2:30 build/C/man3/sigset.3:27
70 #: build/C/man3/sigsetops.3:32 build/C/man2/sigsuspend.2:30
71 #: build/C/man3/sigvec.3:27 build/C/man3/sigwait.3:27
72 #: build/C/man2/sigwaitinfo.2:26 build/C/man3/sysv_signal.3:26
73 #: build/C/man2/timer_create.2:32 build/C/man2/timer_delete.2:27
74 #: build/C/man2/timer_getoverrun.2:27 build/C/man2/timer_settime.2:27
75 #: build/C/man2/timerfd_create.2:22 build/C/man2/tkill.2:30
76 #: build/C/man2/wait.2:50 build/C/man2/wait4.2:34
77 #, no-wrap
78 msgid "NAME"
79 msgstr "名前"
80
81 #. type: Plain text
82 #: build/C/man3/bsd_signal.3:28
83 msgid "bsd_signal - signal handling with BSD semantics"
84 msgstr "bsd_signal - BSD 方式のシグナル処理"
85
86 #. type: SH
87 #: build/C/man3/bsd_signal.3:28 build/C/man2/eventfd.2:25
88 #: build/C/man2/getitimer.2:15 build/C/man3/gsignal.3:30
89 #: build/C/man2/kill.2:47 build/C/man2/killpg.2:45 build/C/man2/pause.2:33
90 #: build/C/man2/prctl.2:55 build/C/man3/profil.3:31 build/C/man3/psignal.3:33
91 #: build/C/man3/raise.3:32 build/C/man2/restart_syscall.2:36
92 #: build/C/man2/rt_sigqueueinfo.2:28 build/C/man2/s390_runtime_instr.2:28
93 #: build/C/man2/sgetmask.2:29 build/C/man2/sigaction.2:50
94 #: build/C/man2/sigaltstack.2:30 build/C/man7/sigevent.7:29
95 #: build/C/man3/siginterrupt.3:34 build/C/man2/signal.2:39
96 #: build/C/man2/signalfd.2:23 build/C/man3/sigpause.3:28
97 #: build/C/man2/sigpending.2:32 build/C/man2/sigprocmask.2:32
98 #: build/C/man3/sigqueue.3:31 build/C/man2/sigreturn.2:32
99 #: build/C/man3/sigset.3:29 build/C/man3/sigsetops.3:35
100 #: build/C/man2/sigsuspend.2:32 build/C/man3/sigvec.3:29
101 #: build/C/man3/sigwait.3:29 build/C/man2/sigwaitinfo.2:28
102 #: build/C/man3/sysv_signal.3:28 build/C/man2/timer_create.2:34
103 #: build/C/man2/timer_delete.2:29 build/C/man2/timer_getoverrun.2:29
104 #: build/C/man2/timer_settime.2:30 build/C/man2/timerfd_create.2:25
105 #: build/C/man2/tkill.2:32 build/C/man2/wait.2:52 build/C/man2/wait4.2:36
106 #, no-wrap
107 msgid "SYNOPSIS"
108 msgstr "書式"
109
110 #. type: Plain text
111 #: build/C/man3/bsd_signal.3:30
112 msgid "B<#define _XOPEN_SOURCE> /* See feature_test_macros(7) */"
113 msgstr "B<#define _XOPEN_SOURCE> /* feature_test_macros(7) 参照 */"
114
115 #. type: Plain text
116 #: build/C/man3/bsd_signal.3:32 build/C/man2/killpg.2:47
117 #: build/C/man2/sigaltstack.2:32 build/C/man2/signal.2:41
118 #: build/C/man2/sigpending.2:34 build/C/man2/sigprocmask.2:34
119 #: build/C/man3/sigqueue.3:33 build/C/man3/sigset.3:31
120 #: build/C/man3/sigsetops.3:37 build/C/man2/sigsuspend.2:34
121 #: build/C/man3/sigvec.3:31 build/C/man3/sysv_signal.3:32
122 msgid "B<#include E<lt>signal.hE<gt>>"
123 msgstr "B<#include E<lt>signal.hE<gt>>"
124
125 #. type: Plain text
126 #: build/C/man3/bsd_signal.3:34 build/C/man2/signal.2:43
127 #: build/C/man3/sigset.3:33 build/C/man3/sysv_signal.3:34
128 msgid "B<typedef void (*sighandler_t)(int);>"
129 msgstr "B<typedef void (*sighandler_t)(int);>"
130
131 #. type: Plain text
132 #: build/C/man3/bsd_signal.3:36
133 msgid ""
134 "B<sighandler_t bsd_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
135 msgstr ""
136 "B<sighandler_t bsd_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
137
138 #. type: SH
139 #: build/C/man3/bsd_signal.3:36 build/C/man2/eventfd.2:29
140 #: build/C/man2/getitimer.2:24 build/C/man3/gsignal.3:49
141 #: build/C/man2/kill.2:65 build/C/man2/killpg.2:60 build/C/man2/pause.2:37
142 #: build/C/man2/prctl.2:62 build/C/man3/profil.3:46 build/C/man3/psignal.3:56
143 #: build/C/man3/raise.3:38 build/C/man2/restart_syscall.2:41
144 #: build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/s390_runtime_instr.2:34
145 #: build/C/man2/sgetmask.2:36 build/C/man2/sigaction.2:70
146 #: build/C/man2/sigaltstack.2:51 build/C/man7/sigevent.7:52
147 #: build/C/man3/siginterrupt.3:55 build/C/man2/signal.2:45
148 #: build/C/man7/signal.7:49 build/C/man2/signalfd.2:27
149 #: build/C/man3/sigpause.3:36 build/C/man2/sigpending.2:46
150 #: build/C/man2/sigprocmask.2:47 build/C/man3/sigqueue.3:43
151 #: build/C/man2/sigreturn.2:34 build/C/man3/sigset.3:58
152 #: build/C/man3/sigsetops.3:63 build/C/man2/sigsuspend.2:46
153 #: build/C/man3/sigvec.3:49 build/C/man3/sigwait.3:45
154 #: build/C/man2/sigwaitinfo.2:46 build/C/man3/sysv_signal.3:36
155 #: build/C/man2/timer_create.2:52 build/C/man2/timer_delete.2:45
156 #: build/C/man2/timer_getoverrun.2:45 build/C/man2/timer_settime.2:50
157 #: build/C/man2/timerfd_create.2:37 build/C/man2/tkill.2:41
158 #: build/C/man2/wait.2:83 build/C/man2/wait4.2:67
159 #, no-wrap
160 msgid "DESCRIPTION"
161 msgstr "説明"
162
163 #. type: Plain text
164 #: build/C/man3/bsd_signal.3:41
165 msgid ""
166 "The B<bsd_signal>()  function takes the same arguments, and performs the "
167 "same task, as B<signal>(2)."
168 msgstr ""
169 "B<bsd_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
170 "る。"
171
172 #. type: Plain text
173 #: build/C/man3/bsd_signal.3:54
174 msgid ""
175 "The difference between the two is that B<bsd_signal>()  is guaranteed to "
176 "provide reliable signal semantics, that is: a) the disposition of the signal "
177 "is not reset to the default when the handler is invoked; b) delivery of "
178 "further instances of the signal is blocked while the signal handler is "
179 "executing; and c) if the handler interrupts a blocking system call, then the "
180 "system call is automatically restarted.  A portable application cannot rely "
181 "on B<signal>(2)  to provide these guarantees."
182 msgstr ""
183 "両者の違いは、 B<bsd_signal>()  では信頼性のあるシグナル処理方式の提供が保証"
184 "されていることである。 信頼性のあるシグナル処理方式は以下の特徴を持つ。 a) ハ"
185 "ンドラが起動された場合に、シグナルの処理方法 (disposition) が デフォルトにリ"
186 "セットされない、 b) シグナルハンドラの実行中は、それ以降に発生した同じシグナ"
187 "ルの配送が ブロックされない、 c) ハンドラが停止中の (blocking している) シス"
188 "テムコールを 中断した場合、そのシステムコールが自動的に再開される。 移植性が"
189 "必要なアプリケーションでは、 B<signal>(2)  でこれらが保証されることを前提にす"
190 "べきではない。"
191
192 #. type: SH
193 #: build/C/man3/bsd_signal.3:54 build/C/man2/eventfd.2:222
194 #: build/C/man2/getitimer.2:122 build/C/man2/kill.2:100
195 #: build/C/man2/killpg.2:89 build/C/man2/pause.2:42 build/C/man2/prctl.2:781
196 #: build/C/man3/profil.3:68 build/C/man3/psignal.3:89 build/C/man3/raise.3:61
197 #: build/C/man2/restart_syscall.2:84 build/C/man2/rt_sigqueueinfo.2:129
198 #: build/C/man2/s390_runtime_instr.2:54 build/C/man2/sgetmask.2:59
199 #: build/C/man2/sigaction.2:660 build/C/man2/sigaltstack.2:133
200 #: build/C/man3/siginterrupt.3:73 build/C/man2/signal.2:97
201 #: build/C/man2/signalfd.2:251 build/C/man3/sigpause.3:48
202 #: build/C/man2/sigpending.2:53 build/C/man2/sigprocmask.2:93
203 #: build/C/man3/sigqueue.3:83 build/C/man2/sigreturn.2:53
204 #: build/C/man3/sigset.3:129 build/C/man3/sigsetops.3:107
205 #: build/C/man2/sigsuspend.2:70 build/C/man3/sigvec.3:199
206 #: build/C/man3/sigwait.3:69 build/C/man2/sigwaitinfo.2:105
207 #: build/C/man3/sysv_signal.3:51 build/C/man2/timer_create.2:167
208 #: build/C/man2/timer_delete.2:53 build/C/man2/timer_getoverrun.2:82
209 #: build/C/man2/timer_settime.2:173 build/C/man2/timerfd_create.2:287
210 #: build/C/man2/tkill.2:95 build/C/man2/wait.2:355 build/C/man2/wait4.2:132
211 #, no-wrap
212 msgid "RETURN VALUE"
213 msgstr "返り値"
214
215 #. type: Plain text
216 #: build/C/man3/bsd_signal.3:60
217 msgid ""
218 "The B<bsd_signal>()  function returns the previous value of the signal "
219 "handler, or B<SIG_ERR> on error."
220 msgstr ""
221 "B<bsd_signal>()  関数はシグナルハンドラの直前の値を返す。 エラーの場合、 "
222 "B<SIG_ERR> を返す。"
223
224 #. type: SH
225 #: build/C/man3/bsd_signal.3:60 build/C/man2/eventfd.2:229
226 #: build/C/man2/getitimer.2:127 build/C/man2/kill.2:105
227 #: build/C/man2/killpg.2:94 build/C/man2/pause.2:53 build/C/man2/prctl.2:800
228 #: build/C/man2/restart_syscall.2:88 build/C/man2/rt_sigqueueinfo.2:134
229 #: build/C/man2/s390_runtime_instr.2:65 build/C/man2/sgetmask.2:64
230 #: build/C/man2/sigaction.2:665 build/C/man2/sigaltstack.2:137
231 #: build/C/man3/siginterrupt.3:83 build/C/man2/signal.2:105
232 #: build/C/man2/signalfd.2:265 build/C/man2/sigpending.2:59
233 #: build/C/man2/sigprocmask.2:99 build/C/man3/sigqueue.3:91
234 #: build/C/man3/sigset.3:154 build/C/man3/sigsetops.3:126
235 #: build/C/man2/sigsuspend.2:76 build/C/man3/sigvec.3:216
236 #: build/C/man3/sigwait.3:74 build/C/man2/sigwaitinfo.2:114
237 #: build/C/man3/sysv_signal.3:57 build/C/man2/timer_create.2:175
238 #: build/C/man2/timer_delete.2:60 build/C/man2/timer_getoverrun.2:90
239 #: build/C/man2/timer_settime.2:182 build/C/man2/timerfd_create.2:302
240 #: build/C/man2/tkill.2:99 build/C/man2/wait.2:384 build/C/man2/wait4.2:135
241 #, no-wrap
242 msgid "ERRORS"
243 msgstr "エラー"
244
245 #. type: Plain text
246 #: build/C/man3/bsd_signal.3:63 build/C/man3/sysv_signal.3:60
247 msgid "As for B<signal>(2)."
248 msgstr "B<signal>(2)  と同じ。"
249
250 #. type: SH
251 #: build/C/man3/bsd_signal.3:63 build/C/man3/raise.3:64
252 #: build/C/man3/sigpause.3:56 build/C/man3/sigqueue.3:114
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/sigwait.3:81 build/C/man3/sysv_signal.3:61
262 #, no-wrap
263 msgid "Multithreading (see pthreads(7))"
264 msgstr ""
265
266 #. type: Plain text
267 #: build/C/man3/bsd_signal.3:68
268 #, fuzzy
269 #| msgid "The B<sigmask>()  function returns the signal mask for I<signum>."
270 msgid "The B<bsd_signal>()  function is thread-safe."
271 msgstr "B<sigmask>()  関数は I<signum> のシグナルマスクを返す。"
272
273 #. type: SH
274 #: build/C/man3/bsd_signal.3:68 build/C/man2/eventfd.2:266
275 #: build/C/man2/getitimer.2:148 build/C/man3/gsignal.3:95
276 #: build/C/man2/kill.2:121 build/C/man2/killpg.2:111 build/C/man2/pause.2:57
277 #: build/C/man2/prctl.2:969 build/C/man3/profil.3:70 build/C/man3/psignal.3:99
278 #: build/C/man3/raise.3:69 build/C/man2/restart_syscall.2:96
279 #: build/C/man2/rt_sigqueueinfo.2:176 build/C/man2/s390_runtime_instr.2:81
280 #: build/C/man2/sgetmask.2:66 build/C/man2/sigaction.2:677
281 #: build/C/man2/sigaltstack.2:156 build/C/man7/sigevent.7:130
282 #: build/C/man3/siginterrupt.3:87 build/C/man2/signal.2:110
283 #: build/C/man7/signal.7:838 build/C/man2/signalfd.2:307
284 #: build/C/man3/sigpause.3:61 build/C/man2/sigpending.2:64
285 #: build/C/man2/sigprocmask.2:112 build/C/man3/sigqueue.3:119
286 #: build/C/man2/sigreturn.2:60 build/C/man3/sigset.3:173
287 #: build/C/man3/sigsetops.3:131 build/C/man2/sigsuspend.2:84
288 #: build/C/man3/sigvec.3:221 build/C/man3/sigwait.3:85
289 #: build/C/man2/sigwaitinfo.2:133 build/C/man3/sysv_signal.3:65
290 #: build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:67
291 #: build/C/man2/timer_getoverrun.2:97 build/C/man2/timer_settime.2:207
292 #: build/C/man2/timerfd_create.2:371 build/C/man2/tkill.2:116
293 #: build/C/man2/wait.2:422 build/C/man2/wait4.2:138
294 #, no-wrap
295 msgid "CONFORMING TO"
296 msgstr "準拠"
297
298 #. type: Plain text
299 #: build/C/man3/bsd_signal.3:75
300 msgid ""
301 "4.2BSD, POSIX.1-2001.  POSIX.1-2008 removes the specification of "
302 "B<bsd_signal>(), recommending the use of B<sigaction>(2)  instead."
303 msgstr ""
304 "4.2BSD, POSIX.1-2001.  POSIX.1-2008 では B<bsd_signal>()  の仕様が削除されて"
305 "いる。 代わりに、 B<sigaction>(2)  の使用が推奨されている。"
306
307 #. type: SH
308 #: build/C/man3/bsd_signal.3:75 build/C/man2/eventfd.2:271
309 #: build/C/man2/getitimer.2:158 build/C/man2/kill.2:123
310 #: build/C/man2/killpg.2:115 build/C/man3/raise.3:71
311 #: build/C/man2/restart_syscall.2:98 build/C/man2/rt_sigqueueinfo.2:178
312 #: build/C/man2/s390_runtime_instr.2:84 build/C/man2/sgetmask.2:68
313 #: build/C/man2/sigaction.2:680 build/C/man2/sigaltstack.2:158
314 #: build/C/man2/signal.2:112 build/C/man2/signalfd.2:312
315 #: build/C/man3/sigpause.3:65 build/C/man2/sigpending.2:66
316 #: build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:121
317 #: build/C/man2/sigreturn.2:64 build/C/man3/sigset.3:190
318 #: build/C/man3/sigsetops.3:133 build/C/man2/sigsuspend.2:86
319 #: build/C/man3/sigvec.3:227 build/C/man3/sigwait.3:87
320 #: build/C/man2/sigwaitinfo.2:135 build/C/man3/sysv_signal.3:67
321 #: build/C/man2/timer_create.2:195 build/C/man2/timer_getoverrun.2:99
322 #: build/C/man2/tkill.2:122 build/C/man2/wait.2:424 build/C/man2/wait4.2:147
323 #, no-wrap
324 msgid "NOTES"
325 msgstr "注意"
326
327 #. type: Plain text
328 #: build/C/man3/bsd_signal.3:81
329 msgid ""
330 "Use of B<bsd_signal>()  should be avoided; use B<sigaction>(2)  instead."
331 msgstr ""
332 "B<bsd_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使うこ"
333 "と。"
334
335 #. type: Plain text
336 #: build/C/man3/bsd_signal.3:92
337 msgid ""
338 "On modern Linux systems, B<bsd_signal>()  and B<signal>(2)  are equivalent.  "
339 "But on older systems, B<signal>(2)  provided unreliable signal semantics; "
340 "see B<signal>(2)  for details."
341 msgstr ""
342 "最近の Linux システムでは、 B<bsd_signal>()  と B<signal>(2)  は等価である。"
343 "しかし、以前のシステムでは、 B<signal>(2)  は信頼性に欠けるシグナル処理方式を"
344 "提供していた。 詳細は B<signal>(2)  を参照。"
345
346 #. type: Plain text
347 #: build/C/man3/bsd_signal.3:99 build/C/man3/sysv_signal.3:92
348 msgid ""
349 "The use of I<sighandler_t> is a GNU extension; this type is defined only if "
350 "the B<_GNU_SOURCE> feature test macro is defined."
351 msgstr ""
352 "I<sighandler_t> を使っているのは GNU による拡張である。 この型は機能検査マク"
353 "ロ B<_GNU_SOURCE> を定義した場合にのみ定義される。"
354
355 #. type: SH
356 #: build/C/man3/bsd_signal.3:99 build/C/man2/eventfd.2:417
357 #: build/C/man2/getitimer.2:239 build/C/man3/gsignal.3:103
358 #: build/C/man2/kill.2:171 build/C/man2/killpg.2:134 build/C/man2/pause.2:59
359 #: build/C/man2/prctl.2:983 build/C/man3/profil.3:81
360 #: build/C/man3/psignal.3:113 build/C/man3/raise.3:82
361 #: build/C/man2/restart_syscall.2:123 build/C/man2/rt_sigqueueinfo.2:188
362 #: build/C/man2/s390_runtime_instr.2:88 build/C/man2/sgetmask.2:82
363 #: build/C/man2/sigaction.2:793 build/C/man2/sigaltstack.2:232
364 #: build/C/man7/sigevent.7:132 build/C/man3/siginterrupt.3:96
365 #: build/C/man2/signal.2:278 build/C/man7/signal.7:850
366 #: build/C/man2/signalfd.2:433 build/C/man3/sigpause.3:111
367 #: build/C/man2/sigpending.2:91 build/C/man2/sigprocmask.2:144
368 #: build/C/man3/sigqueue.3:154 build/C/man2/sigreturn.2:74
369 #: build/C/man3/sigset.3:266 build/C/man3/sigsetops.3:172
370 #: build/C/man2/sigsuspend.2:108 build/C/man3/sigvec.3:252
371 #: build/C/man3/sigwait.3:94 build/C/man2/sigwaitinfo.2:187
372 #: build/C/man3/sysv_signal.3:92 build/C/man2/timer_create.2:407
373 #: build/C/man2/timer_delete.2:69 build/C/man2/timer_getoverrun.2:131
374 #: build/C/man2/timer_settime.2:212 build/C/man2/timerfd_create.2:541
375 #: build/C/man2/tkill.2:131 build/C/man2/wait.2:633 build/C/man2/wait4.2:165
376 #, no-wrap
377 msgid "SEE ALSO"
378 msgstr "関連項目"
379
380 #. type: Plain text
381 #: build/C/man3/bsd_signal.3:104
382 msgid "B<sigaction>(2), B<signal>(2), B<sysv_signal>(3), B<signal>(7)"
383 msgstr "B<sigaction>(2), B<signal>(2), B<sysv_signal>(3), B<signal>(7)"
384
385 #. type: SH
386 #: build/C/man3/bsd_signal.3:104 build/C/man2/eventfd.2:428
387 #: build/C/man2/getitimer.2:246 build/C/man3/gsignal.3:107
388 #: build/C/man2/kill.2:181 build/C/man2/killpg.2:140 build/C/man2/pause.2:64
389 #: build/C/man2/prctl.2:986 build/C/man3/profil.3:86
390 #: build/C/man3/psignal.3:118 build/C/man3/raise.3:89
391 #: build/C/man2/restart_syscall.2:131 build/C/man2/rt_sigqueueinfo.2:196
392 #: build/C/man2/s390_runtime_instr.2:91 build/C/man2/sgetmask.2:85
393 #: build/C/man2/sigaction.2:813 build/C/man2/sigaltstack.2:239
394 #: build/C/man7/sigevent.7:142 build/C/man3/siginterrupt.3:98
395 #: build/C/man2/signal.2:297 build/C/man7/signal.7:884
396 #: build/C/man2/signalfd.2:446 build/C/man3/sigpause.3:119
397 #: build/C/man2/sigpending.2:99 build/C/man2/sigprocmask.2:155
398 #: build/C/man3/sigqueue.3:162 build/C/man2/sigreturn.2:80
399 #: build/C/man3/sigset.3:276 build/C/man3/sigsetops.3:177
400 #: build/C/man2/sigsuspend.2:118 build/C/man3/sigvec.3:262
401 #: build/C/man3/sigwait.3:102 build/C/man2/sigwaitinfo.2:199
402 #: build/C/man3/sysv_signal.3:97 build/C/man2/timer_create.2:422
403 #: build/C/man2/timer_delete.2:75 build/C/man2/timer_getoverrun.2:141
404 #: build/C/man2/timer_settime.2:216 build/C/man2/timerfd_create.2:553
405 #: build/C/man2/tkill.2:136 build/C/man2/wait.2:645 build/C/man2/wait4.2:172
406 #, no-wrap
407 msgid "COLOPHON"
408 msgstr "この文書について"
409
410 #. type: Plain text
411 #: build/C/man3/bsd_signal.3:111 build/C/man2/eventfd.2:435
412 #: build/C/man2/getitimer.2:253 build/C/man3/gsignal.3:114
413 #: build/C/man2/kill.2:188 build/C/man2/killpg.2:147 build/C/man2/pause.2:71
414 #: build/C/man2/prctl.2:993 build/C/man3/profil.3:93
415 #: build/C/man3/psignal.3:125 build/C/man3/raise.3:96
416 #: build/C/man2/restart_syscall.2:138 build/C/man2/rt_sigqueueinfo.2:203
417 #: build/C/man2/s390_runtime_instr.2:98 build/C/man2/sgetmask.2:92
418 #: build/C/man2/sigaction.2:820 build/C/man2/sigaltstack.2:246
419 #: build/C/man7/sigevent.7:149 build/C/man3/siginterrupt.3:105
420 #: build/C/man2/signal.2:304 build/C/man7/signal.7:891
421 #: build/C/man2/signalfd.2:453 build/C/man3/sigpause.3:126
422 #: build/C/man2/sigpending.2:106 build/C/man2/sigprocmask.2:162
423 #: build/C/man3/sigqueue.3:169 build/C/man2/sigreturn.2:87
424 #: build/C/man3/sigset.3:283 build/C/man3/sigsetops.3:184
425 #: build/C/man2/sigsuspend.2:125 build/C/man3/sigvec.3:269
426 #: build/C/man3/sigwait.3:109 build/C/man2/sigwaitinfo.2:206
427 #: build/C/man3/sysv_signal.3:104 build/C/man2/timer_create.2:429
428 #: build/C/man2/timer_delete.2:82 build/C/man2/timer_getoverrun.2:148
429 #: build/C/man2/timer_settime.2:223 build/C/man2/timerfd_create.2:560
430 #: build/C/man2/tkill.2:143 build/C/man2/wait.2:652 build/C/man2/wait4.2:179
431 #, fuzzy
432 #| msgid ""
433 #| "This page is part of release 3.54 of the Linux I<man-pages> project.  A "
434 #| "description of the project, and information about reporting bugs, can be "
435 #| "found at \\%http://www.kernel.org/doc/man-pages/."
436 msgid ""
437 "This page is part of release 3.63 of the Linux I<man-pages> project.  A "
438 "description of the project, and information about reporting bugs, can be "
439 "found at \\%http://www.kernel.org/doc/man-pages/."
440 msgstr ""
441 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.54 の一部\n"
442 "である。プロジェクトの説明とバグ報告に関する情報は\n"
443 "http://www.kernel.org/doc/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) で指定することで、\n"
517 "B<eventfd>() の振舞いを変更することができる。"
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 "う。\n"
569 "下記参照。"
570
571 #. type: Plain text
572 #: build/C/man2/eventfd.2:70 build/C/man2/signalfd.2:99
573 msgid ""
574 "In Linux up to version 2.6.26, the I<flags> argument is unused, and must be "
575 "specified as zero."
576 msgstr ""
577 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
578 "しなければならない。"
579
580 #. type: Plain text
581 #: build/C/man2/eventfd.2:76
582 msgid ""
583 "As its return value, B<eventfd>()  returns a new file descriptor that can be "
584 "used to refer to the eventfd object.  The following operations can be "
585 "performed on the file descriptor:"
586 msgstr ""
587 "B<eventfd>()  は eventfd オブジェクトを参照するのに使用できる新しいファイル"
588 "ディスクリプタ を返す。返されたファイルディスクリプタに対しては以下の操作を実"
589 "行できる。"
590
591 #. type: TP
592 #: build/C/man2/eventfd.2:76 build/C/man2/signalfd.2:102
593 #: build/C/man2/timerfd_create.2:211
594 #, no-wrap
595 msgid "B<read>(2)"
596 msgstr "B<read>(2)"
597
598 #. type: Plain text
599 #: build/C/man2/eventfd.2:86
600 msgid ""
601 "Each successful B<read>(2)  returns an 8-byte integer.  A B<read>(2)  will "
602 "fail with the error B<EINVAL> if the size of the supplied buffer is less "
603 "than 8 bytes."
604 msgstr ""
605 "B<read>(2) は成功すると、8 バイトの整数を返す。\n"
606 "渡されたバッファの大きさが 8 バイト未満の場合、\n"
607 "B<read>(2)  はエラー B<EINVAL> で失敗する。"
608
609 #. type: Plain text
610 #: build/C/man2/eventfd.2:91
611 #, fuzzy
612 #| msgid ""
613 #| "The value returned by B<read>(2)  is in host byte order, i.e., the native "
614 #| "byte order for integers on the host machine."
615 msgid ""
616 "The value returned by B<read>(2)  is in host byte order\\(emthat is, the "
617 "native byte order for integers on the host machine."
618 msgstr ""
619 "B<read>(2) が返す値は、ホストバイトオーダ、つまり\n"
620 "そのホストマシンにおける整数の通常のバイトオーダである。"
621
622 #. type: Plain text
623 #: build/C/man2/eventfd.2:98
624 msgid ""
625 "The semantics of B<read>(2)  depend on whether the eventfd counter currently "
626 "has a nonzero value and whether the B<EFD_SEMAPHORE> flag was specified when "
627 "creating the eventfd file descriptor:"
628 msgstr ""
629 "B<read>(2) の動作は、 eventfd カウンタの現在の値が 0 以外であるかと、\n"
630 "eventfd ファイルディスクリプタを作成する際に B<EFD_SEMAPHORE> フラグが\n"
631 "指定されたか、により変化する。"
632
633 #. type: IP
634 #: build/C/man2/eventfd.2:99 build/C/man2/eventfd.2:106
635 #: build/C/man2/eventfd.2:113 build/C/man2/eventfd.2:158
636 #: build/C/man2/eventfd.2:168 build/C/man2/eventfd.2:178
637 #: build/C/man2/prctl.2:843 build/C/man2/prctl.2:848 build/C/man2/prctl.2:853
638 #: build/C/man2/prctl.2:863 build/C/man3/psignal.3:105
639 #: build/C/man3/psignal.3:109 build/C/man2/sigaction.2:298
640 #: build/C/man2/sigaction.2:313 build/C/man2/sigaction.2:329
641 #: build/C/man2/sigaction.2:344 build/C/man2/sigaction.2:391
642 #: build/C/man2/sigaction.2:427 build/C/man2/signal.2:68
643 #: build/C/man2/signal.2:73 build/C/man2/signal.2:80 build/C/man2/signal.2:224
644 #: build/C/man2/signal.2:228 build/C/man2/signal.2:267
645 #: build/C/man7/signal.7:149 build/C/man7/signal.7:157
646 #: build/C/man7/signal.7:615 build/C/man7/signal.7:617
647 #: build/C/man7/signal.7:638 build/C/man7/signal.7:653
648 #: build/C/man7/signal.7:657 build/C/man7/signal.7:664
649 #: build/C/man7/signal.7:680 build/C/man7/signal.7:686
650 #: build/C/man7/signal.7:693 build/C/man7/signal.7:698
651 #: build/C/man7/signal.7:717 build/C/man7/signal.7:736
652 #: build/C/man7/signal.7:743 build/C/man7/signal.7:752
653 #: build/C/man7/signal.7:760 build/C/man7/signal.7:766
654 #: build/C/man7/signal.7:771 build/C/man7/signal.7:791
655 #: build/C/man7/signal.7:810 build/C/man7/signal.7:813
656 #: build/C/man7/signal.7:816 build/C/man7/signal.7:819
657 #: build/C/man7/signal.7:824 build/C/man7/signal.7:830
658 #: build/C/man7/signal.7:834 build/C/man3/sigwait.3:62
659 #: build/C/man3/sigwait.3:67 build/C/man2/timer_create.2:216
660 #: build/C/man2/timer_create.2:219 build/C/man2/timer_create.2:222
661 #: build/C/man2/timer_create.2:226 build/C/man2/timer_create.2:229
662 #: build/C/man2/timer_create.2:235 build/C/man2/timer_create.2:239
663 #, no-wrap
664 msgid "*"
665 msgstr "*"
666
667 #. type: Plain text
668 #: build/C/man2/eventfd.2:106
669 msgid ""
670 "If B<EFD_SEMAPHORE> was not specified and the eventfd counter has a nonzero "
671 "value, then a B<read>(2)  returns 8 bytes containing that value, and the "
672 "counter's value is reset to zero."
673 msgstr ""
674 "B<EFD_SEMAPHORE> が指定されておらず、eventfd カウンタが 0 以外の値\n"
675 "の場合、 B<read>(2) はカウンタ値を格納した 8 バイトの値を返し、\n"
676 "カウンタ値は 0 にリセットされる。"
677
678 #. type: Plain text
679 #: build/C/man2/eventfd.2:113
680 msgid ""
681 "If B<EFD_SEMAPHORE> was specified and the eventfd counter has a nonzero "
682 "value, then a B<read>(2)  returns 8 bytes containing the value 1, and the "
683 "counter's value is decremented by 1."
684 msgstr ""
685 "B<EFD_SEMAPHORE> が指定されていて eventfd カウンタが 0 以外の値の場合、\n"
686 "B<read>(2) は値 1 の 8 バイト値を返し、カウンタ値は 1 減算される。"
687
688 #. type: Plain text
689 #: build/C/man2/eventfd.2:123
690 msgid ""
691 "If the eventfd counter is zero at the time of the call to B<read>(2), then "
692 "the call either blocks until the counter becomes nonzero (at which time, the "
693 "B<read>(2)  proceeds as described above)  or fails with the error B<EAGAIN> "
694 "if the file descriptor has been made nonblocking."
695 msgstr ""
696 "B<read>(2) を呼び出した時点で eventfd カウンタが 0 の場合、 B<read>(2)\n"
697 "はカウンタが 0 以外になるまで停止 (block) する (0 以外になった時点で\n"
698 "B<read>(2) は上記で述べた通り実行を再開する)、 もしくはファイルディスク\n"
699 "リプタが非停止 (nonblocking) に設定されている場合はエラー B<EAGAIN>で\n"
700 "失敗する。"
701
702 #. type: TP
703 #: build/C/man2/eventfd.2:124
704 #, no-wrap
705 msgid "B<write>(2)"
706 msgstr "B<write>(2)"
707
708 #. type: Plain text
709 #: build/C/man2/eventfd.2:141
710 msgid ""
711 "A B<write>(2)  call adds the 8-byte integer value supplied in its buffer to "
712 "the counter.  The maximum value that may be stored in the counter is the "
713 "largest unsigned 64-bit value minus 1 (i.e., 0xfffffffffffffffe).  If the "
714 "addition would cause the counter's value to exceed the maximum, then the "
715 "B<write>(2)  either blocks until a B<read>(2)  is performed on the file "
716 "descriptor, or fails with the error B<EAGAIN> if the file descriptor has "
717 "been made nonblocking."
718 msgstr ""
719 "B<write>(2)  は、引き数のバッファで渡された 8 バイトの整数値をカウンタに加算"
720 "する。 カウンタに格納可能な最大値は unsigned の 64 ビット整数の最大値から 1 "
721 "を引いた値 (すなわち 0xfffffffffffffffe) である。 加算を行うとカウンタ値が最"
722 "大値を超過する場合には、 そのファイルディスクリプタに対して B<read>(2)  が実"
723 "行されるまで、 B<write>(2)  は停止 (block) する、 もしくはファイルディスクリ"
724 "プタが非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗す"
725 "る。"
726
727 #. type: Plain text
728 #: build/C/man2/eventfd.2:148
729 msgid ""
730 "A B<write>(2)  will fail with the error B<EINVAL> if the size of the "
731 "supplied buffer is less than 8 bytes, or if an attempt is made to write the "
732 "value 0xffffffffffffffff."
733 msgstr ""
734 "渡されたバッファの大きさが 8 バイト未満の場合、もしくは 値 "
735 "0xffffffffffffffff を書き込もうとした場合、 B<write>(2)  はエラー B<EINVAL> "
736 "で失敗する。"
737
738 #. type: TP
739 #: build/C/man2/eventfd.2:148 build/C/man2/signalfd.2:140
740 #: build/C/man2/timerfd_create.2:244
741 #, no-wrap
742 msgid "B<poll>(2), B<select>(2) (and similar)"
743 msgstr "B<poll>(2), B<select>(2) (と同様の操作)"
744
745 #. type: Plain text
746 #: build/C/man2/eventfd.2:157
747 msgid ""
748 "The returned file descriptor supports B<poll>(2)  (and analogously B<epoll>"
749 "(7))  and B<select>(2), as follows:"
750 msgstr ""
751 "返されたファイルディスクリプタは、 B<poll>(2)  (B<epoll>(7)  も同じ) や "
752 "B<select>(2)  をサポートしており、以下のような動作をする。"
753
754 #. type: Plain text
755 #: build/C/man2/eventfd.2:168
756 msgid ""
757 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
758 "B<poll>(2)  B<POLLIN> flag)  if the counter has a value greater than 0."
759 msgstr ""
760 "カウンタが 0 より大きい値の場合、 ファイルディスクリプタは読み出し可能となる "
761 "(B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
762
763 #. type: Plain text
764 #: build/C/man2/eventfd.2:178
765 msgid ""
766 "The file descriptor is writable (the B<select>(2)  I<writefds> argument; the "
767 "B<poll>(2)  B<POLLOUT> flag)  if it is possible to write a value of at least "
768 "\"1\" without blocking."
769 msgstr ""
770 "少なくとも値 \"1\" を、停止 (block) を伴わずに書き込める場合、 ファイルディス"
771 "クリプタは書き込み可能となる (B<select>(2)  の I<writefds> 引き数や B<poll>"
772 "(2)  の B<POLLOUT> フラグ)。"
773
774 #. type: Plain text
775 #: build/C/man2/eventfd.2:198
776 msgid ""
777 "If an overflow of the counter value was detected, then B<select>(2)  "
778 "indicates the file descriptor as being both readable and writable, and "
779 "B<poll>(2)  returns a B<POLLERR> event.  As noted above, B<write>(2)  can "
780 "never overflow the counter.  However an overflow can occur if 2^64 eventfd "
781 "\"signal posts\" were performed by the KAIO subsystem (theoretically "
782 "possible, but practically unlikely).  If an overflow has occurred, then "
783 "B<read>(2)  will return that maximum I<uint64_t> value (i.e., "
784 "0xffffffffffffffff)."
785 msgstr ""
786 "カウンタ値のオーバーフローが検出された場合、 B<select>(2)  はファイルディスク"
787 "リプタは読み出し可能と書き込み可能の両方を通知し、 B<poll>(2)  は B<POLLERR> "
788 "イベントを返す。 上述の通り、 B<write>(2)  でカウンタがオーバーフローすること"
789 "は決してない。 しかしながら、 KAIO サブシステムによって 2^64 回の eventfd "
790 "\"signal posts\" が 実行された場合にはオーバーフローが起こり得る (理論的には"
791 "あり得るが、実用的にはあり得ない)。 オーバーフローが発生した場合、 B<read>"
792 "(2)  は I<uint64_t> の最大値 (すなわち 0xffffffffffffffff) を返す。"
793
794 #. type: Plain text
795 #: build/C/man2/eventfd.2:205
796 msgid ""
797 "The eventfd file descriptor also supports the other file-descriptor "
798 "multiplexing APIs: B<pselect>(2)  and B<ppoll>(2)."
799 msgstr ""
800 "eventfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
801 "である B<pselect>(2) と B<ppoll>(2) もサポートしている。"
802
803 #. type: TP
804 #: build/C/man2/eventfd.2:205 build/C/man2/signalfd.2:160
805 #: build/C/man2/timerfd_create.2:262
806 #, no-wrap
807 msgid "B<close>(2)"
808 msgstr "B<close>(2)"
809
810 #. type: Plain text
811 #: build/C/man2/eventfd.2:210
812 msgid ""
813 "When the file descriptor is no longer required it should be closed.  When "
814 "all file descriptors associated with the same eventfd object have been "
815 "closed, the resources for object are freed by the kernel."
816 msgstr ""
817 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
818 "る。 同じ eventfd オブジェクトに関連付けられたファイルディスクリプタが全て ク"
819 "ローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
820
821 #. type: Plain text
822 #: build/C/man2/eventfd.2:222
823 msgid ""
824 "A copy of the file descriptor created by B<eventfd>()  is inherited by the "
825 "child produced by B<fork>(2).  The duplicate file descriptor is associated "
826 "with the same eventfd object.  File descriptors created by B<eventfd>()  are "
827 "preserved across B<execve>(2), unless the close-on-exec flag has been set."
828 msgstr ""
829 "B<fork>(2) で生成された子プロセスは、 B<eventfd>() で生成されたファイル\n"
830 "ディスクリプタのコピーを継承する。 複製されたファイルディスクリプタは同\n"
831 "じ eventfd オブジェクトに関連付けられる。\n"
832 "close-on-exec フラグが設定されていない場合、 B<execve>(2) の前後で\n"
833 "B<eventfd>() で生成されたファイルディスクリプタは保持される。"
834
835 #. type: Plain text
836 #: build/C/man2/eventfd.2:229
837 msgid ""
838 "On success, B<eventfd>()  returns a new eventfd file descriptor.  On error, "
839 "-1 is returned and I<errno> is set to indicate the error."
840 msgstr ""
841 "成功すると、 B<eventfd>()  は新規の eventfd ファイルディスクリプタを返す。 エ"
842 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
843
844 #. type: TP
845 #: build/C/man2/eventfd.2:230 build/C/man2/getitimer.2:135
846 #: build/C/man2/kill.2:106 build/C/man2/killpg.2:95 build/C/man2/prctl.2:805
847 #: build/C/man2/prctl.2:810 build/C/man2/prctl.2:822 build/C/man2/prctl.2:827
848 #: build/C/man2/prctl.2:836 build/C/man2/prctl.2:876
849 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man2/s390_runtime_instr.2:66
850 #: build/C/man2/sigaction.2:670 build/C/man2/sigaltstack.2:142
851 #: build/C/man3/siginterrupt.3:84 build/C/man2/signal.2:106
852 #: build/C/man2/signalfd.2:271 build/C/man2/signalfd.2:279
853 #: build/C/man2/sigprocmask.2:107 build/C/man3/sigqueue.3:98
854 #: build/C/man3/sigsetops.3:127 build/C/man3/sigwait.3:75
855 #: build/C/man2/sigwaitinfo.2:129 build/C/man2/timer_create.2:179
856 #: build/C/man2/timer_delete.2:61 build/C/man2/timer_getoverrun.2:91
857 #: build/C/man2/timer_settime.2:191 build/C/man2/timer_settime.2:199
858 #: build/C/man2/timerfd_create.2:305 build/C/man2/timerfd_create.2:313
859 #: build/C/man2/timerfd_create.2:349 build/C/man2/timerfd_create.2:356
860 #: build/C/man2/timerfd_create.2:362 build/C/man2/tkill.2:100
861 #: build/C/man2/wait.2:417
862 #, no-wrap
863 msgid "B<EINVAL>"
864 msgstr "B<EINVAL>"
865
866 #. type: Plain text
867 #: build/C/man2/eventfd.2:234
868 msgid "An unsupported value was specified in I<flags>."
869 msgstr "I<flags> にサポートされていない値が指定された。"
870
871 #. type: TP
872 #: build/C/man2/eventfd.2:234 build/C/man2/signalfd.2:286
873 #: build/C/man2/timerfd_create.2:320
874 #, no-wrap
875 msgid "B<EMFILE>"
876 msgstr "B<EMFILE>"
877
878 #. type: Plain text
879 #: build/C/man2/eventfd.2:237
880 msgid "The per-process limit on open file descriptors has been reached."
881 msgstr ""
882 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
883
884 #. type: TP
885 #: build/C/man2/eventfd.2:237 build/C/man2/signalfd.2:289
886 #: build/C/man2/timerfd_create.2:323
887 #, no-wrap
888 msgid "B<ENFILE>"
889 msgstr "B<ENFILE>"
890
891 #. type: Plain text
892 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
893 #: build/C/man2/timerfd_create.2:327
894 msgid ""
895 "The system-wide limit on the total number of open files has been reached."
896 msgstr "オープン済みのファイル総数がシステム全体の上限に達していた。"
897
898 #. type: TP
899 #: build/C/man2/eventfd.2:241 build/C/man2/signalfd.2:293
900 #: build/C/man2/timerfd_create.2:327
901 #, no-wrap
902 msgid "B<ENODEV>"
903 msgstr "B<ENODEV>"
904
905 #. type: Plain text
906 #: build/C/man2/eventfd.2:249 build/C/man2/signalfd.2:296
907 #: build/C/man2/timerfd_create.2:330
908 msgid "Could not mount (internal) anonymous inode device."
909 msgstr "(カーネル内の) 無名 inode デバイスをマウントできなかった。"
910
911 #. type: TP
912 #: build/C/man2/eventfd.2:249 build/C/man2/s390_runtime_instr.2:73
913 #: build/C/man2/sigaltstack.2:147 build/C/man2/signalfd.2:296
914 #: build/C/man2/timer_create.2:187 build/C/man2/timerfd_create.2:330
915 #, no-wrap
916 msgid "B<ENOMEM>"
917 msgstr "B<ENOMEM>"
918
919 #. type: Plain text
920 #: build/C/man2/eventfd.2:253
921 msgid "There was insufficient memory to create a new eventfd file descriptor."
922 msgstr ""
923 "新しい eventfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
924
925 #. type: SH
926 #: build/C/man2/eventfd.2:253 build/C/man2/prctl.2:964
927 #: build/C/man3/psignal.3:95 build/C/man2/restart_syscall.2:92
928 #: build/C/man2/rt_sigqueueinfo.2:169 build/C/man2/s390_runtime_instr.2:79
929 #: build/C/man2/signalfd.2:299 build/C/man3/sigqueue.3:112
930 #: build/C/man2/timer_create.2:191 build/C/man2/timer_delete.2:65
931 #: build/C/man2/timer_getoverrun.2:95 build/C/man2/timer_settime.2:205
932 #: build/C/man2/timerfd_create.2:368 build/C/man2/tkill.2:111
933 #, no-wrap
934 msgid "VERSIONS"
935 msgstr "バージョン"
936
937 #.  eventfd() is in glibc 2.7, but reportedly does not build
938 #. type: Plain text
939 #: build/C/man2/eventfd.2:266
940 msgid ""
941 "B<eventfd>()  is available on Linux since kernel 2.6.22.  Working support is "
942 "provided in glibc since version 2.8.  The B<eventfd2>()  system call (see "
943 "NOTES) is available on Linux since kernel 2.6.27.  Since version 2.9, the "
944 "glibc B<eventfd>()  wrapper will employ the B<eventfd2>()  system call, if "
945 "it is supported by the kernel."
946 msgstr ""
947 "B<eventfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
948 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<eventfd2>()  "
949 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
950 "る。 バージョン 2.9 以降では、glibc の B<eventfd>()  のラッパー関数は、カーネ"
951 "ルが対応していれば B<eventfd2>()  システムコールを利用する。"
952
953 #. type: Plain text
954 #: build/C/man2/eventfd.2:271
955 msgid "B<eventfd>()  and B<eventfd2>()  are Linux-specific."
956 msgstr "B<eventfd>()  と B<eventfd2>()  は Linux 固有である。"
957
958 #. type: Plain text
959 #: build/C/man2/eventfd.2:279
960 msgid ""
961 "Applications can use an eventfd file descriptor instead of a pipe (see "
962 "B<pipe>(2))  in all cases where a pipe is used simply to signal events.  The "
963 "kernel overhead of an eventfd file descriptor is much lower than that of a "
964 "pipe, and only one file descriptor is required (versus the two required for "
965 "a pipe)."
966 msgstr ""
967 "アプリケーションは、パイプをイベントを通知するためだけに使用している 全ての場"
968 "面において、パイプの代わりに eventfd ファイルディスクリプタを 使用することが"
969 "できる。 eventfd ファイルディスクリプタを使う方が、パイプを使う場合に比べて "
970 "カーネルでのオーバヘッドは比べるとずっと小さく、ファイルディスクリプタも 一つ"
971 "しか必要としない (パイプの場合は二つ必要である)。"
972
973 #.  or eventually syslets/threadlets
974 #. type: Plain text
975 #: build/C/man2/eventfd.2:285
976 msgid ""
977 "When used in the kernel, an eventfd file descriptor can provide a bridge "
978 "from kernel to user space, allowing, for example, functionalities like KAIO "
979 "(kernel AIO)  to signal to a file descriptor that some operation is complete."
980 msgstr ""
981 "カーネル内で使用すると、eventfd ファイルディスクリプタはカーネル空間からユー"
982 "ザ空間へのブリッジ機能を提供することができ、 例えば KAIO (kernel AIO)  のよう"
983 "な機能が、あるファイルディスクリプタに何らかの操作が完了したことを 通知するこ"
984 "とができる。"
985
986 #. type: Plain text
987 #: build/C/man2/eventfd.2:302
988 msgid ""
989 "A key point about an eventfd file descriptor is that it can be monitored "
990 "just like any other file descriptor using B<select>(2), B<poll>(2), or "
991 "B<epoll>(7).  This means that an application can simultaneously monitor the "
992 "readiness of \"traditional\" files and the readiness of other kernel "
993 "mechanisms that support the eventfd interface.  (Without the B<eventfd>()  "
994 "interface, these mechanisms could not be multiplexed via B<select>(2), "
995 "B<poll>(2), or B<epoll>(7).)"
996 msgstr ""
997 "eventfd ファイルディスクリプタの重要な点は、 eventfd ファイルディスクリプタ"
998 "が B<select>(2), B<poll>(2), B<epoll>(7)  を使って他のファイルディスクリプタ"
999 "と全く同様に監視できる点である。 このことは、アプリケーションは「従来の "
1000 "(traditional)」 ファイルの状態変化と eventfd インタフェースをサポートする他の"
1001 "カーネル機構の状態変化を同時に監視 できることを意味する (B<eventfd>()  インタ"
1002 "フェースがない時には、これらのカーネル機構は B<select>(2), B<poll>(2), "
1003 "B<epoll>(7)  経由で多重することはできなかった)。"
1004
1005 #. type: SS
1006 #: build/C/man2/eventfd.2:302 build/C/man2/signalfd.2:336
1007 #, no-wrap
1008 msgid "Underlying Linux system calls"
1009 msgstr "下層にある Linux のシステムコール"
1010
1011 #. type: Plain text
1012 #: build/C/man2/eventfd.2:316
1013 msgid ""
1014 "There are two underlying Linux system calls: B<eventfd>()  and the more "
1015 "recent B<eventfd2>().  The former system call does not implement a I<flags> "
1016 "argument.  The latter system call implements the I<flags> values described "
1017 "above.  The glibc wrapper function will use B<eventfd2>()  where it is "
1018 "available."
1019 msgstr ""
1020 "下層にある Linux システムコールは二種類あり、 B<eventfd>()  と、もっと新しい "
1021 "B<eventfd2>()  である。 B<eventfd>()  は I<flags> 引き数を実装していない。 "
1022 "B<eventfd2>()  では上記の値の I<flags> が実装されている。 glibc のラッパー関"
1023 "数は、 B<eventfd2>()  が利用可能であれば、これを使用する。"
1024
1025 #. type: SS
1026 #: build/C/man2/eventfd.2:316
1027 #, no-wrap
1028 msgid "Additional glibc features"
1029 msgstr "glibc の追加機能"
1030
1031 #. type: Plain text
1032 #: build/C/man2/eventfd.2:320
1033 msgid ""
1034 "The GNU C library defines an additional type, and two functions that attempt "
1035 "to abstract some of the details of reading and writing on an eventfd file "
1036 "descriptor:"
1037 msgstr ""
1038 "GNU C ライブラリは、eventfd ファイルディスクリプタの読み出しと書き込みに を関"
1039 "する詳細のいくつか抽象化するために、一つの型と、二つの関数を追加で 定義してい"
1040 "る。"
1041
1042 #. type: Plain text
1043 #: build/C/man2/eventfd.2:324
1044 #, no-wrap
1045 msgid "typedef uint64_t eventfd_t;\n"
1046 msgstr "typedef uint64_t eventfd_t;\n"
1047
1048 #. type: Plain text
1049 #: build/C/man2/eventfd.2:327
1050 #, no-wrap
1051 msgid ""
1052 "int eventfd_read(int fd, eventfd_t *value);\n"
1053 "int eventfd_write(int fd, eventfd_t value);\n"
1054 msgstr ""
1055 "int eventfd_read(int fd, eventfd_t *value);\n"
1056 "int eventfd_write(int fd, eventfd_t value);\n"
1057
1058 #. type: Plain text
1059 #: build/C/man2/eventfd.2:334
1060 msgid ""
1061 "The functions perform the read and write operations on an eventfd file "
1062 "descriptor, returning 0 if the correct number of bytes was transferred, or "
1063 "-1 otherwise."
1064 msgstr ""
1065 "これらの関数は、eventfd ファイルディスクリプタに対する読み出しと 書き込みの操"
1066 "作を実行し、正しいバイト数が転送された場合には 0 を返し、そうでない場合は -1 "
1067 "を返す。"
1068
1069 #. type: SH
1070 #: build/C/man2/eventfd.2:334 build/C/man2/sigaction.2:790
1071 #: build/C/man2/sigaltstack.2:215 build/C/man2/signalfd.2:360
1072 #: build/C/man3/sigwait.3:91 build/C/man2/timer_create.2:261
1073 #: build/C/man2/timer_getoverrun.2:128 build/C/man2/timer_settime.2:209
1074 #: build/C/man2/timerfd_create.2:379 build/C/man2/wait.2:550
1075 #, no-wrap
1076 msgid "EXAMPLE"
1077 msgstr "例"
1078
1079 #. type: Plain text
1080 #: build/C/man2/eventfd.2:343
1081 msgid ""
1082 "The following program creates an eventfd file descriptor and then forks to "
1083 "create a child process.  While the parent briefly sleeps, the child writes "
1084 "each of the integers supplied in the program's command-line arguments to the "
1085 "eventfd file descriptor.  When the parent has finished sleeping, it reads "
1086 "from the eventfd file descriptor."
1087 msgstr ""
1088 "以下のプログラムは eventfd ファイルディスクリプタを生成し、 その後 fork を実"
1089 "行して子プロセスを生成する。 親プロセスが少しの間 sleep する間に、子プロセス"
1090 "は プログラムのコマンドライン引き数で指定された整数(列)をそれぞれ eventfd "
1091 "ファイルディスクリプタに書き込む。 親プロセスは sleep を完了すると eventfd "
1092 "ファイルディスクリプタから 読み出しを行う。"
1093
1094 #. type: Plain text
1095 #: build/C/man2/eventfd.2:345
1096 msgid "The following shell session shows a sample run of the program:"
1097 msgstr "以下に示すシェルセッションにこのプログラムの使い方を示す。"
1098
1099 #. type: Plain text
1100 #: build/C/man2/eventfd.2:357
1101 #, no-wrap
1102 msgid ""
1103 "$B< ./a.out 1 2 4 7 14>\n"
1104 "Child writing 1 to efd\n"
1105 "Child writing 2 to efd\n"
1106 "Child writing 4 to efd\n"
1107 "Child writing 7 to efd\n"
1108 "Child writing 14 to efd\n"
1109 "Child completed write loop\n"
1110 "Parent about to read\n"
1111 "Parent read 28 (0x1c) from efd\n"
1112 msgstr ""
1113 "$B< ./a.out 1 2 4 7 14>\n"
1114 "Child writing 1 to efd\n"
1115 "Child writing 2 to efd\n"
1116 "Child writing 4 to efd\n"
1117 "Child writing 7 to efd\n"
1118 "Child writing 14 to efd\n"
1119 "Child completed write loop\n"
1120 "Parent about to read\n"
1121 "Parent read 28 (0x1c) from efd\n"
1122
1123 #. type: SS
1124 #: build/C/man2/eventfd.2:359 build/C/man2/signalfd.2:383
1125 #: build/C/man2/timer_create.2:292 build/C/man2/timerfd_create.2:407
1126 #: build/C/man2/wait.2:585
1127 #, no-wrap
1128 msgid "Program source"
1129 msgstr "プログラムのソース"
1130
1131 #. type: Plain text
1132 #: build/C/man2/eventfd.2:367
1133 #, no-wrap
1134 msgid ""
1135 "#include E<lt>sys/eventfd.hE<gt>\n"
1136 "#include E<lt>unistd.hE<gt>\n"
1137 "#include E<lt>stdlib.hE<gt>\n"
1138 "#include E<lt>stdio.hE<gt>\n"
1139 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1140 msgstr ""
1141 "#include E<lt>sys/eventfd.hE<gt>\n"
1142 "#include E<lt>unistd.hE<gt>\n"
1143 "#include E<lt>stdlib.hE<gt>\n"
1144 "#include E<lt>stdio.hE<gt>\n"
1145 "#include E<lt>stdint.hE<gt>             /* Definition of uint64_t */\n"
1146
1147 #. type: Plain text
1148 #: build/C/man2/eventfd.2:370 build/C/man2/signalfd.2:394
1149 #, no-wrap
1150 msgid ""
1151 "#define handle_error(msg) \\e\n"
1152 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1153 msgstr ""
1154 "#define handle_error(msg) \\e\n"
1155 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1156
1157 #. type: Plain text
1158 #: build/C/man2/eventfd.2:377
1159 #, no-wrap
1160 msgid ""
1161 "int\n"
1162 "main(int argc, char *argv[])\n"
1163 "{\n"
1164 "    int efd, j;\n"
1165 "    uint64_t u;\n"
1166 "    ssize_t s;\n"
1167 msgstr ""
1168 "int\n"
1169 "main(int argc, char *argv[])\n"
1170 "{\n"
1171 "    int efd, j;\n"
1172 "    uint64_t u;\n"
1173 "    ssize_t s;\n"
1174
1175 #. type: Plain text
1176 #: build/C/man2/eventfd.2:382
1177 #, no-wrap
1178 msgid ""
1179 "    if (argc E<lt> 2) {\n"
1180 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1181 "        exit(EXIT_FAILURE);\n"
1182 "    }\n"
1183 msgstr ""
1184 "    if (argc E<lt> 2) {\n"
1185 "        fprintf(stderr, \"Usage: %s E<lt>numE<gt>...\\en\", argv[0]);\n"
1186 "        exit(EXIT_FAILURE);\n"
1187 "    }\n"
1188
1189 #. type: Plain text
1190 #: build/C/man2/eventfd.2:386
1191 #, no-wrap
1192 msgid ""
1193 "    efd = eventfd(0, 0);\n"
1194 "    if (efd == -1)\n"
1195 "        handle_error(\"eventfd\");\n"
1196 msgstr ""
1197 "    efd = eventfd(0, 0);\n"
1198 "    if (efd == -1)\n"
1199 "        handle_error(\"eventfd\");\n"
1200
1201 #. type: Plain text
1202 #: build/C/man2/eventfd.2:398
1203 #, no-wrap
1204 msgid ""
1205 "    switch (fork()) {\n"
1206 "    case 0:\n"
1207 "        for (j = 1; j E<lt> argc; j++) {\n"
1208 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1209 "            u = strtoull(argv[j], NULL, 0);\n"
1210 "                    /* strtoull() allows various bases */\n"
1211 "            s = write(efd, &u, sizeof(uint64_t));\n"
1212 "            if (s != sizeof(uint64_t))\n"
1213 "                handle_error(\"write\");\n"
1214 "        }\n"
1215 "        printf(\"Child completed write loop\\en\");\n"
1216 msgstr ""
1217 "    switch (fork()) {\n"
1218 "    case 0:\n"
1219 "        for (j = 1; j E<lt> argc; j++) {\n"
1220 "            printf(\"Child writing %s to efd\\en\", argv[j]);\n"
1221 "            u = strtoull(argv[j], NULL, 0);\n"
1222 "                    /* strtoull() allows various bases */\n"
1223 "            s = write(efd, &u, sizeof(uint64_t));\n"
1224 "            if (s != sizeof(uint64_t))\n"
1225 "                handle_error(\"write\");\n"
1226 "        }\n"
1227 "        printf(\"Child completed write loop\\en\");\n"
1228
1229 #. type: Plain text
1230 #: build/C/man2/eventfd.2:400
1231 #, no-wrap
1232 msgid "        exit(EXIT_SUCCESS);\n"
1233 msgstr "        exit(EXIT_SUCCESS);\n"
1234
1235 #. type: Plain text
1236 #: build/C/man2/eventfd.2:403
1237 #, no-wrap
1238 msgid ""
1239 "    default:\n"
1240 "        sleep(2);\n"
1241 msgstr ""
1242 "    default:\n"
1243 "        sleep(2);\n"
1244
1245 #. type: Plain text
1246 #: build/C/man2/eventfd.2:411
1247 #, no-wrap
1248 msgid ""
1249 "        printf(\"Parent about to read\\en\");\n"
1250 "        s = read(efd, &u, sizeof(uint64_t));\n"
1251 "        if (s != sizeof(uint64_t))\n"
1252 "            handle_error(\"read\");\n"
1253 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1254 "                (unsigned long long) u, (unsigned long long) u);\n"
1255 "        exit(EXIT_SUCCESS);\n"
1256 msgstr ""
1257 "        printf(\"Parent about to read\\en\");\n"
1258 "        s = read(efd, &u, sizeof(uint64_t));\n"
1259 "        if (s != sizeof(uint64_t))\n"
1260 "            handle_error(\"read\");\n"
1261 "        printf(\"Parent read %llu (0x%llx) from efd\\en\",\n"
1262 "                (unsigned long long) u, (unsigned long long) u);\n"
1263 "        exit(EXIT_SUCCESS);\n"
1264
1265 #. type: Plain text
1266 #: build/C/man2/eventfd.2:416
1267 #, no-wrap
1268 msgid ""
1269 "    case -1:\n"
1270 "        handle_error(\"fork\");\n"
1271 "    }\n"
1272 "}\n"
1273 msgstr ""
1274 "    case -1:\n"
1275 "        handle_error(\"fork\");\n"
1276 "    }\n"
1277 "}\n"
1278
1279 #. type: Plain text
1280 #: build/C/man2/eventfd.2:428
1281 msgid ""
1282 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), B<signalfd>"
1283 "(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), B<sem_overview>(7)"
1284 msgstr ""
1285 "B<futex>(2), B<pipe>(2), B<poll>(2), B<read>(2), B<select>(2), B<signalfd>"
1286 "(2), B<timerfd_create>(2), B<write>(2), B<epoll>(7), B<sem_overview>(7)"
1287
1288 #. type: TH
1289 #: build/C/man2/getitimer.2:12
1290 #, no-wrap
1291 msgid "GETITIMER"
1292 msgstr "GETITIMER"
1293
1294 #. type: TH
1295 #: build/C/man2/getitimer.2:12
1296 #, no-wrap
1297 msgid "2012-10-01"
1298 msgstr "2012-10-01"
1299
1300 #. type: Plain text
1301 #: build/C/man2/getitimer.2:15
1302 msgid "getitimer, setitimer - get or set value of an interval timer"
1303 msgstr "getitimer, setitimer - インターバル・タイマーの値を取得または設定する"
1304
1305 #. type: Plain text
1306 #: build/C/man2/getitimer.2:18
1307 #, no-wrap
1308 msgid "B<#include E<lt>sys/time.hE<gt>>\n"
1309 msgstr "B<#include E<lt>sys/time.hE<gt>>\n"
1310
1311 #. type: Plain text
1312 #: build/C/man2/getitimer.2:20
1313 #, no-wrap
1314 msgid "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1315 msgstr "B<int getitimer(int >I<which>B<, struct itimerval *>I<curr_value>B<);>\n"
1316
1317 #. type: Plain text
1318 #: build/C/man2/getitimer.2:23
1319 #, no-wrap
1320 msgid ""
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 msgstr ""
1324 "B<int setitimer(int >I<which>B<, const struct itimerval *>I<new_value>B<,>\n"
1325 "B<              struct itimerval *>I<old_value>B<);>\n"
1326
1327 #. type: Plain text
1328 #: build/C/man2/getitimer.2:29
1329 msgid ""
1330 "The system provides each process with three interval timers, each "
1331 "decrementing in a distinct time domain.  When any timer expires, a signal is "
1332 "sent to the process, and the timer (potentially) restarts."
1333 msgstr ""
1334 "システムは 1 個のプロセスにつき 3 個のインターバル・タイマーを提供する。 それ"
1335 "ぞれのタイマーは別々の時間領域で減少する。 どのタイマーも満了するとプロセスに"
1336 "シグナルが送られ、 タイマーは (設定によっては) 再び開始される。"
1337
1338 #. type: TP
1339 #: build/C/man2/getitimer.2:29
1340 #, no-wrap
1341 msgid "B<ITIMER_REAL>"
1342 msgstr "B<ITIMER_REAL>"
1343
1344 #. type: Plain text
1345 #: build/C/man2/getitimer.2:34
1346 msgid "decrements in real time, and delivers B<SIGALRM> upon expiration."
1347 msgstr "実時間 (real time) で減少し、満了すると B<SIGALRM> が送られる。"
1348
1349 #. type: TP
1350 #: build/C/man2/getitimer.2:34
1351 #, no-wrap
1352 msgid "B<ITIMER_VIRTUAL>"
1353 msgstr "B<ITIMER_VIRTUAL>"
1354
1355 #. type: Plain text
1356 #: build/C/man2/getitimer.2:39
1357 msgid ""
1358 "decrements only when the process is executing, and delivers B<SIGVTALRM> "
1359 "upon expiration."
1360 msgstr ""
1361 "プロセスが実行されている間のみ減少し、満了すると B<SIGVTALRM> が送られる。"
1362
1363 #. type: TP
1364 #: build/C/man2/getitimer.2:39
1365 #, no-wrap
1366 msgid "B<ITIMER_PROF>"
1367 msgstr "B<ITIMER_PROF>"
1368
1369 #. type: Plain text
1370 #: build/C/man2/getitimer.2:49
1371 msgid ""
1372 "decrements both when the process executes and when the system is executing "
1373 "on behalf of the process.  Coupled with B<ITIMER_VIRTUAL>, this timer is "
1374 "usually used to profile the time spent by the application in user and kernel "
1375 "space.  B<SIGPROF> is delivered upon expiration."
1376 msgstr ""
1377 "プロセスが実行されていて、 かつシステムがそのプロセスのために処理を行なってい"
1378 "る間に減少する。 多くの場合、このタイマーは B<ITIMER_VIRTUAL> と組み合わされ"
1379 "て、アプリケーションがカーネル空間とユーザー空間で どれだけの時間を過ごしたか"
1380 "をプロファイルするのに使用される。 満了すると B<SIGPROF> が送られる。"
1381
1382 #. type: Plain text
1383 #: build/C/man2/getitimer.2:51
1384 msgid "Timer values are defined by the following structures:"
1385 msgstr "タイマーの値は以下の構造体によって定義される:"
1386
1387 #. type: Plain text
1388 #: build/C/man2/getitimer.2:59
1389 #, no-wrap
1390 msgid ""
1391 "struct itimerval {\n"
1392 "    struct timeval it_interval; /* next value */\n"
1393 "    struct timeval it_value;    /* current value */\n"
1394 "};\n"
1395 msgstr ""
1396 "struct itimerval {\n"
1397 "    struct timeval it_interval; /* next value */\n"
1398 "    struct timeval it_value;    /* current value */\n"
1399 "};\n"
1400
1401 #. type: Plain text
1402 #: build/C/man2/getitimer.2:64
1403 #, no-wrap
1404 msgid ""
1405 "struct timeval {\n"
1406 "    time_t      tv_sec;         /* seconds */\n"
1407 "    suseconds_t tv_usec;        /* microseconds */\n"
1408 "};\n"
1409 msgstr ""
1410 "struct timeval {\n"
1411 "    time_t      tv_sec;         /* seconds */\n"
1412 "    suseconds_t tv_usec;        /* microseconds */\n"
1413 "};\n"
1414
1415 #. type: Plain text
1416 #: build/C/man2/getitimer.2:86
1417 msgid ""
1418 "The function B<getitimer>()  fills the structure pointed to by I<curr_value> "
1419 "with the current setting for the timer specified by I<which> (one of "
1420 "B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>).  The element "
1421 "I<it_value> is set to the amount of time remaining on the timer, or zero if "
1422 "the timer is disabled.  Similarly, I<it_interval> is set to the reset value."
1423 msgstr ""
1424 "B<getitimer>()  関数は、 I<which> で指定されたタイマー (B<ITIMER_REAL>, "
1425 "B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれか) の現在の設定を、 I<curr_value> で"
1426 "指定された構造体に格納する。 I<it_value> 要素にはタイマーの残り時間が設定され"
1427 "る。タイマーがオフの場合は ゼロが設定される。同様に I<it_interval> には初期値"
1428 "が設定される。"
1429
1430 #. type: Plain text
1431 #: build/C/man2/getitimer.2:94
1432 msgid ""
1433 "The function B<setitimer>()  sets the specified timer to the value in "
1434 "I<new_value>.  If I<old_value> is non-NULL, the old value of the timer is "
1435 "stored there."
1436 msgstr ""
1437 "B<setitimer>()  関数は指定されたタイマーに I<new_value> の値を設定する。 "
1438 "I<old_value> が NULL 以外の場合、タイマーの古い値が I<old_value> に格納され"
1439 "る。"
1440
1441 #. type: Plain text
1442 #: build/C/man2/getitimer.2:104
1443 msgid ""
1444 "Timers decrement from I<it_value> to zero, generate a signal, and reset to "
1445 "I<it_interval>.  A timer which is set to zero (I<it_value> is zero or the "
1446 "timer expires and I<it_interval> is zero) stops."
1447 msgstr ""
1448 "タイマーは I<it_value> からゼロへ向けて減っていき、シグナルを生成し、 "
1449 "I<it_interval> に初期化される。 タイマーがゼロに設定された場合 (I<it_value> "
1450 "がゼロか、タイマーが満了した時に I<it_interval> がゼロの場合) は停止する。"
1451
1452 #. type: Plain text
1453 #: build/C/man2/getitimer.2:110
1454 msgid ""
1455 "Both I<tv_sec> and I<tv_usec> are significant in determining the duration of "
1456 "a timer."
1457 msgstr "タイマーの期間は I<tv_sec> と I<tv_usec> の両方により決定される。"
1458
1459 #. type: Plain text
1460 #: build/C/man2/getitimer.2:122
1461 msgid ""
1462 "Timers will never expire before the requested time, but may expire some "
1463 "(short) time afterward, which depends on the system timer resolution and on "
1464 "the system load; see B<time>(7).  (But see BUGS below.)  Upon expiration, a "
1465 "signal will be generated and the timer reset.  If the timer expires while "
1466 "the process is active (always true for B<ITIMER_VIRTUAL>)  the signal will "
1467 "be delivered immediately when generated.  Otherwise the delivery will be "
1468 "offset by a small time dependent on the system loading."
1469 msgstr ""
1470 "要求した時間がくる前にタイマーが満了することはないが、 逆にある (短い) 時間だ"
1471 "け満了が遅れることはある。 どれだけ遅れるかはシステムの時間分解能とシステムの"
1472 "負荷に依存する (B<time>(7)  参照; 但し、バグの項も参照のこと)。 タイマーが満"
1473 "了するとシグナルが生成され、タイマーは初期化される。 プロセスがアクティブな"
1474 "時 (B<ITIMER_VIRTUAL> の場合には常にそうである) にタイマーが満了した場合、生"
1475 "成されたシグナルは すぐに配送される。それ以外の場合は、システムの負荷により少"
1476 "しの時間だけ 遅れて配送される。"
1477
1478 #. type: Plain text
1479 #: build/C/man2/getitimer.2:127 build/C/man2/killpg.2:94
1480 #: build/C/man2/tkill.2:99
1481 msgid ""
1482 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
1483 "appropriately."
1484 msgstr ""
1485 "成功した場合、0 が返される。エラーが発生した場合、-1 が返され、 I<errno> が適"
1486 "切に設定される。"
1487
1488 #. type: TP
1489 #: build/C/man2/getitimer.2:128 build/C/man2/prctl.2:801
1490 #: build/C/man2/sigaction.2:666 build/C/man2/sigaltstack.2:138
1491 #: build/C/man2/sigpending.2:60 build/C/man2/sigprocmask.2:100
1492 #: build/C/man2/sigsuspend.2:77 build/C/man2/timer_settime.2:184
1493 #: build/C/man2/timerfd_create.2:342
1494 #, no-wrap
1495 msgid "B<EFAULT>"
1496 msgstr "B<EFAULT>"
1497
1498 #. type: Plain text
1499 #: build/C/man2/getitimer.2:135 build/C/man2/timerfd_create.2:349
1500 msgid "I<new_value>, I<old_value>, or I<curr_value> is not valid a pointer."
1501 msgstr "I<new_value>, I<old_value>, I<curr_value> が有効なポインタではない。"
1502
1503 #. type: Plain text
1504 #: build/C/man2/getitimer.2:148
1505 msgid ""
1506 "I<which> is not one of B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, or B<ITIMER_PROF>; "
1507 "or (since Linux 2.6.22) one of the I<tv_usec> fields in the structure "
1508 "pointed to by I<new_value> contains a value outside the range 0 to 999999."
1509 msgstr ""
1510 "I<which> が B<ITIMER_REAL>, B<ITIMER_VIRTUAL>, B<ITIMER_PROF> のどれでもな"
1511 "い。 または (Linux 2.6.22 以降で)  I<new_value> で指定された構造体の "
1512 "I<tv_usec> フィールドの一つが 0 以上 999999 以下の範囲に入らない値である。"
1513
1514 #. type: Plain text
1515 #: build/C/man2/getitimer.2:158
1516 msgid ""
1517 "POSIX.1-2001, SVr4, 4.4BSD (this call first appeared in 4.2BSD).  "
1518 "POSIX.1-2008 marks B<getitimer>()  and B<setitimer>()  obsolete, "
1519 "recommending the use of the POSIX timers API (B<timer_gettime>(2), "
1520 "B<timer_settime>(2), etc.) instead."
1521 msgstr ""
1522 "POSIX.1-2001, SVr4, 4.4BSD (このコールは 4.2BSD で始めて現われた).  "
1523 "POSIX.1-2008 では、 B<getitimer>()  と B<setitimer>()  は廃止予定とされてお"
1524 "り、 代わりに POSIX タイマー API (B<timer_gettime>(2), B<timer_settime>(2)  "
1525 "など) を使うことが推奨されている。"
1526
1527 #. type: Plain text
1528 #: build/C/man2/getitimer.2:164
1529 msgid ""
1530 "A child created via B<fork>(2)  does not inherit its parent's interval "
1531 "timers.  Interval timers are preserved across an B<execve>(2)."
1532 msgstr ""
1533 "B<fork>(2)  で作成された子プロセスは、 親プロセスのインターバル・タイマーを継"
1534 "承しない。 B<execve>(2)  の前後ではインターバル・タイマーは保存される。"
1535
1536 #. type: Plain text
1537 #: build/C/man2/getitimer.2:174
1538 msgid ""
1539 "POSIX.1 leaves the interaction between B<setitimer>()  and the three "
1540 "interfaces B<alarm>(2), B<sleep>(3), and B<usleep>(3)  unspecified."
1541 msgstr ""
1542 "POSIX.1 では、 B<setitimer>()  と、 B<alarm>(2), B<sleep>(3), B<usleep>(3)  "
1543 "という 3 つのインタフェースとの相互の影響については規定していない。"
1544
1545 #. type: Plain text
1546 #: build/C/man2/getitimer.2:176
1547 msgid "The standards are silent on the meaning of the call:"
1548 msgstr "標準では、次の呼び出しの意味については規定されていない。"
1549
1550 #. type: Plain text
1551 #: build/C/man2/getitimer.2:178
1552 #, no-wrap
1553 msgid "    setitimer(which, NULL, &old_value);\n"
1554 msgstr "    setitimer(which, NULL, &old_value);\n"
1555
1556 #. type: Plain text
1557 #: build/C/man2/getitimer.2:181
1558 msgid ""
1559 "Many systems (Solaris, the BSDs, and perhaps others)  treat this as "
1560 "equivalent to:"
1561 msgstr ""
1562 "(Solaris, BSD 系やおそらく他のシステムもそうだが) 多くのシステムでは、\n"
1563 "この呼び出しは以下と等価である。"
1564
1565 #. type: Plain text
1566 #: build/C/man2/getitimer.2:183
1567 #, no-wrap
1568 msgid "    getitimer(which, &old_value);\n"
1569 msgstr "    getitimer(which, &old_value);\n"
1570
1571 #. type: Plain text
1572 #: build/C/man2/getitimer.2:189
1573 msgid ""
1574 "In Linux, this is treated as being equivalent to a call in which the "
1575 "I<new_value> fields are zero; that is, the timer is disabled.  I<Don't use "
1576 "this Linux misfeature>: it is nonportable and unnecessary."
1577 msgstr ""
1578 "Linux では、この呼び出しは I<new_value> フィールドが 0 の呼び出しと等価なもの"
1579 "と扱われる。 つまり、タイマーが無効になる。 I<Linux のこの間違った機能を使用"
1580 "しないこと>。移植性もなく、不必要な機能である。"
1581
1582 #. type: SH
1583 #: build/C/man2/getitimer.2:189 build/C/man2/kill.2:161
1584 #: build/C/man3/profil.3:72 build/C/man3/psignal.3:101
1585 #: build/C/man2/sigaction.2:781 build/C/man2/signalfd.2:352
1586 #: build/C/man2/sigpending.2:85 build/C/man3/sigset.3:232
1587 #: build/C/man2/timer_getoverrun.2:115 build/C/man2/timerfd_create.2:373
1588 #: build/C/man2/wait.2:535
1589 #, no-wrap
1590 msgid "BUGS"
1591 msgstr "バグ"
1592
1593 #. type: Plain text
1594 #: build/C/man2/getitimer.2:198
1595 msgid ""
1596 "The generation and delivery of a signal are distinct, and only one instance "
1597 "of each of the signals listed above may be pending for a process.  Under "
1598 "very heavy loading, an B<ITIMER_REAL> timer may expire before the signal "
1599 "from a previous expiration has been delivered.  The second signal in such an "
1600 "event will be lost."
1601 msgstr ""
1602 "シグナルの生成と配送は別個のものであり、 前述のシグナルのそれぞれについて一つ"
1603 "だけがプロセスのために 待機する。 非常に重い負荷の下では、 B<ITIMER_REAL> タ"
1604 "イマーでは、時間切れにより生成された一つ前のシグナルが配送される前に、 次の時"
1605 "間切れが起こる場合がある。 そのような場合、 2 個めのイベントに対するシグナル"
1606 "は失われてしまう。"
1607
1608 #. type: Plain text
1609 #: build/C/man2/getitimer.2:213
1610 msgid ""
1611 "On Linux kernels before 2.6.16, timer values are represented in jiffies.  If "
1612 "a request is made set a timer with a value whose jiffies representation "
1613 "exceeds B<MAX_SEC_IN_JIFFIES> (defined in I<include/linux/jiffies.h>), then "
1614 "the timer is silently truncated to this ceiling value.  On Linux/i386 "
1615 "(where, since Linux 2.6.13, the default jiffy is 0.004 seconds), this means "
1616 "that the ceiling value for a timer is approximately 99.42 days.  Since Linux "
1617 "2.6.16, the kernel uses a different internal representation for times, and "
1618 "this ceiling is removed."
1619 msgstr ""
1620 "バージョン 2.6.16 より前の Linux カーネルでは、 タイマーの値は jiffy で表現さ"
1621 "れる。 要求が jiffy 表現で (I<include/linux/jiffies.h> で定義されている)  "
1622 "B<MAX_SEC_IN_JIFFIES> を越える値をタイマーに設定しようとするものの場合、 タイ"
1623 "マーは暗黙にこの上限値に切り詰められる。 Linux/i386 の場合 (Linux 2.6.13 以降"
1624 "では jiffy は 0.004 秒) の場合、 これはタイマーの上限値がおよそ 99.42 日にな"
1625 "ることを意味する。 Linux 2.6.16 以降では、カーネルは時間に関する内部表現とし"
1626 "て 異なる表現を使うようになっており、この上限はなくなった。"
1627
1628 #.  4 Jul 2005: It looks like this bug may remain in 2.4.x.
1629 #.      http://lkml.org/lkml/2005/7/1/165
1630 #. type: Plain text
1631 #: build/C/man2/getitimer.2:220
1632 msgid ""
1633 "On certain systems (including i386), Linux kernels before version 2.6.12 "
1634 "have a bug which will produce premature timer expirations of up to one jiffy "
1635 "under some circumstances.  This bug is fixed in kernel 2.6.12."
1636 msgstr ""
1637 "(i386 を含む) いくつかのシステムでは、 バージョン 2.6.12 以前の Linux カーネ"
1638 "ルは ある種の状況では 1 jiffy 早くタイマーが終了してしまうというバグがあっ"
1639 "た。 このバグはカーネル 2.6.12 で修正された。"
1640
1641 #.  Bugzilla report 25 Apr 2006:
1642 #.  http://bugzilla.kernel.org/show_bug.cgi?id=6443
1643 #.  "setitimer() should reject noncanonical arguments"
1644 #. type: Plain text
1645 #: build/C/man2/getitimer.2:239
1646 msgid ""
1647 "POSIX.1-2001 says that B<setitimer>()  should fail if a I<tv_usec> value is "
1648 "specified that is outside of the range 0 to 999999.  However, in kernels up "
1649 "to and including 2.6.21, Linux does not give an error, but instead silently "
1650 "adjusts the corresponding seconds value for the timer.  From kernel 2.6.22 "
1651 "onward, this nonconformance has been repaired: an improper I<tv_usec> value "
1652 "results in an B<EINVAL> error."
1653 msgstr ""
1654 "POSIX.1-2001 では B<setitimer>()  は I<tv_usec> の値が 0 から 999999 の範囲外"
1655 "である場合には失敗するべきだとしている。 しかし、2.6.21 以前のカーネルの "
1656 "Linux ではエラーにならず、 対応する秒数の分だけそのタイマーの秒の値が暗黙に調"
1657 "整される。 カーネル 2.6.22 以降では、この標準非準拠の動作は修正され、 "
1658 "I<tv_usec> の値が不適切な場合には B<EINVAL> エラーとなる。"
1659
1660 #. type: Plain text
1661 #: build/C/man2/getitimer.2:246
1662 msgid ""
1663 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1664 "B<timerfd_create>(2), B<time>(7)"
1665 msgstr ""
1666 "B<gettimeofday>(2), B<sigaction>(2), B<signal>(2), B<timer_create>(2), "
1667 "B<timerfd_create>(2), B<time>(7)"
1668
1669 #. type: TH
1670 #: build/C/man3/gsignal.3:27
1671 #, no-wrap
1672 msgid "GSIGNAL"
1673 msgstr "GSIGNAL"
1674
1675 #. type: TH
1676 #: build/C/man3/gsignal.3:27 build/C/man3/profil.3:28
1677 #, no-wrap
1678 msgid "2007-07-26"
1679 msgstr "2007-07-26"
1680
1681 #. type: Plain text
1682 #: build/C/man3/gsignal.3:30
1683 msgid "gsignal, ssignal - software signal facility"
1684 msgstr "gsignal, ssignal - ソフトウェア・シグナル機能"
1685
1686 #. type: Plain text
1687 #: build/C/man3/gsignal.3:33 build/C/man2/kill.2:52 build/C/man3/psignal.3:36
1688 #: build/C/man3/raise.3:35 build/C/man2/sigaction.2:53
1689 #: build/C/man3/siginterrupt.3:37 build/C/man3/sigpause.3:31
1690 #: build/C/man3/sigwait.3:32 build/C/man2/sigwaitinfo.2:31
1691 #, no-wrap
1692 msgid "B<#include E<lt>signal.hE<gt>>\n"
1693 msgstr "B<#include E<lt>signal.hE<gt>>\n"
1694
1695 #. type: Plain text
1696 #: build/C/man3/gsignal.3:35
1697 #, no-wrap
1698 msgid "B<typedef void (*sighandler_t)(int);>\n"
1699 msgstr "B<typedef void (*sighandler_t)(int);>\n"
1700
1701 #. type: Plain text
1702 #: build/C/man3/gsignal.3:37
1703 #, no-wrap
1704 msgid "B<int gsignal(int >I<signum>B<);>\n"
1705 msgstr "B<int gsignal(int >I<signum>B<);>\n"
1706
1707 #. type: Plain text
1708 #: build/C/man3/gsignal.3:39
1709 #, no-wrap
1710 msgid "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1711 msgstr "B<sighandler_t ssignal(int >I<signum>B<, sighandler_t >I<action>B<);>\n"
1712
1713 #. type: Plain text
1714 #: build/C/man3/gsignal.3:44 build/C/man2/kill.2:59 build/C/man2/killpg.2:53
1715 #: build/C/man3/profil.3:42 build/C/man3/psignal.3:46
1716 #: build/C/man2/sigaction.2:61 build/C/man2/sigaltstack.2:38
1717 #: build/C/man3/siginterrupt.3:44 build/C/man2/sigpending.2:40
1718 #: build/C/man2/sigprocmask.2:41 build/C/man3/sigqueue.3:39
1719 #: build/C/man3/sigset.3:45 build/C/man3/sigsetops.3:51
1720 #: build/C/man2/sigsuspend.2:40 build/C/man3/sigvec.3:45
1721 #: build/C/man3/sigwait.3:39 build/C/man2/sigwaitinfo.2:41
1722 #: build/C/man2/timer_create.2:48 build/C/man2/timer_delete.2:41
1723 #: build/C/man2/timer_getoverrun.2:41 build/C/man2/timer_settime.2:45
1724 #: build/C/man2/wait.2:69 build/C/man2/wait4.2:53
1725 msgid ""
1726 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
1727 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7)  参照):"
1728
1729 #. type: Plain text
1730 #: build/C/man3/gsignal.3:49
1731 msgid "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1732 msgstr "B<gsignal>(), B<ssignal>(): _SVID_SOURCE"
1733
1734 #. type: Plain text
1735 #: build/C/man3/gsignal.3:57
1736 msgid ""
1737 "Don't use these functions under Linux.  Due to a historical mistake, under "
1738 "Linux these functions are aliases for B<raise>(3)  and B<signal>(2), "
1739 "respectively."
1740 msgstr ""
1741 "Linux ではこれらの関数を使用しないこと。 過去に間違いがあり、Linux では "
1742 "B<gsignal>()  と B<ssignal>()  はそれぞれ B<raise>(3)  と B<signal>(2)  の別"
1743 "名になっている。"
1744
1745 #. type: Plain text
1746 #: build/C/man3/gsignal.3:95
1747 msgid ""
1748 "Elsewhere, on System V-like systems, these functions implement software "
1749 "signaling, entirely independent of the classical B<signal>(2)  and B<kill>"
1750 "(2)  functions.  The function B<ssignal>()  defines the action to take when "
1751 "the software signal with number I<signum> is raised using the function "
1752 "B<gsignal>(), and returns the previous such action or B<SIG_DFL>.  The "
1753 "function B<gsignal>()  does the following: if no action (or the action "
1754 "B<SIG_DFL>)  was specified for I<signum>, then it does nothing and returns "
1755 "0.  If the action B<SIG_IGN> was specified for I<signum>, then it does "
1756 "nothing and returns 1.  Otherwise, it resets the action to B<SIG_DFL> and "
1757 "calls the action function with argument I<signum>, and returns the value "
1758 "returned by that function.  The range of possible values I<signum> varies "
1759 "(often 1-15 or 1-17)."
1760 msgstr ""
1761 "一方、System V 風のシステムでは、これらの関数で、 従来の B<signal>(2)  や "
1762 "B<kill>(2)  の関数群とは完全に独立な、 ソフトウェア・シグナリングを実現してい"
1763 "る。 B<ssignal>()  関数は、番号 I<signum> のソフトウェア・シグナルが "
1764 "B<gsignal>()  関数を使って発生された時にとるべきアクションを定義する。 "
1765 "B<gsignal>()  の返り値は、一つ前に指定されていたアクション、もしくは "
1766 "B<SIG_DFL> である。 B<gsignal>()  は以下のような動作を行う: I<signum> に対し"
1767 "てアクションが指定されていないか、アクション B<SIG_DFL> が指定されていた場"
1768 "合、何もせずに 0 を返す。 I<signum> に対して アクション B<SIG_IGN> が指定され"
1769 "ていた場合、何もせずに 1 を返す。 それ以外の場合、アクションを B<SIG_DFL> に"
1770 "リセットし、引き数に I<signum> を指定してアクション関数を呼び出して、アクショ"
1771 "ン関数の返り値を返す。 I<signum> がとり得る値の範囲は実装により異なる (多くの"
1772 "場合 1〜15 か 1〜17 である)。"
1773
1774 #. type: Plain text
1775 #: build/C/man3/gsignal.3:103
1776 msgid ""
1777 "These functions are available under AIX, DG/UX, HP-UX, SCO, Solaris, Tru64.  "
1778 "They are called obsolete under most of these systems, and are broken under "
1779 "Linux libc and glibc.  Some systems also have B<gsignal_r>()  and "
1780 "B<ssignal_r>()."
1781 msgstr ""
1782 "これらの関数は、AIX, DG/UX, HP-UX, SCO, Solaris, Tru64 で使用可能である。 こ"
1783 "れらのシステムのほとんどで廃止されたことになっており、 Linux の libc および "
1784 "glibc では正しく実装されていない。 B<gsignal_r>()  と B<ssignal_r>()  が実装"
1785 "されているシステムもある。"
1786
1787 #. type: Plain text
1788 #: build/C/man3/gsignal.3:107
1789 msgid "B<kill>(2), B<signal>(2), B<raise>(3)"
1790 msgstr "B<kill>(2), B<signal>(2), B<raise>(3)"
1791
1792 #. type: TH
1793 #: build/C/man2/kill.2:44
1794 #, no-wrap
1795 msgid "KILL"
1796 msgstr "KILL"
1797
1798 #. type: TH
1799 #: build/C/man2/kill.2:44
1800 #, no-wrap
1801 msgid "2013-09-17"
1802 msgstr "2013-09-17"
1803
1804 #. type: Plain text
1805 #: build/C/man2/kill.2:47
1806 msgid "kill - send signal to a process"
1807 msgstr "kill - プロセスにシグナルを送る"
1808
1809 #. type: Plain text
1810 #: build/C/man2/kill.2:50
1811 #, no-wrap
1812 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
1813 msgstr "B<#include E<lt>sys/types.hE<gt>>\n"
1814
1815 #. type: Plain text
1816 #: build/C/man2/kill.2:54
1817 #, no-wrap
1818 msgid "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1819 msgstr "B<int kill(pid_t >I<pid>B<, int >I<sig>B<);>\n"
1820
1821 #. type: Plain text
1822 #: build/C/man2/kill.2:64
1823 msgid ""
1824 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1825 msgstr ""
1826 "B<kill>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
1827
1828 #. type: Plain text
1829 #: build/C/man2/kill.2:70
1830 msgid ""
1831 "The B<kill>()  system call can be used to send any signal to any process "
1832 "group or process."
1833 msgstr ""
1834 "システムコールの B<kill>()  は、任意のプロセス・グループもしくはプロセスにシ"
1835 "グナルを 送るのに使われる。"
1836
1837 #. type: Plain text
1838 #: build/C/man2/kill.2:73
1839 msgid ""
1840 "If I<pid> is positive, then signal I<sig> is sent to the process with the ID "
1841 "specified by I<pid>."
1842 msgstr ""
1843 "I<pid> に正の値を指定した場合、シグナル I<sig> が I<pid> で指定された ID を持"
1844 "つプロセスに送られる。"
1845
1846 #. type: Plain text
1847 #: build/C/man2/kill.2:76
1848 msgid ""
1849 "If I<pid> equals 0, then I<sig> is sent to every process in the process "
1850 "group of the calling process."
1851 msgstr ""
1852 "I<pid> に 0 を指定した場合、 呼び出し元のプロセスのプロセス・グループに属する"
1853 "すべてのプロセスに I<sig> で指定したシグナルが送られる。"
1854
1855 #. type: Plain text
1856 #: build/C/man2/kill.2:80
1857 msgid ""
1858 "If I<pid> equals -1, then I<sig> is sent to every process for which the "
1859 "calling process has permission to send signals, except for process 1 "
1860 "(I<init>), but see below."
1861 msgstr ""
1862 "I<pid> に -1 を指定した場合、 I<sig> で指定したシグナルが、 呼び出し元のプロ"
1863 "セスがシグナルを送る許可を持つ全てのプロセスに 送られる。但し、プロセス番号 "
1864 "1 (I<init>) へはシグナルは送られない。 以下の関連部分も参照のこと。"
1865
1866 #. type: Plain text
1867 #: build/C/man2/kill.2:83
1868 msgid ""
1869 "If I<pid> is less than -1, then I<sig> is sent to every process in the "
1870 "process group whose ID is I<-pid>."
1871 msgstr ""
1872 "I<pid> に -1 より小さな値を指定した場合、 ID が I<-pid> のプロセス・グループ"
1873 "に属するすべてのプロセスに I<sig> で指定したシグナルが送られる。"
1874
1875 #. type: Plain text
1876 #: build/C/man2/kill.2:88
1877 msgid ""
1878 "If I<sig> is 0, then no signal is sent, but error checking is still "
1879 "performed; this can be used to check for the existence of a process ID or "
1880 "process group ID."
1881 msgstr ""
1882 "I<sig> に 0 を指定した場合、シグナルは送られないが、 エラーのチェックは行われ"
1883 "る。これを使って、プロセス ID や プロセスグループ ID の存在確認を行うことがで"
1884 "きる。"
1885
1886 #. type: Plain text
1887 #: build/C/man2/kill.2:100
1888 msgid ""
1889 "For a process to have permission to send a signal it must either be "
1890 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
1891 "effective user ID of the sending process must equal the real or saved set-"
1892 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
1893 "the sending and receiving processes belong to the same session.  "
1894 "(Historically, the rules were different; see NOTES.)"
1895 msgstr ""
1896 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
1897 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
1898 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
1899 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
1900 "プロセスが 同じセッションに属していれば十分である。 (過去には、 ルールは違っ"
1901 "ていた; 「注意」の節を参照。)"
1902
1903 #. type: Plain text
1904 #: build/C/man2/kill.2:105
1905 msgid ""
1906 "On success (at least one signal was sent), zero is returned.  On error, -1 "
1907 "is returned, and I<errno> is set appropriately."
1908 msgstr ""
1909 "成功した場合 (少なくとも一つのシグナルが送信された場合)、 0 が返される。エ"
1910 "ラーの場合 -1 が返され、 I<errno> が適切に設定される。"
1911
1912 #. type: Plain text
1913 #: build/C/man2/kill.2:109
1914 msgid "An invalid signal was specified."
1915 msgstr "無効なシグナルを指定した。"
1916
1917 #. type: TP
1918 #: build/C/man2/kill.2:109 build/C/man2/killpg.2:99 build/C/man2/prctl.2:886
1919 #: build/C/man2/prctl.2:898 build/C/man2/prctl.2:908 build/C/man2/prctl.2:916
1920 #: build/C/man2/rt_sigqueueinfo.2:148 build/C/man2/sigaltstack.2:151
1921 #: build/C/man3/sigqueue.3:102 build/C/man2/tkill.2:103
1922 #, no-wrap
1923 msgid "B<EPERM>"
1924 msgstr "B<EPERM>"
1925
1926 #. type: Plain text
1927 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103
1928 msgid ""
1929 "The process does not have permission to send the signal to any of the target "
1930 "processes."
1931 msgstr ""
1932 "プロセスが、受信するプロセスのいずれに対しても シグナルを送る許可を持っていな"
1933 "い。"
1934
1935 #. type: TP
1936 #: build/C/man2/kill.2:113 build/C/man2/killpg.2:103 build/C/man2/killpg.2:107
1937 #: build/C/man2/rt_sigqueueinfo.2:156 build/C/man3/sigqueue.3:108
1938 #: build/C/man2/tkill.2:108
1939 #, no-wrap
1940 msgid "B<ESRCH>"
1941 msgstr "B<ESRCH>"
1942
1943 #. type: Plain text
1944 #: build/C/man2/kill.2:121
1945 msgid ""
1946 "The pid or process group does not exist.  Note that an existing process "
1947 "might be a zombie, a process which already committed termination, but has "
1948 "not yet been B<wait>(2)ed for."
1949 msgstr ""
1950 "指定したプロセスまたはプロセス・グループが存在しなかった。 ゾンビプロセスは存"
1951 "在するプロセスとしてみなされる。 ゾンビプロセスとはすでに処理は終了している"
1952 "が、親プロセスによる B<wait>()  処理が行われていないプロセスのことである。"
1953
1954 #. type: Plain text
1955 #: build/C/man2/kill.2:123 build/C/man2/pause.2:59 build/C/man2/wait.2:424
1956 msgid "SVr4, 4.3BSD, POSIX.1-2001."
1957 msgstr "SVr4, 4.3BSD, POSIX.1-2001."
1958
1959 #. type: Plain text
1960 #: build/C/man2/kill.2:131
1961 msgid ""
1962 "The only signals that can be sent to process ID 1, the I<init> process, are "
1963 "those for which I<init> has explicitly installed signal handlers.  This is "
1964 "done to assure the system is not brought down accidentally."
1965 msgstr ""
1966 "プロセス番号 1 の I<init> プロセスに送ることができるシグナルは、 I<init> が明"
1967 "示的にシグナルハンドラを設定したシグナルだけである。 こうなっているのは、誤っ"
1968 "てシステムをダウンさせないようにするためである。"
1969
1970 #. type: Plain text
1971 #: build/C/man2/kill.2:137
1972 msgid ""
1973 "POSIX.1-2001 requires that I<kill(-1,sig)> send I<sig> to all processes that "
1974 "the calling process may send signals to, except possibly for some "
1975 "implementation-defined system processes.  Linux allows a process to signal "
1976 "itself, but on Linux the call I<kill(-1,sig)> does not signal the calling "
1977 "process."
1978 msgstr ""
1979 "POSIX.1-2001 では、 I<kill(-1,sig)> が 呼び出し元のプロセスがシグナルを送るこ"
1980 "とが出来るプロセス全てに I<sig> を送ることを要求している。 但し、システム実装"
1981 "時に定められたシステムプロセスは シグナルの送信対象から除外される。 Linux で"
1982 "は、プロセスが自分自身にシグナルを送れるようになっているが、 Linux の I<kill"
1983 "(-1,sig)> は呼び出し元のプロセスにはシグナルを送らない。"
1984
1985 #. type: Plain text
1986 #: build/C/man2/kill.2:147
1987 msgid ""
1988 "POSIX.1-2001 requires that if a process sends a signal to itself, and the "
1989 "sending thread does not have the signal blocked, and no other thread has it "
1990 "unblocked or is waiting for it in B<sigwait>(3), at least one unblocked "
1991 "signal must be delivered to the sending thread before the B<kill>()  returns."
1992 msgstr ""
1993 "POSIX.1-2001 では以下の動作になることを要求している。 自分自身にシグナルを送"
1994 "ると、シグナルを送ったスレッドがそのシグナルをブロック しておらず、他のどのス"
1995 "レッドもそのシグナルを受ける状態にもなく B<sigwait>(3)  でそのシグナルを待っ"
1996 "てもいない場合、 B<kill>()  が返る前に少なくとも一つのブロックされていない シ"
1997 "グナルがシグナルを送ったスレッドに配送されなければならない。"
1998
1999 #. type: SS
2000 #: build/C/man2/kill.2:147 build/C/man3/sigpause.3:82 build/C/man2/wait.2:478
2001 #, no-wrap
2002 msgid "Linux notes"
2003 msgstr "Linux での注意"
2004
2005 #.  In the 0.* kernels things chopped and changed quite
2006 #.  a bit - MTK, 24 Jul 02
2007 #. type: Plain text
2008 #: build/C/man2/kill.2:161
2009 msgid ""
2010 "Across different kernel versions, Linux has enforced different rules for the "
2011 "permissions required for an unprivileged process to send a signal to another "
2012 "process.  In kernels 1.0 to 1.2.2, a signal could be sent if the effective "
2013 "user ID of the sender matched effective user ID of the target, or the real "
2014 "user ID of the sender matched the real user ID of the target.  From kernel "
2015 "1.2.3 until 1.3.77, a signal could be sent if the effective user ID of the "
2016 "sender matched either the real or effective user ID of the target.  The "
2017 "current rules, which conform to POSIX.1-2001, were adopted in kernel 1.3.78."
2018 msgstr ""
2019 "Linux では、特権のないプロセスが他のプロセスにシグナルを送信するために必要な"
2020 "権限についてのルールが、カーネルバージョンにより違っている。 カーネル 1.0 か"
2021 "ら 1.2.2 では、送信側の実効ユーザー ID が送信対象の実効ユーザー ID と一致する"
2022 "か、 送信側の実ユーザー ID が送信対象の実ユーザー ID と一致すれば、 シグナル"
2023 "を送信できた。 カーネル 1.2.3 から 1.3.77では、送信側の実効ユーザー ID が送信"
2024 "対象の実ユーザー ID か実効ユーザー ID のいずれかと一致すればシグナルを送信で"
2025 "きた。 現在のルールは、POSIX.1-2001 に準拠しており、カーネル 1.3.78 以降で 適"
2026 "用されている。"
2027
2028 #. type: Plain text
2029 #: build/C/man2/kill.2:171
2030 msgid ""
2031 "In 2.6 kernels up to and including 2.6.7, there was a bug that meant that "
2032 "when sending signals to a process group, B<kill>()  failed with the error "
2033 "B<EPERM> if the caller did not have permission to send the signal to I<any> "
2034 "(rather than I<all>) of the members of the process group.  Notwithstanding "
2035 "this error return, the signal was still delivered to all of the processes "
2036 "for which the caller had permission to signal."
2037 msgstr ""
2038 "バージョン 2.6.7 以前の 2.6 系のカーネルには、 プロセスグループにシグナルを"
2039 "送ったときに、 呼び出し元のプロセスがプロセスグループの (全メンバーではなく) "
2040 "一部のメンバーに対してのみシグナルを送る許可を持っていない場合に、 B<kill>"
2041 "()  がエラー B<EPERM> で失敗するというバグがある。 このエラーが返るにもかかわ"
2042 "らず、そのシグナルは呼び出し元が シグナルを送る許可を持つ全てのプロセスへ送ら"
2043 "れる。"
2044
2045 #. type: Plain text
2046 #: build/C/man2/kill.2:181
2047 msgid ""
2048 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), B<sigqueue>"
2049 "(3), B<capabilities>(7), B<credentials>(7), B<signal>(7)"
2050 msgstr ""
2051 "B<_exit>(2), B<killpg>(2), B<signal>(2), B<tkill>(2), B<exit>(3), B<sigqueue>"
2052 "(3), B<credentials>(7), B<capabilities>(7), B<signal>(7)"
2053
2054 #. type: TH
2055 #: build/C/man2/killpg.2:42
2056 #, no-wrap
2057 msgid "KILLPG"
2058 msgstr "KILLPG"
2059
2060 #. type: TH
2061 #: build/C/man2/killpg.2:42 build/C/man3/sigset.3:26
2062 #, no-wrap
2063 msgid "2010-09-20"
2064 msgstr "2010-09-20"
2065
2066 #. type: Plain text
2067 #: build/C/man2/killpg.2:45
2068 msgid "killpg - send signal to a process group"
2069 msgstr "killpg - シグナルをプロセス・グループに送る"
2070
2071 #. type: Plain text
2072 #: build/C/man2/killpg.2:49
2073 msgid "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2074 msgstr "B<int killpg(int >I<pgrp>B<, int >I<sig>B<);>"
2075
2076 #. type: TP
2077 #: build/C/man2/killpg.2:55
2078 #, no-wrap
2079 msgid "B<killpg>():"
2080 msgstr "B<killpg>():"
2081
2082 #. type: Plain text
2083 #: build/C/man2/killpg.2:59 build/C/man2/sigaltstack.2:46
2084 #: build/C/man3/siginterrupt.3:51 build/C/man2/wait4.2:60
2085 msgid ""
2086 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2087 "_XOPEN_SOURCE_EXTENDED"
2088 msgstr ""
2089 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2090 "_XOPEN_SOURCE_EXTENDED"
2091
2092 #. type: Plain text
2093 #: build/C/man2/killpg.2:69
2094 msgid ""
2095 "B<killpg>()  sends the signal I<sig> to the process group I<pgrp>.  See "
2096 "B<signal>(7)  for a list of signals."
2097 msgstr ""
2098 "B<killpg>()  は I<sig> で指定したシグナルを I<pgrp> で指定したプロセス・グ"
2099 "ループに送る。 シグナルの定義の一覧は B<signal>(7)  を参照のこと。"
2100
2101 #. type: Plain text
2102 #: build/C/man2/killpg.2:78
2103 msgid ""
2104 "If I<pgrp> is 0, B<killpg>()  sends the signal to the calling process's "
2105 "process group.  (POSIX says: If I<pgrp> is less than or equal to 1, the "
2106 "behavior is undefined.)"
2107 msgstr ""
2108 "引き数 I<pgrp> に 0 を指定した場合には B<killpg>()  は呼び出し元のプロセスが"
2109 "属しているプロセス・グループに対してシグナルを送る。 (POSIX では以下のように"
2110 "記述されている: I<pgrp> が 1 以下である場合、動作は未定義である。)"
2111
2112 #. type: Plain text
2113 #: build/C/man2/killpg.2:89
2114 msgid ""
2115 "For a process to have permission to send a signal it must either be "
2116 "privileged (under Linux: have the B<CAP_KILL> capability), or the real or "
2117 "effective user ID of the sending process must equal the real or saved set-"
2118 "user-ID of the target process.  In the case of B<SIGCONT> it suffices when "
2119 "the sending and receiving processes belong to the same session."
2120 msgstr ""
2121 "プロセスがシグナルを送信する許可を持つためには、 プロセスが特権 (Linux では "
2122 "B<CAP_KILL> ケーパビリティ (capability)) を持つか、 送信元プロセスの実ユー"
2123 "ザー ID または実効ユーザー ID が 送信先プロセスの実 set-user-ID または保存 "
2124 "set-user-ID と 等しくなければならない。 B<SIGCONT> の場合、送信プロセスと受信"
2125 "プロセスが 同じセッションに属していれば十分である。"
2126
2127 #. type: Plain text
2128 #: build/C/man2/killpg.2:99
2129 msgid "I<sig> is not a valid signal number."
2130 msgstr "I<sig> で指定された値は無効なシグナル番号である。"
2131
2132 #. type: Plain text
2133 #: build/C/man2/killpg.2:107
2134 msgid "No process can be found in the process group specified by I<pgrp>."
2135 msgstr ""
2136 "I<pgrp> で指定されたプロセス・グループに属するプロセスが存在しなかった。"
2137
2138 #. type: Plain text
2139 #: build/C/man2/killpg.2:111
2140 msgid ""
2141 "The process group was given as 0 but the sending process does not have a "
2142 "process group."
2143 msgstr ""
2144 "プロセス・グループとして 0 が指定されたが、送信プロセスは プロセス・グループ"
2145 "を持っていない。"
2146
2147 #. type: Plain text
2148 #: build/C/man2/killpg.2:115
2149 msgid ""
2150 "SVr4, 4.4BSD (the B<killpg>()  function call first appeared in 4BSD), "
2151 "POSIX.1-2001."
2152 msgstr "SVr4, 4.4BSD (B<killpg>()  は 4BSD で初めて追加された), POSIX.1-2001。"
2153
2154 #. type: Plain text
2155 #: build/C/man2/killpg.2:129
2156 msgid ""
2157 "There are various differences between the permission checking in BSD-type "
2158 "systems and System V-type systems.  See the POSIX rationale for B<kill>().  "
2159 "A difference not mentioned by POSIX concerns the return value B<EPERM>: BSD "
2160 "documents that no signal is sent and B<EPERM> returned when the permission "
2161 "check failed for at least one target process, while POSIX documents B<EPERM> "
2162 "only when the permission check failed for all target processes."
2163 msgstr ""
2164 "BSD 系システムと System V 系システムでは、 許可のチェックに様々な違いがあ"
2165 "る。 B<kill>(2)  についての POSIX の原理 (rationale) を参照すること。 POSIX "
2166 "で記述されていない違いとしては、返り値 B<EPERM> がある。 BSD では「送信先プロ"
2167 "セスの許可のチェックが 1 つでも失敗した場合は、 シグナルが送信されず、 "
2168 "B<EPERM> が返される」と記述されている。 POSIX では「送信先プロセスの許可の"
2169 "チェックが全て失敗した場合にのみ、 B<EPERM> が返される」と記述されている。"
2170
2171 #. type: Plain text
2172 #: build/C/man2/killpg.2:134
2173 msgid ""
2174 "On Linux, B<killpg>()  is implemented as a library function that makes the "
2175 "call I<kill(-pgrp,\\ sig)>."
2176 msgstr ""
2177 "Linux では、 B<killpg>()  はライブラリ関数として実装されており、 I<kill(-"
2178 "pgrp,\\ sig)> の呼び出しが行われる。"
2179
2180 #. type: Plain text
2181 #: build/C/man2/killpg.2:140
2182 msgid ""
2183 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<capabilities>(7), B<credentials>"
2184 "(7)"
2185 msgstr ""
2186 "B<getpgrp>(2), B<kill>(2), B<signal>(2), B<credentials>(7), B<capabilities>"
2187 "(7)"
2188
2189 #. type: TH
2190 #: build/C/man2/pause.2:30
2191 #, no-wrap
2192 msgid "PAUSE"
2193 msgstr "PAUSE"
2194
2195 #. type: TH
2196 #: build/C/man2/pause.2:30
2197 #, no-wrap
2198 msgid "2008-10-06"
2199 msgstr "2008-10-06"
2200
2201 #. type: Plain text
2202 #: build/C/man2/pause.2:33
2203 msgid "pause - wait for signal"
2204 msgstr "pause - シグナルを待つ"
2205
2206 #. type: Plain text
2207 #: build/C/man2/pause.2:35
2208 msgid "B<#include E<lt>unistd.hE<gt>>"
2209 msgstr "B<#include E<lt>unistd.hE<gt>>"
2210
2211 #. type: Plain text
2212 #: build/C/man2/pause.2:37
2213 msgid "B<int pause(void);>"
2214 msgstr "B<int pause(void);>"
2215
2216 #. type: Plain text
2217 #: build/C/man2/pause.2:42
2218 msgid ""
2219 "B<pause>()  causes the calling process (or thread) to sleep until a signal "
2220 "is delivered that either terminates the process or causes the invocation of "
2221 "a signal-catching function."
2222 msgstr ""
2223 "B<pause>()  は、呼び出したプロセス (またはスレッド) を、 そのプロセスを終了さ"
2224 "せたり、シグナル捕捉関数が起動されるような シグナルが配送されるまで、スリープ"
2225 "させる。"
2226
2227 #.  .BR ERESTARTNOHAND .
2228 #. type: Plain text
2229 #: build/C/man2/pause.2:53
2230 msgid ""
2231 "B<pause>()  returns only when a signal was caught and the signal-catching "
2232 "function returned.  In this case B<pause>()  returns -1, and I<errno> is set "
2233 "to B<EINTR>."
2234 msgstr ""
2235 "B<pause>()  が返るのは、シグナルを受け取りシグナル捕獲関数から返った場合だけ"
2236 "である。 この場合は B<pause>()  は -1 を返し、 I<errno> に B<EINTR> が設定さ"
2237 "れる。"
2238
2239 #. type: TP
2240 #: build/C/man2/pause.2:54 build/C/man2/sigsuspend.2:81
2241 #: build/C/man2/sigwaitinfo.2:123 build/C/man2/wait.2:410
2242 #, no-wrap
2243 msgid "B<EINTR>"
2244 msgstr "B<EINTR>"
2245
2246 #. type: Plain text
2247 #: build/C/man2/pause.2:57
2248 msgid "a signal was caught and the signal-catching function returned."
2249 msgstr "シグナルを受け取り、シグナル捕獲関数から帰ってきた。"
2250
2251 #. type: Plain text
2252 #: build/C/man2/pause.2:64
2253 msgid "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2254 msgstr "B<kill>(2), B<select>(2), B<signal>(2), B<sigsuspend>(2)"
2255
2256 #. type: TH
2257 #: build/C/man2/prctl.2:52
2258 #, no-wrap
2259 msgid "PRCTL"
2260 msgstr "PRCTL"
2261
2262 #. type: TH
2263 #: build/C/man2/prctl.2:52
2264 #, fuzzy, no-wrap
2265 #| msgid "2009-02-20"
2266 msgid "2014-02-22"
2267 msgstr "2009-02-20"
2268
2269 #. type: Plain text
2270 #: build/C/man2/prctl.2:55
2271 msgid "prctl - operations on a process"
2272 msgstr "prctl - プロセスの操作を行なう"
2273
2274 #. type: Plain text
2275 #: build/C/man2/prctl.2:58
2276 #, no-wrap
2277 msgid "B<#include E<lt>sys/prctl.hE<gt>>\n"
2278 msgstr "B<#include E<lt>sys/prctl.hE<gt>>\n"
2279
2280 #. type: Plain text
2281 #: build/C/man2/prctl.2:61
2282 #, no-wrap
2283 msgid ""
2284 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2285 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2286 msgstr ""
2287 "B<int prctl(int >I<option>B<, unsigned long >I<arg2>B<, unsigned long >I<arg3>B<,>\n"
2288 "B<          unsigned long >I<arg4>B<, unsigned long >I<arg5>B<);>\n"
2289
2290 #. type: Plain text
2291 #: build/C/man2/prctl.2:68
2292 msgid ""
2293 "B<prctl>()  is called with a first argument describing what to do (with "
2294 "values defined in I<E<lt>linux/prctl.hE<gt>>), and further arguments with a "
2295 "significance depending on the first one.  The first argument can be:"
2296 msgstr ""
2297 "B<prctl>()  の動作は最初の引き数によって決定される (この値は I<E<lt>linux/"
2298 "prctl.hE<gt>> に定義されている)。 残りの引き数は最初の引き数によって変化す"
2299 "る。 一番目の引き数として以下のものを指定できる:"
2300
2301 #. type: TP
2302 #: build/C/man2/prctl.2:68
2303 #, no-wrap
2304 msgid "B<PR_CAPBSET_READ> (since Linux 2.6.25)"
2305 msgstr "B<PR_CAPBSET_READ> (Linux 2.6.25 以降)"
2306
2307 #. type: Plain text
2308 #: build/C/man2/prctl.2:80
2309 msgid ""
2310 "Return (as the function result) 1 if the capability specified in I<arg2> is "
2311 "in the calling thread's capability bounding set, or 0 if it is not.  (The "
2312 "capability constants are defined in I<E<lt>linux/capability.hE<gt>>.)  The "
2313 "capability bounding set dictates whether the process can receive the "
2314 "capability through a file's permitted capability set on a subsequent call to "
2315 "B<execve>(2)."
2316 msgstr ""
2317 "で指定されたケーパビリティが呼び出したスレッドのケーパビリティ バインディング"
2318 "セット (capability bounding set) に含まれている場合、 (関数の返り値として) 1 "
2319 "を返し、そうでない場合 0 を返す (ケーパビリティ定数は I<E<lt>linux/"
2320 "capability.hE<gt>> で定義されている)。 ケーパビリティバウンディングセット"
2321 "は、 B<execve>(2)  を呼び出した際に、ファイルの許可 (permitted) ケーパビリ"
2322 "ティの中で そのプロセスが獲得できるケーパビリティを指示するものである。"
2323
2324 #. type: Plain text
2325 #: build/C/man2/prctl.2:85
2326 msgid ""
2327 "If the capability specified in I<arg2> is not valid, then the call fails "
2328 "with the error B<EINVAL>."
2329 msgstr ""
2330 "I<arg2> に指定されたケーパビリティが有効でない場合、 呼び出しはエラー "
2331 "B<EINVAL> で失敗する。"
2332
2333 #. type: TP
2334 #: build/C/man2/prctl.2:85
2335 #, no-wrap
2336 msgid "B<PR_CAPBSET_DROP> (since Linux 2.6.25)"
2337 msgstr "B<PR_CAPBSET_DROP> (Linux 2.6.25 以降)"
2338
2339 #. type: Plain text
2340 #: build/C/man2/prctl.2:94
2341 msgid ""
2342 "If the calling thread has the B<CAP_SETPCAP> capability, then drop the "
2343 "capability specified by I<arg2> from the calling thread's capability "
2344 "bounding set.  Any children of the calling thread will inherit the newly "
2345 "reduced bounding set."
2346 msgstr ""
2347 "呼び出したスレッドがケーパビリティ B<CAP_SETPCAP> を持っている場合、 呼び出し"
2348 "たスレッドのケーパビリティバウンディングセットから I<arg2> で指定されたケーパ"
2349 "ビリティを外す。 呼び出したスレッドの子プロセスは変更後のバウンディングセット"
2350 "を 継承する。"
2351
2352 #. type: Plain text
2353 #: build/C/man2/prctl.2:106
2354 msgid ""
2355 "The call fails with the error: B<EPERM> if the calling thread does not have "
2356 "the B<CAP_SETPCAP>; B<EINVAL> if I<arg2> does not represent a valid "
2357 "capability; or B<EINVAL> if file capabilities are not enabled in the kernel, "
2358 "in which case bounding sets are not supported."
2359 msgstr ""
2360 "呼び出したスレッドが B<CAP_SETPCAP> を持っていない場合、呼び出しはエラー "
2361 "B<EPERM> で失敗する。 I<arg2> に指定されたケーパビリティが有効でない場合、 "
2362 "B<EINVAL> で失敗する。 ファイルケーパビリティがカーネルで有効になっていない場"
2363 "合 (この場合にはバウンディングセットがサポートされない)、 B<EINVAL> で失敗す"
2364 "る。"
2365
2366 #. type: TP
2367 #: build/C/man2/prctl.2:106
2368 #, no-wrap
2369 msgid "B<PR_SET_CHILD_SUBREAPER> (since Linux 3.4)"
2370 msgstr "B<PR_SET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2371
2372 #.  commit ebec18a6d3aa1e7d84aab16225e87fd25170ec2b
2373 #. type: Plain text
2374 #: build/C/man2/prctl.2:131
2375 msgid ""
2376 "If I<arg2> is nonzero, set the \"child subreaper\" attribute of the calling "
2377 "process; if I<arg2> is zero, unset the attribute.  When a process is marked "
2378 "as a child subreaper, all of the children that it creates, and their "
2379 "descendants, will be marked as having a subreaper.  In effect, a subreaper "
2380 "fulfills the role of B<init>(1)  for its descendant processes.  Upon "
2381 "termination of a process that is orphaned (i.e., its immediate parent has "
2382 "already terminated)  and marked as having a subreaper, the nearest still "
2383 "living ancestor subreaper will receive a B<SIGCHLD> signal and be able to "
2384 "B<wait>(2)  on the process to discover its termination status."
2385 msgstr ""
2386
2387 #. type: TP
2388 #: build/C/man2/prctl.2:131
2389 #, no-wrap
2390 msgid "B<PR_GET_CHILD_SUBREAPER> (since Linux 3.4)"
2391 msgstr "B<PR_GET_CHILD_SUBREAPER> (Linux 3.4 以降)"
2392
2393 #. type: Plain text
2394 #: build/C/man2/prctl.2:136
2395 msgid ""
2396 "Return the \"child subreaper\" setting of the caller, in the location "
2397 "pointed to by I<(int\\ *) arg2>."
2398 msgstr ""
2399
2400 #. type: TP
2401 #: build/C/man2/prctl.2:136
2402 #, no-wrap
2403 msgid "B<PR_SET_DUMPABLE> (since Linux 2.3.20)"
2404 msgstr "B<PR_SET_DUMPABLE> (Linux 2.3.20 以降)"
2405
2406 #.  See http://marc.theaimsgroup.com/?l=linux-kernel&m=115270289030630&w=2
2407 #.  Subject:    Fix prctl privilege escalation (CVE-2006-2451)
2408 #.  From:       Marcel Holtmann <marcel () holtmann ! org>
2409 #.  Date:       2006-07-12 11:12:00
2410 #. type: Plain text
2411 #: build/C/man2/prctl.2:162
2412 msgid ""
2413 "Set the state of the flag determining whether core dumps are produced for "
2414 "the calling process upon delivery of a signal whose default behavior is to "
2415 "produce a core dump.  (Normally, this flag is set for a process by default, "
2416 "but it is cleared when a set-user-ID or set-group-ID program is executed and "
2417 "also by various system calls that manipulate process UIDs and GIDs).  In "
2418 "kernels up to and including 2.6.12, I<arg2> must be either 0 (process is not "
2419 "dumpable) or 1 (process is dumpable).  Between kernels 2.6.13 and 2.6.17, "
2420 "the value 2 was also permitted, which caused any binary which normally would "
2421 "not be dumped to be dumped readable by root only; for security reasons, this "
2422 "feature has been removed.  (See also the description of I</proc/sys/fs/"
2423 "suid_dumpable> in B<proc>(5).)  Processes that are not dumpable can not be "
2424 "attached via B<ptrace>(2)  B<PTRACE_ATTACH>."
2425 msgstr ""
2426 "(Linux 2.3.20 以降) デフォルトの振る舞いではコアダンプを引き起こすよう\n"
2427 "なシグナルを受信したときに、呼び出し元のプロセスでコアダンプを\n"
2428 "生成するかどうかを決定するフラグを\n"
2429 "設定する (通常このフラグは、デフォルトではセットされているが、\n"
2430 "set-user-ID あるいは set-group-ID プログラムが実行されたり、 さまざまな\n"
2431 "システムコールによってプロセスの UID や GID が操作されたときに クリアさ\n"
2432 "れる)。 2.6.12 以前のカーネルでは、 I<arg2> は 0 (プロセスはダンプ不可)\n"
2433 "あるいは 1 (プロセスはダンプ可能) の どちらかでなければならない。\n"
2434 "2.6.13 から 2.6.17 までのカーネルでは、値 2 も認められていた。 この値を\n"
2435 "指定すると、通常はダンプされないバイナリが root だけが 読み込み可能な形\n"
2436 "でダンプされた。 セキュリティ上の理由から、この機能は削除された\n"
2437 "(B<proc>(5) の I</proc/sys/fs/suid_dumpable> の説明も参照)。\n"
2438 "ダンプ不可のプロセスを B<ptrace>(2) B<PTRACE_ATTACH> 経由で接続すること\n"
2439 "はできない。"
2440
2441 #. type: TP
2442 #: build/C/man2/prctl.2:162
2443 #, no-wrap
2444 msgid "B<PR_GET_DUMPABLE> (since Linux 2.3.20)"
2445 msgstr "B<PR_GET_DUMPABLE> (Linux 2.3.20 以降)"
2446
2447 #.  Since Linux 2.6.13, the dumpable flag can have the value 2,
2448 #.  but in 2.6.13 PR_GET_DUMPABLE simply returns 1 if the dumpable
2449 #.  flags has a nonzero value.  This was fixed in 2.6.14.
2450 #. type: Plain text
2451 #: build/C/man2/prctl.2:169
2452 msgid ""
2453 "Return (as the function result) the current state of the calling process's "
2454 "dumpable flag."
2455 msgstr ""
2456 "(Linux 2.3.20 以降)  呼び出し元プロセスにおけるダンプ可能フラグの 現在の状態"
2457 "を (関数の返り値として) 返す。"
2458
2459 #. type: TP
2460 #: build/C/man2/prctl.2:169
2461 #, no-wrap
2462 msgid "B<PR_SET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2463 msgstr "B<PR_SET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2464
2465 #.  Respectively 0, 1, 2
2466 #. type: Plain text
2467 #: build/C/man2/prctl.2:179
2468 msgid ""
2469 "Set the endian-ness of the calling process to the value given in I<arg2>, "
2470 "which should be one of the following: B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2471 "or B<PR_ENDIAN_PPC_LITTLE> (PowerPC pseudo little endian)."
2472 msgstr ""
2473 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<arg2> で指定された値"
2474 "に設定する。 指定できる値は B<PR_ENDIAN_BIG>, B<PR_ENDIAN_LITTLE>, "
2475 "B<PR_ENDIAN_PPC_LITTLE> (PowerPC 擬似リトルエンディアン)  のいずれか一つであ"
2476 "る。"
2477
2478 #. type: TP
2479 #: build/C/man2/prctl.2:179
2480 #, no-wrap
2481 msgid "B<PR_GET_ENDIAN> (since Linux 2.6.18, PowerPC only)"
2482 msgstr "B<PR_GET_ENDIAN> (Linux 2.6.18 以降、PowerPC のみ)"
2483
2484 #. type: Plain text
2485 #: build/C/man2/prctl.2:184
2486 msgid ""
2487 "Return the endian-ness of the calling process, in the location pointed to by "
2488 "I<(int\\ *) arg2>."
2489 msgstr ""
2490 "呼び出し元プロセスのエンディアン設定 (endian-ness) を I<(int\\ *) arg2> が指"
2491 "す場所に格納して返す。"
2492
2493 #. type: TP
2494 #: build/C/man2/prctl.2:184
2495 #, no-wrap
2496 msgid "B<PR_SET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2497 msgstr "B<PR_SET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2498
2499 #. type: Plain text
2500 #: build/C/man2/prctl.2:191
2501 msgid ""
2502 "Set floating-point emulation control bits to I<arg2>.  Pass "
2503 "B<PR_FPEMU_NOPRINT> to silently emulate fp operations accesses, or "
2504 "B<PR_FPEMU_SIGFPE> to not emulate fp operations and send B<SIGFPE> instead."
2505 msgstr ""
2506 "浮動小数点エミュレーション (floating-point emulation) 制御ビットを I<arg2> で"
2507 "指定された値に設定する。 指定できる値は B<PR_FPEMU_NOPRINT> (浮動小数点命令ア"
2508 "クセスを黙って エミュレートする) か B<PR_FPEMU_SIGFPE> (浮動小数点命令をエ"
2509 "ミュレートせず、 代わりに B<SIGFPE> を送る) である。"
2510
2511 #. type: TP
2512 #: build/C/man2/prctl.2:191
2513 #, no-wrap
2514 msgid "B<PR_GET_FPEMU> (since Linux 2.4.18, 2.5.9, only on ia64)"
2515 msgstr "B<PR_GET_FPEMU> (Linux 2.4.18 以降, 2.5.9, ia64 のみ)"
2516
2517 #. type: Plain text
2518 #: build/C/man2/prctl.2:196
2519 msgid ""
2520 "Return floating-point emulation control bits, in the location pointed to by "
2521 "I<(int\\ *) arg2>."
2522 msgstr ""
2523 "浮動小数点エミュレーション制御ビットの値を I<(int\\ *) arg2> が指す場所に格納"
2524 "して返す。"
2525
2526 #. type: TP
2527 #: build/C/man2/prctl.2:196
2528 #, no-wrap
2529 msgid "B<PR_SET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2530 msgstr "B<PR_SET_FPEXC> (Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2531
2532 #. type: Plain text
2533 #: build/C/man2/prctl.2:209
2534 msgid ""
2535 "Set floating-point exception mode to I<arg2>.  Pass B<PR_FP_EXC_SW_ENABLE> "
2536 "to use FPEXC for FP exception enables, B<PR_FP_EXC_DIV> for floating-point "
2537 "divide by zero, B<PR_FP_EXC_OVF> for floating-point overflow, "
2538 "B<PR_FP_EXC_UND> for floating-point underflow, B<PR_FP_EXC_RES> for floating-"
2539 "point inexact result, B<PR_FP_EXC_INV> for floating-point invalid operation, "
2540 "B<PR_FP_EXC_DISABLED> for FP exceptions disabled, B<PR_FP_EXC_NONRECOV> for "
2541 "async nonrecoverable exception mode, B<PR_FP_EXC_ASYNC> for async "
2542 "recoverable exception mode, B<PR_FP_EXC_PRECISE> for precise exception mode."
2543 msgstr ""
2544 "浮動小数点例外モード (floating-point exception mode) を I<arg2> で指定された"
2545 "値に設定する。 指定できるのは以下の値である: B<PR_FP_EXC_SW_ENABLE> (FPEXC で"
2546 "浮動小数点例外を有効にする)、 B<PR_FP_EXC_DIV> (0 除算)、 B<PR_FP_EXC_OVF> "
2547 "(オーバーフロー)、 B<PR_FP_EXC_UND> (アンダーフロー)、 B<PR_FP_EXC_RES> (不正"
2548 "確な結果 (inexact result))、 B<PR_FP_EXC_INV> (不正な命令 (invalid "
2549 "operation))、 B<PR_FP_EXC_DISABLED> (浮動小数点例外を無効にする)、 "
2550 "B<PR_FP_EXC_NONRECOV> (async nonrecoverable exception mode)、 "
2551 "B<PR_FP_EXC_ASYNC> (async recoverable exception mode)、 B<PR_FP_EXC_PRECISE> "
2552 "(precise exception mode)。"
2553
2554 #. type: TP
2555 #: build/C/man2/prctl.2:209
2556 #, no-wrap
2557 msgid "B<PR_GET_FPEXC> (since Linux 2.4.21, 2.5.32, only on PowerPC)"
2558 msgstr "B<PR_GET_FPEXC>(Linux 2.4.21 および 2.5.32 以降、PowerPC のみ)"
2559
2560 #. type: Plain text
2561 #: build/C/man2/prctl.2:214
2562 msgid ""
2563 "Return floating-point exception mode, in the location pointed to by I<(int\\ "
2564 "*) arg2>."
2565 msgstr ""
2566 "浮動小数点例外モードの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
2567
2568 #. type: TP
2569 #: build/C/man2/prctl.2:214
2570 #, no-wrap
2571 msgid "B<PR_SET_KEEPCAPS> (since Linux 2.2.18)"
2572 msgstr "B<PR_SET_KEEPCAPS> (Linux 2.2.18 以降)"
2573
2574 #. type: Plain text
2575 #: build/C/man2/prctl.2:232
2576 msgid ""
2577 "Set the state of the thread's \"keep capabilities\" flag, which determines "
2578 "whether the threads's permitted capability set is cleared when a change is "
2579 "made to the threads's user IDs such that the threads's real UID, effective "
2580 "UID, and saved set-user-ID all become nonzero when at least one of them "
2581 "previously had the value 0.  By default, the permitted capability set is "
2582 "cleared when such a change is made; setting the \"keep capabilities\" flag "
2583 "prevents it from being cleared.  I<arg2> must be either 0 (permitted "
2584 "capabilities are cleared)  or 1 (permitted capabilities are kept).  (A "
2585 "thread's I<effective> capability set is always cleared when such a "
2586 "credential change is made, regardless of the setting of the \"keep "
2587 "capabilities\" flag.)  The \"keep capabilities\" value will be reset to 0 on "
2588 "subsequent calls to B<execve>(2)."
2589 msgstr ""
2590 "スレッドの「ケーパビリティ保持」フラグを設定する。\n"
2591 "このフラグは、スレッドの実 UID、実効 UID、保存 set-user-ID のうち少なく\n"
2592 "とも一つが 0 であった状態から、これら全てが 0 以外に変更されたとき、\n"
2593 "スレッドの許可ケーパビリティ集合がクリアされるかどうかを決定する。\n"
2594 "デフォルトでは、このような変更が行われた場合、許可ケーパビリティセット\n"
2595 "はクリアされる。「ケーパビリティ保持」フラグを設定すると、\n"
2596 "許可ケーパビリティセットはクリアされなくなる。\n"
2597 "I<arg2> は 0 (許可ケーパビリティをクリアする) か 1 (許可ケーパビリティ\n"
2598 "を保持する) の どちらかでなければならない。\n"
2599 "(このような ID の変更が行われた場合、「ケーパビリティ保持」フラグの設定\n"
2600 "に関わらず、スレッドのI<実効>ケーパビリティセットは常にクリアされる。)\n"
2601 "B<execve>(2) が呼び出されると、「ケーパビリティ保持」フラグは 0\n"
2602 "にリセットされる。"
2603
2604 #. type: TP
2605 #: build/C/man2/prctl.2:232
2606 #, no-wrap
2607 msgid "B<PR_GET_KEEPCAPS> (since Linux 2.2.18)"
2608 msgstr "B<PR_GET_KEEPCAPS> (Linux 2.2.18 以降)"
2609
2610 #. type: Plain text
2611 #: build/C/man2/prctl.2:236
2612 msgid ""
2613 "Return (as the function result) the current state of the calling threads's "
2614 "\"keep capabilities\" flag."
2615 msgstr ""
2616 "呼び出し元スレッドにおける「ケーパビリティ保持」フラグの 現在の状態を (関数の"
2617 "返り値として) 返す。"
2618
2619 #. type: TP
2620 #: build/C/man2/prctl.2:236
2621 #, no-wrap
2622 msgid "B<PR_SET_NAME> (since Linux 2.6.9)"
2623 msgstr "B<PR_SET_NAME> (Linux 2.6.9 以降)"
2624
2625 #.  TASK_COMM_LEN in include/linux/sched.h
2626 #. type: Plain text
2627 #: build/C/man2/prctl.2:253
2628 msgid ""
2629 "Set the name of the calling thread, using the value in the location pointed "
2630 "to by I<(char\\ *) arg2>.  The name can be up to 16 bytes long, and should "
2631 "be null-terminated if it contains fewer bytes.  This is the same attribute "
2632 "that can be set via B<pthread_setname_np>(3)  and retrieved using "
2633 "B<pthread_getname_np>(3).  The attribute is likewise accessible via I</proc/"
2634 "self/task/[tid]/comm>, where I<tid> is the name of the calling thread."
2635 msgstr ""
2636 "呼び出し元スレッドのプロセス名を I<(char\\ *) arg2> が指す場所に格納された値"
2637 "を使って設定する。 名前は最大で 16 バイトであり、 それより少ないバイト数の場"
2638 "合は NULL で終端すべきである。 これは、 B<pthread_setname_np>(3) で設定で"
2639 "き、 B<pthread_getname_np>(3) で取得できるのと同じ属性である。 同様に、 "
2640 "I<tid> が呼び出し元スレッドの ID の場合、 この属性は I</proc/self/task/[tid]/"
2641 "comm> 経由でもアクセス可能である。"
2642
2643 #. type: TP
2644 #: build/C/man2/prctl.2:253
2645 #, no-wrap
2646 msgid "B<PR_GET_NAME> (since Linux 2.6.11)"
2647 msgstr "B<PR_GET_NAME> (Linux 2.6.11 以降)"
2648
2649 #. type: Plain text
2650 #: build/C/man2/prctl.2:260
2651 msgid ""
2652 "Return the name of the calling thread, in the buffer pointed to by I<(char\\ "
2653 "*) arg2>.  The buffer should allow space for up to 16 bytes; the returned "
2654 "string will be null-terminated if it is shorter than that."
2655 msgstr ""
2656 "呼び出し元スレッドの名前を I<(char\\ *) arg2> が指す場所に格納して返す。 バッ"
2657 "ファは最大で 16 バイトを格納できるようにすべきである。 返される文字列は、長さ"
2658 "が 16 バイトより短い場合は NULL 終端される。"
2659
2660 #. type: TP
2661 #: build/C/man2/prctl.2:260
2662 #, no-wrap
2663 msgid "B<PR_SET_NO_NEW_PRIVS> (since Linux 3.5)"
2664 msgstr "B<PR_SET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2665
2666 #. type: Plain text
2667 #: build/C/man2/prctl.2:283
2668 msgid ""
2669 "Set the calling process's I<no_new_privs> bit to the value in I<arg2>.  With "
2670 "I<no_new_privs> set to 1, B<execve>(2)  promises not to grant privileges to "
2671 "do anything that could not have been done without the B<execve>(2)  call "
2672 "(for example, rendering the set-user-ID and set-group-ID permission bits, "
2673 "and file capabilities non-functional).  Once set, this bit cannot be unset.  "
2674 "The setting of this bit is inherited by children created by B<fork>(2)  and "
2675 "B<clone>(2), and preserved across B<execve>(2)."
2676 msgstr ""
2677
2678 #. type: Plain text
2679 #: build/C/man2/prctl.2:286
2680 msgid ""
2681 "For more information, see the kernel source file I<Documentation/prctl/"
2682 "no_new_privs.txt>."
2683 msgstr ""
2684
2685 #. type: TP
2686 #: build/C/man2/prctl.2:286
2687 #, no-wrap
2688 msgid "B<PR_GET_NO_NEW_PRIVS> (since Linux 3.5)"
2689 msgstr "B<PR_GET_NO_NEW_PRIVS> (Linux 3.5 以降)"
2690
2691 #. type: Plain text
2692 #: build/C/man2/prctl.2:297
2693 msgid ""
2694 "Return (as the function result) the value of the I<no_new_privs> bit for the "
2695 "current process.  A value of 0 indicates the regular B<execve>(2)  "
2696 "behavior.  A value of 1 indicates B<execve>(2)  will operate in the "
2697 "privilege-restricting mode described above."
2698 msgstr ""
2699
2700 #. type: TP
2701 #: build/C/man2/prctl.2:297
2702 #, no-wrap
2703 msgid "B<PR_SET_PDEATHSIG> (since Linux 2.1.57)"
2704 msgstr "B<PR_SET_PDEATHSIG> (Linux 2.1.57 以降)"
2705
2706 #. type: Plain text
2707 #: build/C/man2/prctl.2:310
2708 #, fuzzy
2709 #| msgid ""
2710 #| "Set the parent process death signal of the calling process to I<arg2> "
2711 #| "(either a signal value in the range 1..maxsig, or 0 to clear).  This is "
2712 #| "the signal that the calling process will get when its parent dies.  This "
2713 #| "value is cleared for the child of a B<fork>(2)  and (since Linux 2.4.36 / "
2714 #| "2.6.23)  when executing a set-user-ID or set-group-ID binary."
2715 msgid ""
2716 "Set the parent process death signal of the calling process to I<arg2> "
2717 "(either a signal value in the range 1..maxsig, or 0 to clear).  This is the "
2718 "signal that the calling process will get when its parent dies.  This value "
2719 "is cleared for the child of a B<fork>(2)  and (since Linux 2.4.36 / 2.6.23)  "
2720 "when executing a set-user-ID or set-group-ID binary.  This value is "
2721 "preserved across B<execve>(2)."
2722 msgstr ""
2723 "親プロセス死亡シグナル (parent process death signal) を I<arg2> に設定\n"
2724 "する (設定できるシグナル値の範囲は 1..maxsig であり、0 は通知の解除であ\n"
2725 "る)。 呼び出し元プロセスの親プロセスが死んだ際に、ここで設定した値が シ\n"
2726 "グナルとして通知される。この値は B<fork>(2) の子プロセスでは解除される。\n"
2727 "(Linux 2.4.36 以降および 2.6.23 以降では) set-user-ID もしくは\n"
2728 "set-group-ID されたバイナリを実行した場合にも、このフラグは解除される。"
2729
2730 #. type: TP
2731 #: build/C/man2/prctl.2:310
2732 #, no-wrap
2733 msgid "B<PR_GET_PDEATHSIG> (since Linux 2.3.15)"
2734 msgstr "B<PR_GET_PDEATHSIG> (Linux 2.3.15 以降)"
2735
2736 #. type: Plain text
2737 #: build/C/man2/prctl.2:315
2738 msgid ""
2739 "Return the current value of the parent process death signal, in the location "
2740 "pointed to by I<(int\\ *) arg2>."
2741 msgstr ""
2742 "親プロセス死亡シグナルの現在の値を I<(int\\ *) arg2> が指す場所に格納して返"
2743 "す。"
2744
2745 #. type: TP
2746 #: build/C/man2/prctl.2:315
2747 #, no-wrap
2748 msgid "B<PR_SET_PTRACER> (since Linux 3.4)"
2749 msgstr "B<PR_SET_PTRACER> (Linux 3.4 以降)"
2750
2751 #.  commit 2d514487faf188938a4ee4fb3464eeecfbdcf8eb
2752 #.  commit bf06189e4d14641c0148bea16e9dd24943862215
2753 #. type: Plain text
2754 #: build/C/man2/prctl.2:340
2755 msgid ""
2756 "This is meaningful only when the Yama LSM is enabled and in mode 1 "
2757 "(\"restricted ptrace\", visible via I</proc/sys/kernel/yama/ptrace_scope>).  "
2758 "When a \"ptracer process ID\" is passed in I<arg2>, the caller is declaring "
2759 "that the ptracer process can B<ptrace>(2)  the calling process as if it were "
2760 "a direct process ancestor.  Each B<PR_SET_PTRACER> operation replaces the "
2761 "previous \"ptracer process ID\".  Employing B<PR_SET_PTRACER> with I<arg2> "
2762 "set to 0 clears the caller's \"ptracer process ID\".  If I<arg2> is "
2763 "B<PR_SET_PTRACER_ANY>, the ptrace restrictions introduced by Yama are "
2764 "effectively disabled for the calling process."
2765 msgstr ""
2766
2767 #. type: Plain text
2768 #: build/C/man2/prctl.2:343
2769 msgid ""
2770 "For further information, see the kernel source file I<Documentation/security/"
2771 "Yama.txt>."
2772 msgstr ""
2773
2774 #. type: TP
2775 #: build/C/man2/prctl.2:343
2776 #, no-wrap
2777 msgid "B<PR_SET_SECCOMP> (since Linux 2.6.23)"
2778 msgstr "B<PR_SET_SECCOMP> (Linux 2.6.23 以降)"
2779
2780 #.  See http://thread.gmane.org/gmane.linux.kernel/542632
2781 #.  [PATCH 0 of 2] seccomp updates
2782 #.  andrea@cpushare.com
2783 #. type: Plain text
2784 #: build/C/man2/prctl.2:354
2785 msgid ""
2786 "Set the secure computing (seccomp) mode for the calling thread, to limit the "
2787 "available system calls.  The seccomp mode is selected via I<arg2>.  (The "
2788 "seccomp constants are defined in I<E<lt>linux/seccomp.hE<gt>>.)"
2789 msgstr ""
2790
2791 #. type: Plain text
2792 #: build/C/man2/prctl.2:375
2793 msgid ""
2794 "With I<arg2> set to B<SECCOMP_MODE_STRICT> the only system calls that the "
2795 "thread is permitted to make are B<read>(2), B<write>(2), B<_exit>(2), and "
2796 "B<sigreturn>(2).  Other system calls result in the delivery of a B<SIGKILL> "
2797 "signal.  Strict secure computing mode is useful for number-crunching "
2798 "applications that may need to execute untrusted byte code, perhaps obtained "
2799 "by reading from a pipe or socket.  This operation is available only if the "
2800 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2801 msgstr ""
2802 "I<arg2> を B<SECCOMP_MODE_STRICT> に設定すると、 そのスレッドが呼び出しを許可"
2803 "されるシステムコールは B<read>(2), B<write>(2), B<_exit>(2), B<sigreturn>(2) "
2804 "だけになる。 それ以外のシステムコールを呼び出すと、シグナル B<SIGKILL> が配送"
2805 "される。 パイプやソケットから読み込んだ、 信頼できないバイトコードを実行する"
2806 "必要がある大量の演算を行うアプリケーションにおいて、 strict secure computing "
2807 "モードは役立つ。 この操作は利用できるのは、 カーネルが B<CONFIG_SECCOMP> を有"
2808 "効にして作成されている場合だけである。"
2809
2810 #. type: Plain text
2811 #: build/C/man2/prctl.2:390
2812 msgid ""
2813 "With I<arg2> set to B<SECCOMP_MODE_FILTER> (since Linux 3.5)  the system "
2814 "calls allowed are defined by a pointer to a Berkeley Packet Filter passed in "
2815 "I<arg3>.  This argument is a pointer to I<struct sock_fprog>; it can be "
2816 "designed to filter arbitrary system calls and system call arguments.  This "
2817 "mode is available only if the kernel is configured with "
2818 "B<CONFIG_SECCOMP_FILTER> enabled."
2819 msgstr ""
2820
2821 #. type: Plain text
2822 #: build/C/man2/prctl.2:405
2823 msgid ""
2824 "If B<SECCOMP_MODE_FILTER> filters permit B<fork>(2), then the seccomp mode "
2825 "is inherited by children created by B<fork>(2); if B<execve>(2)  is "
2826 "permitted, then the seccomp mode is preserved across B<execve>(2).  If the "
2827 "filters permit B<prctl>()  calls, then additional filters can be added; they "
2828 "are run in order until the first non-allow result is seen."
2829 msgstr ""
2830
2831 #. type: Plain text
2832 #: build/C/man2/prctl.2:408
2833 msgid ""
2834 "For further information, see the kernel source file I<Documentation/prctl/"
2835 "seccomp_filter.txt>."
2836 msgstr ""
2837
2838 #. type: TP
2839 #: build/C/man2/prctl.2:408
2840 #, no-wrap
2841 msgid "B<PR_GET_SECCOMP> (since Linux 2.6.23)"
2842 msgstr "B<PR_GET_SECCOMP> (Linux 2.6.23 以降)"
2843
2844 #. type: Plain text
2845 #: build/C/man2/prctl.2:424
2846 #, fuzzy
2847 #| msgid ""
2848 #| "Return the secure computing mode of the calling thread.  If the caller is "
2849 #| "not in secure computing mode, this operation returns 0; if the caller is "
2850 #| "in strict secure computing mode, then the B<prctl>()  call will cause a "
2851 #| "B<SIGKILL> signal to be sent to the process.  If the caller is in filter "
2852 #| "mode, and this system call is allowed by the seccomp filters, it returns "
2853 #| "2.  This operation is available only if the kernel is configured with "
2854 #| "B<CONFIG_SECCOMP> enabled."
2855 msgid ""
2856 "Return (as the function result)  the secure computing mode of the calling "
2857 "thread.  If the caller is not in secure computing mode, this operation "
2858 "returns 0; if the caller is in strict secure computing mode, then the "
2859 "B<prctl>()  call will cause a B<SIGKILL> signal to be sent to the process.  "
2860 "If the caller is in filter mode, and this system call is allowed by the "
2861 "seccomp filters, it returns 2.  This operation is available only if the "
2862 "kernel is configured with B<CONFIG_SECCOMP> enabled."
2863 msgstr ""
2864 "呼び出したスレッドの secure computing モードを返す。 呼び出したスレッドが "
2865 "secure computing モードでなかった場合、 この操作は 0 を返す。 呼び出したス"
2866 "レッドが secure computing モードの場合、 B<prctl>()  を呼び出すとシグナル "
2867 "B<SIGKILL> がそのプロセスに送信される。 呼び出したスレッドがフィルタモード"
2868 "で、 このシステムコールが seccomp フィルタにより許可されている場合、 2 を返"
2869 "す。 この操作が利用できるのは、カーネルが B<CONFIG_SECCOMP> を有効にして作成"
2870 "されている場合だけである。"
2871
2872 #. type: TP
2873 #: build/C/man2/prctl.2:424
2874 #, no-wrap
2875 msgid "B<PR_SET_SECUREBITS> (since Linux 2.6.26)"
2876 msgstr "B<PR_SET_SECUREBITS> (Linux 2.6.26 以降)"
2877
2878 #. type: Plain text
2879 #: build/C/man2/prctl.2:430
2880 msgid ""
2881 "Set the \"securebits\" flags of the calling thread to the value supplied in "
2882 "I<arg2>.  See B<capabilities>(7)."
2883 msgstr ""
2884 "呼び出したスレッドの \"securebits\" フラグを I<arg2> で渡された値に設定す"
2885 "る。 B<capabilities>(7)  参照。"
2886
2887 #. type: TP
2888 #: build/C/man2/prctl.2:430
2889 #, no-wrap
2890 msgid "B<PR_GET_SECUREBITS> (since Linux 2.6.26)"
2891 msgstr "B<PR_GET_SECUREBITS> (Linux 2.6.26 以降)"
2892
2893 #. type: Plain text
2894 #: build/C/man2/prctl.2:436
2895 msgid ""
2896 "Return (as the function result)  the \"securebits\" flags of the calling "
2897 "thread.  See B<capabilities>(7)."
2898 msgstr ""
2899 "呼び出したスレッドの \"securebits\" フラグを (関数の返り値として) 返す。 "
2900 "B<capabilities>(7)  参照。"
2901
2902 #. type: TP
2903 #: build/C/man2/prctl.2:436
2904 #, no-wrap
2905 msgid "B<PR_GET_TID_ADDRESS> (since Linux 3.5)"
2906 msgstr "B<PR_GET_TID_ADDRESS> (Linux 3.5 以降)"
2907
2908 #.  commit 300f786b2683f8bb1ec0afb6e1851183a479c86d
2909 #. type: Plain text
2910 #: build/C/man2/prctl.2:451
2911 msgid ""
2912 "Retrieve the I<clear_child_tid> address set by B<set_tid_address>(2)  and "
2913 "the B<clone>(2)  B<CLONE_CHILD_CLEARTID> flag, in the location pointed to by "
2914 "I<(int\\ **)\\ arg2>.  This feature is available only if the kernel is built "
2915 "with the B<CONFIG_CHECKPOINT_RESTORE> option enabled."
2916 msgstr ""
2917
2918 #. type: TP
2919 #: build/C/man2/prctl.2:451
2920 #, no-wrap
2921 msgid "B<PR_SET_TIMERSLACK> (since Linux 2.6.28)"
2922 msgstr "B<PR_SET_TIMERSLACK> (Linux 2.6.28 以降)"
2923
2924 #.  See https://lwn.net/Articles/369549/
2925 #.  commit 6976675d94042fbd446231d1bd8b7de71a980ada
2926 #.  It seems that it's not possible to set the timer slack to zero;
2927 #.  The minimum value is 1? Seems a little strange.
2928 #. type: Plain text
2929 #: build/C/man2/prctl.2:470
2930 msgid ""
2931 "Set the current timer slack for the calling thread to the nanosecond value "
2932 "supplied in I<arg2>.  If I<arg2> is less than or equal to zero, reset the "
2933 "current timer slack to the thread's default timer slack value.  The timer "
2934 "slack is used by the kernel to group timer expirations for the calling "
2935 "thread that are close to one another; as a consequence, timer expirations "
2936 "for the thread may be up to the specified number of nanoseconds late (but "
2937 "will never expire early).  Grouping timer expirations can help reduce system "
2938 "power consumption by minimizing CPU wake-ups."
2939 msgstr ""
2940
2941 #.  List obtained by grepping for futex usage in glibc source
2942 #. type: Plain text
2943 #: build/C/man2/prctl.2:490
2944 msgid ""
2945 "The timer expirations affected by timer slack are those set by B<select>(2), "
2946 "B<pselect>(2), B<poll>(2), B<ppoll>(2), B<epoll_wait>(2), B<epoll_pwait>(2), "
2947 "B<clock_nanosleep>(2), B<nanosleep>(2), and B<futex>(2)  (and thus the "
2948 "library functions implemented via futexes, including "
2949 "B<pthread_cond_timedwait>(3), B<pthread_mutex_timedlock>(3), "
2950 "B<pthread_rwlock_timedrdlock>(3), B<pthread_rwlock_timedwrlock>(3), and "
2951 "B<sem_timedwait>(3))."
2952 msgstr ""
2953
2954 #. type: Plain text
2955 #: build/C/man2/prctl.2:494
2956 msgid ""
2957 "Timer slack is not applied to threads that are scheduled under a real-time "
2958 "scheduling policy (see B<sched_setscheduler>(2))."
2959 msgstr ""
2960
2961 #. type: Plain text
2962 #: build/C/man2/prctl.2:511
2963 msgid ""
2964 "Each thread has two associated timer slack values: a \"default\" value, and "
2965 "a \"current\" value.  The current value is the one that governs grouping of "
2966 "timer expirations.  When a new thread is created, the two timer slack values "
2967 "are made the same as the current value of the creating thread.  Thereafter, "
2968 "a thread can adjust its current timer slack value via B<PR_SET_TIMERSLACK> "
2969 "(the default value can't be changed).  The timer slack values of I<init> "
2970 "(PID 1), the ancestor of all processes, are 50,000 nanoseconds (50 "
2971 "microseconds).  The timer slack values are preserved across B<execve>(2)."
2972 msgstr ""
2973
2974 #. type: TP
2975 #: build/C/man2/prctl.2:511
2976 #, no-wrap
2977 msgid "B<PR_GET_TIMERSLACK> (since Linux 2.6.28)"
2978 msgstr "B<PR_GET_TIMERSLACK> (Linux 2.6.28 以降)"
2979
2980 #. type: Plain text
2981 #: build/C/man2/prctl.2:515
2982 #, fuzzy
2983 #| msgid ""
2984 #| "Return (as the function result) the current state of the calling "
2985 #| "process's dumpable flag."
2986 msgid ""
2987 "Return (as the function result)  the current timer slack value of the "
2988 "calling thread."
2989 msgstr ""
2990 "(Linux 2.3.20 以降)  呼び出し元プロセスにおけるダンプ可能フラグの 現在の状態"
2991 "を (関数の返り値として) 返す。"
2992
2993 #. type: TP
2994 #: build/C/man2/prctl.2:515
2995 #, no-wrap
2996 msgid "B<PR_SET_TIMING> (since Linux 2.6.0-test4)"
2997 msgstr "B<PR_SET_TIMING> (Linux 2.6.0-test4 以降)"
2998
2999 #.  0
3000 #.  1
3001 #.  PR_TIMING_TIMESTAMP doesn't do anything in 2.6.26-rc8,
3002 #.  and looking at the patch history, it appears
3003 #.  that it never did anything.
3004 #. type: Plain text
3005 #: build/C/man2/prctl.2:532
3006 msgid ""
3007 "Set whether to use (normal, traditional) statistical process timing or "
3008 "accurate timestamp-based process timing, by passing B<PR_TIMING_STATISTICAL> "
3009 "or B<PR_TIMING_TIMESTAMP> to I<arg2>.  B<PR_TIMING_TIMESTAMP> is not "
3010 "currently implemented (attempting to set this mode will yield the error "
3011 "B<EINVAL>)."
3012 msgstr ""
3013 "(通常の、伝統的に使われてきた) 統計的なプロセスタイミングを使用するか、\n"
3014 "正確なタイムスタンプに基づくプロセスタイミングを使用するかを設定する。\n"
3015 "I<arg2> に指定できる値は B<PR_TIMING_STATISTICAL> か\n"
3016 "B<PR_TIMING_TIMESTAMP> である。 B<PR_TIMING_TIMESTAMP> は現在のところ実\n"
3017 "装されていない (このモードに設定しようとするとエラー B<EINVAL> が起こる\n"
3018 "ことだろう)。"
3019
3020 #. type: TP
3021 #: build/C/man2/prctl.2:532
3022 #, no-wrap
3023 msgid "B<PR_GET_TIMING> (since Linux 2.6.0-test4)"
3024 msgstr "B<PR_GET_TIMING> (Linux 2.6.0-test4 以降)"
3025
3026 #. type: Plain text
3027 #: build/C/man2/prctl.2:536
3028 msgid ""
3029 "Return (as the function result) which process timing method is currently in "
3030 "use."
3031 msgstr "現在使用中のプロセスタイミングを決める方法を返す。"
3032
3033 #. type: TP
3034 #: build/C/man2/prctl.2:536
3035 #, no-wrap
3036 msgid "B<PR_TASK_PERF_EVENTS_DISABLE> (since Linux 2.6.31)"
3037 msgstr "B<PR_TASK_PERF_EVENTS_DISABLE> (Linux 2.6.31 以降)"
3038
3039 #. type: Plain text
3040 #: build/C/man2/prctl.2:545
3041 msgid ""
3042 "Disable all performance counters attached to the calling process, regardless "
3043 "of whether the counters were created by this process or another process.  "
3044 "Performance counters created by the calling process for other processes are "
3045 "unaffected.  For more information on performance counters, see the Linux "
3046 "kernel source file I<tools/perf/design.txt>."
3047 msgstr ""
3048
3049 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3050 #. type: Plain text
3051 #: build/C/man2/prctl.2:551
3052 msgid ""
3053 "Originally called B<PR_TASK_PERF_COUNTERS_DISABLE>; renamed (with same "
3054 "numerical value)  in Linux 2.6.32."
3055 msgstr ""
3056 "以前は B<PR_TASK_PERF_COUNTERS_DISABLE> と呼ばれていた。\n"
3057 "Linux 2.6.32 で名前が変更された (数値は同じままである)。"
3058
3059 #. type: TP
3060 #: build/C/man2/prctl.2:551
3061 #, no-wrap
3062 msgid "B<PR_TASK_PERF_EVENTS_ENABLE> (since Linux 2.6.31)"
3063 msgstr "B<PR_TASK_PERF_EVENTS_ENABLE> (Linux 2.6.31 以降)"
3064
3065 #. type: Plain text
3066 #: build/C/man2/prctl.2:556
3067 msgid ""
3068 "The converse of B<PR_TASK_PERF_EVENTS_DISABLE>; enable performance counters "
3069 "attached to the calling process."
3070 msgstr ""
3071
3072 #.  commit 1d1c7ddbfab358445a542715551301b7fc363e28
3073 #.  commit cdd6c482c9ff9c55475ee7392ec8f672eddb7be6
3074 #. type: Plain text
3075 #: build/C/man2/prctl.2:563
3076 msgid ""
3077 "Originally called B<PR_TASK_PERF_COUNTERS_ENABLE>; renamed in Linux 2.6.32."
3078 msgstr ""
3079 "以前は B<PR_TASK_PERF_COUNTERS_ENABLE> と呼ばれていた。\n"
3080 "Linux 2.6.32 で名前が変更された。"
3081
3082 #. type: TP
3083 #: build/C/man2/prctl.2:563
3084 #, no-wrap
3085 msgid "B<PR_SET_TSC> (since Linux 2.6.26, x86 only)"
3086 msgstr "B<PR_SET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3087
3088 #. type: Plain text
3089 #: build/C/man2/prctl.2:576
3090 msgid ""
3091 "Set the state of the flag determining whether the timestamp counter can be "
3092 "read by the process.  Pass B<PR_TSC_ENABLE> to I<arg2> to allow it to be "
3093 "read, or B<PR_TSC_SIGSEGV> to generate a B<SIGSEGV> when the process tries "
3094 "to read the timestamp counter."
3095 msgstr ""
3096 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態を"
3097 "設定する。 読み出しを許可する場合は I<arg2> に B<PR_TSC_ENABLE> を、そのプロ"
3098 "セスがタイムスタンプ・カウンタを読み出そうとした際に B<SIGSEGV> を発生させる"
3099 "場合には B<PR_TSC_SIGSEGV> を渡す。"
3100
3101 #. type: TP
3102 #: build/C/man2/prctl.2:576
3103 #, no-wrap
3104 msgid "B<PR_GET_TSC> (since Linux 2.6.26, x86 only)"
3105 msgstr "B<PR_GET_TSC> (Linux 2.6.26 以降, x86 のみ)"
3106
3107 #. type: Plain text
3108 #: build/C/man2/prctl.2:582
3109 msgid ""
3110 "Return the state of the flag determining whether the timestamp counter can "
3111 "be read, in the location pointed to by I<(int\\ *) arg2>."
3112 msgstr ""
3113 "そのプロセスがタイムスタンプ・カウンタを読み出せるかを決定する フラグの状態"
3114 "を I<(int\\ *) arg2> が指す場所に格納して返す。"
3115
3116 #. type: TP
3117 #: build/C/man2/prctl.2:582
3118 #, no-wrap
3119 msgid "B<PR_SET_UNALIGN>"
3120 msgstr "B<PR_SET_UNALIGN>"
3121
3122 #. type: Plain text
3123 #: build/C/man2/prctl.2:592
3124 msgid ""
3125 "(Only on: ia64, since Linux 2.3.48; parisc, since Linux 2.6.15; PowerPC, "
3126 "since Linux 2.6.18; Alpha, since Linux 2.6.22)  Set unaligned access control "
3127 "bits to I<arg2>.  Pass B<PR_UNALIGN_NOPRINT> to silently fix up unaligned "
3128 "user accesses, or B<PR_UNALIGN_SIGBUS> to generate B<SIGBUS> on unaligned "
3129 "user access."
3130 msgstr ""
3131 "(ia64 では Linux 2.3.48 以降; parisc では Linux 2.6.15 以降; PowerPC では "
3132 "Linux 2.6.18 以降; Alpha では Linux 2.6.22 以降; これらのアーキテクチャの"
3133 "み)  unaligned アクセス制御ビットを I<arg2> で指定された値に設定する。 指定で"
3134 "きる値は B<PR_UNALIGN_NOPRINT> (unaligned なユーザアクセスを黙って 修正する) "
3135 "か B<PR_UNALIGN_SIGBUS> (unaligned なユーザアクセスがあった場合 B<SIGBUS> を"
3136 "生成する) である。"
3137
3138 #. type: TP
3139 #: build/C/man2/prctl.2:592
3140 #, no-wrap
3141 msgid "B<PR_GET_UNALIGN>"
3142 msgstr "B<PR_GET_UNALIGN>"
3143
3144 #. type: Plain text
3145 #: build/C/man2/prctl.2:599
3146 msgid ""
3147 "(see B<PR_SET_UNALIGN> for information on versions and architectures)  "
3148 "Return unaligned access control bits, in the location pointed to by I<(int\\ "
3149 "*) arg2>."
3150 msgstr ""
3151 "(バージョンとアーキテクチャの情報は B<PR_SET_UNALIGN> 参照)  unaligned アクセ"
3152 "ス制御ビットの値を I<(int\\ *) arg2> が指す場所に格納して返す。"
3153
3154 #. type: TP
3155 #: build/C/man2/prctl.2:599
3156 #, no-wrap
3157 msgid "B<PR_MCE_KILL> (since Linux 2.6.32)"
3158 msgstr "B<PR_MCE_KILL> (Linux 2.6.32 以降)"
3159
3160 #. type: Plain text
3161 #: build/C/man2/prctl.2:639
3162 msgid ""
3163 "Set the machine check memory corruption kill policy for the current thread.  "
3164 "If I<arg2> is B<PR_MCE_KILL_CLEAR>, clear the thread memory corruption kill "
3165 "policy and use the system-wide default.  (The system-wide default is defined "
3166 "by I</proc/sys/vm/memory_failure_early_kill>; see B<proc>(5).)  If I<arg2> "
3167 "is B<PR_MCE_KILL_SET>, use a thread-specific memory corruption kill policy.  "
3168 "In this case, I<arg3> defines whether the policy is I<early kill> "
3169 "(B<PR_MCE_KILL_EARLY>), I<late kill> (B<PR_MCE_KILL_LATE>), or the system-"
3170 "wide default (B<PR_MCE_KILL_DEFAULT>).  Early kill means that the thread "
3171 "receives a B<SIGBUS> signal as soon as hardware memory corruption is "
3172 "detected inside its address space.  In late kill mode, the process is killed "
3173 "only when it accesses a corrupted page.  See B<sigaction>(2)  for more "
3174 "information on the B<SIGBUS> signal.  The policy is inherited by children.  "
3175 "The remaining unused B<prctl>()  arguments must be zero for future "
3176 "compatibility."
3177 msgstr ""
3178
3179 #. type: TP
3180 #: build/C/man2/prctl.2:639
3181 #, no-wrap
3182 msgid "B<PR_MCE_KILL_GET> (since Linux 2.6.32)"
3183 msgstr "B<PR_MCE_KILL_GET> (Linux 2.6.32 以降)"
3184
3185 #. type: Plain text
3186 #: build/C/man2/prctl.2:645
3187 msgid ""
3188 "Return the current per-process machine check kill policy.  All unused "
3189 "B<prctl>()  arguments must be zero."
3190 msgstr ""
3191
3192 #. type: TP
3193 #: build/C/man2/prctl.2:645
3194 #, no-wrap
3195 msgid "B<PR_SET_MM> (since Linux 3.3)"
3196 msgstr "B<PR_SET_MM> (Linux 3.3 以降)"
3197
3198 #.  commit 028ee4be34a09a6d48bdf30ab991ae933a7bc036
3199 #. type: Plain text
3200 #: build/C/man2/prctl.2:666
3201 msgid ""
3202 "Modify certain kernel memory map descriptor fields of the calling process.  "
3203 "Usually these fields are set by the kernel and dynamic loader (see B<ld.so>"
3204 "(8)  for more information) and a regular application should not use this "
3205 "feature.  However, there are cases, such as self-modifying programs, where a "
3206 "program might find it useful to change its own memory map.  This feature is "
3207 "available only if the kernel is built with the B<CONFIG_CHECKPOINT_RESTORE> "
3208 "option enabled.  The calling process must have the B<CAP_SYS_RESOURCE> "
3209 "capability.  The value in I<arg2> is one of the options below, while I<arg3> "
3210 "provides a new value for the option."
3211 msgstr ""
3212
3213 #. type: TP
3214 #: build/C/man2/prctl.2:667
3215 #, no-wrap
3216 msgid "B<PR_SET_MM_START_CODE>"
3217 msgstr "B<PR_SET_MM_START_CODE>"
3218
3219 #. type: Plain text
3220 #: build/C/man2/prctl.2:676
3221 msgid ""
3222 "Set the address above which the program text can run.  The corresponding "
3223 "memory area must be readable and executable, but not writable or sharable "
3224 "(see B<mprotect>(2)  and B<mmap>(2)  for more information)."
3225 msgstr ""
3226
3227 #. type: TP
3228 #: build/C/man2/prctl.2:676
3229 #, no-wrap
3230 msgid "B<PR_SET_MM_END_CODE>"
3231 msgstr "B<PR_SET_MM_END_CODE>"
3232
3233 #. type: Plain text
3234 #: build/C/man2/prctl.2:681
3235 msgid ""
3236 "Set the address below which the program text can run.  The corresponding "
3237 "memory area must be readable and executable, but not writable or sharable."
3238 msgstr ""
3239
3240 #. type: TP
3241 #: build/C/man2/prctl.2:681
3242 #, no-wrap
3243 msgid "B<PR_SET_MM_START_DATA>"
3244 msgstr "B<PR_SET_MM_START_DATA>"
3245
3246 #. type: Plain text
3247 #: build/C/man2/prctl.2:687
3248 msgid ""
3249 "Set the address above which initialized and uninitialized (bss) data are "
3250 "placed.  The corresponding memory area must be readable and writable, but "
3251 "not executable or sharable."
3252 msgstr ""
3253
3254 #. type: TP
3255 #: build/C/man2/prctl.2:687
3256 #, no-wrap
3257 msgid "B<PR_SET_MM_END_DATA>"
3258 msgstr "B<PR_SET_MM_END_DATA>"
3259
3260 #. type: Plain text
3261 #: build/C/man2/prctl.2:693
3262 msgid ""
3263 "Set the address below which initialized and uninitialized (bss) data are "
3264 "placed.  The corresponding memory area must be readable and writable, but "
3265 "not executable or sharable."
3266 msgstr ""
3267
3268 #. type: TP
3269 #: build/C/man2/prctl.2:693
3270 #, no-wrap
3271 msgid "B<PR_SET_MM_START_STACK>"
3272 msgstr "B<PR_SET_MM_START_STACK>"
3273
3274 #. type: Plain text
3275 #: build/C/man2/prctl.2:697
3276 msgid ""
3277 "Set the start address of the stack.  The corresponding memory area must be "
3278 "readable and writable."
3279 msgstr ""
3280
3281 #. type: TP
3282 #: build/C/man2/prctl.2:697
3283 #, no-wrap
3284 msgid "B<PR_SET_MM_START_BRK>"
3285 msgstr "B<PR_SET_MM_START_BRK>"
3286
3287 #. type: Plain text
3288 #: build/C/man2/prctl.2:709
3289 msgid ""
3290 "Set the address above which the program heap can be expanded with B<brk>(2)  "
3291 "call.  The address must be greater than the ending address of the current "
3292 "program data segment.  In addition, the combined size of the resulting heap "
3293 "and the size of the data segment can't exceed the B<RLIMIT_DATA> resource "
3294 "limit (see B<setrlimit>(2))."
3295 msgstr ""
3296
3297 #. type: TP
3298 #: build/C/man2/prctl.2:709
3299 #, no-wrap
3300 msgid "B<PR_SET_MM_BRK>"
3301 msgstr "B<PR_SET_MM_BRK>"
3302
3303 #. type: Plain text
3304 #: build/C/man2/prctl.2:717
3305 msgid ""
3306 "Set the current B<brk>(2)  value.  The requirements for the address are the "
3307 "same as for the B<PR_SET_MM_START_BRK> option."
3308 msgstr ""
3309
3310 #.  commit fe8c7f5cbf91124987106faa3bdf0c8b955c4cf7
3311 #. type: Plain text
3312 #: build/C/man2/prctl.2:720
3313 #, fuzzy
3314 #| msgid "This system call is available since Linux 3.7."
3315 msgid "The following options are available since Linux 3.5."
3316 msgstr "このシステムコールは Linux 3.7 で初めて登場した。"
3317
3318 #. type: TP
3319 #: build/C/man2/prctl.2:720
3320 #, fuzzy, no-wrap
3321 #| msgid "B<PR_SET_MM_START_STACK>"
3322 msgid "B<PR_SET_MM_ARG_START>"
3323 msgstr "B<PR_SET_MM_START_STACK>"
3324
3325 #. type: Plain text
3326 #: build/C/man2/prctl.2:723
3327 msgid "Set the address above which the program command line is placed."
3328 msgstr ""
3329
3330 #. type: TP
3331 #: build/C/man2/prctl.2:723
3332 #, fuzzy, no-wrap
3333 #| msgid "B<PR_SET_MM_START_CODE>"
3334 msgid "B<PR_SET_MM_ARG_END>"
3335 msgstr "B<PR_SET_MM_START_CODE>"
3336
3337 #. type: Plain text
3338 #: build/C/man2/prctl.2:726
3339 msgid "Set the address below which the program command line is placed."
3340 msgstr ""
3341
3342 #. type: TP
3343 #: build/C/man2/prctl.2:726
3344 #, fuzzy, no-wrap
3345 #| msgid "B<PR_SET_MM_END_DATA>"
3346 msgid "B<PR_SET_MM_ENV_START>"
3347 msgstr "B<PR_SET_MM_END_DATA>"
3348
3349 #. type: Plain text
3350 #: build/C/man2/prctl.2:729
3351 msgid "Set the address above which the program environment is placed."
3352 msgstr ""
3353
3354 #. type: TP
3355 #: build/C/man2/prctl.2:729
3356 #, fuzzy, no-wrap
3357 #| msgid "B<PR_SET_MM_END_CODE>"
3358 msgid "B<PR_SET_MM_ENV_END>"
3359 msgstr "B<PR_SET_MM_END_CODE>"
3360
3361 #. type: Plain text
3362 #: build/C/man2/prctl.2:732
3363 msgid "Set the address below which the program environment is placed."
3364 msgstr ""
3365
3366 #. type: Plain text
3367 #: build/C/man2/prctl.2:745
3368 msgid ""
3369 "The address passed with B<PR_SET_MM_ARG_START>, B<PR_SET_MM_ARG_END>, "
3370 "B<PR_SET_MM_ENV_START>, and B<PR_SET_MM_ENV_END> should belong to a process "
3371 "stack area.  Thus, the corresponding memory area must be readable, writable, "
3372 "and (depending on the kernel configuration) have the B<MAP_GROWSDOWN> "
3373 "attribute set (see B<mmap>(2))."
3374 msgstr ""
3375
3376 #. type: TP
3377 #: build/C/man2/prctl.2:745
3378 #, fuzzy, no-wrap
3379 #| msgid "B<PR_SET_MM_BRK>"
3380 msgid "B<PR_SET_MM_AUXV>"
3381 msgstr "B<PR_SET_MM_BRK>"
3382
3383 #. type: Plain text
3384 #: build/C/man2/prctl.2:754
3385 msgid ""
3386 "Set a new auxiliary vector.  The I<arg3> argument should provide the address "
3387 "of the vector.  The I<arg4> is the size of the vector."
3388 msgstr ""
3389
3390 #. type: TP
3391 #: build/C/man2/prctl.2:754
3392 #, fuzzy, no-wrap
3393 #| msgid "B<PR_SET_MM_END_CODE>"
3394 msgid "B<PR_SET_MM_EXE_FILE>"
3395 msgstr "B<PR_SET_MM_END_CODE>"
3396
3397 #.  commit b32dfe377102ce668775f8b6b1461f7ad428f8b6
3398 #. type: Plain text
3399 #: build/C/man2/prctl.2:766
3400 msgid ""
3401 "Supersede the I</proc/pid/exe> symbolic link with a new one pointing to a "
3402 "new executable file identified by the file descriptor provided in I<arg3> "
3403 "argument.  The file descriptor should be obtained with a regular B<open>(2)  "
3404 "call."
3405 msgstr ""
3406
3407 #. type: Plain text
3408 #: build/C/man2/prctl.2:773
3409 msgid ""
3410 "To change the symbolic link, one needs to unmap all existing executable "
3411 "memory areas, including those created by the kernel itself (for example the "
3412 "kernel usually creates at least one executable memory area for the ELF I<."
3413 "text> section)."
3414 msgstr ""
3415
3416 #. type: Plain text
3417 #: build/C/man2/prctl.2:779
3418 msgid ""
3419 "The second limitation is that such transitions can be done only once in a "
3420 "process life time.  Any further attempts will be rejected.  This should help "
3421 "system administrators monitor unusual symbolic-link transitions over all "
3422 "processes running on a system."
3423 msgstr ""
3424
3425 #. type: Plain text
3426 #: build/C/man2/prctl.2:800
3427 #, fuzzy
3428 #| msgid ""
3429 #| "On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, "
3430 #| "B<PR_GET_NO_NEW_PRIVS>, B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, "
3431 #| "B<PR_GET_SECUREBITS>, B<PR_MCE_KILL_GET>, and (if it returns)  "
3432 #| "B<PR_GET_SECCOMP> return the nonnegative values described above.  All "
3433 #| "other I<option> values return 0 on success.  On error, -1 is returned, "
3434 #| "and I<errno> is set appropriately."
3435 msgid ""
3436 "On success, B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, B<PR_GET_NO_NEW_PRIVS>, "
3437 "B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, B<PR_GET_TIMERSLACK>, "
3438 "B<PR_GET_SECUREBITS>, B<PR_MCE_KILL_GET>, and (if it returns)  "
3439 "B<PR_GET_SECCOMP> return the nonnegative values described above.  All other "
3440 "I<option> values return 0 on success.  On error, -1 is returned, and "
3441 "I<errno> is set appropriately."
3442 msgstr ""
3443 "成功すると、 B<PR_GET_DUMPABLE>, B<PR_GET_KEEPCAPS>, "
3444 "B<PR_GET_NO_NEW_PRIVS>,\n"
3445 "B<PR_CAPBSET_READ>, B<PR_GET_TIMING>, B<PR_GET_SECUREBITS>,\n"
3446 "B<PR_MCE_KILL_GET>, B<PR_GET_SECCOMP> は上述の負でない値を返す (なお、\n"
3447 "B<PR_GET_SECCOMP> は返らない場合もある)。 I<option> が他の値の場合は\n"
3448 "成功時に 0 を返す。\n"
3449 "エラーの場合、-1 を返し、 I<errno> に適切な値を設定する。"
3450
3451 #. type: Plain text
3452 #: build/C/man2/prctl.2:805
3453 msgid "I<arg2> is an invalid address."
3454 msgstr "I<arg2> が不正なアドレスである。"
3455
3456 #. type: Plain text
3457 #: build/C/man2/prctl.2:810
3458 msgid "The value of I<option> is not recognized."
3459 msgstr "I<option> の値が理解できない。"
3460
3461 #. type: Plain text
3462 #: build/C/man2/prctl.2:822
3463 msgid ""
3464 "I<option> is B<PR_MCE_KILL> or B<PR_MCE_KILL_GET> or B<PR_SET_MM>, and "
3465 "unused B<prctl>()  arguments were not specified as zero."
3466 msgstr ""
3467
3468 #. type: Plain text
3469 #: build/C/man2/prctl.2:827
3470 msgid "I<arg2> is not valid value for this I<option>."
3471 msgstr "I<arg2> が指定された I<option> で有効な値ではない。"
3472
3473 #. type: Plain text
3474 #: build/C/man2/prctl.2:836
3475 msgid ""
3476 "I<option> is B<PR_SET_SECCOMP> or B<PR_GET_SECCOMP>, and the kernel was not "
3477 "configured with B<CONFIG_SECCOMP>."
3478 msgstr ""
3479 "I<option> が B<PR_SET_SECCOMP> か B<PR_GET_SECCOMP> だが、カーネルが "
3480 "B<CONFIG_SECCOMP> を有効にして作成されていなかった。"
3481
3482 #. type: Plain text
3483 #: build/C/man2/prctl.2:842
3484 msgid "I<option> is B<PR_SET_MM>, and one of the following is true"
3485 msgstr ""
3486
3487 #. type: Plain text
3488 #: build/C/man2/prctl.2:848
3489 msgid "I<arg4> or I<arg5> is nonzero;"
3490 msgstr ""
3491
3492 #. type: Plain text
3493 #: build/C/man2/prctl.2:853
3494 msgid ""
3495 "I<arg3> is greater than B<TASK_SIZE> (the limit on the size of the user "
3496 "address space for this architecture);"
3497 msgstr ""
3498
3499 #. type: Plain text
3500 #: build/C/man2/prctl.2:863
3501 msgid ""
3502 "I<arg2> is B<PR_SET_MM_START_CODE>, B<PR_SET_MM_END_CODE>, "
3503 "B<PR_SET_MM_START_DATA>, B<PR_SET_MM_END_DATA>, or B<PR_SET_MM_START_STACK>, "
3504 "and the permissions of the corresponding memory area are not as required;"
3505 msgstr ""
3506
3507 #. type: Plain text
3508 #: build/C/man2/prctl.2:875
3509 msgid ""
3510 "I<arg2> is B<PR_SET_MM_START_BRK> or B<PR_SET_MM_BRK>, and I<arg3> is less "
3511 "than or equal to the end of the data segment or specifies a value that would "
3512 "cause the B<RLIMIT_DATA> resource limit to be exceeded."
3513 msgstr ""
3514
3515 #. type: Plain text
3516 #: build/C/man2/prctl.2:886
3517 msgid ""
3518 "I<option> is B<PR_SET_PTRACER> and I<arg2> is not 0, B<PR_SET_PTRACER_ANY>, "
3519 "or the PID of an existing process."
3520 msgstr ""
3521
3522 #. type: Plain text
3523 #: build/C/man2/prctl.2:898
3524 msgid ""
3525 "I<option> is B<PR_SET_SECUREBITS>, and the caller does not have the "
3526 "B<CAP_SETPCAP> capability, or tried to unset a \"locked\" flag, or tried to "
3527 "set a flag whose corresponding locked flag was set (see B<capabilities>(7))."
3528 msgstr ""
3529 "I<option> が B<PR_SET_SECUREBITS> で、呼び出し元がケーパビリティ "
3530 "B<CAP_SETPCAP> を持っていない。 または、\"locked\" フラグを解除しようとし"
3531 "た。 または、locked フラグがセットされているフラグをセットしようとした "
3532 "(B<capabilities>(7)  参照)。"
3533
3534 #. type: Plain text
3535 #: build/C/man2/prctl.2:908
3536 msgid ""
3537 "I<option> is B<PR_SET_KEEPCAPS>, and the callers's "
3538 "B<SECURE_KEEP_CAPS_LOCKED> flag is set (see B<capabilities>(7))."
3539 msgstr ""
3540 "I<option> が B<PR_SET_KEEPCAPS> で、呼び出し元のフラグ "
3541 "B<SECURE_KEEP_CAPS_LOCKED> がセットされている (B<capabilities>(7)  参照)。"
3542
3543 #. type: Plain text
3544 #: build/C/man2/prctl.2:916
3545 msgid ""
3546 "I<option> is B<PR_CAPBSET_DROP>, and the caller does not have the "
3547 "B<CAP_SETPCAP> capability."
3548 msgstr ""
3549 "I<option> が B<PR_CAPBSET_DROP> で、呼び出し元がケーパビリティ "
3550 "B<CAP_SETPCAP> を持っていない。"
3551
3552 #. type: Plain text
3553 #: build/C/man2/prctl.2:924
3554 msgid ""
3555 "I<option> is B<PR_SET_MM>, and the caller does not have the "
3556 "B<CAP_SYS_RESOURCE> capability."
3557 msgstr ""
3558 "I<option> が B<PR_SET_MM> で、呼び出し元がケーパビリティ\n"
3559 "B<CAP_SYS_RESOURCE> を持っていない。"
3560
3561 #. type: TP
3562 #: build/C/man2/prctl.2:924
3563 #, fuzzy, no-wrap
3564 #| msgid "B<SEGV_ACCERR>"
3565 msgid "B<EACCES>"
3566 msgstr "B<SEGV_ACCERR>"
3567
3568 #. type: Plain text
3569 #: build/C/man2/prctl.2:934
3570 msgid ""
3571 "I<option> is B<PR_SET_MM>, and I<arg3> is B<PR_SET_MM_EXE_FILE>, the file is "
3572 "not executable."
3573 msgstr ""
3574
3575 #. type: TP
3576 #: build/C/man2/prctl.2:934
3577 #, fuzzy, no-wrap
3578 #| msgid "B<EBADF>"
3579 msgid "B<EBUSY>"
3580 msgstr "B<EBADF>"
3581
3582 #. type: Plain text
3583 #: build/C/man2/prctl.2:945
3584 msgid ""
3585 "I<option> is B<PR_SET_MM>, I<arg3> is B<PR_SET_MM_EXE_FILE>, and this the "
3586 "second attempt to change the I</proc/pid/exe> symbolic link, which is "
3587 "prohibited."
3588 msgstr ""
3589
3590 #. type: TP
3591 #: build/C/man2/prctl.2:945 build/C/man2/signalfd.2:266
3592 #: build/C/man2/timerfd_create.2:338
3593 #, no-wrap
3594 msgid "B<EBADF>"
3595 msgstr "B<EBADF>"
3596
3597 #.  The following can't actually happen, because prctl() in
3598 #.  seccomp mode will cause SIGKILL.
3599 #.  .TP
3600 #.  .B EPERM
3601 #.  .I option
3602 #.  is
3603 #.  .BR PR_SET_SECCOMP ,
3604 #.  and secure computing mode is already 1.
3605 #. type: Plain text
3606 #: build/C/man2/prctl.2:964
3607 msgid ""
3608 "I<option> is B<PR_SET_MM>, I<arg3> is B<PR_SET_MM_EXE_FILE>, and the file "
3609 "descriptor passed in I<arg4> is not valid."
3610 msgstr ""
3611
3612 #.  The library interface was added in glibc 2.0.6
3613 #. type: Plain text
3614 #: build/C/man2/prctl.2:969
3615 msgid "The B<prctl>()  system call was introduced in Linux 2.1.57."
3616 msgstr "B<prctl>()  システムコールは Linux 2.1.57 で導入された。"
3617
3618 #. type: Plain text
3619 #: build/C/man2/prctl.2:976
3620 msgid ""
3621 "This call is Linux-specific.  IRIX has a B<prctl>()  system call (also "
3622 "introduced in Linux 2.1.44 as irix_prctl on the MIPS architecture), with "
3623 "prototype"
3624 msgstr ""
3625 "このコールは Linux 特有である。 IRIX には B<prctl>()  システム・コールがある"
3626 "が (MIPS アーキテクチャにおいて irix_prctl として Linux 2.1.44 で同様に導入さ"
3627 "れた)、 そのプロトタイプは"
3628
3629 #. type: Plain text
3630 #: build/C/man2/prctl.2:978
3631 msgid "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3632 msgstr "B<ptrdiff_t prctl(int >I<option>B<, int >I<arg2>B<, int >I<arg3>B<);>"
3633
3634 #. type: Plain text
3635 #: build/C/man2/prctl.2:983
3636 msgid ""
3637 "and options to get the maximum number of processes per user, get the maximum "
3638 "number of processors the calling process can use, find out whether a "
3639 "specified process is currently blocked, get or set the maximum stack size, "
3640 "and so on."
3641 msgstr ""
3642 "である。ユーザー当りのプロセス最大数を取得するオプション、 プロセスの使用でき"
3643 "る最大プロッサー数を取得するオプション、 現在特定のプロセスが停止(block)させ"
3644 "られているかどうか調べるオプション、 スタックサイズの最大値の取得や設定を行な"
3645 "うオプションなどがある。"
3646
3647 #. type: Plain text
3648 #: build/C/man2/prctl.2:986
3649 msgid "B<signal>(2), B<core>(5)"
3650 msgstr "B<signal>(2), B<core>(5)"
3651
3652 #. type: TH
3653 #: build/C/man3/profil.3:28
3654 #, no-wrap
3655 msgid "PROFIL"
3656 msgstr "PROFIL"
3657
3658 #. type: Plain text
3659 #: build/C/man3/profil.3:31
3660 msgid "profil - execution time profile"
3661 msgstr "profil - 実行時間プロファイル (profile)"
3662
3663 #. type: Plain text
3664 #: build/C/man3/profil.3:34
3665 #, no-wrap
3666 msgid "B<#include E<lt>unistd.hE<gt>>\n"
3667 msgstr "B<#include E<lt>unistd.hE<gt>>\n"
3668
3669 #. type: Plain text
3670 #: build/C/man3/profil.3:37
3671 #, no-wrap
3672 msgid ""
3673 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3674 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3675 msgstr ""
3676 "B<int profil(unsigned short *>I<buf>B<, size_t >I<bufsiz>B<,>\n"
3677 "B<           size_t >I<offset>B<, unsigned int >I<scale>B<);>\n"
3678
3679 #. type: Plain text
3680 #: build/C/man3/profil.3:46
3681 msgid ""
3682 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3683 msgstr ""
3684 "B<profil>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\\ E<lt>\\ 500)"
3685
3686 #. type: Plain text
3687 #: build/C/man3/profil.3:68
3688 msgid ""
3689 "This routine provides a means to find out in what areas your program spends "
3690 "most of its time.  The argument I<buf> points to I<bufsiz> bytes of core.  "
3691 "Every virtual 10 milliseconds, the user's program counter (PC)  is examined: "
3692 "I<offset> is subtracted and the result is multiplied by I<scale> and divided "
3693 "by 65536.  If the resulting value is less than I<bufsiz>, then the "
3694 "corresponding entry in I<buf> is incremented.  If I<buf> is NULL, profiling "
3695 "is disabled."
3696 msgstr ""
3697 "このルーティンはプログラムのどこの部分で時間を費やしているかを調べる 手段を提"
3698 "供する。引き数 I<buf> は I<bufsiz> バイトのメモリを指している。仮想の 10 ミリ"
3699 "秒ごとに、ユーザーの プログラム・カウンター (PC) が検査される: I<offset> が引"
3700 "かれ、その結果が I<scale> 倍され 65536 で割られる。 結果が I<bufsiz> より小さ"
3701 "い場合は I<buf> の対応するエントリがインクリメントされる。 I<buf> が NULL な"
3702 "らば、プロファイル (profile) は無効にされる。"
3703
3704 #. type: Plain text
3705 #: build/C/man3/profil.3:70
3706 msgid "Zero is always returned."
3707 msgstr "常に 0 が返される。"
3708
3709 #. type: Plain text
3710 #: build/C/man3/profil.3:72
3711 msgid "Similar to a call in SVr4 (but not POSIX.1-2001)."
3712 msgstr "SVr4 のコールに似ている (しかし POSIX.1-2001 ではない)。"
3713
3714 #. type: Plain text
3715 #: build/C/man3/profil.3:78
3716 msgid ""
3717 "B<profil>()  cannot be used on a program that also uses B<ITIMER_PROF> "
3718 "interval timers (see B<setitimer>(2))."
3719 msgstr ""
3720 "B<profil>()  は B<ITIMER_PROF> インターバル・タイマーも使用しているプログラム"
3721 "では使用できない (B<setitimer>(2)  参照)。"
3722
3723 #. type: Plain text
3724 #: build/C/man3/profil.3:81
3725 msgid ""
3726 "True kernel profiling provides more accurate results.  Libc 4.4 contained a "
3727 "kernel patch providing a system call profil."
3728 msgstr ""
3729 "本当のカーネル・プロファイルはより正確な結果を与える。 libc 4.4 にはシステム"
3730 "コール profil を提供するための カーネルパッチが含まれていた。"
3731
3732 #. type: Plain text
3733 #: build/C/man3/profil.3:86
3734 msgid "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3735 msgstr "B<gprof>(1), B<setitimer>(2), B<sigaction>(2), B<signal>(2)"
3736
3737 #. type: TH
3738 #: build/C/man3/psignal.3:30
3739 #, no-wrap
3740 msgid "PSIGNAL"
3741 msgstr "PSIGNAL"
3742
3743 #. type: TH
3744 #: build/C/man3/psignal.3:30
3745 #, no-wrap
3746 msgid "2010-10-06"
3747 msgstr "2010-10-06"
3748
3749 #. type: TH
3750 #: build/C/man3/psignal.3:30 build/C/man3/raise.3:29
3751 #: build/C/man7/sigevent.7:26
3752 #, no-wrap
3753 msgid "GNU"
3754 msgstr "GNU"
3755
3756 #. type: Plain text
3757 #: build/C/man3/psignal.3:33
3758 msgid "psignal, psiginfo - print signal message"
3759 msgstr "psignal, psiginfo - シグナルメッセージを表示"
3760
3761 #. type: Plain text
3762 #: build/C/man3/psignal.3:39
3763 #, no-wrap
3764 msgid ""
3765 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3766 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3767 msgstr ""
3768 "B<void psignal(int >I<sig>B<, const char *>I<s>B<);>\n"
3769 "B<void psiginfo(const siginfo_t *>I<pinfo>B<, const char *>I<s>B<);>\n"
3770
3771 #. type: Plain text
3772 #: build/C/man3/psignal.3:41
3773 #, no-wrap
3774 msgid "B<extern const char *const >I<sys_siglist>B<[];>\n"
3775 msgstr "B<extern const char *const >I<sys_siglist>B<[];>\n"
3776
3777 #. type: Plain text
3778 #: build/C/man3/psignal.3:50
3779 msgid "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3780 msgstr "B<psignal>(): _SVID_SOURCE || _BSD_SOURCE"
3781
3782 #. type: Plain text
3783 #: build/C/man3/psignal.3:53
3784 msgid ""
3785 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3786 "200809L"
3787 msgstr ""
3788 "B<psiginfo>(): _XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ "
3789 "200809L"
3790
3791 #. type: Plain text
3792 #: build/C/man3/psignal.3:56
3793 msgid "I<sys_siglist>: _BSD_SOURCE"
3794 msgstr "I<sys_siglist>: _BSD_SOURCE"
3795
3796 #. type: Plain text
3797 #: build/C/man3/psignal.3:65
3798 msgid ""
3799 "The B<psignal>()  function displays a message on I<stderr> consisting of the "
3800 "string I<s>, a colon, a space, a string describing the signal number I<sig>, "
3801 "and a trailing newline.  If the string I<s> is NULL or empty, the colon and "
3802 "space are omitted.  If I<sig> is invalid, the message displayed will "
3803 "indicate an unknown signal."
3804 msgstr ""
3805 "B<psignal>() 関数は、文字列 I<s>、コロン、スペース、\n"
3806 "シグナル番号 I<sig> を説明する文字列、終端の改行から\n"
3807 "構成されるメッセージを I<stderr> に表示する。\n"
3808 "文字列 I<s> が NULL か空の場合、コロンとスペースは省略される。\n"
3809 "I<sig> が不正ならば、表示される メッセージは未知のシグナルを示す。"
3810
3811 #. type: Plain text
3812 #: build/C/man3/psignal.3:86
3813 msgid ""
3814 "The B<psiginfo>()  function is like B<psignal>(), except that it displays "
3815 "information about the signal described by I<pinfo>, which should point to a "
3816 "valid I<siginfo_t> structure.  As well as the signal description, B<psiginfo>"
3817 "()  displays information about the origin of the signal, and other "
3818 "information relevant to the signal (e.g., the relevant memory address for "
3819 "hardware-generated signals, the child process ID for B<SIGCHLD>, and the "
3820 "user ID and process ID of the sender, for signals set using B<kill>(2)  or "
3821 "B<sigqueue>(3))."
3822 msgstr ""
3823 "B<psiginfo>() 関数は B<psignal>() と同じだが、 I<pinfo> に書かれたシグナルの"
3824 "情報を表示する点が異なる。 I<pinfo> は有効な I<siginfo_t> 構造体を指している"
3825 "必要がある。 B<psiginfo>() は、 シグナルの説明だけでなく、 シグナルの送信元や"
3826 "そのシグナルに関連するその他の情報も表示する (例えば、ハードウェアが発生した"
3827 "シグナルの関連メモリアドレス、 B<SIGCHLD> の子プロセス ID、 I<kill>(2) や "
3828 "B<sigqueue>(3) を使って送信されたシグナルの送信元プロセスのユーザ ID とプロセ"
3829 "ス ID など)。"
3830
3831 #. type: Plain text
3832 #: build/C/man3/psignal.3:89
3833 msgid ""
3834 "The array I<sys_siglist> holds the signal description strings indexed by "
3835 "signal number."
3836 msgstr ""
3837 "配列 I<sys_siglist> はシグナルを説明する文字列を保持しており、 配列へのアクセ"
3838 "スにはシグナル番号を添え字として用いる事ができる。"
3839
3840 #. type: Plain text
3841 #: build/C/man3/psignal.3:95
3842 msgid "The B<psignal>()  and B<psiginfo>()  functions return no value."
3843 msgstr "関数 B<psignal>() と B<psiginfo>() は、値を返さない。"
3844
3845 #. type: Plain text
3846 #: build/C/man3/psignal.3:99
3847 msgid "The B<psiginfo>()  function was added to glibc in version 2.10."
3848 msgstr "B<psiginfo>() 関数は glibc バージョン 2.10 で追加された。"
3849
3850 #. type: Plain text
3851 #: build/C/man3/psignal.3:101
3852 msgid "POSIX.1-2008, 4.3BSD."
3853 msgstr "POSIX.1-2008, 4.3BSD."
3854
3855 #. type: Plain text
3856 #: build/C/man3/psignal.3:105
3857 msgid "In glibc versions up to 2.12, B<psiginfo>()  had the following bugs:"
3858 msgstr ""
3859 "バージョン 2.12 までの glibc では B<psiginfo>() には以下のバグがあった。"
3860
3861 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12107
3862 #.  Reportedly now fixed; check glibc 2.13
3863 #. type: Plain text
3864 #: build/C/man3/psignal.3:109
3865 msgid "In some circumstances, a trailing newline is not printed."
3866 msgstr "特定の状況で、末尾の改行が出力されない。"
3867
3868 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12108
3869 #.  Reportedly now fixed; check glibc 2.13
3870 #. type: Plain text
3871 #: build/C/man3/psignal.3:113
3872 msgid "Additional details are not displayed for real-time signals."
3873 msgstr "リアルタイムシグナルの場合に、追加の詳細情報が表示されない。"
3874
3875 #. type: Plain text
3876 #: build/C/man3/psignal.3:118
3877 msgid "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
3878 msgstr "B<sigaction>(2), B<perror>(3), B<strsignal>(3), B<signal>(7)"
3879
3880 #. type: TH
3881 #: build/C/man3/raise.3:29
3882 #, no-wrap
3883 msgid "RAISE"
3884 msgstr "RAISE"
3885
3886 #. type: TH
3887 #: build/C/man3/raise.3:29
3888 #, fuzzy, no-wrap
3889 #| msgid "2009-03-15"
3890 msgid "2014-03-10"
3891 msgstr "2009-03-15"
3892
3893 #. type: Plain text
3894 #: build/C/man3/raise.3:32
3895 msgid "raise - send a signal to the caller"
3896 msgstr "raise - 呼び出し元にシグナルを送る"
3897
3898 #. type: Plain text
3899 #: build/C/man3/raise.3:37
3900 #, no-wrap
3901 msgid "B<int raise(int >I<sig>B<);>\n"
3902 msgstr "B<int raise(int >I<sig>B<);>\n"
3903
3904 #. type: Plain text
3905 #: build/C/man3/raise.3:43
3906 msgid ""
3907 "The B<raise>()  function sends a signal to the calling process or thread.  "
3908 "In a single-threaded program it is equivalent to"
3909 msgstr ""
3910 "B<raise>()  関数は、呼び出し元のプロセスもしくはスレッドにシグナルを送る。 シ"
3911 "ングルスレッドのプログラムでは、以下と等価である。"
3912
3913 #. type: Plain text
3914 #: build/C/man3/raise.3:47
3915 #, no-wrap
3916 msgid "kill(getpid(), sig);\n"
3917 msgstr "kill(getpid(), sig);\n"
3918
3919 #. type: Plain text
3920 #: build/C/man3/raise.3:51
3921 msgid "In a multithreaded program it is equivalent to"
3922 msgstr "マルチスレッドのプログラムでは、以下と等価である。"
3923
3924 #. type: Plain text
3925 #: build/C/man3/raise.3:55
3926 #, no-wrap
3927 msgid "pthread_kill(pthread_self(), sig);\n"
3928 msgstr "pthread_kill(pthread_self(), sig);\n"
3929
3930 #. type: Plain text
3931 #: build/C/man3/raise.3:61
3932 msgid ""
3933 "If the signal causes a handler to be called, B<raise>()  will return only "
3934 "after the signal handler has returned."
3935 msgstr ""
3936 "シグナルに起因してシグナル・ハンドラが呼び出される場合には、 B<raise>()  が返"
3937 "るのは必ずシグナル・ハンドラが返った後になる。"
3938
3939 #. type: Plain text
3940 #: build/C/man3/raise.3:64
3941 msgid "B<raise>()  returns 0 on success, and nonzero for failure."
3942 msgstr "成功した場合は 0 を、失敗した場合は 0 以外の値を返す。"
3943
3944 #. type: Plain text
3945 #: build/C/man3/raise.3:69
3946 #, fuzzy
3947 #| msgid "This function is nonstandard."
3948 msgid "The B<raise>()  function is thread-safe."
3949 msgstr "この関数は非標準である。"
3950
3951 #. type: Plain text
3952 #: build/C/man3/raise.3:71 build/C/man2/signal.2:112
3953 msgid "C89, C99, POSIX.1-2001."
3954 msgstr "C89, C99, POSIX.1-2001."
3955
3956 #.  2.3.2 used the obsolete tkill(), if available.
3957 #. type: Plain text
3958 #: build/C/man3/raise.3:82
3959 msgid ""
3960 "Since version 2.3.3, glibc implements B<raise>()  by calling B<tgkill>(2), "
3961 "if the kernel supports that system call.  Older glibc versions implemented "
3962 "B<raise>()  using B<kill>(2)."
3963 msgstr ""
3964 "glibc バージョン 2.3.3 以降では、カーネルが B<tgkill>(2) システムコール\n"
3965 "をサポートしている場合はB<raise>() は B<tgkill>(2) を使って実装されて\n"
3966 "いる。古いバージョンの glibc では、B<raise>() は B<kill>(2) を使って\n"
3967 "実装されている。"
3968
3969 #. type: Plain text
3970 #: build/C/man3/raise.3:89
3971 msgid ""
3972 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
3973 "B<signal>(7)"
3974 msgstr ""
3975 "B<getpid>(2), B<kill>(2), B<sigaction>(2), B<signal>(2), B<pthread_kill>(3), "
3976 "B<signal>(7)"
3977
3978 #. type: TH
3979 #: build/C/man2/restart_syscall.2:33
3980 #, no-wrap
3981 msgid "RESTART_SYSCALL"
3982 msgstr ""
3983
3984 #. type: TH
3985 #: build/C/man2/restart_syscall.2:33
3986 #, fuzzy, no-wrap
3987 #| msgid "2009-02-20"
3988 msgid "2014-02-11"
3989 msgstr "2009-02-20"
3990
3991 #. type: Plain text
3992 #: build/C/man2/restart_syscall.2:36
3993 msgid ""
3994 "restart_syscall - restart a system call after interruption by a stop signal"
3995 msgstr ""
3996 "restart_syscall - 一時停止シグナルによる割り込み後にシステムコールを再開する"
3997
3998 #. type: Plain text
3999 #: build/C/man2/restart_syscall.2:38
4000 msgid "B<int restart_syscall(void);>"
4001 msgstr "B<int restart_syscall(void);>"
4002
4003 #. type: Plain text
4004 #: build/C/man2/restart_syscall.2:41
4005 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
4006 msgstr ""
4007 "I<注>: このシステムコールには、glibc のラッパー関数はない。「注意」の節を参"
4008 "照。"
4009
4010 #. type: Plain text
4011 #: build/C/man2/restart_syscall.2:53
4012 msgid ""
4013 "The B<restart_syscall>()  system call is used to restart certain system "
4014 "calls after a process that was stopped by a signal (e.g., B<SIGSTOP> or "
4015 "B<SIGTSTP>)  is later resumed after receiving a B<SIGCONT> signal.  This "
4016 "system call is designed only for internal use by the kernel."
4017 msgstr ""
4018
4019 #.  These system calls correspond to the special internal errno value
4020 #.  ERESTART_RESTARTBLOCK. Each of the system calls has a "restart"
4021 #.  helper function that is invoked by restart_syscall().
4022 #. type: Plain text
4023 #: build/C/man2/restart_syscall.2:84
4024 msgid ""
4025 "B<restart_syscall>()  is used for restarting only those system calls that, "
4026 "when restarted, should adjust their time-related parameters\\(emnamely "
4027 "B<poll>(2)  (since Linux 2.6.24), B<nanosleep>(2)  (since Linux 2.6), "
4028 "B<clock_nanosleep>(2)  (since Linux 2.6), and B<futex>(2), when employed "
4029 "with the B<FUTEX_WAIT> (since Linux 2.6.22)  and B<FUTEX_WAIT_BITSET> (since "
4030 "Linux 2.6.31)  operations.  B<restart_syscall>()  restarts the interrupted "
4031 "system call with a time argument that is suitably adjusted to account for "
4032 "the time that has already elapsed (including the time where the process was "
4033 "stopped by a signal).  Without the B<restart_syscall>()  mechanism, "
4034 "restarting these system calls would not correctly deduce the already elapsed "
4035 "time when the process continued execution."
4036 msgstr ""
4037
4038 #. type: Plain text
4039 #: build/C/man2/restart_syscall.2:88
4040 msgid ""
4041 "The return value of B<restart_syscall>()  is the return value of whatever "
4042 "system call is being restarted."
4043 msgstr ""
4044
4045 #. type: Plain text
4046 #: build/C/man2/restart_syscall.2:92
4047 msgid ""
4048 "I<errno> is set as per the errors for whatever system call is being "
4049 "restarted by B<restart_syscall>()."
4050 msgstr ""
4051
4052 #. type: Plain text
4053 #: build/C/man2/restart_syscall.2:96
4054 msgid "The B<restart_syscall>()  system call is present since Linux 2.6."
4055 msgstr "B<restart_syscall>() システムコールは Linux 2.6 以降に存在する。"
4056
4057 #. type: Plain text
4058 #: build/C/man2/restart_syscall.2:98
4059 #, fuzzy
4060 #| msgid "This system call is Linux specific."
4061 msgid "This system call is Linux-specific."
4062 msgstr "このシステムコールは Linux 固有である。"
4063
4064 #. type: Plain text
4065 #: build/C/man2/restart_syscall.2:102
4066 msgid ""
4067 "There is no glibc wrapper for this system call, because it is intended for "
4068 "use only by the kernel and should never be called by applications."
4069 msgstr ""
4070
4071 #
4072 #.  FIXME
4073 #.  There is one oddness in the implementation though, with respect to
4074 #.  nanosleep() (and probably also clock_nanosleep()). The scenario
4075 #.  is as follows:
4076 #.     1. Start a nanosleep() for (say) 30 seconds,
4077 #.     2. Stop the process with (say) SIGTSTP (^Z).
4078 #.     3. Resume the process with SIGCONT,
4079 #.     4. Upon return, the 'rem' argument of nanosleep() will contain the
4080 #.        remaining unslept time **at the time when SIGTSTP was delivered**.
4081 #.  The behavior at point 4 is odd, but doesn't violate the standards, which
4082 #.  specify the treatment of 'rem' only when the system call returns with
4083 #.  the error EINTR (i.e., the call was interrupted by a signal handler).
4084 #. type: Plain text
4085 #: build/C/man2/restart_syscall.2:123
4086 msgid ""
4087 "From user space, the operation of B<restart_syscall>(2)  is largely "
4088 "invisible: to the process that made the system call that is restarted, it "
4089 "appears as though that system call executed and returned in the usual "
4090 "fashion."
4091 msgstr ""
4092
4093 #.  FIXME select(2) should probably get the restart_syscall() treatment:
4094 #.      If a select() call is suspended by stop-sig+SIGCONT, the time
4095 #.      spent suspended is *not* deducted when the select() is restarted.
4096 #.  FIXME: check whether recvmmsg() handles stop-sig+SIGCONT properly.
4097 #. type: Plain text
4098 #: build/C/man2/restart_syscall.2:131
4099 #, fuzzy
4100 #| msgid "B<sigreturn>(2), B<sigaction>(2), B<signal>(7)"
4101 msgid "B<sigaction>(2), B<sigreturn>(2), B<signal>(7)"
4102 msgstr "B<sigreturn>(2), B<sigaction>(2), B<signal>(7)"
4103
4104 #. type: TH
4105 #: build/C/man2/rt_sigqueueinfo.2:25
4106 #, no-wrap
4107 msgid "RT_SIGQUEUEINFO"
4108 msgstr "RT_SIGQUEUEINFO"
4109
4110 #. type: TH
4111 #: build/C/man2/rt_sigqueueinfo.2:25 build/C/man2/tkill.2:29
4112 #, no-wrap
4113 msgid "2012-07-13"
4114 msgstr "2012-07-13"
4115
4116 #. type: Plain text
4117 #: build/C/man2/rt_sigqueueinfo.2:28
4118 msgid "rt_sigqueueinfo, rt_tgsigqueueinfo - queue a signal and data"
4119 msgstr ""
4120
4121 #. type: Plain text
4122 #: build/C/man2/rt_sigqueueinfo.2:31
4123 #, no-wrap
4124 msgid "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
4125 msgstr "B<int rt_sigqueueinfo(pid_t >I<tgid>B<, int >I<sig>B<, siginfo_t *>I<uinfo>B<);>\n"
4126
4127 #. type: Plain text
4128 #: build/C/man2/rt_sigqueueinfo.2:34
4129 #, no-wrap
4130 msgid ""
4131 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
4132 "B<                      siginfo_t *>I<uinfo>B<);>\n"
4133 msgstr ""
4134 "B<int rt_tgsigqueueinfo(pid_t >I<tgid>B<, pid_t >I<tid>B<, int >I<sig>B<,>\n"
4135 "B<                      siginfo_t *>I<uinfo>B<);>\n"
4136
4137 #. type: Plain text
4138 #: build/C/man2/rt_sigqueueinfo.2:38 build/C/man2/sgetmask.2:36
4139 #: build/C/man2/tkill.2:41
4140 msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
4141 msgstr ""
4142 "I<注>: これらのシステムコールには、glibc のラッパー関数はない。「注意」の節を"
4143 "参照。"
4144
4145 #. type: Plain text
4146 #: build/C/man2/rt_sigqueueinfo.2:50
4147 msgid ""
4148 "The B<rt_sigqueueinfo>()  and B<rt_tgsigqueueinfo>()  system calls are the "
4149 "low-level interfaces used to send a signal plus data to a process or "
4150 "thread.  The receiver of the signal can obtain the accompanying data by "
4151 "establishing a signal handler with the B<sigaction>(2)  B<SA_SIGINFO> flag."
4152 msgstr ""
4153
4154 #. type: Plain text
4155 #: build/C/man2/rt_sigqueueinfo.2:56
4156 msgid ""
4157 "These system calls are not intended for direct application use; they are "
4158 "provided to allow the implementation of B<sigqueue>(3)  and "
4159 "B<pthread_sigqueue>(3)."
4160 msgstr ""
4161
4162 #. type: Plain text
4163 #: build/C/man2/rt_sigqueueinfo.2:68
4164 msgid ""
4165 "The B<rt_sigqueueinfo>()  system call sends the signal I<sig> to the thread "
4166 "group with the ID I<tgid>.  (The term \"thread group\" is synonymous with "
4167 "\"process\", and I<tid> corresponds to the traditional UNIX process ID.)  "
4168 "The signal will be delivered to an arbitrary member of the thread group (i."
4169 "e., one of the threads that is not currently blocking the signal)."
4170 msgstr ""
4171
4172 #. type: Plain text
4173 #: build/C/man2/rt_sigqueueinfo.2:79
4174 msgid ""
4175 "The I<uinfo> argument specifies the data to accompany the signal.  This "
4176 "argument is a pointer to a structure of type I<siginfo_t>, described in "
4177 "B<sigaction>(2)  (and defined by including I<E<lt>sigaction.hE<gt>>).  The "
4178 "caller should set the following fields in this structure:"
4179 msgstr ""
4180
4181 #. type: TP
4182 #: build/C/man2/rt_sigqueueinfo.2:79 build/C/man7/sigevent.7:88
4183 #: build/C/man2/wait.2:316
4184 #, no-wrap
4185 msgid "I<si_code>"
4186 msgstr "I<si_code>"
4187
4188 #.  tkill(2) or
4189 #. type: Plain text
4190 #: build/C/man2/rt_sigqueueinfo.2:95
4191 msgid ""
4192 "This must be one of the B<SI_*> codes in the Linux kernel source file "
4193 "I<include/asm-generic/siginfo.h>, with the restriction that the code must be "
4194 "negative (i.e., cannot be B<SI_USER>, which is used by the kernel to "
4195 "indicate a signal sent by B<kill>(2))  and cannot (since Linux 2.6.39) be "
4196 "B<SI_TKILL> (which is used by the kernel to indicate a signal sent using "
4197 "B<tgkill>(2))."
4198 msgstr ""
4199
4200 #. type: TP
4201 #: build/C/man2/rt_sigqueueinfo.2:95 build/C/man2/wait.2:295
4202 #, no-wrap
4203 msgid "I<si_pid>"
4204 msgstr "I<si_pid>"
4205
4206 #. type: Plain text
4207 #: build/C/man2/rt_sigqueueinfo.2:99
4208 msgid ""
4209 "This should be set to a process ID, typically the process ID of the sender."
4210 msgstr ""
4211
4212 #. type: TP
4213 #: build/C/man2/rt_sigqueueinfo.2:99 build/C/man2/wait.2:298
4214 #, no-wrap
4215 msgid "I<si_uid>"
4216 msgstr "I<si_uid>"
4217
4218 #. type: Plain text
4219 #: build/C/man2/rt_sigqueueinfo.2:103
4220 msgid ""
4221 "This should be set to a user ID, typically the real user ID of the sender."
4222 msgstr ""
4223
4224 #. type: TP
4225 #: build/C/man2/rt_sigqueueinfo.2:103 build/C/man7/sigevent.7:96
4226 #, no-wrap
4227 msgid "I<si_value>"
4228 msgstr "I<si_value>"
4229
4230 #. type: Plain text
4231 #: build/C/man2/rt_sigqueueinfo.2:110
4232 msgid ""
4233 "This field contains the user data to accompany the signal.  For more "
4234 "information, see the description of the last (I<union sigval>)  argument of "
4235 "B<sigqueue>(3)."
4236 msgstr ""
4237
4238 #. type: Plain text
4239 #: build/C/man2/rt_sigqueueinfo.2:117
4240 msgid ""
4241 "Internally, the kernel sets the I<si_signo> field to the value specified in "
4242 "I<sig>, so that the receiver of the signal can also obtain the signal number "
4243 "via that field."
4244 msgstr ""
4245
4246 #. type: Plain text
4247 #: build/C/man2/rt_sigqueueinfo.2:129
4248 msgid ""
4249 "The B<rt_tgsigqueueinfo>()  system call is like B<rt_sigqueueinfo>(), but "
4250 "sends the signal and data to the single thread specified by the combination "
4251 "of I<tgid>, a thread group ID, and I<tid>, a thread in that thread group."
4252 msgstr ""
4253
4254 #. type: Plain text
4255 #: build/C/man2/rt_sigqueueinfo.2:134
4256 msgid ""
4257 "On success, these system calls return 0.  On error, they return -1 and "
4258 "I<errno> is set to indicate the error."
4259 msgstr ""
4260
4261 #. type: TP
4262 #: build/C/man2/rt_sigqueueinfo.2:135 build/C/man3/sigqueue.3:92
4263 #: build/C/man2/sigwaitinfo.2:115 build/C/man2/timer_create.2:176
4264 #, no-wrap
4265 msgid "B<EAGAIN>"
4266 msgstr "B<EAGAIN>"
4267
4268 #. type: Plain text
4269 #: build/C/man2/rt_sigqueueinfo.2:141 build/C/man3/sigqueue.3:98
4270 msgid ""
4271 "The limit of signals which may be queued has been reached.  (See B<signal>"
4272 "(7)  for further information.)"
4273 msgstr ""
4274 "待ち行列に入れられるシグナルの最大数に達した (より詳しい情報は B<signal>(7)  "
4275 "を参照すること)。"
4276
4277 #. type: Plain text
4278 #: build/C/man2/rt_sigqueueinfo.2:148
4279 msgid "I<sig>, I<tgid>, or I<tid> was invalid."
4280 msgstr ""
4281
4282 #. type: Plain text
4283 #: build/C/man2/rt_sigqueueinfo.2:156
4284 msgid ""
4285 "The caller does not have permission to send the signal to the target.  For "
4286 "the required permissions, see B<kill>(2).  Or: I<uinfo-E<gt>si_code> is "
4287 "invalid."
4288 msgstr ""
4289
4290 #. type: Plain text
4291 #: build/C/man2/rt_sigqueueinfo.2:162
4292 msgid "B<rt_sigqueueinfo>(): No thread group matching I<tgid> was found."
4293 msgstr ""
4294
4295 #. type: Plain text
4296 #: build/C/man2/rt_sigqueueinfo.2:169
4297 msgid "B<rt_tgsigqueinfo>(): No thread matching I<tgid> and I<tid> was found."
4298 msgstr ""
4299
4300 #. type: Plain text
4301 #: build/C/man2/rt_sigqueueinfo.2:176
4302 msgid ""
4303 "The B<rt_sigqueueinfo>()  system call was added to Linux in version 2.2.  "
4304 "The B<rt_tgsigqueueinfo>()  system call was added to Linux in version 2.6.31."
4305 msgstr ""
4306
4307 #. type: Plain text
4308 #: build/C/man2/rt_sigqueueinfo.2:178 build/C/man2/sgetmask.2:68
4309 #: build/C/man2/timerfd_create.2:373
4310 msgid "These system calls are Linux-specific."
4311 msgstr "これらのシステムコールは Linux 固有である。"
4312
4313 #. type: Plain text
4314 #: build/C/man2/rt_sigqueueinfo.2:183
4315 msgid ""
4316 "Since these system calls are not intended for application use, there are no "
4317 "glibc wrapper functions; use B<syscall>(2)  in the unlikely case that you "
4318 "want to call them directly."
4319 msgstr ""
4320 "これらのシステムコールはアプリケーションでの使用を目的として用意されたわけで"
4321 "はないので、 glibc のラッパー関数は存在しない。おそらくないと思うが、このシス"
4322 "テムコールを直接呼び出したい場合は B<syscall>(2) を使うこと。"
4323
4324 #. type: Plain text
4325 #: build/C/man2/rt_sigqueueinfo.2:188
4326 msgid ""
4327 "As with B<kill>(2), the null signal (0) can be used to check if the "
4328 "specified process or thread exists."
4329 msgstr ""
4330
4331 #. type: Plain text
4332 #: build/C/man2/rt_sigqueueinfo.2:196
4333 msgid ""
4334 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4335 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4336 msgstr ""
4337 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<tgkill>(2), "
4338 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<signal>(7)"
4339
4340 #. type: TH
4341 #: build/C/man2/s390_runtime_instr.2:25
4342 #, no-wrap
4343 msgid "S390_RUNTIME_INSTR"
4344 msgstr ""
4345
4346 #. type: TH
4347 #: build/C/man2/s390_runtime_instr.2:25
4348 #, no-wrap
4349 msgid "2012-12-17"
4350 msgstr "2012-12-17"
4351
4352 #. type: Plain text
4353 #: build/C/man2/s390_runtime_instr.2:28
4354 msgid "s390_runtime_instr - enable/disable s390 CPU run-time instrumentation"
4355 msgstr ""
4356
4357 #. type: Plain text
4358 #: build/C/man2/s390_runtime_instr.2:31
4359 #, no-wrap
4360 msgid "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4361 msgstr "B<#include E<lt>asm/runtime_instr.hE<gt>>\n"
4362
4363 #. type: Plain text
4364 #: build/C/man2/s390_runtime_instr.2:33
4365 #, no-wrap
4366 msgid "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4367 msgstr "B<int s390_runtime_instr(int >I<command>B<, int >I<signum>B<);>\n"
4368
4369 #. type: Plain text
4370 #: build/C/man2/s390_runtime_instr.2:39
4371 msgid ""
4372 "The B<s390_runtime_instr>()  system call starts or stops CPU run-time "
4373 "instrumentation for the calling thread."
4374 msgstr ""
4375
4376 #. type: Plain text
4377 #: build/C/man2/s390_runtime_instr.2:47
4378 msgid ""
4379 "The I<command> argument controls whether run-time instrumentation is started "
4380 "(B<S390_RUNTIME_INSTR_START>, 1) or stopped (B<S390_RUNTIME_INSTR_STOP>, 2) "
4381 "for the calling thread."
4382 msgstr ""
4383
4384 #. type: Plain text
4385 #: build/C/man2/s390_runtime_instr.2:54
4386 msgid ""
4387 "The I<signum> argument specifies the number of a real-time signal.  The real-"
4388 "time signal is sent to the thread if the run-time instrumentation buffer is "
4389 "full or if the run-time-instrumentation-halted interrupt occurred."
4390 msgstr ""
4391
4392 #. type: Plain text
4393 #: build/C/man2/s390_runtime_instr.2:65
4394 msgid ""
4395 "On success, B<s390_runtime_instr>()  returns 0 and enables the thread for "
4396 "run-time instrumentation by assigning the thread a default run-time "
4397 "instrumentation control block.  The caller can then read and modify the "
4398 "control block and start the run-time instrumentation.  On error, -1 is "
4399 "returned and I<errno> is set to one of the error codes listed below."
4400 msgstr ""
4401
4402 #. type: Plain text
4403 #: build/C/man2/s390_runtime_instr.2:73
4404 msgid ""
4405 "The value specified in I<command> is not a valid command or the value "
4406 "specified in I<signum> is not a real-time signal number."
4407 msgstr ""
4408
4409 #. type: Plain text
4410 #: build/C/man2/s390_runtime_instr.2:76
4411 msgid ""
4412 "Allocating memory for the run-time instrumentation control block failed."
4413 msgstr ""
4414
4415 #. type: TP
4416 #: build/C/man2/s390_runtime_instr.2:76
4417 #, no-wrap
4418 msgid "B<EOPNOTSUPP>"
4419 msgstr ""
4420
4421 #. type: Plain text
4422 #: build/C/man2/s390_runtime_instr.2:79
4423 msgid "The run-time instrumentation facility is not available."
4424 msgstr ""
4425
4426 #. type: Plain text
4427 #: build/C/man2/s390_runtime_instr.2:81
4428 msgid "This system call is available since Linux 3.7."
4429 msgstr "このシステムコールは Linux 3.7 で初めて登場した。"
4430
4431 #. type: Plain text
4432 #: build/C/man2/s390_runtime_instr.2:84
4433 msgid ""
4434 "This Linux-specific system call is available only on the s390 architecture.  "
4435 "The run-time instrumentation facility is available beginning with System z "
4436 "EC12."
4437 msgstr ""
4438
4439 #. type: Plain text
4440 #: build/C/man2/s390_runtime_instr.2:88
4441 msgid ""
4442 "Glibc does not provide a wrapper for this system call, use B<syscall>(2)  to "
4443 "call it."
4444 msgstr ""
4445 "glibc はこのシステムコールに対するラッパー関数を提供していない。 B<syscall>"
4446 "(2) を使用すること。"
4447
4448 #. type: Plain text
4449 #: build/C/man2/s390_runtime_instr.2:91
4450 msgid "B<syscall>(2), B<signal>(7)"
4451 msgstr "B<syscall>(2), B<signal>(7)"
4452
4453 #. type: TH
4454 #: build/C/man2/sgetmask.2:26
4455 #, no-wrap
4456 msgid "SGETMASK"
4457 msgstr "SGETMASK"
4458
4459 #. type: TH
4460 #: build/C/man2/sgetmask.2:26
4461 #, fuzzy, no-wrap
4462 #| msgid "2009-02-20"
4463 msgid "2014-02-25"
4464 msgstr "2009-02-20"
4465
4466 #. type: Plain text
4467 #: build/C/man2/sgetmask.2:29
4468 msgid "sgetmask, ssetmask - manipulation of signal mask (obsolete)"
4469 msgstr "sgetmask, ssetmask - シグナルマスクの操作 (廃止予定)"
4470
4471 #. type: Plain text
4472 #: build/C/man2/sgetmask.2:31
4473 msgid "B<long sgetmask(void);>"
4474 msgstr "B<long sgetmask(void);>"
4475
4476 #. type: Plain text
4477 #: build/C/man2/sgetmask.2:33
4478 msgid "B<long ssetmask(long >I<newmask>B<);>"
4479 msgstr "B<long ssetmask(long >I<newmask>B<);>"
4480
4481 #. type: Plain text
4482 #: build/C/man2/sgetmask.2:42
4483 msgid ""
4484 "These system calls are obsolete.  I<Do not use them>; use B<sigprocmask>(2)  "
4485 "instead."
4486 msgstr ""
4487 "これらのシステムコールは廃止予定であり、 「使用しないこと」。 代わりに "
4488 "B<sigprocmask>(2)  を使用すること。"
4489
4490 #. type: Plain text
4491 #: build/C/man2/sgetmask.2:45
4492 msgid "B<sgetmask>()  returns the signal mask of the calling process."
4493 msgstr "B<sgetmask>()  は、呼び出し元プロセスのシグナルマスクを返す。"
4494
4495 #. type: Plain text
4496 #: build/C/man2/sgetmask.2:50
4497 msgid ""
4498 "B<ssetmask>()  sets the signal mask of the calling process to the value "
4499 "given in I<newmask>.  The previous signal mask is returned."
4500 msgstr ""
4501 "B<ssetmask>()  は、呼び出し元プロセスのシグナルマスクを I<newmask> で指定され"
4502 "た値に設定し、変更前のシグナルマスクを返す。"
4503
4504 #. type: Plain text
4505 #: build/C/man2/sgetmask.2:59
4506 msgid ""
4507 "The signal masks dealt with by these two system calls are plain bit masks "
4508 "(unlike the I<sigset_t> used by B<sigprocmask>(2)); use B<sigmask>(3)  to "
4509 "create and inspect these masks."
4510 msgstr ""
4511 "これら二つのシステムコールが扱うシグナルマスクは、 単純なビットマスクである "
4512 "(この点が B<sigprocmask>(2)  で使用される I<sigset_t> と異なる)。 これらのマ"
4513 "スクを作成したり検査するには B<sigmask>(3)  を使用すること。"
4514
4515 #. type: Plain text
4516 #: build/C/man2/sgetmask.2:64
4517 msgid ""
4518 "B<sgetmask>()  always successfully returns the signal mask.  B<ssetmask>()  "
4519 "always succeeds, and returns the previous signal mask."
4520 msgstr ""
4521 "B<sgetmask>()  は常に成功し、シグナルマスクを返す。 B<ssetmask>()  は常に成功"
4522 "し、直前のシグナルマスクを返す。"
4523
4524 #. type: Plain text
4525 #: build/C/man2/sgetmask.2:66
4526 msgid "These system calls always succeed."
4527 msgstr "これらのシステムコールは常に成功する。"
4528
4529 #. type: Plain text
4530 #: build/C/man2/sgetmask.2:72
4531 msgid ""
4532 "Glibc does not provide wrappers for these obsolete system calls; in the "
4533 "unlikely event that you want to call them, use B<syscall>(2)."
4534 msgstr ""
4535 "glibc はこれらの古いシステムコールに対するラッパー関数を提供していない。\n"
4536 "あまりないと思うが、これらを呼び出したい場合には B<syscall>(2) を使うこと。"
4537
4538 #. type: Plain text
4539 #: build/C/man2/sgetmask.2:75
4540 msgid ""
4541 "These system calls are unaware of signal numbers greater than 31 (i.e., real-"
4542 "time signals)."
4543 msgstr ""
4544 "これらのシステムコールは、 31 より大きいシグナル番号 (つまり、リアルタイムシ"
4545 "グナル) を扱えない。"
4546
4547 #. type: Plain text
4548 #: build/C/man2/sgetmask.2:77
4549 #, fuzzy
4550 #| msgid "These system calls are Linux-specific."
4551 msgid "These system calls do not exist on x86-64."
4552 msgstr "これらのシステムコールは Linux 固有である。"
4553
4554 #. type: Plain text
4555 #: build/C/man2/sgetmask.2:82
4556 msgid "It is not possible to block B<SIGSTOP> or B<SIGKILL>."
4557 msgstr "B<SIGSTOP> や B<SIGKILL> をブロックすることはできない。"
4558
4559 #. type: Plain text
4560 #: build/C/man2/sgetmask.2:85
4561 msgid "B<sigprocmask>(2), B<signal>(7)"
4562 msgstr "B<sigprocmask>(2), B<signal>(7)"
4563
4564 #. type: TH
4565 #: build/C/man2/sigaction.2:47
4566 #, no-wrap
4567 msgid "SIGACTION"
4568 msgstr "SIGACTION"
4569
4570 #. type: TH
4571 #: build/C/man2/sigaction.2:47 build/C/man7/signal.7:46
4572 #: build/C/man2/sigreturn.2:29
4573 #, no-wrap
4574 msgid "2013-07-30"
4575 msgstr "2013-07-30"
4576
4577 #. type: Plain text
4578 #: build/C/man2/sigaction.2:50
4579 msgid "sigaction - examine and change a signal action"
4580 msgstr "sigaction - シグナルの動作の確認と変更"
4581
4582 #. type: Plain text
4583 #: build/C/man2/sigaction.2:56
4584 #, no-wrap
4585 msgid ""
4586 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4587 "B<              struct sigaction *>I<oldact>B<);>\n"
4588 msgstr ""
4589 "B<int sigaction(int >I<signum>B<, const struct sigaction *>I<act>B<,>\n"
4590 "B<              struct sigaction *>I<oldact>B<);>\n"
4591
4592 #. type: Plain text
4593 #: build/C/man2/sigaction.2:66
4594 msgid ""
4595 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4596 "_POSIX_SOURCE"
4597 msgstr ""
4598 "B<sigaction>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
4599 "_POSIX_SOURCE"
4600
4601 #. type: Plain text
4602 #: build/C/man2/sigaction.2:69
4603 msgid "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4604 msgstr "I<siginfo_t>: _POSIX_C_SOURCE E<gt>= 199309L"
4605
4606 #. type: Plain text
4607 #: build/C/man2/sigaction.2:78
4608 msgid ""
4609 "The B<sigaction>()  system call is used to change the action taken by a "
4610 "process on receipt of a specific signal.  (See B<signal>(7)  for an overview "
4611 "of signals.)"
4612 msgstr ""
4613 "B<sigaction>()  システムコールは、特定のシグナルを受信した際の プロセスの動作"
4614 "を変更するのに使用される (シグナルの概要については B<signal>(7)  を参照)。"
4615
4616 #. type: Plain text
4617 #: build/C/man2/sigaction.2:84
4618 msgid ""
4619 "I<signum> specifies the signal and can be any valid signal except B<SIGKILL> "
4620 "and B<SIGSTOP>."
4621 msgstr ""
4622 "I<signum> には、 B<SIGKILL> と B<SIGSTOP> 以外の有効なシグナルをどれでも指定"
4623 "できる。"
4624
4625 #. type: Plain text
4626 #: build/C/man2/sigaction.2:95
4627 msgid ""
4628 "If I<act> is non-NULL, the new action for signal I<signum> is installed from "
4629 "I<act>.  If I<oldact> is non-NULL, the previous action is saved in I<oldact>."
4630 msgstr ""
4631 "I<act> が NULL 以外であれば、シグナル I<signum> の新しい動作 (action) として "
4632 "I<act> が設定される。 I<oldact> が NULL でなければ、今までの動作が I<oldact> "
4633 "に格納される。"
4634
4635 #. type: Plain text
4636 #: build/C/man2/sigaction.2:99
4637 msgid "The I<sigaction> structure is defined as something like:"
4638 msgstr "I<sigaction> 構造体は以下のような感じに定義される。"
4639
4640 #. type: Plain text
4641 #: build/C/man2/sigaction.2:109
4642 #, no-wrap
4643 msgid ""
4644 "struct sigaction {\n"
4645 "    void     (*sa_handler)(int);\n"
4646 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4647 "    sigset_t   sa_mask;\n"
4648 "    int        sa_flags;\n"
4649 "    void     (*sa_restorer)(void);\n"
4650 "};\n"
4651 msgstr ""
4652 "struct sigaction {\n"
4653 "    void     (*sa_handler)(int);\n"
4654 "    void     (*sa_sigaction)(int, siginfo_t *, void *);\n"
4655 "    sigset_t   sa_mask;\n"
4656 "    int        sa_flags;\n"
4657 "    void     (*sa_restorer)(void);\n"
4658 "};\n"
4659
4660 #. type: Plain text
4661 #: build/C/man2/sigaction.2:116
4662 msgid ""
4663 "On some architectures a union is involved: do not assign to both "
4664 "I<sa_handler> and I<sa_sigaction>."
4665 msgstr ""
4666 "アーキテクチャによっては共用体 (union) が用いられており、その場合には "
4667 "I<sa_handler> と I<sa_sigaction> の両方を同時に割り当てることはできない。"
4668
4669 #. type: Plain text
4670 #: build/C/man2/sigaction.2:123
4671 msgid ""
4672 "The I<sa_restorer> element is obsolete and should not be used.  POSIX does "
4673 "not specify a I<sa_restorer> element."
4674 msgstr ""
4675 "I<sa_restorer> 要素は廃止予定であり使用すべきではない。 POSIX には "
4676 "I<sa_restorer> 要素に関する規定はない。"
4677
4678 #. type: Plain text
4679 #: build/C/man2/sigaction.2:133
4680 msgid ""
4681 "I<sa_handler> specifies the action to be associated with I<signum> and may "
4682 "be B<SIG_DFL> for the default action, B<SIG_IGN> to ignore this signal, or a "
4683 "pointer to a signal handling function.  This function receives the signal "
4684 "number as its only argument."
4685 msgstr ""
4686 "I<sa_handler> は I<signum> に対応する動作を指定するもので、 デフォルトの動作"
4687 "を行う B<SIG_DFL>、 そのシグナルを無視する B<SIG_IGN>、 シグナルハンドラ関数"
4688 "へのポインタが設定できる。 シグナルハンドラ関数の引き数は一つであり、シグナル"
4689 "番号が引き数として 渡される。"
4690
4691 #. type: Plain text
4692 #: build/C/man2/sigaction.2:155
4693 msgid ""
4694 "If B<SA_SIGINFO> is specified in I<sa_flags>, then I<sa_sigaction> (instead "
4695 "of I<sa_handler>)  specifies the signal-handling function for I<signum>.  "
4696 "This function receives the signal number as its first argument, a pointer to "
4697 "a I<siginfo_t> as its second argument and a pointer to a I<ucontext_t> (cast "
4698 "to I<void\\ *>) as its third argument.  (Commonly, the handler function "
4699 "doesn't make any use of the third argument.  See B<getcontext>(3)  for "
4700 "further information about I<ucontext_t>.)"
4701 msgstr ""
4702 "I<sa_flags> に B<SA_SIGINFO> が指定された場合、 (I<sa_handler> ではなく)\n"
4703 "I<sa_sigaction> により I<signum> に対応するシグナルハンドラ関数が指定さ\n"
4704 "れる。指定される関数は、最初の引き数としてシグナル番号を、二番目の引き\n"
4705 "数として I<siginfo_t> へのポインタを、三番目の引き数として (I<void\\ *>\n"
4706 "にキャストした) I<ucontext_t> へのポインタを受けとる。 (一般的には、\n"
4707 "ハンドラ関数の三番目の引き数が使用されない。I<ucontext_t> についての\n"
4708 "詳しい情報は B<getcontext>(3) を参照。)"
4709
4710 #. type: Plain text
4711 #: build/C/man2/sigaction.2:165
4712 msgid ""
4713 "I<sa_mask> specifies a mask of signals which should be blocked (i.e., added "
4714 "to the signal mask of the thread in which the signal handler is invoked)  "
4715 "during execution of the signal handler.  In addition, the signal which "
4716 "triggered the handler will be blocked, unless the B<SA_NODEFER> flag is used."
4717 msgstr ""
4718 "I<sa_mask> は、シグナル・ハンドラ実行中に禁止 (block) すべきシグナルのマスク"
4719 "を指定する (ハンドラ実行中のシグナルの禁止は、シグナル・ハンドラが起動された"
4720 "スレッド のシグナルのマスクに追加することで行われる)。 さらに、 "
4721 "B<SA_NODEFER> フラグが指定されていない場合は、ハンドラを起動するきっかけとな"
4722 "る シグナルにも I<sa_mask> が適用される。"
4723
4724 #. type: Plain text
4725 #: build/C/man2/sigaction.2:169
4726 msgid ""
4727 "I<sa_flags> specifies a set of flags which modify the behavior of the "
4728 "signal.  It is formed by the bitwise OR of zero or more of the following:"
4729 msgstr ""
4730 "I<sa_flags> はシグナル・ハンドラの動作を変更するためのフラグの集合を指定す"
4731 "る。 I<sa_flags> には、以下に示すフラグの (0 個以上の) 論理和をとったものを指"
4732 "定する。"
4733
4734 #. type: TP
4735 #: build/C/man2/sigaction.2:170
4736 #, no-wrap
4737 msgid "B<SA_NOCLDSTOP>"
4738 msgstr "B<SA_NOCLDSTOP>"
4739
4740 #. type: Plain text
4741 #: build/C/man2/sigaction.2:187
4742 #, fuzzy
4743 #| msgid ""
4744 #| "If I<signum> is B<SIGCHLD>, do not receive notification when child "
4745 #| "processes stop (i.e., when they receive one of B<SIGSTOP>, B<SIGTSTP>, "
4746 #| "B<SIGTTIN> or B<SIGTTOU>)  or resume (i.e., they receive B<SIGCONT>)  "
4747 #| "(see B<wait>(2)).  This flag is meaningful only when establishing a "
4748 #| "handler for B<SIGCHLD>."
4749 msgid ""
4750 "If I<signum> is B<SIGCHLD>, do not receive notification when child processes "
4751 "stop (i.e., when they receive one of B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, or "
4752 "B<SIGTTOU>)  or resume (i.e., they receive B<SIGCONT>)  (see B<wait>(2)).  "
4753 "This flag is meaningful only when establishing a handler for B<SIGCHLD>."
4754 msgstr ""
4755 "I<signum> が B<SIGCHLD> の場合、 子プロセスが停止したり (子プロセスが "
4756 "B<SIGSTOP>, B<SIGTSTP>, B<SIGTTIN>, B<SIGTTOU> を受けたとき) 再開したり (子プ"
4757 "ロセスが B<SIGCONT> を受けたとき) したときに B<SIGCHLD> の通知を受けない。 こ"
4758 "のフラグは、 B<SIGCHLD> に対してハンドラを設定する際にのみ意味を持つ。"
4759
4760 #. type: TP
4761 #: build/C/man2/sigaction.2:187
4762 #, no-wrap
4763 msgid "B<SA_NOCLDWAIT> (since Linux 2.6)"
4764 msgstr "B<SA_NOCLDWAIT> (Linux 2.6 以降)"
4765
4766 #.  To be precise: Linux 2.5.60 -- MTK
4767 #. type: Plain text
4768 #: build/C/man2/sigaction.2:201
4769 msgid ""
4770 "If I<signum> is B<SIGCHLD>, do not transform children into zombies when they "
4771 "terminate.  See also B<waitpid>(2).  This flag is meaningful only when "
4772 "establishing a handler for B<SIGCHLD>, or when setting that signal's "
4773 "disposition to B<SIG_DFL>."
4774 msgstr ""
4775 "(Linux 2.6 以降)  I<signum> が B<SIGCHLD> の場合、子プロセスが終了したときに "
4776 "子プロセスをゾンビプロセスに変化させない (B<waitpid>(2)  も参照)。 このフラグ"
4777 "は、 B<SIGCHLD> に対してハンドラを設定する際、もしくはそのシグナルの処理方法"
4778 "を B<SIG_DFL> に設定する際にのみ意味を持つ。"
4779
4780 #. type: Plain text
4781 #: build/C/man2/sigaction.2:213
4782 msgid ""
4783 "If the B<SA_NOCLDWAIT> flag is set when establishing a handler for "
4784 "B<SIGCHLD>, POSIX.1 leaves it unspecified whether a B<SIGCHLD> signal is "
4785 "generated when a child process terminates.  On Linux, a B<SIGCHLD> signal is "
4786 "generated in this case; on some other implementations, it is not."
4787 msgstr ""
4788 "B<SIGCHLD> に対してハンドラを設定する際に B<SA_NOCLDWAIT> フラグをセットした"
4789 "場合、 子プロセスが終了した際に B<SIGCHLD> シグナルが生成されるかどうかは、 "
4790 "POSIX.1 では規定されていない。 Linux では、この状況で B<SIGCHLD> シグナルは生"
4791 "成される。 いくつかの他の実装では生成されない。"
4792
4793 #. type: TP
4794 #: build/C/man2/sigaction.2:213
4795 #, no-wrap
4796 msgid "B<SA_NODEFER>"
4797 msgstr "B<SA_NODEFER>"
4798
4799 #. type: Plain text
4800 #: build/C/man2/sigaction.2:220
4801 msgid ""
4802 "Do not prevent the signal from being received from within its own signal "
4803 "handler.  This flag is meaningful only when establishing a signal handler.  "
4804 "B<SA_NOMASK> is an obsolete, nonstandard synonym for this flag."
4805 msgstr ""
4806 "それ自身のシグナル・ハンドラーの内部にいる時でも そのシグナルをマスクしないよ"
4807 "うにする。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。 "
4808 "B<SA_NOMASK> はこのフラグと同じ意味だが、廃止されており、非標準である。"
4809
4810 #. type: TP
4811 #: build/C/man2/sigaction.2:220
4812 #, no-wrap
4813 msgid "B<SA_ONSTACK>"
4814 msgstr "B<SA_ONSTACK>"
4815
4816 #. type: Plain text
4817 #: build/C/man2/sigaction.2:226
4818 msgid ""
4819 "Call the signal handler on an alternate signal stack provided by "
4820 "B<sigaltstack>(2).  If an alternate stack is not available, the default "
4821 "stack will be used.  This flag is meaningful only when establishing a signal "
4822 "handler."
4823 msgstr ""
4824 "B<sigaltstack>(2)  で提供される別のシグナル・スタックでシグナルハンドラを呼び"
4825 "出す。 別のシグナル・スタックが利用可能でなければ、デフォルトのスタックが 使"
4826 "用される。 このフラグはシグナルハンドラを設定する際にのみ意味を持つ。"
4827
4828 #. type: TP
4829 #: build/C/man2/sigaction.2:226
4830 #, no-wrap
4831 msgid "B<SA_RESETHAND>"
4832 msgstr "B<SA_RESETHAND>"
4833
4834 #. type: Plain text
4835 #: build/C/man2/sigaction.2:232
4836 msgid ""
4837 "Restore the signal action to the default upon entry to the signal handler.  "
4838 "This flag is meaningful only when establishing a signal handler.  "
4839 "B<SA_ONESHOT> is an obsolete, nonstandard synonym for this flag."
4840 msgstr ""
4841 "シグナルハンドラを設定する際に、シグナルの動作をデフォルトに戻す。 このフラグ"
4842 "はシグナルハンドラを設定する際にのみ意味を持つ。 B<SA_ONESHOT> はこのフラグと"
4843 "同じ意味だが、廃止されており、非標準である。"
4844
4845 #. type: TP
4846 #: build/C/man2/sigaction.2:232
4847 #, no-wrap
4848 msgid "B<SA_RESTART>"
4849 msgstr "B<SA_RESTART>"
4850
4851 #. type: Plain text
4852 #: build/C/man2/sigaction.2:240
4853 msgid ""
4854 "Provide behavior compatible with BSD signal semantics by making certain "
4855 "system calls restartable across signals.  This flag is meaningful only when "
4856 "establishing a signal handler.  See B<signal>(7)  for a discussion of system "
4857 "call restarting."
4858 msgstr ""
4859 "いくつかのシステムコールをシグナルの通知の前後で再開できるようにして、 BSD シ"
4860 "グナル方式 (semantics) と互換性のある動作を提供する。 このフラグはシグナルハ"
4861 "ンドラを設定する際にのみ意味を持つ。 B<signal>(7)  に書かれているシステムコー"
4862 "ルの再開に関する議論を参照のこと。"
4863
4864 #. type: TP
4865 #: build/C/man2/sigaction.2:240
4866 #, no-wrap
4867 msgid "B<SA_SIGINFO> (since Linux 2.2)"
4868 msgstr "B<SA_SIGINFO> (Linux 2.2 以降)"
4869
4870 #.  (The
4871 #.  .I sa_sigaction
4872 #.  field was added in Linux 2.1.86.)
4873 #. type: Plain text
4874 #: build/C/man2/sigaction.2:251
4875 msgid ""
4876 "The signal handler takes three arguments, not one.  In this case, "
4877 "I<sa_sigaction> should be set instead of I<sa_handler>.  This flag is "
4878 "meaningful only when establishing a signal handler."
4879 msgstr ""
4880 "シグナルハンドラは一つではなく、三つの引き数を持つ。この場合は I<sa_handler> "
4881 "のかわりに I<sa_sigaction> を設定しなければならない このフラグはシグナルハン"
4882 "ドラを設定する際にのみ意味を持つ。"
4883
4884 #. type: Plain text
4885 #: build/C/man2/sigaction.2:258
4886 msgid ""
4887 "The I<siginfo_t> argument to I<sa_sigaction> is a struct with the following "
4888 "elements:"
4889 msgstr ""
4890 "I<sa_sigaction> のパラメータ I<siginfo_t> は以下の要素を持つ構造体である:"
4891
4892 #.  FIXME
4893 #.  si_trapno seems to be only used on SPARC and Alpha;
4894 #.  this page could use a little more detail on its purpose there.
4895 #.  In the kernel: si_tid
4896 #. type: Plain text
4897 #: build/C/man2/sigaction.2:289
4898 #, no-wrap
4899 msgid ""
4900 "siginfo_t {\n"
4901 "    int      si_signo;    /* Signal number */\n"
4902 "    int      si_errno;    /* An errno value */\n"
4903 "    int      si_code;     /* Signal code */\n"
4904 "    int      si_trapno;   /* Trap number that caused\n"
4905 "                             hardware-generated signal\n"
4906 "                             (unused on most architectures) */\n"
4907 "    pid_t    si_pid;      /* Sending process ID */\n"
4908 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
4909 "    int      si_status;   /* Exit value or signal */\n"
4910 "    clock_t  si_utime;    /* User time consumed */\n"
4911 "    clock_t  si_stime;    /* System time consumed */\n"
4912 "    sigval_t si_value;    /* Signal value */\n"
4913 "    int      si_int;      /* POSIX.1b signal */\n"
4914 "    void    *si_ptr;      /* POSIX.1b signal */\n"
4915 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
4916 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
4917 "    void    *si_addr;     /* Memory location which caused fault */\n"
4918 "    long     si_band;     /* Band event (was I<int> in\n"
4919 "                             glibc 2.3.2 and earlier) */\n"
4920 "    int      si_fd;       /* File descriptor */\n"
4921 "    short    si_addr_lsb; /* Least significant bit of address\n"
4922 "                             (since Linux 2.6.32) */\n"
4923 "}\n"
4924 msgstr ""
4925 "siginfo_t {\n"
4926 "    int      si_signo;    /* Signal number */\n"
4927 "    int      si_errno;    /* An errno value */\n"
4928 "    int      si_code;     /* Signal code */\n"
4929 "    int      si_trapno;   /* Trap number that caused\n"
4930 "                             hardware-generated signal\n"
4931 "                             (unused on most architectures) */\n"
4932 "    pid_t    si_pid;      /* Sending process ID */\n"
4933 "    uid_t    si_uid;      /* Real user ID of sending process */\n"
4934 "    int      si_status;   /* Exit value or signal */\n"
4935 "    clock_t  si_utime;    /* User time consumed */\n"
4936 "    clock_t  si_stime;    /* System time consumed */\n"
4937 "    sigval_t si_value;    /* Signal value */\n"
4938 "    int      si_int;      /* POSIX.1b signal */\n"
4939 "    void    *si_ptr;      /* POSIX.1b signal */\n"
4940 "    int      si_overrun;  /* Timer overrun count; POSIX.1b timers */\n"
4941 "    int      si_timerid;  /* Timer ID; POSIX.1b timers */\n"
4942 "    void    *si_addr;     /* Memory location which caused fault */\n"
4943 "    long     si_band;     /* Band event (was I<int> in\n"
4944 "                             glibc 2.3.2 and earlier) */\n"
4945 "    int      si_fd;       /* File descriptor */\n"
4946 "    short    si_addr_lsb; /* Least significant bit of address\n"
4947 "                             (since Linux 2.6.32) */\n"
4948 "}\n"
4949
4950 #. type: Plain text
4951 #: build/C/man2/sigaction.2:298
4952 msgid ""
4953 "I<si_signo>, I<si_errno> and I<si_code> are defined for all signals.  "
4954 "(I<si_errno> is generally unused on Linux.)  The rest of the struct may be a "
4955 "union, so that one should read only the fields that are meaningful for the "
4956 "given signal:"
4957 msgstr ""
4958 "I<si_signo>, I<si_errno>, I<si_code> は全てのシグナルに対して定義されている "
4959 "(I<si_errno> は Linux では一般的には使用されない)。 構造体の残りの部分は、共"
4960 "用体 (union) になっているかもしれない。 その場合は該当するシグナルにおいて意"
4961 "味のあるフィールドのみを読み込む ことができる。"
4962
4963 #. type: Plain text
4964 #: build/C/man2/sigaction.2:313
4965 msgid ""
4966 "Signals sent with B<kill>(2)  and B<sigqueue>(3)  fill in I<si_pid> and "
4967 "I<si_uid>.  In addition, signals sent with B<sigqueue>(3)  fill in I<si_int> "
4968 "and I<si_ptr> with the values specified by the sender of the signal; see "
4969 "B<sigqueue>(3)  for more details."
4970 msgstr ""
4971 "B<kill>(2) や B<sigqueue>(3) で送信されたシグナルでは I<si_pid> と I<si_uid> "
4972 "が設定される。\n"
4973 "さらに、 B<sigqueue>(3) で送信されたシグナルでは I<si_int> と I<si_pid> にシ"
4974 "グナルの送信者により指定された値が設定される。詳細は B<sigqueue>(3) を参照。"
4975
4976 #. type: Plain text
4977 #: build/C/man2/sigaction.2:329
4978 msgid ""
4979 "Signals sent by POSIX.1b timers (since Linux 2.6) fill in I<si_overrun> and "
4980 "I<si_timerid>.  The I<si_timerid> field is an internal ID used by the kernel "
4981 "to identify the timer; it is not the same as the timer ID returned by "
4982 "B<timer_create>(2).  The I<si_overrun> field is the timer overrun count; "
4983 "this is the same information as is obtained by a call to B<timer_getoverrun>"
4984 "(2).  These fields are nonstandard Linux extensions."
4985 msgstr ""
4986 "POSIX.1b タイマ (Linux 2.6 以降) は I<si_overrun> と I<si_timerid> を\n"
4987 "設定する。 I<si_timerid> フィールドはカーネルがタイマを特定するのに\n"
4988 "使用する内部 ID であり、 B<timer_create>(2) が返すタイマ ID と同じではな"
4989 "い。\n"
4990 "I<si_overrun> フィールドはタイマが回り切った回数である。\n"
4991 "これは B<timer_getoverrun>(2) の呼び出しで取得できる情報と同じである。\n"
4992 "これらのフィールドは非標準で Linux による拡張である。"
4993
4994 #. type: Plain text
4995 #: build/C/man2/sigaction.2:344
4996 msgid ""
4997 "Signals sent for message queue notification (see the description of "
4998 "B<SIGEV_SIGNAL> in B<mq_notify>(3))  fill in I<si_int>/I<si_ptr>, with the "
4999 "I<sigev_value> supplied to B<mq_notify>(3); I<si_pid>, with the process ID "
5000 "of the message sender; and I<si_uid>, with the real user ID of the message "
5001 "sender."
5002 msgstr ""
5003 "メッセージキューの通知用に送信されたシグナル (B<mq_notify>(3) の "
5004 "B<SIGEV_SIGNAL> の説明を参照) では、 I<si_int>/I<si_ptr> に B<mq_notify>(3) "
5005 "に渡された I<sigev_value> が設定される。 I<si_pid> にはメッセージ送信者のプロ"
5006 "セス ID が設定され、 I<si_uid> にはメッセージ送信者の実ユーザ ID が設定され"
5007 "る。"
5008
5009 #.  FIXME .
5010 #.  When si_utime and si_stime where originally implemented, the
5011 #.  measurement unit was HZ, which was the same as clock ticks
5012 #.  (sysconf(_SC_CLK_TCK)).  In 2.6, HZ became configurable, and
5013 #.  was *still* used as the unit to return the info these fields,
5014 #.  with the result that the field values depended on the the
5015 #.  configured HZ.  Of course, the should have been measured in
5016 #.  USER_HZ instead, so that sysconf(_SC_CLK_TCK) could be used to
5017 #.  convert to seconds.  I have a queued patch to fix this:
5018 #.  http://thread.gmane.org/gmane.linux.kernel/698061/ .
5019 #.  This patch made it into 2.6.27.
5020 #.  But note that these fields still don't return the times of
5021 #.  waited-for children (as is done by getrusage() and times()
5022 #.  and wait4()).  Solaris 8 does include child times.
5023 #. type: Plain text
5024 #: build/C/man2/sigaction.2:391
5025 #, fuzzy
5026 #| msgid ""
5027 #| "B<SIGCHLD> fills in I<si_pid>, I<si_uid>, I<si_status>, I<si_utime> and "
5028 #| "I<si_stime>, providing information about the child.  The I<si_pid> field "
5029 #| "is the process ID of the child; I<si_uid> is the child's real user ID.  "
5030 #| "The I<si_status> field contains the exit status of the child (if "
5031 #| "I<si_code> is B<CLD_EXITED>), or the signal number that caused the "
5032 #| "process to change state.  The I<si_utime> and I<si_stime> contain the "
5033 #| "user and system CPU time used by the child process; these fields do not "
5034 #| "include the times used by waited-for children (unlike B<getrusage>(2)  "
5035 #| "and B<time>(2)).  In kernels up to 2.6, and since 2.6.27, these fields "
5036 #| "report CPU time in units of I<sysconf(_SC_CLK_TCK)>.  In 2.6 kernels "
5037 #| "before 2.6.27, a bug meant that these fields reported time in units of "
5038 #| "the (configurable) system jiffy (see B<time>(7))."
5039 msgid ""
5040 "B<SIGCHLD> fills in I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>, and "
5041 "I<si_stime>, providing information about the child.  The I<si_pid> field is "
5042 "the process ID of the child; I<si_uid> is the child's real user ID.  The "
5043 "I<si_status> field contains the exit status of the child (if I<si_code> is "
5044 "B<CLD_EXITED>), or the signal number that caused the process to change "
5045 "state.  The I<si_utime> and I<si_stime> contain the user and system CPU time "
5046 "used by the child process; these fields do not include the times used by "
5047 "waited-for children (unlike B<getrusage>(2)  and B<time>(2)).  In kernels up "
5048 "to 2.6, and since 2.6.27, these fields report CPU time in units of I<sysconf"
5049 "(_SC_CLK_TCK)>.  In 2.6 kernels before 2.6.27, a bug meant that these fields "
5050 "reported time in units of the (configurable) system jiffy (see B<time>(7))."
5051 msgstr ""
5052 "B<SIGCHLD> は I<si_pid>, I<si_uid>, I<si_status>, I<si_utime>,\n"
5053 "I<si_stime> を設定し、子プロセスに関する情報を提供する。\n"
5054 "I<si_pid> フィールドは子プロセスのプロセス ID で、\n"
5055 "I<si_uid> フィールドは子プロセスの実ユーザ ID である。\n"
5056 "I<si_stime> フィールドには、 (I<si_code> が B<CLD_EXITED> の場合は) \n"
5057 "子プロセスの終了ステータスが、それ以外の場合は状態が変化する原因と\n"
5058 "なったシグナル番号が格納される。\n"
5059 "I<si_utime> と I<si_stime> には子プロセスが使用したユーザ CPU 時間とシ\n"
5060 "ステム CPU 時間がそれぞれ格納される。(B<getrusage>(2) や B<time>(2) と\n"
5061 "異なり) これらのフィールドには wait 待ちの子プロセスにより使用された時\n"
5062 "間は含まれない。 2.6 より前と 2.6.27 以降のカーネルでは、 これらのフィー\n"
5063 "ルドに格納される CPU 時間の単位は I<sysconf(_SC_CLK_TCK)> である。\n"
5064 "2.6.27 より前の 2.6 系のカーネルでは、バグがあり、 これらのフィールドの\n"
5065 "CPU 時間の単位が (カーネルのコンフィグで指定される) システムの jiffy で\n"
5066 "あった (B<time>(7) 参照)。"
5067
5068 #.  FIXME SIGTRAP also sets the following for ptrace_notify() ?
5069 #.      info.si_code = exit_code;
5070 #.      info.si_pid = task_pid_vnr(current);
5071 #.      info.si_uid = current_uid();  /* Real UID */
5072 #. type: Plain text
5073 #: build/C/man2/sigaction.2:427
5074 msgid ""
5075 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, and B<SIGTRAP> fill in "
5076 "I<si_addr> with the address of the fault.  On some architectures, these "
5077 "signals also fill in the I<si_trapno> field.  Some suberrors of B<SIGBUS>, "
5078 "in particular B<BUS_MCEERR_AO> and B<BUS_MCEERR_AR>, also fill in "
5079 "I<si_addr_lsb>.  This field indicates the least significant bit of the "
5080 "reported address and therefore the extent of the corruption.  For example, "
5081 "if a full page was corrupted, I<si_addr_lsb> contains I<log2(sysconf"
5082 "(_SC_PAGESIZE))>.  B<BUS_MCERR_*> and I<si_addr_lsb> are Linux-specific "
5083 "extensions."
5084 msgstr ""
5085 "B<SIGILL>, B<SIGFPE>, B<SIGSEGV>, B<SIGBUS>, B<SIGTRAP> では、 I<si_addr> に "
5086 "fault が発生したアドレスが設定される。 いくつかのアーキテクチャでは、 これら"
5087 "のシグナルは I<si_trapno> フィールドにも設定される。 B<SIGBUS> が発生するエ"
5088 "ラーのいくつか、特に B<BUS_MCEERR_AO> と B<BUS_MCEERR_AR> では、 "
5089 "I<si_addr_lsb> も設定される。 このフィールドは報告されるアドレスの最下位ビッ"
5090 "トを示し、 これによりメモリ破壊の程度を知ることができる。 例えば、ページ全体"
5091 "が壊れている場合には I<si_addr_lsb> には I<log2(sysconf(_SC_PAGESIZE))> が入"
5092 "る。 B<BUS_MCERR_*> と I<si_addr_lsb> は Linux 固有の拡張である。"
5093
5094 #. type: Plain text
5095 #: build/C/man2/sigaction.2:441
5096 msgid ""
5097 "B<SIGIO>/B<SIGPOLL> (the two names are synonyms on Linux)  fills in "
5098 "I<si_band> and I<si_fd>.  The I<si_band> event is a bit mask containing the "
5099 "same values as are filled in the I<revents> field by B<poll>(2).  The "
5100 "I<si_fd> field indicates the file descriptor for which the I/O event "
5101 "occurred."
5102 msgstr ""
5103 "B<SIGIO>/B<SIGPOLL> (2 つの名前は Linux では同義語) では I<si_band> と "
5104 "I<si_fd> が設定される。 I<si_band> イベントは、 B<poll>(2) が I<revents> "
5105 "フィールドに設定するのと同じ値が入ったビットマスクである。 I<si_fd> フィール"
5106 "ドは I/O イベントが発生したファイルディスクリプタを示す。"
5107
5108 #. type: Plain text
5109 #: build/C/man2/sigaction.2:448
5110 msgid ""
5111 "I<si_code> is a value (not a bit mask)  indicating why this signal was "
5112 "sent.  The following list shows the values which can be placed in I<si_code> "
5113 "for any signal, along with reason that the signal was generated."
5114 msgstr ""
5115 "I<si_code> は、そのシグナルが送信された理由を示す値である (ビットマスクではな"
5116 "い)。 以下は、どのシグナルの場合でも I<si_code> に入りうる値のリストである。"
5117 "シグナルが生成された理由も記載している。"
5118
5119 #. type: TP
5120 #: build/C/man2/sigaction.2:449
5121 #, no-wrap
5122 msgid "B<SI_USER>"
5123 msgstr "B<SI_USER>"
5124
5125 #. type: TP
5126 #: build/C/man2/sigaction.2:452 build/C/man7/signal.7:111
5127 #, no-wrap
5128 msgid "B<kill>(2)"
5129 msgstr "B<kill>(2)"
5130
5131 #. type: TP
5132 #: build/C/man2/sigaction.2:452
5133 #, no-wrap
5134 msgid "B<SI_KERNEL>"
5135 msgstr "B<SI_KERNEL>"
5136
5137 #. type: Plain text
5138 #: build/C/man2/sigaction.2:455
5139 msgid "Sent by the kernel."
5140 msgstr "カーネルにより送信された"
5141
5142 #. type: TP
5143 #: build/C/man2/sigaction.2:455
5144 #, no-wrap
5145 msgid "B<SI_QUEUE>"
5146 msgstr "B<SI_QUEUE>"
5147
5148 #. type: TP
5149 #: build/C/man2/sigaction.2:458 build/C/man7/signal.7:128
5150 #, no-wrap
5151 msgid "B<sigqueue>(3)"
5152 msgstr "B<sigqueue>(3)"
5153
5154 #. type: TP
5155 #: build/C/man2/sigaction.2:458
5156 #, no-wrap
5157 msgid "B<SI_TIMER>"
5158 msgstr "B<SI_TIMER>"
5159
5160 #. type: Plain text
5161 #: build/C/man2/sigaction.2:461
5162 msgid "POSIX timer expired"
5163 msgstr "POSIX タイマが満了した"
5164
5165 #. type: TP
5166 #: build/C/man2/sigaction.2:461
5167 #, no-wrap
5168 msgid "B<SI_MESGQ>"
5169 msgstr "B<SI_MESGQ>"
5170
5171 #. type: Plain text
5172 #: build/C/man2/sigaction.2:465
5173 msgid ""
5174 "POSIX message queue state changed (since Linux 2.6.6); see B<mq_notify>(3)"
5175 msgstr ""
5176 "POSIX メッセージキューの状態が変化した (Linux 2.6.6 以降)。 B<mq_notify>(3)B<"
5177 "参照。>"
5178
5179 #. type: TP
5180 #: build/C/man2/sigaction.2:465
5181 #, no-wrap
5182 msgid "B<SI_ASYNCIO>"
5183 msgstr "B<SI_ASYNCIO>"
5184
5185 #. type: Plain text
5186 #: build/C/man2/sigaction.2:468
5187 msgid "AIO completed"
5188 msgstr "非同期 IO (AIO) が完了した"
5189
5190 #. type: TP
5191 #: build/C/man2/sigaction.2:468
5192 #, no-wrap
5193 msgid "B<SI_SIGIO>"
5194 msgstr "B<SI_SIGIO>"
5195
5196 #. type: Plain text
5197 #: build/C/man2/sigaction.2:477
5198 msgid ""
5199 "Queued B<SIGIO> (only in kernels up to Linux 2.2; from Linux 2.4 onward "
5200 "B<SIGIO>/B<SIGPOLL> fills in I<si_code> as described below)."
5201 msgstr ""
5202 "B<SIGIO> がキューイングされた (Linux 2.2 以下のカーネルのみ; Linux 2.4 以降で"
5203 "は以下で説明する B<SIGIO>/B<SIGPOLL> の I<si_code> が入る)。"
5204
5205 #. type: TP
5206 #: build/C/man2/sigaction.2:477
5207 #, no-wrap
5208 msgid "B<SI_TKILL>"
5209 msgstr "B<SI_TKILL>"
5210
5211 #.  SI_DETHREAD is defined in 2.6.9 sources, but isn't implemented
5212 #.  It appears to have been an idea that was tried during 2.5.6
5213 #.  through to 2.5.24 and then was backed out.
5214 #. type: Plain text
5215 #: build/C/man2/sigaction.2:486
5216 msgid "B<tkill>(2)  or B<tgkill>(2)  (since Linux 2.4.19)"
5217 msgstr "B<tkill>(2)  または B<tgkill>(2)  (Linux 2.4.19 以降)"
5218
5219 #. type: Plain text
5220 #: build/C/man2/sigaction.2:493
5221 msgid ""
5222 "The following values can be placed in I<si_code> for a B<SIGILL> signal:"
5223 msgstr "B<SIGILL> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5224
5225 #. type: TP
5226 #: build/C/man2/sigaction.2:494
5227 #, no-wrap
5228 msgid "B<ILL_ILLOPC>"
5229 msgstr "B<ILL_ILLOPC>"
5230
5231 #. type: Plain text
5232 #: build/C/man2/sigaction.2:497
5233 msgid "illegal opcode"
5234 msgstr "不正な命令コード (opcode)"
5235
5236 #. type: TP
5237 #: build/C/man2/sigaction.2:497
5238 #, no-wrap
5239 msgid "B<ILL_ILLOPN>"
5240 msgstr "B<ILL_ILLOPN>"
5241
5242 #. type: Plain text
5243 #: build/C/man2/sigaction.2:500
5244 msgid "illegal operand"
5245 msgstr "不正なオペランド"
5246
5247 #. type: TP
5248 #: build/C/man2/sigaction.2:500
5249 #, no-wrap
5250 msgid "B<ILL_ILLADR>"
5251 msgstr "B<ILL_ILLADR>"
5252
5253 #. type: Plain text
5254 #: build/C/man2/sigaction.2:503
5255 msgid "illegal addressing mode"
5256 msgstr "不正なアドレッシングモード"
5257
5258 #. type: TP
5259 #: build/C/man2/sigaction.2:503
5260 #, no-wrap
5261 msgid "B<ILL_ILLTRP>"
5262 msgstr "B<ILL_ILLTRP>"
5263
5264 #. type: Plain text
5265 #: build/C/man2/sigaction.2:506
5266 msgid "illegal trap"
5267 msgstr "不正なトラップ"
5268
5269 #. type: TP
5270 #: build/C/man2/sigaction.2:506
5271 #, no-wrap
5272 msgid "B<ILL_PRVOPC>"
5273 msgstr "B<ILL_PRVOPC>"
5274
5275 #. type: Plain text
5276 #: build/C/man2/sigaction.2:509
5277 msgid "privileged opcode"
5278 msgstr "特権が必要な命令コード (opcode)"
5279
5280 #. type: TP
5281 #: build/C/man2/sigaction.2:509
5282 #, no-wrap
5283 msgid "B<ILL_PRVREG>"
5284 msgstr "B<ILL_PRVREG>"
5285
5286 #. type: Plain text
5287 #: build/C/man2/sigaction.2:512
5288 msgid "privileged register"
5289 msgstr "特権が必要なレジスタ"
5290
5291 #. type: TP
5292 #: build/C/man2/sigaction.2:512
5293 #, no-wrap
5294 msgid "B<ILL_COPROC>"
5295 msgstr "B<ILL_COPROC>"
5296
5297 #. type: Plain text
5298 #: build/C/man2/sigaction.2:515
5299 msgid "coprocessor error"
5300 msgstr "コプロセッサのエラー"
5301
5302 #. type: TP
5303 #: build/C/man2/sigaction.2:515
5304 #, no-wrap
5305 msgid "B<ILL_BADSTK>"
5306 msgstr "B<ILL_BADSTK>"
5307
5308 #. type: Plain text
5309 #: build/C/man2/sigaction.2:518
5310 msgid "internal stack error"
5311 msgstr "内部スタックエラー"
5312
5313 #. type: Plain text
5314 #: build/C/man2/sigaction.2:525
5315 msgid ""
5316 "The following values can be placed in I<si_code> for a B<SIGFPE> signal:"
5317 msgstr "B<SIGFPE> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5318
5319 #. type: TP
5320 #: build/C/man2/sigaction.2:526
5321 #, no-wrap
5322 msgid "B<FPE_INTDIV>"
5323 msgstr "B<FPE_INTDIV>"
5324
5325 #. type: Plain text
5326 #: build/C/man2/sigaction.2:529
5327 msgid "integer divide by zero"
5328 msgstr "整数の 0 による除算"
5329
5330 #. type: TP
5331 #: build/C/man2/sigaction.2:529
5332 #, no-wrap
5333 msgid "B<FPE_INTOVF>"
5334 msgstr "B<FPE_INTOVF>"
5335
5336 #. type: Plain text
5337 #: build/C/man2/sigaction.2:532
5338 msgid "integer overflow"
5339 msgstr "整数のオーバーフロー"
5340
5341 #. type: TP
5342 #: build/C/man2/sigaction.2:532
5343 #, no-wrap
5344 msgid "B<FPE_FLTDIV>"
5345 msgstr "B<FPE_FLTDIV>"
5346
5347 #. type: Plain text
5348 #: build/C/man2/sigaction.2:535
5349 msgid "floating-point divide by zero"
5350 msgstr "浮動小数点の 0 による除算"
5351
5352 #. type: TP
5353 #: build/C/man2/sigaction.2:535
5354 #, no-wrap
5355 msgid "B<FPE_FLTOVF>"
5356 msgstr "B<FPE_FLTOVF>"
5357
5358 #. type: Plain text
5359 #: build/C/man2/sigaction.2:538
5360 msgid "floating-point overflow"
5361 msgstr "浮動小数点のオーバーフロー"
5362
5363 #. type: TP
5364 #: build/C/man2/sigaction.2:538
5365 #, no-wrap
5366 msgid "B<FPE_FLTUND>"
5367 msgstr "B<FPE_FLTUND>"
5368
5369 #. type: Plain text
5370 #: build/C/man2/sigaction.2:541
5371 msgid "floating-point underflow"
5372 msgstr "浮動小数点のアンダーフロー"
5373
5374 #. type: TP
5375 #: build/C/man2/sigaction.2:541
5376 #, no-wrap
5377 msgid "B<FPE_FLTRES>"
5378 msgstr "B<FPE_FLTRES>"
5379
5380 #. type: Plain text
5381 #: build/C/man2/sigaction.2:544
5382 msgid "floating-point inexact result"
5383 msgstr "浮動小数点の不正確な演算結果 (inexact result)"
5384
5385 #. type: TP
5386 #: build/C/man2/sigaction.2:544
5387 #, no-wrap
5388 msgid "B<FPE_FLTINV>"
5389 msgstr "B<FPE_FLTINV>"
5390
5391 #. type: Plain text
5392 #: build/C/man2/sigaction.2:547
5393 msgid "floating-point invalid operation"
5394 msgstr "浮動小数点の不正な操作"
5395
5396 #. type: TP
5397 #: build/C/man2/sigaction.2:547
5398 #, no-wrap
5399 msgid "B<FPE_FLTSUB>"
5400 msgstr "B<FPE_FLTSUB>"
5401
5402 #. type: Plain text
5403 #: build/C/man2/sigaction.2:550
5404 msgid "subscript out of range"
5405 msgstr "範囲外の添字 (subscript)"
5406
5407 #. type: Plain text
5408 #: build/C/man2/sigaction.2:557
5409 msgid ""
5410 "The following values can be placed in I<si_code> for a B<SIGSEGV> signal:"
5411 msgstr "B<SIGSEGV> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5412
5413 #. type: TP
5414 #: build/C/man2/sigaction.2:558
5415 #, no-wrap
5416 msgid "B<SEGV_MAPERR>"
5417 msgstr "B<SEGV_MAPERR>"
5418
5419 #. type: Plain text
5420 #: build/C/man2/sigaction.2:561
5421 msgid "address not mapped to object"
5422 msgstr "オブジェクトにマッピングされていないアドレス"
5423
5424 #. type: TP
5425 #: build/C/man2/sigaction.2:561
5426 #, no-wrap
5427 msgid "B<SEGV_ACCERR>"
5428 msgstr "B<SEGV_ACCERR>"
5429
5430 #. type: Plain text
5431 #: build/C/man2/sigaction.2:564
5432 msgid "invalid permissions for mapped object"
5433 msgstr "マッピングされたオブジェクトに対するアクセス許可がない"
5434
5435 #. type: Plain text
5436 #: build/C/man2/sigaction.2:571
5437 msgid ""
5438 "The following values can be placed in I<si_code> for a B<SIGBUS> signal:"
5439 msgstr "B<SIGBUS> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5440
5441 #. type: TP
5442 #: build/C/man2/sigaction.2:572
5443 #, no-wrap
5444 msgid "B<BUS_ADRALN>"
5445 msgstr "B<BUS_ADRALN>"
5446
5447 #. type: Plain text
5448 #: build/C/man2/sigaction.2:575
5449 msgid "invalid address alignment"
5450 msgstr "不正なアドレス・アライメント (alignment)"
5451
5452 #. type: TP
5453 #: build/C/man2/sigaction.2:575
5454 #, no-wrap
5455 msgid "B<BUS_ADRERR>"
5456 msgstr "B<BUS_ADRERR>"
5457
5458 #. type: Plain text
5459 #: build/C/man2/sigaction.2:578
5460 msgid "nonexistent physical address"
5461 msgstr "存在しない物理アドレス"
5462
5463 #. type: TP
5464 #: build/C/man2/sigaction.2:578
5465 #, no-wrap
5466 msgid "B<BUS_OBJERR>"
5467 msgstr "B<BUS_OBJERR>"
5468
5469 #. type: Plain text
5470 #: build/C/man2/sigaction.2:581
5471 msgid "object-specific hardware error"
5472 msgstr "オブジェクト固有のハードウェアエラー"
5473
5474 #. type: TP
5475 #: build/C/man2/sigaction.2:581
5476 #, no-wrap
5477 msgid "B<BUS_MCEERR_AR> (since Linux 2.6.32)"
5478 msgstr "B<BUS_MCEERR_AR> (Linux 2.6.32 以降)"
5479
5480 #. type: Plain text
5481 #: build/C/man2/sigaction.2:584
5482 msgid "Hardware memory error consumed on a machine check; action required."
5483 msgstr ""
5484 "マシンチェックで使用中のハードウェアメモリのエラーが検出された。対応が必須。"
5485
5486 #. type: TP
5487 #: build/C/man2/sigaction.2:584
5488 #, no-wrap
5489 msgid "B<BUS_MCEERR_AO> (since Linux 2.6.32)"
5490 msgstr "B<BUS_MCEERR_AO> (Linux 2.6.32  以降)"
5491
5492 #. type: Plain text
5493 #: build/C/man2/sigaction.2:587
5494 msgid ""
5495 "Hardware memory error detected in process but not consumed; action optional."
5496 msgstr ""
5497 "実行中にハードウェアメモリエラーが検出されたが、使用中のメモリではない。対応"
5498 "は必須ではない。"
5499
5500 #. type: Plain text
5501 #: build/C/man2/sigaction.2:594
5502 msgid ""
5503 "The following values can be placed in I<si_code> for a B<SIGTRAP> signal:"
5504 msgstr "B<SIGTRAP> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5505
5506 #. type: TP
5507 #: build/C/man2/sigaction.2:595
5508 #, no-wrap
5509 msgid "B<TRAP_BRKPT>"
5510 msgstr "B<TRAP_BRKPT>"
5511
5512 #. type: Plain text
5513 #: build/C/man2/sigaction.2:598
5514 msgid "process breakpoint"
5515 msgstr "プロセスのブレークポイント"
5516
5517 #. type: TP
5518 #: build/C/man2/sigaction.2:598
5519 #, no-wrap
5520 msgid "B<TRAP_TRACE>"
5521 msgstr "B<TRAP_TRACE>"
5522
5523 #. type: Plain text
5524 #: build/C/man2/sigaction.2:601
5525 msgid "process trace trap"
5526 msgstr "プロセスのトレース・トラップ"
5527
5528 #. type: TP
5529 #: build/C/man2/sigaction.2:601
5530 #, no-wrap
5531 msgid "B<TRAP_BRANCH> (since Linux 2.4)"
5532 msgstr "B<TRAP_BRANCH> (Linux 2.4 以降)"
5533
5534 #. type: Plain text
5535 #: build/C/man2/sigaction.2:604
5536 msgid "process taken branch trap"
5537 msgstr "プロセスのブランチ・トラップ"
5538
5539 #. type: TP
5540 #: build/C/man2/sigaction.2:604
5541 #, no-wrap
5542 msgid "B<TRAP_HWBKPT> (since Linux 2.4)"
5543 msgstr "B<TRAP_HWBKPT> (Linux 2.4 以降)"
5544
5545 #. type: Plain text
5546 #: build/C/man2/sigaction.2:607
5547 msgid "hardware breakpoint/watchpoint"
5548 msgstr "ハードウェア・ブレークポイント/ウォッチポイント"
5549
5550 #. type: Plain text
5551 #: build/C/man2/sigaction.2:614
5552 msgid ""
5553 "The following values can be placed in I<si_code> for a B<SIGCHLD> signal:"
5554 msgstr "B<SIGCHLD> シグナルの場合、 I<si_code> には以下の値が入る可能性がある:"
5555
5556 #. type: TP
5557 #: build/C/man2/sigaction.2:615
5558 #, no-wrap
5559 msgid "B<CLD_EXITED>"
5560 msgstr "B<CLD_EXITED>"
5561
5562 #. type: Plain text
5563 #: build/C/man2/sigaction.2:618
5564 msgid "child has exited"
5565 msgstr "子プロセスが終了した (exited)"
5566
5567 #. type: TP
5568 #: build/C/man2/sigaction.2:618
5569 #, no-wrap
5570 msgid "B<CLD_KILLED>"
5571 msgstr "B<CLD_KILLED>"
5572
5573 #. type: Plain text
5574 #: build/C/man2/sigaction.2:621
5575 msgid "child was killed"
5576 msgstr "子プロセスが kill された"
5577
5578 #. type: TP
5579 #: build/C/man2/sigaction.2:621
5580 #, no-wrap
5581 msgid "B<CLD_DUMPED>"
5582 msgstr "B<CLD_DUMPED>"
5583
5584 #. type: Plain text
5585 #: build/C/man2/sigaction.2:624
5586 msgid "child terminated abnormally"
5587 msgstr "子プロセスが異常終了した"
5588
5589 #. type: TP
5590 #: build/C/man2/sigaction.2:624
5591 #, no-wrap
5592 msgid "B<CLD_TRAPPED>"
5593 msgstr "B<CLD_TRAPPED>"
5594
5595 #. type: Plain text
5596 #: build/C/man2/sigaction.2:627
5597 msgid "traced child has trapped"
5598 msgstr "トレース対象の子プロセスがトラップを上げた"
5599
5600 #. type: TP
5601 #: build/C/man2/sigaction.2:627
5602 #, no-wrap
5603 msgid "B<CLD_STOPPED>"
5604 msgstr "B<CLD_STOPPED>"
5605
5606 #. type: Plain text
5607 #: build/C/man2/sigaction.2:630
5608 msgid "child has stopped"
5609 msgstr "子プロセスが停止 (stop) した"
5610
5611 #. type: TP
5612 #: build/C/man2/sigaction.2:630
5613 #, no-wrap
5614 msgid "B<CLD_CONTINUED>"
5615 msgstr "B<CLD_CONTINUED>"
5616
5617 #. type: Plain text
5618 #: build/C/man2/sigaction.2:633
5619 msgid "stopped child has continued (since Linux 2.6.9)"
5620 msgstr "停止していた子プロセスが再開した (Linux 2.6.9 以降)"
5621
5622 #. type: Plain text
5623 #: build/C/man2/sigaction.2:640
5624 msgid ""
5625 "The following values can be placed in I<si_code> for a B<SIGIO>/B<SIGPOLL> "
5626 "signal:"
5627 msgstr ""
5628 "B<SIGIO>/B<SIGPOLL> シグナルの場合、 I<si_code> には以下の値が入る可能性があ"
5629 "る:"
5630
5631 #. type: TP
5632 #: build/C/man2/sigaction.2:641
5633 #, no-wrap
5634 msgid "B<POLL_IN>"
5635 msgstr "B<POLL_IN>"
5636
5637 #. type: Plain text
5638 #: build/C/man2/sigaction.2:644
5639 msgid "data input available"
5640 msgstr "入力データが利用可能"
5641
5642 #. type: TP
5643 #: build/C/man2/sigaction.2:644
5644 #, no-wrap
5645 msgid "B<POLL_OUT>"
5646 msgstr "B<POLL_OUT>"
5647
5648 #. type: Plain text
5649 #: build/C/man2/sigaction.2:647
5650 msgid "output buffers available"
5651 msgstr "出力バッファが利用可能"
5652
5653 #. type: TP
5654 #: build/C/man2/sigaction.2:647
5655 #, no-wrap
5656 msgid "B<POLL_MSG>"
5657 msgstr "B<POLL_MSG>"
5658
5659 #. type: Plain text
5660 #: build/C/man2/sigaction.2:650
5661 msgid "input message available"
5662 msgstr "入力メッセージが利用可能"
5663
5664 #. type: TP
5665 #: build/C/man2/sigaction.2:650
5666 #, no-wrap
5667 msgid "B<POLL_ERR>"
5668 msgstr "B<POLL_ERR>"
5669
5670 #. type: Plain text
5671 #: build/C/man2/sigaction.2:653
5672 msgid "I/O error"
5673 msgstr "I/O エラー"
5674
5675 #. type: TP
5676 #: build/C/man2/sigaction.2:653
5677 #, no-wrap
5678 msgid "B<POLL_PRI>"
5679 msgstr "B<POLL_PRI>"
5680
5681 #. type: Plain text
5682 #: build/C/man2/sigaction.2:656
5683 msgid "high priority input available"
5684 msgstr "高優先の入力が利用可能"
5685
5686 #. type: TP
5687 #: build/C/man2/sigaction.2:656
5688 #, no-wrap
5689 msgid "B<POLL_HUP>"
5690 msgstr "B<POLL_HUP>"
5691
5692 #. type: Plain text
5693 #: build/C/man2/sigaction.2:659
5694 msgid "device disconnected"
5695 msgstr "デバイスが接続されていない"
5696
5697 #. type: Plain text
5698 #: build/C/man2/sigaction.2:665
5699 msgid ""
5700 "B<sigaction>()  returns 0 on success; on error, -1 is returned, and I<errno> "
5701 "is set to indicate the error."
5702 msgstr ""
5703 "B<sigaction>() 関数は成功すると 0 を返す。 エラーの場合、-1 を返し、 "
5704 "I<errno> にエラーを示す値をセットする。"
5705
5706 #. type: Plain text
5707 #: build/C/man2/sigaction.2:670
5708 msgid ""
5709 "I<act> or I<oldact> points to memory which is not a valid part of the "
5710 "process address space."
5711 msgstr ""
5712 "I<act> か I<oldact> が指しているメモリが正しいプロセスのアドレス空間にない。"
5713
5714 #. type: Plain text
5715 #: build/C/man2/sigaction.2:677
5716 msgid ""
5717 "An invalid signal was specified.  This will also be generated if an attempt "
5718 "is made to change the action for B<SIGKILL> or B<SIGSTOP>, which cannot be "
5719 "caught or ignored."
5720 msgstr ""
5721 "無効なシグナルが指定された。補足 (catch) したり無視したりできない シグナルで"
5722 "ある B<SIGKILL> や B<SIGSTOP> に対する動作を変更しようとした場合にも発生す"
5723 "る。"
5724
5725 #.  SVr4 does not document the EINTR condition.
5726 #. type: Plain text
5727 #: build/C/man2/sigaction.2:680
5728 msgid "POSIX.1-2001, SVr4."
5729 msgstr "POSIX.1-2001, SVr4."
5730
5731 #. type: Plain text
5732 #: build/C/man2/sigaction.2:688 build/C/man7/signal.7:105
5733 msgid ""
5734 "A child created via B<fork>(2)  inherits a copy of its parent's signal "
5735 "dispositions.  During an B<execve>(2), the dispositions of handled signals "
5736 "are reset to the default; the dispositions of ignored signals are left "
5737 "unchanged."
5738 msgstr ""
5739 "B<fork>(2) 経由で作成された子プロセスは、親プロセスのシグナルの処理方法の コ"
5740 "ピーを継承する。\n"
5741 "B<execve>(2) の前後で、ハンドラが設定されているシグナルの処理方法はデフォルト"
5742 "にリセットされ、\n"
5743 "無視が設定されているシグナルの処理方法は変更されずそのままとなる。"
5744
5745 #. type: Plain text
5746 #: build/C/man2/sigaction.2:706 build/C/man2/signal.2:134
5747 msgid ""
5748 "According to POSIX, the behavior of a process is undefined after it ignores "
5749 "a B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> signal that was not generated by "
5750 "B<kill>(2)  or B<raise>(3).  Integer division by zero has undefined result.  "
5751 "On some architectures it will generate a B<SIGFPE> signal.  (Also dividing "
5752 "the most negative integer by -1 may generate B<SIGFPE>.)  Ignoring this "
5753 "signal might lead to an endless loop."
5754 msgstr ""
5755 "POSIX では、 B<kill>(2)  や B<raise>(3)  で生成できないシグナル B<SIGFPE>, "
5756 "B<SIGILL>, B<SIGSEGV> を無視 (ignore) した場合、その後の動作は未定義である。 "
5757 "ゼロによる整数割り算の結果は未定義となる。 アーキテクチャーによっては、このと"
5758 "き B<SIGFPE> シグナルが生成される。 (同様に負の最大整数を -1 で割ると "
5759 "B<SIGFPE> が生成されるかもしれない)  このシグナルを無視すると無限ループに陥る"
5760 "かもしれない。"
5761
5762 #. type: Plain text
5763 #: build/C/man2/sigaction.2:723
5764 msgid ""
5765 "POSIX.1-1990 disallowed setting the action for B<SIGCHLD> to B<SIG_IGN>.  "
5766 "POSIX.1-2001 allows this possibility, so that ignoring B<SIGCHLD> can be "
5767 "used to prevent the creation of zombies (see B<wait>(2)).  Nevertheless, the "
5768 "historical BSD and System V behaviors for ignoring B<SIGCHLD> differ, so "
5769 "that the only completely portable method of ensuring that terminated "
5770 "children do not become zombies is to catch the B<SIGCHLD> signal and perform "
5771 "a B<wait>(2)  or similar."
5772 msgstr ""
5773 "POSIX.1-1990 では B<SIGCHLD> に B<SIG_IGN> を設定することを認めていない。 "
5774 "POSIX.1-2001 では認められており、 B<SIGCHLD> を無視することでゾンビプロセスの"
5775 "生成を防止することができる (B<wait>(2)  を参照)。 さらに、BSD と SystemV で"
5776 "は B<SIGCHLD> を無視した際の動作が異なっている。 そのため、完全に移植性がある"
5777 "方法で、終了した子プロセスがゾンビにならないこと を保証するには、 B<SIGCHLD> "
5778 "シグナルを補足し、 B<wait>(2)  などを実行するしかない。"
5779
5780 #. type: Plain text
5781 #: build/C/man2/sigaction.2:736
5782 msgid ""
5783 "POSIX.1-1990 specified only B<SA_NOCLDSTOP>.  POSIX.1-2001 added "
5784 "B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>, and B<SA_SIGINFO>.  Use of "
5785 "these latter values in I<sa_flags> may be less portable in applications "
5786 "intended for older UNIX implementations."
5787 msgstr ""
5788 "POSIX.1-1990 の仕様では B<SA_NOCLDSTOP> のみが定義されている。\n"
5789 "POSIX.1-2001 では B<SA_NOCLDWAIT>, B<SA_RESETHAND>, B<SA_NODEFER>,\n"
5790 "B<SA_SIGINFO> が追加された。 UNIX の古い実装で動かすアプリケーションで、\n"
5791 "他の I<sa_flags> フラグを使用すると移植性が下がる。"
5792
5793 #. type: Plain text
5794 #: build/C/man2/sigaction.2:740
5795 msgid ""
5796 "The B<SA_RESETHAND> flag is compatible with the SVr4 flag of the same name."
5797 msgstr "B<SA_RESETHAND> フラグは SVr4 の同じ名前のフラグと互換性がある。"
5798
5799 #. type: Plain text
5800 #: build/C/man2/sigaction.2:750
5801 msgid ""
5802 "The B<SA_NODEFER> flag is compatible with the SVr4 flag of the same name "
5803 "under kernels 1.3.9 and newer.  On older kernels the Linux implementation "
5804 "allowed the receipt of any signal, not just the one we are installing "
5805 "(effectively overriding any I<sa_mask> settings)."
5806 msgstr ""
5807 "B<SA_NODEFER> フラグは 1.3.9 以降のカーネルでは同じ名前の SVr4 のフラグと互換"
5808 "性がある。 ぞれ以前の Linux カーネルの実装では、このフラグを設定しているシグ"
5809 "ナル だけでなく、どのシグナルでも受けることを許していた (実際には I<sa_mask> "
5810 "の設定により無効にできる)。"
5811
5812 #. type: Plain text
5813 #: build/C/man2/sigaction.2:756
5814 msgid ""
5815 "B<sigaction>()  can be called with a NULL second argument to query the "
5816 "current signal handler.  It can also be used to check whether a given signal "
5817 "is valid for the current machine by calling it with NULL second and third "
5818 "arguments."
5819 msgstr ""
5820 "B<sigaction>()  の二番目の引き数に NULL を指定して呼び出すと、現在のシグナル"
5821 "ハンドラを確認する ことができる。また、二番目と三番目の引き数を NULL にて呼び"
5822 "出すことで、 指定されたシグナルが現在のマシンで使えるかどうかチェックできる。"
5823
5824 #. type: Plain text
5825 #: build/C/man2/sigaction.2:762
5826 msgid ""
5827 "It is not possible to block B<SIGKILL> or B<SIGSTOP> (by specifying them in "
5828 "I<sa_mask>).  Attempts to do so are silently ignored."
5829 msgstr ""
5830 "B<SIGKILL> や B<SIGSTOP> を (I<sa_mask> に指定して) 禁止することはできない。 "
5831 "禁止しようとしても黙って無視される。"
5832
5833 #. type: Plain text
5834 #: build/C/man2/sigaction.2:766 build/C/man2/sigpending.2:70
5835 #: build/C/man2/sigprocmask.2:144 build/C/man2/sigsuspend.2:108
5836 msgid "See B<sigsetops>(3)  for details on manipulating signal sets."
5837 msgstr "シグナル集合の操作に関する詳細は B<sigsetops>(3)  を参照のこと。"
5838
5839 #. type: Plain text
5840 #: build/C/man2/sigaction.2:771
5841 msgid ""
5842 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
5843 "safely called inside from inside a signal handler."
5844 msgstr ""
5845 "シグナルハンドラ内から安全に呼び出すことができる、 async-signal-safe "
5846 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
5847 "照。"
5848
5849 #. type: SS
5850 #: build/C/man2/sigaction.2:771
5851 #, no-wrap
5852 msgid "Undocumented"
5853 msgstr "非公式"
5854
5855 #. type: Plain text
5856 #: build/C/man2/sigaction.2:781
5857 msgid ""
5858 "Before the introduction of B<SA_SIGINFO> it was also possible to get some "
5859 "additional information, namely by using a I<sa_handler> with second argument "
5860 "of type I<struct sigcontext>.  See the relevant Linux kernel sources for "
5861 "details.  This use is obsolete now."
5862 msgstr ""
5863 "B<SA_SIGINFO> が導入される前は、 I<struct sigcontext> 型の二番目の引き数と一"
5864 "緒に I<sa_handler> を使用することで、 いくつかの追加の情報を入手することがで"
5865 "きた。 詳細については Linux カーネルソースの関連部分を見てほしい。 現在はこの"
5866 "使用法は廃止されている。"
5867
5868 #. type: Plain text
5869 #: build/C/man2/sigaction.2:790
5870 msgid ""
5871 "In kernels up to and including 2.6.13, specifying B<SA_NODEFER> in "
5872 "I<sa_flags> prevents not only the delivered signal from being masked during "
5873 "execution of the handler, but also the signals specified in I<sa_mask>.  "
5874 "This bug was fixed in kernel 2.6.14."
5875 msgstr ""
5876 "2.6.13 以前のカーネルでは、 I<sa_flags> に B<SA_NODEFER> を指定した場合、 ハ"
5877 "ンドラが実行中に配送されたシグナル自身がマスクされなくなるだけでなく、 "
5878 "I<sa_mask> に指定されたシグナルもマスクされなくなる。 このバグは、カーネル "
5879 "2.6.14 で修正された。"
5880
5881 #. type: Plain text
5882 #: build/C/man2/sigaction.2:793
5883 msgid "See B<mprotect>(2)."
5884 msgstr "B<mprotect>(2)  参照。"
5885
5886 #. type: Plain text
5887 #: build/C/man2/sigaction.2:813
5888 msgid ""
5889 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
5890 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
5891 "B<sigprocmask>(2), B<sigsuspend>(2), B<wait>(2), B<raise>(3), B<siginterrupt>"
5892 "(3), B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
5893 msgstr ""
5894 "B<kill>(1), B<kill>(2), B<killpg>(2), B<pause>(2), B<restart_syscall>(2), "
5895 "B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
5896 "B<sigprocmask>(2), B<sigsuspend>(2), B<wait>(2), B<raise>(3), B<siginterrupt>"
5897 "(3), B<sigqueue>(3), B<sigsetops>(3), B<sigvec>(3), B<core>(5), B<signal>(7)"
5898
5899 #. type: TH
5900 #: build/C/man2/sigaltstack.2:27
5901 #, no-wrap
5902 msgid "SIGALTSTACK"
5903 msgstr "SIGALTSTACK"
5904
5905 #. type: TH
5906 #: build/C/man2/sigaltstack.2:27
5907 #, no-wrap
5908 msgid "2010-09-26"
5909 msgstr "2010-09-26"
5910
5911 #. type: Plain text
5912 #: build/C/man2/sigaltstack.2:30
5913 msgid "sigaltstack - set and/or get signal stack context"
5914 msgstr "sigaltstack - シグナルスタックのコンテキストを設定・取得する"
5915
5916 #. type: Plain text
5917 #: build/C/man2/sigaltstack.2:34
5918 msgid "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
5919 msgstr "B<int sigaltstack(const stack_t *>I<ss>B<, stack_t *>I<oss>B<);>"
5920
5921 #. type: Plain text
5922 #: build/C/man2/sigaltstack.2:41
5923 msgid "B<sigaltstack>():"
5924 msgstr "B<sigaltstack>():"
5925
5926 #. type: Plain text
5927 #: build/C/man2/sigaltstack.2:48 build/C/man3/siginterrupt.3:53
5928 #: build/C/man2/wait.2:80
5929 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
5930 msgstr "|| /* glibc 2.12 以降: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
5931
5932 #. type: Plain text
5933 #: build/C/man2/sigaltstack.2:60
5934 msgid ""
5935 "B<sigaltstack>()  allows a process to define a new alternate signal stack "
5936 "and/or retrieve the state of an existing alternate signal stack.  An "
5937 "alternate signal stack is used during the execution of a signal handler if "
5938 "the establishment of that handler (see B<sigaction>(2))  requested it."
5939 msgstr ""
5940 "B<sigaltstack>()  を使うと、 プロセスは新しい代替シグナルスタックを定義した"
5941 "り、 既存の代替シグナルスタックの状態を取得できる。 シグナルハンドラが代替シ"
5942 "グナルスタックを要求するように設定されていると (B<sigaction>(2)  参照)、ハン"
5943 "ドラの実行中はそのシグナルスタックが使われる。"
5944
5945 #. type: Plain text
5946 #: build/C/man2/sigaltstack.2:63
5947 msgid ""
5948 "The normal sequence of events for using an alternate signal stack is the "
5949 "following:"
5950 msgstr "代替シグナルスタックを使う際の一般的な手順は、以下の通りである:"
5951
5952 #. type: IP
5953 #: build/C/man2/sigaltstack.2:63 build/C/man7/signal.7:387
5954 #, no-wrap
5955 msgid "1."
5956 msgstr "1."
5957
5958 #. type: Plain text
5959 #: build/C/man2/sigaltstack.2:67
5960 msgid "Allocate an area of memory to be used for the alternate signal stack."
5961 msgstr "代替シグナルスタックで使うメモリ領域を確保する。"
5962
5963 #. type: IP
5964 #: build/C/man2/sigaltstack.2:67 build/C/man7/signal.7:391
5965 #, no-wrap
5966 msgid "2."
5967 msgstr "2."
5968
5969 #. type: Plain text
5970 #: build/C/man2/sigaltstack.2:73
5971 msgid ""
5972 "Use B<sigaltstack>()  to inform the system of the existence and location of "
5973 "the alternate signal stack."
5974 msgstr ""
5975 "B<sigaltstack>()  を使って、 代替シグナルスタックの存在と場所をシステムに知ら"
5976 "せる。"
5977
5978 #. type: IP
5979 #: build/C/man2/sigaltstack.2:73 build/C/man7/signal.7:411
5980 #, no-wrap
5981 msgid "3."
5982 msgstr "3."
5983
5984 #. type: Plain text
5985 #: build/C/man2/sigaltstack.2:80
5986 msgid ""
5987 "When establishing a signal handler using B<sigaction>(2), inform the system "
5988 "that the signal handler should be executed on the alternate signal stack by "
5989 "specifying the B<SA_ONSTACK> flag."
5990 msgstr ""
5991 "B<sigaction>(2)  を使ってシグナルハンドラを確立する際、 B<SA_ONSTACK> フラグ"
5992 "を指定することにより、 そのシグナルハンドラを代替シグナルスタック上で実行する"
5993 "ことを システムに知らせる。"
5994
5995 #. type: Plain text
5996 #: build/C/man2/sigaltstack.2:88
5997 msgid ""
5998 "The I<ss> argument is used to specify a new alternate signal stack, while "
5999 "the I<oss> argument is used to retrieve information about the currently "
6000 "established signal stack.  If we are interested in performing just one of "
6001 "these tasks then the other argument can be specified as NULL.  Each of these "
6002 "arguments is a structure of the following type:"
6003 msgstr ""
6004 "I<ss> 引き数は、新しいシグナルスタックを指定するために使う。 また I<oss> 引き"
6005 "数は、現在確立されている シグナルスタックの情報を取得するために使う。 この操"
6006 "作のうち 1 つだけを実行させるには、 使用しない引き数を NULL に指定すればよ"
6007 "い。 引き数となる構造体は、以下のような型である:"
6008
6009 #. type: Plain text
6010 #: build/C/man2/sigaltstack.2:96
6011 #, no-wrap
6012 msgid ""
6013 "typedef struct {\n"
6014 "    void  *ss_sp;     /* Base address of stack */\n"
6015 "    int    ss_flags;  /* Flags */\n"
6016 "    size_t ss_size;   /* Number of bytes in stack */\n"
6017 "} stack_t;\n"
6018 msgstr ""
6019 "typedef struct {\n"
6020 "    void  *ss_sp;     /* スタックのベースアドレス */\n"
6021 "    int    ss_flags;  /* フラグ */\n"
6022 "    size_t ss_size;   /* スタックのバイト数 */\n"
6023 "} stack_t;\n"
6024
6025 #. type: Plain text
6026 #: build/C/man2/sigaltstack.2:107
6027 msgid ""
6028 "To establish a new alternate signal stack, I<ss.ss_flags> is set to zero, "
6029 "and I<ss.ss_sp> and I<ss.ss_size> specify the starting address and size of "
6030 "the stack.  The constant B<SIGSTKSZ> is defined to be large enough to cover "
6031 "the usual size requirements for an alternate signal stack, and the constant "
6032 "B<MINSIGSTKSZ> defines the minimum size required to execute a signal handler."
6033 msgstr ""
6034 "新規の代替シグナルスタックを確立するには、 I<ss.ss_flags> を 0 に設定し、 "
6035 "I<ss.ss_sp> と I<ss.ss_size> に スタックの開始アドレスとスタックサイズを指定"
6036 "する。 定数 B<SIGSTKSZ> は、代替シグナルスタックが通常必要する サイズよりも充"
6037 "分大きく定義されている。 また定数 B<MINSIGSTKSZ> は、 シグナルハンドラの実行"
6038 "に必要な最小サイズに定義されている。"
6039
6040 #. type: Plain text
6041 #: build/C/man2/sigaltstack.2:111
6042 msgid ""
6043 "When a signal handler is invoked on the alternate stack, the kernel "
6044 "automatically aligns the address given in I<ss.ss_sp> to a suitable address "
6045 "boundary for the underlying hardware architecture."
6046 msgstr ""
6047 "代替スタックでシグナルハンドラが起動された場合には、 カーネルにより自動的に、"
6048 "I<ss.ss_sp> で指定されたアドレスは 動作しているハードウェアアーキテクチャに適"
6049 "したアドレス境界に 調整される。"
6050
6051 #. type: Plain text
6052 #: build/C/man2/sigaltstack.2:116
6053 msgid ""
6054 "To disable an existing stack, specify I<ss.ss_flags> as B<SS_DISABLE>.  In "
6055 "this case, the remaining fields in I<ss> are ignored."
6056 msgstr ""
6057 "既存のスタックを無効にするには、 I<ss.ss_flags> を B<SS_DISABLE> に指定す"
6058 "る。 この場合、I<ss> の他のフィールドは無視される。"
6059
6060 #. type: Plain text
6061 #: build/C/man2/sigaltstack.2:124
6062 msgid ""
6063 "If I<oss> is not NULL, then it is used to return information about the "
6064 "alternate signal stack which was in effect prior to the call to "
6065 "B<sigaltstack>().  The I<oss.ss_sp> and I<oss.ss_size> fields return the "
6066 "starting address and size of that stack.  The I<oss.ss_flags> may return "
6067 "either of the following values:"
6068 msgstr ""
6069 "I<oss> が NULL 以外の場合、 I<oss> に代替シグナルスタックの情報が返される。 "
6070 "これは (実質的に)  B<sigaltstack>()  の呼び出しより先に行われる。 I<oss."
6071 "ss_sp> と I<oss.ss_size> フィールドに スタックの開始アドレスとスタックサイズ"
6072 "が返される。 I<oss.ss_flags> には以下のどちらかの値が返される:"
6073
6074 #. type: TP
6075 #: build/C/man2/sigaltstack.2:124
6076 #, no-wrap
6077 msgid "B<SS_ONSTACK>"
6078 msgstr "B<SS_ONSTACK>"
6079
6080 #. type: Plain text
6081 #: build/C/man2/sigaltstack.2:130
6082 msgid ""
6083 "The process is currently executing on the alternate signal stack.  (Note "
6084 "that it is not possible to change the alternate signal stack if the process "
6085 "is currently executing on it.)"
6086 msgstr ""
6087 "プロセスが代替シグナルスタック上で実行されている (プロセスが既にそのシグナル"
6088 "スタック上で実行されている場合は、 それと同じシグナルスタックには変更できない"
6089 "点に注意すること)。"
6090
6091 #. type: TP
6092 #: build/C/man2/sigaltstack.2:130
6093 #, no-wrap
6094 msgid "B<SS_DISABLE>"
6095 msgstr "B<SS_DISABLE>"
6096
6097 #. type: Plain text
6098 #: build/C/man2/sigaltstack.2:133
6099 msgid "The alternate signal stack is currently disabled."
6100 msgstr "代替シグナルスタックが現在無効になっている。"
6101
6102 #. type: Plain text
6103 #: build/C/man2/sigaltstack.2:137
6104 msgid ""
6105 "B<sigaltstack>()  returns 0 on success, or -1 on failure with I<errno> set "
6106 "to indicate the error."
6107 msgstr ""
6108 "B<sigaltstack>()  は成功した場合 0 を返す。 失敗した場合は -1 を返して、 エ"
6109 "ラーを示す値に I<errno> を設定する。"
6110
6111 #. type: Plain text
6112 #: build/C/man2/sigaltstack.2:142
6113 msgid ""
6114 "Either I<ss> or I<oss> is not NULL and points to an area outside of the "
6115 "process's address space."
6116 msgstr ""
6117 "I<ss> または I<oss> のどちらが、NULL 以外で、 かつプロセスのアドレス空間の外"
6118 "を指している。"
6119
6120 #. type: Plain text
6121 #: build/C/man2/sigaltstack.2:147
6122 msgid ""
6123 "I<ss> is not NULL and the I<ss_flags> field contains a nonzero value other "
6124 "than B<SS_DISABLE>."
6125 msgstr ""
6126 "I<ss> が NULL 以外で、I<ss_flags> フィールドが B<SS_DISABLE> 以外の 0 でない"
6127 "値になっている。"
6128
6129 #. type: Plain text
6130 #: build/C/man2/sigaltstack.2:151
6131 msgid ""
6132 "The specified size of the new alternate signal stack (I<ss.ss_size>) was "
6133 "less than B<MINSTKSZ>."
6134 msgstr ""
6135 "新しい代替シグナルスタック (I<ss.ss_size>) に指定したサイズが B<MINSTKSZ> よ"
6136 "り小さい。"
6137
6138 #. type: Plain text
6139 #: build/C/man2/sigaltstack.2:156
6140 msgid ""
6141 "An attempt was made to change the alternate signal stack while it was active "
6142 "(i.e., the process was already executing on the current alternate signal "
6143 "stack)."
6144 msgstr ""
6145 "代替シグナルスタックが有効であるときに変更を行おうとした (つまり、プロセスが"
6146 "既に現在の代替シグナルスタック上で実行されていた)。"
6147
6148 #. type: Plain text
6149 #: build/C/man2/sigaltstack.2:158
6150 msgid "SUSv2, SVr4, POSIX.1-2001."
6151 msgstr "SUSv2, SVr4, POSIX.1-2001."
6152
6153 #. type: Plain text
6154 #: build/C/man2/sigaltstack.2:166
6155 msgid ""
6156 "The most common usage of an alternate signal stack is to handle the "
6157 "B<SIGSEGV> signal that is generated if the space available for the normal "
6158 "process stack is exhausted: in this case, a signal handler for B<SIGSEGV> "
6159 "cannot be invoked on the process stack; if we wish to handle it, we must use "
6160 "an alternate signal stack."
6161 msgstr ""
6162 "代替シグナルスタックを使用する最もよくある場面は、 B<SIGSEGV> シグナルを扱う"
6163 "ときである。 B<SIGSEGV> はプロセスの通常のスタックが利用できる空間が使い果た"
6164 "された際に 生成されるシグナルである。この場合には、 B<SIGSEGV> 用のシグナルハ"
6165 "ンドラをプロセスのスタック上では起動することができない。 そのため、このシグナ"
6166 "ルを扱おうとする場合には、 代替シグナルスタックを使用しなければならない。"
6167
6168 #. type: Plain text
6169 #: build/C/man2/sigaltstack.2:176
6170 msgid ""
6171 "Establishing an alternate signal stack is useful if a process expects that "
6172 "it may exhaust its standard stack.  This may occur, for example, because the "
6173 "stack grows so large that it encounters the upwardly growing heap, or it "
6174 "reaches a limit established by a call to B<setrlimit(RLIMIT_STACK, &rlim)>.  "
6175 "If the standard stack is exhausted, the kernel sends the process a "
6176 "B<SIGSEGV> signal.  In these circumstances the only way to catch this signal "
6177 "is on an alternate signal stack."
6178 msgstr ""
6179 "プロセスが標準のシグナルスタックを使い果たすことが予想される場合は、 代替シグ"
6180 "ナルスタックを確立すると便利である。 例えば、スタックが最上位アドレスから 下"
6181 "位アドレス方向に非常にたくさん積まれてしまうことで、 最下位アドレスから上位ア"
6182 "ドレス方向に積まれるヒープとぶつかってしまう場合や、 B<setrlimit"
6183 "(RLIMIT_STACK, &rlim)> の呼び出しで確立された 制限に達してしまった場合に、こ"
6184 "の様な事が起こる。 標準のスタックを使い果たしてしまうと、 カーネルはプロセス"
6185 "に B<SIGSEGV> シグナルを送る。 このような状況では、代替シグナルスタック上でし"
6186 "かシグナルをキャッチできない。"
6187
6188 #. type: Plain text
6189 #: build/C/man2/sigaltstack.2:182
6190 msgid ""
6191 "On most hardware architectures supported by Linux, stacks grow downward.  "
6192 "B<sigaltstack>()  automatically takes account of the direction of stack "
6193 "growth."
6194 msgstr ""
6195 "Linux がサポートする多くのハードウェアアーキテクチャでは、 スタックは下位アド"
6196 "レス方向に積まれる。 B<sigaltstack>()  はスタックが積まれる方向を自動的に決定"
6197 "する。"
6198
6199 #. type: Plain text
6200 #: build/C/man2/sigaltstack.2:191
6201 msgid ""
6202 "Functions called from a signal handler executing on an alternate signal "
6203 "stack will also use the alternate signal stack.  (This also applies to any "
6204 "handlers invoked for other signals while the process is executing on the "
6205 "alternate signal stack.)  Unlike the standard stack, the system does not "
6206 "automatically extend the alternate signal stack.  Exceeding the allocated "
6207 "size of the alternate signal stack will lead to unpredictable results."
6208 msgstr ""
6209 "代替シグナルスタック上で実行されている シグナルハンドラから呼ばれる関数も、代"
6210 "替シグナルハンドラを使う (プロセスが代替シグナルスタック上で実行されている場"
6211 "合、 他のシグナルで呼び出されるハンドラもこの代替シグナルハンドラを使う)。 標"
6212 "準のスタックとは異なり、 システムは代替シグナルスタックを自動的に拡張しな"
6213 "い。 代替シグナルスタック用に確保したサイズを越えた場合、 結果は予想できな"
6214 "い。"
6215
6216 #. type: Plain text
6217 #: build/C/man2/sigaltstack.2:199
6218 msgid ""
6219 "A successful call to B<execve>(2)  removes any existing alternate signal "
6220 "stack.  A child process created via B<fork>(2)  inherits a copy of its "
6221 "parent's alternate signal stack settings."
6222 msgstr ""
6223 "B<execve>(2)  の呼び出しが成功すると、 既存の全ての代替シグナルスタックが削除"
6224 "される。 B<fork>(2)  経由で作成された子プロセスは、親プロセスの代替シグナルス"
6225 "タックの 設定のコピーを継承する。"
6226
6227 #. type: Plain text
6228 #: build/C/man2/sigaltstack.2:208
6229 msgid ""
6230 "B<sigaltstack>()  supersedes the older B<sigstack>()  call.  For backward "
6231 "compatibility, glibc also provides B<sigstack>().  All new applications "
6232 "should be written using B<sigaltstack>()."
6233 msgstr ""
6234 "B<sigaltstack>()  は以前の B<sigstack>()  を置き換えるものである。 過去プログ"
6235 "ラムとの互換性のため、glibc では B<sigstack>()  も提供している。 新しいのアプ"
6236 "リケーションは全て B<sigaltstack>()  を使って書くべきである。"
6237
6238 #. type: SS
6239 #: build/C/man2/sigaltstack.2:208 build/C/man3/sigpause.3:66
6240 #, no-wrap
6241 msgid "History"
6242 msgstr "歴史"
6243
6244 #. type: Plain text
6245 #: build/C/man2/sigaltstack.2:215
6246 msgid ""
6247 "4.2BSD had a B<sigstack>()  system call.  It used a slightly different "
6248 "struct, and had the major disadvantage that the caller had to know the "
6249 "direction of stack growth."
6250 msgstr ""
6251 "4.2BSD には B<sigstack>()  システムコールがあった。 この関数は少し異なった構"
6252 "造体を使っており、 呼び出した側がスタックの積まれる方向を知っていなければなら"
6253 "ないという 大きな欠点があった。"
6254
6255 #. type: Plain text
6256 #: build/C/man2/sigaltstack.2:218
6257 msgid "The following code segment demonstrates the use of B<sigaltstack>():"
6258 msgstr "以下のコードで B<sigaltstack>()  の使用法の一部を示す:"
6259
6260 #. type: Plain text
6261 #: build/C/man2/sigaltstack.2:222
6262 #, no-wrap
6263 msgid "stack_t ss;\n"
6264 msgstr "stack_t ss;\n"
6265
6266 #. type: Plain text
6267 #: build/C/man2/sigaltstack.2:230
6268 #, no-wrap
6269 msgid ""
6270 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6271 "if (ss.ss_sp == NULL)\n"
6272 "    /* Handle error */;\n"
6273 "ss.ss_size = SIGSTKSZ;\n"
6274 "ss.ss_flags = 0;\n"
6275 "if (sigaltstack(&ss, NULL) == -1)\n"
6276 "    /* Handle error */;\n"
6277 msgstr ""
6278 "ss.ss_sp = malloc(SIGSTKSZ);\n"
6279 "if (ss.ss_sp == NULL)\n"
6280 "    /* ハンドルエラー */;\n"
6281 "ss.ss_size = SIGSTKSZ;\n"
6282 "ss.ss_flags = 0;\n"
6283 "if (sigaltstack(&ss, NULL) == -1)\n"
6284 "    /* ハンドルエラー */;\n"
6285
6286 #. type: Plain text
6287 #: build/C/man2/sigaltstack.2:239
6288 msgid ""
6289 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6290 "B<sigsetjmp>(3), B<signal>(7)"
6291 msgstr ""
6292 "B<execve>(2), B<setrlimit>(2), B<sigaction>(2), B<siglongjmp>(3), "
6293 "B<sigsetjmp>(3), B<signal>(7)"
6294
6295 #. type: TH
6296 #: build/C/man7/sigevent.7:26
6297 #, no-wrap
6298 msgid "SIGEVENT"
6299 msgstr "SIGEVENT"
6300
6301 #. type: TH
6302 #: build/C/man7/sigevent.7:26
6303 #, no-wrap
6304 msgid "2011-09-09"
6305 msgstr "2011-09-09"
6306
6307 #. type: Plain text
6308 #: build/C/man7/sigevent.7:29
6309 msgid "sigevent - structure for notification from asynchronous routines"
6310 msgstr "sigevent - 非同期ルーチンからの通知用の構造体"
6311
6312 #. type: Plain text
6313 #: build/C/man7/sigevent.7:36
6314 #, no-wrap
6315 msgid ""
6316 "union sigval {          /* Data passed with notification */\n"
6317 "    int     sival_int;         /* Integer value */\n"
6318 "    void   *sival_ptr;         /* Pointer value */\n"
6319 "};\n"
6320 msgstr ""
6321 "union sigval {          /* Data passed with notification */\n"
6322 "    int     sival_int;         /* Integer value */\n"
6323 "    void   *sival_ptr;         /* Pointer value */\n"
6324 "};\n"
6325
6326 #. type: Plain text
6327 #: build/C/man7/sigevent.7:51
6328 #, no-wrap
6329 msgid ""
6330 "struct sigevent {\n"
6331 "    int          sigev_notify; /* Notification method */\n"
6332 "    int          sigev_signo;  /* Notification signal */\n"
6333 "    union sigval sigev_value;  /* Data passed with\n"
6334 "                                  notification */\n"
6335 "    void       (*sigev_notify_function) (union sigval);\n"
6336 "                     /* Function used for thread\n"
6337 "                        notification (SIGEV_THREAD) */\n"
6338 "    void        *sigev_notify_attributes;\n"
6339 "                     /* Attributes for notification thread\n"
6340 "                        (SIGEV_THREAD) */\n"
6341 "    pid_t        sigev_notify_thread_id;\n"
6342 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6343 "};\n"
6344 msgstr ""
6345 "struct sigevent {\n"
6346 "    int          sigev_notify; /* Notification method */\n"
6347 "    int          sigev_signo;  /* Notification signal */\n"
6348 "    union sigval sigev_value;  /* Data passed with\n"
6349 "                                  notification */\n"
6350 "    void       (*sigev_notify_function) (union sigval);\n"
6351 "                     /* Function used for thread\n"
6352 "                        notification (SIGEV_THREAD) */\n"
6353 "    void        *sigev_notify_attributes;\n"
6354 "                     /* Attributes for notification thread\n"
6355 "                        (SIGEV_THREAD) */\n"
6356 "    pid_t        sigev_notify_thread_id;\n"
6357 "                     /* ID of thread to signal (SIGEV_THREAD_ID) */\n"
6358 "};\n"
6359
6360 #. type: Plain text
6361 #: build/C/man7/sigevent.7:60
6362 msgid ""
6363 "The I<sigevent> structure is used by various APIs to describe the way a "
6364 "process is to be notified about an event (e.g., completion of an "
6365 "asynchronous request, expiration of a timer, or the arrival of a message)."
6366 msgstr ""
6367 "I<sigevent> 構造体は、イベントに関する情報をプロセスに通知するために様々な "
6368 "API で使用される (イベントの例としては、 非同期処理要求の完了、 タイマーの満"
6369 "了、 メッセージの到着など)。"
6370
6371 #. type: Plain text
6372 #: build/C/man7/sigevent.7:68
6373 msgid ""
6374 "The definition shown in the SYNOPSIS is approximate: some of the fields in "
6375 "the I<sigevent> structure may be defined as part of a union.  Programs "
6376 "should employ only those fields relevant to the value specified in "
6377 "I<sigev_notify>."
6378 msgstr ""
6379 "「書式」に記載されている定義はおおよそのものである。 I<sigevent> 構造体のいく"
6380 "つかのフィールドは、 共用体の一部として定義されているものもある。 プログラム"
6381 "は、 I<sigev_notify> で指定された値に応じたフィールドだけを利用すべきである。"
6382
6383 #. type: Plain text
6384 #: build/C/man7/sigevent.7:73
6385 msgid ""
6386 "The I<sigev_notify> field specifies how notification is to be performed.  "
6387 "This field can have one of the following values:"
6388 msgstr ""
6389 "I<sigev_notify> フィールドは、通知をどのように処理すべきかを指定する。 この"
6390 "フィールドは、以下のいずれかの値である。"
6391
6392 #. type: TP
6393 #: build/C/man7/sigevent.7:73 build/C/man2/timer_create.2:107
6394 #, no-wrap
6395 msgid "B<SIGEV_NONE>"
6396 msgstr "B<SIGEV_NONE>"
6397
6398 #. type: Plain text
6399 #: build/C/man7/sigevent.7:76
6400 msgid "A \"null\" notification: don't do anything when the event occurs."
6401 msgstr "「空 (null)」の通知。 イベントが発生時には何もしないこと。"
6402
6403 #. type: TP
6404 #: build/C/man7/sigevent.7:76 build/C/man2/timer_create.2:112
6405 #, no-wrap
6406 msgid "B<SIGEV_SIGNAL>"
6407 msgstr "B<SIGEV_SIGNAL>"
6408
6409 #. type: Plain text
6410 #: build/C/man7/sigevent.7:80
6411 msgid "Notify the process by sending the signal specified in I<sigev_signo>."
6412 msgstr ""
6413 "I<sigev_signo> で指定されたシグナルを送信することで、プロセスへの通知を行う。"
6414
6415 #. type: Plain text
6416 #: build/C/man7/sigevent.7:87
6417 msgid ""
6418 "If the signal is caught with a signal handler that was registered using the "
6419 "B<sigaction>(2)  B<SA_SIGINFO> flag, then the following fields are set in "
6420 "the I<siginfo_t> structure that is passed as the second argument of the "
6421 "handler:"
6422 msgstr ""
6423 "B<sigaction>(2) の B<SA_SIGINFO> フラグを使った登録されたシグナルハンドラによ"
6424 "りシグナルが捕捉されると、 シグナルハンドラの 2 番目の引き数として渡された "
6425 "I<siginfo_t> 構造体の以下のフィールドが設定される。"
6426
6427 #. type: Plain text
6428 #: build/C/man7/sigevent.7:92
6429 msgid ""
6430 "This field is set to a value that depends on the API delivering the "
6431 "notification."
6432 msgstr "このフィールドには通知を配送した API に応じた決まる値が設定される。"
6433
6434 #. type: TP
6435 #: build/C/man7/sigevent.7:92 build/C/man2/wait.2:302
6436 #, no-wrap
6437 msgid "I<si_signo>"
6438 msgstr "I<si_signo>"
6439
6440 #. type: Plain text
6441 #: build/C/man7/sigevent.7:96
6442 msgid ""
6443 "This field is set to the signal number (i.e., the same value as in "
6444 "I<sigev_signo>)."
6445 msgstr ""
6446 "このフィールドにはシグナル番号 (すなわち I<sigev_signo> と同じ値) が設定され"
6447 "る。"
6448
6449 #. type: Plain text
6450 #: build/C/man7/sigevent.7:100
6451 msgid "This field is set to the value specified in I<sigev_value>."
6452 msgstr "このフィールドには I<sigev_value> で指定された値が設定される。"
6453
6454 #. type: Plain text
6455 #: build/C/man7/sigevent.7:105
6456 msgid ""
6457 "Depending on the API, other fields may also be set in the I<siginfo_t> "
6458 "structure."
6459 msgstr ""
6460 "API によっては I<siginfo_t> 構造体の他のフィールドが設定される場合もある。"
6461
6462 #. type: Plain text
6463 #: build/C/man7/sigevent.7:108
6464 msgid ""
6465 "The same information is also available if the signal is accepted using "
6466 "B<sigwaitinfo>(2)."
6467 msgstr ""
6468 "シグナルを受け取ったときには B<sigwaitinfo>(2) でも同じ情報が得られる。"
6469
6470 #. type: TP
6471 #: build/C/man7/sigevent.7:108 build/C/man2/timer_create.2:130
6472 #, no-wrap
6473 msgid "B<SIGEV_THREAD>"
6474 msgstr "B<SIGEV_THREAD>"
6475
6476 #. type: Plain text
6477 #: build/C/man7/sigevent.7:125
6478 msgid ""
6479 "Notify the process by invoking I<sigev_notify_function> \"as if\" it were "
6480 "the start function of a new thread.  (Among the implementation possibilities "
6481 "here are that each timer notification could result in the creation of a new "
6482 "thread, or that a single thread is created to receive all notifications.)  "
6483 "The function is invoked with I<sigev_value> as its sole argument.  If "
6484 "I<sigev_notify_attributes> is not NULL, it should point to a "
6485 "I<pthread_attr_t> structure that defines attributes for the new thread (see "
6486 "B<pthread_attr_init>(3))."
6487 msgstr ""
6488 "「あたかも」新しいスレッドセーフの開始関数であるかのように "
6489 "I<sigev_notify_function> を起動することで、 プロセスへの通知を行う (実装の可"
6490 "能性としては、 タイマー通知の度に新しいスレッドセーフが作成される場合も、 一"
6491 "つのスレッドを作成してすべての通知を受信する場合もある)。 この関数は "
6492 "I<sigev_value> を唯一の引き数として起動される。 I<sigev_notify_attributes> "
6493 "は、 NULL 以外の場合は、 新しいスレッドセーフの属性を定義する "
6494 "I<pthread_attr_t> 構造体を指していなければならない (B<pthread_attr_init>(3) "
6495 "参照)。"
6496
6497 #. type: TP
6498 #: build/C/man7/sigevent.7:125 build/C/man2/timer_create.2:138
6499 #, no-wrap
6500 msgid "B<SIGEV_THREAD_ID> (Linux-specific)"
6501 msgstr "B<SIGEV_THREAD_ID> (Linux 固有)"
6502
6503 #.  | SIGEV_SIGNAL vs not?
6504 #. type: Plain text
6505 #: build/C/man7/sigevent.7:130
6506 msgid "Currently used only by POSIX timers; see B<timer_create>(2)."
6507 msgstr "現在のところ POSIX でのみ使用されている。 B<timer_create>(2) 参照。"
6508
6509 #. type: Plain text
6510 #: build/C/man7/sigevent.7:132 build/C/man2/sigpending.2:66
6511 #: build/C/man2/sigprocmask.2:114 build/C/man3/sigqueue.3:121
6512 #: build/C/man3/sigsetops.3:133 build/C/man2/sigsuspend.2:86
6513 #: build/C/man3/sigwait.3:87 build/C/man2/sigwaitinfo.2:135
6514 #: build/C/man2/timer_create.2:195 build/C/man2/timer_delete.2:69
6515 #: build/C/man2/timer_getoverrun.2:99 build/C/man2/timer_settime.2:209
6516 msgid "POSIX.1-2001."
6517 msgstr "POSIX.1-2001."
6518
6519 #. type: Plain text
6520 #: build/C/man7/sigevent.7:142
6521 msgid ""
6522 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6523 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6524 "B<pthreads>(7)"
6525 msgstr ""
6526 "B<timer_create>(2), B<aio_fsync>(3), B<aio_read>(3), B<aio_write>(3), "
6527 "B<getaddrinfo_a>(3), B<lio_listio>(3), B<mq_notify>(3), B<aio>(7), "
6528 "B<pthreads>(7)"
6529
6530 #. type: TH
6531 #: build/C/man3/siginterrupt.3:31
6532 #, no-wrap
6533 msgid "SIGINTERRUPT"
6534 msgstr "SIGINTERRUPT"
6535
6536 #. type: TH
6537 #: build/C/man3/siginterrupt.3:31 build/C/man2/signal.2:36
6538 #: build/C/man2/sigprocmask.2:29 build/C/man2/sigsuspend.2:29
6539 #, no-wrap
6540 msgid "2013-04-19"
6541 msgstr "2013-04-19"
6542
6543 #. type: Plain text
6544 #: build/C/man3/siginterrupt.3:34
6545 msgid "siginterrupt - allow signals to interrupt system calls"
6546 msgstr "siginterrupt - シグナルでシステム・コールに割り込むことを許す"
6547
6548 #. type: Plain text
6549 #: build/C/man3/siginterrupt.3:39
6550 #, no-wrap
6551 msgid "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6552 msgstr "B<int siginterrupt(int >I<sig>B<, int >I<flag>B<);>\n"
6553
6554 #. type: Plain text
6555 #: build/C/man3/siginterrupt.3:47
6556 msgid "B<siginterrupt>():"
6557 msgstr "B<siginterrupt>():"
6558
6559 #. type: Plain text
6560 #: build/C/man3/siginterrupt.3:64
6561 msgid ""
6562 "The B<siginterrupt>()  function changes the restart behavior when a system "
6563 "call is interrupted by the signal I<sig>.  If the I<flag> argument is false "
6564 "(0), then system calls will be restarted if interrupted by the specified "
6565 "signal I<sig>.  This is the default behavior in Linux."
6566 msgstr ""
6567 "B<siginterrupt>()  関数は、システム・コールがシグナル I<sig> によって割り込ま"
6568 "れた後、再実行の際の振る舞いを変更する。 I<flag> 引き数が偽 (0) ならば、シス"
6569 "テム・コールが指定した シグナル I<sig> によって割り込まれた後に、そのシステ"
6570 "ム・コールは 再実行される。これは Linux においてデフォルトの動作である。"
6571
6572 #. type: Plain text
6573 #: build/C/man3/siginterrupt.3:69
6574 msgid ""
6575 "If the I<flag> argument is true (1) and no data has been transferred, then a "
6576 "system call interrupted by the signal I<sig> will return -1 and I<errno> "
6577 "will be set to B<EINTR>."
6578 msgstr ""
6579 "I<flag> 引き数が真 (1) でデータの転送が全く行なわれていないならば、 シグナル "
6580 "I<sig> でシステム・コールは中断されて、-1 が返され、 I<errno> に B<EINTR> が"
6581 "設定される。"
6582
6583 #. type: Plain text
6584 #: build/C/man3/siginterrupt.3:73
6585 msgid ""
6586 "If the I<flag> argument is true (1) and data transfer has started, then the "
6587 "system call will be interrupted and will return the actual amount of data "
6588 "transferred."
6589 msgstr ""
6590 "I<flag> 引き数が真 (1) でデータの転送が開始されていれば、 システム・コールは"
6591 "中断され、それまでに実際に転送されたデータ の量が返される。"
6592
6593 #. type: Plain text
6594 #: build/C/man3/siginterrupt.3:83
6595 msgid ""
6596 "The B<siginterrupt>()  function returns 0 on success.  It returns -1 if the "
6597 "signal number I<sig> is invalid, with I<errno> set to indicate the cause of "
6598 "the error."
6599 msgstr ""
6600 "B<siginterrupt>()  関数は成功した場合 0 を返す。 シグナル番号 I<sig> が不正な"
6601 "場合、 -1 を返し、 I<errno> にエラーの原因を示す値を設定する。"
6602
6603 #. type: Plain text
6604 #: build/C/man3/siginterrupt.3:87
6605 msgid "The specified signal number is invalid."
6606 msgstr "指定したシグナル番号が不正である。"
6607
6608 #. type: Plain text
6609 #: build/C/man3/siginterrupt.3:96
6610 msgid ""
6611 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 marks B<siginterrupt>()  as obsolete, "
6612 "recommending the use of B<sigaction>(2)  with the B<SA_RESTART> flag instead."
6613 msgstr ""
6614 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 は、 B<siginterrupt>()  を廃止予定として"
6615 "いる。 代わりに、 B<sigaction>(2)  に B<SA_RESTART> フラグを指定して使うこと"
6616 "を推奨している。"
6617
6618 #. type: Plain text
6619 #: build/C/man3/siginterrupt.3:98
6620 msgid "B<signal>(2)"
6621 msgstr "B<signal>(2)"
6622
6623 #. type: TH
6624 #: build/C/man2/signal.2:36 build/C/man7/signal.7:46
6625 #, no-wrap
6626 msgid "SIGNAL"
6627 msgstr "SIGNAL"
6628
6629 #. type: Plain text
6630 #: build/C/man2/signal.2:39
6631 msgid "signal - ANSI C signal handling"
6632 msgstr "signal - ANSI C シグナル操作"
6633
6634 #. type: Plain text
6635 #: build/C/man2/signal.2:45
6636 msgid "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
6637 msgstr ""
6638 "B<sighandler_t signal(int >I<signum>B<, sighandler_t >I<sighandler>B<);>"
6639
6640 #. type: Plain text
6641 #: build/C/man2/signal.2:54
6642 msgid ""
6643 "The behavior of B<signal>()  varies across UNIX versions, and has also "
6644 "varied historically across different versions of Linux.  B<Avoid its use>: "
6645 "use B<sigaction>(2)  instead.  See I<Portability> below."
6646 msgstr ""
6647 "B<signal>()  の動作は UNIX のバージョンにより異なる。 また、歴史的に見て "
6648 "Linux のバージョンによっても異なっている。 B<このシステムコールの使用は避け、"
6649 "> 代わりに B<sigaction>(2)  を使用すること。 下記の「移植性」を参照。"
6650
6651 #. type: Plain text
6652 #: build/C/man2/signal.2:64
6653 msgid ""
6654 "B<signal>()  sets the disposition of the signal I<signum> to I<handler>, "
6655 "which is either B<SIG_IGN>, B<SIG_DFL>, or the address of a programmer-"
6656 "defined function (a \"signal handler\")."
6657 msgstr ""
6658 "B<signal>()  はシグナル I<signum> の処理方法を I<handler> に設定する。 "
6659 "I<handler> には、 B<SIG_IGN>、 B<SIG_DFL>、 プログラマが定義した関数 (「シグ"
6660 "ナル・ハンドラ」) のアドレスの いずれかを指定する。"
6661
6662 #. type: Plain text
6663 #: build/C/man2/signal.2:68
6664 msgid ""
6665 "If the signal I<signum> is delivered to the process, then one of the "
6666 "following happens:"
6667 msgstr ""
6668 "シグナル I<signum> がプロセスに配送されると、以下のいずれかが発生する。"
6669
6670 #. type: Plain text
6671 #: build/C/man2/signal.2:73
6672 msgid "If the disposition is set to B<SIG_IGN>, then the signal is ignored."
6673 msgstr "処理方法が B<SIG_IGN> に設定されている場合、そのシグナルは無視される。"
6674
6675 #. type: Plain text
6676 #: build/C/man2/signal.2:80
6677 msgid ""
6678 "If the disposition is set to B<SIG_DFL>, then the default action associated "
6679 "with the signal (see B<signal>(7))  occurs."
6680 msgstr ""
6681 "処理方法が B<SIG_DFL> に設定されている場合、シグナルに関連づけられた デフォル"
6682 "トの動作が行われる (B<signal>(7)  参照)。"
6683
6684 #. type: Plain text
6685 #: build/C/man2/signal.2:91
6686 msgid ""
6687 "If the disposition is set to a function, then first either the disposition "
6688 "is reset to B<SIG_DFL>, or the signal is blocked (see I<Portability> below), "
6689 "and then I<handler> is called with argument I<signum>.  If invocation of the "
6690 "handler caused the signal to be blocked, then the signal is unblocked upon "
6691 "return from the handler."
6692 msgstr ""
6693 "処理方法として関数が設定されている場合、 まず最初に処理方法が B<SIG_DFL> にリ"
6694 "セットされるかそのシグナルのブロックが実行された後、 I<signum> を引き数とし"
6695 "て I<handler> が呼び出される。 ハンドラが起動される際にシグナルがブロックされ"
6696 "た場合、 ハンドラが返る際にそのシグナルのブロックが解除される。"
6697
6698 #. type: Plain text
6699 #: build/C/man2/signal.2:97
6700 msgid "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught or ignored."
6701 msgstr ""
6702 "シグナル B<SIGKILL> と B<SIGSTOP> は捕捉できず、無視することもできない。"
6703
6704 #. type: Plain text
6705 #: build/C/man2/signal.2:105
6706 msgid ""
6707 "B<signal>()  returns the previous value of the signal handler, or B<SIG_ERR> "
6708 "on error.  In the event of an error, I<errno> is set to indicate the cause."
6709 msgstr ""
6710 "B<signal>()  は、今までのシグナル・ハンドラの値を返す。 エラーの場合は "
6711 "B<SIG_ERR> を返し、 I<errno> にエラーの原因を示す値を設定する。"
6712
6713 #. type: Plain text
6714 #: build/C/man2/signal.2:110
6715 msgid "I<signum> is invalid."
6716 msgstr "I<signum> が不正である。"
6717
6718 #. type: Plain text
6719 #: build/C/man2/signal.2:116
6720 msgid "The effects of B<signal>()  in a multithreaded process are unspecified."
6721 msgstr ""
6722 "マルチスレッドプロセスにおける B<signal>()  の結果は、指定されていない。"
6723
6724 #. type: Plain text
6725 #: build/C/man2/signal.2:141
6726 msgid ""
6727 "See B<sigaction>(2)  for details on what happens when B<SIGCHLD> is set to "
6728 "B<SIG_IGN>."
6729 msgstr ""
6730 "B<SIGCHLD> の動作として B<SIG_IGN> を設定した場合の詳細な動作については、 "
6731 "B<sigaction>(2)  を参照すること。"
6732
6733 #. type: Plain text
6734 #: build/C/man2/signal.2:146
6735 msgid ""
6736 "See B<signal>(7)  for a list of the async-signal-safe functions that can be "
6737 "safely called from inside a signal handler."
6738 msgstr ""
6739 "シグナル・ハンドラ内から安全に呼び出すことができる、 async-signal-safe "
6740 "functions (非同期シングルで安全な関数) の リストについては B<signal>(7)  を参"
6741 "照。"
6742
6743 #.  libc4 and libc5 define
6744 #.  .IR SignalHandler ;
6745 #. type: Plain text
6746 #: build/C/man2/signal.2:162
6747 msgid ""
6748 "The use of I<sighandler_t> is a GNU extension, exposed if B<_GNU_SOURCE> is "
6749 "defined; glibc also defines (the BSD-derived)  I<sig_t> if B<_BSD_SOURCE> is "
6750 "defined.  Without use of such a type, the declaration of B<signal>()  is the "
6751 "somewhat harder to read:"
6752 msgstr ""
6753 "I<sighandler_t> の使用は GNU 拡張であり、 B<_GNU_SOURCE> が定義された\n"
6754 "場合に公開される。glibc では B<_BSD_SOURCE> が定義された場合には (BSD\n"
6755 "由来の) I<sig_t> も定義される。このような型を使用しないと、\n"
6756 "B<signal>() の宣言は読みにくいものとなる。"
6757
6758 #. type: Plain text
6759 #: build/C/man2/signal.2:166
6760 #, no-wrap
6761 msgid "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6762 msgstr "B<void ( *>I<signal>B<(int >I<signum>B<, void (*>I<handler>B<)(int)) ) (int);>\n"
6763
6764 #. type: SS
6765 #: build/C/man2/signal.2:168
6766 #, no-wrap
6767 msgid "Portability"
6768 msgstr "移植性"
6769
6770 #. type: Plain text
6771 #: build/C/man2/signal.2:180
6772 msgid ""
6773 "The only portable use of B<signal>()  is to set a signal's disposition to "
6774 "B<SIG_DFL> or B<SIG_IGN>.  The semantics when using B<signal>()  to "
6775 "establish a signal handler vary across systems (and POSIX.1 explicitly "
6776 "permits this variation); B<do not use it for this purpose.>"
6777 msgstr ""
6778 "移植性のある B<signal>()  の使い方は、シグナルの処理方法を B<SIG_DFL> か "
6779 "B<SIG_IGN> に設定する方法だけである。 シグナル・ハンドラを設定するのに "
6780 "B<signal>()  を使ったときの動作はシステムにより異なる (POSIX.1 は明示的にこの"
6781 "違いを認めている)。 B<移植性が必要なときはこのシステムコールを使用しないこ"
6782 "と。>"
6783
6784 #. type: Plain text
6785 #: build/C/man2/signal.2:186
6786 msgid ""
6787 "POSIX.1 solved the portability mess by specifying B<sigaction>(2), which "
6788 "provides explicit control of the semantics when a signal handler is invoked; "
6789 "use that interface instead of B<signal>()."
6790 msgstr ""
6791 "POSIX.1 は、 B<sigaction>(2)  を規定することで移植性に関する混乱を解決した。 "
6792 "B<sigaction>(2)  はシグナル・ハンドラが起動される際の挙動を明示的に制御でき"
6793 "る。 B<signal>()  の代わりにこのインターフェイスを使うこと。"
6794
6795 #. type: Plain text
6796 #: build/C/man2/signal.2:196
6797 msgid ""
6798 "In the original UNIX systems, when a handler that was established using "
6799 "B<signal>()  was invoked by the delivery of a signal, the disposition of the "
6800 "signal would be reset to B<SIG_DFL>, and the system did not block delivery "
6801 "of further instances of the signal.  This is equivalent to calling "
6802 "B<sigaction>(2)  with the following flags:"
6803 msgstr ""
6804 "オリジナルの UNIX システムでは、 B<signal>()  を使って設定されたハンドラがシ"
6805 "グナルの配送により起動されると、 そのシグナルの処理方法は B<SIG_DFL> にリセッ"
6806 "トされ、システムは同じシグナルがさらに生成されても シグナルの配送をブロックし"
6807 "なかった。これは、以下のフラグで B<sigaction>(2) を呼び出すのと等価である。"
6808
6809 #. type: Plain text
6810 #: build/C/man2/signal.2:198
6811 #, no-wrap
6812 msgid "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6813 msgstr "    sa.sa_flags = SA_RESETHAND | SA_NODEFER;\n"
6814
6815 #. type: Plain text
6816 #: build/C/man2/signal.2:205
6817 msgid ""
6818 "System V also provides these semantics for B<signal>().  This was bad "
6819 "because the signal might be delivered again before the handler had a chance "
6820 "to reestablish itself.  Furthermore, rapid deliveries of the same signal "
6821 "could result in recursive invocations of the handler."
6822 msgstr ""
6823 "System V でも、 B<signal>()  に対してこれらの挙動を規定している。 こうした挙"
6824 "動はまずく、ハンドラがハンドラ自身を再設定する機会が 来るより前に、同じシグナ"
6825 "ルがまた配送される可能性がある。 さらに、同じシグナルが立て続けに配送される"
6826 "と、同じシグナルが ハンドラを繰り返し起動されることになる。"
6827
6828 #. type: Plain text
6829 #: build/C/man2/signal.2:220
6830 msgid ""
6831 "BSD improved on this situation, but unfortunately also changed the semantics "
6832 "of the existing B<signal>()  interface while doing so.  On BSD, when a "
6833 "signal handler is invoked, the signal disposition is not reset, and further "
6834 "instances of the signal are blocked from being delivered while the handler "
6835 "is executing.  Furthermore, certain blocking system calls are automatically "
6836 "restarted if interrupted by a signal handler (see B<signal>(7)).  The BSD "
6837 "semantics are equivalent to calling B<sigaction>(2)  with the following "
6838 "flags:"
6839 msgstr ""
6840 "BSD はこの状況が改善したが、残念なことに、その過程で既存の B<signal>() の挙動"
6841 "も変更された。 BSD では、シグナルハンドラが起動された際、 シグナルの処理方法"
6842 "はリセットされず、 ハンドラの実行中は、同じシグナルのさらなる生成は配送がブ"
6843 "ロックされる。 また、 シグナルハンドラが中断された場合、 停止中のシステムコー"
6844 "ルのいくつかは自動的に再スタートされる。 BSD の挙動は、 以下のフラグを指定し"
6845 "た B<sigaction>(2) の呼び出しと等価である。"
6846
6847 #. type: Plain text
6848 #: build/C/man2/signal.2:222
6849 #, no-wrap
6850 msgid "    sa.sa_flags = SA_RESTART;\n"
6851 msgstr "    sa.sa_flags = SA_RESTART;\n"
6852
6853 #. type: Plain text
6854 #: build/C/man2/signal.2:224
6855 msgid "The situation on Linux is as follows:"
6856 msgstr "Linux での状況は以下の通りである。"
6857
6858 #. type: Plain text
6859 #: build/C/man2/signal.2:228
6860 msgid "The kernel's B<signal>()  system call provides System V semantics."
6861 msgstr "カーネルの B<signal>()  システムコールは System V 方式を提供している。"
6862
6863 #. type: Plain text
6864 #: build/C/man2/signal.2:244
6865 msgid ""
6866 "By default, in glibc 2 and later, the B<signal>()  wrapper function does not "
6867 "invoke the kernel system call.  Instead, it calls B<sigaction>(2)  using "
6868 "flags that supply BSD semantics.  This default behavior is provided as long "
6869 "as the B<_BSD_SOURCE> feature test macro is defined.  By default, "
6870 "B<_BSD_SOURCE> is defined; it is also implicitly defined if one defines "
6871 "B<_GNU_SOURCE>, and can of course be explicitly defined."
6872 msgstr ""
6873 "デフォルトでは、glibc 2 以降では、 B<signal>()  ラッパー関数はカーネルのシス"
6874 "テムコールを起動しない。 代わりに、ラッパー関数は BSD 方式を示すフラグを使っ"
6875 "て B<sigaction>(2)  を呼び出す。 機能検査マクロ B<_BSD_SOURCE> を定義していれ"
6876 "ば、このデフォルトの動作となる。 デフォルトでは、 B<_BSD_SOURCE> が定義され"
6877 "る。 B<_BSD_SOURCE> は B<_GNU_SOURCE> が定義された場合には暗黙のうちに定義さ"
6878 "れ、 もちろん明示的に定義することもできる。"
6879
6880 #.  System V semantics are also provided if one uses the separate
6881 #.  .BR sysv_signal (3)
6882 #.  function.
6883 #. type: Plain text
6884 #: build/C/man2/signal.2:267
6885 msgid ""
6886 "On glibc 2 and later, if the B<_BSD_SOURCE> feature test macro is not "
6887 "defined, then B<signal>()  provides System V semantics.  (The default "
6888 "implicit definition of B<_BSD_SOURCE> is not provided if one invokes B<gcc>"
6889 "(1)  in one of its standard modes (I<-std=xxx> or I<-ansi>)  or defines "
6890 "various other feature test macros such as B<_POSIX_SOURCE>, "
6891 "B<_XOPEN_SOURCE>, or B<_SVID_SOURCE>; see B<feature_test_macros>(7).)"
6892 msgstr ""
6893 "glibc 2 以降では、機能検査マクロ B<_BSD_SOURCE> が定義されていなければ、 "
6894 "B<signal>()  は System V 方式となる。 (B<gcc>(1)  が標準指定モード (I<-"
6895 "std=xxx> or I<-ansi>)  で起動された場合、もしくは B<_POSIX_SOURCE>, "
6896 "B<_XOPEN_SOURCE>, B<_SVID_SOURCE> といった他の様々な機能検査マクロが定義され"
6897 "た場合、 デフォルトの B<_BSD_SOURCE> の暗黙の定義は行われない。 "
6898 "B<feature_test_macros>(7)  を参照のこと。)"
6899
6900 #. type: Plain text
6901 #: build/C/man2/signal.2:278
6902 msgid ""
6903 "The B<signal>()  function in Linux libc4 and libc5 provide System V "
6904 "semantics.  If one on a libc5 system includes I<E<lt>bsd/signal.hE<gt>> "
6905 "instead of I<E<lt>signal.hE<gt>>, then B<signal>()  provides BSD semantics."
6906 msgstr ""
6907 "Linux の libc4 と libc5 の B<signal>()  関数は System V 方式である。 libc5 シ"
6908 "ステムにおいて I<E<lt>signal.hE<gt>> のかわりに I<E<lt>bsd/signal.hE<gt>> を"
6909 "インクルードすると、 B<signal>()  は B<__bsd_signal>()  に再定義され、 "
6910 "B<signal>()  は BSD 方式となる。"
6911
6912 #. type: Plain text
6913 #: build/C/man2/signal.2:297
6914 msgid ""
6915 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaction>"
6916 "(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6917 "B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6918 "B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), B<signal>(7)"
6919 msgstr ""
6920 "B<kill>(1), B<alarm>(2), B<kill>(2), B<killpg>(2), B<pause>(2), B<sigaction>"
6921 "(2), B<signalfd>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), "
6922 "B<bsd_signal>(3), B<raise>(3), B<siginterrupt>(3), B<sigqueue>(3), "
6923 "B<sigsetops>(3), B<sigvec>(3), B<sysv_signal>(3), B<signal>(7)"
6924
6925 #. type: Plain text
6926 #: build/C/man7/signal.7:49
6927 msgid "signal - overview of signals"
6928 msgstr "signal - シグナルの概要"
6929
6930 #. type: Plain text
6931 #: build/C/man7/signal.7:52
6932 msgid ""
6933 "Linux supports both POSIX reliable signals (hereinafter \"standard signals"
6934 "\") and POSIX real-time signals."
6935 msgstr ""
6936 "Linux は POSIX 信頼シグナル (reliable signal; 以後 \"標準シグナル\"と表記)  "
6937 "と POSIX リアルタイムシグナルの両方に対応している。"
6938
6939 #. type: SS
6940 #: build/C/man7/signal.7:52
6941 #, no-wrap
6942 msgid "Signal dispositions"
6943 msgstr "シグナル処理方法"
6944
6945 #. type: Plain text
6946 #: build/C/man7/signal.7:57
6947 msgid ""
6948 "Each signal has a current I<disposition>, which determines how the process "
6949 "behaves when it is delivered the signal."
6950 msgstr ""
6951 "シグナルはそれぞれ現在の「処理方法 (disposition)」を保持しており、 この処理方"
6952 "法によりシグナルが配送された際にプロセスが どのような振舞いをするかが決まる。"
6953
6954 #. type: Plain text
6955 #: build/C/man7/signal.7:60
6956 msgid ""
6957 "The entries in the \"Action\" column of the tables below specify the default "
6958 "disposition for each signal, as follows:"
6959 msgstr ""
6960 "後述の表の \"動作\" の欄のエントリは各シグナルのデフォルトの 処理方法を示して"
6961 "おり、以下のような意味を持つ。"
6962
6963 #. type: IP
6964 #: build/C/man7/signal.7:60
6965 #, no-wrap
6966 msgid "Term"
6967 msgstr "Term"
6968
6969 #. type: Plain text
6970 #: build/C/man7/signal.7:62
6971 msgid "Default action is to terminate the process."
6972 msgstr "デフォルトの動作はプロセス終了。"
6973
6974 #. type: IP
6975 #: build/C/man7/signal.7:62
6976 #, no-wrap
6977 msgid "Ign"
6978 msgstr "Ign"
6979
6980 #. type: Plain text
6981 #: build/C/man7/signal.7:64
6982 msgid "Default action is to ignore the signal."
6983 msgstr "デフォルトの動作はこのシグナルの無視。"
6984
6985 #. type: IP
6986 #: build/C/man7/signal.7:64
6987 #, no-wrap
6988 msgid "Core"
6989 msgstr "Core"
6990
6991 #. type: Plain text
6992 #: build/C/man7/signal.7:67
6993 msgid ""
6994 "Default action is to terminate the process and dump core (see B<core>(5))."
6995 msgstr "デフォルトの動作はプロセス終了とコアダンプ出力 (B<core>(5)  参照)。"
6996
6997 #. type: IP
6998 #: build/C/man7/signal.7:67
6999 #, no-wrap
7000 msgid "Stop"
7001 msgstr "Stop"
7002
7003 #. type: Plain text
7004 #: build/C/man7/signal.7:69
7005 msgid "Default action is to stop the process."
7006 msgstr "デフォルトの動作はプロセスの一時停止。"
7007
7008 #. type: IP
7009 #: build/C/man7/signal.7:69
7010 #, no-wrap
7011 msgid "Cont"
7012 msgstr "Cont"
7013
7014 #. type: Plain text
7015 #: build/C/man7/signal.7:71
7016 msgid "Default action is to continue the process if it is currently stopped."
7017 msgstr "デフォルトの動作は、プロセスが停止中の場合にその実行の再開。"
7018
7019 #. type: Plain text
7020 #: build/C/man7/signal.7:93
7021 msgid ""
7022 "A process can change the disposition of a signal using B<sigaction>(2)  or "
7023 "B<signal>(2).  (The latter is less portable when establishing a signal "
7024 "handler; see B<signal>(2)  for details.)  Using these system calls, a "
7025 "process can elect one of the following behaviors to occur on delivery of the "
7026 "signal: perform the default action; ignore the signal; or catch the signal "
7027 "with a I<signal handler>, a programmer-defined function that is "
7028 "automatically invoked when the signal is delivered.  (By default, the signal "
7029 "handler is invoked on the normal process stack.  It is possible to arrange "
7030 "that the signal handler uses an alternate stack; see B<sigaltstack>(2)  for "
7031 "a discussion of how to do this and when it might be useful.)"
7032 msgstr ""
7033 "プロセスは、 B<sigaction>(2)  や B<signal>(2)  を使って、シグナルの処理方法を"
7034 "変更することができる (B<signal>(2)  の方がシグナルハンドラを設定する際の移植"
7035 "性が低い; 詳細は B<signal>(2)  を参照)。 シグナルの配送時に起こる動作として "
7036 "プロセスが選択できるのは、次のいずれか一つである。 デフォルトの動作を実行す"
7037 "る、シグナルを無視する、 I<シグナルハンドラ (signal handler)> でシグナルを捕"
7038 "捉する。シグナルハンドラとは、シグナル配送時に 自動的に起動されるプログラマ定"
7039 "義の関数である。 (デフォルトでは、シグナルハンドラは通常のプロセスのスタック"
7040 "上で起動される。 シグナルハンドラが代替スタック (alternate stack) を使用する"
7041 "ように設定する こともできる。代替スタックを使用するように設定する方法と、どの"
7042 "ような際に 代替スタックが役に立つかについての議論については B<sigaltstack>"
7043 "(2)  を参照のこと。"
7044
7045 #. type: Plain text
7046 #: build/C/man7/signal.7:97
7047 msgid ""
7048 "The signal disposition is a per-process attribute: in a multithreaded "
7049 "application, the disposition of a particular signal is the same for all "
7050 "threads."
7051 msgstr ""
7052 "シグナルの処理方法はプロセス単位の属性である。 マルチスレッドのアプリケーショ"
7053 "ンでは、あるシグナルの処理方法は 全てのスレッドで同じである。"
7054
7055 #. type: SS
7056 #: build/C/man7/signal.7:105
7057 #, no-wrap
7058 msgid "Sending a signal"
7059 msgstr "シグナルの送信"
7060
7061 #. type: Plain text
7062 #: build/C/man7/signal.7:108
7063 msgid ""
7064 "The following system calls and library functions allow the caller to send a "
7065 "signal:"
7066 msgstr ""
7067 "以下のシステムコールとライブラリ関数を使って、 呼び出し者はシグナルを送信する"
7068 "ことができる。"
7069
7070 #. type: TP
7071 #: build/C/man7/signal.7:108
7072 #, no-wrap
7073 msgid "B<raise>(3)"
7074 msgstr "B<raise>(3)"
7075
7076 #. type: Plain text
7077 #: build/C/man7/signal.7:111
7078 msgid "Sends a signal to the calling thread."
7079 msgstr "呼び出したスレッドにシグナルを送る。"
7080
7081 #. type: Plain text
7082 #: build/C/man7/signal.7:116
7083 msgid ""
7084 "Sends a signal to a specified process, to all members of a specified process "
7085 "group, or to all processes on the system."
7086 msgstr ""
7087 "指定されたプロセスや、指定されたプロセスグループの全メンバー、 システムの全プ"
7088 "ロセスにシグナルを送る。"
7089
7090 #. type: TP
7091 #: build/C/man7/signal.7:116
7092 #, no-wrap
7093 msgid "B<killpg>(2)"
7094 msgstr "B<killpg>(2)"
7095
7096 #. type: Plain text
7097 #: build/C/man7/signal.7:119
7098 msgid "Sends a signal to all of the members of a specified process group."
7099 msgstr "指定されたプロセスグループの全メンバーにシグナルを送る。"
7100
7101 #. type: TP
7102 #: build/C/man7/signal.7:119
7103 #, no-wrap
7104 msgid "B<pthread_kill>(3)"
7105 msgstr "B<pthread_kill>(3)"
7106
7107 #. type: Plain text
7108 #: build/C/man7/signal.7:123
7109 msgid ""
7110 "Sends a signal to a specified POSIX thread in the same process as the caller."
7111 msgstr ""
7112 "呼び出し者と同じプロセス内の指定された POSIX スレッドにシグナルを送る。"
7113
7114 #. type: TP
7115 #: build/C/man7/signal.7:123
7116 #, no-wrap
7117 msgid "B<tgkill>(2)"
7118 msgstr "B<tgkill>(2)"
7119
7120 #. type: Plain text
7121 #: build/C/man7/signal.7:128
7122 msgid ""
7123 "Sends a signal to a specified thread within a specific process.  (This is "
7124 "the system call used to implement B<pthread_kill>(3).)"
7125 msgstr ""
7126 "指定されたプロセス内の指定されたスレッドにシグナルを送る (このシステムコール"
7127 "を使って B<pthread_kill>(3)  は実装されている)。"
7128
7129 #. type: Plain text
7130 #: build/C/man7/signal.7:131
7131 msgid "Sends a real-time signal with accompanying data to a specified process."
7132 msgstr "指定されたプロセスに付属データとともにリアルタイムシグナルを送る。"
7133
7134 #. type: SS
7135 #: build/C/man7/signal.7:131
7136 #, no-wrap
7137 msgid "Waiting for a signal to be caught"
7138 msgstr "シグナルが捕捉されるのを待つ"
7139
7140 #. type: Plain text
7141 #: build/C/man7/signal.7:135
7142 msgid ""
7143 "The following system calls suspend execution of the calling process or "
7144 "thread until a signal is caught (or an unhandled signal terminates the "
7145 "process):"
7146 msgstr ""
7147 "以下のシステムコールを使って、シグナルが捕捉されるまで 呼び出したプロセスやス"
7148 "レッドの実行を中断 (suspend) することができる (ハンドラが設定されていないシグ"
7149 "ナルによりそのプロセスが終了した 場合にも実行の停止は終了する)。"
7150
7151 #. type: TP
7152 #: build/C/man7/signal.7:135
7153 #, no-wrap
7154 msgid "B<pause>(2)"
7155 msgstr "B<pause>(2)"
7156
7157 #. type: Plain text
7158 #: build/C/man7/signal.7:138
7159 msgid "Suspends execution until any signal is caught."
7160 msgstr "何かシグナルが捕捉されるまで実行を停止する。"
7161
7162 #. type: TP
7163 #: build/C/man7/signal.7:138
7164 #, no-wrap
7165 msgid "B<sigsuspend>(2)"
7166 msgstr "B<sigsuspend>(2)"
7167
7168 #. type: Plain text
7169 #: build/C/man7/signal.7:142
7170 msgid ""
7171 "Temporarily changes the signal mask (see below) and suspends execution until "
7172 "one of the unmasked signals is caught."
7173 msgstr ""
7174 "一時的にシグナルマスク (下記参照) を変更し、 マスクされていないシグナルのいず"
7175 "れかが捕捉されるまで 実行を中断する。"
7176
7177 #. type: SS
7178 #: build/C/man7/signal.7:142
7179 #, no-wrap
7180 msgid "Synchronously accepting a signal"
7181 msgstr "シグナルの同期受信"
7182
7183 #. type: Plain text
7184 #: build/C/man7/signal.7:149
7185 msgid ""
7186 "Rather than asynchronously catching a signal via a signal handler, it is "
7187 "possible to synchronously accept the signal, that is, to block execution "
7188 "until the signal is delivered, at which point the kernel returns information "
7189 "about the signal to the caller.  There are two general ways to do this:"
7190 msgstr ""
7191 "シグナルハンドラ経由でシグナルを非同期 (asynchronously) で捕捉する以外にも、 "
7192 "シグナルを同期 (synchronously) して受け付けることもできる。 同期して受け付け"
7193 "るとは、シグナルが配送されるまで実行を停止 (block)  するということである。シ"
7194 "グナルを受け付けた際に、カーネルは そのシグナルに関する情報を呼び出し者に返"
7195 "す。 これを行う一般的な方法が二つある。"
7196
7197 #. type: Plain text
7198 #: build/C/man7/signal.7:157
7199 msgid ""
7200 "B<sigwaitinfo>(2), B<sigtimedwait>(2), and B<sigwait>(3)  suspend execution "
7201 "until one of the signals in a specified set is delivered.  Each of these "
7202 "calls returns information about the delivered signal."
7203 msgstr ""
7204 "B<sigwaitinfo>(2), B<sigtimedwait>(2), B<sigwait>(3)  は、指定されたシグナル"
7205 "集合のシグナルの一つが配送されるまで実行を中断する。 どのシステムコールや関数"
7206 "でも、配送されたシグナルに関する情報が返される。"
7207
7208 #. type: Plain text
7209 #: build/C/man7/signal.7:170
7210 msgid ""
7211 "B<signalfd>(2)  returns a file descriptor that can be used to read "
7212 "information about signals that are delivered to the caller.  Each B<read>"
7213 "(2)  from this file descriptor blocks until one of the signals in the set "
7214 "specified in the B<signalfd>(2)  call is delivered to the caller.  The "
7215 "buffer returned by B<read>(2)  contains a structure describing the signal."
7216 msgstr ""
7217 "B<signalfd>(2)  が返すファイルディスクリプタを使うと、呼び出し元に配送された "
7218 "シグナルに関する情報を読み出すことができる。 このファイルディスクリプタから"
7219 "の B<read>(2)  は、 B<signalfd>(2)  の呼び出し時に指定されたシグナル集合のシ"
7220 "グナルの一つが呼び出し元に 配送されるまで停止 (block) する。 B<read>(2)  が返"
7221 "すバッファにはシグナルに関する情報を格納した構造体が入っている。"
7222
7223 #. type: SS
7224 #: build/C/man7/signal.7:170
7225 #, no-wrap
7226 msgid "Signal mask and pending signals"
7227 msgstr "シグナルマスクと処理待ちシグナル"
7228
7229 #. type: Plain text
7230 #: build/C/man7/signal.7:177
7231 msgid ""
7232 "A signal may be I<blocked>, which means that it will not be delivered until "
7233 "it is later unblocked.  Between the time when it is generated and when it is "
7234 "delivered a signal is said to be I<pending>."
7235 msgstr ""
7236 "シグナルは I<ブロック (block)> されることがある。ブロックされると、そのシグナ"
7237 "ルは その後ブロックを解除されるまで配送されなくなる。 シグナルが生成されてか"
7238 "ら配送されるまでの間、そのシグナルは I<処理待ち (pending)> であると呼ばれる。"
7239
7240 #. type: Plain text
7241 #: build/C/man7/signal.7:186
7242 msgid ""
7243 "Each thread in a process has an independent I<signal mask>, which indicates "
7244 "the set of signals that the thread is currently blocking.  A thread can "
7245 "manipulate its signal mask using B<pthread_sigmask>(3).  In a traditional "
7246 "single-threaded application, B<sigprocmask>(2)  can be used to manipulate "
7247 "the signal mask."
7248 msgstr ""
7249 "プロセス内の各スレッドは、それぞれ独立な I<シグナルマスク (signal mask)> を持"
7250 "つ。シグナルマスクはそのスレッドが現在ブロックしている シグナル集合を示すもの"
7251 "である。 スレッドは、 B<pthread_sigmask>(3)  を使って自分のシグナルマスクを操"
7252 "作できる。 伝統的なシングルスレッドのアプリケーションでは、 B<sigprocmask>"
7253 "(2)  を使って、シグナルマスクを操作できる。"
7254
7255 #. type: Plain text
7256 #: build/C/man7/signal.7:192 build/C/man2/sigprocmask.2:126
7257 msgid ""
7258 "A child created via B<fork>(2)  inherits a copy of its parent's signal mask; "
7259 "the signal mask is preserved across B<execve>(2)."
7260 msgstr ""
7261 "B<fork>(2)  経由で作成された子プロセスは親プロセスのシグナルマスクのコピーを"
7262 "継承する。 B<execve>(2)  の前後でシグナルマスクは保持される。"
7263
7264 #. type: Plain text
7265 #: build/C/man7/signal.7:209
7266 msgid ""
7267 "A signal may be generated (and thus pending)  for a process as a whole (e."
7268 "g., when sent using B<kill>(2))  or for a specific thread (e.g., certain "
7269 "signals, such as B<SIGSEGV> and B<SIGFPE>, generated as a consequence of "
7270 "executing a specific machine-language instruction are thread directed, as "
7271 "are signals targeted at a specific thread using B<pthread_kill>(3)).  A "
7272 "process-directed signal may be delivered to any one of the threads that does "
7273 "not currently have the signal blocked.  If more than one of the threads has "
7274 "the signal unblocked, then the kernel chooses an arbitrary thread to which "
7275 "to deliver the signal."
7276 msgstr ""
7277 "生成されるシグナル (したがって処理待ちとなるシグナル) には、 プロセス全体宛て"
7278 "と特定のスレッド宛てがある。 例えば、プロセス全体宛てのシグナルは B<kill>"
7279 "(2)  を使って送信される。 特定のマシン語の命令の実行の結果として生成される、 "
7280 "B<SIGSEGV> や B<SIGFPE> などのシグナルは、スレッド宛てとなる。 また、 "
7281 "B<pthread_kill>(3)  を使って特定のスレッド宛てに生成されたシグナルも スレッド"
7282 "宛てとなる。 プロセス宛てのシグナルは、そのシグナルをブロックしていないスレッ"
7283 "ドのうち いずれかの一つに配送することができる。そのシグナルをブロックしていな"
7284 "い スレッドが複数ある場合、シグナルを配送するスレッドはカーネルが 無作為に選"
7285 "択する。"
7286
7287 #. type: Plain text
7288 #: build/C/man7/signal.7:216
7289 msgid ""
7290 "A thread can obtain the set of signals that it currently has pending using "
7291 "B<sigpending>(2).  This set will consist of the union of the set of pending "
7292 "process-directed signals and the set of signals pending for the calling "
7293 "thread."
7294 msgstr ""
7295 "スレッドは、 B<sigpending>(2)  を使って、現在処理待ちのシグナル集合を取得する"
7296 "ことができる。 この集合は、プロセス宛ての処理待ちシグナルと 呼び出したスレッ"
7297 "ド宛てのシグナルの両方から構成される。"
7298
7299 #. type: Plain text
7300 #: build/C/man7/signal.7:222 build/C/man2/sigpending.2:85
7301 msgid ""
7302 "A child created via B<fork>(2)  initially has an empty pending signal set; "
7303 "the pending signal set is preserved across an B<execve>(2)."
7304 msgstr ""
7305 "B<fork>(2)  経由で作成された子プロセスでは、処理待ちのシグナル集合は空の集合"
7306 "で初期化される。 B<execve>(2)  の前後で、処理待ちのシグナル集合は保持される。"
7307
7308 #. type: SS
7309 #: build/C/man7/signal.7:222
7310 #, no-wrap
7311 msgid "Standard signals"
7312 msgstr "標準シグナル"
7313
7314 #. type: Plain text
7315 #: build/C/man7/signal.7:234
7316 msgid ""
7317 "Linux supports the standard signals listed below.  Several signal numbers "
7318 "are architecture-dependent, as indicated in the \"Value\" column.  (Where "
7319 "three values are given, the first one is usually valid for alpha and sparc, "
7320 "the middle one for x86, arm, and most other architectures, and the last one "
7321 "for mips.  (Values for parisc are I<not> shown; see the Linux kernel source "
7322 "for signal numbering on that architecture.)  A - denotes that a signal is "
7323 "absent on the corresponding architecture.)"
7324 msgstr ""
7325 "Linux は以下に示す標準シグナルに対応している。シグナル番号の一部はアー\n"
7326 "キテクチャ依存であり、\"値\" 欄に示す通りである。 (3つの値が書かれている\n"
7327 "ものは、 1つ目が alpha と sparc で通常有効な値、 真ん中が x86, arm や\n"
7328 "他のほとんどのアーキテクチャでの有効な値、最後が mips での値である。\n"
7329 "(parisc での値は記載されてI<いない>。 parisc でのシグナル番号は\n"
7330 "Linux カーネルソースを参照してほしい)。 - はそのアーキテ\n"
7331 "クチャにおいて対応するシグナルがないことを示す。)"
7332
7333 #. type: Plain text
7334 #: build/C/man7/signal.7:236
7335 msgid "First the signals described in the original POSIX.1-1990 standard."
7336 msgstr "最初に、POSIX.1-1990 に定義されているシグナルを示す。"
7337
7338 #. type: tbl table
7339 #: build/C/man7/signal.7:240 build/C/man7/signal.7:276
7340 #: build/C/man7/signal.7:305
7341 #, no-wrap
7342 msgid "Signal\tValue\tAction\tComment\n"
7343 msgstr "シグナル\t値\t動作\tコメント\n"
7344
7345 #. type: tbl table
7346 #: build/C/man7/signal.7:241
7347 #, no-wrap
7348 msgid "SIGHUP\t\\01\tTerm\tHangup detected on controlling terminal\n"
7349 msgstr "SIGHUP\t\\01\tTerm\t制御端末(controlling terminal)のハングアップ検出、\n"
7350
7351 #. type: tbl table
7352 #: build/C/man7/signal.7:242
7353 #, no-wrap
7354 msgid "\t\t\tor death of controlling process\n"
7355 msgstr "\t\t\tまたは制御しているプロセスの死\n"
7356
7357 #. type: tbl table
7358 #: build/C/man7/signal.7:243
7359 #, no-wrap
7360 msgid "SIGINT\t\\02\tTerm\tInterrupt from keyboard\n"
7361 msgstr "SIGINT\t\\02\tTerm\tキーボードからの割り込み (Interrupt)\n"
7362
7363 #. type: tbl table
7364 #: build/C/man7/signal.7:244
7365 #, no-wrap
7366 msgid "SIGQUIT\t\\03\tCore\tQuit from keyboard\n"
7367 msgstr "SIGQUIT\t\\03\tCore\tキーボードによる中止 (Quit)\n"
7368
7369 #. type: tbl table
7370 #: build/C/man7/signal.7:245
7371 #, no-wrap
7372 msgid "SIGILL\t\\04\tCore\tIllegal Instruction\n"
7373 msgstr "SIGILL\t\\04\tCore\t不正な命令\n"
7374
7375 #. type: tbl table
7376 #: build/C/man7/signal.7:246
7377 #, no-wrap
7378 msgid "SIGABRT\t\\06\tCore\tAbort signal from B<abort>(3)\n"
7379 msgstr "SIGABRT\t\\06\tCore\tB<abort>(3) からの中断 (Abort) シグナル\n"
7380
7381 #. type: tbl table
7382 #: build/C/man7/signal.7:247
7383 #, no-wrap
7384 msgid "SIGFPE\t\\08\tCore\tFloating point exception\n"
7385 msgstr "SIGFPE\t\\08\tCore\t浮動小数点例外\n"
7386
7387 #. type: tbl table
7388 #: build/C/man7/signal.7:248
7389 #, no-wrap
7390 msgid "SIGKILL\t\\09\tTerm\tKill signal\n"
7391 msgstr "SIGKILL\t\\09\tTerm\tKill シグナル\n"
7392
7393 #. type: tbl table
7394 #: build/C/man7/signal.7:249
7395 #, no-wrap
7396 msgid "SIGSEGV\t11\tCore\tInvalid memory reference\n"
7397 msgstr "SIGSEGV\t11\tCore\t不正なメモリ参照\n"
7398
7399 #. type: tbl table
7400 #: build/C/man7/signal.7:250
7401 #, no-wrap
7402 msgid "SIGPIPE\t13\tTerm\tBroken pipe: write to pipe with no\n"
7403 msgstr "SIGPIPE\t13\tTerm\tパイプ破壊:\n"
7404
7405 #. type: tbl table
7406 #: build/C/man7/signal.7:251
7407 #, no-wrap
7408 msgid "\t\t\treaders\n"
7409 msgstr "\t\t\t読み手の無いパイプへの書き出し\n"
7410
7411 #. type: tbl table
7412 #: build/C/man7/signal.7:252
7413 #, no-wrap
7414 msgid "SIGALRM\t14\tTerm\tTimer signal from B<alarm>(2)\n"
7415 msgstr "SIGALRM\t14\tTerm\tB<alarm>(2) からのタイマーシグナル\n"
7416
7417 #. type: tbl table
7418 #: build/C/man7/signal.7:253
7419 #, no-wrap
7420 msgid "SIGTERM\t15\tTerm\tTermination signal\n"
7421 msgstr "SIGTERM\t15\tTerm\t終了 (termination) シグナル\n"
7422
7423 #. type: tbl table
7424 #: build/C/man7/signal.7:254
7425 #, no-wrap
7426 msgid "SIGUSR1\t30,10,16\tTerm\tUser-defined signal 1\n"
7427 msgstr "SIGUSR1\t30,10,16\tTerm\tユーザ定義シグナル 1\n"
7428
7429 #. type: tbl table
7430 #: build/C/man7/signal.7:255
7431 #, no-wrap
7432 msgid "SIGUSR2\t31,12,17\tTerm\tUser-defined signal 2\n"
7433 msgstr "SIGUSR2\t31,12,17\tTerm\tユーザ定義シグナル 2\n"
7434
7435 #. type: tbl table
7436 #: build/C/man7/signal.7:256
7437 #, no-wrap
7438 msgid "SIGCHLD\t20,17,18\tIgn\tChild stopped or terminated\n"
7439 msgstr "SIGCHLD\t20,17,18\tIgn\t子プロセスの一時停止 (stop) または終了\n"
7440
7441 #. type: tbl table
7442 #: build/C/man7/signal.7:257
7443 #, no-wrap
7444 msgid "SIGCONT\t19,18,25\tCont\tContinue if stopped\n"
7445 msgstr "SIGCONT\t19,18,25\tCont\t一時停止 (stop) からの再開\n"
7446
7447 #. type: tbl table
7448 #: build/C/man7/signal.7:258
7449 #, no-wrap
7450 msgid "SIGSTOP\t17,19,23\tStop\tStop process\n"
7451 msgstr "SIGSTOP\t17,19,23\tStop\tプロセスの一時停止 (stop)\n"
7452
7453 #. type: tbl table
7454 #: build/C/man7/signal.7:259
7455 #, no-wrap
7456 msgid "SIGTSTP\t18,20,24\tStop\tStop typed at terminal\n"
7457 msgstr "SIGTSTP\t18,20,24\tStop\t端末より入力された一時停止 (stop)\n"
7458
7459 #. type: tbl table
7460 #: build/C/man7/signal.7:260
7461 #, no-wrap
7462 msgid "SIGTTIN\t21,21,26\tStop\tTerminal input for background process\n"
7463 msgstr "SIGTTIN\t21,21,26\tStop\tバックグランドプロセスの端末入力\n"
7464
7465 #. type: tbl table
7466 #: build/C/man7/signal.7:261
7467 #, no-wrap
7468 msgid "SIGTTOU\t22,22,27\tStop\tTerminal output for background process\n"
7469 msgstr "SIGTTOU\t22,22,27\tStop\tバックグランドプロセスの端末出力\n"
7470
7471 #. type: Plain text
7472 #: build/C/man7/signal.7:269
7473 msgid ""
7474 "The signals B<SIGKILL> and B<SIGSTOP> cannot be caught, blocked, or ignored."
7475 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> はキャッチ、ブロック、無視できない。"
7476
7477 #. type: Plain text
7478 #: build/C/man7/signal.7:272
7479 msgid ""
7480 "Next the signals not in the POSIX.1-1990 standard but described in SUSv2 and "
7481 "POSIX.1-2001."
7482 msgstr ""
7483 "次に、 POSIX.1-1990 標準にはないが、 SUSv2 と POSIX.1-2001 に記述されているシ"
7484 "グナルを示す。"
7485
7486 #. type: tbl table
7487 #: build/C/man7/signal.7:277
7488 #, no-wrap
7489 msgid "SIGBUS\t10,7,10\tCore\tBus error (bad memory access)\n"
7490 msgstr "SIGBUS\t10,7,10\tCore\tバスエラー (不正なメモリアクセス)\n"
7491
7492 #. type: tbl table
7493 #: build/C/man7/signal.7:278
7494 #, no-wrap
7495 msgid "SIGPOLL\t\tTerm\tPollable event (Sys V).\n"
7496 msgstr "SIGPOLL\t\tTerm\tポーリング可能なイベント (Sys V)。\n"
7497
7498 #. type: tbl table
7499 #: build/C/man7/signal.7:279
7500 #, no-wrap
7501 msgid "\t\t\tSynonym for B<SIGIO>\n"
7502 msgstr "\t\t\tB<SIGIO> と同義\n"
7503
7504 #. type: tbl table
7505 #: build/C/man7/signal.7:280
7506 #, no-wrap
7507 msgid "SIGPROF\t27,27,29\tTerm\tProfiling timer expired\n"
7508 msgstr "SIGPROF\t27,27,29\tTerm\tprofiling タイマの時間切れ\n"
7509
7510 #. type: tbl table
7511 #: build/C/man7/signal.7:281
7512 #, no-wrap
7513 msgid "SIGSYS\t12,31,12\tCore\tBad argument to routine (SVr4)\n"
7514 msgstr "SIGSYS\t12,31,12\tCore\tルーチンへの引き数が不正 (SVr4)\n"
7515
7516 #. type: tbl table
7517 #: build/C/man7/signal.7:282
7518 #, no-wrap
7519 msgid "SIGTRAP\t5\tCore\tTrace/breakpoint trap\n"
7520 msgstr "SIGTRAP\t5\tCore\tトレース/ブレークポイント トラップ\n"
7521
7522 #. type: tbl table
7523 #: build/C/man7/signal.7:283
7524 #, no-wrap
7525 msgid "SIGURG\t16,23,21\tIgn\tUrgent condition on socket (4.2BSD)\n"
7526 msgstr "SIGURG\t16,23,21\tIgn\tソケットの緊急事態 (urgent condition) (4.2BSD)\n"
7527
7528 #. type: tbl table
7529 #: build/C/man7/signal.7:284
7530 #, no-wrap
7531 msgid "SIGVTALRM\t26,26,28\tTerm\tVirtual alarm clock (4.2BSD)\n"
7532 msgstr "SIGVTALRM\t26,26,28\tTerm\t仮想アラームクロック (4.2BSD)\n"
7533
7534 #. type: tbl table
7535 #: build/C/man7/signal.7:285
7536 #, no-wrap
7537 msgid "SIGXCPU\t24,24,30\tCore\tCPU time limit exceeded (4.2BSD)\n"
7538 msgstr "SIGXCPU\t24,24,30\tCore\tCPU時間制限超過 (4.2BSD)\n"
7539
7540 #. type: tbl table
7541 #: build/C/man7/signal.7:286
7542 #, no-wrap
7543 msgid "SIGXFSZ\t25,25,31\tCore\tFile size limit exceeded (4.2BSD)\n"
7544 msgstr "SIGXFSZ\t25,25,31\tCore\tファイルサイズ制限の超過 (4.2BSD)\n"
7545
7546 #. type: Plain text
7547 #: build/C/man7/signal.7:299
7548 msgid ""
7549 "Up to and including Linux 2.2, the default behavior for B<SIGSYS>, "
7550 "B<SIGXCPU>, B<SIGXFSZ>, and (on architectures other than SPARC and MIPS)  "
7551 "B<SIGBUS> was to terminate the process (without a core dump).  (On some "
7552 "other UNIX systems the default action for B<SIGXCPU> and B<SIGXFSZ> is to "
7553 "terminate the process without a core dump.)  Linux 2.4 conforms to the "
7554 "POSIX.1-2001 requirements for these signals, terminating the process with a "
7555 "core dump."
7556 msgstr ""
7557 "Linux 2.2 以前では、 B<SIGSYS>, B<SIGXCPU>, B<SIGXFSZ> および SPARC と MIPS "
7558 "以外のアーキテクチャでの B<SIGBUS> のデフォルトの振る舞いは (コアダンプ出力な"
7559 "しの) プロセス終了であった。 (他の UNIX システムにも B<SIGXCPU> と "
7560 "B<SIGXFSZ> のデフォルトの動作がコアダンプなしのプロセス終了のものがある。)  "
7561 "Linux 2.4 では、POSIX.1-2001 での要求仕様に準拠して、 これらのシグナルで、プ"
7562 "ロセスを終了させ、コアダンプを出力する ようになっている。"
7563
7564 #. type: Plain text
7565 #: build/C/man7/signal.7:301
7566 msgid "Next various other signals."
7567 msgstr "次にその他の各種シグナルを示す。"
7568
7569 #. type: tbl table
7570 #: build/C/man7/signal.7:306
7571 #, no-wrap
7572 msgid "SIGIOT\t6\tCore\tIOT trap. A synonym for B<SIGABRT>\n"
7573 msgstr "SIGIOT\t6\tCore\tIOT トラップ。B<SIGABRT> と同義\n"
7574
7575 #. type: tbl table
7576 #: build/C/man7/signal.7:307
7577 #, no-wrap
7578 msgid "SIGEMT\t7,-,7\tTerm\n"
7579 msgstr "SIGEMT\t7,-,7\tTerm\n"
7580
7581 #. type: tbl table
7582 #: build/C/man7/signal.7:308
7583 #, no-wrap
7584 msgid "SIGSTKFLT\t-,16,-\tTerm\tStack fault on coprocessor (unused)\n"
7585 msgstr "SIGSTKFLT\t-,16,-\tA\t数値演算プロセッサにおけるスタックフォルト (未使用)\n"
7586
7587 #. type: tbl table
7588 #: build/C/man7/signal.7:309
7589 #, no-wrap
7590 msgid "SIGIO\t23,29,22\tTerm\tI/O now possible (4.2BSD)\n"
7591 msgstr "SIGIO\t23,29,22\tTerm\t入出力が可能になった (4.2BSD)\n"
7592
7593 #. type: tbl table
7594 #: build/C/man7/signal.7:310
7595 #, no-wrap
7596 msgid "SIGCLD\t-,-,18\tIgn\tA synonym for B<SIGCHLD>\n"
7597 msgstr "SIGCLD\t-,-,18\tIgn\tB<SIGCHLD> と同義\n"
7598
7599 #. type: tbl table
7600 #: build/C/man7/signal.7:311
7601 #, no-wrap
7602 msgid "SIGPWR\t29,30,19\tTerm\tPower failure (System V)\n"
7603 msgstr "SIGPWR\t29,30,19\tTerm\t電源喪失 (Power failure) (System V)\n"
7604
7605 #. type: tbl table
7606 #: build/C/man7/signal.7:312
7607 #, no-wrap
7608 msgid "SIGINFO\t29,-,-\t\tA synonym for B<SIGPWR>\n"
7609 msgstr "SIGINFO\t29,-,-\t \tB<SIGPWR> と同義\n"
7610
7611 #. type: tbl table
7612 #: build/C/man7/signal.7:313
7613 #, no-wrap
7614 msgid "SIGLOST\t-,-,-\tTerm\tFile lock lost (unused)\n"
7615 msgstr "SIGLOST\t-,-,-\tTerm\tファイルロックが失われた (未使用)\n"
7616
7617 #. type: tbl table
7618 #: build/C/man7/signal.7:314
7619 #, no-wrap
7620 msgid "SIGWINCH\t28,28,20\tIgn\tWindow resize signal (4.3BSD, Sun)\n"
7621 msgstr "SIGWINCH\t28,28,20\tIgn\tウィンドウ リサイズ シグナル (4.3BSD, Sun)\n"
7622
7623 #. type: tbl table
7624 #: build/C/man7/signal.7:315
7625 #, no-wrap
7626 msgid "SIGUNUSED\t-,31,-\tCore\tSynonymous with B<SIGSYS>\n"
7627 msgstr "SIGUNUSED\t-,31,-\tCore\tB<SIGSYS> と同義\n"
7628
7629 #. type: Plain text
7630 #: build/C/man7/signal.7:325
7631 msgid ""
7632 "(Signal 29 is B<SIGINFO> / B<SIGPWR> on an alpha but B<SIGLOST> on a sparc.)"
7633 msgstr ""
7634 "(シグナル 29 は alpha では B<SIGINFO> / B<SIGPWR> だが、sparc では "
7635 "B<SIGLOST> である。)"
7636
7637 #. type: Plain text
7638 #: build/C/man7/signal.7:331
7639 msgid ""
7640 "B<SIGEMT> is not specified in POSIX.1-2001, but nevertheless appears on most "
7641 "other UNIX systems, where its default action is typically to terminate the "
7642 "process with a core dump."
7643 msgstr ""
7644 "B<SIGEMT> は POSIX.1-2001 に規定されていないが、 その他の多くの UNIX システム"
7645 "に存在する。 デフォルトの動作は多くの場合、コアダンプ出力を伴うプロセスの終了"
7646 "である。"
7647
7648 #. type: Plain text
7649 #: build/C/man7/signal.7:335
7650 msgid ""
7651 "B<SIGPWR> (which is not specified in POSIX.1-2001) is typically ignored by "
7652 "default on those other UNIX systems where it appears."
7653 msgstr ""
7654 "B<SIGPWR> は (POSIX.1-2001 に規定されていないが) このシグナルが存在する 他の "
7655 "UNIX システムでは多くの場合、デフォルト動作は無視である。"
7656
7657 #. type: Plain text
7658 #: build/C/man7/signal.7:339
7659 msgid ""
7660 "B<SIGIO> (which is not specified in POSIX.1-2001) is ignored by default on "
7661 "several other UNIX systems."
7662 msgstr ""
7663 "B<SIGIO> は (POSIX.1-2001 に規定されていないが) いくつかの他の UNIX システム"
7664 "では デフォルト動作は無視である。"
7665
7666 #.  parisc is the only exception: SIGSYS is 12, SIGUNUSED is 31
7667 #. type: Plain text
7668 #: build/C/man7/signal.7:346
7669 msgid ""
7670 "Where defined, B<SIGUNUSED> is synonymous with B<SIGSYS> on most "
7671 "architectures."
7672 msgstr ""
7673 "B<SIGUNUSED> が定義されている場合には、ほとんどのアーキテクチャで B<SIGSYS> "
7674 "の同義語となっている。"
7675
7676 #. type: SS
7677 #: build/C/man7/signal.7:346
7678 #, no-wrap
7679 msgid "Real-time signals"
7680 msgstr "リアルタイムシグナル"
7681
7682 #. type: Plain text
7683 #: build/C/man7/signal.7:356
7684 msgid ""
7685 "Linux supports real-time signals as originally defined in the POSIX.1b real-"
7686 "time extensions (and now included in POSIX.1-2001).  The range of supported "
7687 "real-time signals is defined by the macros B<SIGRTMIN> and B<SIGRTMAX>.  "
7688 "POSIX.1-2001 requires that an implementation support at least "
7689 "B<_POSIX_RTSIG_MAX> (8) real-time signals."
7690 msgstr ""
7691 "Linux はリアルタイムシグナルをサポートしている。 リアルタイムシグナルは元々 "
7692 "POSIX.1b のリアルタイム拡張で定義されて いるものであり、現在では "
7693 "POSIX.1-2001 に含まれている。 対応しているリアルタイムシグナルの範囲は、マク"
7694 "ロ B<SIGRTMIN> と B<SIGRTMAX> で定義される。 POSIX.1-2001 では、少なくとも "
7695 "B<_POSIX_RTSIG_MAX> (8) 個のリアルタイムシグナルに対応した実装が要求されてい"
7696 "る。"
7697
7698 #. type: Plain text
7699 #: build/C/man7/signal.7:378
7700 msgid ""
7701 "The Linux kernel supports a range of 32 different real-time signals, "
7702 "numbered 33 to 64.  However, the glibc POSIX threads implementation "
7703 "internally uses two (for NPTL) or three (for LinuxThreads) real-time signals "
7704 "(see B<pthreads>(7)), and adjusts the value of B<SIGRTMIN> suitably (to 34 "
7705 "or 35).  Because the range of available real-time signals varies according "
7706 "to the glibc threading implementation (and this variation can occur at run "
7707 "time according to the available kernel and glibc), and indeed the range of "
7708 "real-time signals varies across UNIX systems, programs should I<never refer "
7709 "to real-time signals using hard-coded numbers>, but instead should always "
7710 "refer to real-time signals using the notation B<SIGRTMIN>+n, and include "
7711 "suitable (run-time) checks that B<SIGRTMIN>+n does not exceed B<SIGRTMAX>."
7712 msgstr ""
7713 "Linux は、32 個の異なるリアルタイムシグナルに対応しており、 その番号は 33 か"
7714 "ら 64 である。 しかしながら、glibc の POSIX スレッド実装は、 内部で 2個 "
7715 "(NPTL の場合) か 3個 (LinuxThreads の場合) の リアルタイムシグナルを使用して"
7716 "おり (B<pthreads>(7)  参照)、 B<SIGRTMIN> の値を適切に (34 か 35 に) 調整す"
7717 "る。 利用可能なリアルタイムシグナルの範囲は glibc のスレッド実装により 異なる"
7718 "し (使用するカーネルと glibc により実行時にも変化する)、 UNIX システムの種類"
7719 "によっても異なる。したがって、 プログラムでは「ハードコーディングした数字を"
7720 "使ってのリアルタイムシグナルの 参照は決してすべきではなく」、代わりに "
7721 "B<SIGRTMIN>+n の形で参照すべきである。また、 B<SIGRTMIN>+n が B<SIGRTMAX> を"
7722 "超えていないかのチェックを (実行時に) 適切に行うべきである。"
7723
7724 #. type: Plain text
7725 #: build/C/man7/signal.7:382
7726 msgid ""
7727 "Unlike standard signals, real-time signals have no predefined meanings: the "
7728 "entire set of real-time signals can be used for application-defined purposes."
7729 msgstr ""
7730 "標準シグナルと異なり、リアルタイムシグナルには 事前に定義された意味はない。 "
7731 "リアルタイムシグナルの全部をアプリケーションで定義した用途に使える。"
7732
7733 #. type: Plain text
7734 #: build/C/man7/signal.7:385
7735 msgid ""
7736 "The default action for an unhandled real-time signal is to terminate the "
7737 "receiving process."
7738 msgstr ""
7739 "ハンドリングしないリアルタイムシグナルのデフォルトの動作は 受信したプロセスの"
7740 "終了である。"
7741
7742 #. type: Plain text
7743 #: build/C/man7/signal.7:387
7744 msgid "Real-time signals are distinguished by the following:"
7745 msgstr "リアルタイムシグナルは以下の特徴がある:"
7746
7747 #. type: Plain text
7748 #: build/C/man7/signal.7:391
7749 msgid ""
7750 "Multiple instances of real-time signals can be queued.  By contrast, if "
7751 "multiple instances of a standard signal are delivered while that signal is "
7752 "currently blocked, then only one instance is queued."
7753 msgstr ""
7754 "リアルタイムシグナルは複数の実体をキューに入れることができる。 一方、標準シグ"
7755 "ナルの場合、そのシグナルがブロックされている間に 同じシグナルの複数のインスタ"
7756 "ンスが配送されても、 1 つだけがキューに入れられる。"
7757
7758 #. type: Plain text
7759 #: build/C/man7/signal.7:411
7760 msgid ""
7761 "If the signal is sent using B<sigqueue>(3), an accompanying value (either an "
7762 "integer or a pointer) can be sent with the signal.  If the receiving process "
7763 "establishes a handler for this signal using the B<SA_SIGINFO> flag to "
7764 "B<sigaction>(2)  then it can obtain this data via the I<si_value> field of "
7765 "the I<siginfo_t> structure passed as the second argument to the handler.  "
7766 "Furthermore, the I<si_pid> and I<si_uid> fields of this structure can be "
7767 "used to obtain the PID and real user ID of the process sending the signal."
7768 msgstr ""
7769 "シグナルが B<sigqueue>(3)  を用いて送信された場合、 付属データ (整数かポイン"
7770 "タ) をシグナルと共に送信できる。 受信側プロセスが B<sigaction>(2)  に "
7771 "B<SA_SIGINFO> フラグを指定してシグナルハンドラを設定した場合、 このデータは "
7772 "I<siginfo_t> 構造体の I<si_value> フィールド経由でハンドラの第 2 引き数として"
7773 "渡され、 利用することができる。 さらに、この構造体の I<si_pid> と I<si_uid> "
7774 "フィールドでシグナルを送信したプロセスの PID と実ユーザ ID を 得ることができ"
7775 "る。"
7776
7777 #. type: Plain text
7778 #: build/C/man7/signal.7:420
7779 msgid ""
7780 "Real-time signals are delivered in a guaranteed order.  Multiple real-time "
7781 "signals of the same type are delivered in the order they were sent.  If "
7782 "different real-time signals are sent to a process, they are delivered "
7783 "starting with the lowest-numbered signal.  (I.e., low-numbered signals have "
7784 "highest priority.)  By contrast, if multiple standard signals are pending "
7785 "for a process, the order in which they are delivered is unspecified."
7786 msgstr ""
7787 "リアルタイムシグナルでは配送される順序が保証される。 同じタイプのリアルタイム"
7788 "シグナルは送信された順番に到着する。 異なるリアルタイムシグナルが一つのプロセ"
7789 "スに送信された場合、 番号の小さいシグナルから先に到着する。 (つまり小さい番号"
7790 "のシグナルが高い優先順位を持つ。)  対照的に、一つのプロセスに対して複数の標準"
7791 "シグナルが処理待ちとなった場合、 これらのシグナルが配送される順序は不定であ"
7792 "る。"
7793
7794 #. type: Plain text
7795 #: build/C/man7/signal.7:425
7796 msgid ""
7797 "If both standard and real-time signals are pending for a process, POSIX "
7798 "leaves it unspecified which is delivered first.  Linux, like many other "
7799 "implementations, gives priority to standard signals in this case."
7800 msgstr ""
7801 "一つのプロセスに対して標準シグナルとリアルタイムシグナルの両方が 処理待ちの場"
7802 "合、POSIX はどちらが先に配送されるかを規定していない。 Linux では、他の多くの"
7803 "実装と同様、このような場合には 標準シグナルが優先される。"
7804
7805 #. type: Plain text
7806 #: build/C/man7/signal.7:448
7807 msgid ""
7808 "According to POSIX, an implementation should permit at least "
7809 "B<_POSIX_SIGQUEUE_MAX> (32) real-time signals to be queued to a process.  "
7810 "However, Linux does things differently.  In kernels up to and including "
7811 "2.6.7, Linux imposes a system-wide limit on the number of queued real-time "
7812 "signals for all processes.  This limit can be viewed and (with privilege) "
7813 "changed via the I</proc/sys/kernel/rtsig-max> file.  A related file, I</proc/"
7814 "sys/kernel/rtsig-nr>, can be used to find out how many real-time signals are "
7815 "currently queued.  In Linux 2.6.8, these I</proc> interfaces were replaced "
7816 "by the B<RLIMIT_SIGPENDING> resource limit, which specifies a per-user limit "
7817 "for queued signals; see B<setrlimit>(2)  for further details."
7818 msgstr ""
7819 "POSIX によれば、1 プロセス毎に最低 B<_POSIX_SIGQUEUE_MAX> (32) 個のリアルタイ"
7820 "ムシグナルをキューに入れられるべきとしている。 しかし、 Linux では違った実装"
7821 "になっている。カーネル 2.6.7 までは (2.6.7 を含む)、全プロセスでキューに入っ"
7822 "ているリアルタイムシグナル の数の合計についてシステム全体での制限がある。 こ"
7823 "の制限は I</proc/sys/kernel/rtsig-max> ファイルで見ることができ、 (権限があれ"
7824 "ば) 変更もできる。 関係するファイルとして、 I</proc/sys/kernel/rtsig-nr> を見"
7825 "ることで、いくつのリアルタイムシグナルが現在キューに入っているかを 知ることが"
7826 "できる。 Linux 2.6.8 で、これらの I</proc> 経由のインターフェースは、 "
7827 "B<RLIMIT_SIGPENDING> リソース制限に置き換えられた。 これは、キューに入るシグ"
7828 "ナル数に関してユーザ単位に 上限を指定するものである。 詳しくは B<setrlimit>"
7829 "(2)  を参照。"
7830
7831 #. type: SS
7832 #: build/C/man7/signal.7:448
7833 #, no-wrap
7834 msgid "Async-signal-safe functions"
7835 msgstr "非同期シグナルで安全な関数 (async-signal-safe functions)"
7836
7837 #. type: Plain text
7838 #: build/C/man7/signal.7:457
7839 msgid ""
7840 "A signal handler function must be very careful, since processing elsewhere "
7841 "may be interrupted at some arbitrary point in the execution of the program.  "
7842 "POSIX has the concept of \"safe function\".  If a signal interrupts the "
7843 "execution of an unsafe function, and I<handler> calls an unsafe function, "
7844 "then the behavior of the program is undefined."
7845 msgstr ""
7846 "シグナルハンドラ関数には非常に注意しなければならない。 他の場所の処理はプログ"
7847 "ラム実行の任意の箇所で中断される可能性があるためである。 POSIX には「安全な関"
7848 "数 (safe function)」という概念がある。 シグナルが安全でない関数の実行を中断"
7849 "し、かつ I<handler> が安全でない関数を呼び出した場合、プログラムの挙動は未定"
7850 "義である。"
7851
7852 #. type: Plain text
7853 #: build/C/man7/signal.7:461
7854 msgid ""
7855 "POSIX.1-2004 (also known as POSIX.1-2001 Technical Corrigendum 2)  requires "
7856 "an implementation to guarantee that the following functions can be safely "
7857 "called inside a signal handler:"
7858 msgstr ""
7859 "POSIX.1-2004 (POSIX.1-2001 Technical Corrigendum (正誤表) 2 とも言う) では、 "
7860 "シグナルハンドラ内での安全な呼び出しを保証することが必須の関数として 以下が規"
7861 "定されている。"
7862
7863 #. type: Plain text
7864 #: build/C/man7/signal.7:582
7865 #, no-wrap
7866 msgid ""
7867 "_Exit()\n"
7868 "_exit()\n"
7869 "abort()\n"
7870 "accept()\n"
7871 "access()\n"
7872 "aio_error()\n"
7873 "aio_return()\n"
7874 "aio_suspend()\n"
7875 "alarm()\n"
7876 "bind()\n"
7877 "cfgetispeed()\n"
7878 "cfgetospeed()\n"
7879 "cfsetispeed()\n"
7880 "cfsetospeed()\n"
7881 "chdir()\n"
7882 "chmod()\n"
7883 "chown()\n"
7884 "clock_gettime()\n"
7885 "close()\n"
7886 "connect()\n"
7887 "creat()\n"
7888 "dup()\n"
7889 "dup2()\n"
7890 "execle()\n"
7891 "execve()\n"
7892 "fchmod()\n"
7893 "fchown()\n"
7894 "fcntl()\n"
7895 "fdatasync()\n"
7896 "fork()\n"
7897 "fpathconf()\n"
7898 "fstat()\n"
7899 "fsync()\n"
7900 "ftruncate()\n"
7901 "getegid()\n"
7902 "geteuid()\n"
7903 "getgid()\n"
7904 "getgroups()\n"
7905 "getpeername()\n"
7906 "getpgrp()\n"
7907 "getpid()\n"
7908 "getppid()\n"
7909 "getsockname()\n"
7910 "getsockopt()\n"
7911 "getuid()\n"
7912 "kill()\n"
7913 "link()\n"
7914 "listen()\n"
7915 "lseek()\n"
7916 "lstat()\n"
7917 "mkdir()\n"
7918 "mkfifo()\n"
7919 "open()\n"
7920 "pathconf()\n"
7921 "pause()\n"
7922 "pipe()\n"
7923 "poll()\n"
7924 "posix_trace_event()\n"
7925 "pselect()\n"
7926 "raise()\n"
7927 "read()\n"
7928 "readlink()\n"
7929 "recv()\n"
7930 "recvfrom()\n"
7931 "recvmsg()\n"
7932 "rename()\n"
7933 "rmdir()\n"
7934 "select()\n"
7935 "sem_post()\n"
7936 "send()\n"
7937 "sendmsg()\n"
7938 "sendto()\n"
7939 "setgid()\n"
7940 "setpgid()\n"
7941 "setsid()\n"
7942 "setsockopt()\n"
7943 "setuid()\n"
7944 "shutdown()\n"
7945 "sigaction()\n"
7946 "sigaddset()\n"
7947 "sigdelset()\n"
7948 "sigemptyset()\n"
7949 "sigfillset()\n"
7950 "sigismember()\n"
7951 "signal()\n"
7952 "sigpause()\n"
7953 "sigpending()\n"
7954 "sigprocmask()\n"
7955 "sigqueue()\n"
7956 "sigset()\n"
7957 "sigsuspend()\n"
7958 "sleep()\n"
7959 "sockatmark()\n"
7960 "socket()\n"
7961 "socketpair()\n"
7962 "stat()\n"
7963 "symlink()\n"
7964 "sysconf()\n"
7965 "tcdrain()\n"
7966 "tcflow()\n"
7967 "tcflush()\n"
7968 "tcgetattr()\n"
7969 "tcgetpgrp()\n"
7970 "tcsendbreak()\n"
7971 "tcsetattr()\n"
7972 "tcsetpgrp()\n"
7973 "time()\n"
7974 "timer_getoverrun()\n"
7975 "timer_gettime()\n"
7976 "timer_settime()\n"
7977 "times()\n"
7978 "umask()\n"
7979 "uname()\n"
7980 "unlink()\n"
7981 "utime()\n"
7982 "wait()\n"
7983 "waitpid()\n"
7984 "write()\n"
7985 msgstr ""
7986 "_Exit()\n"
7987 "_exit()\n"
7988 "abort()\n"
7989 "accept()\n"
7990 "access()\n"
7991 "aio_error()\n"
7992 "aio_return()\n"
7993 "aio_suspend()\n"
7994 "alarm()\n"
7995 "bind()\n"
7996 "cfgetispeed()\n"
7997 "cfgetospeed()\n"
7998 "cfsetispeed()\n"
7999 "cfsetospeed()\n"
8000 "chdir()\n"
8001 "chmod()\n"
8002 "chown()\n"
8003 "clock_gettime()\n"
8004 "close()\n"
8005 "connect()\n"
8006 "creat()\n"
8007 "dup()\n"
8008 "dup2()\n"
8009 "execle()\n"
8010 "execve()\n"
8011 "fchmod()\n"
8012 "fchown()\n"
8013 "fcntl()\n"
8014 "fdatasync()\n"
8015 "fork()\n"
8016 "fpathconf()\n"
8017 "fstat()\n"
8018 "fsync()\n"
8019 "ftruncate()\n"
8020 "getegid()\n"
8021 "geteuid()\n"
8022 "getgid()\n"
8023 "getgroups()\n"
8024 "getpeername()\n"
8025 "getpgrp()\n"
8026 "getpid()\n"
8027 "getppid()\n"
8028 "getsockname()\n"
8029 "getsockopt()\n"
8030 "getuid()\n"
8031 "kill()\n"
8032 "link()\n"
8033 "listen()\n"
8034 "lseek()\n"
8035 "lstat()\n"
8036 "mkdir()\n"
8037 "mkfifo()\n"
8038 "open()\n"
8039 "pathconf()\n"
8040 "pause()\n"
8041 "pipe()\n"
8042 "poll()\n"
8043 "posix_trace_event()\n"
8044 "pselect()\n"
8045 "raise()\n"
8046 "read()\n"
8047 "readlink()\n"
8048 "recv()\n"
8049 "recvfrom()\n"
8050 "recvmsg()\n"
8051 "rename()\n"
8052 "rmdir()\n"
8053 "select()\n"
8054 "sem_post()\n"
8055 "send()\n"
8056 "sendmsg()\n"
8057 "sendto()\n"
8058 "setgid()\n"
8059 "setpgid()\n"
8060 "setsid()\n"
8061 "setsockopt()\n"
8062 "setuid()\n"
8063 "shutdown()\n"
8064 "sigaction()\n"
8065 "sigaddset()\n"
8066 "sigdelset()\n"
8067 "sigemptyset()\n"
8068 "sigfillset()\n"
8069 "sigismember()\n"
8070 "signal()\n"
8071 "sigpause()\n"
8072 "sigpending()\n"
8073 "sigprocmask()\n"
8074 "sigqueue()\n"
8075 "sigset()\n"
8076 "sigsuspend()\n"
8077 "sleep()\n"
8078 "sockatmark()\n"
8079 "socket()\n"
8080 "socketpair()\n"
8081 "stat()\n"
8082 "symlink()\n"
8083 "sysconf()\n"
8084 "tcdrain()\n"
8085 "tcflow()\n"
8086 "tcflush()\n"
8087 "tcgetattr()\n"
8088 "tcgetpgrp()\n"
8089 "tcsendbreak()\n"
8090 "tcsetattr()\n"
8091 "tcsetpgrp()\n"
8092 "time()\n"
8093 "timer_getoverrun()\n"
8094 "timer_gettime()\n"
8095 "timer_settime()\n"
8096 "times()\n"
8097 "umask()\n"
8098 "uname()\n"
8099 "unlink()\n"
8100 "utime()\n"
8101 "wait()\n"
8102 "waitpid()\n"
8103 "write()\n"
8104
8105 #. type: Plain text
8106 #: build/C/man7/signal.7:587
8107 msgid ""
8108 "POSIX.1-2008 removes fpathconf(), pathconf(), and sysconf()  from the above "
8109 "list, and adds the following functions:"
8110 msgstr ""
8111 "POSIX.1-2008 では、上記のリストのうち fpathconf(), pathconf(), sysconf()  が"
8112 "削除され、以下の関数が追加された。"
8113
8114 #. type: Plain text
8115 #: build/C/man7/signal.7:610
8116 #, no-wrap
8117 msgid ""
8118 "execl()\n"
8119 "execv()\n"
8120 "faccessat()\n"
8121 "fchmodat()\n"
8122 "fchownat()\n"
8123 "fexecve()\n"
8124 "fstatat()\n"
8125 "futimens()\n"
8126 "linkat()\n"
8127 "mkdirat()\n"
8128 "mkfifoat()\n"
8129 "mknod()\n"
8130 "mknodat()\n"
8131 "openat()\n"
8132 "readlinkat()\n"
8133 "renameat()\n"
8134 "symlinkat()\n"
8135 "unlinkat()\n"
8136 "utimensat()\n"
8137 "utimes()\n"
8138 msgstr ""
8139 "execl()\n"
8140 "execv()\n"
8141 "faccessat()\n"
8142 "fchmodat()\n"
8143 "fchownat()\n"
8144 "fexecve()\n"
8145 "fstatat()\n"
8146 "futimens()\n"
8147 "linkat()\n"
8148 "mkdirat()\n"
8149 "mkfifoat()\n"
8150 "mknod()\n"
8151 "mknodat()\n"
8152 "openat()\n"
8153 "readlinkat()\n"
8154 "renameat()\n"
8155 "symlinkat()\n"
8156 "unlinkat()\n"
8157 "utimensat()\n"
8158 "utimes()\n"
8159
8160 #. type: SS
8161 #: build/C/man7/signal.7:612
8162 #, no-wrap
8163 msgid "Interruption of system calls and library functions by signal handlers"
8164 msgstr "シグナルハンドラによるシステムコールやライブラリ関数への割り込み"
8165
8166 #. type: Plain text
8167 #: build/C/man7/signal.7:615
8168 msgid ""
8169 "If a signal handler is invoked while a system call or library function call "
8170 "is blocked, then either:"
8171 msgstr ""
8172 "システムコールやライブラリが停止 (block) している間にシグナルハンドラが 起動"
8173 "されると、以下のどちらかとなる。"
8174
8175 #. type: Plain text
8176 #: build/C/man7/signal.7:617
8177 msgid ""
8178 "the call is automatically restarted after the signal handler returns; or"
8179 msgstr "シグナルが返った後、呼び出しは自動的に再スタートされる。"
8180
8181 #. type: Plain text
8182 #: build/C/man7/signal.7:620
8183 msgid "the call fails with the error B<EINTR>."
8184 msgstr "呼び出しはエラー B<EINTR> で失敗する。"
8185
8186 #. type: Plain text
8187 #: build/C/man7/signal.7:628
8188 msgid ""
8189 "Which of these two behaviors occurs depends on the interface and whether or "
8190 "not the signal handler was established using the B<SA_RESTART> flag (see "
8191 "B<sigaction>(2)).  The details vary across UNIX systems; below, the details "
8192 "for Linux."
8193 msgstr ""
8194 "これらの二つの挙動のうちどちらが起こるかは、インターフェイスにより依存し、 シ"
8195 "グナルハンドラが B<SA_RESTART> フラグ (B<sigaction>(2)  参照) を使って設定さ"
8196 "れていたかにも依存する。 詳細は UNIX システムによって異なる。 Linux における"
8197 "詳細を以下で説明する。"
8198
8199 #.  The following system calls use ERESTARTSYS,
8200 #.  so that they are restartable
8201 #. type: Plain text
8202 #: build/C/man7/signal.7:637
8203 msgid ""
8204 "If a blocked call to one of the following interfaces is interrupted by a "
8205 "signal handler, then the call will be automatically restarted after the "
8206 "signal handler returns if the B<SA_RESTART> flag was used; otherwise the "
8207 "call will fail with the error B<EINTR>:"
8208 msgstr ""
8209 "以下のインターフェイスのいずれかの呼び出しが停止している間に シグナルハンドラ"
8210 "により割り込まれた場合、 B<SA_RESTART> フラグが使用されていれば、シグナルハン"
8211 "ドラが返った後に その呼び出しは自動的に再スタートされることになる。 それ以外"
8212 "の場合は、その呼び出しはエラー B<EINTR> で失敗することになる。"
8213
8214 #. type: Plain text
8215 #: build/C/man7/signal.7:653
8216 msgid ""
8217 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), and B<ioctl>(2)  calls "
8218 "on \"slow\" devices.  A \"slow\" device is one where the I/O call may block "
8219 "for an indefinite time, for example, a terminal, pipe, or socket.  (A disk "
8220 "is not a slow device according to this definition.)  If an I/O call on a "
8221 "slow device has already transferred some data by the time it is interrupted "
8222 "by a signal handler, then the call will return a success status (normally, "
8223 "the number of bytes transferred)."
8224 msgstr ""
8225 "B<read>(2), B<readv>(2), B<write>(2), B<writev>(2), B<ioctl>(2)  の「遅い "
8226 "(slow)」デバイスに対する呼び出し。 ここでいう「遅い」デバイスとは、I/O 呼び出"
8227 "しが無期限に停止 (block) する 可能性のあるデバイスのことで、例としては端末、"
8228 "パイプ、ソケットがある (この定義では、ディスクは遅いデバイスではない)。 遅い"
8229 "デバイスに対する I/O 呼び出しが、 シグナルハンドラにより割り込まれた時点まで"
8230 "に何らかのデータを すでに転送していれば、呼び出しは成功ステータス (通常は、転"
8231 "送されたバイト数) を返すことだろう。"
8232
8233 #. type: Plain text
8234 #: build/C/man7/signal.7:657
8235 msgid ""
8236 "B<open>(2), if it can block (e.g., when opening a FIFO; see B<fifo>(7))."
8237 msgstr ""
8238 "停止 (block) する可能性のある B<open>(2)  (例えば、FIFO のオープン時; B<fifo>"
8239 "(7)  参照)。"
8240
8241 #. type: Plain text
8242 #: build/C/man7/signal.7:664
8243 msgid "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), and B<waitpid>(2)."
8244 msgstr "B<wait>(2), B<wait3>(2), B<wait4>(2), B<waitid>(2), B<waitpid>(2)."
8245
8246 #.  If a timeout (setsockopt()) is in effect on the socket, then these
8247 #.  system calls switch to using EINTR.  Consequently, they and are not
8248 #.  automatically restarted, and they show the stop/cont behavior
8249 #.  described below.  (Verified from 2.6.26 source, and by experiment; mtk)
8250 #. type: Plain text
8251 #: build/C/man7/signal.7:680
8252 msgid ""
8253 "Socket interfaces: B<accept>(2), B<connect>(2), B<recv>(2), B<recvfrom>(2), "
8254 "B<recvmsg>(2), B<send>(2), B<sendto>(2), and B<sendmsg>(2), unless a timeout "
8255 "has been set on the socket (see below)."
8256 msgstr ""
8257 "ソケットインターフェイス: B<accept>(2), B<connect>(2), B<recv>(2), "
8258 "B<recvfrom>(2), B<recvmsg>(2), B<send>(2), B<sendto>(2), B<sendmsg>(2).  但"
8259 "し、ソケットにタイムアウトが設定されていない場合 (下記参照)。"
8260
8261 #. type: Plain text
8262 #: build/C/man7/signal.7:686
8263 msgid "File locking interfaces: B<flock>(2)  and B<fcntl>(2)  B<F_SETLKW>."
8264 msgstr ""
8265 "ファイルロック用インターフェイス: B<flock>(2), B<fcntl>(2)  B<F_SETLKW>."
8266
8267 #. type: Plain text
8268 #: build/C/man7/signal.7:693
8269 msgid ""
8270 "POSIX message queue interfaces: B<mq_receive>(3), B<mq_timedreceive>(3), "
8271 "B<mq_send>(3), and B<mq_timedsend>(3)."
8272 msgstr ""
8273 "POSIX メッセージキューインターフェイス: B<mq_receive>(3), B<mq_timedreceive>"
8274 "(3), B<mq_send>(3), B<mq_timedsend>(3)."
8275
8276 #. type: Plain text
8277 #: build/C/man7/signal.7:698
8278 msgid ""
8279 "B<futex>(2)  B<FUTEX_WAIT> (since Linux 2.6.22; beforehand, always failed "
8280 "with B<EINTR>)."
8281 msgstr ""
8282 "B<futex>(2)  B<FUTEX_WAIT> (Linux 2.6.22 以降; それ以前は常に B<EINTR> で失敗"
8283 "していた)。"
8284
8285 #. type: Plain text
8286 #: build/C/man7/signal.7:705
8287 msgid ""
8288 "POSIX semaphore interfaces: B<sem_wait>(3)  and B<sem_timedwait>(3)  (since "
8289 "Linux 2.6.22; beforehand, always failed with B<EINTR>)."
8290 msgstr ""
8291 "POSIX セマフォインターフェイス: B<sem_wait>(3), B<sem_timedwait>(3)  (Linux "
8292 "2.6.22 以降; それ以前は常に B<EINTR> で失敗していた)。"
8293
8294 #.  These are the system calls that give EINTR or ERESTARTNOHAND
8295 #.  on interruption by a signal handler.
8296 #. type: Plain text
8297 #: build/C/man7/signal.7:716
8298 msgid ""
8299 "The following interfaces are never restarted after being interrupted by a "
8300 "signal handler, regardless of the use of B<SA_RESTART>; they always fail "
8301 "with the error B<EINTR> when interrupted by a signal handler:"
8302 msgstr ""
8303 "以下のインターフェイスは、 B<SA_RESTART> を使っているどうかに関わらず、シグナ"
8304 "ルハンドラにより割り込まれた後、 再スタートすることは決してない。 これらは、"
8305 "シグナルハンドラにより割り込まれると、常にエラー B<EINTR> で失敗する。"
8306
8307 #. type: Plain text
8308 #: build/C/man7/signal.7:736 build/C/man7/signal.7:810
8309 msgid ""
8310 "Socket interfaces, when a timeout has been set on the socket using "
8311 "B<setsockopt>(2): B<accept>(2), B<recv>(2), B<recvfrom>(2), and B<recvmsg>"
8312 "(2), if a receive timeout (B<SO_RCVTIMEO>)  has been set; B<connect>(2), "
8313 "B<send>(2), B<sendto>(2), and B<sendmsg>(2), if a send timeout "
8314 "(B<SO_SNDTIMEO>)  has been set."
8315 msgstr ""
8316 "B<setsockopt>(2)  を使ってタイムアウトが設定されているソケットインターフェー"
8317 "ス: B<accept>(2), B<recv>(2), B<recvfrom>(2), B<recvmsg>(2)  で受信タイムアウ"
8318 "ト (B<SO_RCVTIMEO>)  が設定されている場合と、 B<connect>(2), B<send>(2), "
8319 "B<sendto>(2), B<sendmsg>(2)  で送信タイムアウト (B<SO_SNDTIMEO>)  が設定され"
8320 "ている場合。"
8321
8322 #. type: Plain text
8323 #: build/C/man7/signal.7:743
8324 msgid ""
8325 "Interfaces used to wait for signals: B<pause>(2), B<sigsuspend>(2), "
8326 "B<sigtimedwait>(2), and B<sigwaitinfo>(2)."
8327 msgstr ""
8328 "シグナル待ちに使われるインターフェイス: B<pause>(2), B<sigsuspend>(2), "
8329 "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8330
8331 #. type: Plain text
8332 #: build/C/man7/signal.7:752
8333 msgid ""
8334 "File descriptor multiplexing interfaces: B<epoll_wait>(2), B<epoll_pwait>"
8335 "(2), B<poll>(2), B<ppoll>(2), B<select>(2), and B<pselect>(2)."
8336 msgstr ""
8337 "ファイルディスクリプタ多重インターフェイス: B<epoll_wait>(2), B<epoll_pwait>"
8338 "(2), B<poll>(2), B<ppoll>(2), B<select>(2), B<pselect>(2)."
8339
8340 #.  On some other systems, SA_RESTART does restart these system calls
8341 #. type: Plain text
8342 #: build/C/man7/signal.7:760
8343 msgid ""
8344 "System V IPC interfaces: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), and "
8345 "B<semtimedop>(2)."
8346 msgstr ""
8347 "System V IPC インターフェイス: B<msgrcv>(2), B<msgsnd>(2), B<semop>(2), "
8348 "B<semtimedop>(2)."
8349
8350 #. type: Plain text
8351 #: build/C/man7/signal.7:766
8352 msgid ""
8353 "Sleep interfaces: B<clock_nanosleep>(2), B<nanosleep>(2), and B<usleep>(3)."
8354 msgstr ""
8355 "スリープ用のインターフェイス: B<clock_nanosleep>(2), B<nanosleep>(2), "
8356 "B<usleep>(3)."
8357
8358 #. type: Plain text
8359 #: build/C/man7/signal.7:771 build/C/man7/signal.7:824
8360 msgid "B<read>(2)  from an B<inotify>(7)  file descriptor."
8361 msgstr "B<inotify>(7)  ファイルディスクリプタからの B<read>(2)."
8362
8363 #. type: Plain text
8364 #: build/C/man7/signal.7:773
8365 msgid "B<io_getevents>(2)."
8366 msgstr "B<io_getevents>(2)."
8367
8368 #. type: Plain text
8369 #: build/C/man7/signal.7:779
8370 msgid ""
8371 "The B<sleep>(3)  function is also never restarted if interrupted by a "
8372 "handler, but gives a success return: the number of seconds remaining to "
8373 "sleep."
8374 msgstr ""
8375 "B<sleep>(3)  関数も、ハンドラにより割り込まれた場合、決して再スタートされるこ"
8376 "とはない。 しかし、成功となり、残っている停止時間を返す。"
8377
8378 #. type: SS
8379 #: build/C/man7/signal.7:779
8380 #, no-wrap
8381 msgid "Interruption of system calls and library functions by stop signals"
8382 msgstr "一時停止シグナルによるシステムコールやライブラリ関数への割り込み"
8383
8384 #. type: Plain text
8385 #: build/C/man7/signal.7:788
8386 msgid ""
8387 "On Linux, even in the absence of signal handlers, certain blocking "
8388 "interfaces can fail with the error B<EINTR> after the process is stopped by "
8389 "one of the stop signals and then resumed via B<SIGCONT>.  This behavior is "
8390 "not sanctioned by POSIX.1, and doesn't occur on other systems."
8391 msgstr ""
8392 "Linux では、シグナルハンドラが設定されていない場合でも、 いくつかのブロッキン"
8393 "グ型のインターフェイスは、 プロセスが一時停止 (stop) シグナルの一つにより停止"
8394 "され、 B<SIGCONT> により再開された後に、エラー B<EINTR> で失敗する可能性があ"
8395 "る。 この挙動は POSIX.1 で認められておらず、他のシステムでは起こらない。"
8396
8397 #. type: Plain text
8398 #: build/C/man7/signal.7:790
8399 msgid "The Linux interfaces that display this behavior are:"
8400 msgstr "この挙動を示す Linux のインターフェイスは以下の通りである。"
8401
8402 #. type: Plain text
8403 #: build/C/man7/signal.7:813
8404 msgid "B<epoll_wait>(2), B<epoll_pwait>(2)."
8405 msgstr "B<epoll_wait>(2), B<epoll_pwait>(2)."
8406
8407 #. type: Plain text
8408 #: build/C/man7/signal.7:816
8409 msgid "B<semop>(2), B<semtimedop>(2)."
8410 msgstr "B<semop>(2), B<semtimedop>(2)."
8411
8412 #. type: Plain text
8413 #: build/C/man7/signal.7:819
8414 msgid "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8415 msgstr "B<sigtimedwait>(2), B<sigwaitinfo>(2)."
8416
8417 #. type: Plain text
8418 #: build/C/man7/signal.7:830
8419 msgid ""
8420 "Linux 2.6.21 and earlier: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8421 "B<sem_wait>(3)."
8422 msgstr ""
8423 "Linux 2.6.21 以前: B<futex>(2)  B<FUTEX_WAIT>, B<sem_timedwait>(3), "
8424 "B<sem_wait>(3)."
8425
8426 #. type: Plain text
8427 #: build/C/man7/signal.7:834
8428 msgid "Linux 2.6.8 and earlier: B<msgrcv>(2), B<msgsnd>(2)."
8429 msgstr "Linux 2.6.8 以前: B<msgrcv>(2), B<msgsnd>(2)."
8430
8431 #. type: Plain text
8432 #: build/C/man7/signal.7:837
8433 msgid "Linux 2.4 and earlier: B<nanosleep>(2)."
8434 msgstr "Linux 2.4 以前: B<nanosleep>(2)."
8435
8436 #.  It must be a *very* long time since this was true:
8437 #.  .SH BUGS
8438 #.  .B SIGIO
8439 #.  and
8440 #.  .B SIGLOST
8441 #.  have the same value.
8442 #.  The latter is commented out in the kernel source, but
8443 #.  the build process of some software still thinks that
8444 #.  signal 29 is
8445 #.  .BR SIGLOST .
8446 #. type: Plain text
8447 #: build/C/man7/signal.7:850
8448 msgid "POSIX.1, except as noted."
8449 msgstr "POSIX.1 (注記した内容以外)。"
8450
8451 #. type: Plain text
8452 #: build/C/man7/signal.7:884
8453 msgid ""
8454 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), B<restart_syscall>"
8455 "(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>"
8456 "(2), B<sigaction>(2), B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), "
8457 "B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), "
8458 "B<abort>(3), B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), "
8459 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), "
8460 "B<sigvec>(3), B<sigwait>(3), B<strsignal>(3), B<sysv_signal>(3), B<core>(5), "
8461 "B<proc>(5), B<pthreads>(7), B<sigevent>(7)"
8462 msgstr ""
8463 "B<kill>(1), B<getrlimit>(2), B<kill>(2), B<killpg>(2), B<restart_syscall>"
8464 "(2), B<rt_sigqueueinfo>(2), B<setitimer>(2), B<setrlimit>(2), B<sgetmask>"
8465 "(2), B<sigaction>(2), B<sigaltstack>(2), B<signal>(2), B<signalfd>(2), "
8466 "B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigwaitinfo>(2), "
8467 "B<abort>(3), B<bsd_signal>(3), B<longjmp>(3), B<raise>(3), "
8468 "B<pthread_sigqueue>(3), B<sigqueue>(3), B<sigset>(3), B<sigsetops>(3), "
8469 "B<sigvec>(3), B<sigwait>(3), B<strsignal>(3), B<sysv_signal>(3), B<core>(5), "
8470 "B<proc>(5), B<pthreads>(7), B<sigevent>(7)"
8471
8472 #. type: TH
8473 #: build/C/man2/signalfd.2:20
8474 #, no-wrap
8475 msgid "SIGNALFD"
8476 msgstr "SIGNALFD"
8477
8478 #. type: TH
8479 #: build/C/man2/signalfd.2:20
8480 #, no-wrap
8481 msgid "2009-01-13"
8482 msgstr "2009-01-13"
8483
8484 #. type: Plain text
8485 #: build/C/man2/signalfd.2:23
8486 msgid "signalfd - create a file descriptor for accepting signals"
8487 msgstr "signalfd - シグナル受け付け用のファイルディスクリプタを生成する"
8488
8489 #. type: Plain text
8490 #: build/C/man2/signalfd.2:25
8491 msgid "B<#include E<lt>sys/signalfd.hE<gt>>"
8492 msgstr "B<#include E<lt>sys/signalfd.hE<gt>>"
8493
8494 #. type: Plain text
8495 #: build/C/man2/signalfd.2:27
8496 msgid ""
8497 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8498 msgstr ""
8499 "B<int signalfd(int >I<fd>B<, const sigset_t *>I<mask>B<, int >I<flags>B<);>"
8500
8501 #. type: Plain text
8502 #: build/C/man2/signalfd.2:38
8503 msgid ""
8504 "B<signalfd>()  creates a file descriptor that can be used to accept signals "
8505 "targeted at the caller.  This provides an alternative to the use of a signal "
8506 "handler or B<sigwaitinfo>(2), and has the advantage that the file descriptor "
8507 "may be monitored by B<select>(2), B<poll>(2), and B<epoll>(7)."
8508 msgstr ""
8509 "B<signalfd>()  は、呼び出し元宛てのシグナルを受け付けるために使用されるファイ"
8510 "ル ディスクリプタを生成する。 この方法はシグナルハンドラや B<sigwaitinfo>"
8511 "(2)  を用いる方法の代わりとなるものであり、このファイルディスクリプタを "
8512 "B<select>(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
8513
8514 #. type: Plain text
8515 #: build/C/man2/signalfd.2:58
8516 msgid ""
8517 "The I<mask> argument specifies the set of signals that the caller wishes to "
8518 "accept via the file descriptor.  This argument is a signal set whose "
8519 "contents can be initialized using the macros described in B<sigsetops>(3).  "
8520 "Normally, the set of signals to be received via the file descriptor should "
8521 "be blocked using B<sigprocmask>(2), to prevent the signals being handled "
8522 "according to their default dispositions.  It is not possible to receive "
8523 "B<SIGKILL> or B<SIGSTOP> signals via a signalfd file descriptor; these "
8524 "signals are silently ignored if specified in I<mask>."
8525 msgstr ""
8526 "I<mask> 引き数には、呼び出し元がこのファイルディスクリプタ経由で受け付けたい "
8527 "シグナル集合を指定する。この引き数で指定するシグナル集合の内容は、 "
8528 "B<sigsetops>(3)  で説明されているマクロを使って初期化することができる。 通"
8529 "常、ファイルディスクリプタ経由で受信するシグナル集合は、 そのシグナルがデフォ"
8530 "ルトの配送方法に基いて処理されるのを防ぐために、 B<sigprocmask>(2)  を使って"
8531 "ブロックしておくべきである。 シグナル B<SIGKILL> と B<SIGSTOP> を signalfd "
8532 "ファイルディスクリプタ経由で受信することはできない。 これらのシグナルが "
8533 "I<mask> で指定された場合には黙って無視される。"
8534
8535 #. type: Plain text
8536 #: build/C/man2/signalfd.2:72
8537 msgid ""
8538 "If the I<fd> argument is -1, then the call creates a new file descriptor and "
8539 "associates the signal set specified in I<mask> with that descriptor.  If "
8540 "I<fd> is not -1, then it must specify a valid existing signalfd file "
8541 "descriptor, and I<mask> is used to replace the signal set associated with "
8542 "that descriptor."
8543 msgstr ""
8544 "I<fd> 引き数が -1 の場合、 B<signalfd>()  は新しいファイルディスクリプタを生"
8545 "成し、 I<mask> で指定されたシグナル集合をそのファイルディスクリプタに関連付け"
8546 "る。 I<fd> 引き数が -1 以外の場合、 I<fd> には有効な既存の signalfd ファイル"
8547 "ディスクリプタを指定しなければならず、 そのディスクリプタに関連付けられている"
8548 "シグナル集合は I<mask> を使って置き換えられる。"
8549
8550 #. type: Plain text
8551 #: build/C/man2/signalfd.2:77
8552 msgid ""
8553 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
8554 "I<flags> to change the behaviour of B<signalfd>():"
8555 msgstr ""
8556 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
8557 "ることで、 B<signalfd>()  の振舞いを変更することができる。"
8558
8559 #. type: TP
8560 #: build/C/man2/signalfd.2:77
8561 #, no-wrap
8562 msgid "B<SFD_NONBLOCK>"
8563 msgstr "B<SFD_NONBLOCK>"
8564
8565 #. type: TP
8566 #: build/C/man2/signalfd.2:85
8567 #, no-wrap
8568 msgid "B<SFD_CLOEXEC>"
8569 msgstr "B<SFD_CLOEXEC>"
8570
8571 #. type: Plain text
8572 #: build/C/man2/signalfd.2:102
8573 msgid ""
8574 "B<signalfd>()  returns a file descriptor that supports the following "
8575 "operations:"
8576 msgstr ""
8577 "B<signalfd>()  が返すファイルディスクリプタは以下の操作をサポートしている。"
8578
8579 #. type: Plain text
8580 #: build/C/man2/signalfd.2:121
8581 msgid ""
8582 "If one or more of the signals specified in I<mask> is pending for the "
8583 "process, then the buffer supplied to B<read>(2)  is used to return one or "
8584 "more I<signalfd_siginfo> structures (see below) that describe the signals.  "
8585 "The B<read>(2)  returns information for as many signals as are pending and "
8586 "will fit in the supplied buffer.  The buffer must be at least I<sizeof"
8587 "(struct signalfd_siginfo)> bytes.  The return value of the B<read>(2)  is "
8588 "the total number of bytes read."
8589 msgstr ""
8590 "I<mask> に指定されているシグナルのうち一つ以上がそのプロセスに対して 処理待"
8591 "ち (pending) であれば、それらのシグナルの情報が B<read>(2)  に渡されたバッ"
8592 "ファを使って、 I<signalfd_siginfo> 構造体に格納されて返される。 B<read>(2)  "
8593 "は、バッファに格納可能な範囲でできるだけ多くの処理待ちのシグナルに ついての情"
8594 "報を返す。 バッファは最低でも I<sizeof(struct signalfd_siginfo)> バイトの大き"
8595 "さがなければならない。 B<read>(2)  の返り値は読み出されたトータルのバイト数で"
8596 "ある。"
8597
8598 #. type: Plain text
8599 #: build/C/man2/signalfd.2:129
8600 msgid ""
8601 "As a consequence of the B<read>(2), the signals are consumed, so that they "
8602 "are no longer pending for the process (i.e., will not be caught by signal "
8603 "handlers, and cannot be accepted using B<sigwaitinfo>(2))."
8604 msgstr ""
8605 "B<read>(2)  が行われた結果、シグナルは消費され、 これらのシグナルはそのプロセ"
8606 "スに対しては処理待ちではなくなる (つまり、シグナルハンドラで捕捉されることも"
8607 "なく、 B<sigwaitinfo>(2)  を使って受け取ることもできなくなる)。"
8608
8609 #. type: Plain text
8610 #: build/C/man2/signalfd.2:140
8611 msgid ""
8612 "If none of the signals in I<mask> is pending for the process, then the "
8613 "B<read>(2)  either blocks until one of the signals in I<mask> is generated "
8614 "for the process, or fails with the error B<EAGAIN> if the file descriptor "
8615 "has been made nonblocking."
8616 msgstr ""
8617 "I<mask> に指定されているシグナルがそのプロセスに対して一つも処理待ちでなけれ"
8618 "ば、 B<read>(2)  は、 I<mask> で指定されたシグナルのうちいずれか一つがそのプ"
8619 "ロセスに対して発生するまで 停止 (block) する、もしくはファイルディスクリプタ"
8620 "が非停止 (nonblocking)  に設定されている場合はエラー B<EAGAIN> で失敗する。"
8621
8622 #. type: Plain text
8623 #: build/C/man2/signalfd.2:153
8624 msgid ""
8625 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
8626 "B<poll>(2)  B<POLLIN> flag)  if one or more of the signals in I<mask> is "
8627 "pending for the process."
8628 msgstr ""
8629 "I<mask> に指定されたシグナルのうち一つ以上がそのプロセスに対して処理待ちであ"
8630 "れば、 ファイルディスクリプタは読み出し可能となる (B<select>(2)  の "
8631 "I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラグ)。"
8632
8633 #. type: Plain text
8634 #: build/C/man2/signalfd.2:160
8635 msgid ""
8636 "The signalfd file descriptor also supports the other file-descriptor "
8637 "multiplexing APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
8638 msgstr ""
8639 "signalfd ファイルディスクリプタは、これ以外のファイルディスクリプタ 多重 API "
8640 "である B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
8641
8642 #. type: Plain text
8643 #: build/C/man2/signalfd.2:165
8644 msgid ""
8645 "When the file descriptor is no longer required it should be closed.  When "
8646 "all file descriptors associated with the same signalfd object have been "
8647 "closed, the resources for object are freed by the kernel."
8648 msgstr ""
8649 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
8650 "る。 同じ signalfd オブジェクトに関連付けられたファイルディスクリプタが全て "
8651 "クローズされると、そのオブジェクト用の資源がカーネルにより解放される。"
8652
8653 #. type: SS
8654 #: build/C/man2/signalfd.2:165
8655 #, no-wrap
8656 msgid "The signalfd_siginfo structure"
8657 msgstr "signalfd_siginfo 構造体"
8658
8659 #. type: Plain text
8660 #: build/C/man2/signalfd.2:171
8661 msgid ""
8662 "The format of the I<signalfd_siginfo> structure(s) returned by B<read>(2)s "
8663 "from a signalfd file descriptor is as follows:"
8664 msgstr ""
8665 "signalfd ファイルディスクリプタからの B<read>(2)  で返される "
8666 "I<signalfd_siginfo> 構造体のフォーマットは以下の通りである。"
8667
8668 #.  ssi_trapno is unused on most arches
8669 #.  FIXME Since Linux 2.6.37 there is 'uint16_t ssi_addr_lsb'
8670 #.  which is not yet documented
8671 #. type: Plain text
8672 #: build/C/man2/signalfd.2:198
8673 #, no-wrap
8674 msgid ""
8675 "struct signalfd_siginfo {\n"
8676 "    uint32_t ssi_signo;   /* Signal number */\n"
8677 "    int32_t  ssi_errno;   /* Error number (unused) */\n"
8678 "    int32_t  ssi_code;    /* Signal code */\n"
8679 "    uint32_t ssi_pid;     /* PID of sender */\n"
8680 "    uint32_t ssi_uid;     /* Real UID of sender */\n"
8681 "    int32_t  ssi_fd;      /* File descriptor (SIGIO) */\n"
8682 "    uint32_t ssi_tid;     /* Kernel timer ID (POSIX timers)\n"
8683 "    uint32_t ssi_band;    /* Band event (SIGIO) */\n"
8684 "    uint32_t ssi_overrun; /* POSIX timer overrun count */\n"
8685 "    uint32_t ssi_trapno;  /* Trap number that caused signal */\n"
8686 "    int32_t  ssi_status;  /* Exit status or signal (SIGCHLD) */\n"
8687 "    int32_t  ssi_int;     /* Integer sent by sigqueue(3) */\n"
8688 "    uint64_t ssi_ptr;     /* Pointer sent by sigqueue(3) */\n"
8689 "    uint64_t ssi_utime;   /* User CPU time consumed (SIGCHLD) */\n"
8690 "    uint64_t ssi_stime;   /* System CPU time consumed (SIGCHLD) */\n"
8691 "    uint64_t ssi_addr;    /* Address that generated signal\n"
8692 "                             (for hardware-generated signals) */\n"
8693 "    uint8_t  pad[I<X>];      /* Pad size to 128 bytes (allow for\n"
8694 "                              additional fields in the future) */\n"
8695 "};\n"
8696 msgstr ""
8697 "struct signalfd_siginfo {\n"
8698 "struct signalfd_siginfo {\n"
8699 "    uint32_t ssi_signo;   /* シグナル番号 */\n"
8700 "    int32_t  ssi_errno;   /* エラー番号 (未使用) */\n"
8701 "    int32_t  ssi_code;    /* シグナルコード */\n"
8702 "    uint32_t ssi_pid;     /* 送信元の PID */\n"
8703 "    uint32_t ssi_uid;     /* 送信元の実 UID */\n"
8704 "    int32_t  ssi_fd;      /* ファイルディスクリプタ (SIGIO) */\n"
8705 "    uint32_t ssi_tid;     /* カーネルタイマ ID (POSIX タイマ)\n"
8706 "    uint32_t ssi_band;    /* Band イベント (SIGIO) */\n"
8707 "    uint32_t ssi_overrun; /* POSIX タイマのオーバーラン回数 */\n"
8708 "    uint32_t ssi_trapno;  /* シグナルの原因となったトラップ番号 */\n"
8709 "    int32_t  ssi_status;  /* 終了ステータスかシグナル (SIGCHLD) */\n"
8710 "    int32_t  ssi_int;     /* sigqueue(3) から送られた整数 */\n"
8711 "    uint64_t ssi_ptr;     /* sigqueue(3) から送られたポインタ */\n"
8712 "    uint64_t ssi_utime;   /* 消費したユーザ CPU 時間 (SIGCHLD) */\n"
8713 "    uint64_t ssi_stime;   /* 消費したシステム CPU 時間 (SIGCHLD) */\n"
8714 "    uint64_t ssi_addr;    /* シグナルを生成したアドレス\n"
8715 "                             (ハードウェアが生成したシグナルの場合) */\n"
8716 "    uint8_t  pad[I<X>];      /* pad の大きさは 128 バイト\n"
8717 "                             (将来のフィールド追加用の場所の確保) */\n"
8718 "};\n"
8719
8720 #. type: Plain text
8721 #: build/C/man2/signalfd.2:221
8722 msgid ""
8723 "Each of the fields in this structure is analogous to the similarly named "
8724 "field in the I<siginfo_t> structure.  The I<siginfo_t> structure is "
8725 "described in B<sigaction>(2).  Not all fields in the returned "
8726 "I<signalfd_siginfo> structure will be valid for a specific signal; the set "
8727 "of valid fields can be determined from the value returned in the I<ssi_code> "
8728 "field.  This field is the analog of the I<siginfo_t> I<si_code> field; see "
8729 "B<sigaction>(2)  for details."
8730 msgstr ""
8731 "I<signalfd_siginfo> 構造体の各フィールドは、 I<siginfo_t> 構造体の同じような"
8732 "名前のフィールドと同様である。 I<siginfo_t> 構造体については B<sigaction>"
8733 "(2)  に説明がある。 返された I<signalfd_siginfo> 構造体の全てのフィールドがあ"
8734 "るシグナルに対して有効なわけではない。 どのフィールドが有効かは、 "
8735 "I<ssi_code> フィールドで返される値から判定することができる。 このフィールド"
8736 "は I<siginfo_t> の I<si_code> フィールドと同様である。詳細は B<sigaction>"
8737 "(2)  を参照。"
8738
8739 #. type: SS
8740 #: build/C/man2/signalfd.2:221 build/C/man2/timerfd_create.2:269
8741 #, no-wrap
8742 msgid "fork(2) semantics"
8743 msgstr "fork(2) での扱い"
8744
8745 #. type: Plain text
8746 #: build/C/man2/signalfd.2:229
8747 msgid ""
8748 "After a B<fork>(2), the child inherits a copy of the signalfd file "
8749 "descriptor.  A B<read>(2)  from the file descriptor in the child will return "
8750 "information about signals queued to the child."
8751 msgstr ""
8752 "B<fork>(2)  が行われると、子プロセスは signalfd ファイルディスクリプタのコ"
8753 "ピーを 継承する。 子プロセスでこのファイルディスクリプタから B<read>(2)  を行"
8754 "うと、子プロセスに対するキューに入っているシグナルに関する 情報が返される。"
8755
8756 #. type: SS
8757 #: build/C/man2/signalfd.2:229 build/C/man2/timerfd_create.2:281
8758 #, no-wrap
8759 msgid "execve(2) semantics"
8760 msgstr "execve(2) での扱い"
8761
8762 #. type: Plain text
8763 #: build/C/man2/signalfd.2:241
8764 msgid ""
8765 "Just like any other file descriptor, a signalfd file descriptor remains open "
8766 "across an B<execve>(2), unless it has been marked for close-on-exec (see "
8767 "B<fcntl>(2)).  Any signals that were available for reading before the "
8768 "B<execve>(2)  remain available to the newly loaded program.  (This is "
8769 "analogous to traditional signal semantics, where a blocked signal that is "
8770 "pending remains pending across an B<execve>(2).)"
8771 msgstr ""
8772 "他のファイルディスクリプタと全く同様に、 signalfd ファイルディスクリプタも "
8773 "B<execve>(2)  の前後でオープンされたままとなる。但し、そのファイルディスクリ"
8774 "プタに close-on-exec のマーク (B<fcntl>(2)  参照) が付いている場合はクローズ"
8775 "される。 B<execve>(2)  の前に読み出し可能となっていた全てのシグナルは新しく起"
8776 "動されたプログラム でも引き続き読み出し可能である (これは伝統的なシグナルの扱"
8777 "いと同じであり、 処理待ちのブロックされたシグナルは B<execve>(2)  の前後で処"
8778 "理待ちのままとなる)。"
8779
8780 #. type: SS
8781 #: build/C/man2/signalfd.2:241
8782 #, no-wrap
8783 msgid "Thread semantics"
8784 msgstr "スレッドでの扱い"
8785
8786 #. type: Plain text
8787 #: build/C/man2/signalfd.2:251
8788 msgid ""
8789 "The semantics of signalfd file descriptors in a multithreaded program mirror "
8790 "the standard semantics for signals.  In other words, when a thread reads "
8791 "from a signalfd file descriptor, it will read the signals that are directed "
8792 "to the thread itself and the signals that are directed to the process (i.e., "
8793 "the entire thread group).  (A thread will not be able to read signals that "
8794 "are directed to other threads in the process.)"
8795 msgstr ""
8796 "マルチスレッドプログラムにおける signalfd ファイルディスクリプタの扱いは シグ"
8797 "ナルの標準的な扱いと全く同じである。 言い換えると、あるスレッドが signalfd "
8798 "ファイルディスクリプタから 読み出しを行うと、そのスレッド自身宛てのシグナルと"
8799 "プロセス (すなわち スレッドグループ全体) 宛てのシグナルが読み出される。 (ス"
8800 "レッドは同じプロセスの他のスレッド宛てのシグナルを読み出すことはできない。)"
8801
8802 #. type: Plain text
8803 #: build/C/man2/signalfd.2:265
8804 msgid ""
8805 "On success, B<signalfd>()  returns a signalfd file descriptor; this is "
8806 "either a new file descriptor (if I<fd> was -1), or I<fd> if I<fd> was a "
8807 "valid signalfd file descriptor.  On error, -1 is returned and I<errno> is "
8808 "set to indicate the error."
8809 msgstr ""
8810 "成功すると、 B<signalfd>()  は signalfd ファイルディスクリプタを返す。 返され"
8811 "るファイルディスクリプタは、 I<fd> が -1 の場合は新規のファイルディスクリプタ"
8812 "であり、 I<fd> が有効な signalfd ファイルディスクリプタだった場合は I<fd> 自"
8813 "身である。 エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
8814
8815 #. type: Plain text
8816 #: build/C/man2/signalfd.2:271
8817 msgid "The I<fd> file descriptor is not a valid file descriptor."
8818 msgstr "ファイルディスクリプタ I<fd> が有効なファイルディスクリプタでない。"
8819
8820 #.  or, the
8821 #.  .I sizemask
8822 #.  argument is not equal to
8823 #.  .IR sizeof(sigset_t) ;
8824 #. type: Plain text
8825 #: build/C/man2/signalfd.2:279
8826 msgid "I<fd> is not a valid signalfd file descriptor."
8827 msgstr "I<fd> が有効な signalfd ファイルディスクリプタではない。"
8828
8829 #. type: Plain text
8830 #: build/C/man2/signalfd.2:286 build/C/man2/timerfd_create.2:320
8831 msgid ""
8832 "I<flags> is invalid; or, in Linux 2.6.26 or earlier, I<flags> is nonzero."
8833 msgstr ""
8834 "I<flags> が無効である。もしくは、Linux 2.6.26 以前の場合には I<flags> が 0 以"
8835 "外である。"
8836
8837 #. type: Plain text
8838 #: build/C/man2/signalfd.2:289 build/C/man2/timerfd_create.2:323
8839 msgid "The per-process limit of open file descriptors has been reached."
8840 msgstr ""
8841 "オープン済みのファイルディスクリプタの数がプロセスあたりの上限に 達していた。"
8842
8843 #. type: Plain text
8844 #: build/C/man2/signalfd.2:299
8845 msgid "There was insufficient memory to create a new signalfd file descriptor."
8846 msgstr ""
8847 "新しい signalfd ファイルディスクリプタを生成するのに十分なメモリがなかった。"
8848
8849 #.  signalfd() is in glibc 2.7, but reportedly does not build
8850 #. type: Plain text
8851 #: build/C/man2/signalfd.2:307
8852 msgid ""
8853 "B<signalfd>()  is available on Linux since kernel 2.6.22.  Working support "
8854 "is provided in glibc since version 2.8.  The B<signalfd4>()  system call "
8855 "(see NOTES) is available on Linux since kernel 2.6.27."
8856 msgstr ""
8857 "B<signalfd>()  はカーネル 2.6.22 以降の Linux で利用可能である。 正しく動作す"
8858 "る glibc 側のサポートはバージョン 2.8 以降で提供されている。 B<signalfd4>()  "
8859 "システムコール (「注意」参照) は カーネル 2.6.27 以降の Linux で利用可能であ"
8860 "る。"
8861
8862 #. type: Plain text
8863 #: build/C/man2/signalfd.2:312
8864 msgid "B<signalfd>()  and B<signalfd4>()  are Linux-specific."
8865 msgstr "B<signalfd>()  と B<signalfd4>()  は Linux 固有である。"
8866
8867 #. type: Plain text
8868 #: build/C/man2/signalfd.2:322
8869 msgid ""
8870 "The underlying Linux system call requires an additional argument, I<size_t "
8871 "sizemask>, which specifies the size of the I<mask> argument.  The glibc "
8872 "B<signalfd>()  wrapper function does not include this argument, since it "
8873 "provides the required value for the underlying system call."
8874 msgstr ""
8875 "実際の Linux のシステムコールでは I<size_t sizemask> という引き数が追加で必要"
8876 "である。この引き数で I<mask> のサイズを指定する。 glibc の B<signalfd>()  "
8877 "ラッパー関数にはこの引き数は含まれず、 ラッパー関数が必要な値を計算して内部で"
8878 "呼び出すシステムコールに提供する。"
8879
8880 #. type: Plain text
8881 #: build/C/man2/signalfd.2:336
8882 msgid ""
8883 "A process can create multiple signalfd file descriptors.  This makes it "
8884 "possible to accept different signals on different file descriptors.  (This "
8885 "may be useful if monitoring the file descriptors using B<select>(2), B<poll>"
8886 "(2), or B<epoll>(7): the arrival of different signals will make different "
8887 "descriptors ready.)  If a signal appears in the I<mask> of more than one of "
8888 "the file descriptors, then occurrences of that signal can be read (once) "
8889 "from any one of the descriptors."
8890 msgstr ""
8891 "一つのプロセスは複数の signalfd ファイルディスクリプタを生成することができ"
8892 "る。 これにより、異なるファイルディスクリプタで異なるシグナルを受け取ること"
8893 "が できる (この機能は B<select>(2), B<poll>(2), B<epoll>(7)  を使ってファイル"
8894 "ディスクリプタを監視する場合に有用かもしれない。 異なるシグナルが到着すると、"
8895 "異なるファイルディスクリプタが利用可能に なるからだ)。 一つのシグナルが二つ以"
8896 "上のファイルディスクリプタの I<mask> に含まれている場合、そのシグナルの発生は"
8897 "そのシグナルを I<mask> に含むファイルディスクリプタのうちいずれか一つから読み"
8898 "出すことができる。"
8899
8900 #. type: Plain text
8901 #: build/C/man2/signalfd.2:352
8902 msgid ""
8903 "There are two underlying Linux system calls: B<signalfd>()  and the more "
8904 "recent B<signalfd4>().  The former system call does not implement a I<flags> "
8905 "argument.  The latter system call implements the I<flags> values described "
8906 "above.  Starting with glibc 2.9, the B<signalfd>()  wrapper function will "
8907 "use B<signalfd4>()  where it is available."
8908 msgstr ""
8909 "下層にある Linux システムコールは二種類あり、 B<signalfd>()  と、もっと新し"
8910 "い B<signalfd4>()  である。 B<signalfd>()  は I<flags> 引き数を実装していな"
8911 "い。 B<signalfd4>()  では上記の値の I<flags> が実装されている。 glibc 2.9 以"
8912 "降では、 B<signalfd>()  のラッパー関数は、 B<signalfd4>()  が利用可能であれ"
8913 "ば、これを使用する。"
8914
8915 #.  The fix also was put into 2.6.24.5
8916 #. type: Plain text
8917 #: build/C/man2/signalfd.2:360
8918 msgid ""
8919 "In kernels before 2.6.25, the I<ssi_ptr> and I<ssi_int> fields are not "
8920 "filled in with the data accompanying a signal sent by B<sigqueue>(3)."
8921 msgstr ""
8922 "カーネル 2.6.25 より前では、 B<sigqueue>(3)  により送信されたシグナルと一緒に"
8923 "渡されるデータでは、フィールド I<ssi_ptr> と I<ssi_int> は設定されない。"
8924
8925 #. type: Plain text
8926 #: build/C/man2/signalfd.2:370
8927 msgid ""
8928 "The program below accepts the signals B<SIGINT> and B<SIGQUIT> via a "
8929 "signalfd file descriptor.  The program terminates after accepting a "
8930 "B<SIGQUIT> signal.  The following shell session demonstrates the use of the "
8931 "program:"
8932 msgstr ""
8933 "下記のプログラムは、シグナル B<SIGINT> と B<SIGQUIT> を signalfd ファイルディ"
8934 "スクリプタ経由で受信する。 シグナル B<SIGQUIT> 受信後にプログラムは終了す"
8935 "る。 以下に示すシェルセッションにこのプログラムの使い方を示す。"
8936
8937 #. type: Plain text
8938 #: build/C/man2/signalfd.2:381
8939 #, no-wrap
8940 msgid ""
8941 "$B< ./signalfd_demo>\n"
8942 "B<^C>                   # Control-C generates SIGINT\n"
8943 "Got SIGINT\n"
8944 "B<^C>\n"
8945 "Got SIGINT\n"
8946 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
8947 "Got SIGQUIT\n"
8948 "$\n"
8949 msgstr ""
8950 "$B< ./signalfd_demo>\n"
8951 "B<^C>                   # Control-C generates SIGINT\n"
8952 "Got SIGINT\n"
8953 "B<^C>\n"
8954 "Got SIGINT\n"
8955 "B<^\\e>                    # Control-\\e generates SIGQUIT\n"
8956 "Got SIGQUIT\n"
8957 "$\n"
8958
8959 #. type: Plain text
8960 #: build/C/man2/signalfd.2:391
8961 #, no-wrap
8962 msgid ""
8963 "#include E<lt>sys/signalfd.hE<gt>\n"
8964 "#include E<lt>signal.hE<gt>\n"
8965 "#include E<lt>unistd.hE<gt>\n"
8966 "#include E<lt>stdlib.hE<gt>\n"
8967 "#include E<lt>stdio.hE<gt>\n"
8968 msgstr ""
8969 "#include E<lt>sys/signalfd.hE<gt>\n"
8970 "#include E<lt>signal.hE<gt>\n"
8971 "#include E<lt>unistd.hE<gt>\n"
8972 "#include E<lt>stdlib.hE<gt>\n"
8973 "#include E<lt>stdio.hE<gt>\n"
8974
8975 #. type: Plain text
8976 #: build/C/man2/signalfd.2:402
8977 #, no-wrap
8978 msgid ""
8979 "int\n"
8980 "main(int argc, char *argv[])\n"
8981 "{\n"
8982 "    sigset_t mask;\n"
8983 "    int sfd;\n"
8984 "    struct signalfd_siginfo fdsi;\n"
8985 "    ssize_t s;\n"
8986 msgstr ""
8987 "int\n"
8988 "main(int argc, char *argv[])\n"
8989 "{\n"
8990 "    sigset_t mask;\n"
8991 "    int sfd;\n"
8992 "    struct signalfd_siginfo fdsi;\n"
8993 "    ssize_t s;\n"
8994
8995 #. type: Plain text
8996 #: build/C/man2/signalfd.2:406
8997 #, no-wrap
8998 msgid ""
8999 "    sigemptyset(&mask);\n"
9000 "    sigaddset(&mask, SIGINT);\n"
9001 "    sigaddset(&mask, SIGQUIT);\n"
9002 msgstr ""
9003 "    sigemptyset(&mask);\n"
9004 "    sigaddset(&mask, SIGINT);\n"
9005 "    sigaddset(&mask, SIGQUIT);\n"
9006
9007 #. type: Plain text
9008 #: build/C/man2/signalfd.2:409
9009 #, no-wrap
9010 msgid ""
9011 "    /* Block signals so that they aren\\(aqt handled\n"
9012 "       according to their default dispositions */\n"
9013 msgstr ""
9014 "    /* Block signals so that they aren\\(aqt handled\n"
9015 "       according to their default dispositions */\n"
9016
9017 #. type: Plain text
9018 #: build/C/man2/signalfd.2:412
9019 #, no-wrap
9020 msgid ""
9021 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
9022 "        handle_error(\"sigprocmask\");\n"
9023 msgstr ""
9024 "    if (sigprocmask(SIG_BLOCK, &mask, NULL) == -1)\n"
9025 "        handle_error(\"sigprocmask\");\n"
9026
9027 #. type: Plain text
9028 #: build/C/man2/signalfd.2:416
9029 #, no-wrap
9030 msgid ""
9031 "    sfd = signalfd(-1, &mask, 0);\n"
9032 "    if (sfd == -1)\n"
9033 "        handle_error(\"signalfd\");\n"
9034 msgstr ""
9035 "    sfd = signalfd(-1, &mask, 0);\n"
9036 "    if (sfd == -1)\n"
9037 "        handle_error(\"signalfd\");\n"
9038
9039 #. type: Plain text
9040 #: build/C/man2/signalfd.2:421
9041 #, no-wrap
9042 msgid ""
9043 "    for (;;) {\n"
9044 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
9045 "        if (s != sizeof(struct signalfd_siginfo))\n"
9046 "            handle_error(\"read\");\n"
9047 msgstr ""
9048 "    for (;;) {\n"
9049 "        s = read(sfd, &fdsi, sizeof(struct signalfd_siginfo));\n"
9050 "        if (s != sizeof(struct signalfd_siginfo))\n"
9051 "            handle_error(\"read\");\n"
9052
9053 #. type: Plain text
9054 #: build/C/man2/signalfd.2:432
9055 #, no-wrap
9056 msgid ""
9057 "        if (fdsi.ssi_signo == SIGINT) {\n"
9058 "            printf(\"Got SIGINT\\en\");\n"
9059 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
9060 "            printf(\"Got SIGQUIT\\en\");\n"
9061 "            exit(EXIT_SUCCESS);\n"
9062 "        } else {\n"
9063 "            printf(\"Read unexpected signal\\en\");\n"
9064 "        }\n"
9065 "    }\n"
9066 "}\n"
9067 msgstr ""
9068 "        if (fdsi.ssi_signo == SIGINT) {\n"
9069 "            printf(\"Got SIGINT\\en\");\n"
9070 "        } else if (fdsi.ssi_signo == SIGQUIT) {\n"
9071 "            printf(\"Got SIGQUIT\\en\");\n"
9072 "            exit(EXIT_SUCCESS);\n"
9073 "        } else {\n"
9074 "            printf(\"Read unexpected signal\\en\");\n"
9075 "        }\n"
9076 "    }\n"
9077 "}\n"
9078
9079 #. type: Plain text
9080 #: build/C/man2/signalfd.2:446
9081 msgid ""
9082 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
9083 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
9084 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
9085 msgstr ""
9086 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<sigaction>(2), "
9087 "B<sigprocmask>(2), B<sigwaitinfo>(2), B<timerfd_create>(2), B<sigsetops>(3), "
9088 "B<sigwait>(3), B<epoll>(7), B<signal>(7)"
9089
9090 #. type: TH
9091 #: build/C/man3/sigpause.3:25
9092 #, no-wrap
9093 msgid "SIGPAUSE"
9094 msgstr "SIGPAUSE"
9095
9096 #. type: TH
9097 #: build/C/man3/sigpause.3:25
9098 #, fuzzy, no-wrap
9099 #| msgid "2009-01-13"
9100 msgid "2014-01-07"
9101 msgstr "2009-01-13"
9102
9103 #. type: Plain text
9104 #: build/C/man3/sigpause.3:28
9105 msgid "sigpause - atomically release blocked signals and wait for interrupt"
9106 msgstr "sigpause - ブロックされたシグナルをアトミックに解放して割り込みを待つ"
9107
9108 #. type: Plain text
9109 #: build/C/man3/sigpause.3:33
9110 #, fuzzy, no-wrap
9111 #| msgid "B<int sigpause(int >I<sigmask>B<);  /* BSD */>\n"
9112 msgid "B<int sigpause(int >I<sigmask>B<);  /* BSD (but see NOTES) */>\n"
9113 msgstr "B<int sigpause(int >I<sigmask>B<);  /* BSD */>\n"
9114
9115 #. type: Plain text
9116 #: build/C/man3/sigpause.3:35
9117 #, no-wrap
9118 msgid "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
9119 msgstr "B<int sigpause(int >I<sig>B<);      /* System V / UNIX 95 */>\n"
9120
9121 #. type: Plain text
9122 #: build/C/man3/sigpause.3:41
9123 msgid "Don't use this function.  Use B<sigsuspend>(2)  instead."
9124 msgstr "この関数を使わないこと。 代わりに B<sigsuspend>(2)  を使うこと。"
9125
9126 #. type: Plain text
9127 #: build/C/man3/sigpause.3:48
9128 msgid ""
9129 "The function B<sigpause>()  is designed to wait for some signal.  It changes "
9130 "the process's signal mask (set of blocked signals), and then waits for a "
9131 "signal to arrive.  Upon arrival of a signal, the original signal mask is "
9132 "restored."
9133 msgstr ""
9134 "関数 B<sigpause>()  はシグナルを待つように設計されている。 この関数はプロセス"
9135 "のシグナルマスク (ブロックされたシグナルのセット) を変更し、 シグナルが到着す"
9136 "るのを待つ。 シグナルが到着すると、シグナルマスクは元に戻される。"
9137
9138 #. type: Plain text
9139 #: build/C/man3/sigpause.3:56
9140 msgid ""
9141 "If B<sigpause>()  returns, it was interrupted by a signal and the return "
9142 "value is -1 with I<errno> set to B<EINTR>."
9143 msgstr ""
9144 "B<sigpause>()  が返った場合、この関数はシグナルによって割り込まれている。 返"
9145 "り値は -1 で、 I<errno> は B<EINTR> に設定される。"
9146
9147 #. type: Plain text
9148 #: build/C/man3/sigpause.3:61
9149 #, fuzzy
9150 #| msgid "The B<sigmask>()  function returns the signal mask for I<signum>."
9151 msgid "The B<sigpause>()  function is thread-safe."
9152 msgstr "B<sigmask>()  関数は I<signum> のシグナルマスクを返す。"
9153
9154 #. type: Plain text
9155 #: build/C/man3/sigpause.3:65
9156 msgid "The System V version of B<sigpause>()  is standardized in POSIX.1-2001."
9157 msgstr "System V 版の B<sigpause>()  は POSIX.1-2001 で標準化されている。"
9158
9159 #.  __xpg_sigpause: UNIX 95, spec 1170, SVID, SVr4, XPG
9160 #. type: Plain text
9161 #: build/C/man3/sigpause.3:82
9162 msgid ""
9163 "The classical BSD version of this function appeared in 4.2BSD.  It sets the "
9164 "process's signal mask to I<sigmask>.  UNIX 95 standardized the incompatible "
9165 "System V version of this function, which removes only the specified signal "
9166 "I<sig> from the process's signal mask.  The unfortunate situation with two "
9167 "incompatible functions with the same name was solved by the B<\\%sigsuspend>"
9168 "(2)  function, that takes a I<sigset_t\\ *> argument (instead of an I<int>)."
9169 msgstr ""
9170 "この関数の古典的な BSD 版は 4.2BSD で登場した。 この関数はプロセスのシグナル"
9171 "マスクを I<sigmask> に設定する。 UNIX 95 では BSD 版と互換性のない System V "
9172 "版のこの関数が標準化された。 UNIX 95 版は、指定されたシグナル I<sig> をプロセ"
9173 "スのシグナルマスクから削除するだけである。 同じ名前で互換性のない 2 つの関数"
9174 "があるという不幸な事態は、 B<\\%sigsuspend>(2)  関数によって解消された。 この"
9175 "関数は (I<int> の代わりに)  B<sigset_t\\ *> 引き数をとる。"
9176
9177 #. type: Plain text
9178 #: build/C/man3/sigpause.3:85
9179 msgid ""
9180 "On Linux, this routine is a system call only on the Sparc (sparc64)  "
9181 "architecture."
9182 msgstr ""
9183 "Linux では、このルーチンは Sparc (sparc64) アーキテクチャでのみ システムコー"
9184 "ルとなっている。"
9185
9186 #. type: Plain text
9187 #: build/C/man3/sigpause.3:87
9188 msgid "Libc4 and libc5 know only about the BSD version."
9189 msgstr "libc4 と libc5 には BSD 版しかない。"
9190
9191 #.  For the BSD version, one usually uses a zero
9192 #.  .I sigmask
9193 #.  to indicate that no signals are to be blocked.
9194 #. type: Plain text
9195 #: build/C/man3/sigpause.3:111
9196 #, fuzzy
9197 #| msgid ""
9198 #| "Glibc uses the BSD version if the B<_BSD_SOURCE> feature test macro is "
9199 #| "defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, "
9200 #| "B<_XOPEN_SOURCE>, B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined.  "
9201 #| "Otherwise, the System V version is used."
9202 msgid ""
9203 "Glibc uses the BSD version if the B<_BSD_SOURCE> feature test macro is "
9204 "defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
9205 "B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined.  Otherwise, the System V "
9206 "version is used (and B<_XOPEN_SOURCE> must be defined to obtain the "
9207 "declaration).  Since glibc 2.19, only the System V version is exposed by "
9208 "I<E<lt>signal.hE<gt>>; applications that formerly used the BSD B<sigpause>"
9209 "()  should be amended to use B<sigsuspend>(2)."
9210 msgstr ""
9211 "機能検査マクロ B<_BSD_SOURCE> が定義され、 B<_POSIX_SOURCE>, "
9212 "B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, B<_GNU_SOURCE>, B<_SVID_SOURCE> のいず"
9213 "れも定義されていない場合、 glibc は BSD 版を使う。 それ以外の場合には、"
9214 "System V 版を使用する。"
9215
9216 #. type: Plain text
9217 #: build/C/man3/sigpause.3:119
9218 msgid ""
9219 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigblock>"
9220 "(3), B<sigvec>(3), B<feature_test_macros>(7)"
9221 msgstr ""
9222 "B<kill>(2), B<sigaction>(2), B<sigprocmask>(2), B<sigsuspend>(2), B<sigblock>"
9223 "(3), B<sigvec>(3), B<feature_test_macros>(7)"
9224
9225 #. type: TH
9226 #: build/C/man2/sigpending.2:29
9227 #, no-wrap
9228 msgid "SIGPENDING"
9229 msgstr "SIGPENDING"
9230
9231 #. type: TH
9232 #: build/C/man2/sigpending.2:29
9233 #, fuzzy, no-wrap
9234 #| msgid "2012-12-17"
9235 msgid "2013-12-11"
9236 msgstr "2012-12-17"
9237
9238 #. type: Plain text
9239 #: build/C/man2/sigpending.2:32
9240 msgid "sigpending - examine pending signals"
9241 msgstr "sigpending - 処理待ちのシグナルの検査"
9242
9243 #. type: Plain text
9244 #: build/C/man2/sigpending.2:36
9245 msgid "B<int sigpending(sigset_t *>I<set>B<);>"
9246 msgstr "B<int sigpending(sigset_t *>I<set>B<);>"
9247
9248 #. type: Plain text
9249 #: build/C/man2/sigpending.2:45
9250 msgid ""
9251 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9252 "_POSIX_SOURCE"
9253 msgstr ""
9254 "B<sigpending>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9255 "_POSIX_SOURCE"
9256
9257 #. type: Plain text
9258 #: build/C/man2/sigpending.2:53
9259 msgid ""
9260 "B<sigpending>()  returns the set of signals that are pending for delivery to "
9261 "the calling thread (i.e., the signals which have been raised while "
9262 "blocked).  The mask of pending signals is returned in I<set>."
9263 msgstr ""
9264 "B<sigpending>()  は、呼び出し元のスレッドへの配送を待っている (pending) シグ"
9265 "ナル集合 (すなわち、禁止中に発生したシグナル) を返す。 処理待ちのシグナルのマ"
9266 "スクが I<set> に格納される。"
9267
9268 #. type: Plain text
9269 #: build/C/man2/sigpending.2:59
9270 msgid ""
9271 "B<sigpending>()  returns 0 on success and -1 on error.  In the event of an "
9272 "error, I<errno> is set to indicate the cause."
9273 msgstr ""
9274 "B<sigpending>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、I<errno> "
9275 "にエラーの原因を示す値を設定する。"
9276
9277 #. type: Plain text
9278 #: build/C/man2/sigpending.2:64
9279 msgid ""
9280 "I<set> points to memory which is not a valid part of the process address "
9281 "space."
9282 msgstr ""
9283 "I<set> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
9284
9285 #. type: Plain text
9286 #: build/C/man2/sigpending.2:74
9287 msgid ""
9288 "If a signal is both blocked and has a disposition of \"ignored\", it is "
9289 "I<not> added to the mask of pending signals when generated."
9290 msgstr ""
9291
9292 #. type: Plain text
9293 #: build/C/man2/sigpending.2:79
9294 msgid ""
9295 "The set of signals that is pending for a thread is the union of the set of "
9296 "signals that is pending for that thread and the set of signals that is "
9297 "pending for the process as a whole; see B<signal>(7)."
9298 msgstr ""
9299 "あるスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体への処理待ち"
9300 "のシグナル集合と、プロセス全体への処理待ちの シグナル集合をあわせたものであ"
9301 "る。 B<signal>(7)  参照。"
9302
9303 #. type: Plain text
9304 #: build/C/man2/sigpending.2:91
9305 msgid ""
9306 "In versions of glibc up to and including 2.2.1, there is a bug in the "
9307 "wrapper function for B<sigpending>()  which means that information about "
9308 "pending real-time signals is not correctly returned."
9309 msgstr ""
9310 "バージョン 2.2.1 以前の glibc では、 B<sigpending>()  のラッパー関数に、処理"
9311 "待ちのリアルタイムシグナルに関する情報が 正しく返されないというバグがある。"
9312
9313 #. type: Plain text
9314 #: build/C/man2/sigpending.2:99
9315 msgid ""
9316 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), B<sigsuspend>"
9317 "(2), B<sigsetops>(3), B<signal>(7)"
9318 msgstr ""
9319 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), B<sigsuspend>"
9320 "(2), B<sigsetops>(3), B<signal>(7)"
9321
9322 #. type: TH
9323 #: build/C/man2/sigprocmask.2:29
9324 #, no-wrap
9325 msgid "SIGPROCMASK"
9326 msgstr "SIGPROCMASK"
9327
9328 #. type: Plain text
9329 #: build/C/man2/sigprocmask.2:32
9330 msgid "sigprocmask - examine and change blocked signals"
9331 msgstr "sigprocmask - 禁止するシグナルの確認と変更"
9332
9333 #. type: Plain text
9334 #: build/C/man2/sigprocmask.2:37
9335 msgid ""
9336 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9337 "*>I<oldset>B<);>"
9338 msgstr ""
9339 "B<int sigprocmask(int >I<how>B<, const sigset_t *>I<set>B<,> B<sigset_t "
9340 "*>I<oldset>B<);>"
9341
9342 #. type: Plain text
9343 #: build/C/man2/sigprocmask.2:46
9344 msgid ""
9345 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9346 "_POSIX_SOURCE"
9347 msgstr ""
9348 "B<sigprocmask>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
9349 "_POSIX_SOURCE"
9350
9351 #. type: Plain text
9352 #: build/C/man2/sigprocmask.2:55
9353 msgid ""
9354 "B<sigprocmask>()  is used to fetch and/or change the signal mask of the "
9355 "calling thread.  The signal mask is the set of signals whose delivery is "
9356 "currently blocked for the caller (see also B<signal>(7)  for more details)."
9357 msgstr ""
9358 "B<sigprocmask>()  を使うと、呼び出したスレッドのシグナルマスクの取得/変更がで"
9359 "きる。 シグナルマスクは、呼び出し元に対して現在配送が禁止されているシグナル"
9360 "の 集合のことである (詳細については B<signal>(7)  も参照のこと)。"
9361
9362 #. type: Plain text
9363 #: build/C/man2/sigprocmask.2:59
9364 msgid ""
9365 "The behavior of the call is dependent on the value of I<how>, as follows."
9366 msgstr "このコールの動作は I<how> の値によって決まる:"
9367
9368 #. type: TP
9369 #: build/C/man2/sigprocmask.2:59
9370 #, no-wrap
9371 msgid "B<SIG_BLOCK>"
9372 msgstr "B<SIG_BLOCK>"
9373
9374 #. type: Plain text
9375 #: build/C/man2/sigprocmask.2:64
9376 msgid ""
9377 "The set of blocked signals is the union of the current set and the I<set> "
9378 "argument."
9379 msgstr ""
9380 "禁止されたシグナルの集合は現在の値と I<set> 引き数を結合したものとなる。"
9381
9382 #. type: TP
9383 #: build/C/man2/sigprocmask.2:64
9384 #, no-wrap
9385 msgid "B<SIG_UNBLOCK>"
9386 msgstr "B<SIG_UNBLOCK>"
9387
9388 #. type: Plain text
9389 #: build/C/man2/sigprocmask.2:70
9390 msgid ""
9391 "The signals in I<set> are removed from the current set of blocked signals.  "
9392 "It is permissible to attempt to unblock a signal which is not blocked."
9393 msgstr ""
9394 "現在禁止されているシグナルの集合から I<set> にあるシグナルを取り除く。禁止さ"
9395 "れていないシグナルを取り除こうと することも認められている。"
9396
9397 #. type: TP
9398 #: build/C/man2/sigprocmask.2:70
9399 #, no-wrap
9400 msgid "B<SIG_SETMASK>"
9401 msgstr "B<SIG_SETMASK>"
9402
9403 #. type: Plain text
9404 #: build/C/man2/sigprocmask.2:74
9405 msgid "The set of blocked signals is set to the argument I<set>."
9406 msgstr "禁止されているシグナルの集合に I<set> 引き数を設定する。"
9407
9408 #. type: Plain text
9409 #: build/C/man2/sigprocmask.2:79
9410 msgid ""
9411 "If I<oldset> is non-NULL, the previous value of the signal mask is stored in "
9412 "I<oldset>."
9413 msgstr ""
9414 "I<oldset> が NULL でなければ、シグナルマスクの今までの値を I<oldset> に格納す"
9415 "る。"
9416
9417 #. type: Plain text
9418 #: build/C/man2/sigprocmask.2:88
9419 msgid ""
9420 "If I<set> is NULL, then the signal mask is unchanged (i.e., I<how> is "
9421 "ignored), but the current value of the signal mask is nevertheless returned "
9422 "in I<oldset> (if it is not NULL)."
9423 msgstr ""
9424 "I<set> が NULL であれば、シグナルマスクは変更されない (すなわち、 I<how> は無"
9425 "視される)。 I<set> の値にかかわらず、現在のシグナルマスクの値は I<oldset> に"
9426 "入れて返される (但し、 I<oldset> が NULL でない場合)。"
9427
9428 #. type: Plain text
9429 #: build/C/man2/sigprocmask.2:93
9430 msgid ""
9431 "The use of B<sigprocmask>()  is unspecified in a multithreaded process; see "
9432 "B<pthread_sigmask>(3)."
9433 msgstr ""
9434 "マルチスレッドのプロセスで B<sigprocmask>()  を使用した場合の動作は規定されて"
9435 "いない。 B<pthread_sigmask>(3)  を参照のこと。"
9436
9437 #. type: Plain text
9438 #: build/C/man2/sigprocmask.2:99
9439 msgid ""
9440 "B<sigprocmask>()  returns 0 on success and -1 on error.  In the event of an "
9441 "error, I<errno> is set to indicate the cause."
9442 msgstr ""
9443 "B<sigprocmask>() は成功した場合 0 を返す。 エラーの場合、 -1 を返し、 "
9444 "I<errno> にエラーの原因を示す値を設定する。"
9445
9446 #. type: Plain text
9447 #: build/C/man2/sigprocmask.2:107
9448 msgid ""
9449 "the I<set> or I<oldset> argument points outside the process's allocated "
9450 "address space."
9451 msgstr ""
9452 "引き数 I<set> か I<oldset> がプロセスに割り当てられた\n"
9453 "アドレス空間の外を指している。"
9454
9455 #. type: Plain text
9456 #: build/C/man2/sigprocmask.2:112
9457 msgid "The value specified in I<how> was invalid."
9458 msgstr "I<how> に指定された値が有効ではない。"
9459
9460 #. type: Plain text
9461 #: build/C/man2/sigprocmask.2:118
9462 msgid ""
9463 "It is not possible to block B<SIGKILL> or B<SIGSTOP>.  Attempts to do so are "
9464 "silently ignored."
9465 msgstr ""
9466 "B<SIGKILL> や B<SIGSTOP> を禁止することはできない。 禁止しようとしても黙って"
9467 "無視される。"
9468
9469 #. type: Plain text
9470 #: build/C/man2/sigprocmask.2:120
9471 msgid "Each of the threads in a process has its own signal mask."
9472 msgstr "プロセス内の各スレッドはそれぞれ専用のシグナルマスクを持つ。"
9473
9474 #. type: Plain text
9475 #: build/C/man2/sigprocmask.2:140
9476 msgid ""
9477 "If B<SIGBUS>, B<SIGFPE>, B<SIGILL>, or B<SIGSEGV> are generated while they "
9478 "are blocked, the result is undefined, unless the signal was generated by "
9479 "B<kill>(2), B<sigqueue>(3), or B<raise>(3)."
9480 msgstr ""
9481 "シグナル B<SIGBUS>, B<SIGFPE>, B<SIGILL>, B<SIGSEGV> が禁止されている間に生成"
9482 "された場合で、 そのシグナルが B<kill>(2), B<sigqueue>(3), B<raise>(3)  によっ"
9483 "て生成されたものでないときには、 その後の動作は未定義である。"
9484
9485 #. type: Plain text
9486 #: build/C/man2/sigprocmask.2:155
9487 msgid ""
9488 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9489 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9490 "B<signal>(7)"
9491 msgstr ""
9492 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigpending>(2), "
9493 "B<sigsuspend>(2), B<pthread_sigmask>(3), B<sigqueue>(3), B<sigsetops>(3), "
9494 "B<signal>(7)"
9495
9496 #. type: TH
9497 #: build/C/man3/sigqueue.3:28
9498 #, no-wrap
9499 msgid "SIGQUEUE"
9500 msgstr "SIGQUEUE"
9501
9502 #. type: TH
9503 #: build/C/man3/sigqueue.3:28 build/C/man3/sigwait.3:26
9504 #, fuzzy, no-wrap
9505 #| msgid "2012-12-17"
9506 msgid "2013-12-16"
9507 msgstr "2012-12-17"
9508
9509 #. type: Plain text
9510 #: build/C/man3/sigqueue.3:31
9511 msgid "sigqueue - queue a signal and data to a process"
9512 msgstr "sigqueue - シグナルとデータをプロセスに送る"
9513
9514 #. type: Plain text
9515 #: build/C/man3/sigqueue.3:35
9516 msgid ""
9517 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9518 ">I<value>B<);>"
9519 msgstr ""
9520 "B<int sigqueue(pid_t >I<pid>B<, int >I<sig>B<, const union sigval "
9521 ">I<value>B<);>"
9522
9523 #. type: Plain text
9524 #: build/C/man3/sigqueue.3:43
9525 msgid "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9526 msgstr "B<sigqueue>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
9527
9528 #. type: Plain text
9529 #: build/C/man3/sigqueue.3:55
9530 msgid ""
9531 "B<sigqueue>()  sends the signal specified in I<sig> to the process whose PID "
9532 "is given in I<pid>.  The permissions required to send a signal are the same "
9533 "as for B<kill>(2).  As with B<kill>(2), the null signal (0) can be used to "
9534 "check if a process with a given PID exists."
9535 msgstr ""
9536 "B<sigqueue>()  は I<sig> で指定されたシグナルを、PID が I<pid> であるプロセス"
9537 "に送る。 シグナルを送るのに必要な権限は B<kill>(2)  と同じである。 B<kill>"
9538 "(2)  と同様に、ヌル・シグナル (0) を使って 指定した PID のプロセスが存在する"
9539 "かをチェックすることができる。"
9540
9541 #. type: Plain text
9542 #: build/C/man3/sigqueue.3:60
9543 msgid ""
9544 "The I<value> argument is used to specify an accompanying item of data "
9545 "(either an integer or a pointer value) to be sent with the signal, and has "
9546 "the following type:"
9547 msgstr ""
9548 "I<value> 引き数はシグナルと一緒に送るデータの付属アイテムを指定する。 "
9549 "I<value> は (整数またはポインタの値であり) 以下のような型である。"
9550
9551 #. type: Plain text
9552 #: build/C/man3/sigqueue.3:67
9553 #, no-wrap
9554 msgid ""
9555 "union sigval {\n"
9556 "    int   sival_int;\n"
9557 "    void *sival_ptr;\n"
9558 "};\n"
9559 msgstr ""
9560 "union sigval {\n"
9561 "    int   sival_int;\n"
9562 "    void *sival_ptr;\n"
9563 "};\n"
9564
9565 #. type: Plain text
9566 #: build/C/man3/sigqueue.3:83
9567 msgid ""
9568 "If the receiving process has installed a handler for this signal using the "
9569 "B<SA_SIGINFO> flag to B<sigaction>(2), then it can obtain this data via the "
9570 "I<si_value> field of the I<siginfo_t> structure passed as the second "
9571 "argument to the handler.  Furthermore, the I<si_code> field of that "
9572 "structure will be set to B<SI_QUEUE>."
9573 msgstr ""
9574 "受取先のプロセスに、このシグナルに対するハンドラを (B<sigaction>(2)  に "
9575 "B<SA_SIGINFO> を指定して) インストールしておくと、 そのハンドラの第 2 引き数"
9576 "に渡される I<siginfo_t> 構造体の I<si_value> フィールドによって、このデータを"
9577 "取得できる。 さらに、この構造体の I<si_code> フィールドは B<SI_QUEUE> に設定"
9578 "される。"
9579
9580 #. type: Plain text
9581 #: build/C/man3/sigqueue.3:91
9582 msgid ""
9583 "On success, B<sigqueue>()  returns 0, indicating that the signal was "
9584 "successfully queued to the receiving process.  Otherwise -1 is returned and "
9585 "I<errno> is set to indicate the error."
9586 msgstr ""
9587 "成功した場合、 B<sigqueue>()  は 0 を返す。 これは受け取り側プロセスの待ち行"
9588 "列に シグナルが正しく入れられたことを示す。 失敗した場合は -1 が返され、 "
9589 "I<errno> がエラーを表す値に設定される。"
9590
9591 #. type: Plain text
9592 #: build/C/man3/sigqueue.3:102
9593 msgid "I<sig> was invalid."
9594 msgstr "I<sig> が不正である。"
9595
9596 #. type: Plain text
9597 #: build/C/man3/sigqueue.3:108
9598 msgid ""
9599 "The process does not have permission to send the signal to the receiving "
9600 "process.  For the required permissions, see B<kill>(2)."
9601 msgstr ""
9602 "このプロセスには、受け取り側プロセスにシグナルを送る権限がない。 必要な権限に"
9603 "ついては、 B<kill>(2)  を参照すること。"
9604
9605 #. type: Plain text
9606 #: build/C/man3/sigqueue.3:112
9607 msgid "No process has a PID matching I<pid>."
9608 msgstr "I<pid> にマッチする PID のプロセスがない。"
9609
9610 #. type: Plain text
9611 #: build/C/man3/sigqueue.3:114
9612 msgid "This system call first appeared in Linux 2.2."
9613 msgstr "このシステムコールは Linux 2.2 で初めて登場した。"
9614
9615 #. type: Plain text
9616 #: build/C/man3/sigqueue.3:119
9617 msgid "The B<sigqueue>()  function is thread-safe."
9618 msgstr ""
9619
9620 #. type: Plain text
9621 #: build/C/man3/sigqueue.3:129
9622 msgid ""
9623 "If this function results in the sending of a signal to the process that "
9624 "invoked it, and that signal was not blocked by the calling thread, and no "
9625 "other threads were willing to handle this signal (either by having it "
9626 "unblocked, or by waiting for it using B<sigwait>(3)), then at least some "
9627 "signal must be delivered to this thread before this function returns."
9628 msgstr ""
9629 "この関数を呼び出したプロセスにこの関数がシグナルを送ったときに、 シグナルが呼"
9630 "び出し側スレッドにブロックされず、 かつ (シグナルがブロックされなかった、また"
9631 "は B<sigwait>(3)  を使用するのを待っていることにより)  このシグナルを扱うス"
9632 "レッドが何もない場合は、 この関数がリターンする前に、少なくとも そのスレッド"
9633 "に対してシグナルが配送されていなければならない。"
9634
9635 #. type: Plain text
9636 #: build/C/man3/sigqueue.3:144
9637 msgid ""
9638 "On Linux, this function is implemented using the B<rt_sigqueueinfo>(2)  "
9639 "system call.  The system call differs in its third argument, which is the "
9640 "I<siginfo_t> structure that will be supplied to the receiving process's "
9641 "signal handler or returned by the receiving process's B<sigtimedwait>(2)  "
9642 "call.  Inside the glibc B<sigqueue>()  wrapper, this argument, I<uinfo>, is "
9643 "initialized as follows:"
9644 msgstr ""
9645 "Linux では、この関数は B<rt_sigqueueinfo>(2)  システムコールを使って実装され"
9646 "ている。 両者には 3 番目の引き数に違いがあり、 B<rt_sigqueueinfo>(2)  では 3 "
9647 "番目の引き数は I<siginfo_t> 構造体である。 I<siginfo_t> 構造体は、シグナルを"
9648 "受信するプロセスのシグナルハンドラに渡されたり、 シグナル受信プロセスの "
9649 "B<sigtimedwait>(2)  システムコールから返されたりする。 glibc の B<sigqueue>"
9650 "()  ラッパー関数内部では、 この引き数 I<uinfo> は以下のように初期化される。"
9651
9652 #. type: Plain text
9653 #: build/C/man3/sigqueue.3:152
9654 #, no-wrap
9655 msgid ""
9656 "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9657 "uinfo.si_code = SI_QUEUE;\n"
9658 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9659 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9660 "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9661 msgstr ""
9662 "uinfo.si_signo = sig;      /* argument supplied to sigqueue() */\n"
9663 "uinfo.si_code = SI_QUEUE;\n"
9664 "uinfo.si_pid = getpid();   /* Process ID of sender */\n"
9665 "uinfo.si_uid = getuid();   /* Real UID of sender */\n"
9666 "uinfo.si_value = val;      /* argument supplied to sigqueue() */\n"
9667
9668 #. type: Plain text
9669 #: build/C/man3/sigqueue.3:162
9670 msgid ""
9671 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9672 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9673 msgstr ""
9674 "B<kill>(2), B<rt_sigqueueinfo>(2), B<sigaction>(2), B<signal>(2), "
9675 "B<pthread_sigqueue>(3), B<sigwait>(3), B<signal>(7)"
9676
9677 #. type: TH
9678 #: build/C/man2/sigreturn.2:29
9679 #, no-wrap
9680 msgid "SIGRETURN"
9681 msgstr "SIGRETURN"
9682
9683 #. type: Plain text
9684 #: build/C/man2/sigreturn.2:32
9685 msgid "sigreturn - return from signal handler and cleanup stack frame"
9686 msgstr "sigreturn - シグナル・ハンドラから返り、スタックを掃除する"
9687
9688 #. type: Plain text
9689 #: build/C/man2/sigreturn.2:34
9690 msgid "B<int sigreturn(unsigned long >I<__unused>B<);>"
9691 msgstr "B<int sigreturn(unsigned long >I<__unused>B<);>"
9692
9693 #. type: Plain text
9694 #: build/C/man2/sigreturn.2:42
9695 msgid ""
9696 "When the Linux kernel creates the stack frame for a signal handler, a call "
9697 "to B<sigreturn>()  is inserted into the stack frame so that upon return from "
9698 "the signal handler, B<sigreturn>()  will be called."
9699 msgstr ""
9700 "Linux カーネルは、 シグナル・ハンドラ用にスタック・フレームを作成する際、 "
9701 "B<sigreturn>()  をスタック・フレームに挿入し、シグナル・ハンドラが返るときに "
9702 "B<sigreturn>()  が呼ばれるようにする。"
9703
9704 #. type: Plain text
9705 #: build/C/man2/sigreturn.2:53
9706 msgid ""
9707 "This B<sigreturn>()  call undoes everything that was done\\(emchanging the "
9708 "process's signal mask, switching stacks (see B<sigaltstack>(2))\\(emin order "
9709 "to invoke the signal handler: it restores the process's signal mask, "
9710 "switches stacks, and restores the process's context (registers, processor "
9711 "flags), so that the process directly resumes execution at the point where it "
9712 "was interrupted by the signal."
9713 msgstr ""
9714 "B<sigreturn>()  は、シグナル・ハンドラを起動するために行ったことの全て \\(em "
9715 "プロセスのシグナルマスクの変更、スタックの切り替え (B<sigaltstack>(2)  参照) "
9716 "\\(em の取り消しを行う。 プロセスのシグナルマスクの復元、スタックの切り替"
9717 "え、 プロセスのコンテキスト (レジスタ、プロセッサ・フラグ) の復元を行い、 プ"
9718 "ロセスがシグナルにより割り込まれた場所からそのまま実行を 再開できるようにす"
9719 "る。"
9720
9721 #. type: Plain text
9722 #: build/C/man2/sigreturn.2:56
9723 msgid "B<sigreturn>()  never returns."
9724 msgstr "B<sigreturn>()  が返ることはない。"
9725
9726 #. type: SH
9727 #: build/C/man2/sigreturn.2:56
9728 #, no-wrap
9729 msgid "FILES"
9730 msgstr "ファイル"
9731
9732 #. type: Plain text
9733 #: build/C/man2/sigreturn.2:58
9734 msgid "/usr/src/linux/arch/i386/kernel/signal.c"
9735 msgstr "/usr/src/linux/arch/i386/kernel/signal.c"
9736
9737 #. type: Plain text
9738 #: build/C/man2/sigreturn.2:60
9739 msgid "/usr/src/linux/arch/alpha/kernel/entry.S"
9740 msgstr "/usr/src/linux/arch/alpha/kernel/entry.S"
9741
9742 #. type: Plain text
9743 #: build/C/man2/sigreturn.2:64
9744 msgid ""
9745 "B<sigreturn>()  is specific to Linux and should not be used in programs "
9746 "intended to be portable."
9747 msgstr ""
9748 "B<sigreturn>()  は Linux 特有であり、移植を意図したプログラムでは使用してはい"
9749 "けない。"
9750
9751 #. type: Plain text
9752 #: build/C/man2/sigreturn.2:74
9753 msgid ""
9754 "The B<sigreturn>()  call is used by the kernel to implement signal "
9755 "handlers.  It should B<never> be called directly.  Better yet, the specific "
9756 "use of the I<__unused> argument varies depending on the architecture."
9757 msgstr ""
9758 "B<sigreturn>()  コールは、シグナル・ハンドラを実装するためにカーネルにより使"
9759 "用される。 これを直接呼び出しては B<決して> いけない。さらに I<__unused> 引き"
9760 "数がどのように使われるかはそのアーキテクチャに依存して変化する。"
9761
9762 #. type: Plain text
9763 #: build/C/man2/sigreturn.2:80
9764 msgid ""
9765 "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), B<signal>"
9766 "(7)"
9767 msgstr ""
9768 "B<kill>(2), B<restart_syscall>(2), B<sigaltstack>(2), B<signal>(2), B<signal>"
9769 "(7)"
9770
9771 #. type: TH
9772 #: build/C/man3/sigset.3:26
9773 #, no-wrap
9774 msgid "SIGSET"
9775 msgstr "SIGSET"
9776
9777 #. type: Plain text
9778 #: build/C/man3/sigset.3:29
9779 msgid "sigset, sighold, sigrelse, sigignore - System V signal API"
9780 msgstr "sigset, sighold, sigrelse, sigignore - System V 版シグナル API"
9781
9782 #. type: Plain text
9783 #: build/C/man3/sigset.3:35
9784 msgid "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
9785 msgstr "B<sighandler_t sigset(int >I<sig>B<, sighandler_t >I<disp>B<);>"
9786
9787 #. type: Plain text
9788 #: build/C/man3/sigset.3:37
9789 msgid "B<int sighold(int >I<sig>B<);>"
9790 msgstr "B<int sighold(int >I<sig>B<);>"
9791
9792 #. type: Plain text
9793 #: build/C/man3/sigset.3:39
9794 msgid "B<int sigrelse(int >I<sig>B<);>"
9795 msgstr "B<int sigrelse(int >I<sig>B<);>"
9796
9797 #. type: Plain text
9798 #: build/C/man3/sigset.3:41
9799 msgid "B<int sigignore(int >I<sig>B<);>"
9800 msgstr "B<int sigignore(int >I<sig>B<);>"
9801
9802 #. type: Plain text
9803 #: build/C/man3/sigset.3:52
9804 msgid "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
9805 msgstr "B<sigset>(), B<sighold>(), B<sigrelse>(), B<sigignore>():"
9806
9807 #. type: Plain text
9808 #: build/C/man3/sigset.3:56
9809 msgid ""
9810 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
9811 msgstr ""
9812 "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
9813
9814 #. type: Plain text
9815 #: build/C/man3/sigset.3:65
9816 msgid ""
9817 "These functions are provided in glibc as a compatibility interface for "
9818 "programs that make use of the historical System V signal API.  This API is "
9819 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
9820 "B<sigprocmask>(2), etc.)"
9821 msgstr ""
9822 "これらの関数は、昔ながらの System V 版シグナル API を使用しているプログラム "
9823 "に対して互換性のあるインタフェースを glibc で提供するものである。 この API は"
9824 "過去のものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>"
9825 "(2), B<sigprocmask>(2)  など) を使用すべきである。"
9826
9827 #. type: Plain text
9828 #: build/C/man3/sigset.3:74
9829 msgid ""
9830 "The B<sigset>()  function modifies the disposition of the signal I<sig>.  "
9831 "The I<disp> argument can be the address of a signal handler function, or one "
9832 "of the following constants:"
9833 msgstr ""
9834 "関数 B<sigset>()  はシグナル I<sig> のシグナルハンドラの動作を変更する。 "
9835 "I<disp> 引き数には、シグナルハンドラ関数のアドレスか、 以下の定数のいずれか一"
9836 "つを指定できる。"
9837
9838 #. type: TP
9839 #: build/C/man3/sigset.3:74
9840 #, no-wrap
9841 msgid "B<SIG_DFL>"
9842 msgstr "B<SIG_DFL>"
9843
9844 #. type: Plain text
9845 #: build/C/man3/sigset.3:79
9846 msgid "Reset the disposition of I<sig> to the default."
9847 msgstr "I<sig> の動作をデフォルトにリセットする。"
9848
9849 #. type: TP
9850 #: build/C/man3/sigset.3:79
9851 #, no-wrap
9852 msgid "B<SIG_IGN>"
9853 msgstr "B<SIG_IGN>"
9854
9855 #. type: Plain text
9856 #: build/C/man3/sigset.3:83
9857 msgid "Ignore I<sig>."
9858 msgstr "I<sig> を無視する。"
9859
9860 #. type: TP
9861 #: build/C/man3/sigset.3:83
9862 #, no-wrap
9863 msgid "B<SIG_HOLD>"
9864 msgstr "B<SIG_HOLD>"
9865
9866 #. type: Plain text
9867 #: build/C/man3/sigset.3:90
9868 msgid ""
9869 "Add I<sig> to the process's signal mask, but leave the disposition of I<sig> "
9870 "unchanged."
9871 msgstr ""
9872 "そのプロセスのシグナルマスクに I<sig> を追加するが、 I<sig> の動作は変更しな"
9873 "い。"
9874
9875 #. type: Plain text
9876 #: build/C/man3/sigset.3:96
9877 msgid ""
9878 "If I<disp> specifies the address of a signal handler, then I<sig> is added "
9879 "to the process's signal mask during execution of the handler."
9880 msgstr ""
9881 "I<disp> にシグナルハンドラのアドレスが指定された場合、 シグナルハンドラの実行"
9882 "中は、そのプロセスのシグナルマスクに I<sig> が追加される。"
9883
9884 #. type: Plain text
9885 #: build/C/man3/sigset.3:104
9886 msgid ""
9887 "If I<disp> was specified as a value other than B<SIG_HOLD>, then I<sig> is "
9888 "removed from the process's signal mask."
9889 msgstr ""
9890 "I<disp> に B<SIG_HOLD> 以外の値が指定された場合、 そのプロセスのシグナルマス"
9891 "クから I<sig> が削除される。"
9892
9893 #. type: Plain text
9894 #: build/C/man3/sigset.3:110 build/C/man3/sigvec.3:87
9895 msgid "The dispositions for B<SIGKILL> and B<SIGSTOP> cannot be changed."
9896 msgstr "シグナル B<SIGKILL> と B<SIGSTOP> に対する動作は変更できない。"
9897
9898 #. type: Plain text
9899 #: build/C/man3/sigset.3:116
9900 msgid ""
9901 "The B<sighold>()  function adds I<sig> to the calling process's signal mask."
9902 msgstr ""
9903 "関数 B<sighold>()  は、呼び出し元プロセスのシグナルマスクに I<sig> を追加す"
9904 "る。"
9905
9906 #. type: Plain text
9907 #: build/C/man3/sigset.3:122
9908 msgid ""
9909 "The B<sigrelse>()  function removes I<sig> from the calling process's signal "
9910 "mask."
9911 msgstr ""
9912 "関数 B<sigrelse>()  は、呼び出し元プロセスのシグナルマスクから I<sig> を削除"
9913 "する。"
9914
9915 #. type: Plain text
9916 #: build/C/man3/sigset.3:129
9917 msgid ""
9918 "The B<sigignore>()  function sets the disposition of I<sig> to B<SIG_IGN>."
9919 msgstr "関数 B<sigignore>()  は、 I<sig> の動作を B<SIG_IGN> に設定する。"
9920
9921 #. type: Plain text
9922 #: build/C/man3/sigset.3:145
9923 msgid ""
9924 "On success, B<sigset>()  returns B<SIG_HOLD> if I<sig> was blocked before "
9925 "the call, or the signal's previous disposition if it was not blocked before "
9926 "the call.  On error, B<sigset>()  returns -1, with I<errno> set to indicate "
9927 "the error.  (But see BUGS below.)"
9928 msgstr ""
9929 "B<sigset>()  は成功すると、 呼び出し前に I<sig> がブロックされていた場合には "
9930 "B<SIG_HOLD> を返し、 ブロックされていなかった場合には 変更前のそのシグナルの"
9931 "動作を返す。 エラーの場合、 B<sigset>()  は -1 を返し、 I<errno> にエラーを示"
9932 "す値をセットする。 但し、以下の「バグ」の節も参照のこと。"
9933
9934 #. type: Plain text
9935 #: build/C/man3/sigset.3:154
9936 msgid ""
9937 "The B<sighold>(), B<sigrelse>(), and B<sigignore>()  functions return 0 on "
9938 "success; on error, these functions return -1 and set I<errno> to indicate "
9939 "the error."
9940 msgstr ""
9941 "関数 B<sighold>(), B<sigrelse>(), B<sigignore>()  は成功すると 0 を返す。エ"
9942 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値をセットする。"
9943
9944 #. type: Plain text
9945 #: build/C/man3/sigset.3:161
9946 msgid ""
9947 "For B<sigset>()  see the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
9948 msgstr ""
9949 "B<sigset>()  に関しては、 B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」"
9950 "の節を参照。"
9951
9952 #. type: Plain text
9953 #: build/C/man3/sigset.3:168
9954 msgid ""
9955 "For B<sighold>()  and B<sigrelse>()  see the ERRORS under B<sigprocmask>(2)."
9956 msgstr ""
9957 "B<sighold>()  と B<sigrelse>()  に関しては、 B<sigprocmask>(2)  の「エラー」"
9958 "の節を参照。"
9959
9960 #. type: Plain text
9961 #: build/C/man3/sigset.3:173
9962 msgid "For B<sigignore>(), see the errors under B<sigaction>(2)."
9963 msgstr "B<sigignore>()  に関しては、 B<sigaction>(2)  の「エラー」の節を参照。"
9964
9965 #. type: Plain text
9966 #: build/C/man3/sigset.3:190
9967 msgid ""
9968 "SVr4, POSIX.1-2001.  These functions are obsolete: do not use them in new "
9969 "programs.  POSIX.1-2008 marks B<sighold>(), B<sigignore>(), B<sigpause>(), "
9970 "B<sigrelse>(), and B<sigset>()  as obsolete, recommending the use of "
9971 "B<sigaction>(2), B<sigprocmask>(2), B<pthread_sigmask>(3), and B<sigsuspend>"
9972 "(2)  instead."
9973 msgstr ""
9974 "SVr4, POSIX.1-2001.  これらの関数は廃止予定である。新しいプログラムでは使用し"
9975 "ないこと。 POSIX.1-2008 は、 B<sighold>(), B<sigignore>(), B<sigpause>(), "
9976 "B<sigrelse>(), B<sigset>()  を廃止予定としている。 代わりに、 B<sigaction>"
9977 "(2), B<sigprocmask>(2), B<pthread_sigmask>(3), B<sigsuspend>(2)  の使用が推奨"
9978 "されている。"
9979
9980 #. type: Plain text
9981 #: build/C/man3/sigset.3:192
9982 msgid "These functions appeared in glibc version 2.1."
9983 msgstr "これらの関数は glibc 2.1 で登場した。"
9984
9985 #. type: Plain text
9986 #: build/C/man3/sigset.3:198
9987 msgid ""
9988 "The I<sighandler_t> type is a GNU extension; it is used on this page only to "
9989 "make the B<sigset>()  prototype more easily readable."
9990 msgstr ""
9991 "I<sighandler_t> 型は GNU による拡張であり、この man page で B<sigset>()  のプ"
9992 "ロトタイプをより読みやすくするために使われているだけである。"
9993
9994 #. type: Plain text
9995 #: build/C/man3/sigset.3:206
9996 msgid ""
9997 "The B<sigset>()  function provides reliable signal handling semantics (as "
9998 "when calling B<sigaction>(2)  with I<sa_mask> equal to 0)."
9999 msgstr ""
10000 "関数 B<sigset>()  は信頼性のあるシグナル処理機構を提供する (I<sa_mask> を 0 "
10001 "で B<sigaction>(2)  を呼び出したときと同様)。"
10002
10003 #. type: Plain text
10004 #: build/C/man3/sigset.3:224
10005 msgid ""
10006 "On System V, the B<signal>()  function provides unreliable semantics (as "
10007 "when calling B<sigaction>(2)  with I<sa_mask> equal to I<SA_RESETHAND | "
10008 "SA_NODEFER>).  On BSD, B<signal>()  provides reliable semantics.  "
10009 "POSIX.1-2001 leaves these aspects of B<signal>()  unspecified.  See B<signal>"
10010 "(2)  for further details."
10011 msgstr ""
10012 "System V では、関数 B<signal>()  が提供する処理機構は信頼性のないものである "
10013 "(I<sa_mask> を I<SA_RESETHAND | SA_NODEFER> として B<sigaction>(2)  を呼び出"
10014 "したときと同様)。 BSD では、 B<signal>()  は信頼性のある処理機構を提供する。 "
10015 "POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままとなっている。 さら"
10016 "なる詳細については B<signal>(2)  を参照。"
10017
10018 #. type: Plain text
10019 #: build/C/man3/sigset.3:232 build/C/man3/sigvec.3:252
10020 msgid ""
10021 "In order to wait for a signal, BSD and System V both provided a function "
10022 "named B<sigpause>(3), but this function has a different argument on the two "
10023 "systems.  See B<sigpause>(3)  for details."
10024 msgstr ""
10025 "BSD と System V のどちらのシステムでも シグナルを待つために、 B<sigpause>"
10026 "(3)  という名前の関数が提供されているが、 この関数の引き数は両方のシステムで"
10027 "異なる。 詳細は B<sigpause>(3)  を参照。"
10028
10029 #. type: Plain text
10030 #: build/C/man3/sigset.3:241
10031 msgid ""
10032 "In versions of glibc before 2.2, B<sigset>()  did not unblock I<sig> if "
10033 "I<disp> was specified as a value other than B<SIG_HOLD>."
10034 msgstr ""
10035 "2.2 より前のバージョンの glibc では、 I<disp> に B<SIG_HOLD> 以外の値が指定さ"
10036 "れた場合、 I<sig> のブロック解除を行っていなかった。"
10037
10038 #.  See http://sourceware.org/bugzilla/show_bug.cgi?id=1951
10039 #. type: Plain text
10040 #: build/C/man3/sigset.3:266
10041 msgid ""
10042 "In versions of glibc before 2.5, B<sigset>()  does not correctly return the "
10043 "previous disposition of the signal in two cases.  First, if I<disp> is "
10044 "specified as B<SIG_HOLD>, then a successful B<sigset>()  always returns "
10045 "B<SIG_HOLD>.  Instead, it should return the previous disposition of the "
10046 "signal (unless the signal was blocked, in which case B<SIG_HOLD> should be "
10047 "returned).  Second, if the signal is currently blocked, then the return "
10048 "value of a successful B<sigset>()  should be B<SIG_HOLD>.  Instead, the "
10049 "previous disposition of the signal is returned.  These problems have been "
10050 "fixed since glibc 2.5."
10051 msgstr ""
10052 "2.3.5 以前の全てのバージョンの glibc では、 B<sigset>()  が変更前のシグナルの"
10053 "動作を正しく返さない場合が 2つある。 一つめは、 I<disp> に B<SIG_HOLD> が指定"
10054 "されると、成功した場合 B<sigset>()  は常に B<SIG_HOLD> を返すことである。 正"
10055 "しくは、(シグナルがブロックされていなかった場合には)  変更前のシグナルの動作"
10056 "を返すべきである (シグナルがブロックされていた場合には、 B<SIG_HOLD> が返され"
10057 "る)。 もう一つは、シグナルが現在ブロックされている場合には、 成功した場合の "
10058 "B<sigset>()  の返り値は B<SIG_HOLD> になるべきであるが、実際には 変更前のシグ"
10059 "ナルの動作が返されることである。 これらの問題は glibc 2.5 以降で修正されてい"
10060 "る。"
10061
10062 #. type: Plain text
10063 #: build/C/man3/sigset.3:276
10064 msgid ""
10065 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10066 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
10067 msgstr ""
10068 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10069 "B<raise>(3), B<sigpause>(3), B<sigvec>(3), B<signal>(7)"
10070
10071 #. type: TH
10072 #: build/C/man3/sigsetops.3:31
10073 #, no-wrap
10074 msgid "SIGSETOPS"
10075 msgstr "SIGSETOPS"
10076
10077 #. type: TH
10078 #: build/C/man3/sigsetops.3:31
10079 #, fuzzy, no-wrap
10080 #| msgid "2013-09-04"
10081 msgid "2013-09-24"
10082 msgstr "2013-09-04"
10083
10084 #. type: Plain text
10085 #: build/C/man3/sigsetops.3:35
10086 #, fuzzy
10087 #| msgid ""
10088 #| "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX signal "
10089 #| "set operations."
10090 msgid ""
10091 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX signal "
10092 "set operations"
10093 msgstr ""
10094 "sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - POSIX シグナル集"
10095 "合の操作"
10096
10097 #. type: Plain text
10098 #: build/C/man3/sigsetops.3:39
10099 msgid "B<int sigemptyset(sigset_t *>I<set>B<);>"
10100 msgstr "B<int sigemptyset(sigset_t *>I<set>B<);>"
10101
10102 #. type: Plain text
10103 #: build/C/man3/sigsetops.3:41
10104 msgid "B<int sigfillset(sigset_t *>I<set>B<);>"
10105 msgstr "B<int sigfillset(sigset_t *>I<set>B<);>"
10106
10107 #. type: Plain text
10108 #: build/C/man3/sigsetops.3:43
10109 msgid "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10110 msgstr "B<int sigaddset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10111
10112 #. type: Plain text
10113 #: build/C/man3/sigsetops.3:45
10114 msgid "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10115 msgstr "B<int sigdelset(sigset_t *>I<set>B<, int >I<signum>B<);>"
10116
10117 #. type: Plain text
10118 #: build/C/man3/sigsetops.3:47
10119 msgid "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
10120 msgstr "B<int sigismember(const sigset_t *>I<set>B<, int >I<signum>B<);>"
10121
10122 #. type: Plain text
10123 #: build/C/man3/sigsetops.3:59
10124 msgid ""
10125 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10126 "B<sigismember>():"
10127 msgstr ""
10128 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>(), "
10129 "B<sigismember>():"
10130
10131 #. type: Plain text
10132 #: build/C/man3/sigsetops.3:61
10133 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10134 msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10135
10136 #. type: Plain text
10137 #: build/C/man3/sigsetops.3:65
10138 msgid "These functions allow the manipulation of POSIX signal sets."
10139 msgstr "これらの関数は POSIX シグナル集合(signal set)を操作するため使用する。"
10140
10141 #. type: Plain text
10142 #: build/C/man3/sigsetops.3:70
10143 msgid ""
10144 "B<sigemptyset>()  initializes the signal set given by I<set> to empty, with "
10145 "all signals excluded from the set."
10146 msgstr ""
10147 "B<sigemptyset>()  は I<set> で与えられたシグナル集合を空に初期化し、シグナル"
10148 "が一つも 含まれていない状態にする。"
10149
10150 #. type: Plain text
10151 #: build/C/man3/sigsetops.3:75
10152 msgid "B<sigfillset>()  initializes I<set> to full, including all signals."
10153 msgstr ""
10154 "B<sigfillset>()  は I<set> で与えられたシグナル集合が全てのシグナルを含むよう"
10155 "にする。"
10156
10157 #. type: Plain text
10158 #: build/C/man3/sigsetops.3:83
10159 msgid ""
10160 "B<sigaddset>()  and B<sigdelset>()  add and delete respectively signal "
10161 "I<signum> from I<set>."
10162 msgstr ""
10163 "B<sigaddset>()  と B<sigdelset>()  は I<set> に I<signum> シグナルをそれぞれ"
10164 "加えたり、削除したりする。"
10165
10166 #. type: Plain text
10167 #: build/C/man3/sigsetops.3:89
10168 msgid "B<sigismember>()  tests whether I<signum> is a member of I<set>."
10169 msgstr ""
10170 "B<sigismember>()  は I<signum> が I<set> に含まれているかどうかをテストする。"
10171
10172 #. type: Plain text
10173 #: build/C/man3/sigsetops.3:107
10174 msgid ""
10175 "Objects of type I<sigset_t> must be initialized by a call to either "
10176 "B<sigemptyset>()  or B<sigfillset>()  before being passed to the functions "
10177 "B<sigaddset>(), B<sigdelset>()  and B<sigismember>()  or the additional "
10178 "glibc functions described below (B<sigisemptyset>(), B<sigandset>(), and "
10179 "B<sigorset>()).  The results are undefined if this is not done."
10180 msgstr ""
10181 "I<sigset_t> 型のオブジェクトは、関数 B<sigaddset>(), B<sigdelset>(), "
10182 "B<sigismember>()  や後述の glibc の追加関数 (B<sigisemptyset>(), B<sigandset>"
10183 "(), B<sigorset>())  に渡す前に、 B<sigemptyset>()  か B<sigfillset>()  を呼び"
10184 "出して初期化しなければならない。 初期化しなかった場合の結果は未定義である。"
10185
10186 #. type: Plain text
10187 #: build/C/man3/sigsetops.3:114
10188 msgid ""
10189 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), and B<sigdelset>()  "
10190 "return 0 on success and -1 on error."
10191 msgstr ""
10192 "B<sigemptyset>(), B<sigfillset>(), B<sigaddset>(), B<sigdelset>()  は成功すれ"
10193 "ば 0 を、エラーの場合は -1 を返す。"
10194
10195 #. type: Plain text
10196 #: build/C/man3/sigsetops.3:126
10197 msgid ""
10198 "B<sigismember>()  returns 1 if I<signum> is a member of I<set>, 0 if "
10199 "I<signum> is not a member, and -1 on error.  On error, these functions set "
10200 "I<errno> to indicate the cause."
10201 msgstr ""
10202 "B<sigismember>()  は I<signum> が I<set> のメンバの場合 1 を返し、メンバでな"
10203 "い場合 0 を返す。 エラーの場合は -1 を返し、 I<errno> にエラーの原因を示す値"
10204 "を設定する。"
10205
10206 #. type: Plain text
10207 #: build/C/man3/sigsetops.3:131
10208 msgid "I<sig> is not a valid signal."
10209 msgstr "I<sig> が有効なシグナルではない。"
10210
10211 #. type: SS
10212 #: build/C/man3/sigsetops.3:134
10213 #, no-wrap
10214 msgid "Glibc notes"
10215 msgstr "glibc での注意"
10216
10217 #. type: Plain text
10218 #: build/C/man3/sigsetops.3:140
10219 #, fuzzy
10220 #| msgid ""
10221 #| "If the B<_GNU_SOURCE> feature test macro is defined, then I<E<lt>signal."
10222 #| "hE<gt>> exposes three other functions for manipulating signal sets."
10223 msgid ""
10224 "If the B<_GNU_SOURCE> feature test macro is defined, then I<E<lt>signal."
10225 "hE<gt>> exposes three other functions for manipulating signal sets:"
10226 msgstr ""
10227 "B<_GNU_SOURCE> 機能検査マクロが定義されていると、 I<E<lt>signal.hE<gt>> でシ"
10228 "グナル集合を操作する 3つの関数が追加で公開される。"
10229
10230 #. type: Plain text
10231 #: build/C/man3/sigsetops.3:147
10232 #, no-wrap
10233 msgid ""
10234 "B<int sigisemptyset(const sigset_t *>I<set>B<);>\n"
10235 "B<int sigorset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10236 "B<              const sigset_t *>I<right>B<);>\n"
10237 "B<int sigandset(sigset_t *>I<dest>B<, const sigset_t *>I<left>B<,>\n"
10238 "B<              const sigset_t *>I<right>B<);>\n"
10239 msgstr ""
10240
10241 #. type: Plain text
10242 #: build/C/man3/sigsetops.3:153
10243 #, fuzzy
10244 #| msgid "returns 1 if I<set> contains no signals, and 0 otherwise."
10245 msgid ""
10246 "B<sigisemptyset>()  returns 1 if I<set> contains no signals, and 0 otherwise."
10247 msgstr ""
10248 "I<set> にシグナルが一つも含まれていなければ 1 を返し、 それ以外は 0 を返す。"
10249
10250 #. type: Plain text
10251 #: build/C/man3/sigsetops.3:169
10252 msgid ""
10253 "B<sigorset>()  places the union of the sets I<left> and I<right> in "
10254 "I<dest>.  B<sigandset>()  places the intersection of the sets I<left> and "
10255 "I<right> in I<dest>.  Both functions return 0 on success, and -1 on failure."
10256 msgstr ""
10257
10258 #. type: Plain text
10259 #: build/C/man3/sigsetops.3:172
10260 msgid ""
10261 "These functions are nonstandard (a few other systems provide similar "
10262 "functions) and their use should be avoided in portable applications."
10263 msgstr ""
10264 "これらの関数は非標準であり、(他にも同様の関数を提供しているシステムも いくつ"
10265 "かはあるが) 移植性を考慮したアプリケーションでは使用を避けるべき である。"
10266
10267 #. type: Plain text
10268 #: build/C/man3/sigsetops.3:177
10269 msgid "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10270 msgstr "B<sigaction>(2), B<sigpending>(2), B<sigprocmask>(2), B<sigsuspend>(2)"
10271
10272 #. type: TH
10273 #: build/C/man2/sigsuspend.2:29
10274 #, no-wrap
10275 msgid "SIGSUSPEND"
10276 msgstr "SIGSUSPEND"
10277
10278 #. type: Plain text
10279 #: build/C/man2/sigsuspend.2:32
10280 msgid "sigsuspend - wait for a signal"
10281 msgstr "sigsuspend - シグナルを待つ"
10282
10283 #. type: Plain text
10284 #: build/C/man2/sigsuspend.2:36
10285 msgid "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10286 msgstr "B<int sigsuspend(const sigset_t *>I<mask>B<);>"
10287
10288 #. type: Plain text
10289 #: build/C/man2/sigsuspend.2:45
10290 msgid ""
10291 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10292 "_POSIX_SOURCE"
10293 msgstr ""
10294 "B<sigsuspend>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
10295 "_POSIX_SOURCE"
10296
10297 #. type: Plain text
10298 #: build/C/man2/sigsuspend.2:53
10299 msgid ""
10300 "B<sigsuspend>()  temporarily replaces the signal mask of the calling process "
10301 "with the mask given by I<mask> and then suspends the process until delivery "
10302 "of a signal whose action is to invoke a signal handler or to terminate a "
10303 "process."
10304 msgstr ""
10305 "B<sigsuspend>()  は、呼び出し元プロセスのシグナルマスクを I<mask> で指定され"
10306 "たマスクに一時的に置き換え、 シグナルハンドラの起動もしくはプロセスの終了がア"
10307 "クションとして 設定されたシグナルが配送されるまで、そのプロセスを停止する。"
10308
10309 #. type: Plain text
10310 #: build/C/man2/sigsuspend.2:62
10311 msgid ""
10312 "If the signal terminates the process, then B<sigsuspend>()  does not "
10313 "return.  If the signal is caught, then B<sigsuspend>()  returns after the "
10314 "signal handler returns, and the signal mask is restored to the state before "
10315 "the call to B<sigsuspend>()."
10316 msgstr ""
10317 "シグナルがプロセスを終了させるものの場合、 B<sigsuspend>()  は返らない。シグ"
10318 "ナルが捕捉された場合、 シグナルハンドラの処理が終わった後に B<sigsuspend>()  "
10319 "は返り、シグナルマスクは B<sigsuspend>()  が呼び出される前の状態に復元され"
10320 "る。"
10321
10322 #. type: Plain text
10323 #: build/C/man2/sigsuspend.2:70
10324 msgid ""
10325 "It is not possible to block B<SIGKILL> or B<SIGSTOP>; specifying these "
10326 "signals in I<mask>, has no effect on the process's signal mask."
10327 msgstr ""
10328 "B<SIGKILL> と B<SIGSTOP> を禁止 (block) することはできない; これらのシグナル"
10329 "を I<mask> に指定しても、プロセスのシグナルマスクは影響を受けない。"
10330
10331 #. type: Plain text
10332 #: build/C/man2/sigsuspend.2:76
10333 #, fuzzy
10334 #| msgid ""
10335 #| "B<sigsuspend>()  always returns -1, with I<errno> set to inndicate the "
10336 #| "error (normally, B<EINTR>)."
10337 msgid ""
10338 "B<sigsuspend>()  always returns -1, with I<errno> set to indicate the error "
10339 "(normally, B<EINTR>)."
10340 msgstr ""
10341 "B<sigsuspend>() は常に -1 を返し、 I<errno> にエラーの原因を示す値 (通常は "
10342 "B<EINTR>) を設定する。"
10343
10344 #. type: Plain text
10345 #: build/C/man2/sigsuspend.2:81
10346 msgid ""
10347 "I<mask> points to memory which is not a valid part of the process address "
10348 "space."
10349 msgstr ""
10350 "I<mask> が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。"
10351
10352 #. type: Plain text
10353 #: build/C/man2/sigsuspend.2:84
10354 msgid "The call was interrupted by a signal."
10355 msgstr "システムコールはシグナルにより割り込まれた。"
10356
10357 #. type: Plain text
10358 #: build/C/man2/sigsuspend.2:104
10359 msgid ""
10360 "Normally, B<sigsuspend>()  is used in conjunction with B<sigprocmask>(2)  in "
10361 "order to prevent delivery of a signal during the execution of a critical "
10362 "code section.  The caller first blocks the signals with B<sigprocmask>(2).  "
10363 "When the critical code has completed, the caller then waits for the signals "
10364 "by calling B<sigsuspend>()  with the signal mask that was returned by "
10365 "B<sigprocmask>(2)  (in the I<oldset> argument)."
10366 msgstr ""
10367 "B<sigsuspend>()  は、通常、クリティカル・コード・セクション (critical code "
10368 "section) の 実行中にシグナルが配送されるのを防止するために、 B<sigprocmask>"
10369 "(2)  と組み合わせて使用される。 まず最初に、呼び出し元は B<sigprocmask>(2)  "
10370 "を使ってシグナルを禁止する。 クリティカル・コードが完了すると、呼び出し元は "
10371 "B<sigprocmask>(2)  が (I<oldset> 引き数で) 返すシグナルマスクを指定して "
10372 "B<sigsuspend>()  を呼び出すことで、クリティカル・コード実行中に発生した シグ"
10373 "ナルを待つことができる。"
10374
10375 #. type: Plain text
10376 #: build/C/man2/sigsuspend.2:118
10377 msgid ""
10378 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10379 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10380 msgstr ""
10381 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10382 "B<sigwaitinfo>(2), B<sigsetops>(3), B<sigwait>(3), B<signal>(7)"
10383
10384 #. type: TH
10385 #: build/C/man3/sigvec.3:26
10386 #, no-wrap
10387 msgid "SIGVEC"
10388 msgstr "SIGVEC"
10389
10390 #. type: TH
10391 #: build/C/man3/sigvec.3:26
10392 #, fuzzy, no-wrap
10393 #| msgid "2009-02-20"
10394 msgid "2014-02-18"
10395 msgstr "2009-02-20"
10396
10397 #. type: Plain text
10398 #: build/C/man3/sigvec.3:29
10399 msgid "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD signal API"
10400 msgstr "sigvec, sigblock, sigsetmask, siggetmask, sigmask - BSD 版シグナル API"
10401
10402 #. type: Plain text
10403 #: build/C/man3/sigvec.3:33
10404 msgid ""
10405 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
10406 "*>I<ovec>B<);>"
10407 msgstr ""
10408 "B<int sigvec(int >I<sig>B<, struct sigvec *>I<vec>B<, struct sigvec "
10409 "*>I<ovec>B<);>"
10410
10411 #. type: Plain text
10412 #: build/C/man3/sigvec.3:35
10413 msgid "B<int sigmask(int >I<signum>B<);>"
10414 msgstr "B<int sigmask(int >I<signum>B<);>"
10415
10416 #. type: Plain text
10417 #: build/C/man3/sigvec.3:37
10418 msgid "B<int sigblock(int >I<mask>B<);>"
10419 msgstr "B<int sigblock(int >I<mask>B<);>"
10420
10421 #. type: Plain text
10422 #: build/C/man3/sigvec.3:39
10423 msgid "B<int sigsetmask(int >I<mask>B<);>"
10424 msgstr "B<int sigsetmask(int >I<mask>B<);>"
10425
10426 #. type: Plain text
10427 #: build/C/man3/sigvec.3:41
10428 msgid "B<int siggetmask(void);>"
10429 msgstr "B<int siggetmask(void);>"
10430
10431 #. type: Plain text
10432 #: build/C/man3/sigvec.3:49
10433 msgid "All functions shown above: _BSD_SOURCE"
10434 msgstr "上記の全ての関数: _BSD_SOURCE"
10435
10436 #. type: Plain text
10437 #: build/C/man3/sigvec.3:56
10438 msgid ""
10439 "These functions are provided in glibc as a compatibility interface for "
10440 "programs that make use of the historical BSD signal API.  This API is "
10441 "obsolete: new applications should use the POSIX signal API (B<sigaction>(2), "
10442 "B<sigprocmask>(2), etc.)."
10443 msgstr ""
10444 "これらの関数は、昔ながらの BSD 版シグナル API を使用しているプログラム に対し"
10445 "て互換性のあるインタフェースを glibc で提供するものである。 この API は過去の"
10446 "ものであり、新しいアプリケーションでは POSIX シグナル API (B<sigaction>(2), "
10447 "B<sigprocmask>(2)  など) を使用すべきである。"
10448
10449 #. type: Plain text
10450 #: build/C/man3/sigvec.3:81
10451 #, fuzzy
10452 #| msgid ""
10453 #| "The B<sigvec>()  function sets and/or gets the disposition of the signal "
10454 #| "I<sig> (like the POSIX B<sigaction>(2)).  If I<vec> is not NULL, it "
10455 #| "points to a I<sigvec> structure that defines the new disposition for "
10456 #| "I<sig>.  If I<ovec> is not NULL, it points to a I<sigvec> structure that "
10457 #| "is used to return the previous disposition of I<sig>.  To obtain the "
10458 #| "current disposition of I<sig> without changing it, specify NULL for "
10459 #| "I<vec>, and a non-NULL pointer for I<ovec>."
10460 msgid ""
10461 "The B<sigvec>()  function sets and/or gets the disposition of the signal "
10462 "I<sig> (like the POSIX B<sigaction>(2)).  If I<vec> is not NULL, it points "
10463 "to a I<sigvec> structure that defines the new disposition for I<sig>.  If "
10464 "I<ovec> is not NULL, it points to a I<sigvec> structure that is used to "
10465 "return the previous disposition of I<sig>.  To obtain the current "
10466 "disposition of I<sig> without changing it, specify NULL for I<vec>, and a "
10467 "non-null pointer for I<ovec>."
10468 msgstr ""
10469 "関数 B<sigvec>()  は、(POSIX の B<sigaction>(2)  と同様に) シグナル I<sig> の"
10470 "動作の設定・取得を行う。 I<vec> は、NULL 以外の場合、 I<sig> の新しい動作を定"
10471 "義した I<sigvec> 構造体へのポインタである。 I<ovec> は、NULL 以外の場合、 "
10472 "I<sig> の変更前の動作を返すために使用される I<sigvec> 構造体へのポインタであ"
10473 "る。 I<sig> の動作を変更せずに現在の動作を取得するためには、 I<vec> に NULL "
10474 "を指定し、 I<ovec> に NULL でないポインタを指定すればよい。"
10475
10476 #. type: Plain text
10477 #: build/C/man3/sigvec.3:91
10478 msgid "The I<sigvec> structure has the following form:"
10479 msgstr "I<sigvec> 構造体は以下の通りである:"
10480
10481 #. type: Plain text
10482 #: build/C/man3/sigvec.3:99
10483 #, no-wrap
10484 msgid ""
10485 "struct sigvec {\n"
10486 "    void (*sv_handler)(int); /* Signal disposition */\n"
10487 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10488 "    int    sv_flags;         /* Flags */\n"
10489 "};\n"
10490 msgstr ""
10491 "struct sigvec {\n"
10492 "    void (*sv_handler)(int); /* Signal disposition */\n"
10493 "    int    sv_mask;          /* Signals to be blocked in handler */\n"
10494 "    int    sv_flags;         /* Flags */\n"
10495 "};\n"
10496
10497 #. type: Plain text
10498 #: build/C/man3/sigvec.3:110
10499 msgid ""
10500 "The I<sv_handler> field specifies the disposition of the signal, and is "
10501 "either: the address of a signal handler function; B<SIG_DFL>, meaning the "
10502 "default disposition applies for the signal; or B<SIG_IGN>, meaning that the "
10503 "signal is ignored."
10504 msgstr ""
10505 "I<sv_handler> フィールドはシグナルの動作を指定するもので、 シグナルハンドラ関"
10506 "数のアドレスか、 B<SIG_DFL> と B<SIG_IGN> のいずれかを指定できる。 "
10507 "B<SIG_DFL> はシグナルに適用されるデフォルトの動作を意味し、 B<SIG_IGN> はシグ"
10508 "ナルを無視することを意味する。"
10509
10510 #. type: Plain text
10511 #: build/C/man3/sigvec.3:124
10512 msgid ""
10513 "If I<sv_handler> specifies the address of a signal handler, then I<sv_mask> "
10514 "specifies a mask of signals that are to be blocked while the handler is "
10515 "executing.  In addition, the signal for which the handler is invoked is also "
10516 "blocked.  Attempts to block B<SIGKILL> or B<SIGSTOP> are silently ignored."
10517 msgstr ""
10518 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_mask> はハン"
10519 "ドラが実行中にブロックされるべきシグナルのマスクを指定する。 また、ハンドラを"
10520 "起動したシグナル自身はブロックされる。 B<SIGKILL> か B<SIGSTOP> をブロックし"
10521 "ようとした場合には、黙って無視される。"
10522
10523 #. type: Plain text
10524 #: build/C/man3/sigvec.3:131
10525 msgid ""
10526 "If I<sv_handler> specifies the address of a signal handler, then the "
10527 "I<sv_flags> field specifies flags controlling what happens when the handler "
10528 "is called.  This field may contain zero or more of the following flags:"
10529 msgstr ""
10530 "I<sv_handler> にシグナルハンドラのアドレスを指定した場合、 I<sv_flags> フィー"
10531 "ルドはハンドラが呼ばれた際の挙動を制御するフラグを指定する。 このフィールドに"
10532 "は、0 か、以下のフラグを 1個以上指定できる:"
10533
10534 #. type: TP
10535 #: build/C/man3/sigvec.3:131
10536 #, no-wrap
10537 msgid "B<SV_INTERRUPT>"
10538 msgstr "B<SV_INTERRUPT>"
10539
10540 #. type: Plain text
10541 #: build/C/man3/sigvec.3:139
10542 msgid ""
10543 "If the signal handler interrupts a blocking system call, then upon return "
10544 "from the handler the system call will not be restarted: instead it will fail "
10545 "with the error B<EINTR>.  If this flag is not specified, then system calls "
10546 "are restarted by default."
10547 msgstr ""
10548 "シグナルハンドラが停止中のシステムコールを中断した場合、 ハンドラから復帰して"
10549 "も、システムコールは再開されず、 エラー B<EINTR> で失敗する。 このフラグを指"
10550 "定しなかった場合、システムコールは デフォルトで再開される。"
10551
10552 #. type: TP
10553 #: build/C/man3/sigvec.3:139
10554 #, no-wrap
10555 msgid "B<SV_RESETHAND>"
10556 msgstr "B<SV_RESETHAND>"
10557
10558 #. type: Plain text
10559 #: build/C/man3/sigvec.3:148
10560 msgid ""
10561 "Reset the disposition of the signal to the default before calling the signal "
10562 "handler.  If this flag is not specified, then the handler remains "
10563 "established until explicitly removed by a later call to B<sigvec>()  or "
10564 "until the process performs an B<execve>(2)."
10565 msgstr ""
10566 "シグナルハンドラを呼び出す前にシグナルの動作を デフォルトにリセットする。 こ"
10567 "のフラグを指定しなかった場合、もう一度 B<sigvec>()  を呼び出して明示的に削除"
10568 "されるか、プロセスが B<execve>(2)  を実行するまで、ハンドラは設定されたままと"
10569 "なる。"
10570
10571 #. type: TP
10572 #: build/C/man3/sigvec.3:148
10573 #, no-wrap
10574 msgid "B<SV_ONSTACK>"
10575 msgstr "B<SV_ONSTACK>"
10576
10577 #. type: Plain text
10578 #: build/C/man3/sigvec.3:155
10579 msgid ""
10580 "Handle the signal on the alternate signal stack (historically established "
10581 "under BSD using the obsolete B<sigstack>()  function; the POSIX replacement "
10582 "is B<sigaltstack>(2))."
10583 msgstr ""
10584 "代替シグナルスタック上でシグナルハンドラを実行する (歴史的に、BSD では代替シ"
10585 "グナルスタックは廃止された関数 B<sigstack>()  を使って設定する。POSIX では、"
10586 "代わりに B<sigaltstack>(2)  を使用する)。"
10587
10588 #. type: Plain text
10589 #: build/C/man3/sigvec.3:165
10590 msgid ""
10591 "The B<sigmask>()  function constructs and returns a \"signal mask\" for "
10592 "I<signum>.  For example, we can initialize the I<vec.sv_mask> field given to "
10593 "B<sigvec>()  using code such as the following:"
10594 msgstr ""
10595 "関数 B<sigmask>()  は I<signum> に対する「シグナルマスク」を構成して返す。 例"
10596 "えば、以下のようなコードを使うと、 B<sigvec>()  に渡す I<vec.sv_mask> を初期"
10597 "化できる。"
10598
10599 #. type: Plain text
10600 #: build/C/man3/sigvec.3:170
10601 #, fuzzy, no-wrap
10602 #| msgid ""
10603 #| "    vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT);\n"
10604 #| "                /* Block SIGQUIT and SIGABRT during\n"
10605 #| "                   handler execution */\n"
10606 msgid ""
10607 "    vec.sv_mask = sigmask(SIGQUIT) | sigmask(SIGABRT);\n"
10608 "                /* Block SIGQUIT and SIGABRT during\n"
10609 "                   handler execution */\n"
10610 msgstr ""
10611 "    vec.sv_mask = sigmask(SIGQUIT) | sigpause(SIGABRT);\n"
10612 "                /* Block SIGQUIT and SIGABRT during\n"
10613 "                   handler execution */\n"
10614
10615 #. type: Plain text
10616 #: build/C/man3/sigvec.3:185
10617 msgid ""
10618 "The B<sigblock>()  function adds the signals in I<mask> to the process's "
10619 "signal mask (like POSIX I<sigprocmask(SIG_BLOCK)>), and returns the "
10620 "process's previous signal mask.  Attempts to block B<SIGKILL> or B<SIGSTOP> "
10621 "are silently ignored."
10622 msgstr ""
10623 "B<sigblock>()  関数は、 I<mask> にあるシグナルをプロセスのシグナルマスクに追"
10624 "加し (POSIX の I<sigprocmask(SIG_BLOCK)> と同様)、変更前のプロセスのシグナル"
10625 "マスクを返す。 B<SIGKILL> や B<SIGSTOP> をブロックしようとした場合には、黙っ"
10626 "て無視される。"
10627
10628 #. type: Plain text
10629 #: build/C/man3/sigvec.3:193
10630 msgid ""
10631 "The B<sigsetmask>()  function sets the process's signal mask to the value "
10632 "given in I<mask> (like POSIX I<sigprocmask(SIG_SETMASK)>), and returns the "
10633 "process's previous signal mask."
10634 msgstr ""
10635 "B<sigsetmask>()  関数はプロセスのシグナルマスクを I<mask> で指定された値に設"
10636 "定し (POSIX の I<sigprocmask(SIG_SETMASK)> と同様)、変更前のプロセスのシグナ"
10637 "ルマスクを返す。"
10638
10639 #. type: Plain text
10640 #: build/C/man3/sigvec.3:199
10641 msgid ""
10642 "The B<siggetmask>()  function returns the process's current signal mask.  "
10643 "This call is equivalent to I<sigblock(0)>."
10644 msgstr ""
10645 "B<siggetmask>()  関数はプロセスの現在のシグナルマスクを返す。この関数は "
10646 "I<sigblock(0)> と等価である。"
10647
10648 #. type: Plain text
10649 #: build/C/man3/sigvec.3:205
10650 msgid ""
10651 "The B<sigvec>()  function returns 0 on success; on error, it returns -1 and "
10652 "sets I<errno> to indicate the error."
10653 msgstr ""
10654 "B<sigvec>()  関数は成功すると 0 を返す。エラーの場合、-1 を返し、 I<errno> に"
10655 "エラーを示す値をセットする。"
10656
10657 #. type: Plain text
10658 #: build/C/man3/sigvec.3:211
10659 msgid ""
10660 "The B<sigblock>()  and B<sigsetmask>()  functions return the previous signal "
10661 "mask."
10662 msgstr "B<sigblock>()  と B<sigsetmask>()  は変更前のシグナルマスクを返す。"
10663
10664 #. type: Plain text
10665 #: build/C/man3/sigvec.3:216
10666 msgid "The B<sigmask>()  function returns the signal mask for I<signum>."
10667 msgstr "B<sigmask>()  関数は I<signum> のシグナルマスクを返す。"
10668
10669 #. type: Plain text
10670 #: build/C/man3/sigvec.3:221
10671 msgid "See the ERRORS under B<sigaction>(2)  and B<sigprocmask>(2)."
10672 msgstr "B<sigaction>(2)  と B<sigprocmask>(2)  の「エラー」の節を参照。"
10673
10674 #. type: Plain text
10675 #: build/C/man3/sigvec.3:227
10676 msgid ""
10677 "All of these functions were in 4.3BSD, except B<siggetmask>(), whose origin "
10678 "is unclear.  These functions are obsolete: do not use them in new programs."
10679 msgstr ""
10680 "これらの関数のうち B<siggetmask>()  以外の全ては 4.3BSD にあった。 "
10681 "B<siggetmask>()  の出自ははっきりしない。 これらの関数は廃止予定であり、新し"
10682 "いプログラムでは使用しないこと。"
10683
10684 #. type: Plain text
10685 #: build/C/man3/sigvec.3:244
10686 msgid ""
10687 "On 4.3BSD, the B<signal>()  function provided reliable semantics (as when "
10688 "calling B<sigvec>()  with I<vec.sv_mask> equal to 0).  On System V, B<signal>"
10689 "()  provides unreliable semantics.  POSIX.1-2001 leaves these aspects of "
10690 "B<signal>()  unspecified.  See B<signal>(2)  for further details."
10691 msgstr ""
10692 "4.3BSD では、信頼性のあるシグナル処理機構を提供する (I<vec.sv_mask> を 0 で "
10693 "B<sigvec>()  を呼び出したときと同様)。 System V が提供する処理機構は信頼性の"
10694 "ないものである。 POSIX.1-2001 では、 B<signal>()  のこの点は規定しないままと"
10695 "なっている。 さらなる詳細については B<signal>(2)  を参照。"
10696
10697 #. type: Plain text
10698 #: build/C/man3/sigvec.3:262
10699 msgid ""
10700 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10701 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10702 msgstr ""
10703 "B<kill>(2), B<pause>(2), B<sigaction>(2), B<signal>(2), B<sigprocmask>(2), "
10704 "B<raise>(3), B<sigpause>(3), B<sigset>(3), B<signal>(7)"
10705
10706 #. type: TH
10707 #: build/C/man3/sigwait.3:26
10708 #, no-wrap
10709 msgid "SIGWAIT"
10710 msgstr "SIGWAIT"
10711
10712 #. type: Plain text
10713 #: build/C/man3/sigwait.3:29
10714 msgid "sigwait - wait for a signal"
10715 msgstr "sigwait - シグナルを待つ"
10716
10717 #. type: Plain text
10718 #: build/C/man3/sigwait.3:34
10719 #, no-wrap
10720 msgid "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10721 msgstr "B< int sigwait(const sigset_t *>I<set>B<, int *>I<sig>B<);>\n"
10722
10723 #. type: Plain text
10724 #: build/C/man3/sigwait.3:44
10725 msgid ""
10726 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10727 msgstr ""
10728 "B<sigwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
10729
10730 #. type: Plain text
10731 #: build/C/man3/sigwait.3:56
10732 msgid ""
10733 "The B<sigwait>()  function suspends execution of the calling thread until "
10734 "one of the signals specified in the signal set I<set> becomes pending.  The "
10735 "function accepts the signal (removes it from the pending list of signals), "
10736 "and returns the signal number in I<sig>."
10737 msgstr ""
10738 "B<sigwait>()  関数は、シグナル集合 I<set> で指定されたシグナルの一つが処理待"
10739 "ち (pending) になるまで、 呼び出したスレッドの実行を中断する。 この関数はその"
10740 "シグナルを受け取り (つまり、処理待ちのシグナルのリスト からそのシグナルを削除"
10741 "し)、そのシグナル番号を I<sig> に格納して返す。"
10742
10743 #. type: Plain text
10744 #: build/C/man3/sigwait.3:62
10745 msgid ""
10746 "The operation of B<sigwait>()  is the same as B<sigwaitinfo>(2), except that:"
10747 msgstr ""
10748 "B<sigwait>()  の動作は B<sigwaitinfo>(2)  と同じだが、以下の点が異なる。"
10749
10750 #. type: Plain text
10751 #: build/C/man3/sigwait.3:67
10752 msgid ""
10753 "B<sigwait>()  returns only the signal number, rather than a I<siginfo_t> "
10754 "structure describing the signal."
10755 msgstr ""
10756 "B<sigwait>()  は、シグナルの内容を表す I<siginfo_t> 構造体を返すのではなく、"
10757 "単にシグナル番号を返す。"
10758
10759 #. type: Plain text
10760 #: build/C/man3/sigwait.3:69
10761 msgid "The return values of the two functions are different."
10762 msgstr "返り値が B<sigwaitinfo>(2)  とは異なる。"
10763
10764 #. type: Plain text
10765 #: build/C/man3/sigwait.3:74
10766 msgid ""
10767 "On success, B<sigwait>()  returns 0.  On error, it returns a positive error "
10768 "number (listed in ERRORS)."
10769 msgstr ""
10770 "成功すると、 B<sigwait>()  は 0 を返す。 エラーの場合、(「エラー」の節のリス"
10771 "トにある) 正のエラー番号を返す。"
10772
10773 #.  Does not occur for glibc.
10774 #. type: Plain text
10775 #: build/C/man3/sigwait.3:80
10776 msgid "I<set> contains an invalid signal number."
10777 msgstr "I<set> に無効なシグナル番号が入っている。"
10778
10779 #. type: Plain text
10780 #: build/C/man3/sigwait.3:85
10781 #, fuzzy
10782 #| msgid "The B<sigmask>()  function returns the signal mask for I<signum>."
10783 msgid "The B<sigwait>()  function is thread-safe."
10784 msgstr "B<sigmask>()  関数は I<signum> のシグナルマスクを返す。"
10785
10786 #. type: Plain text
10787 #: build/C/man3/sigwait.3:91
10788 msgid "B<sigwait>()  is implemented using B<sigtimedwait>(2)."
10789 msgstr "B<sigwait>()  は B<sigtimedwait>(2)  を使って実装されている。"
10790
10791 #. type: Plain text
10792 #: build/C/man3/sigwait.3:94
10793 msgid "See B<pthread_sigmask>(3)."
10794 msgstr "B<pthread_sigmask>(3)  を参照。"
10795
10796 #. type: Plain text
10797 #: build/C/man3/sigwait.3:102
10798 msgid ""
10799 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
10800 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
10801 msgstr ""
10802 "B<sigaction>(2), B<signalfd>(2), B<sigpending>(2), B<sigsuspend>(2), "
10803 "B<sigwaitinfo>(2), B<sigsetops>(3), B<signal>(7)"
10804
10805 #. type: TH
10806 #: build/C/man2/sigwaitinfo.2:25
10807 #, no-wrap
10808 msgid "SIGWAITINFO"
10809 msgstr "SIGWAITINFO"
10810
10811 #. type: TH
10812 #: build/C/man2/sigwaitinfo.2:25 build/C/man2/wait.2:49
10813 #, no-wrap
10814 msgid "2013-09-04"
10815 msgstr "2013-09-04"
10816
10817 #. type: Plain text
10818 #: build/C/man2/sigwaitinfo.2:28
10819 msgid "sigwaitinfo, sigtimedwait - synchronously wait for queued signals"
10820 msgstr "sigwaitinfo, sigtimedwait - キューに入れられたシグナルを同期して待つ"
10821
10822 #. type: Plain text
10823 #: build/C/man2/sigwaitinfo.2:33
10824 #, no-wrap
10825 msgid "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
10826 msgstr "B<int sigwaitinfo(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<);>\n"
10827
10828 #. type: Plain text
10829 #: build/C/man2/sigwaitinfo.2:36
10830 #, no-wrap
10831 msgid ""
10832 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
10833 "B<                 const struct timespec *>I<timeout>B<);>\n"
10834 msgstr ""
10835 "B<int sigtimedwait(const sigset_t *>I<set>B<, siginfo_t *>I<info>B<, >\n"
10836 "B<                 const struct timespec *>I<timeout>B<);>\n"
10837
10838 #. type: Plain text
10839 #: build/C/man2/sigwaitinfo.2:46
10840 msgid "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10841 msgstr ""
10842 "B<sigwaitinfo>(), B<sigtimedwait>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
10843
10844 #. type: Plain text
10845 #: build/C/man2/sigwaitinfo.2:56
10846 msgid ""
10847 "B<sigwaitinfo>()  suspends execution of the calling thread until one of the "
10848 "signals in I<set> is pending (If one of the signals in I<set> is already "
10849 "pending for the calling thread, B<sigwaitinfo>()  will return immediately.)"
10850 msgstr ""
10851 "B<sigwaitinfo>()  は I<set> のうちのどれかのシグナルが処理待ちになるまで、 呼"
10852 "び出しスレッドの実行を一時停止する (呼び出しスレッドに対して I<set> のうちの"
10853 "どれかのシグナルが既に待機中 (pending) である場合、 B<sigwaitinfo>()  はすぐ"
10854 "に戻る)。"
10855
10856 #. type: Plain text
10857 #: build/C/man2/sigwaitinfo.2:68
10858 msgid ""
10859 "B<sigwaitinfo>()  removes the signal from the set of pending signals and "
10860 "returns the signal number as its function result.  If the I<info> argument "
10861 "is not NULL, then the buffer that it points to is used to return a structure "
10862 "of type I<siginfo_t> (see B<sigaction>(2))  containing information about the "
10863 "signal."
10864 msgstr ""
10865 "B<sigwaitinfo>()  はそのシグナルを待機中のシグナルの集合から削除し、関数の結"
10866 "果としてシグナル番号を返す。 I<info> 引き数が NULL でない場合、配送されたシグ"
10867 "ナルの情報が入った I<siginfo_t> 型 (B<sigaction>(2)  を参照) の構造体を "
10868 "I<info> が指すバッファに入れて返す。"
10869
10870 #. type: Plain text
10871 #: build/C/man2/sigwaitinfo.2:76
10872 msgid ""
10873 "If multiple signals in I<set> are pending for the caller, the signal that is "
10874 "retrieved by B<sigwaitinfo>()  is determined according to the usual ordering "
10875 "rules; see B<signal>(7)  for further details."
10876 msgstr ""
10877 "呼び出し元に対して I<set> の複数のシグナルが処理待ちの場合、 B<sigwaitinfo>"
10878 "() で取得するシグナルは通常の順序決定ルールに基づいて決定される。 詳細は "
10879 "B<signal>(7) を参照のこと。"
10880
10881 #. type: Plain text
10882 #: build/C/man2/sigwaitinfo.2:88
10883 msgid ""
10884 "B<sigtimedwait>()  operates in exactly the same way as B<sigwaitinfo>()  "
10885 "except that it has an additional argument, I<timeout>, which specifies the "
10886 "interval for which the thread is suspended waiting for a signal.  (This "
10887 "interval will be rounded up to the system clock granularity, and kernel "
10888 "scheduling delays mean that the interval may overrun by a small amount.)  "
10889 "This argument is of the following type:"
10890 msgstr ""
10891 "B<sigtimedwait>() は、 B<sigwaitinfo>() と次の点を除いて全く同じように\n"
10892 "動作する。この関数にはもう 1 つの引き数 I<timeout> があり、シグナル待ち\n"
10893 "でスレッドが一時停止する時間を指定することができる(この時間はシステ\n"
10894 "ムクロックの粒度に切り上げられ、カーネルのスケジューリング遅延により\n"
10895 "少しだけ長くなる可能性がある)。この引き数の型は以下のとおりである:"
10896
10897 #. type: Plain text
10898 #: build/C/man2/sigwaitinfo.2:95
10899 #, no-wrap
10900 msgid ""
10901 "struct timespec {\n"
10902 "    long    tv_sec;         /* seconds */\n"
10903 "    long    tv_nsec;        /* nanoseconds */\n"
10904 "}\n"
10905 msgstr ""
10906 "struct timespec {\n"
10907 "    long    tv_sec;         /* 秒 */\n"
10908 "    long    tv_nsec;        /* ナノ秒 */\n"
10909 "}\n"
10910
10911 #. type: Plain text
10912 #: build/C/man2/sigwaitinfo.2:105
10913 msgid ""
10914 "If both fields of this structure are specified as 0, a poll is performed: "
10915 "B<sigtimedwait>()  returns immediately, either with information about a "
10916 "signal that was pending for the caller, or with an error if none of the "
10917 "signals in I<set> was pending."
10918 msgstr ""
10919 "この構造体の 2 つのフィールドがともに 0 の場合、ポーリングが行われる: "
10920 "B<sigtimedwait>()  は、呼び出し側プロセスに対して 待機しているシグナルの情報"
10921 "を返して戻るか、 I<set> のうちのどのシグナルも待機していない場合はエラーを返"
10922 "して戻る。"
10923
10924 #. type: Plain text
10925 #: build/C/man2/sigwaitinfo.2:114
10926 msgid ""
10927 "On success, both B<sigwaitinfo>()  and B<sigtimedwait>()  return a signal "
10928 "number (i.e., a value greater than zero).  On failure both calls return -1, "
10929 "with I<errno> set to indicate the error."
10930 msgstr ""
10931 "成功した場合、 B<sigwaitinfo>()  と B<sigtimedwait>()  はシグナル番号 (すなわ"
10932 "ち 0 より大きい数) を返す。 失敗した場合、2 つの関数は -1 を返し、 I<errno> "
10933 "はエラーを表す値に設定される。"
10934
10935 #. type: Plain text
10936 #: build/C/man2/sigwaitinfo.2:123
10937 msgid ""
10938 "No signal in I<set> was became pending within the I<timeout> period "
10939 "specified to B<sigtimedwait>()."
10940 msgstr ""
10941 "I<set> のうちのどのシグナルも B<sigtimedwait>()  に指定された I<timeout> の期"
10942 "間内に処理待ちにならなかった。"
10943
10944 #. type: Plain text
10945 #: build/C/man2/sigwaitinfo.2:129
10946 msgid ""
10947 "The wait was interrupted by a signal handler; see B<signal>(7).  (This "
10948 "handler was for a signal other than one of those in I<set>.)"
10949 msgstr ""
10950 "シグナル待ちがシグナルハンドラによって中断 (interrupt) された (このハンドラ"
10951 "は I<set> にあるシグナル以外のものである)。 B<signal>(7)  参照。"
10952
10953 #. type: Plain text
10954 #: build/C/man2/sigwaitinfo.2:133
10955 msgid "I<timeout> was invalid."
10956 msgstr "I<timeout> が不正である。"
10957
10958 #. type: Plain text
10959 #: build/C/man2/sigwaitinfo.2:153
10960 msgid ""
10961 "In normal usage, the calling program blocks the signals in I<set> via a "
10962 "prior call to B<sigprocmask>(2)  (so that the default disposition for these "
10963 "signals does not occur if they become pending between successive calls to "
10964 "B<sigwaitinfo>()  or B<sigtimedwait>())  and does not establish handlers for "
10965 "these signals.  In a multithreaded program, the signal should be blocked in "
10966 "all threads, in order to prevent the signal being treated according to its "
10967 "default disposition in a thread other than the one calling B<sigwaitinfo>()  "
10968 "or B<sigtimedwait>())."
10969 msgstr ""
10970 "通常の使用法では、呼び出し側プロセスはこれらの関数より先に B<sigprocmask>"
10971 "(2)  の呼び出すことにより I<set> に含まれるシグナルをブロックし (そのためにこ"
10972 "れらのシグナルがこの後に続く B<sigwaitinfo>()  や B<sigtimedwait>()  の呼び出"
10973 "しの間に処理待ちになった場合には、デフォルトの動作は行われず)、 これらのシグ"
10974 "ナルに対するハンドラは設定しない。 マルチスレッドプログラムでは、 "
10975 "B<sigwaitinfo>()  や B<sigtimedwait>() を呼び出したスレッド以外のスレッドで、"
10976 "そのシグナルがデフォルトの動作に基いて処理されないように、全てのスレッドで該"
10977 "当シグナルをブロックすべきである。"
10978
10979 #. type: Plain text
10980 #: build/C/man2/sigwaitinfo.2:158
10981 msgid ""
10982 "The set of signals that is pending for a given thread is the union of the "
10983 "set of signals that is pending specifically for that thread and the set of "
10984 "signals that is pending for the process as a whole (see B<signal>(7))."
10985 msgstr ""
10986 "指定されたスレッドに対する処理待ちのシグナルの集合は、 そのスレッド自体宛ての"
10987 "処理待ちのシグナル集合と、プロセス全体宛ての 処理待ちのシグナル集合をあわせた"
10988 "ものである (B<signal>(7)  参照)。"
10989
10990 #. type: Plain text
10991 #: build/C/man2/sigwaitinfo.2:164
10992 msgid "Attempts to wait for B<SIGKILL> and B<SIGSTOP> are silently ignored."
10993 msgstr "B<SIGKILL> と B<SIGSTOP> を待とうとした場合、黙って無視される。"
10994
10995 #. type: Plain text
10996 #: build/C/man2/sigwaitinfo.2:173
10997 msgid ""
10998 "If multiple threads of a process are blocked waiting for the same signal(s) "
10999 "in B<sigwaitinfo>()  or B<sigtimedwait>(), then exactly one of the threads "
11000 "will actually receive the signal if it becomes pending for the process as a "
11001 "whole; which of the threads receives the signal is indeterminate."
11002 msgstr ""
11003 "一つのプロセス内の複数のスレッドが B<sigwaitinfo>()  や B<sigtimedwait>()  で"
11004 "同じシグナルを待って停止した場合、 プロセス全体宛てのシグナルが処理待ちになる"
11005 "と、複数のスレッドのうち一つだけが 実際にそのシグナルを受信することになる。 "
11006 "どのスレッドがシグナルを受信するかは決まっていない。"
11007
11008 #. type: Plain text
11009 #: build/C/man2/sigwaitinfo.2:182
11010 msgid ""
11011 "POSIX leaves the meaning of a NULL value for the I<timeout> argument of "
11012 "B<sigtimedwait>()  unspecified, permitting the possibility that this has the "
11013 "same meaning as a call to B<sigwaitinfo>(), and indeed this is what is done "
11014 "on Linux."
11015 msgstr ""
11016 "POSIX では B<sigtimedwait>()  の引き数 I<timeout> の値を NULL にした場合の意"
11017 "味を未定義としている。 B<sigwaitinfo>()  を呼び出したのと同じ意味としてもよい"
11018 "ことになっており、 実際 Linux ではこのように動作する。"
11019
11020 #. type: Plain text
11021 #: build/C/man2/sigwaitinfo.2:187
11022 msgid ""
11023 "On Linux, B<sigwaitinfo>()  is a library function implemented on top of "
11024 "B<sigtimedwait>()."
11025 msgstr ""
11026 "Linux では、 B<sigwaitinfo>()  は B<sigtimedwait>()  を用いて実装されたライブ"
11027 "ラリ関数である。"
11028
11029 #. type: Plain text
11030 #: build/C/man2/sigwaitinfo.2:199
11031 msgid ""
11032 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
11033 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), B<signal>"
11034 "(7), B<time>(7)"
11035 msgstr ""
11036 "B<kill>(2), B<sigaction>(2), B<signal>(2), B<signalfd>(2), B<sigpending>(2), "
11037 "B<sigprocmask>(2), B<sigqueue>(3), B<sigsetops>(3), B<sigwait>(3), B<signal>"
11038 "(7), B<time>(7)"
11039
11040 #. type: TH
11041 #: build/C/man3/sysv_signal.3:25
11042 #, no-wrap
11043 msgid "SYSV_SIGNAL"
11044 msgstr "SYSV_SIGNAL"
11045
11046 #. type: TH
11047 #: build/C/man3/sysv_signal.3:25
11048 #, fuzzy, no-wrap
11049 #| msgid "2009-01-13"
11050 msgid "2014-01-06"
11051 msgstr "2009-01-13"
11052
11053 #. type: Plain text
11054 #: build/C/man3/sysv_signal.3:28
11055 msgid "sysv_signal - signal handling with System V semantics"
11056 msgstr "sysv_signal - System V 方式のシグナル処理"
11057
11058 #. type: Plain text
11059 #: build/C/man3/sysv_signal.3:30
11060 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
11061 msgstr "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */"
11062
11063 #. type: Plain text
11064 #: build/C/man3/sysv_signal.3:36
11065 msgid ""
11066 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
11067 msgstr ""
11068 "B<sighandler_t sysv_signal(int >I<signum>B<, sighandler_t >I<handler>B<);>"
11069
11070 #. type: Plain text
11071 #: build/C/man3/sysv_signal.3:41
11072 msgid ""
11073 "The B<sysv_signal>()  function takes the same arguments, and performs the "
11074 "same task, as B<signal>(2)."
11075 msgstr ""
11076 "B<sysv_signal>()  関数は B<signal>(2)  と同じ引き数をとり、同じ処理を実行す"
11077 "る。"
11078
11079 #. type: Plain text
11080 #: build/C/man3/sysv_signal.3:51
11081 msgid ""
11082 "However B<sysv_signal>()  provides the System V unreliable signal semantics, "
11083 "that is: a) the disposition of the signal is reset to the default when the "
11084 "handler is invoked; b) delivery of further instances of the signal is not "
11085 "blocked while the signal handler is executing; and c) if the handler "
11086 "interrupts (certain) blocking system calls, then the system call is not "
11087 "automatically restarted."
11088 msgstr ""
11089 "しかしながら、 B<sysv_signal>()  は System V の信頼性に欠けるシグナル処理方式"
11090 "を提供している。 信頼性に欠けるシグナル処理方式は以下の特徴を持つ。 a) ハンド"
11091 "ラが起動されると、シグナルの処理方法 (disposition) が デフォルトにリセットさ"
11092 "れる、 b) シグナルハンドラの実行中は、それ以降に発生した同じシグナルの配送が "
11093 "ブロックされない、 c) ハンドラが停止中の (blocking している) システムコールを"
11094 "中断した場合、 自動的に再開されないシステムコールがある。"
11095
11096 #. type: Plain text
11097 #: build/C/man3/sysv_signal.3:57
11098 msgid ""
11099 "The B<sysv_signal>()  function returns the previous value of the signal "
11100 "handler, or B<SIG_ERR> on error."
11101 msgstr ""
11102 "B<sysv_signal>()  関数はシグナルハンドラの直前の値を返す。 エラーの場合、 "
11103 "B<SIG_ERR> を返す。"
11104
11105 #. type: Plain text
11106 #: build/C/man3/sysv_signal.3:65
11107 msgid "The B<sysv_signal>()  function is thread-safe."
11108 msgstr ""
11109
11110 #. type: Plain text
11111 #: build/C/man3/sysv_signal.3:67
11112 msgid "This function is nonstandard."
11113 msgstr "この関数は非標準である。"
11114
11115 #. type: Plain text
11116 #: build/C/man3/sysv_signal.3:73
11117 msgid ""
11118 "Use of B<sysv_signal>()  should be avoided; use B<sigaction>(2)  instead."
11119 msgstr ""
11120 "B<sysv_signal>()  の使用は避けるべきである。代わりに B<sigaction>(2)  を使う"
11121 "こと。"
11122
11123 #. type: Plain text
11124 #: build/C/man3/sysv_signal.3:84
11125 msgid ""
11126 "On older Linux systems, B<sysv_signal>()  and B<signal>(2)  were "
11127 "equivalent.  But on newer systems, B<signal>(2)  provides reliable signal "
11128 "semantics; see B<signal>(2)  for details."
11129 msgstr ""
11130 "以前の Linux システムでは、 B<sysv_signal>()  と B<signal>(2)  は等価であっ"
11131 "た。しかし、新しめのシステムでは、 B<signal>(2)  は信頼性のあるシグナル処理方"
11132 "式を提供している。 詳細は B<signal>(2)  を参照。"
11133
11134 #. type: Plain text
11135 #: build/C/man3/sysv_signal.3:97
11136 msgid "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
11137 msgstr "B<sigaction>(2), B<signal>(2), B<bsd_signal>(3), B<signal>(7)"
11138
11139 #. type: TH
11140 #: build/C/man2/timer_create.2:31
11141 #, no-wrap
11142 msgid "TIMER_CREATE"
11143 msgstr "TIMER_CREATE"
11144
11145 #. type: TH
11146 #: build/C/man2/timer_create.2:31
11147 #, fuzzy, no-wrap
11148 #| msgid "2009-01-13"
11149 msgid "2014-01-20"
11150 msgstr "2009-01-13"
11151
11152 #. type: Plain text
11153 #: build/C/man2/timer_create.2:34
11154 msgid "timer_create - create a POSIX per-process timer"
11155 msgstr ""
11156
11157 #. type: Plain text
11158 #: build/C/man2/timer_create.2:38
11159 #, no-wrap
11160 msgid ""
11161 "B<#include E<lt>signal.hE<gt>>\n"
11162 "B<#include E<lt>time.hE<gt>>\n"
11163 msgstr ""
11164 "B<#include E<lt>signal.hE<gt>>\n"
11165 "B<#include E<lt>time.hE<gt>>\n"
11166
11167 #. type: Plain text
11168 #: build/C/man2/timer_create.2:41
11169 #, no-wrap
11170 msgid ""
11171 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
11172 "B<                 timer_t *>I<timerid>B<);>\n"
11173 msgstr ""
11174 "B<int timer_create(clockid_t >I<clockid>B<, struct sigevent *>I<sevp>B<,>\n"
11175 "B<                 timer_t *>I<timerid>B<);>\n"
11176
11177 #. type: Plain text
11178 #: build/C/man2/timer_create.2:44 build/C/man2/timer_delete.2:37
11179 #: build/C/man2/timer_getoverrun.2:37 build/C/man2/timer_settime.2:41
11180 msgid "Link with I<-lrt>."
11181 msgstr "I<-lrt> でリンクする。"
11182
11183 #. type: Plain text
11184 #: build/C/man2/timer_create.2:52
11185 msgid "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11186 msgstr "B<timer_create>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11187
11188 #. type: Plain text
11189 #: build/C/man2/timer_create.2:60
11190 msgid ""
11191 "B<timer_create>()  creates a new per-process interval timer.  The ID of the "
11192 "new timer is returned in the buffer pointed to by I<timerid>, which must be "
11193 "a non-null pointer.  This ID is unique within the process, until the timer "
11194 "is deleted.  The new timer is initially disarmed."
11195 msgstr ""
11196
11197 #. type: Plain text
11198 #: build/C/man2/timer_create.2:65
11199 msgid ""
11200 "The I<clockid> argument specifies the clock that the new timer uses to "
11201 "measure time.  It can be specified as one of the following values:"
11202 msgstr ""
11203
11204 #. type: TP
11205 #: build/C/man2/timer_create.2:65
11206 #, no-wrap
11207 msgid "B<CLOCK_REALTIME>"
11208 msgstr "B<CLOCK_REALTIME>"
11209
11210 #. type: Plain text
11211 #: build/C/man2/timer_create.2:68
11212 msgid "A settable system-wide real-time clock."
11213 msgstr ""
11214
11215 #. type: TP
11216 #: build/C/man2/timer_create.2:68
11217 #, no-wrap
11218 msgid "B<CLOCK_MONOTONIC>"
11219 msgstr "B<CLOCK_MONOTONIC>"
11220
11221 #.  Note: the CLOCK_MONOTONIC_RAW clock added for clock_gettime()
11222 #.  in 2.6.28 is not supported for POSIX timers -- mtk, Feb 2009
11223 #. type: Plain text
11224 #: build/C/man2/timer_create.2:75
11225 msgid ""
11226 "A nonsettable monotonically increasing clock that measures time from some "
11227 "unspecified point in the past that does not change after system startup."
11228 msgstr ""
11229
11230 #. type: TP
11231 #: build/C/man2/timer_create.2:75
11232 #, no-wrap
11233 msgid "B<CLOCK_PROCESS_CPUTIME_ID> (since Linux 2.6.12)"
11234 msgstr ""
11235
11236 #. type: Plain text
11237 #: build/C/man2/timer_create.2:79
11238 msgid ""
11239 "A clock that measures (user and system) CPU time consumed by (all of the "
11240 "threads in) the calling process."
11241 msgstr ""
11242
11243 #. type: TP
11244 #: build/C/man2/timer_create.2:79
11245 #, no-wrap
11246 msgid "B<CLOCK_THREAD_CPUTIME_ID> (since Linux 2.6.12)"
11247 msgstr ""
11248
11249 #.  The CLOCK_MONOTONIC_RAW that was added in 2.6.28 can't be used
11250 #.  to create a timer -- mtk, Feb 2009
11251 #. type: Plain text
11252 #: build/C/man2/timer_create.2:85
11253 msgid ""
11254 "A clock that measures (user and system) CPU time consumed by the calling "
11255 "thread."
11256 msgstr ""
11257
11258 #. type: Plain text
11259 #: build/C/man2/timer_create.2:94
11260 msgid ""
11261 "As well as the above values, I<clockid> can be specified as the I<clockid> "
11262 "returned by a call to B<clock_getcpuclockid>(3)  or B<pthread_getcpuclockid>"
11263 "(3)."
11264 msgstr ""
11265
11266 #. type: Plain text
11267 #: build/C/man2/timer_create.2:103
11268 msgid ""
11269 "The I<sevp> argument points to a I<sigevent> structure that specifies how "
11270 "the caller should be notified when the timer expires.  For the definition "
11271 "and general details of this structure, see B<sigevent>(7)."
11272 msgstr ""
11273
11274 #. type: Plain text
11275 #: build/C/man2/timer_create.2:107
11276 msgid "The I<sevp.sigev_notify> field can have the following values:"
11277 msgstr ""
11278
11279 #. type: Plain text
11280 #: build/C/man2/timer_create.2:112
11281 msgid ""
11282 "Don't asynchronously notify when the timer expires.  Progress of the timer "
11283 "can be monitored using B<timer_gettime>(2)."
11284 msgstr ""
11285
11286 #. type: Plain text
11287 #: build/C/man2/timer_create.2:130
11288 msgid ""
11289 "Upon timer expiration, generate the signal I<sigev_signo> for the process.  "
11290 "See B<sigevent>(7)  for general details.  The I<si_code> field of the "
11291 "I<siginfo_t> structure will be set to B<SI_TIMER>.  At any point in time, at "
11292 "most one signal is queued to the process for a given timer; see "
11293 "B<timer_getoverrun>(2)  for more details."
11294 msgstr ""
11295
11296 #. type: Plain text
11297 #: build/C/man2/timer_create.2:138
11298 msgid ""
11299 "Upon timer expiration, invoke I<sigev_notify_function> as if it were the "
11300 "start function of a new thread.  See B<sigevent>(7)  for details."
11301 msgstr ""
11302
11303 #. type: Plain text
11304 #: build/C/man2/timer_create.2:152
11305 msgid ""
11306 "As for B<SIGEV_SIGNAL>, but the signal is targeted at the thread whose ID is "
11307 "given in I<sigev_notify_thread_id>, which must be a thread in the same "
11308 "process as the caller.  The I<sigev_notify_thread_id> field specifies a "
11309 "kernel thread ID, that is, the value returned by B<clone>(2)  or B<gettid>"
11310 "(2).  This flag is intended only for use by threading libraries."
11311 msgstr ""
11312
11313 #. type: Plain text
11314 #: build/C/man2/timer_create.2:167
11315 msgid ""
11316 "Specifying I<sevp> as NULL is equivalent to specifying a pointer to a "
11317 "I<sigevent> structure in which I<sigev_notify> is B<SIGEV_SIGNAL>, "
11318 "I<sigev_signo> is B<SIGALRM>, and I<sigev_value.sival_int> is the timer ID."
11319 msgstr ""
11320
11321 #. type: Plain text
11322 #: build/C/man2/timer_create.2:175
11323 msgid ""
11324 "On success, B<timer_create>()  returns 0, and the ID of the new timer is "
11325 "placed in I<*timerid>.  On failure, -1 is returned, and I<errno> is set to "
11326 "indicate the error."
11327 msgstr ""
11328
11329 #. type: Plain text
11330 #: build/C/man2/timer_create.2:179
11331 msgid "Temporary error during kernel allocation of timer structures."
11332 msgstr ""
11333
11334 #. type: Plain text
11335 #: build/C/man2/timer_create.2:187
11336 msgid ""
11337 "Clock ID, I<sigev_notify>, I<sigev_signo>, or I<sigev_notify_thread_id> is "
11338 "invalid."
11339 msgstr ""
11340
11341 #.  glibc layer: malloc()
11342 #. type: Plain text
11343 #: build/C/man2/timer_create.2:191
11344 msgid "Could not allocate memory."
11345 msgstr ""
11346
11347 #. type: Plain text
11348 #: build/C/man2/timer_create.2:193 build/C/man2/timer_delete.2:67
11349 #: build/C/man2/timer_getoverrun.2:97
11350 msgid "This system call is available since Linux 2.6."
11351 msgstr "このシステムコールは Linux 2.6 以降で利用できる。"
11352
11353 #. type: Plain text
11354 #: build/C/man2/timer_create.2:198
11355 msgid "A program may create multiple interval timers using B<timer_create>()."
11356 msgstr ""
11357
11358 #. type: Plain text
11359 #: build/C/man2/timer_create.2:203
11360 msgid ""
11361 "Timers are not inherited by the child of a B<fork>(2), and are disarmed and "
11362 "deleted during an B<execve>(2)."
11363 msgstr ""
11364
11365 #. type: Plain text
11366 #: build/C/man2/timer_create.2:211
11367 msgid ""
11368 "The kernel preallocates a \"queued real-time signal\" for each timer created "
11369 "using B<timer_create>().  Consequently, the number of timers is limited by "
11370 "the B<RLIMIT_SIGPENDING> resource limit (see B<setrlimit>(2))."
11371 msgstr ""
11372
11373 #. type: Plain text
11374 #: build/C/man2/timer_create.2:216
11375 msgid ""
11376 "The timers created by B<timer_create>()  are commonly known as \"POSIX "
11377 "(interval) timers\".  The POSIX timers API consists of the following "
11378 "interfaces:"
11379 msgstr ""
11380
11381 #. type: Plain text
11382 #: build/C/man2/timer_create.2:219
11383 msgid "B<timer_create>(): Create a timer."
11384 msgstr ""
11385
11386 #. type: Plain text
11387 #: build/C/man2/timer_create.2:222
11388 msgid "B<timer_settime>(2): Arm (start) or disarm (stop) a timer."
11389 msgstr ""
11390
11391 #. type: Plain text
11392 #: build/C/man2/timer_create.2:226
11393 msgid ""
11394 "B<timer_gettime>(2): Fetch the time remaining until the next expiration of a "
11395 "timer, along with the interval setting of the timer."
11396 msgstr ""
11397
11398 #. type: Plain text
11399 #: build/C/man2/timer_create.2:229
11400 msgid ""
11401 "B<timer_getoverrun>(2): Return the overrun count for the last timer "
11402 "expiration."
11403 msgstr ""
11404
11405 #. type: Plain text
11406 #: build/C/man2/timer_create.2:232
11407 msgid "B<timer_delete>(2): Disarm and delete a timer."
11408 msgstr ""
11409
11410 #. type: Plain text
11411 #: build/C/man2/timer_create.2:235
11412 msgid ""
11413 "Part of the implementation of the POSIX timers API is provided by glibc.  In "
11414 "particular:"
11415 msgstr ""
11416
11417 #. type: Plain text
11418 #: build/C/man2/timer_create.2:239
11419 msgid ""
11420 "The functionality for B<SIGEV_THREAD> is implemented within glibc, rather "
11421 "than the kernel."
11422 msgstr ""
11423
11424 #.  See the glibc source file kernel-posix-timers.h for the structure
11425 #.  that glibc uses to map user-space timer IDs to kernel timer IDs
11426 #.  The kernel-level timer ID is exposed via siginfo.si_tid.
11427 #. type: Plain text
11428 #: build/C/man2/timer_create.2:245
11429 msgid ""
11430 "The timer IDs presented at user level are maintained by glibc, which maps "
11431 "these IDs to the timer IDs employed by the kernel."
11432 msgstr ""
11433
11434 #. type: Plain text
11435 #: build/C/man2/timer_create.2:253
11436 msgid ""
11437 "The POSIX timers system calls first appeared in Linux 2.6.  Prior to this, "
11438 "glibc provided an incomplete user-space implementation (B<CLOCK_REALTIME> "
11439 "timers only) using POSIX threads, and current glibc falls back to this "
11440 "implementation on systems running pre-2.6 Linux kernels."
11441 msgstr ""
11442
11443 #. type: Plain text
11444 #: build/C/man2/timer_create.2:261
11445 msgid ""
11446 "Since Linux 3.10, the I</proc/[pid]/timers> file can be used to list the "
11447 "POSIX timers for the process with PID I<pid>.  See B<proc>(5)  for further "
11448 "information."
11449 msgstr ""
11450
11451 #. type: Plain text
11452 #: build/C/man2/timer_create.2:273
11453 msgid ""
11454 "The program below takes two arguments: a sleep period in seconds, and a "
11455 "timer frequency in nanoseconds.  The program establishes a handler for the "
11456 "signal it uses for the timer, blocks that signal, creates and arms a timer "
11457 "that expires with the given frequency, sleeps for the specified number of "
11458 "seconds, and then unblocks the timer signal.  Assuming that the timer "
11459 "expired at least once while the program slept, the signal handler will be "
11460 "invoked, and the handler displays some information about the timer "
11461 "notification.  The program terminates after one invocation of the signal "
11462 "handler."
11463 msgstr ""
11464
11465 #. type: Plain text
11466 #: build/C/man2/timer_create.2:278
11467 msgid ""
11468 "In the following example run, the program sleeps for 1 second, after "
11469 "creating a timer that has a frequency of 100 nanoseconds.  By the time the "
11470 "signal is unblocked and delivered, there have been around ten million "
11471 "overruns."
11472 msgstr ""
11473
11474 #. type: Plain text
11475 #: build/C/man2/timer_create.2:290
11476 #, no-wrap
11477 msgid ""
11478 "$ B<./a.out 1 100>\n"
11479 "Establishing handler for signal 34\n"
11480 "Blocking signal 34\n"
11481 "timer ID is 0x804c008\n"
11482 "Sleeping for 1 seconds\n"
11483 "Unblocking signal 34\n"
11484 "Caught signal 34\n"
11485 "    sival_ptr = 0xbfb174f4;     *sival_ptr = 0x804c008\n"
11486 "    overrun count = 10004886\n"
11487 msgstr ""
11488
11489 #. type: Plain text
11490 #: build/C/man2/timer_create.2:300
11491 #, no-wrap
11492 msgid ""
11493 "#include E<lt>stdlib.hE<gt>\n"
11494 "#include E<lt>unistd.hE<gt>\n"
11495 "#include E<lt>stdio.hE<gt>\n"
11496 "#include E<lt>signal.hE<gt>\n"
11497 "#include E<lt>time.hE<gt>\n"
11498 msgstr ""
11499 "#include E<lt>stdlib.hE<gt>\n"
11500 "#include E<lt>unistd.hE<gt>\n"
11501 "#include E<lt>stdio.hE<gt>\n"
11502 "#include E<lt>signal.hE<gt>\n"
11503 "#include E<lt>time.hE<gt>\n"
11504
11505 #. type: Plain text
11506 #: build/C/man2/timer_create.2:303
11507 #, no-wrap
11508 msgid ""
11509 "#define CLOCKID CLOCK_REALTIME\n"
11510 "#define SIG SIGRTMIN\n"
11511 msgstr ""
11512 "#define CLOCKID CLOCK_REALTIME\n"
11513 "#define SIG SIGRTMIN\n"
11514
11515 #. type: Plain text
11516 #: build/C/man2/timer_create.2:306
11517 #, no-wrap
11518 msgid ""
11519 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11520 "                        } while (0)\n"
11521 msgstr ""
11522 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
11523 "                        } while (0)\n"
11524
11525 #. type: Plain text
11526 #: build/C/man2/timer_create.2:312
11527 #, no-wrap
11528 msgid ""
11529 "static void\n"
11530 "print_siginfo(siginfo_t *si)\n"
11531 "{\n"
11532 "    timer_t *tidp;\n"
11533 "    int or;\n"
11534 msgstr ""
11535 "static void\n"
11536 "print_siginfo(siginfo_t *si)\n"
11537 "{\n"
11538 "    timer_t *tidp;\n"
11539 "    int or;\n"
11540
11541 #. type: Plain text
11542 #: build/C/man2/timer_create.2:314
11543 #, no-wrap
11544 msgid "    tidp = si-E<gt>si_value.sival_ptr;\n"
11545 msgstr "    tidp = si-E<gt>si_value.sival_ptr;\n"
11546
11547 #. type: Plain text
11548 #: build/C/man2/timer_create.2:317
11549 #, no-wrap
11550 msgid ""
11551 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11552 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11553 msgstr ""
11554 "    printf(\"    sival_ptr = %p; \", si-E<gt>si_value.sival_ptr);\n"
11555 "    printf(\"    *sival_ptr = 0x%lx\\en\", (long) *tidp);\n"
11556
11557 #. type: Plain text
11558 #: build/C/man2/timer_create.2:324
11559 #, no-wrap
11560 msgid ""
11561 "    or = timer_getoverrun(*tidp);\n"
11562 "    if (or == -1)\n"
11563 "        errExit(\"timer_getoverrun\");\n"
11564 "    else\n"
11565 "        printf(\"    overrun count = %d\\en\", or);\n"
11566 "}\n"
11567 msgstr ""
11568 "    or = timer_getoverrun(*tidp);\n"
11569 "    if (or == -1)\n"
11570 "        errExit(\"timer_getoverrun\");\n"
11571 "    else\n"
11572 "        printf(\"    overrun count = %d\\en\", or);\n"
11573 "}\n"
11574
11575 #. type: Plain text
11576 #: build/C/man2/timer_create.2:331
11577 #, no-wrap
11578 msgid ""
11579 "static void\n"
11580 "handler(int sig, siginfo_t *si, void *uc)\n"
11581 "{\n"
11582 "    /* Note: calling printf() from a signal handler is not\n"
11583 "       strictly correct, since printf() is not async-signal-safe;\n"
11584 "       see signal(7) */\n"
11585 msgstr ""
11586 "static void\n"
11587 "handler(int sig, siginfo_t *si, void *uc)\n"
11588 "{\n"
11589 "    /* Note: calling printf() from a signal handler is not\n"
11590 "       strictly correct, since printf() is not async-signal-safe;\n"
11591 "       see signal(7) */\n"
11592
11593 #. type: Plain text
11594 #: build/C/man2/timer_create.2:336
11595 #, no-wrap
11596 msgid ""
11597 "    printf(\"Caught signal %d\\en\", sig);\n"
11598 "    print_siginfo(si);\n"
11599 "    signal(sig, SIG_IGN);\n"
11600 "}\n"
11601 msgstr ""
11602 "    printf(\"Caught signal %d\\en\", sig);\n"
11603 "    print_siginfo(si);\n"
11604 "    signal(sig, SIG_IGN);\n"
11605 "}\n"
11606
11607 #. type: Plain text
11608 #: build/C/man2/timer_create.2:346
11609 #, no-wrap
11610 msgid ""
11611 "int\n"
11612 "main(int argc, char *argv[])\n"
11613 "{\n"
11614 "    timer_t timerid;\n"
11615 "    struct sigevent sev;\n"
11616 "    struct itimerspec its;\n"
11617 "    long long freq_nanosecs;\n"
11618 "    sigset_t mask;\n"
11619 "    struct sigaction sa;\n"
11620 msgstr ""
11621 "int\n"
11622 "main(int argc, char *argv[])\n"
11623 "{\n"
11624 "    timer_t timerid;\n"
11625 "    struct sigevent sev;\n"
11626 "    struct itimerspec its;\n"
11627 "    long long freq_nanosecs;\n"
11628 "    sigset_t mask;\n"
11629 "    struct sigaction sa;\n"
11630
11631 #. type: Plain text
11632 #: build/C/man2/timer_create.2:352
11633 #, no-wrap
11634 msgid ""
11635 "    if (argc != 3) {\n"
11636 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11637 "                argv[0]);\n"
11638 "        exit(EXIT_FAILURE);\n"
11639 "    }\n"
11640 msgstr ""
11641 "    if (argc != 3) {\n"
11642 "        fprintf(stderr, \"Usage: %s E<lt>sleep-secsE<gt> E<lt>freq-nanosecsE<gt>\\en\",\n"
11643 "                argv[0]);\n"
11644 "        exit(EXIT_FAILURE);\n"
11645 "    }\n"
11646
11647 #. type: Plain text
11648 #: build/C/man2/timer_create.2:354
11649 #, no-wrap
11650 msgid "    /* Establish handler for timer signal */\n"
11651 msgstr "    /* Establish handler for timer signal */\n"
11652
11653 #. type: Plain text
11654 #: build/C/man2/timer_create.2:361
11655 #, no-wrap
11656 msgid ""
11657 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11658 "    sa.sa_flags = SA_SIGINFO;\n"
11659 "    sa.sa_sigaction = handler;\n"
11660 "    sigemptyset(&sa.sa_mask);\n"
11661 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11662 "        errExit(\"sigaction\");\n"
11663 msgstr ""
11664 "    printf(\"Establishing handler for signal %d\\en\", SIG);\n"
11665 "    sa.sa_flags = SA_SIGINFO;\n"
11666 "    sa.sa_sigaction = handler;\n"
11667 "    sigemptyset(&sa.sa_mask);\n"
11668 "    if (sigaction(SIG, &sa, NULL) == -1)\n"
11669 "        errExit(\"sigaction\");\n"
11670
11671 #. type: Plain text
11672 #: build/C/man2/timer_create.2:363
11673 #, no-wrap
11674 msgid "    /* Block timer signal temporarily */\n"
11675 msgstr "    /* Block timer signal temporarily */\n"
11676
11677 #. type: Plain text
11678 #: build/C/man2/timer_create.2:369
11679 #, no-wrap
11680 msgid ""
11681 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11682 "    sigemptyset(&mask);\n"
11683 "    sigaddset(&mask, SIG);\n"
11684 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11685 "        errExit(\"sigprocmask\");\n"
11686 msgstr ""
11687 "    printf(\"Blocking signal %d\\en\", SIG);\n"
11688 "    sigemptyset(&mask);\n"
11689 "    sigaddset(&mask, SIG);\n"
11690 "    if (sigprocmask(SIG_SETMASK, &mask, NULL) == -1)\n"
11691 "        errExit(\"sigprocmask\");\n"
11692
11693 #. type: Plain text
11694 #: build/C/man2/timer_create.2:371
11695 #, no-wrap
11696 msgid "    /* Create the timer */\n"
11697 msgstr "    /* Create the timer */\n"
11698
11699 #. type: Plain text
11700 #: build/C/man2/timer_create.2:377
11701 #, no-wrap
11702 msgid ""
11703 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11704 "    sev.sigev_signo = SIG;\n"
11705 "    sev.sigev_value.sival_ptr = &timerid;\n"
11706 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11707 "        errExit(\"timer_create\");\n"
11708 msgstr ""
11709 "    sev.sigev_notify = SIGEV_SIGNAL;\n"
11710 "    sev.sigev_signo = SIG;\n"
11711 "    sev.sigev_value.sival_ptr = &timerid;\n"
11712 "    if (timer_create(CLOCKID, &sev, &timerid) == -1)\n"
11713 "        errExit(\"timer_create\");\n"
11714
11715 #. type: Plain text
11716 #: build/C/man2/timer_create.2:379
11717 #, no-wrap
11718 msgid "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11719 msgstr "    printf(\"timer ID is 0x%lx\\en\", (long) timerid);\n"
11720
11721 #. type: Plain text
11722 #: build/C/man2/timer_create.2:381
11723 #, no-wrap
11724 msgid "    /* Start the timer */\n"
11725 msgstr "    /* Start the timer */\n"
11726
11727 #. type: Plain text
11728 #: build/C/man2/timer_create.2:387
11729 #, no-wrap
11730 msgid ""
11731 "    freq_nanosecs = atoll(argv[2]);\n"
11732 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11733 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11734 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11735 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11736 msgstr ""
11737 "    freq_nanosecs = atoll(argv[2]);\n"
11738 "    its.it_value.tv_sec = freq_nanosecs / 1000000000;\n"
11739 "    its.it_value.tv_nsec = freq_nanosecs % 1000000000;\n"
11740 "    its.it_interval.tv_sec = its.it_value.tv_sec;\n"
11741 "    its.it_interval.tv_nsec = its.it_value.tv_nsec;\n"
11742
11743 #. type: Plain text
11744 #: build/C/man2/timer_create.2:390
11745 #, no-wrap
11746 msgid ""
11747 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11748 "         errExit(\"timer_settime\");\n"
11749 msgstr ""
11750 "    if (timer_settime(timerid, 0, &its, NULL) == -1)\n"
11751 "         errExit(\"timer_settime\");\n"
11752
11753 #. type: Plain text
11754 #: build/C/man2/timer_create.2:393
11755 #, no-wrap
11756 msgid ""
11757 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11758 "       multiple times */\n"
11759 msgstr ""
11760 "    /* Sleep for a while; meanwhile, the timer may expire\n"
11761 "       multiple times */\n"
11762
11763 #. type: Plain text
11764 #: build/C/man2/timer_create.2:396
11765 #, no-wrap
11766 msgid ""
11767 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11768 "    sleep(atoi(argv[1]));\n"
11769 msgstr ""
11770 "    printf(\"Sleeping for %d seconds\\en\", atoi(argv[1]));\n"
11771 "    sleep(atoi(argv[1]));\n"
11772
11773 #. type: Plain text
11774 #: build/C/man2/timer_create.2:399
11775 #, no-wrap
11776 msgid ""
11777 "    /* Unlock the timer signal, so that timer notification\n"
11778 "       can be delivered */\n"
11779 msgstr ""
11780 "    /* Unlock the timer signal, so that timer notification\n"
11781 "       can be delivered */\n"
11782
11783 #. type: Plain text
11784 #: build/C/man2/timer_create.2:403
11785 #, no-wrap
11786 msgid ""
11787 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
11788 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
11789 "        errExit(\"sigprocmask\");\n"
11790 msgstr ""
11791 "    printf(\"Unblocking signal %d\\en\", SIG);\n"
11792 "    if (sigprocmask(SIG_UNBLOCK, &mask, NULL) == -1)\n"
11793 "        errExit(\"sigprocmask\");\n"
11794
11795 #. type: Plain text
11796 #: build/C/man2/timer_create.2:406 build/C/man2/timerfd_create.2:540
11797 #, no-wrap
11798 msgid ""
11799 "    exit(EXIT_SUCCESS);\n"
11800 "}\n"
11801 msgstr ""
11802 "    exit(EXIT_SUCCESS);\n"
11803 "}\n"
11804
11805 #. type: Plain text
11806 #: build/C/man2/timer_create.2:422
11807 msgid ""
11808 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), B<timer_getoverrun>"
11809 "(2), B<timer_settime>(2), B<timerfd_create>(2), B<clock_getcpuclockid>(3), "
11810 "B<pthread_getcpuclockid>(3), B<pthreads>(7), B<sigevent>(7), B<signal>(7), "
11811 "B<time>(7)"
11812 msgstr ""
11813 "B<clock_gettime>(2), B<setitimer>(2), B<timer_delete>(2), B<timer_getoverrun>"
11814 "(2), B<timer_settime>(2), B<timerfd_create>(2), B<clock_getcpuclockid>(3), "
11815 "B<pthread_getcpuclockid>(3), B<pthreads>(7), B<sigevent>(7), B<signal>(7), "
11816 "B<time>(7)"
11817
11818 #. type: TH
11819 #: build/C/man2/timer_delete.2:26
11820 #, no-wrap
11821 msgid "TIMER_DELETE"
11822 msgstr "TIMER_DELETE"
11823
11824 #. type: TH
11825 #: build/C/man2/timer_delete.2:26 build/C/man2/timer_getoverrun.2:26
11826 #, no-wrap
11827 msgid "2009-02-20"
11828 msgstr "2009-02-20"
11829
11830 #. type: Plain text
11831 #: build/C/man2/timer_delete.2:29
11832 msgid "timer_delete - delete a POSIX per-process timer"
11833 msgstr "timer_delete - プロセス単位の POSIX タイマーを削除する"
11834
11835 #. type: Plain text
11836 #: build/C/man2/timer_delete.2:32 build/C/man2/timer_getoverrun.2:32
11837 #: build/C/man2/timer_settime.2:33
11838 #, no-wrap
11839 msgid "B<#include E<lt>time.hE<gt>>\n"
11840 msgstr "B<#include E<lt>time.hE<gt>>\n"
11841
11842 #. type: Plain text
11843 #: build/C/man2/timer_delete.2:34
11844 #, no-wrap
11845 msgid "B<int timer_delete(timer_t >I<timerid>B<);>\n"
11846 msgstr "B<int timer_delete(timer_t >I<timerid>B<);>\n"
11847
11848 #. type: Plain text
11849 #: build/C/man2/timer_delete.2:45
11850 msgid "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11851 msgstr "B<timer_delete>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11852
11853 #. type: Plain text
11854 #: build/C/man2/timer_delete.2:53
11855 msgid ""
11856 "B<timer_delete>()  deletes the timer whose ID is given in I<timerid>.  If "
11857 "the timer was armed at the time of this call, it is disarmed before being "
11858 "deleted.  The treatment of any pending signal generated by the deleted timer "
11859 "is unspecified."
11860 msgstr ""
11861 "B<timer_delete>() は I<timerid> で指定された ID のタイマーを削除する。 "
11862 "B<timer_delete>() が呼び出された時点でタイマーが開始されている場合は、 削除す"
11863 "る前にタイマーの解除が行われる。 削除されるタイマーにより生成された処理待ちシ"
11864 "グナルの扱いは不定 (unspecified) である。"
11865
11866 #. type: Plain text
11867 #: build/C/man2/timer_delete.2:60
11868 msgid ""
11869 "On success, B<timer_delete>()  returns 0.  On failure, -1 is returned, and "
11870 "I<errno> is set to indicate the error."
11871 msgstr ""
11872 "成功すると、 B<timer_delete>() は 0 を返す。 失敗すると、 -1 が返り、 "
11873 "I<errno> にエラーを示す値が設定される。"
11874
11875 #. type: Plain text
11876 #: build/C/man2/timer_delete.2:65 build/C/man2/timer_getoverrun.2:95
11877 msgid "I<timerid> is not a valid timer ID."
11878 msgstr "I<timerid> が有効なタイマー ID ではない。"
11879
11880 #. type: Plain text
11881 #: build/C/man2/timer_delete.2:75
11882 msgid ""
11883 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
11884 "B<timer_settime>(2), B<time>(7)"
11885 msgstr ""
11886 "B<clock_gettime>(2), B<timer_create>(2), B<timer_getoverrun>(2), "
11887 "B<timer_settime>(2), B<time>(7)"
11888
11889 #. type: TH
11890 #: build/C/man2/timer_getoverrun.2:26
11891 #, no-wrap
11892 msgid "TIMER_GETOVERRUN"
11893 msgstr "TIMER_GETOVERRUN"
11894
11895 #. type: Plain text
11896 #: build/C/man2/timer_getoverrun.2:29
11897 msgid "timer_getoverrun - get overrun count for a POSIX per-process timer"
11898 msgstr ""
11899
11900 #. type: Plain text
11901 #: build/C/man2/timer_getoverrun.2:34
11902 #, no-wrap
11903 msgid "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
11904 msgstr "B<int timer_getoverrun(timer_t >I<timerid>B<);>\n"
11905
11906 #. type: Plain text
11907 #: build/C/man2/timer_getoverrun.2:45
11908 msgid "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11909 msgstr "B<timer_getoverrun>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
11910
11911 #. type: Plain text
11912 #: build/C/man2/timer_getoverrun.2:56
11913 msgid ""
11914 "B<timer_getoverrun>()  returns the \"overrun count\" for the timer referred "
11915 "to by I<timerid>.  An application can use the overrun count to accurately "
11916 "calculate the number of timer expirations that would have occurred over a "
11917 "given time interval.  Timer overruns can occur both when receiving "
11918 "expiration notifications via signals (B<SIGEV_SIGNAL>), and via threads "
11919 "(B<SIGEV_THREAD>)."
11920 msgstr ""
11921
11922 #. type: Plain text
11923 #: build/C/man2/timer_getoverrun.2:76
11924 msgid ""
11925 "When expiration notifications are delivered via a signal, overruns can occur "
11926 "as follows.  Regardless of whether or not a real-time signal is used for "
11927 "timer notifications, the system queues at most one signal per timer.  (This "
11928 "is the behavior specified by POSIX.1-2001.  The alternative, queuing one "
11929 "signal for each timer expiration, could easily result in overflowing the "
11930 "allowed limits for queued signals on the system.)  Because of system "
11931 "scheduling delays, or because the signal may be temporarily blocked, there "
11932 "can be a delay between the time when the notification signal is generated "
11933 "and the time when it is delivered (e.g., caught by a signal handler) or "
11934 "accepted (e.g., using B<sigwaitinfo>(2)).  In this interval, further timer "
11935 "expirations may occur.  The timer overrun count is the number of additional "
11936 "timer expirations that occurred between the time when the signal was "
11937 "generated and when it was delivered or accepted."
11938 msgstr ""
11939
11940 #. type: Plain text
11941 #: build/C/man2/timer_getoverrun.2:82
11942 msgid ""
11943 "Timer overruns can also occur when expiration notifications are delivered "
11944 "via invocation of a thread, since there may be an arbitrary delay between an "
11945 "expiration of the timer and the invocation of the notification thread, and "
11946 "in that delay interval, additional timer expirations may occur"
11947 msgstr ""
11948
11949 #. type: Plain text
11950 #: build/C/man2/timer_getoverrun.2:90
11951 msgid ""
11952 "On success, B<timer_getoverrun>()  returns the overrun count of the "
11953 "specified timer; this count may be 0 if no overruns have occurred.  On "
11954 "failure, -1 is returned, and I<errno> is set to indicate the error."
11955 msgstr ""
11956
11957 #. type: Plain text
11958 #: build/C/man2/timer_getoverrun.2:111
11959 msgid ""
11960 "When timer notifications are delivered via signals (B<SIGEV_SIGNAL>), on "
11961 "Linux it is also possible to obtain the overrun count via the I<si_overrun> "
11962 "field of the I<siginfo_t> structure (see B<sigaction>(2)).  This allows an "
11963 "application to avoid the overhead of making a system call to obtain the "
11964 "overrun count, but is a nonportable extension to POSIX.1-2001."
11965 msgstr ""
11966
11967 #.  FIXME . Austin bug filed, 11 Feb 09
11968 #. type: Plain text
11969 #: build/C/man2/timer_getoverrun.2:115
11970 msgid ""
11971 "POSIX.1-2001 discusses timer overruns only in the context of timer "
11972 "notifications using signals."
11973 msgstr ""
11974
11975 #.  Bug filed: http://bugzilla.kernel.org/show_bug.cgi?id=12665
11976 #.  http://thread.gmane.org/gmane.linux.kernel/113276/
11977 #. type: Plain text
11978 #: build/C/man2/timer_getoverrun.2:128
11979 msgid ""
11980 "POSIX.1-2001 specifies that if the timer overrun count is equal to or "
11981 "greater than an implementation-defined maximum, B<DELAYTIMER_MAX>, then "
11982 "B<timer_getoverrun>()  should return B<DELAYTIMER_MAX>.  However, Linux does "
11983 "not implement this feature: instead, if the timer overrun value exceeds the "
11984 "maximum representable integer, the counter cycles, starting once more from "
11985 "low values."
11986 msgstr ""
11987
11988 #. type: Plain text
11989 #: build/C/man2/timer_getoverrun.2:131 build/C/man2/timer_settime.2:212
11990 msgid "See B<timer_create>(2)."
11991 msgstr ""
11992
11993 #. type: Plain text
11994 #: build/C/man2/timer_getoverrun.2:141
11995 msgid ""
11996 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
11997 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
11998 "B<time>(7)"
11999 msgstr ""
12000 "B<clock_gettime>(2), B<sigaction>(2), B<signalfd>(2), B<sigwaitinfo>(2), "
12001 "B<timer_create>(2), B<timer_delete>(2), B<timer_settime>(2), B<signal>(7), "
12002 "B<time>(7)"
12003
12004 #. type: TH
12005 #: build/C/man2/timer_settime.2:26
12006 #, no-wrap
12007 msgid "TIMER_SETTIME"
12008 msgstr "TIMER_SETTIME"
12009
12010 #. type: TH
12011 #: build/C/man2/timer_settime.2:26
12012 #, no-wrap
12013 msgid "2012-10-15"
12014 msgstr "2012-10-15"
12015
12016 #. type: Plain text
12017 #: build/C/man2/timer_settime.2:30
12018 msgid ""
12019 "timer_settime, timer_gettime - arm/disarm and fetch state of POSIX per-"
12020 "process timer"
12021 msgstr ""
12022
12023 #. type: Plain text
12024 #: build/C/man2/timer_settime.2:38
12025 #, no-wrap
12026 msgid ""
12027 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
12028 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
12029 "B<                  struct itimerspec * >I<old_value>B<);>\n"
12030 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
12031 msgstr ""
12032 "B<int timer_settime(timer_t >I<timerid>B<, int >I<flags>B<,>\n"
12033 "B<                  const struct itimerspec *>I<new_value>B<,>\n"
12034 "B<                  struct itimerspec * >I<old_value>B<);>\n"
12035 "B<int timer_gettime(timer_t >I<timerid>B<, struct itimerspec *>I<curr_value>B<);>\n"
12036
12037 #. type: Plain text
12038 #: build/C/man2/timer_settime.2:50
12039 msgid ""
12040 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12041 msgstr ""
12042 "B<timer_settime>(), B<timer_gettime>(): _POSIX_C_SOURCE\\ E<gt>=\\ 199309L"
12043
12044 #. type: Plain text
12045 #: build/C/man2/timer_settime.2:63
12046 msgid ""
12047 "B<timer_settime>()  arms or disarms the timer identified by I<timerid>.  The "
12048 "I<new_value> argument is pointer to an I<itimerspec> structure that "
12049 "specifies the new initial value and the new interval for the timer.  The "
12050 "I<itimerspec> structure is defined as follows:"
12051 msgstr ""
12052
12053 #. type: Plain text
12054 #: build/C/man2/timer_settime.2:70 build/C/man2/timerfd_create.2:128
12055 #, no-wrap
12056 msgid ""
12057 "struct timespec {\n"
12058 "    time_t tv_sec;                /* Seconds */\n"
12059 "    long   tv_nsec;               /* Nanoseconds */\n"
12060 "};\n"
12061 msgstr ""
12062 "struct timespec {\n"
12063 "    time_t tv_sec;                /* Seconds */\n"
12064 "    long   tv_nsec;               /* Nanoseconds */\n"
12065 "};\n"
12066
12067 #. type: Plain text
12068 #: build/C/man2/timer_settime.2:75
12069 #, no-wrap
12070 msgid ""
12071 "struct itimerspec {\n"
12072 "    struct timespec it_interval;  /* Timer interval */\n"
12073 "    struct timespec it_value;     /* Initial expiration */\n"
12074 "};\n"
12075 msgstr ""
12076 "struct itimerspec {\n"
12077 "    struct timespec it_interval;  /* Timer interval */\n"
12078 "    struct timespec it_value;     /* Initial expiration */\n"
12079 "};\n"
12080
12081 #. type: Plain text
12082 #: build/C/man2/timer_settime.2:87
12083 msgid ""
12084 "Each of the substructures of the I<itimerspec> structure is a I<timespec> "
12085 "structure that allows a time value to be specified in seconds and "
12086 "nanoseconds.  These time values are measured according to the clock that was "
12087 "specified when the timer was created by B<timer_create>(2)"
12088 msgstr ""
12089
12090 #. type: Plain text
12091 #: build/C/man2/timer_settime.2:101
12092 msgid ""
12093 "If I<new_value-E<gt>it_value> specifies a nonzero value (i.e., either "
12094 "subfield is nonzero), then B<timer_settime>()  arms (starts) the timer, "
12095 "setting it to initially expire at the given time.  (If the timer was already "
12096 "armed, then the previous settings are overwritten.)  If I<new_value-"
12097 "E<gt>it_value> specifies a zero value (i.e., both subfields are zero), then "
12098 "the timer is disarmed."
12099 msgstr ""
12100
12101 #. type: Plain text
12102 #: build/C/man2/timer_settime.2:113
12103 msgid ""
12104 "The I<new_value-E<gt>it_interval> field specifies the period of the timer, "
12105 "in seconds and nanoseconds.  If this field is nonzero, then each time that "
12106 "an armed timer expires, the timer is reloaded from the value specified in "
12107 "I<new_value-E<gt>it_interval>.  If I<new_value-E<gt>it_interval> specifies a "
12108 "zero value then the timer expires just once, at the time specified by "
12109 "I<it_value>."
12110 msgstr ""
12111
12112 #.  By experiment: the overrun count is set correctly, for CLOCK_REALTIME.
12113 #. type: Plain text
12114 #: build/C/man2/timer_settime.2:134
12115 msgid ""
12116 "By default, the initial expiration time specified in I<new_value-"
12117 "E<gt>it_value> is interpreted relative to the current time on the timer's "
12118 "clock at the time of the call.  This can be modified by specifying "
12119 "B<TIMER_ABSTIME> in I<flags>, in which case I<new_value-E<gt>it_value> is "
12120 "interpreted as an absolute value as measured on the timer's clock; that is, "
12121 "the timer will expire when the clock value reaches the value specified by "
12122 "I<new_value-E<gt>it_value>.  If the specified absolute time has already "
12123 "passed, then the timer expires immediately, and the overrun count (see "
12124 "B<timer_getoverrun>(2))  will be set correctly."
12125 msgstr ""
12126
12127 #.  Similar remarks might apply with respect to process and thread CPU time
12128 #.  clocks, but these clocks are not currently (2.6.28) settable on Linux.
12129 #. type: Plain text
12130 #: build/C/man2/timer_settime.2:144
12131 msgid ""
12132 "If the value of the B<CLOCK_REALTIME> clock is adjusted while an absolute "
12133 "timer based on that clock is armed, then the expiration of the timer will be "
12134 "appropriately adjusted.  Adjustments to the B<CLOCK_REALTIME> clock have no "
12135 "effect on relative timers based on that clock."
12136 msgstr ""
12137
12138 #. type: Plain text
12139 #: build/C/man2/timer_settime.2:153
12140 msgid ""
12141 "If I<old_value> is not NULL, then it points to a buffer that is used to "
12142 "return the previous interval of the timer (in I<old_value-"
12143 "E<gt>it_interval>)  and the amount of time until the timer would previously "
12144 "have next expired (in I<old_value-E<gt>it_value>)."
12145 msgstr ""
12146
12147 #. type: Plain text
12148 #: build/C/man2/timer_settime.2:173
12149 msgid ""
12150 "B<timer_gettime>()  returns the time until next expiration, and the "
12151 "interval, for the timer specified by I<timerid>, in the buffer pointed to by "
12152 "I<curr_value>.  The time remaining until the next timer expiration is "
12153 "returned in I<curr_value-E<gt>it_value>; this is always a relative value, "
12154 "regardless of whether the B<TIMER_ABSTIME> flag was used when arming the "
12155 "timer.  If the value returned in I<curr_value-E<gt>it_value> is zero, then "
12156 "the timer is currently disarmed.  The timer interval is returned in "
12157 "I<curr_value-E<gt>it_interval>.  If the value returned in I<curr_value-"
12158 "E<gt>it_interval> is zero, then this is a \"one-shot\" timer."
12159 msgstr ""
12160
12161 #. type: Plain text
12162 #: build/C/man2/timer_settime.2:182
12163 msgid ""
12164 "On success, B<timer_settime>()  and B<timer_gettime>()  return 0.  On error, "
12165 "-1 is returned, and I<errno> is set to indicate the error."
12166 msgstr ""
12167
12168 #. type: Plain text
12169 #: build/C/man2/timer_settime.2:184
12170 msgid "These functions may fail with the following errors:"
12171 msgstr ""
12172
12173 #. type: Plain text
12174 #: build/C/man2/timer_settime.2:191
12175 msgid "I<new_value>, I<old_value>, or I<curr_value> is not a valid pointer."
12176 msgstr ""
12177
12178 #.  FIXME . eventually: invalid value in flags
12179 #. type: Plain text
12180 #: build/C/man2/timer_settime.2:196
12181 msgid "I<timerid> is invalid."
12182 msgstr ""
12183
12184 #. type: Plain text
12185 #: build/C/man2/timer_settime.2:199
12186 msgid "B<timer_settime>()  may fail with the following errors:"
12187 msgstr ""
12188
12189 #. type: Plain text
12190 #: build/C/man2/timer_settime.2:205
12191 msgid ""
12192 "I<new_value.it_value> is negative; or I<new_value.it_value.tv_nsec> is "
12193 "negative or greater than 999,999,999."
12194 msgstr ""
12195
12196 #. type: Plain text
12197 #: build/C/man2/timer_settime.2:207
12198 msgid "These system calls are available since Linux 2.6."
12199 msgstr ""
12200
12201 #. type: Plain text
12202 #: build/C/man2/timer_settime.2:216
12203 msgid "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12204 msgstr "B<timer_create>(2), B<timer_getoverrun>(2), B<time>(7)"
12205
12206 #. type: TH
12207 #: build/C/man2/timerfd_create.2:21
12208 #, no-wrap
12209 msgid "TIMERFD_CREATE"
12210 msgstr "TIMERFD_CREATE"
12211
12212 #. type: TH
12213 #: build/C/man2/timerfd_create.2:21
12214 #, no-wrap
12215 msgid "2011-09-14"
12216 msgstr "2011-09-14"
12217
12218 #. type: Plain text
12219 #: build/C/man2/timerfd_create.2:25
12220 msgid ""
12221 "timerfd_create, timerfd_settime, timerfd_gettime - timers that notify via "
12222 "file descriptors"
12223 msgstr ""
12224 "timerfd_create, timerfd_settime, timerfd_gettime - ファイルディスクリプタ経由"
12225 "で通知するタイマー"
12226
12227 #. type: Plain text
12228 #: build/C/man2/timerfd_create.2:28
12229 #, no-wrap
12230 msgid "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12231 msgstr "B<#include E<lt>sys/timerfd.hE<gt>>\n"
12232
12233 #. type: Plain text
12234 #: build/C/man2/timerfd_create.2:30
12235 #, no-wrap
12236 msgid "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12237 msgstr "B<int timerfd_create(int >I<clockid>B<, int >I<flags>B<);>\n"
12238
12239 #. type: Plain text
12240 #: build/C/man2/timerfd_create.2:34
12241 #, no-wrap
12242 msgid ""
12243 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12244 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12245 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12246 msgstr ""
12247 "B<int timerfd_settime(int >I<fd>B<, int >I<flags>B<,>\n"
12248 "B<                    const struct itimerspec *>I<new_value>B<,>\n"
12249 "B<                    struct itimerspec *>I<old_value>B<);>\n"
12250
12251 #. type: Plain text
12252 #: build/C/man2/timerfd_create.2:36
12253 #, no-wrap
12254 msgid "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12255 msgstr "B<int timerfd_gettime(int >I<fd>B<, struct itimerspec *>I<curr_value>B<);>\n"
12256
12257 #. type: Plain text
12258 #: build/C/man2/timerfd_create.2:49
12259 msgid ""
12260 "These system calls create and operate on a timer that delivers timer "
12261 "expiration notifications via a file descriptor.  They provide an alternative "
12262 "to the use of B<setitimer>(2)  or B<timer_create>(2), with the advantage "
12263 "that the file descriptor may be monitored by B<select>(2), B<poll>(2), and "
12264 "B<epoll>(7)."
12265 msgstr ""
12266 "これらのシステムコールは、満了通知をファイルディスクリプタ経由で配送する タイ"
12267 "マーの生成と操作を行う。 これらは、 B<setitimer>(2)  や B<timer_create>(2)  "
12268 "を用いる方法の代わりとなるものであり、このファイルディスクリプタを B<select>"
12269 "(2), B<poll>(2), B<epoll>(7)  で監視できるという利点がある。"
12270
12271 #. type: Plain text
12272 #: build/C/man2/timerfd_create.2:61
12273 msgid ""
12274 "The use of these three system calls is analogous to the use of "
12275 "B<timer_create>(2), B<timer_settime>(2), and B<timer_gettime>(2).  (There is "
12276 "no analog of B<timer_getoverrun>(2), since that functionality is provided by "
12277 "B<read>(2), as described below.)"
12278 msgstr ""
12279 "これらのシステムコールを使うのは、それぞれ B<timer_create>(2), "
12280 "B<timer_settime>(2), B<timer_gettime>(2)  を使うのと同様である "
12281 "(B<timer_getoverrun>(2)  に対応するものはなく、以下で説明するように この機能"
12282 "は B<read>(2)  により提供される)。"
12283
12284 #. type: SS
12285 #: build/C/man2/timerfd_create.2:61
12286 #, no-wrap
12287 msgid "timerfd_create()"
12288 msgstr "timerfd_create()"
12289
12290 #. type: Plain text
12291 #: build/C/man2/timerfd_create.2:80
12292 msgid ""
12293 "B<timerfd_create>()  creates a new timer object, and returns a file "
12294 "descriptor that refers to that timer.  The I<clockid> argument specifies the "
12295 "clock that is used to mark the progress of the timer, and must be either "
12296 "B<CLOCK_REALTIME> or B<CLOCK_MONOTONIC>.  B<CLOCK_REALTIME> is a settable "
12297 "system-wide clock.  B<CLOCK_MONOTONIC> is a nonsettable clock that is not "
12298 "affected by discontinuous changes in the system clock (e.g., manual changes "
12299 "to system time).  The current value of each of these clocks can be retrieved "
12300 "using B<clock_gettime>(2)."
12301 msgstr ""
12302 "B<timerfd_create>()  は新規のタイマーオブジェクトを生成し、そのタイマーを参照"
12303 "するファイル ディスクリプタを返す。 I<clockid> 引き数は、タイマーの進捗を管理"
12304 "するためのクロックを指定するもので、 B<CLOCK_REALTIME> か B<CLOCK_MONOTONIC> "
12305 "のいずれかでなければならない。 B<CLOCK_REALTIME> はシステム全体で使用されるク"
12306 "ロックで、このクロックは変更可能である。 B<CLOCK_MONOTONIC> は変更されること"
12307 "のないクロックで、(システム時刻の手動での変更などの)  システムクロックの不連"
12308 "続な変化の影響を受けない。 これらのクロックの現在の値は B<clock_gettime>(2)  "
12309 "を使って取得できる。"
12310
12311 #. type: Plain text
12312 #: build/C/man2/timerfd_create.2:85
12313 msgid ""
12314 "Starting with Linux 2.6.27, the following values may be bitwise ORed in "
12315 "I<flags> to change the behavior of B<timerfd_create>():"
12316 msgstr ""
12317 "Linux 2.6.27 以降では、 以下の値のいくつかをビット単位の論理和 (OR) で指定す"
12318 "ることで、 B<timerfd_create>()  の振舞いを変更することができる。"
12319
12320 #. type: TP
12321 #: build/C/man2/timerfd_create.2:85
12322 #, no-wrap
12323 msgid "B<TFD_NONBLOCK>"
12324 msgstr "B<TFD_NONBLOCK>"
12325
12326 #. type: TP
12327 #: build/C/man2/timerfd_create.2:93
12328 #, no-wrap
12329 msgid "B<TFD_CLOEXEC>"
12330 msgstr "B<TFD_CLOEXEC>"
12331
12332 #. type: Plain text
12333 #: build/C/man2/timerfd_create.2:107
12334 msgid ""
12335 "In Linux versions up to and including 2.6.26, I<flags> must be specified as "
12336 "zero."
12337 msgstr ""
12338 "バージョン 2.6.26 以前の Linux では、 I<flags> 引き数は未使用であり、0 を指定"
12339 "しなければならない。"
12340
12341 #. type: SS
12342 #: build/C/man2/timerfd_create.2:107
12343 #, no-wrap
12344 msgid "timerfd_settime()"
12345 msgstr "timerfd_settime()"
12346
12347 #. type: Plain text
12348 #: build/C/man2/timerfd_create.2:112
12349 msgid ""
12350 "B<timerfd_settime>()  arms (starts) or disarms (stops)  the timer referred "
12351 "to by the file descriptor I<fd>."
12352 msgstr ""
12353 "B<timerfd_settime>()  は、ファイルディスクリプタ I<fd> により参照されるタイ"
12354 "マーを開始したり停止したりする。"
12355
12356 #. type: Plain text
12357 #: build/C/man2/timerfd_create.2:121
12358 msgid ""
12359 "The I<new_value> argument specifies the initial expiration and interval for "
12360 "the timer.  The I<itimer> structure used for this argument contains two "
12361 "fields, each of which is in turn a structure of type I<timespec>:"
12362 msgstr ""
12363 "I<new_value> 引き数は、タイマーの満了時間 (expiration) の初期値と間隔 "
12364 "(interval) を 指定する。この引き数で使用されている I<itimerspec> 構造体には "
12365 "2 つのフィールドがあり、各フィールドは I<timespec> 型の構造体である。"
12366
12367 #. type: Plain text
12368 #: build/C/man2/timerfd_create.2:133
12369 #, no-wrap
12370 msgid ""
12371 "struct itimerspec {\n"
12372 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12373 "    struct timespec it_value;     /* Initial expiration */\n"
12374 "};\n"
12375 msgstr ""
12376 "struct itimerspec {\n"
12377 "    struct timespec it_interval;  /* Interval for periodic timer */\n"
12378 "    struct timespec it_value;     /* Initial expiration */\n"
12379 "};\n"
12380
12381 #. type: Plain text
12382 #: build/C/man2/timerfd_create.2:145
12383 msgid ""
12384 "I<new_value.it_value> specifies the initial expiration of the timer, in "
12385 "seconds and nanoseconds.  Setting either field of I<new_value.it_value> to a "
12386 "nonzero value arms the timer.  Setting both fields of I<new_value.it_value> "
12387 "to zero disarms the timer."
12388 msgstr ""
12389 "I<new_value.it_value> はタイマーの満了時間の初期値を、秒とナノ秒で指定する。 "
12390 "I<new_value.it_value> のフィールドのうち少なくとも一方に 0 以外の値を設定する"
12391 "と、 タイマーが開始される。 両方のフィールドに 0 を設定すると、タイマーが停止"
12392 "する。"
12393
12394 #. type: Plain text
12395 #: build/C/man2/timerfd_create.2:154
12396 msgid ""
12397 "Setting one or both fields of I<new_value.it_interval> to nonzero values "
12398 "specifies the period, in seconds and nanoseconds, for repeated timer "
12399 "expirations after the initial expiration.  If both fields of I<new_value."
12400 "it_interval> are zero, the timer expires just once, at the time specified by "
12401 "I<new_value.it_value>."
12402 msgstr ""
12403 "I<new_value.it_interval> はタイマーの一回目の満了後に繰り返しタイマーの満了間"
12404 "隔を、秒とナノ秒で指定する。 I<new_value.it_interval> のフィールドのうち少な"
12405 "くとも一方に 0 以外の値を設定すると、 繰り返しタイマーが有効になる。 両方の"
12406 "フィールドに 0 を設定した場合、タイマーは I<new_value.it_value> で指定された"
12407 "時間後に、一回だけ満了して停止する。"
12408
12409 #. type: Plain text
12410 #: build/C/man2/timerfd_create.2:170
12411 msgid ""
12412 "The I<flags> argument is either 0, to start a relative timer (I<new_value."
12413 "it_value> specifies a time relative to the current value of the clock "
12414 "specified by I<clockid>), or B<TFD_TIMER_ABSTIME>, to start an absolute "
12415 "timer (I<new_value.it_value> specifies an absolute time for the clock "
12416 "specified by I<clockid>; that is, the timer will expire when the value of "
12417 "that clock reaches the value specified in I<new_value.it_value>)."
12418 msgstr ""
12419 "I<flags> 引き数には 0 か B<TFD_TIMER_ABSTIME> を指定する。 0 は相対時刻\n"
12420 "タイマーを意味し、 I<new_value.it_value> では I<clockid> で指定された\n"
12421 "クロックの現在の値からの相対的な時刻を指定する。 B<TFD_TIMER_ABSTIME>\n"
12422 "は絶対時刻タイマーを意味し、 I<new_value.it_interval> では I<clockid>\n"
12423 "で指定されたクロックの絶対時刻を指定する。\n"
12424 "つまり、クロックの値が I<new_value.it_interval> で指定された時刻に\n"
12425 "達したら、タイマーが満了する。"
12426
12427 #. type: Plain text
12428 #: build/C/man2/timerfd_create.2:181
12429 msgid ""
12430 "If the I<old_value> argument is not NULL, then the I<itimerspec> structure "
12431 "that it points to is used to return the setting of the timer that was "
12432 "current at the time of the call; see the description of B<timerfd_gettime>"
12433 "()  following."
12434 msgstr ""
12435 "I<old_value> 引き数が NULL でない場合、 I<old_value> 引き数が指す\n"
12436 "I<itimerspec> 構造体は、 B<timerfd_settime>() を呼び出した時点での\n"
12437 "タイマーの設定を返すのに使用される。\n"
12438 "下記の B<timerfd_gettime>() の説明を参照。"
12439
12440 #. type: SS
12441 #: build/C/man2/timerfd_create.2:181
12442 #, no-wrap
12443 msgid "timerfd_gettime()"
12444 msgstr "timerfd_gettime()"
12445
12446 #. type: Plain text
12447 #: build/C/man2/timerfd_create.2:190
12448 msgid ""
12449 "B<timerfd_gettime>()  returns, in I<curr_value>, an I<itimerspec> structure "
12450 "that contains the current setting of the timer referred to by the file "
12451 "descriptor I<fd>."
12452 msgstr ""
12453 "B<timerfd_gettime>()  は、ファイルディスクリプタ I<fd> で参照されるタイマーの"
12454 "現在の設定が入った I<itimerspec> 構造体を、 I<curr_value> に格納して返す。"
12455
12456 #. type: Plain text
12457 #: build/C/man2/timerfd_create.2:200
12458 msgid ""
12459 "The I<it_value> field returns the amount of time until the timer will next "
12460 "expire.  If both fields of this structure are zero, then the timer is "
12461 "currently disarmed.  This field always contains a relative value, regardless "
12462 "of whether the B<TFD_TIMER_ABSTIME> flag was specified when setting the "
12463 "timer."
12464 msgstr ""
12465 "I<it_value> フィールドは、タイマーが次に満了するまでの残り時間を返す。 この構"
12466 "造体の両方のフィールドが 0 であれば、タイマーは現在停止している。 タイマー設"
12467 "定時に B<TFD_TIMER_ABSTIME> フラグが指定されたかに関わらず、このフィールドは"
12468 "常に相対値が格納される。"
12469
12470 #. type: Plain text
12471 #: build/C/man2/timerfd_create.2:207
12472 msgid ""
12473 "The I<it_interval> field returns the interval of the timer.  If both fields "
12474 "of this structure are zero, then the timer is set to expire just once, at "
12475 "the time specified by I<curr_value.it_value>."
12476 msgstr ""
12477 "I<it_interval> フィールドは、タイマーの間隔を返す。 この構造体の両方のフィー"
12478 "ルドが 0 であれば、タイマーは I<new_value.it_value> で指定された時間後に一回"
12479 "だけ満了して停止するように設定されている。"
12480
12481 #. type: SS
12482 #: build/C/man2/timerfd_create.2:207
12483 #, no-wrap
12484 msgid "Operating on a timer file descriptor"
12485 msgstr "タイマー・ファイルディスクリプタに対する操作"
12486
12487 #. type: Plain text
12488 #: build/C/man2/timerfd_create.2:211
12489 msgid ""
12490 "The file descriptor returned by B<timerfd_create>()  supports the following "
12491 "operations:"
12492 msgstr ""
12493 "B<timerfd_create>()  が返すファイルディスクリプタは以下の操作をサポートしてい"
12494 "る。"
12495
12496 #. type: Plain text
12497 #: build/C/man2/timerfd_create.2:225
12498 #, fuzzy
12499 #| msgid ""
12500 #| "If the timer has already expired one or more times since its settings "
12501 #| "were last modified using B<timerfd_settime>(), or since the last "
12502 #| "successful B<read>(2), then the buffer given to B<read>(2)  returns an "
12503 #| "unsigned 8-byte integer (I<uint64_t>)  containing the number of "
12504 #| "expirations that have occurred.  (The returned value is in host byte "
12505 #| "order, i.e., the native byte order for integers on the host machine.)"
12506 msgid ""
12507 "If the timer has already expired one or more times since its settings were "
12508 "last modified using B<timerfd_settime>(), or since the last successful "
12509 "B<read>(2), then the buffer given to B<read>(2)  returns an unsigned 8-byte "
12510 "integer (I<uint64_t>)  containing the number of expirations that have "
12511 "occurred.  (The returned value is in host byte order\\(emthat is, the native "
12512 "byte order for integers on the host machine.)"
12513 msgstr ""
12514 "B<timerfd_settime>()  を使ってタイマーの設定が最後変更されて以降、または "
12515 "B<read>(2)  の呼び出しに最後に成功して以降に、タイマーの満了が一回以上発生し"
12516 "ていれば、 B<read>(2)  に渡されたバッファに、タイマー満了回数を示す 8 バイト"
12517 "の unsigned 型の整数 (I<uint64_t>)  が返される (返される値はホストバイトオー"
12518 "ダ、つまりそのホストマシンにおける 整数の通常のバイトオーダである)。"
12519
12520 #. type: Plain text
12521 #: build/C/man2/timerfd_create.2:238
12522 msgid ""
12523 "If no timer expirations have occurred at the time of the B<read>(2), then "
12524 "the call either blocks until the next timer expiration, or fails with the "
12525 "error B<EAGAIN> if the file descriptor has been made nonblocking (via the "
12526 "use of the B<fcntl>(2)  B<F_SETFL> operation to set the B<O_NONBLOCK> flag)."
12527 msgstr ""
12528 "B<read>(2)  を行った時点でタイマーの満了が発生していなければ、 B<read>(2)  は"
12529 "停止 (block) する、もしくはファイルディスクリプタが 非停止 (nonblocking) に設"
12530 "定されている場合はエラー B<EAGAIN> で失敗する (非停止モードにするには、 "
12531 "B<fcntl>(2)  の B<F_SETFL> 命令で B<O_NONBLOCK> フラグをセットする)。"
12532
12533 #. type: Plain text
12534 #: build/C/man2/timerfd_create.2:244
12535 msgid ""
12536 "A B<read>(2)  will fail with the error B<EINVAL> if the size of the supplied "
12537 "buffer is less than 8 bytes."
12538 msgstr ""
12539 "渡されたバッファの大きさが 8 バイト未満の場合、 B<read>(2)  はエラー "
12540 "B<EINVAL> で失敗する。"
12541
12542 #. type: Plain text
12543 #: build/C/man2/timerfd_create.2:255
12544 msgid ""
12545 "The file descriptor is readable (the B<select>(2)  I<readfds> argument; the "
12546 "B<poll>(2)  B<POLLIN> flag)  if one or more timer expirations have occurred."
12547 msgstr ""
12548 "一つ以上のタイマー満了が発生していれば、 ファイルディスクリプタは読み出し可能"
12549 "となる (B<select>(2)  の I<readfds> 引き数や B<poll>(2)  の B<POLLIN> フラ"
12550 "グ)。"
12551
12552 #. type: Plain text
12553 #: build/C/man2/timerfd_create.2:262
12554 msgid ""
12555 "The file descriptor also supports the other file-descriptor multiplexing "
12556 "APIs: B<pselect>(2), B<ppoll>(2), and B<epoll>(7)."
12557 msgstr ""
12558 "このファイルディスクリプタは、他のファイルディスクリプタ多重 API である "
12559 "B<pselect>(2), B<ppoll>(2), B<epoll>(7)  もサポートしている。"
12560
12561 #. type: Plain text
12562 #: build/C/man2/timerfd_create.2:269
12563 msgid ""
12564 "When the file descriptor is no longer required it should be closed.  When "
12565 "all file descriptors associated with the same timer object have been closed, "
12566 "the timer is disarmed and its resources are freed by the kernel."
12567 msgstr ""
12568 "ファイルディスクリプタがそれ以降は必要なくなった際には、クローズすべきであ"
12569 "る。 同じ timer オブジェクトに関連付けられたファイルディスクリプタが全て ク"
12570 "ローズされると、そのタイマーは解除され、 そのオブジェクト用の資源がカーネルに"
12571 "より解放される。"
12572
12573 #. type: Plain text
12574 #: build/C/man2/timerfd_create.2:281
12575 msgid ""
12576 "After a B<fork>(2), the child inherits a copy of the file descriptor created "
12577 "by B<timerfd_create>().  The file descriptor refers to the same underlying "
12578 "timer object as the corresponding file descriptor in the parent, and B<read>"
12579 "(2)s in the child will return information about expirations of the timer."
12580 msgstr ""
12581 "B<fork>(2)  が行われると、子プロセスは B<timerfd_create>()  により生成された"
12582 "ファイルディスクリプタのコピーを 継承する。そのファイルディスクリプタは、親プ"
12583 "ロセスの対応する ファイルディスクリプタと同じタイマーオブジェクトを参照してお"
12584 "り、 子プロセスの B<read>(2)  でも同じタイマーの満了に関する情報が返される。"
12585
12586 #. type: Plain text
12587 #: build/C/man2/timerfd_create.2:287
12588 msgid ""
12589 "A file descriptor created by B<timerfd_create>()  is preserved across "
12590 "B<execve>(2), and continues to generate timer expirations if the timer was "
12591 "armed."
12592 msgstr ""
12593 "B<execve>(2)  の前後で B<timerfd_create>()  により生成されたファイルディスク"
12594 "リプタは保持され、 タイマーが開始されていた場合にはタイマーの満了が発生し続け"
12595 "る。"
12596
12597 #. type: Plain text
12598 #: build/C/man2/timerfd_create.2:294
12599 msgid ""
12600 "On success, B<timerfd_create>()  returns a new file descriptor.  On error, "
12601 "-1 is returned and I<errno> is set to indicate the error."
12602 msgstr ""
12603 "成功すると、 B<timerfd_create>()  は新しいファイルディスクリプタを返す。 エ"
12604 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12605
12606 #. type: Plain text
12607 #: build/C/man2/timerfd_create.2:302
12608 msgid ""
12609 "B<timerfd_settime>()  and B<timerfd_gettime>()  return 0 on success; on "
12610 "error they return -1, and set I<errno> to indicate the error."
12611 msgstr ""
12612 "B<timerfd_settime>()  と B<timerfd_gettime>()  は成功すると 0 を返す。 エラー"
12613 "の場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12614
12615 #. type: Plain text
12616 #: build/C/man2/timerfd_create.2:305
12617 msgid "B<timerfd_create>()  can fail with the following errors:"
12618 msgstr "B<timerfd_create>()  は以下のエラーで失敗する可能性がある。"
12619
12620 #. type: Plain text
12621 #: build/C/man2/timerfd_create.2:313
12622 msgid ""
12623 "The I<clockid> argument is neither B<CLOCK_MONOTONIC> nor B<CLOCK_REALTIME>;"
12624 msgstr ""
12625 "I<clockid> 引き数が B<CLOCK_MONOTONIC> でも B<CLOCK_REALTIME> でもない。"
12626
12627 #. type: Plain text
12628 #: build/C/man2/timerfd_create.2:333
12629 msgid "There was insufficient kernel memory to create the timer."
12630 msgstr "タイマーを作成するのに十分なカーネルメモリがなかった。"
12631
12632 #. type: Plain text
12633 #: build/C/man2/timerfd_create.2:338
12634 msgid ""
12635 "B<timerfd_settime>()  and B<timerfd_gettime>()  can fail with the following "
12636 "errors:"
12637 msgstr ""
12638 "B<timerfd_settime>()  と B<timerfd_gettime>()  は以下のエラーで失敗する可能性"
12639 "がある。"
12640
12641 #. type: Plain text
12642 #: build/C/man2/timerfd_create.2:342
12643 msgid "I<fd> is not a valid file descriptor."
12644 msgstr "I<fd> が有効なファイルディスクリプタでない。"
12645
12646 #. type: Plain text
12647 #: build/C/man2/timerfd_create.2:353
12648 msgid "I<fd> is not a valid timerfd file descriptor."
12649 msgstr "I<fd> が有効な timerfd ファイルディスクリプタでない。"
12650
12651 #. type: Plain text
12652 #: build/C/man2/timerfd_create.2:356
12653 msgid "B<timerfd_settime>()  can also fail with the following errors:"
12654 msgstr "B<timerfd_settime>()  は以下のエラーで失敗することもある。"
12655
12656 #. type: Plain text
12657 #: build/C/man2/timerfd_create.2:362
12658 msgid ""
12659 "I<new_value> is not properly initialized (one of the I<tv_nsec> falls "
12660 "outside the range zero to 999,999,999)."
12661 msgstr ""
12662 "I<new_value> が適切に初期化されていない (I<tv_nsec> の一つが 0 から "
12663 "999,999,999 までの範囲に入っていない)。"
12664
12665 #.  This case only checked since 2.6.29, and 2.2.2[78].some-stable-version.
12666 #.  In older kernel versions, no check was made for invalid flags.
12667 #. type: Plain text
12668 #: build/C/man2/timerfd_create.2:368
12669 msgid "I<flags> is invalid."
12670 msgstr "I<flags> が無効である。"
12671
12672 #. type: Plain text
12673 #: build/C/man2/timerfd_create.2:371
12674 msgid ""
12675 "These system calls are available on Linux since kernel 2.6.25.  Library "
12676 "support is provided by glibc since version 2.8."
12677 msgstr ""
12678 "これらのシステムコールはカーネル 2.6.25 以降の Linux で利用可能である。 ライ"
12679 "ブラリ側のサポートはバージョン 2.8 以降の glibc で提供されている。"
12680
12681 #.  2.6.29
12682 #. type: Plain text
12683 #: build/C/man2/timerfd_create.2:379
12684 msgid ""
12685 "Currently, B<timerfd_create>()  supports fewer types of clock IDs than "
12686 "B<timer_create>(2)."
12687 msgstr ""
12688 "現在のところ、 B<timerfd_create>()  が対応している clockid の種類は "
12689 "B<timer_create>(2)  よりも少ない。"
12690
12691 #. type: Plain text
12692 #: build/C/man2/timerfd_create.2:388
12693 msgid ""
12694 "The following program creates a timer and then monitors its progress.  The "
12695 "program accepts up to three command-line arguments.  The first argument "
12696 "specifies the number of seconds for the initial expiration of the timer.  "
12697 "The second argument specifies the interval for the timer, in seconds.  The "
12698 "third argument specifies the number of times the program should allow the "
12699 "timer to expire before terminating.  The second and third command-line "
12700 "arguments are optional."
12701 msgstr ""
12702 "以下のプログラムは、タイマーを作成し、その進捗をモニターするものである。 この"
12703 "プログラムは最大で 3 個のコマンドライン引き数を取り、 第一引き数ではタイマー"
12704 "の満了時間の初期値 (秒数単位) を、 第二引き数ではタイマーの間隔 (秒数単位) "
12705 "を、 第三引き数ではタイマーが何回満了したらプログラムが終了するかを指定す"
12706 "る。 第二引き数と第三引き数は省略可能である。"
12707
12708 #. type: Plain text
12709 #: build/C/man2/timerfd_create.2:390 build/C/man2/wait.2:569
12710 msgid "The following shell session demonstrates the use of the program:"
12711 msgstr "以下のシェルのセッションはこのプログラムの使用例を示したものである。"
12712
12713 #. type: Plain text
12714 #: build/C/man2/timerfd_create.2:405
12715 #, no-wrap
12716 msgid ""
12717 "$B< a.out 3 1 100>\n"
12718 "0.000: timer started\n"
12719 "3.000: read: 1; total=1\n"
12720 "4.000: read: 1; total=2\n"
12721 "B<^Z >                 # type control-Z to suspend the program\n"
12722 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12723 "$ B<fg>                # Resume execution after a few seconds\n"
12724 "a.out 3 1 100\n"
12725 "9.660: read: 5; total=7\n"
12726 "10.000: read: 1; total=8\n"
12727 "11.000: read: 1; total=9\n"
12728 "B<^C >                 # type control-C to suspend the program\n"
12729 msgstr ""
12730 "$B< a.out 3 1 100>\n"
12731 "0.000: timer started\n"
12732 "3.000: read: 1; total=1\n"
12733 "4.000: read: 1; total=2\n"
12734 "B<^Z >                 # type control-Z to suspend the program\n"
12735 "[1]+  Stopped                 ./timerfd3_demo 3 1 100\n"
12736 "$ B<fg>                # Resume execution after a few seconds\n"
12737 "a.out 3 1 100\n"
12738 "9.660: read: 5; total=7\n"
12739 "10.000: read: 1; total=8\n"
12740 "11.000: read: 1; total=9\n"
12741 "B<^C >                 # type control-C to suspend the program\n"
12742
12743 #.  The commented out code here is what we currently need until
12744 #.  the required stuff is in glibc
12745 #. /* Link with -lrt */
12746 #. #define _GNU_SOURCE
12747 #. #include <sys/syscall.h>
12748 #. #include <unistd.h>
12749 #. #include <time.h>
12750 #. #if defined(__i386__)
12751 #. #define __NR_timerfd_create 322
12752 #. #define __NR_timerfd_settime 325
12753 #. #define __NR_timerfd_gettime 326
12754 #. #endif
12755 #. static int
12756 #. timerfd_create(int clockid, int flags)
12757 #. {
12758 #.     return syscall(__NR_timerfd_create, clockid, flags);
12759 #. }
12760 #. static int
12761 #. timerfd_settime(int fd, int flags, struct itimerspec *new_value,
12762 #.         struct itimerspec *curr_value)
12763 #. {
12764 #.     return syscall(__NR_timerfd_settime, fd, flags, new_value,
12765 #.                    curr_value);
12766 #. }
12767 #. static int
12768 #. timerfd_gettime(int fd, struct itimerspec *curr_value)
12769 #. {
12770 #.     return syscall(__NR_timerfd_gettime, fd, curr_value);
12771 #. }
12772 #. #define TFD_TIMER_ABSTIME (1 << 0)
12773 #. ////////////////////////////////////////////////////////////
12774 #. type: Plain text
12775 #: build/C/man2/timerfd_create.2:454
12776 #, no-wrap
12777 msgid ""
12778 "#include E<lt>sys/timerfd.hE<gt>\n"
12779 "#include E<lt>time.hE<gt>\n"
12780 "#include E<lt>unistd.hE<gt>\n"
12781 "#include E<lt>stdlib.hE<gt>\n"
12782 "#include E<lt>stdio.hE<gt>\n"
12783 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12784 msgstr ""
12785 "#include E<lt>sys/timerfd.hE<gt>\n"
12786 "#include E<lt>time.hE<gt>\n"
12787 "#include E<lt>unistd.hE<gt>\n"
12788 "#include E<lt>stdlib.hE<gt>\n"
12789 "#include E<lt>stdio.hE<gt>\n"
12790 "#include E<lt>stdint.hE<gt>        /* Definition of uint64_t */\n"
12791
12792 #. type: Plain text
12793 #: build/C/man2/timerfd_create.2:457
12794 #, no-wrap
12795 msgid ""
12796 "#define handle_error(msg) \\e\n"
12797 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
12798 msgstr ""
12799 "#define handle_error(msg) \\e\n"
12800 "        do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
12801
12802 #. type: Plain text
12803 #: build/C/man2/timerfd_create.2:465
12804 #, no-wrap
12805 msgid ""
12806 "static void\n"
12807 "print_elapsed_time(void)\n"
12808 "{\n"
12809 "    static struct timespec start;\n"
12810 "    struct timespec curr;\n"
12811 "    static int first_call = 1;\n"
12812 "    int secs, nsecs;\n"
12813 msgstr ""
12814 "static void\n"
12815 "print_elapsed_time(void)\n"
12816 "{\n"
12817 "    static struct timespec start;\n"
12818 "    struct timespec curr;\n"
12819 "    static int first_call = 1;\n"
12820 "    int secs, nsecs;\n"
12821
12822 #. type: Plain text
12823 #: build/C/man2/timerfd_create.2:471
12824 #, no-wrap
12825 msgid ""
12826 "    if (first_call) {\n"
12827 "        first_call = 0;\n"
12828 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
12829 "            handle_error(\"clock_gettime\");\n"
12830 "    }\n"
12831 msgstr ""
12832 "    if (first_call) {\n"
12833 "        first_call = 0;\n"
12834 "        if (clock_gettime(CLOCK_MONOTONIC, &start) == -1)\n"
12835 "            handle_error(\"clock_gettime\");\n"
12836 "    }\n"
12837
12838 #. type: Plain text
12839 #: build/C/man2/timerfd_create.2:474
12840 #, no-wrap
12841 msgid ""
12842 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
12843 "        handle_error(\"clock_gettime\");\n"
12844 msgstr ""
12845 "    if (clock_gettime(CLOCK_MONOTONIC, &curr) == -1)\n"
12846 "        handle_error(\"clock_gettime\");\n"
12847
12848 #. type: Plain text
12849 #: build/C/man2/timerfd_create.2:483
12850 #, no-wrap
12851 msgid ""
12852 "    secs = curr.tv_sec - start.tv_sec;\n"
12853 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
12854 "    if (nsecs E<lt> 0) {\n"
12855 "        secs--;\n"
12856 "        nsecs += 1000000000;\n"
12857 "    }\n"
12858 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
12859 "}\n"
12860 msgstr ""
12861 "    secs = curr.tv_sec - start.tv_sec;\n"
12862 "    nsecs = curr.tv_nsec - start.tv_nsec;\n"
12863 "    if (nsecs E<lt> 0) {\n"
12864 "        secs--;\n"
12865 "        nsecs += 1000000000;\n"
12866 "    }\n"
12867 "    printf(\"%d.%03d: \", secs, (nsecs + 500000) / 1000000);\n"
12868 "}\n"
12869
12870 #. type: Plain text
12871 #: build/C/man2/timerfd_create.2:492
12872 #, no-wrap
12873 msgid ""
12874 "int\n"
12875 "main(int argc, char *argv[])\n"
12876 "{\n"
12877 "    struct itimerspec new_value;\n"
12878 "    int max_exp, fd;\n"
12879 "    struct timespec now;\n"
12880 "    uint64_t exp, tot_exp;\n"
12881 "    ssize_t s;\n"
12882 msgstr ""
12883 "int\n"
12884 "main(int argc, char *argv[])\n"
12885 "{\n"
12886 "    struct itimerspec new_value;\n"
12887 "    int max_exp, fd;\n"
12888 "    struct timespec now;\n"
12889 "    uint64_t exp, tot_exp;\n"
12890 "    ssize_t s;\n"
12891
12892 #. type: Plain text
12893 #: build/C/man2/timerfd_create.2:498
12894 #, no-wrap
12895 msgid ""
12896 "    if ((argc != 2) && (argc != 4)) {\n"
12897 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
12898 "                argv[0]);\n"
12899 "        exit(EXIT_FAILURE);\n"
12900 "    }\n"
12901 msgstr ""
12902 "    if ((argc != 2) && (argc != 4)) {\n"
12903 "        fprintf(stderr, \"%s init-secs [interval-secs max-exp]\\en\",\n"
12904 "                argv[0]);\n"
12905 "        exit(EXIT_FAILURE);\n"
12906 "    }\n"
12907
12908 #. type: Plain text
12909 #: build/C/man2/timerfd_create.2:501
12910 #, no-wrap
12911 msgid ""
12912 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
12913 "        handle_error(\"clock_gettime\");\n"
12914 msgstr ""
12915 "    if (clock_gettime(CLOCK_REALTIME, &now) == -1)\n"
12916 "        handle_error(\"clock_gettime\");\n"
12917
12918 #. type: Plain text
12919 #: build/C/man2/timerfd_create.2:504
12920 #, no-wrap
12921 msgid ""
12922 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
12923 "       expiration and interval as specified in command line */\n"
12924 msgstr ""
12925 "    /* Create a CLOCK_REALTIME absolute timer with initial\n"
12926 "       expiration and interval as specified in command line */\n"
12927
12928 #. type: Plain text
12929 #: build/C/man2/timerfd_create.2:515
12930 #, no-wrap
12931 msgid ""
12932 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
12933 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
12934 "    if (argc == 2) {\n"
12935 "        new_value.it_interval.tv_sec = 0;\n"
12936 "        max_exp = 1;\n"
12937 "    } else {\n"
12938 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
12939 "        max_exp = atoi(argv[3]);\n"
12940 "    }\n"
12941 "    new_value.it_interval.tv_nsec = 0;\n"
12942 msgstr ""
12943 "    new_value.it_value.tv_sec = now.tv_sec + atoi(argv[1]);\n"
12944 "    new_value.it_value.tv_nsec = now.tv_nsec;\n"
12945 "    if (argc == 2) {\n"
12946 "        new_value.it_interval.tv_sec = 0;\n"
12947 "        max_exp = 1;\n"
12948 "    } else {\n"
12949 "        new_value.it_interval.tv_sec = atoi(argv[2]);\n"
12950 "        max_exp = atoi(argv[3]);\n"
12951 "    }\n"
12952 "    new_value.it_interval.tv_nsec = 0;\n"
12953
12954 #. type: Plain text
12955 #: build/C/man2/timerfd_create.2:519
12956 #, no-wrap
12957 msgid ""
12958 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
12959 "    if (fd == -1)\n"
12960 "        handle_error(\"timerfd_create\");\n"
12961 msgstr ""
12962 "    fd = timerfd_create(CLOCK_REALTIME, 0);\n"
12963 "    if (fd == -1)\n"
12964 "        handle_error(\"timerfd_create\");\n"
12965
12966 #. type: Plain text
12967 #: build/C/man2/timerfd_create.2:522
12968 #, no-wrap
12969 msgid ""
12970 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
12971 "        handle_error(\"timerfd_settime\");\n"
12972 msgstr ""
12973 "    if (timerfd_settime(fd, TFD_TIMER_ABSTIME, &new_value, NULL) == -1)\n"
12974 "        handle_error(\"timerfd_settime\");\n"
12975
12976 #. type: Plain text
12977 #: build/C/man2/timerfd_create.2:525
12978 #, no-wrap
12979 msgid ""
12980 "    print_elapsed_time();\n"
12981 "    printf(\"timer started\\en\");\n"
12982 msgstr ""
12983 "    print_elapsed_time();\n"
12984 "    printf(\"timer started\\en\");\n"
12985
12986 #. type: Plain text
12987 #: build/C/man2/timerfd_create.2:530
12988 #, no-wrap
12989 msgid ""
12990 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
12991 "        s = read(fd, &exp, sizeof(uint64_t));\n"
12992 "        if (s != sizeof(uint64_t))\n"
12993 "            handle_error(\"read\");\n"
12994 msgstr ""
12995 "    for (tot_exp = 0; tot_exp E<lt> max_exp;) {\n"
12996 "        s = read(fd, &exp, sizeof(uint64_t));\n"
12997 "        if (s != sizeof(uint64_t))\n"
12998 "            handle_error(\"read\");\n"
12999
13000 #. type: Plain text
13001 #: build/C/man2/timerfd_create.2:537
13002 #, no-wrap
13003 msgid ""
13004 "        tot_exp += exp;\n"
13005 "        print_elapsed_time();\n"
13006 "        printf(\"read: %llu; total=%llu\\en\",\n"
13007 "                (unsigned long long) exp,\n"
13008 "                (unsigned long long) tot_exp);\n"
13009 "    }\n"
13010 msgstr ""
13011 "        tot_exp += exp;\n"
13012 "        print_elapsed_time();\n"
13013 "        printf(\"read: %llu; total=%llu\\en\",\n"
13014 "                (unsigned long long) exp,\n"
13015 "                (unsigned long long) tot_exp);\n"
13016 "    }\n"
13017
13018 #. type: Plain text
13019 #: build/C/man2/timerfd_create.2:553
13020 msgid ""
13021 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
13022 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), B<timer_settime>"
13023 "(2), B<epoll>(7), B<time>(7)"
13024 msgstr ""
13025 "B<eventfd>(2), B<poll>(2), B<read>(2), B<select>(2), B<setitimer>(2), "
13026 "B<signalfd>(2), B<timer_create>(2), B<timer_gettime>(2), B<timer_settime>"
13027 "(2), B<epoll>(7), B<time>(7)"
13028
13029 #. type: TH
13030 #: build/C/man2/tkill.2:29
13031 #, no-wrap
13032 msgid "TKILL"
13033 msgstr "TKILL"
13034
13035 #. type: Plain text
13036 #: build/C/man2/tkill.2:32
13037 msgid "tkill, tgkill - send a signal to a thread"
13038 msgstr "tkill, tgkill - スレッドにシグナルを送る"
13039
13040 #. type: Plain text
13041 #: build/C/man2/tkill.2:35
13042 #, no-wrap
13043 msgid "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
13044 msgstr "B<int tkill(int >I<tid>B<, int >I<sig>B<);>\n"
13045
13046 #. type: Plain text
13047 #: build/C/man2/tkill.2:37
13048 #, no-wrap
13049 msgid "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
13050 msgstr "B<int tgkill(int >I<tgid>B<, int >I<tid>B<, int >I<sig>B<);>\n"
13051
13052 #. type: Plain text
13053 #: build/C/man2/tkill.2:54
13054 msgid ""
13055 "B<tgkill>()  sends the signal I<sig> to the thread with the thread ID I<tid> "
13056 "in the thread group I<tgid>.  (By contrast, B<kill>(2)  can be used to send "
13057 "a signal only to a process (i.e., thread group)  as a whole, and the signal "
13058 "will be delivered to an arbitrary thread within that process.)"
13059 msgstr ""
13060 "B<tgkill>()  はスレッド・グループ I<tgid> に属するスレッド ID が I<tid> のス"
13061 "レッドにシグナル I<sig> を送る。 (これに対し、 B<kill>(2)  は一つのプロセス "
13062 "(すなわち、スレッド・グループ) にまとめてシグナルを 送るのにだけ利用できる。 "
13063 "B<kill>(2)  で送信されたシグナルはプロセス内の任意のスレッドに配送される。)"
13064
13065 #.  FIXME: Maybe say something about the following:
13066 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=12889
13067 #.      Rich Felker <bugdal@aerifal.cx>
13068 #.      There is a race condition in pthread_kill: it is possible that,
13069 #.      between the time pthread_kill reads the pid/tid from the target
13070 #.      thread descriptor and the time it makes the tgkill syscall,
13071 #.      the target thread terminates and the same tid gets assigned
13072 #.      to a new thread in the same process.
13073 #.      (The tgkill syscall was designed to eliminate a similar race
13074 #.      condition in tkill, but it only succeeded in eliminating races
13075 #.      where the tid gets reused in a different process, and does not
13076 #.      help if the same tid gets assigned to a new thread in the
13077 #.      same process.)
13078 #.      The only solution I can see is to introduce a mutex that ensures
13079 #.      that a thread cannot exit while pthread_kill is being called on it.
13080 #.      Note that in most real-world situations, like almost all race
13081 #.      conditions, this one will be extremely rare. To make it
13082 #.      measurable, one could exhaust all but 1-2 available pid values,
13083 #.      possibly by lowering the max pid parameter in /proc, forcing
13084 #.      the same tid to be reused rapidly.
13085 #. type: Plain text
13086 #: build/C/man2/tkill.2:85
13087 msgid ""
13088 "B<tkill>()  is an obsolete predecessor to B<tgkill>().  It allows only the "
13089 "target thread ID to be specified, which may result in the wrong thread being "
13090 "signaled if a thread terminates and its thread ID is recycled.  Avoid using "
13091 "this system call."
13092 msgstr ""
13093 "B<tkill>()  はもう使われなくなった B<tgkill>()  の先祖である。 B<tkill>()  で"
13094 "はシグナルの送り先のスレッド ID しか指定できない。 そのため、スレッドが終了し"
13095 "て、そのスレッド ID が再利用される場合に、 意図しないスレッドにシグナルが送ら"
13096 "れる可能性がある。 このシステムコールの使用は避けること。"
13097
13098 #. type: Plain text
13099 #: build/C/man2/tkill.2:92
13100 msgid ""
13101 "If I<tgid> is specified as -1, B<tgkill>()  is equivalent to B<tkill>()."
13102 msgstr ""
13103 "I<tgid> に -1 が指定された場合、 B<tgkill>()  は B<tkill>()  と等価である。"
13104
13105 #. type: Plain text
13106 #: build/C/man2/tkill.2:95
13107 msgid ""
13108 "These are the raw system call interfaces, meant for internal thread library "
13109 "use."
13110 msgstr ""
13111 "これらはシステムコールへの直接のインターフェースであり、 スレッド・ライブラリ"
13112 "内部での使用を意図したものである。"
13113
13114 #. type: Plain text
13115 #: build/C/man2/tkill.2:103
13116 msgid "An invalid thread ID, thread group ID, or signal was specified."
13117 msgstr "指定されたスレッド ID、スレッドグループ ID、シグナルが不正であった。"
13118
13119 #. type: Plain text
13120 #: build/C/man2/tkill.2:108
13121 msgid "Permission denied.  For the required permissions, see B<kill>(2)."
13122 msgstr ""
13123 "許可がなかった。どのような許可が必要かについては、 B<kill>(2)  を参照のこと。"
13124
13125 #. type: Plain text
13126 #: build/C/man2/tkill.2:111
13127 msgid "No process with the specified thread ID (and thread group ID) exists."
13128 msgstr ""
13129 "指定されたスレッドID (とスレッド・グループID) を持つプロセスが存在しない。"
13130
13131 #. type: Plain text
13132 #: build/C/man2/tkill.2:116
13133 msgid ""
13134 "B<tkill>()  is supported since Linux 2.4.19 / 2.5.4.  B<tgkill>()  was added "
13135 "in Linux 2.5.75."
13136 msgstr ""
13137 "B<tkill>()  は Linux 2.4.19 / 2.5.4 以降でサポートされ、 B<tgkill>()  は "
13138 "Linux 2.5.75 で追加された。"
13139
13140 #. type: Plain text
13141 #: build/C/man2/tkill.2:122
13142 msgid ""
13143 "B<tkill>()  and B<tgkill>()  are Linux-specific and should not be used in "
13144 "programs that are intended to be portable."
13145 msgstr ""
13146 "B<tkill>()  と B<tgkill>()  は Linux 固有であり、 移植を想定したプログラムで"
13147 "は使用すべきではない。"
13148
13149 #. type: Plain text
13150 #: build/C/man2/tkill.2:128
13151 msgid ""
13152 "See the description of B<CLONE_THREAD> in B<clone>(2)  for an explanation of "
13153 "thread groups."
13154 msgstr ""
13155 "スレッド・グループの説明については B<clone>(2)  の B<CLONE_THREAD> の説明を参"
13156 "照のこと。"
13157
13158 #. type: Plain text
13159 #: build/C/man2/tkill.2:131
13160 msgid ""
13161 "Glibc does not provide wrappers for these system calls; call them using "
13162 "B<syscall>(2)."
13163 msgstr ""
13164 "glibc はこれらのシステムコールに対するラッパー関数を提供していない。 "
13165 "B<syscall>(2)  を使って呼び出すこと。"
13166
13167 #. type: Plain text
13168 #: build/C/man2/tkill.2:136
13169 msgid "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
13170 msgstr "B<clone>(2), B<gettid>(2), B<kill>(2), B<rt_sigqueueinfo>(2)"
13171
13172 #. type: TH
13173 #: build/C/man2/wait.2:49
13174 #, no-wrap
13175 msgid "WAIT"
13176 msgstr "WAIT"
13177
13178 #. type: Plain text
13179 #: build/C/man2/wait.2:52
13180 msgid "wait, waitpid, waitid - wait for process to change state"
13181 msgstr "wait, waitpid, waitid - プロセスの状態変化を待つ"
13182
13183 #. type: Plain text
13184 #: build/C/man2/wait.2:54
13185 msgid "B<#include E<lt>sys/types.hE<gt>>"
13186 msgstr "B<#include E<lt>sys/types.hE<gt>>"
13187
13188 #. type: Plain text
13189 #: build/C/man2/wait.2:56
13190 msgid "B<#include E<lt>sys/wait.hE<gt>>"
13191 msgstr "B<#include E<lt>sys/wait.hE<gt>>"
13192
13193 #. type: Plain text
13194 #: build/C/man2/wait.2:58
13195 msgid "B<pid_t wait(int *>I<status>B<);>"
13196 msgstr "B<pid_t wait(int *>I<status>B<);>"
13197
13198 #. type: Plain text
13199 #: build/C/man2/wait.2:60
13200 msgid ""
13201 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
13202 msgstr ""
13203 "B<pid_t waitpid(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<);>"
13204
13205 #. type: Plain text
13206 #: build/C/man2/wait.2:65
13207 #, no-wrap
13208 msgid ""
13209 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, int >I<options>B<);>\n"
13210 "                /* This is the glibc and POSIX interface; see\n"
13211 "                   NOTES for information on the raw system call. */\n"
13212 msgstr ""
13213 "B<int waitid(idtype_t >I<idtype>B<, id_t >I<id>B<, siginfo_t *>I<infop>B<, int >I<options>B<);>\n"
13214 "                /* これは glibc と POSIX のインターフェイスである。\n"
13215 "                   生のシステムコールについての情報は「注意」の節を参照。 */\n"
13216
13217 #. type: Plain text
13218 #: build/C/man2/wait.2:74
13219 msgid "B<waitid>():"
13220 msgstr "B<waitid>():"
13221
13222 #. type: Plain text
13223 #: build/C/man2/wait.2:78
13224 msgid ""
13225 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13226 "_XOPEN_SOURCE_EXTENDED"
13227 msgstr ""
13228 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
13229 "_XOPEN_SOURCE_EXTENDED"
13230
13231 #. type: Plain text
13232 #: build/C/man2/wait.2:93
13233 msgid ""
13234 "All of these system calls are used to wait for state changes in a child of "
13235 "the calling process, and obtain information about the child whose state has "
13236 "changed.  A state change is considered to be: the child terminated; the "
13237 "child was stopped by a signal; or the child was resumed by a signal.  In the "
13238 "case of a terminated child, performing a wait allows the system to release "
13239 "the resources associated with the child; if a wait is not performed, then "
13240 "the terminated child remains in a \"zombie\" state (see NOTES below)."
13241 msgstr ""
13242 "これらのシステムコールはいずれも、呼び出し元プロセスの子プロセスの 状態変化を"
13243 "待ち、状態が変化したその子プロセスの情報を取得するのに 使用される。 状態変化"
13244 "とは以下のいずれかである: 子プロセスの終了、シグナルによる子プロセスの停止、 "
13245 "シグナルによる子プロセスの再開。 子プロセスが終了した場合は、wait を実行する"
13246 "ことで、 システムがその子プロセスに関連するリソースを解放できるようになる。 "
13247 "wait が実行されなかった場合には、終了した子プロセスは 「ゾンビ」状態で残り続"
13248 "ける (下記の注意の章を参照のこと)。"
13249
13250 #. type: Plain text
13251 #: build/C/man2/wait.2:105
13252 msgid ""
13253 "If a child has already changed state, then these calls return immediately.  "
13254 "Otherwise they block until either a child changes state or a signal handler "
13255 "interrupts the call (assuming that system calls are not automatically "
13256 "restarted using the B<SA_RESTART> flag of B<sigaction>(2)).  In the "
13257 "remainder of this page, a child whose state has changed and which has not "
13258 "yet been waited upon by one of these system calls is termed I<waitable>."
13259 msgstr ""
13260 "子プロセスの状態変化がすでに発生していた場合、これらのコールは すぐに復帰す"
13261 "る。それ以外の場合は、子プロセスの状態変化が起こるか、 シグナルハンドラにより"
13262 "システムコールが中断されるまで、 停止 (block) する (後者は、 B<sigaction>"
13263 "(2)  の B<SA_RESTART> フラグによりシステムコールが自動的に再スタートするよう"
13264 "になっていない 場合の動作である)。 以下の説明では、状態変化が起こったがこれら"
13265 "のシステムコールのいずれかに よって待たれていない子プロセスを I<waitable> (待"
13266 "ち可能) と呼ぶ。"
13267
13268 #. type: SS
13269 #: build/C/man2/wait.2:105
13270 #, no-wrap
13271 msgid "wait() and waitpid()"
13272 msgstr "wait() と waitpid()"
13273
13274 #. type: Plain text
13275 #: build/C/man2/wait.2:113
13276 msgid ""
13277 "The B<wait>()  system call suspends execution of the calling process until "
13278 "one of its children terminates.  The call I<wait(&status)> is equivalent to:"
13279 msgstr ""
13280 "B<wait>()  システムコールは、子プロセスのいずれかが終了するまで 呼び出し元の"
13281 "プロセスの実行を一時停止する。 呼び出し I<wait(&status)> は以下と等価である:"
13282
13283 #. type: Plain text
13284 #: build/C/man2/wait.2:116
13285 #, no-wrap
13286 msgid "    waitpid(-1, &status, 0);\n"
13287 msgstr "    waitpid(-1, &status, 0);\n"
13288
13289 #. type: Plain text
13290 #: build/C/man2/wait.2:130
13291 msgid ""
13292 "The B<waitpid>()  system call suspends execution of the calling process "
13293 "until a child specified by I<pid> argument has changed state.  By default, "
13294 "B<waitpid>()  waits only for terminated children, but this behavior is "
13295 "modifiable via the I<options> argument, as described below."
13296 msgstr ""
13297 "B<waitpid>()  システムコールは、 I<pid> 引き数で指定した子プロセスの状態変化"
13298 "が起こるまで、 呼び出し元のプロセスの実行を一時停止する。デフォルトでは、 "
13299 "B<waitpid>()  は子プロセスの終了だけを待つが、この動作は I<options> 引き数に"
13300 "より変更可能である。"
13301
13302 #. type: Plain text
13303 #: build/C/man2/wait.2:134
13304 msgid "The value of I<pid> can be:"
13305 msgstr "I<pid> に指定できる値は以下の通り:"
13306
13307 #. type: IP
13308 #: build/C/man2/wait.2:134
13309 #, no-wrap
13310 msgid "E<lt> -1"
13311 msgstr "E<lt> -1"
13312
13313 #. type: Plain text
13314 #: build/C/man2/wait.2:138
13315 msgid ""
13316 "meaning wait for any child process whose process group ID is equal to the "
13317 "absolute value of I<pid>."
13318 msgstr ""
13319 "プロセスグループID が I<pid> の絶対値に等しい子プロセスのいずれかが終了するま"
13320 "でを待つ。"
13321
13322 #. type: IP
13323 #: build/C/man2/wait.2:138
13324 #, no-wrap
13325 msgid "-1"
13326 msgstr "-1"
13327
13328 #. type: Plain text
13329 #: build/C/man2/wait.2:140
13330 msgid "meaning wait for any child process."
13331 msgstr "子プロセスのどれかが終了するまで待つ。"
13332
13333 #. type: IP
13334 #: build/C/man2/wait.2:140
13335 #, no-wrap
13336 msgid "0"
13337 msgstr "0"
13338
13339 #. type: Plain text
13340 #: build/C/man2/wait.2:143
13341 msgid ""
13342 "meaning wait for any child process whose process group ID is equal to that "
13343 "of the calling process."
13344 msgstr ""
13345 "プロセスグループID が呼び出したプロセスのものと等しい 子プロセスを待つ。"
13346
13347 #. type: IP
13348 #: build/C/man2/wait.2:143
13349 #, no-wrap
13350 msgid "E<gt> 0"
13351 msgstr "E<gt> 0"
13352
13353 #. type: Plain text
13354 #: build/C/man2/wait.2:147
13355 msgid ""
13356 "meaning wait for the child whose process ID is equal to the value of I<pid>."
13357 msgstr "プロセスID が I<pid> に等しい子プロセスを待つ。"
13358
13359 #. type: Plain text
13360 #: build/C/man2/wait.2:151
13361 msgid ""
13362 "The value of I<options> is an OR of zero or more of the following constants:"
13363 msgstr "I<options> の値は次の定数の 0 個以上の論理和である:"
13364
13365 #. type: TP
13366 #: build/C/man2/wait.2:151 build/C/man2/wait.2:280
13367 #, no-wrap
13368 msgid "B<WNOHANG>"
13369 msgstr "B<WNOHANG>"
13370
13371 #. type: Plain text
13372 #: build/C/man2/wait.2:154
13373 msgid "return immediately if no child has exited."
13374 msgstr "状態変化が起こった子プロセスがない場合にすぐに復帰する。"
13375
13376 #. type: TP
13377 #: build/C/man2/wait.2:154
13378 #, no-wrap
13379 msgid "B<WUNTRACED>"
13380 msgstr "B<WUNTRACED>"
13381
13382 #. type: Plain text
13383 #: build/C/man2/wait.2:163
13384 msgid ""
13385 "also return if a child has stopped (but not traced via B<ptrace>(2)).  "
13386 "Status for I<traced> children which have stopped is provided even if this "
13387 "option is not specified."
13388 msgstr ""
13389 "子プロセスが停止した場合にも復帰する (子プロセスが B<ptrace>(2)  でトレースさ"
13390 "れている場合は除く)。 このオプションが指定されていない場合でも、停止したプロ"
13391 "セスが 「トレース (traced)」されていれば、子プロセスの状態が報告される。"
13392
13393 #. type: TP
13394 #: build/C/man2/wait.2:163
13395 #, no-wrap
13396 msgid "B<WCONTINUED> (since Linux 2.6.10)"
13397 msgstr "B<WCONTINUED> (Linux 2.6.10 以降)"
13398
13399 #. type: Plain text
13400 #: build/C/man2/wait.2:167
13401 msgid ""
13402 "also return if a stopped child has been resumed by delivery of B<SIGCONT>."
13403 msgstr "停止した子プロセスが B<SIGCONT> の配送により再開した場合にも復帰する。"
13404
13405 #. type: Plain text
13406 #: build/C/man2/wait.2:169
13407 msgid "(For Linux-only options, see below.)"
13408 msgstr "(Linux 専用オプションについては後述する)"
13409
13410 #. type: Plain text
13411 #: build/C/man2/wait.2:183
13412 msgid ""
13413 "If I<status> is not NULL, B<wait>()  and B<waitpid>()  store status "
13414 "information in the I<int> to which it points.  This integer can be inspected "
13415 "with the following macros (which take the integer itself as an argument, not "
13416 "a pointer to it, as is done in B<wait>()  and B<waitpid>()!):"
13417 msgstr ""
13418 "I<status> が NULL でなければ、 B<wait>()  や B<waitpid>()  は I<status> で指"
13419 "す I<int> に状態情報を格納する。 この整数は以下のマクロを使って検査できる。 "
13420 "(これらのマクロの引き数には、 B<wait>()  や B<waitpid>()  が書き込んだ整数そ"
13421 "のものを指定する。ポインタではない!)"
13422
13423 #. type: TP
13424 #: build/C/man2/wait.2:183
13425 #, no-wrap
13426 msgid "B<WIFEXITED(>I<status>B<)>"
13427 msgstr "B<WIFEXITED(>I<status>B<)>"
13428
13429 #. type: Plain text
13430 #: build/C/man2/wait.2:191
13431 msgid ""
13432 "returns true if the child terminated normally, that is, by calling B<exit>"
13433 "(3)  or B<_exit>(2), or by returning from main()."
13434 msgstr ""
13435 "子プロセスが正常に終了した場合に真を返す。 「正常に」とは、 B<exit>(3)  か "
13436 "B<_exit>(2)  が呼び出された場合、もしくは main() から復帰した場合である。"
13437
13438 #. type: TP
13439 #: build/C/man2/wait.2:191
13440 #, no-wrap
13441 msgid "B<WEXITSTATUS(>I<status>B<)>"
13442 msgstr "B<WEXITSTATUS(>I<status>B<)>"
13443
13444 #. type: Plain text
13445 #: build/C/man2/wait.2:204
13446 msgid ""
13447 "returns the exit status of the child.  This consists of the least "
13448 "significant 8 bits of the I<status> argument that the child specified in a "
13449 "call to B<exit>(3)  or B<_exit>(2)  or as the argument for a return "
13450 "statement in main().  This macro should be employed only if B<WIFEXITED> "
13451 "returned true."
13452 msgstr ""
13453 "子プロセスの終了ステータスを返す。 終了ステータスは I<status> 引き数の下位 8"
13454 "ビットで構成されており、 B<exit>(3)  や B<_exit>(2)  の呼び出し時に渡された"
13455 "値、もしくは main() の return 文の 引き数として指定された値である。 このマク"
13456 "ロを使用するのは B<WIFEXITED> が真を返した場合だけにすべきである。"
13457
13458 #. type: TP
13459 #: build/C/man2/wait.2:204
13460 #, no-wrap
13461 msgid "B<WIFSIGNALED(>I<status>B<)>"
13462 msgstr "B<WIFSIGNALED(>I<status>B<)>"
13463
13464 #. type: Plain text
13465 #: build/C/man2/wait.2:207
13466 msgid "returns true if the child process was terminated by a signal."
13467 msgstr "子プロセスがシグナルにより終了した場合に真を返す。"
13468
13469 #. type: TP
13470 #: build/C/man2/wait.2:207
13471 #, no-wrap
13472 msgid "B<WTERMSIG(>I<status>B<)>"
13473 msgstr "B<WTERMSIG(>I<status>B<)>"
13474
13475 #. type: Plain text
13476 #: build/C/man2/wait.2:214
13477 msgid ""
13478 "returns the number of the signal that caused the child process to "
13479 "terminate.  This macro should be employed only if B<WIFSIGNALED> returned "
13480 "true."
13481 msgstr ""
13482 "子プロセス終了の原因となったシグナルの番号を返す。 このマクロを使用するのは "
13483 "B<WIFSIGNALED> が真を返した場合だけにすべきである。"
13484
13485 #. type: TP
13486 #: build/C/man2/wait.2:214
13487 #, no-wrap
13488 msgid "B<WCOREDUMP(>I<status>B<)>"
13489 msgstr "B<WCOREDUMP(>I<status>B<)>"
13490
13491 #. type: Plain text
13492 #: build/C/man2/wait.2:223
13493 msgid ""
13494 "returns true if the child produced a core dump.  This macro should be "
13495 "employed only if B<WIFSIGNALED> returned true.  This macro is not specified "
13496 "in POSIX.1-2001 and is not available on some UNIX implementations (e.g., "
13497 "AIX, SunOS).  Only use this enclosed in #ifdef WCOREDUMP ... #endif."
13498 msgstr ""
13499 "子プロセスがコアダンプを生成した場合に真を返す。 このマクロを使用するのは "
13500 "B<WIFSIGNALED> が真を返した場合だけにすべきである。 このマクロは "
13501 "POSIX.1-2001 では規定されておらず、 (AIX, SunOS などの) いくつかの UNIX の実"
13502 "装では利用できない。 必ず #ifdef WCOREDUMP ... #endif で括って使用すること。"
13503
13504 #. type: TP
13505 #: build/C/man2/wait.2:223
13506 #, no-wrap
13507 msgid "B<WIFSTOPPED(>I<status>B<)>"
13508 msgstr "B<WIFSTOPPED(>I<status>B<)>"
13509
13510 #. type: Plain text
13511 #: build/C/man2/wait.2:230
13512 msgid ""
13513 "returns true if the child process was stopped by delivery of a signal; this "
13514 "is possible only if the call was done using B<WUNTRACED> or when the child "
13515 "is being traced (see B<ptrace>(2))."
13516 msgstr ""
13517 "子プロセスがシグナルの配送により停止した場合に真を返す。 これが真になるのは、"
13518 "システムコールが B<WUNTRACED> を指定して呼び出された場合か、子プロセスがト"
13519 "レースされている場合 (B<ptrace>(2)  参照) だけである。"
13520
13521 #. type: TP
13522 #: build/C/man2/wait.2:230
13523 #, no-wrap
13524 msgid "B<WSTOPSIG(>I<status>B<)>"
13525 msgstr "B<WSTOPSIG(>I<status>B<)>"
13526
13527 #. type: Plain text
13528 #: build/C/man2/wait.2:236
13529 msgid ""
13530 "returns the number of the signal which caused the child to stop.  This macro "
13531 "should be employed only if B<WIFSTOPPED> returned true."
13532 msgstr ""
13533 "子プロセスを停止させたシグナルの番号を返す。 このマクロを使用するのは "
13534 "B<WIFSTOPPED> が 0 以外を返した場合だけにすべきである。"
13535
13536 #. type: TP
13537 #: build/C/man2/wait.2:236
13538 #, no-wrap
13539 msgid "B<WIFCONTINUED(>I<status>B<)>"
13540 msgstr "B<WIFCONTINUED(>I<status>B<)>"
13541
13542 #. type: Plain text
13543 #: build/C/man2/wait.2:241
13544 msgid ""
13545 "(since Linux 2.6.10)  returns true if the child process was resumed by "
13546 "delivery of B<SIGCONT>."
13547 msgstr ""
13548 "(Linux 2.6.10 以降)  子プロセスが B<SIGCONT> の配送により再開した場合に真を返"
13549 "す。"
13550
13551 #. type: SS
13552 #: build/C/man2/wait.2:241
13553 #, no-wrap
13554 msgid "waitid()"
13555 msgstr "waitid()"
13556
13557 #. type: Plain text
13558 #: build/C/man2/wait.2:246
13559 msgid ""
13560 "The B<waitid>()  system call (available since Linux 2.6.9) provides more "
13561 "precise control over which child state changes to wait for."
13562 msgstr ""
13563 "B<waitid>()  システムコール (Linux 2.6.9 以降で利用可能) を使うと、 子プロセ"
13564 "スのどの状態変化を待つかについてより細かな制御ができる。"
13565
13566 #. type: Plain text
13567 #: build/C/man2/wait.2:252
13568 msgid ""
13569 "The I<idtype> and I<id> arguments select the child(ren) to wait for, as "
13570 "follows:"
13571 msgstr "引き数 I<idtype> と I<id> でどの子プロセスを待つかを選択する:"
13572
13573 #. type: IP
13574 #: build/C/man2/wait.2:252
13575 #, no-wrap
13576 msgid "I<idtype> == B<P_PID>"
13577 msgstr "I<idtype> == B<P_PID>"
13578
13579 #. type: Plain text
13580 #: build/C/man2/wait.2:255
13581 msgid "Wait for the child whose process ID matches I<id>."
13582 msgstr "プロセスID が I<id> と一致する子プロセスを待つ。"
13583
13584 #. type: IP
13585 #: build/C/man2/wait.2:255
13586 #, no-wrap
13587 msgid "I<idtype> == B<P_PGID>"
13588 msgstr "I<idtype> == B<P_PGID>"
13589
13590 #. type: Plain text
13591 #: build/C/man2/wait.2:258
13592 msgid "Wait for any child whose process group ID matches I<id>."
13593 msgstr "プロセスグループID が I<id> と一致する子プロセスを待つ。"
13594
13595 #. type: IP
13596 #: build/C/man2/wait.2:258
13597 #, no-wrap
13598 msgid "I<idtype> == B<P_ALL>"
13599 msgstr "I<idtype> == B<P_ALL>"
13600
13601 #. type: Plain text
13602 #: build/C/man2/wait.2:262
13603 msgid "Wait for any child; I<id> is ignored."
13604 msgstr "子プロセス全部を対象に待つ。 I<id> は無視される。"
13605
13606 #. type: Plain text
13607 #: build/C/man2/wait.2:266
13608 msgid ""
13609 "The child state changes to wait for are specified by ORing one or more of "
13610 "the following flags in I<options>:"
13611 msgstr ""
13612 "子プロセスのどの状態変化を待つかは以下のフラグで指定する (I<options> には 1個"
13613 "以上のフラグの論理和をとって指定する):"
13614
13615 #. type: TP
13616 #: build/C/man2/wait.2:266
13617 #, no-wrap
13618 msgid "B<WEXITED>"
13619 msgstr "B<WEXITED>"
13620
13621 #. type: Plain text
13622 #: build/C/man2/wait.2:269
13623 msgid "Wait for children that have terminated."
13624 msgstr "子プロセスの終了を待つ。"
13625
13626 #. type: TP
13627 #: build/C/man2/wait.2:269
13628 #, no-wrap
13629 msgid "B<WSTOPPED>"
13630 msgstr "B<WSTOPPED>"
13631
13632 #. type: Plain text
13633 #: build/C/man2/wait.2:272
13634 msgid "Wait for children that have been stopped by delivery of a signal."
13635 msgstr "子プロセスがシグナルの配送により停止するのを待つ。"
13636
13637 #. type: TP
13638 #: build/C/man2/wait.2:272
13639 #, no-wrap
13640 msgid "B<WCONTINUED>"
13641 msgstr "B<WCONTINUED>"
13642
13643 #. type: Plain text
13644 #: build/C/man2/wait.2:277
13645 msgid ""
13646 "Wait for (previously stopped) children that have been resumed by delivery of "
13647 "B<SIGCONT>."
13648 msgstr "(停止していた) 子プロセスが B<SIGCONT> が配送されて再開するのを待つ。"
13649
13650 #. type: Plain text
13651 #: build/C/man2/wait.2:280
13652 msgid "The following flags may additionally be ORed in I<options>:"
13653 msgstr "さらに以下のフラグを論理和の形で I<options> に指定できる:"
13654
13655 #. type: Plain text
13656 #: build/C/man2/wait.2:284
13657 msgid "As for B<waitpid>()."
13658 msgstr "B<waitpid>()  と同様。"
13659
13660 #. type: TP
13661 #: build/C/man2/wait.2:284
13662 #, no-wrap
13663 msgid "B<WNOWAIT>"
13664 msgstr "B<WNOWAIT>"
13665
13666 #. type: Plain text
13667 #: build/C/man2/wait.2:288
13668 msgid ""
13669 "Leave the child in a waitable state; a later wait call can be used to again "
13670 "retrieve the child status information."
13671 msgstr ""
13672 "waitable 状態のプロセスをそのままにする。この後で wait コールを 使って、同じ"
13673 "子プロセスの状態情報をもう一度取得することができる。"
13674
13675 #. type: Plain text
13676 #: build/C/man2/wait.2:295
13677 msgid ""
13678 "Upon successful return, B<waitid>()  fills in the following fields of the "
13679 "I<siginfo_t> structure pointed to by I<infop>:"
13680 msgstr ""
13681 "成功した場合には、 B<waitid>()  は I<infop> が指す I<siginfo_t> 構造体の以下"
13682 "のフィールドを設定する:"
13683
13684 #. type: Plain text
13685 #: build/C/man2/wait.2:298
13686 msgid "The process ID of the child."
13687 msgstr "子プロセスのプロセスID。"
13688
13689 #. type: Plain text
13690 #: build/C/man2/wait.2:302
13691 msgid ""
13692 "The real user ID of the child.  (This field is not set on most other "
13693 "implementations.)"
13694 msgstr ""
13695 "子プロセスの実ユーザID (このフィールドは他のほとんどの実装では設定されない)。"
13696
13697 #. type: Plain text
13698 #: build/C/man2/wait.2:306
13699 msgid "Always set to B<SIGCHLD>."
13700 msgstr "常に B<SIGCHLD> が設定される。"
13701
13702 #. type: TP
13703 #: build/C/man2/wait.2:306
13704 #, no-wrap
13705 msgid "I<si_status>"
13706 msgstr "I<si_status>"
13707
13708 #. type: Plain text
13709 #: build/C/man2/wait.2:316
13710 msgid ""
13711 "Either the exit status of the child, as given to B<_exit>(2)  (or B<exit>"
13712 "(3)), or the signal that caused the child to terminate, stop, or continue.  "
13713 "The I<si_code> field can be used to determine how to interpret this field."
13714 msgstr ""
13715 "B<_exit>(2)  (か B<exit>(3))  に指定された子プロセスの終了ステータス、もしく"
13716 "は 子プロセスの終了、停止、再開の原因となったシグナルが設定される。 この"
13717 "フィールドをどう解釈するかは、 I<si_code> フィールドを参照して決めることがで"
13718 "きる。"
13719
13720 #. type: Plain text
13721 #: build/C/man2/wait.2:333
13722 msgid ""
13723 "Set to one of: B<CLD_EXITED> (child called B<_exit>(2)); B<CLD_KILLED> "
13724 "(child killed by signal); B<CLD_DUMPED> (child killed by signal, and dumped "
13725 "core); B<CLD_STOPPED> (child stopped by signal); B<CLD_TRAPPED> (traced "
13726 "child has trapped); or B<CLD_CONTINUED> (child continued by B<SIGCONT>)."
13727 msgstr ""
13728 "以下のいずれかが設定される: B<CLD_EXITED> (子プロセスが B<_exit>(2)  を呼び出"
13729 "した); B<CLD_KILLED> (シグナルにより子プロセスが kill された); B<CLD_DUMPED> "
13730 "(シグナルにより子プロセスが kill され、コア・ダンプが行われた); "
13731 "B<CLD_STOPPED> (シグナルにより子プロセスが停止した); B<CLD_TRAPPED> (トレース"
13732 "されていた子プロセスがトラップを受信した); B<CLD_CONTINUED> (B<SIGCONT> によ"
13733 "り子プロセスが再開された)。"
13734
13735 #.  POSIX.1-2001 leaves this possibility unspecified; most
13736 #.  implementations (including Linux) zero out the structure
13737 #.  in this case, but at least one implementation (AIX 5.1)
13738 #.  does not -- MTK Nov 04
13739 #. type: Plain text
13740 #: build/C/man2/wait.2:355
13741 msgid ""
13742 "If B<WNOHANG> was specified in I<options> and there were no children in a "
13743 "waitable state, then B<waitid>()  returns 0 immediately and the state of the "
13744 "I<siginfo_t> structure pointed to by I<infop> is unspecified.  To "
13745 "distinguish this case from that where a child was in a waitable state, zero "
13746 "out the I<si_pid> field before the call and check for a nonzero value in "
13747 "this field after the call returns."
13748 msgstr ""
13749 "B<WNOHANG> が I<options> に指定されていて、 waitable 状態の子プロセスがなかっ"
13750 "た場合には、 B<waitid>()  はすぐに 0 を返す。このとき、 I<infop> が指す "
13751 "I<siginfo_t> 構造体の内容は不定である。 この場合を waitable 状態の子プロセス"
13752 "があった場合と区別するには、 B<waitid>()  を呼び出す前に I<si_pid> を 0 にし"
13753 "ておき、コールが復帰した後でこのフィールドが 0 以外の値かどうか をチェックす"
13754 "ればよい。"
13755
13756 #. type: Plain text
13757 #: build/C/man2/wait.2:359
13758 msgid ""
13759 "B<wait>(): on success, returns the process ID of the terminated child; on "
13760 "error, -1 is returned."
13761 msgstr ""
13762 "B<wait>(): 成功すると、終了した子プロセスのプロセスID を返す。 エラーの場合 "
13763 "-1 を返す。"
13764
13765 #. type: Plain text
13766 #: build/C/man2/wait.2:368
13767 msgid ""
13768 "B<waitpid>(): on success, returns the process ID of the child whose state "
13769 "has changed; if B<WNOHANG> was specified and one or more child(ren) "
13770 "specified by I<pid> exist, but have not yet changed state, then 0 is "
13771 "returned.  On error, -1 is returned."
13772 msgstr ""
13773 "B<waitpid>(): 成功すると、状態が変化した子プロセスのプロセスID を返す。 "
13774 "B<WNOHANG> が指定されていて、 I<pid> で指示された子プロセスが一つ以上存在する"
13775 "が、どの子プロセスでも 状態変化が起こっていなかった場合は、 0 を返す。 エラー"
13776 "の場合 -1 を返す。"
13777
13778 #.  FIXME: As reported by Vegard Nossum, if infop is NULL, then waitid()
13779 #.  returns the PID of the child.  Either this is a bug, or it is intended
13780 #.  behavior that needs to be documented.  See my Jan 2009 LKML mail
13781 #.  "waitid() return value strangeness when infop is NULL".
13782 #. type: Plain text
13783 #: build/C/man2/wait.2:384
13784 msgid ""
13785 "B<waitid>(): returns 0 on success or if B<WNOHANG> was specified and no child"
13786 "(ren) specified by I<id> has yet changed state; on error, -1 is returned.  "
13787 "Each of these calls sets I<errno> to an appropriate value in the case of an "
13788 "error."
13789 msgstr ""
13790 "B<waitid>(): 成功すると 0 を返す。 B<WNOHANG> が指定されていて、 I<pid> で指"
13791 "示された子プロセスで状態変化が起こっていなかった場合にも 0 を返す。 エラーの"
13792 "場合 -1 を返す。 エラーの場合、これらのシステムコールはいずれも I<errno> に適"
13793 "切な値を設定する。"
13794
13795 #. type: TP
13796 #: build/C/man2/wait.2:385 build/C/man2/wait.2:390
13797 #, no-wrap
13798 msgid "B<ECHILD>"
13799 msgstr "B<ECHILD>"
13800
13801 #. type: Plain text
13802 #: build/C/man2/wait.2:390
13803 msgid ""
13804 "(for B<wait>())  The calling process does not have any unwaited-for children."
13805 msgstr ""
13806 "(B<wait>()  の場合)  呼び出し元プロセスには、wait を行っていない子プロセスは"
13807 "ない。"
13808
13809 #. type: Plain text
13810 #: build/C/man2/wait.2:410
13811 msgid ""
13812 "(for B<waitpid>()  or B<waitid>())  The process specified by I<pid> "
13813 "(B<waitpid>())  or I<idtype> and I<id> (B<waitid>())  does not exist or is "
13814 "not a child of the calling process.  (This can happen for one's own child if "
13815 "the action for B<SIGCHLD> is set to B<SIG_IGN>.  See also the I<Linux Notes> "
13816 "section about threads.)"
13817 msgstr ""
13818 "(B<waitpid>()  か B<waitid>()  の場合)  I<pid> (B<waitpid>())  か I<idtype> "
13819 "と I<id> (B<waitid>())  で指定したプロセスが存在しないか、呼び出し元プロセス"
13820 "の子プロセスでない (B<SIGCHLD> の動作に B<SIG_IGN> を設定した場合には、自分自"
13821 "身の子プロセスでも起こりうる。 スレッドに関しては「Linux での注意」の節も参照"
13822 "すること)。"
13823
13824 #. type: Plain text
13825 #: build/C/man2/wait.2:417
13826 msgid ""
13827 "B<WNOHANG> was not set and an unblocked signal or a B<SIGCHLD> was caught; "
13828 "see B<signal>(7)."
13829 msgstr ""
13830 "B<WNOHANG> が設定されておらず、禁止 (block) されていないシグナルや "
13831 "B<SIGCHLD> を受信した。 B<signal>(7)  参照。"
13832
13833 #. type: Plain text
13834 #: build/C/man2/wait.2:422
13835 msgid "The I<options> argument was invalid."
13836 msgstr "I<options> 引き数が不正である。"
13837
13838 #. type: Plain text
13839 #: build/C/man2/wait.2:437
13840 msgid ""
13841 "A child that terminates, but has not been waited for becomes a \"zombie\".  "
13842 "The kernel maintains a minimal set of information about the zombie process "
13843 "(PID, termination status, resource usage information)  in order to allow the "
13844 "parent to later perform a wait to obtain information about the child.  As "
13845 "long as a zombie is not removed from the system via a wait, it will consume "
13846 "a slot in the kernel process table, and if this table fills, it will not be "
13847 "possible to create further processes.  If a parent process terminates, then "
13848 "its \"zombie\" children (if any)  are adopted by B<init>(8), which "
13849 "automatically performs a wait to remove the zombies."
13850 msgstr ""
13851 "終了したが、wait されていない子プロセスは「ゾンビ」になる。 後で親プロセスが "
13852 "wait を実行して子プロセスについての情報を取得できるように、 カーネルはゾンビ"
13853 "プロセスについて最小限の情報 (PID、終了ステータス、 リソース使用状況) を保持"
13854 "する。 ゾンビプロセスは、 wait によってシステムから削除されない限り、 カーネ"
13855 "ルのプロセステーブルの 1 エントリを消費する。このプロセステーブルが 一杯にな"
13856 "ると、新たにプロセスを作ることができなくなる。 親プロセスが終了すると、その親"
13857 "プロセスの「ゾンビ」の 子プロセスは (もしあれば)  B<init>(8)  の養子となる。 "
13858 "B<init>(8)  は wait を自動的に実行し、ゾンビを削除する。"
13859
13860 #. type: Plain text
13861 #: build/C/man2/wait.2:478
13862 msgid ""
13863 "POSIX.1-2001 specifies that if the disposition of B<SIGCHLD> is set to "
13864 "B<SIG_IGN> or the B<SA_NOCLDWAIT> flag is set for B<SIGCHLD> (see "
13865 "B<sigaction>(2)), then children that terminate do not become zombies and a "
13866 "call to B<wait>()  or B<waitpid>()  will block until all children have "
13867 "terminated, and then fail with I<errno> set to B<ECHILD>.  (The original "
13868 "POSIX standard left the behavior of setting B<SIGCHLD> to B<SIG_IGN> "
13869 "unspecified.  Note that even though the default disposition of B<SIGCHLD> is "
13870 "\"ignore\", explicitly setting the disposition to B<SIG_IGN> results in "
13871 "different treatment of zombie process children.)  Linux 2.6 conforms to this "
13872 "specification.  However, Linux 2.4 (and earlier) does not: if a B<wait>()  "
13873 "or B<waitpid>()  call is made while B<SIGCHLD> is being ignored, the call "
13874 "behaves just as though B<SIGCHLD> were not being ignored, that is, the call "
13875 "blocks until the next child terminates and then returns the process ID and "
13876 "status of that child."
13877 msgstr ""
13878 "POSIX.1-2001 では以下のように規定されている。 B<SIGCHLD> の動作が B<SIG_IGN> "
13879 "に設定されたか、 B<SIGCHLD> に対して B<SA_NOCLDWAIT> フラグが設定された場合 "
13880 "(B<sigaction>(2)  参照)、終了した子プロセスはゾンビにはならず、 B<wait>()  "
13881 "や B<waitpid>()  の呼び出しは全ての子プロセスが終了するまで停止し、 子プロセ"
13882 "スが全部終了した後 I<errno> に B<ECHILD> を設定して失敗する。 (もともとの "
13883 "POSIX 標準は B<SIGCHLD> に B<SIG_IGN> を設定した場合の振る舞いを未規定のまま"
13884 "にしている。 B<SIGCHLD> のデフォルトの動作が「無視」であるにもかかわらず、 "
13885 "B<SIGCHLD> の動作として B<SIG_IGN> を明示的に設定した場合にはゾンビプロセスの"
13886 "子プロセスの扱いが 異なる点に注意すること。)  Linux 2.6 はこの仕様に準拠して"
13887 "いる。 しかし、Linux 2.4 (とそれ以前のバージョン) はそうではない: B<SIGCHLD> "
13888 "が無視される状態で B<wait>()  または B<waitpid>()  が呼び出された場合、 "
13889 "B<SIGCHLD> が無視されていないかのように振る舞う。 つまり、呼び出しによって次"
13890 "の子プロセスの終了までブロックされ、 終了した子プロセスの PID と状態が返され"
13891 "る。"
13892
13893 #. type: Plain text
13894 #: build/C/man2/wait.2:494
13895 msgid ""
13896 "In the Linux kernel, a kernel-scheduled thread is not a distinct construct "
13897 "from a process.  Instead, a thread is simply a process that is created using "
13898 "the Linux-unique B<clone>(2)  system call; other routines such as the "
13899 "portable B<pthread_create>(3)  call are implemented using B<clone>(2).  "
13900 "Before Linux 2.4, a thread was just a special case of a process, and as a "
13901 "consequence one thread could not wait on the children of another thread, "
13902 "even when the latter belongs to the same thread group.  However, POSIX "
13903 "prescribes such functionality, and since Linux 2.4 a thread can, and by "
13904 "default will, wait on children of other threads in the same thread group."
13905 msgstr ""
13906 "Linux カーネルでは、カーネルによってスケジュールされるスレッドは プロセスと明"
13907 "確に区別できる構成要素ではない。スレッドは Linux 固有の B<clone>(2)  システム"
13908 "コールを使用して生成されるプロセスに過ぎない。 移植性のある B<pthread_create>"
13909 "(3)  コールのような他のルーチンは B<clone>(2)  を使用して実装されている; これ"
13910 "らでは B<waitid>()  を使うことはできない。 Linux 2.4 より前では、スレッドは単"
13911 "に特殊なプロセスであったので、 例え同じスレッドグループであっても、 あるス"
13912 "レッドが別のスレッドの子プロセスが終了するのを待つことは出来なかった。 しか"
13913 "し、POSIX ではこのような機能を規定しており、 Linux 2.4 以降では、あるスレッド"
13914 "が同じスレッドグループの他のスレッドの 子プロセスが終了するのを待つことができ"
13915 "るようになった。 そして将来はこれがデフォルトの動作になるであろう。"
13916
13917 #. type: Plain text
13918 #: build/C/man2/wait.2:501
13919 msgid ""
13920 "The following Linux-specific I<options> are for use with children created "
13921 "using B<clone>(2); they cannot be used with B<waitid>():"
13922 msgstr ""
13923 "B<clone>(2)  を用いて作られた子プロセスには、以下の Linux 固有の I<options> "
13924 "が使用できる。"
13925
13926 #. type: TP
13927 #: build/C/man2/wait.2:501
13928 #, no-wrap
13929 msgid "B<__WCLONE>"
13930 msgstr "B<__WCLONE>"
13931
13932 #.  since 0.99pl10
13933 #. type: Plain text
13934 #: build/C/man2/wait.2:512
13935 #, fuzzy
13936 #| msgid ""
13937 #| "Wait for \"clone\" children only.  If omitted then wait for \"non-clone\" "
13938 #| "children only.  (A \"clone\" child is one which delivers no signal, or a "
13939 #| "signal other than B<SIGCHLD> to its parent upon termination.)  This "
13940 #| "option is ignored if B<__WALL> is also specified."
13941 msgid ""
13942 "Wait for \"clone\" children only.  If omitted, then wait for \"non-clone\" "
13943 "children only.  (A \"clone\" child is one which delivers no signal, or a "
13944 "signal other than B<SIGCHLD> to its parent upon termination.)  This option "
13945 "is ignored if B<__WALL> is also specified."
13946 msgstr ""
13947 "\"clone\" な子プロセスだけを待つ。 指定されなかった場合は非 \"clone\" な子プ"
13948 "ロセスだけを待つ (\"clone\" な子プロセスは、終了時に親プロセスへ全くシグナル"
13949 "を送らないか、 B<SIGCHLD> 以外のシグナルを送る)。 このオプションは B<__WALL> "
13950 "も指定された場合は無視される。"
13951
13952 #. type: TP
13953 #: build/C/man2/wait.2:512
13954 #, no-wrap
13955 msgid "B<__WALL> (since Linux 2.4)"
13956 msgstr "B<__WALL> (Linux 2.4 以降)"
13957
13958 #.  since patch-2.3.48
13959 #. type: Plain text
13960 #: build/C/man2/wait.2:517
13961 msgid "Wait for all children, regardless of type (\"clone\" or \"non-clone\")."
13962 msgstr "\"clone\" であるかないかに関わらず、 全ての子プロセスを待つ。"
13963
13964 #. type: TP
13965 #: build/C/man2/wait.2:517
13966 #, no-wrap
13967 msgid "B<__WNOTHREAD> (since Linux 2.4)"
13968 msgstr "B<__WNOTHREAD> (Linux 2.4 以降)"
13969
13970 #.  since patch-2.4.0-test8
13971 #. type: Plain text
13972 #: build/C/man2/wait.2:523
13973 msgid ""
13974 "Do not wait for children of other threads in the same thread group.  This "
13975 "was the default before Linux 2.4."
13976 msgstr ""
13977 "同じスレッドグループの他のスレッドの子プロセスは待たない。 Linux 2.4 より前で"
13978 "はデフォルトであった。"
13979
13980 #. type: Plain text
13981 #: build/C/man2/wait.2:535
13982 msgid ""
13983 "The raw B<waitid>()  system call takes a fith argument, of type I<struct "
13984 "rusage\\ *>.  If this argument is non-NULL, then it is used to return "
13985 "resource usage information about the child, in the same manner as B<wait4>"
13986 "(2).  See B<getrusage>(2)  for details."
13987 msgstr ""
13988 "生の B<waitid>() システムコールは I<struct rusage\\ *> 型の第 5 引数を取る。 "
13989 "この引数が NULL 以外の場合、 この引数が子プロセスのリソース使用状況を返すのに"
13990 "使用される。 これは B<wait4>(2) と同じ方法である。 詳細は B<getrusage>(2) を"
13991 "参照。"
13992
13993 #. type: Plain text
13994 #: build/C/man2/wait.2:550
13995 #, fuzzy
13996 #| msgid ""
13997 #| "According to POSIX.1-2008, an application calling B<waitid>()  must "
13998 #| "ensure that I<infop> points to a I<siginfo_t> structure (i.e., that it is "
13999 #| "a non-NULL pointer).  On Linux, if I<infop> is NULL, B<waitid>()  "
14000 #| "succeeds, and returns the process ID of the waited-for child.  "
14001 #| "Applications should avoid relying on this inconsistent, nonstandard, and "
14002 #| "unnecessary feature."
14003 msgid ""
14004 "According to POSIX.1-2008, an application calling B<waitid>()  must ensure "
14005 "that I<infop> points to a I<siginfo_t> structure (i.e., that it is a non-"
14006 "null pointer).  On Linux, if I<infop> is NULL, B<waitid>()  succeeds, and "
14007 "returns the process ID of the waited-for child.  Applications should avoid "
14008 "relying on this inconsistent, nonstandard, and unnecessary feature."
14009 msgstr ""
14010 "POSIX.1-2008 によると、 B<waitid>() を呼び出すアプリケーションは、 I<infop> "
14011 "が I<siginfo_t> 構造体を指していること (つまり I<infop> が NULL でないポイン"
14012 "タであること) を保証しなければならない。 Linux では、 I<infop> が NULL の場"
14013 "合、 B<waitid>() は成功し、wait している子プロセスのプロセス ID を返す。 アプ"
14014 "リケーションは、この食い違った、非標準で、不必要な機能に依存しないようにすべ"
14015 "きである。"
14016
14017 #.  fork.2 refers to this example program.
14018 #. type: Plain text
14019 #: build/C/man2/wait.2:567
14020 msgid ""
14021 "The following program demonstrates the use of B<fork>(2)  and B<waitpid>().  "
14022 "The program creates a child process.  If no command-line argument is "
14023 "supplied to the program, then the child suspends its execution using B<pause>"
14024 "(2), to allow the user to send signals to the child.  Otherwise, if a "
14025 "command-line argument is supplied, then the child exits immediately, using "
14026 "the integer supplied on the command line as the exit status.  The parent "
14027 "process executes a loop that monitors the child using B<waitpid>(), and uses "
14028 "the W*() macros described above to analyze the wait status value."
14029 msgstr ""
14030 "以下のプログラムは、 B<fork>(2)  と B<waitpid>()  の使用方法の例を示してい"
14031 "る。 このプログラムでは子プロセスを生成する。 コマンドライン引き数が指定され"
14032 "なかったときは、 子プロセスは B<pause>(2)  を使ってその実行を一時停止し、ユー"
14033 "ザがその子プロセスに シグナルを送信できるようにする。 コマンドライン引き数が"
14034 "指定された場合は、 子プロセスは直ちに終了し、 コマンドラインで指定された整数"
14035 "を終了ステータスとして使用する。 親プロセスは、 B<waitpid>()  を使って子プロ"
14036 "セスを監視し、 wait のステータス値を上記の W*() マクロを使って解析するという "
14037 "ループを実行する。"
14038
14039 #. type: Plain text
14040 #: build/C/man2/wait.2:583
14041 #, no-wrap
14042 msgid ""
14043 "$B< ./a.out &>\n"
14044 "Child PID is 32360\n"
14045 "[1] 32359\n"
14046 "$B< kill -STOP 32360>\n"
14047 "stopped by signal 19\n"
14048 "$B< kill -CONT 32360>\n"
14049 "continued\n"
14050 "$B< kill -TERM 32360>\n"
14051 "killed by signal 15\n"
14052 "[1]+  Done                    ./a.out\n"
14053 "$\n"
14054 msgstr ""
14055 "$B< ./a.out &>\n"
14056 "Child PID is 32360\n"
14057 "[1] 32359\n"
14058 "$B< kill -STOP 32360>\n"
14059 "stopped by signal 19\n"
14060 "$B< kill -CONT 32360>\n"
14061 "continued\n"
14062 "$B< kill -TERM 32360>\n"
14063 "killed by signal 15\n"
14064 "[1]+  Done                    ./a.out\n"
14065 "$\n"
14066
14067 #. type: Plain text
14068 #: build/C/man2/wait.2:592
14069 #, no-wrap
14070 msgid ""
14071 "#include E<lt>sys/wait.hE<gt>\n"
14072 "#include E<lt>stdlib.hE<gt>\n"
14073 "#include E<lt>unistd.hE<gt>\n"
14074 "#include E<lt>stdio.hE<gt>\n"
14075 msgstr ""
14076 "#include E<lt>sys/wait.hE<gt>\n"
14077 "#include E<lt>stdlib.hE<gt>\n"
14078 "#include E<lt>unistd.hE<gt>\n"
14079 "#include E<lt>stdio.hE<gt>\n"
14080
14081 #. type: Plain text
14082 #: build/C/man2/wait.2:598
14083 #, no-wrap
14084 msgid ""
14085 "int\n"
14086 "main(int argc, char *argv[])\n"
14087 "{\n"
14088 "    pid_t cpid, w;\n"
14089 "    int status;\n"
14090 msgstr ""
14091 "int\n"
14092 "main(int argc, char *argv[])\n"
14093 "{\n"
14094 "    pid_t cpid, w;\n"
14095 "    int status;\n"
14096
14097 #. type: Plain text
14098 #: build/C/man2/wait.2:604
14099 #, no-wrap
14100 msgid ""
14101 "    cpid = fork();\n"
14102 "    if (cpid == -1) {\n"
14103 "        perror(\"fork\");\n"
14104 "        exit(EXIT_FAILURE);\n"
14105 "    }\n"
14106 msgstr ""
14107 "    cpid = fork();\n"
14108 "    if (cpid == -1) {\n"
14109 "        perror(\"fork\");\n"
14110 "        exit(EXIT_FAILURE);\n"
14111 "    }\n"
14112
14113 #. type: Plain text
14114 #: build/C/man2/wait.2:610
14115 #, no-wrap
14116 msgid ""
14117 "    if (cpid == 0) {            /* Code executed by child */\n"
14118 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
14119 "        if (argc == 1)\n"
14120 "            pause();                    /* Wait for signals */\n"
14121 "        _exit(atoi(argv[1]));\n"
14122 msgstr ""
14123 "    if (cpid == 0) {            /* Code executed by child */\n"
14124 "        printf(\"Child PID is %ld\\en\", (long) getpid());\n"
14125 "        if (argc == 1)\n"
14126 "            pause();                    /* Wait for signals */\n"
14127 "        _exit(atoi(argv[1]));\n"
14128
14129 #. type: Plain text
14130 #: build/C/man2/wait.2:618
14131 #, no-wrap
14132 msgid ""
14133 "    } else {                    /* Code executed by parent */\n"
14134 "        do {\n"
14135 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
14136 "            if (w == -1) {\n"
14137 "                perror(\"waitpid\");\n"
14138 "                exit(EXIT_FAILURE);\n"
14139 "            }\n"
14140 msgstr ""
14141 "    } else {                    /* Code executed by parent */\n"
14142 "        do {\n"
14143 "            w = waitpid(cpid, &status, WUNTRACED | WCONTINUED);\n"
14144 "            if (w == -1) {\n"
14145 "                perror(\"waitpid\");\n"
14146 "                exit(EXIT_FAILURE);\n"
14147 "            }\n"
14148
14149 #. type: Plain text
14150 #: build/C/man2/wait.2:632
14151 #, no-wrap
14152 msgid ""
14153 "            if (WIFEXITED(status)) {\n"
14154 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
14155 "            } else if (WIFSIGNALED(status)) {\n"
14156 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
14157 "            } else if (WIFSTOPPED(status)) {\n"
14158 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
14159 "            } else if (WIFCONTINUED(status)) {\n"
14160 "                printf(\"continued\\en\");\n"
14161 "            }\n"
14162 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
14163 "        exit(EXIT_SUCCESS);\n"
14164 "    }\n"
14165 "}\n"
14166 msgstr ""
14167 "            if (WIFEXITED(status)) {\n"
14168 "                printf(\"exited, status=%d\\en\", WEXITSTATUS(status));\n"
14169 "            } else if (WIFSIGNALED(status)) {\n"
14170 "                printf(\"killed by signal %d\\en\", WTERMSIG(status));\n"
14171 "            } else if (WIFSTOPPED(status)) {\n"
14172 "                printf(\"stopped by signal %d\\en\", WSTOPSIG(status));\n"
14173 "            } else if (WIFCONTINUED(status)) {\n"
14174 "                printf(\"continued\\en\");\n"
14175 "            }\n"
14176 "        } while (!WIFEXITED(status) && !WIFSIGNALED(status));\n"
14177 "        exit(EXIT_SUCCESS);\n"
14178 "    }\n"
14179 "}\n"
14180
14181 #. type: Plain text
14182 #: build/C/man2/wait.2:645
14183 msgid ""
14184 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), B<sigaction>"
14185 "(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), B<credentials>(7), "
14186 "B<signal>(7)"
14187 msgstr ""
14188 "B<_exit>(2), B<clone>(2), B<fork>(2), B<kill>(2), B<ptrace>(2), B<sigaction>"
14189 "(2), B<signal>(2), B<wait4>(2), B<pthread_create>(3), B<credentials>(7), "
14190 "B<signal>(7)"
14191
14192 #. type: TH
14193 #: build/C/man2/wait4.2:33
14194 #, no-wrap
14195 msgid "WAIT4"
14196 msgstr "WAIT4"
14197
14198 #. type: TH
14199 #: build/C/man2/wait4.2:33
14200 #, no-wrap
14201 msgid "2012-09-23"
14202 msgstr "2012-09-23"
14203
14204 #. type: Plain text
14205 #: build/C/man2/wait4.2:36
14206 msgid "wait3, wait4 - wait for process to change state, BSD style"
14207 msgstr "wait3, wait4 - BSD スタイルでプロセスの状態変化を待つ"
14208
14209 #. type: Plain text
14210 #: build/C/man2/wait4.2:42
14211 #, no-wrap
14212 msgid ""
14213 "B<#include E<lt>sys/types.hE<gt>>\n"
14214 "B<#include E<lt>sys/time.hE<gt>>\n"
14215 "B<#include E<lt>sys/resource.hE<gt>>\n"
14216 "B<#include E<lt>sys/wait.hE<gt>>\n"
14217 msgstr ""
14218 "B<#include E<lt>sys/types.hE<gt>>\n"
14219 "B<#include E<lt>sys/time.hE<gt>>\n"
14220 "B<#include E<lt>sys/resource.hE<gt>>\n"
14221 "B<#include E<lt>sys/wait.hE<gt>>\n"
14222
14223 #. type: Plain text
14224 #: build/C/man2/wait4.2:45
14225 #, no-wrap
14226 msgid ""
14227 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14228 "B<            struct rusage *>I<rusage>B<);>\n"
14229 msgstr ""
14230 "B<pid_t wait3(int *>I<status>B<, int >I<options>B<,>\n"
14231 "B<            struct rusage *>I<rusage>B<);>\n"
14232
14233 #. type: Plain text
14234 #: build/C/man2/wait4.2:48
14235 #, no-wrap
14236 msgid ""
14237 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14238 "B<            struct rusage *>I<rusage>B<);>\n"
14239 msgstr ""
14240 "B<pid_t wait4(pid_t >I<pid>B<, int *>I<status>B<, int >I<options>B<,>\n"
14241 "B<            struct rusage *>I<rusage>B<);>\n"
14242
14243 #. type: Plain text
14244 #: build/C/man2/wait4.2:57
14245 msgid "B<wait3>():"
14246 msgstr "B<wait3>():"
14247
14248 #. type: Plain text
14249 #: build/C/man2/wait4.2:63
14250 msgid "B<wait4>():"
14251 msgstr "B<wait4>():"
14252
14253 #. type: Plain text
14254 #: build/C/man2/wait4.2:65
14255 msgid "_BSD_SOURCE"
14256 msgstr "_BSD_SOURCE"
14257
14258 #. type: Plain text
14259 #: build/C/man2/wait4.2:73
14260 msgid ""
14261 "These functions are obsolete; use B<waitpid>(2)  or B<waitid>(2)  in new "
14262 "programs."
14263 msgstr ""
14264 "これらの関数は廃止予定である。 新しいプログラムでは B<waitpid>(2) や "
14265 "B<waitid>(2) を使用すること。"
14266
14267 #. type: Plain text
14268 #: build/C/man2/wait4.2:83
14269 msgid ""
14270 "The B<wait3>()  and B<wait4>()  system calls are similar to B<waitpid>(2), "
14271 "but additionally return resource usage information about the child in the "
14272 "structure pointed to by I<rusage>."
14273 msgstr ""
14274 "システムコール B<wait3>()  と B<wait4>()  は B<waitpid>(2)  と同様の動作をす"
14275 "る。それに加え、子プロセスのリソース使用状況の情報を I<rusage> が指す構造体に"
14276 "入れて返す。"
14277
14278 #. type: Plain text
14279 #: build/C/man2/wait4.2:89
14280 msgid ""
14281 "Other than the use of the I<rusage> argument, the following B<wait3>()  call:"
14282 msgstr "I<rusage> を使用する点を除けば、次の B<wait3>()  の呼び出し"
14283
14284 #. type: Plain text
14285 #: build/C/man2/wait4.2:92
14286 #, no-wrap
14287 msgid "    wait3(status, options, rusage);\n"
14288 msgstr "    wait3(status, options, rusage);\n"
14289
14290 #. type: Plain text
14291 #: build/C/man2/wait4.2:95 build/C/man2/wait4.2:109
14292 msgid "is equivalent to:"
14293 msgstr "は以下と等価である。"
14294
14295 #. type: Plain text
14296 #: build/C/man2/wait4.2:98
14297 #, no-wrap
14298 msgid "    waitpid(-1, status, options);\n"
14299 msgstr "    waitpid(-1, status, options);\n"
14300
14301 #. type: Plain text
14302 #: build/C/man2/wait4.2:103
14303 msgid "Similarly, the following B<wait4>()  call:"
14304 msgstr "同様に、次の B<wait4>()  の呼び出し"
14305
14306 #. type: Plain text
14307 #: build/C/man2/wait4.2:106
14308 #, no-wrap
14309 msgid "    wait4(pid, status, options, rusage);\n"
14310 msgstr "    wait4(pid, status, options, rusage);\n"
14311
14312 #. type: Plain text
14313 #: build/C/man2/wait4.2:112
14314 #, no-wrap
14315 msgid "    waitpid(pid, status, options);\n"
14316 msgstr "    waitpid(pid, status, options);\n"
14317
14318 #. type: Plain text
14319 #: build/C/man2/wait4.2:122
14320 msgid ""
14321 "In other words, B<wait3>()  waits of any child, while B<wait4>()  can be "
14322 "used to select a specific child, or children, on which to wait.  See B<wait>"
14323 "(2)  for further details."
14324 msgstr ""
14325 "言い換えると、 B<wait3>()  は全ての子プロセスを対象に待つが、 B<wait4>()  で"
14326 "は特定の子プロセス (複数可) を選んで待つことができる。"
14327
14328 #. type: Plain text
14329 #: build/C/man2/wait4.2:132
14330 msgid ""
14331 "If I<rusage> is not NULL, the I<struct rusage> to which it points will be "
14332 "filled with accounting information about the child.  See B<getrusage>(2)  "
14333 "for details."
14334 msgstr ""
14335 "I<rusage> が NULL でない場合、 I<rusage> が指す I<rusage 構造体> には子プロセ"
14336 "スのアカウント情報が格納される。 詳しくは B<getrusage>(2)  を参照のこと。"
14337
14338 #. type: Plain text
14339 #: build/C/man2/wait4.2:135 build/C/man2/wait4.2:138
14340 msgid "As for B<waitpid>(2)."
14341 msgstr "B<waitpid>(2)  と同様。"
14342
14343 #. type: Plain text
14344 #: build/C/man2/wait4.2:140
14345 msgid "4.3BSD."
14346 msgstr "4.3BSD."
14347
14348 #. type: Plain text
14349 #: build/C/man2/wait4.2:147
14350 msgid ""
14351 "SUSv1 included a specification of B<wait3>(); SUSv2 included B<wait3>(), but "
14352 "marked it LEGACY; SUSv3 removed it."
14353 msgstr ""
14354 "SUSv1 には B<wait3>() の規定があった。 SUSv2 には B<wait3>() が含まれていた"
14355 "が、「過去の名残 (LEGACY)」となっていた。 SUSv3 では B<wait3>() は削除され"
14356 "た。"
14357
14358 #. type: Plain text
14359 #: build/C/man2/wait4.2:159
14360 msgid ""
14361 "Including I<E<lt>sys/time.hE<gt>> is not required these days, but increases "
14362 "portability.  (Indeed, I<E<lt>sys/resource.hE<gt>> defines the I<rusage> "
14363 "structure with fields of type I<struct timeval> defined in I<E<lt>sys/time."
14364 "hE<gt>>.)"
14365 msgstr ""
14366 "現在では I<E<lt>sys/time.hE<gt>> をインクルードする必要はないが、インクルード"
14367 "しておくと 移植性を高めることができる (実際には I<E<lt>sys/resource.hE<gt>> "
14368 "で I<rusage> 構造体が定義されているが、そのフィールドで使用されている "
14369 "I<struct timeval> 型は I<E<lt>sys/time.hE<gt>> で定義されている)。"
14370
14371 #. type: Plain text
14372 #: build/C/man2/wait4.2:165
14373 msgid ""
14374 "On Linux, B<wait3>()  is a library function implemented on top of the "
14375 "B<wait4>()  system call."
14376 msgstr ""
14377 "Linux では、 B<wait3>()  はライブラリ関数であり、 B<wait4>()  システムコール"
14378 "を使って実装されている。"
14379
14380 #. type: Plain text
14381 #: build/C/man2/wait4.2:172
14382 msgid ""
14383 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14384 "B<signal>(7)"
14385 msgstr ""
14386 "B<fork>(2), B<getrusage>(2), B<sigaction>(2), B<signal>(2), B<wait>(2), "
14387 "B<signal>(7)"
14388
14389 #~ msgid "2012-04-20"
14390 #~ msgstr "2012-04-20"
14391
14392 #~ msgid "2010-09-12"
14393 #~ msgstr "2010-09-12"
14394
14395 #~ msgid "2012-03-25"
14396 #~ msgstr "2012-03-25"
14397
14398 #~ msgid "B<int sigisemptyset(sigset_t *>I<set>B<);>"
14399 #~ msgstr "B<int sigisemptyset(sigset_t *>I<set>B<);>"
14400
14401 #~ msgid "B<int sigorset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
14402 #~ msgstr "B<int sigorset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
14403
14404 #~ msgid "places the union of the sets I<left> and I<right> in I<dest>."
14405 #~ msgstr "シグナル集合 I<left> と I<left> の和集合を I<dest> に書き込む。"
14406
14407 #~ msgid "B<int sigandset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
14408 #~ msgstr "B<int sigandset(sigset_t *>I<dest>B<, sigset_t *>I<left>B<, sigset_t *>I<right>B<);>"
14409
14410 #~ msgid "places the intersection of the sets I<left> and I<right> in I<dest>."
14411 #~ msgstr "シグナル集合 I<left> と I<left> の積集合を I<dest> に書き込む。"
14412
14413 #~ msgid ""
14414 #~ "B<sigorset>()  and B<sigandset>()  return 0 on success, and -1 on failure."
14415 #~ msgstr ""
14416 #~ "B<sigorset>()  と B<sigandset>()  は成功すると 0 を、失敗すると -1 を返"
14417 #~ "す。"
14418
14419 #~ msgid "2012-09-06"
14420 #~ msgstr "2012-09-06"
14421
14422 #~ msgid "2012-07-21"
14423 #~ msgstr "2012-07-21"
14424
14425 #~ msgid "2007-05-04"
14426 #~ msgstr "2007-05-04"
14427
14428 #~ msgid "2010-09-27"
14429 #~ msgstr "2010-09-27"