OSDN Git Service

LDP: Update POT and ja.po to LDP v3.79
[linuxjm/LDP_man-pages.git] / po4a / man3 / po / ja.po
1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
6 msgid ""
7 msgstr ""
8 "Project-Id-Version: PACKAGE VERSION\n"
9 "POT-Creation-Date: 2015-02-04 23:30+0900\n"
10 "PO-Revision-Date: 2015-01-25 07:19+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/__setfpucw.3:8
20 #, no-wrap
21 msgid "__SETFPUCW"
22 msgstr "__SETFPUCW"
23
24 #. type: TH
25 #: build/C/man3/__setfpucw.3:8
26 #, no-wrap
27 msgid "2012-12-31"
28 msgstr "2012-12-31"
29
30 #. type: TH
31 #: build/C/man3/__setfpucw.3:8 build/C/man3/queue.3:39
32 #, no-wrap
33 msgid "Linux"
34 msgstr "Linux"
35
36 #. type: TH
37 #: build/C/man3/__setfpucw.3:8 build/C/man3/addseverity.3:9
38 #: build/C/man3/argz_add.3:10 build/C/man3/backtrace.3:27
39 #: build/C/man3/basename.3:27 build/C/man3/envz_add.3:10
40 #: build/C/man3/ftok.3:29 build/C/man3/longjmp.3:27 build/C/man3/offsetof.3:28
41 #: build/C/man3/program_invocation_name.3:24 build/C/man3/queue.3:39
42 #: build/C/man3/realpath.3:28 build/C/man3/setjmp.3:27
43 #: build/C/man3/xcrypt.3:13
44 #, no-wrap
45 msgid "Linux Programmer's Manual"
46 msgstr "Linux Programmer's Manual"
47
48 #. type: SH
49 #: build/C/man3/__setfpucw.3:9 build/C/man3/addseverity.3:10
50 #: build/C/man3/argz_add.3:11 build/C/man3/backtrace.3:28
51 #: build/C/man3/basename.3:28 build/C/man3/envz_add.3:11
52 #: build/C/man3/ftok.3:30 build/C/man3/longjmp.3:28 build/C/man3/offsetof.3:29
53 #: build/C/man3/program_invocation_name.3:25 build/C/man3/queue.3:40
54 #: build/C/man3/realpath.3:29 build/C/man3/setjmp.3:28
55 #: build/C/man3/xcrypt.3:14
56 #, no-wrap
57 msgid "NAME"
58 msgstr "名前"
59
60 #. type: Plain text
61 #: build/C/man3/__setfpucw.3:11
62 msgid "__setfpucw - set FPU control word on i386 architecture (obsolete)"
63 msgstr ""
64 "__setfpucw - i386 アーキテクチャーにおける FPU のコントロールワードの設定 "
65 "(obsolete)"
66
67 #. type: SH
68 #: build/C/man3/__setfpucw.3:11 build/C/man3/addseverity.3:12
69 #: build/C/man3/argz_add.3:15 build/C/man3/backtrace.3:31
70 #: build/C/man3/basename.3:30 build/C/man3/envz_add.3:14
71 #: build/C/man3/ftok.3:32 build/C/man3/longjmp.3:30 build/C/man3/offsetof.3:31
72 #: build/C/man3/program_invocation_name.3:28 build/C/man3/queue.3:48
73 #: build/C/man3/realpath.3:31 build/C/man3/setjmp.3:30
74 #: build/C/man3/xcrypt.3:16
75 #, no-wrap
76 msgid "SYNOPSIS"
77 msgstr "書式"
78
79 #. type: Plain text
80 #: build/C/man3/__setfpucw.3:13
81 msgid "B<#include E<lt>i386/fpu_control.hE<gt>>"
82 msgstr "B<#include E<lt>i386/fpu_control.hE<gt>>"
83
84 #. type: Plain text
85 #: build/C/man3/__setfpucw.3:15
86 msgid "B<void __setfpucw(unsigned short >I<control_word>B<);>"
87 msgstr "B<void __setfpucw(unsigned short >I<control_word>B<);>"
88
89 #. type: SH
90 #: build/C/man3/__setfpucw.3:15 build/C/man3/addseverity.3:27
91 #: build/C/man3/argz_add.3:51 build/C/man3/backtrace.3:50
92 #: build/C/man3/basename.3:38 build/C/man3/envz_add.3:36
93 #: build/C/man3/ftok.3:39 build/C/man3/longjmp.3:46 build/C/man3/offsetof.3:37
94 #: build/C/man3/program_invocation_name.3:36 build/C/man3/queue.3:86
95 #: build/C/man3/realpath.3:51 build/C/man3/setjmp.3:49
96 #: build/C/man3/xcrypt.3:24
97 #, no-wrap
98 msgid "DESCRIPTION"
99 msgstr "説明"
100
101 #. type: Plain text
102 #: build/C/man3/__setfpucw.3:22
103 msgid ""
104 "B<__setfpucw>()  transfers I<control_word> to the registers of the FPU "
105 "(floating-point unit) on the i386 architecture.  This was used to control "
106 "floating-point precision, rounding and floating-point exceptions."
107 msgstr ""
108 "B<__setfpucw>()  は、i386アーキテクチャーにおいて I<control_word> を FPU "
109 "(floating-point unit) のレジスターに転送する。 これは浮動小数点演算の精度、丸"
110 "め方、 および浮動小数点例外を制御するのに使われる。"
111
112 #. type: SH
113 #: build/C/man3/__setfpucw.3:22 build/C/man3/addseverity.3:60
114 #: build/C/man3/argz_add.3:198 build/C/man3/backtrace.3:143
115 #: build/C/man3/basename.3:136 build/C/man3/envz_add.3:118
116 #: build/C/man3/ftok.3:75 build/C/man3/longjmp.3:90 build/C/man3/offsetof.3:63
117 #: build/C/man3/program_invocation_name.3:56 build/C/man3/queue.3:485
118 #: build/C/man3/realpath.3:135 build/C/man3/setjmp.3:88
119 #, no-wrap
120 msgid "CONFORMING TO"
121 msgstr "準拠"
122
123 #. type: Plain text
124 #: build/C/man3/__setfpucw.3:24
125 msgid "This function was a nonstandard GNU extension."
126 msgstr "この関数は非標準で GNU 拡張である。"
127
128 #. type: SH
129 #: build/C/man3/__setfpucw.3:24 build/C/man3/addseverity.3:67
130 #: build/C/man3/backtrace.3:145 build/C/man3/basename.3:138
131 #: build/C/man3/ftok.3:77 build/C/man3/longjmp.3:95
132 #: build/C/man3/program_invocation_name.3:59 build/C/man3/realpath.3:142
133 #: build/C/man3/setjmp.3:93
134 #, no-wrap
135 msgid "NOTES"
136 msgstr "注意"
137
138 #. type: Plain text
139 #: build/C/man3/__setfpucw.3:43
140 msgid ""
141 "As of glibc 2.1 this function does not exist anymore.  There are new "
142 "functions from C99, with prototypes in I<E<lt>fenv.hE<gt>>, to control FPU "
143 "rounding modes, like B<fegetround>(3), B<fesetround>(3), and the floating-"
144 "point environment, like B<fegetenv>(3), B<feholdexcept>(3), B<fesetenv>(3), "
145 "B<feupdateenv>(3), and FPU exception handling, like B<feclearexcept>(3), "
146 "B<fegetexceptflag>(3), B<feraiseexcept>(3), B<fesetexceptflag>(3), and "
147 "B<fetestexcept>(3)."
148 msgstr ""
149 "glibc 2.1 以降では、この関数は存在しない。 新たな関数群が C99 から導入され"
150 "た。これらのプロトタイプは I<E<lt>fenv.hE<gt>> に置かれている。 FPU の丸め"
151 "モードの制御には B<fegetround>(3), B<fesetround>(3) などが、浮動小数点関連の"
152 "環境には B<fegetenv>(3), B<feholdexcept>(3), B<fesetenv>(3), "
153 "B<feupdateenv>(3) などが、 FPU 例外処理には B<feclearexcept>(3), "
154 "B<fegetexceptflag>(3), B<feraiseexcept>(3), B<fesetexceptflag>(3), "
155 "B<fetestexcept>(3) などが導入された。"
156
157 #. type: Plain text
158 #: build/C/man3/__setfpucw.3:51
159 msgid ""
160 "If direct access to the FPU control word is still needed, the B<_FPU_GETCW> "
161 "and B<_FPU_SETCW> macros from I<E<lt>fpu_control.hE<gt>> can be used."
162 msgstr ""
163 "FPU のコントロールワードへどうしても直接アクセスする必要がある場合には、 "
164 "I<E<lt>fpu_control.hE<gt>> の B<_FPU_GETCW> マクロと B<_FPU_SETCW> マクロを用"
165 "いることは可能である。"
166
167 #. type: SH
168 #: build/C/man3/__setfpucw.3:51 build/C/man3/backtrace.3:167
169 #: build/C/man3/basename.3:171 build/C/man3/envz_add.3:121
170 #: build/C/man3/offsetof.3:65
171 #, no-wrap
172 msgid "EXAMPLE"
173 msgstr "例"
174
175 #. type: Plain text
176 #: build/C/man3/__setfpucw.3:53
177 msgid "B<__setfpucw(0x1372)>"
178 msgstr "B<__setfpucw(0x1372)>"
179
180 #. type: Plain text
181 #: build/C/man3/__setfpucw.3:55
182 msgid "Set FPU control word on the i386 architecture to"
183 msgstr "は、i386アーキテクチャーにおける FPU のコントロールワードを、"
184
185 #. type: Plain text
186 #: build/C/man3/__setfpucw.3:57
187 #, no-wrap
188 msgid "     - extended precision\n"
189 msgstr "     - 拡張精度\n"
190
191 #. type: Plain text
192 #: build/C/man3/__setfpucw.3:59
193 #, no-wrap
194 msgid "     - rounding to nearest\n"
195 msgstr "     - 最も近い整数へ丸める、中間の場合は偶数を選択する。\n"
196
197 #. type: Plain text
198 #: build/C/man3/__setfpucw.3:61
199 #, no-wrap
200 msgid "     - exceptions on overflow, zero divide and NaN\n"
201 msgstr "     - 桁溢れ、0で除算、及び無効値(NaN)ときに例外を発生に設定する。\n"
202
203 #. type: SH
204 #: build/C/man3/__setfpucw.3:61 build/C/man3/addseverity.3:70
205 #: build/C/man3/argz_add.3:204 build/C/man3/backtrace.3:251
206 #: build/C/man3/basename.3:184 build/C/man3/envz_add.3:143
207 #: build/C/man3/ftok.3:106 build/C/man3/longjmp.3:132
208 #: build/C/man3/program_invocation_name.3:63 build/C/man3/realpath.3:224
209 #: build/C/man3/setjmp.3:141 build/C/man3/xcrypt.3:71
210 #, no-wrap
211 msgid "SEE ALSO"
212 msgstr "関連項目"
213
214 #. type: Plain text
215 #: build/C/man3/__setfpucw.3:63
216 msgid "B<feclearexcept>(3)"
217 msgstr "B<feclearexcept>(3)"
218
219 #. type: Plain text
220 #: build/C/man3/__setfpucw.3:65
221 msgid "I<E<lt>fpu_control.hE<gt>>"
222 msgstr "I<E<lt>fpu_control.hE<gt>>"
223
224 #. type: SH
225 #: build/C/man3/__setfpucw.3:65 build/C/man3/addseverity.3:72
226 #: build/C/man3/argz_add.3:206 build/C/man3/backtrace.3:256
227 #: build/C/man3/basename.3:187 build/C/man3/envz_add.3:145
228 #: build/C/man3/ftok.3:112 build/C/man3/longjmp.3:135
229 #: build/C/man3/offsetof.3:103 build/C/man3/program_invocation_name.3:65
230 #: build/C/man3/queue.3:491 build/C/man3/realpath.3:231
231 #: build/C/man3/setjmp.3:144 build/C/man3/xcrypt.3:73
232 #, no-wrap
233 msgid "COLOPHON"
234 msgstr "この文書について"
235
236 #. type: Plain text
237 #: build/C/man3/__setfpucw.3:73 build/C/man3/addseverity.3:80
238 #: build/C/man3/argz_add.3:214 build/C/man3/backtrace.3:264
239 #: build/C/man3/basename.3:195 build/C/man3/envz_add.3:153
240 #: build/C/man3/ftok.3:120 build/C/man3/longjmp.3:143
241 #: build/C/man3/offsetof.3:111 build/C/man3/program_invocation_name.3:73
242 #: build/C/man3/queue.3:499 build/C/man3/realpath.3:239
243 #: build/C/man3/setjmp.3:152 build/C/man3/xcrypt.3:81
244 #, fuzzy
245 #| msgid ""
246 #| "This page is part of release 3.78 of the Linux I<man-pages> project.  A "
247 #| "description of the project, information about reporting bugs, and the "
248 #| "latest version of this page, can be found at \\%http://www.kernel.org/doc/"
249 #| "man-pages/."
250 msgid ""
251 "This page is part of release 3.79 of the Linux I<man-pages> project.  A "
252 "description of the project, information about reporting bugs, and the latest "
253 "version of this page, can be found at \\%http://www.kernel.org/doc/man-"
254 "pages/."
255 msgstr ""
256 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.78 の一部\n"
257 "である。プロジェクトの説明とバグ報告に関する情報は\n"
258 "http://www.kernel.org/doc/man-pages/ に書かれている。"
259
260 #. type: TH
261 #: build/C/man3/addseverity.3:9
262 #, no-wrap
263 msgid "ADDSEVERITY"
264 msgstr "ADDSEVERITY"
265
266 #. type: TH
267 #: build/C/man3/addseverity.3:9 build/C/man3/backtrace.3:27
268 #, no-wrap
269 msgid "2008-06-14"
270 msgstr "2008-06-14"
271
272 #. type: TH
273 #: build/C/man3/addseverity.3:9 build/C/man3/backtrace.3:27
274 #: build/C/man3/basename.3:27 build/C/man3/ftok.3:29
275 #: build/C/man3/offsetof.3:28 build/C/man3/program_invocation_name.3:24
276 #, no-wrap
277 msgid "GNU"
278 msgstr "GNU"
279
280 #. type: Plain text
281 #: build/C/man3/addseverity.3:12
282 msgid "addseverity - introduce new severity classes"
283 msgstr "addseverity - 新しい重大度 (severity class) を導入する"
284
285 #. type: Plain text
286 #: build/C/man3/addseverity.3:16
287 #, no-wrap
288 msgid "B<#include E<lt>fmtmsg.hE<gt>>\n"
289 msgstr "B<#include E<lt>fmtmsg.hE<gt>>\n"
290
291 #. type: Plain text
292 #: build/C/man3/addseverity.3:18
293 #, no-wrap
294 msgid "B<int addseverity(int >I<severity>B<, const char *>I<s>B<);>\n"
295 msgstr "B<int addseverity(int >I<severity>B<, const char *>I<s>B<);>\n"
296
297 #. type: Plain text
298 #: build/C/man3/addseverity.3:23 build/C/man3/longjmp.3:42
299 #: build/C/man3/realpath.3:42 build/C/man3/setjmp.3:42
300 msgid ""
301 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
302 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7)  参照):"
303
304 #. type: Plain text
305 #: build/C/man3/addseverity.3:27
306 msgid "B<addseverity>(): _SVID_SOURCE"
307 msgstr "B<addseverity>(): _SVID_SOURCE"
308
309 #. type: Plain text
310 #: build/C/man3/addseverity.3:49
311 #, fuzzy
312 #| msgid ""
313 #| "This function allows the introduction of new severity classes which can "
314 #| "be addressed by the I<severity> argument of the B<fmtmsg>(3)  function.  "
315 #| "By default that latter function only knows how to print messages for "
316 #| "severity 0-4 (with strings (none), HALT, ERROR, WARNING, INFO).  This "
317 #| "call attaches the given string I<s> to the given value I<severity>.  If "
318 #| "I<s> is NULL, the severity class with the numeric value I<severity> is "
319 #| "removed.  It is not possible to overwrite or remove one of the default "
320 #| "severity classes.  The severity value must be nonnegative."
321 msgid ""
322 "This function allows the introduction of new severity classes which can be "
323 "addressed by the I<severity> argument of the B<fmtmsg>(3)  function.  By "
324 "default, that function knows only how to print messages for severity 0-4 "
325 "(with strings (none), HALT, ERROR, WARNING, INFO).  This call attaches the "
326 "given string I<s> to the given value I<severity>.  If I<s> is NULL, the "
327 "severity class with the numeric value I<severity> is removed.  It is not "
328 "possible to overwrite or remove one of the default severity classes.  The "
329 "severity value must be nonnegative."
330 msgstr ""
331 "この関数により、新しい重大度を導入できる。 この重大度は、 B<fmtmsg>(3)  関数"
332 "の I<severity> 引き数に入れることができる。 デフォルトでは、後者の "
333 "B<fmtmsg>(3)  関数は重大度 0-4 (文字列では (none), HALT, ERROR, WARNING, "
334 "INFO) の メッセージを表示する方法しか知らない。 この B<addseverity>(3)  の呼"
335 "び出しにより、指定された文字列 I<s> に指定された値 I<severity> を付加する。 "
336 "I<s> が NULL の場合、数値 I<severity> の重大度が削除される。 デフォルトの重大"
337 "度のどれかを上書きしたり削除したりすることはできない。 重大度の値は負でない数"
338 "としなければならない。"
339
340 #. type: SH
341 #: build/C/man3/addseverity.3:49 build/C/man3/argz_add.3:192
342 #: build/C/man3/backtrace.3:118 build/C/man3/basename.3:121
343 #: build/C/man3/envz_add.3:112 build/C/man3/ftok.3:61
344 #: build/C/man3/longjmp.3:88 build/C/man3/offsetof.3:56
345 #: build/C/man3/realpath.3:91 build/C/man3/setjmp.3:78
346 #: build/C/man3/xcrypt.3:61
347 #, no-wrap
348 msgid "RETURN VALUE"
349 msgstr "返り値"
350
351 #. type: Plain text
352 #: build/C/man3/addseverity.3:57
353 msgid ""
354 "Upon success, the value B<MM_OK> is returned.  Upon error, the return value "
355 "is B<MM_NOTOK>.  Possible errors include: out of memory, attempt to remove a "
356 "nonexistent or default severity class."
357 msgstr ""
358 "成功した場合、値 B<MM_OK> が返される。 エラーの場合、返り値は B<MM_NOTOK> で"
359 "ある。 起こる可能性があるエラーには、以下のものが含まれる: メモリーを使い果た"
360 "した。 存在しない重大度またはデフォルトの重大度を削除しようとした。"
361
362 #. type: SH
363 #: build/C/man3/addseverity.3:57 build/C/man3/backtrace.3:137
364 #: build/C/man3/xcrypt.3:67
365 #, no-wrap
366 msgid "VERSIONS"
367 msgstr "バージョン"
368
369 #. type: Plain text
370 #: build/C/man3/addseverity.3:60
371 msgid "B<addseverity>()  is provided in glibc since version 2.1."
372 msgstr "B<addseverity>()  はバージョン 2.1 以降の glibc で提供されている。"
373
374 #. type: Plain text
375 #: build/C/man3/addseverity.3:67
376 msgid ""
377 "This function is not specified in the X/Open Portability Guide although the "
378 "B<fmtmsg>(3)  function is.  It is available on System V systems."
379 msgstr ""
380 "B<fmtmsg>(3)  関数は X/Open Portability Guide に指定されているが、 この関数は"
381 "指定されていない。 この関数は System V システムで利用可能である。"
382
383 #. type: Plain text
384 #: build/C/man3/addseverity.3:70
385 msgid ""
386 "New severity classes can also be added by setting the environment variable "
387 "B<SEV_LEVEL>."
388 msgstr ""
389 "新しい重大度は、環境変数 B<SEV_LEVEL> を設定することで追加することもできる。"
390
391 #. type: Plain text
392 #: build/C/man3/addseverity.3:72
393 msgid "B<fmtmsg>(3)"
394 msgstr "B<fmtmsg>(3)"
395
396 #. type: TH
397 #: build/C/man3/argz_add.3:10
398 #, no-wrap
399 msgid "ARGZ_ADD"
400 msgstr "ARGZ_ADD"
401
402 #. type: TH
403 #: build/C/man3/argz_add.3:10 build/C/man3/envz_add.3:10
404 #, no-wrap
405 msgid "2014-05-28"
406 msgstr "2014-05-28"
407
408 #. type: Plain text
409 #: build/C/man3/argz_add.3:15
410 msgid ""
411 "argz_add, argz_add_sep, argz_append, argz_count, argz_create, "
412 "argz_create_sep, argz_delete, argz_extract, argz_insert, argz_next, "
413 "argz_replace, argz_stringify - functions to handle an argz list"
414 msgstr ""
415 "argz_add, argz_add_sep, argz_append, argz_count, argz_create, "
416 "argz_create_sep, argz_delete, argz_extract, argz_insert, argz_next, "
417 "argz_replace, argz_stringify - argz リストを操作するための関数群"
418
419 #. type: Plain text
420 #: build/C/man3/argz_add.3:18
421 #, no-wrap
422 msgid "B<#include E<lt>argz.hE<gt>>\n"
423 msgstr "B<#include E<lt>argz.hE<gt>>\n"
424
425 #. type: Plain text
426 #: build/C/man3/argz_add.3:21
427 #, no-wrap
428 msgid "B<error_t argz_add(char **>I<argz>B<, size_t *>I<argz_len>B<, const char *>I<str>B<);>\n"
429 msgstr "B<error_t argz_add(char **>I<argz>B<, size_t *>I<argz_len>B<, const char *>I<str>B<);>\n"
430
431 #. type: Plain text
432 #: build/C/man3/argz_add.3:24
433 #, no-wrap
434 msgid ""
435 "B<error_t argz_add_sep(char **>I<argz>B<, size_t *>I<argz_len>B<,>\n"
436 "B<                     const char *>I<str>B<, int >I<delim>B<);>\n"
437 msgstr ""
438 "B<error_t argz_add_sep(char **>I<argz>B<, size_t *>I<argz_len>B<,>\n"
439 "B<                     const char *>I<str>B<, int >I<delim>B<);>\n"
440
441 #. type: Plain text
442 #: build/C/man3/argz_add.3:27
443 #, no-wrap
444 msgid ""
445 "B<error_t argz_append(char **>I<argz>B<, size_t *>I<argz_len>B<,>\n"
446 "B<                     const char *>I<buf>B<, size_t >I<buf_len>B<);>\n"
447 msgstr ""
448 "B<error_t argz_append(char **>I<argz>B<, size_t *>I<argz_len>B<,>\n"
449 "B<                     const char *>I<buf>B<, size_t >I<buf_len>B<);>\n"
450
451 #. type: Plain text
452 #: build/C/man3/argz_add.3:29
453 #, no-wrap
454 msgid "B<size_t argz_count(const char *>I<argz>B<, size_t >I<argz_len>B<);>\n"
455 msgstr "B<size_t argz_count(const char *>I<argz>B<, size_t >I<argz_len>B<);>\n"
456
457 #. type: Plain text
458 #: build/C/man3/argz_add.3:32
459 #, no-wrap
460 msgid ""
461 "B<error_t argz_create(char * const >I<argv>B<[], char **>I<argz>B<,>\n"
462 "B<                     size_t *>I<argz_len>B<);>\n"
463 msgstr ""
464 "B<error_t argz_create(char * const >I<argv>B<[], char **>I<argz>B<,>\n"
465 "B<                     size_t *>I<argz_len>B<);>\n"
466
467 #. type: Plain text
468 #: build/C/man3/argz_add.3:35
469 #, no-wrap
470 msgid ""
471 "B<error_t argz_create_sep(const char *>I<str>B<, int >I<sep>B<, char **>I<argz>B<,>\n"
472 "B<                     size_t *>I<argz_len>B<);>\n"
473 msgstr ""
474 "B<error_t argz_create_sep(const char *>I<str>B<, int >I<sep>B<, char **>I<argz>B<,>\n"
475 "B<                     size_t *>I<argz_len>B<);>\n"
476
477 #. type: Plain text
478 #: build/C/man3/argz_add.3:37
479 #, no-wrap
480 msgid "B<void argz_delete(char **>I<argz>B<, size_t *>I<argz_len>B<, char *>I<entry>B<);>\n"
481 msgstr "B<void argz_delete(char **>I<argz>B<, size_t *>I<argz_len>B<, char *>I<entry>B<);>\n"
482
483 #. type: Plain text
484 #: build/C/man3/argz_add.3:39
485 #, no-wrap
486 msgid "B<void argz_extract(const char *>I<argz>B<, size_t >I<argz_len>B<, char  **>I<argv>B<);>\n"
487 msgstr "B<void argz_extract(const char *>I<argz>B<, size_t >I<argz_len>B<, char  **>I<argv>B<);>\n"
488
489 #. type: Plain text
490 #: build/C/man3/argz_add.3:42
491 #, no-wrap
492 msgid ""
493 "B<error_t argz_insert(char **>I<argz>B<, size_t *>I<argz_len>B<, char *>I<before>B<,>\n"
494 "B<                     const char *>I<entry>B<);>\n"
495 msgstr ""
496 "B<error_t argz_insert(char **>I<argz>B<, size_t *>I<argz_len>B<, char *>I<before>B<,>\n"
497 "B<                     const char *>I<entry>B<);>\n"
498
499 #. type: Plain text
500 #: build/C/man3/argz_add.3:44
501 #, no-wrap
502 msgid "B<char *argz_next(const char *>I<argz>B<, size_t >I<argz_len>B<, const char *>I<entry>B<);>\n"
503 msgstr "B<char *argz_next(const char *>I<argz>B<, size_t >I<argz_len>B<, const char *>I<entry>B<);>\n"
504
505 #. type: Plain text
506 #: build/C/man3/argz_add.3:48
507 #, no-wrap
508 msgid ""
509 "B<error_t argz_replace(char **>I<argz>B<, size_t *>I<argz_len>B<, const char *>I<str>B<,>\n"
510 "B<                     const char *>I<with>B<, unsigned int *>I<replace_count>B<);>\n"
511 msgstr ""
512 "B<error_t argz_replace(char **>I<argz>B<, size_t *>I<argz_len>B<, const char *>I<str>B<,>\n"
513 "B<                     const char *>I<with>B<, unsigned int *>I<replace_count>B<);>\n"
514
515 #. type: Plain text
516 #: build/C/man3/argz_add.3:50
517 #, no-wrap
518 msgid "B<void argz_stringify(char *>I<argz>B<, size_t >I<len>B<, int >I<sep>B<);>\n"
519 msgstr "B<void argz_stringify(char *>I<argz>B<, size_t >I<len>B<, int >I<sep>B<);>\n"
520
521 #. type: Plain text
522 #: build/C/man3/argz_add.3:53 build/C/man3/envz_add.3:38
523 msgid "These functions are glibc-specific."
524 msgstr "これらの関数は glibc 固有である。"
525
526 #. type: Plain text
527 #: build/C/man3/argz_add.3:58
528 msgid ""
529 "An argz vector is a pointer to a character buffer together with a length.  "
530 "The intended interpretation of the character buffer is an array of strings, "
531 "where the strings are separated by null bytes (\\(aq\\e0\\(aq).  If the "
532 "length is nonzero, the last byte of the buffer must be a null byte."
533 msgstr ""
534 "argz vector は長さ情報付きの文字バッファーへのポインターである。 文字バッ"
535 "ファーでは、複数の文字列がヌルバイト (\\(aq\\e0\\(aq) で区切られており、 文字"
536 "列の配列として解釈されるようになっている。 長さが 0 でない場合、バッファーの"
537 "最後のバイトはヌルバイトでなければならない。"
538
539 #. type: Plain text
540 #: build/C/man3/argz_add.3:67
541 msgid ""
542 "These functions are for handling argz vectors.  The pair (NULL,0) is an argz "
543 "vector, and, conversely, argz vectors of length 0 must have null pointer.  "
544 "Allocation of nonempty argz vectors is done using B<malloc>(3), so that "
545 "B<free>(3)  can be used to dispose of them again."
546 msgstr ""
547 "これらの関数は argz vector を操作するためのものである。 ペア (NULL,0) は "
548 "argz vector であり、逆に言えば 長さ 0 の argz vectorはヌルポインターを持たな"
549 "ければならない。 空でない argz vector の割り当ては B<malloc>(3)  を使って行わ"
550 "れる。したがって、argz vector を解放するのに B<free>(3)  を使うことができる。"
551
552 #. type: Plain text
553 #: build/C/man3/argz_add.3:77
554 msgid ""
555 "B<argz_add>()  adds the string I<str> at the end of the array I<*argz>, and "
556 "updates I<*argz> and I<*argz_len>."
557 msgstr ""
558 "B<argz_add>()  は、文字列 I<str> を配列 I<*argz> の末尾に追加し、 I<*argz> "
559 "と I<*argz_len> を更新する。"
560
561 #. type: Plain text
562 #: build/C/man3/argz_add.3:85
563 msgid ""
564 "B<argz_add_sep>()  is similar, but splits the string I<str> into substrings "
565 "separated by the delimiter I<delim>.  For example, one might use this on a "
566 "UNIX search path with delimiter \\(aq:\\(aq."
567 msgstr ""
568 "B<argz_add_sep>()  も同様の動作をするが、区切り文字 I<delim> にしたがって文字"
569 "列 I<str> を複数の文字列に分割する点が異なる。 例えば、区切り文字 \\(aq:"
570 "\\(aq を指定して、UNIX サーチパスに対して この関数を使うことができるだろう。"
571
572 #. type: Plain text
573 #: build/C/man3/argz_add.3:99
574 msgid ""
575 "B<argz_append>()  appends the argz vector (I<buf>,\\ I<buf_len>)  after "
576 "(I<*argz>,\\ I<*argz_len>)  and updates I<*argz> and I<*argz_len>.  (Thus, "
577 "I<*argz_len> will be increased by I<buf_len>.)"
578 msgstr ""
579 "B<argz_append>()  は argz vector (I<buf>,\\ I<buf_len>)  の後ろに (I<*argz>,"
580 "\\ I<*argz_len>) を付け加え、 I<*argz> と I<*argz_len> を更新する。 (したがっ"
581 "て、 I<*argz_len> は I<buf_len> だけ増加する。)"
582
583 #. type: Plain text
584 #: build/C/man3/argz_add.3:104
585 msgid ""
586 "B<argz_count>()  counts the number of strings, that is, the number of null "
587 "bytes (\\(aq\\e0\\(aq), in (I<argz>,\\ I<argz_len>)."
588 msgstr ""
589 "B<argz_count>()  は (I<argz>,\\ I<argz_len>)  内の文字列の数を数える。実際に"
590 "はヌルバイト (\\(aq\\e0\\(aq) の数を数えている。"
591
592 #. type: Plain text
593 #: build/C/man3/argz_add.3:112
594 msgid ""
595 "B<argz_create>()  converts a UNIX-style argument vector I<argv>, terminated "
596 "by I<(char\\ *)\\ 0>, into an argz vector (I<*argz>,\\ I<*argz_len>)."
597 msgstr ""
598 "B<argz_create>() は、UNIX 流の引き数ベクトルである (I<(char\\ *)\\ 0> で終端"
599 "される) I<argv> を、argz vector (I<*argz>,\\ I<*argz_len>)  に変換する。"
600
601 #. type: Plain text
602 #: build/C/man3/argz_add.3:120
603 msgid ""
604 "B<argz_create_sep>()  converts the null-terminated string I<str> into an "
605 "argz vector (I<*argz>,\\ I<*argz_len>)  by breaking it up at every "
606 "occurrence of the separator I<sep>."
607 msgstr ""
608 "B<argz_create_sep>()  は、ヌル終端された文字列 I<str> を区切り文字 I<sep> が"
609 "現れる毎に分割しながら、argz vector (*I<argz>,\\ I<*argz_len>)  に変換する。"
610
611 #. type: Plain text
612 #: build/C/man3/argz_add.3:130
613 msgid ""
614 "B<argz_delete>()  removes the substring pointed to by I<entry> from the argz "
615 "vector (I<*argz>,\\ I<*argz_len>)  and updates I<*argz> and I<*argz_len>."
616 msgstr ""
617 "B<argz_delete>()  は、 I<entry> で指し示された文字列を argz vector (I<*argz>,"
618 "\\ I<*argz_len>) から削除し、 I<*argz> と I<*argz_len> を更新する。"
619
620 #. type: Plain text
621 #: build/C/man3/argz_add.3:145
622 msgid ""
623 "B<argz_extract>()  is the opposite of B<argz_create>().  It takes the argz "
624 "vector (I<argz>,\\ I<argz_len>)  and fills the array starting at I<argv> "
625 "with pointers to the substrings, and a final NULL, making a UNIX-style argv "
626 "vector.  The array I<argv> must have room for I<argz_count>(I<argz>, "
627 "I<argz_len>) + 1 pointers."
628 msgstr ""
629 "B<argz_extract>()  は B<argz_create>()  の反対の操作を行う。argz vector "
630 "(I<argz>,\\ I<argz_len>)  を調べ、 I<argv> から始まる配列をサブ文字列へのポイ"
631 "ンターで埋めていき、 一番最後に NULL を入れて、UNIX 流の argv ベクトルを作成"
632 "する。 配列 I<argv> は I<argz_count>(I<argz>,I<argz_len>) + 1 個のポインター"
633 "を収容できる空間を持っていなければならない。"
634
635 #. type: Plain text
636 #: build/C/man3/argz_add.3:164
637 msgid ""
638 "B<argz_insert>()  is the opposite of B<argz_delete>().  It inserts the "
639 "argument I<entry> at position I<before> into the argz vector (I<*argz>,\\ "
640 "I<*argz_len>)  and updates I<*argz> and I<*argz_len>.  If I<before> is NULL, "
641 "then I<entry> will inserted at the end."
642 msgstr ""
643 "B<argz_insert>()  は B<argz_delete>()  の反対の操作を行う。argz vector "
644 "(I<*argz>,\\ I<*argz_len>)  の位置 I<before> に引き数 I<entry> を挿入し、 "
645 "I<*argz> と I<*argz_len> を更新する。 I<before> が NULL の場合、 I<entry> は"
646 "末尾に挿入される。"
647
648 #. type: Plain text
649 #: build/C/man3/argz_add.3:173
650 msgid ""
651 "B<argz_next>()  is a function to step trough the argz vector.  If I<entry> "
652 "is NULL, the first entry is returned.  Otherwise, the entry following is "
653 "returned.  It returns NULL if there is no following entry."
654 msgstr ""
655 "B<argz_next>()  は argz vector を順番に調べるための関数である。 I<entry> が "
656 "NULL の場合、最初のエントリーを返す。 そうでない場合、次のエントリーを返す。 "
657 "次のエントリーがない場合、NULL を返す。"
658
659 #. type: Plain text
660 #: build/C/man3/argz_add.3:185
661 msgid ""
662 "B<argz_replace>()  replaces each occurrence of I<str> with I<with>, "
663 "reallocating argz as necessary.  If I<replace_count> is non-NULL, "
664 "I<*replace_count> will be incremented by the number of replacements."
665 msgstr ""
666 "B<argz_replace>()  は、 I<str> をすべて I<with> で置き換える (必要に応じて "
667 "argz の再割り当てを行う)。 I<replace_count> が NULL でない場合、 "
668 "I<*replace_count> を置き換えを行った数だけ増やす。"
669
670 #. type: Plain text
671 #: build/C/man3/argz_add.3:192
672 msgid ""
673 "B<argz_stringify>()  is the opposite of B<argz_create_sep>().  It transforms "
674 "the argz vector into a normal string by replacing all null bytes (\\(aq"
675 "\\e0\\(aq) except the last by I<sep>."
676 msgstr ""
677 "B<argz_stringify>()  は B<argz_create_sep>()  の反対の操作を行う。 末尾の ヌ"
678 "ルバイト以外の全てのヌルバイト (\\(aq\\e0\\(aq) を I<sep> で置き換えて、 "
679 "argz vector を通常の文字列に変換する。"
680
681 #. type: Plain text
682 #: build/C/man3/argz_add.3:198
683 msgid ""
684 "All argz functions that do memory allocation have a return type of "
685 "I<error_t>, and return 0 for success, and B<ENOMEM> if an allocation error "
686 "occurs."
687 msgstr ""
688 "メモリー割り当てを行う argz 関数群はすべて I<error_t> 型の返り値を持つ。 成功"
689 "した場合は 0 を返し、割り当てエラーが発生した場合は B<ENOMEM> を返す。"
690
691 #. type: Plain text
692 #: build/C/man3/argz_add.3:201 build/C/man3/envz_add.3:121
693 msgid "These functions are a GNU extension.  Handle with care."
694 msgstr "これらの関数は GNU による拡張である。注意して使用すること。"
695
696 #. type: SH
697 #: build/C/man3/argz_add.3:201 build/C/man3/basename.3:163
698 #: build/C/man3/realpath.3:193 build/C/man3/xcrypt.3:69
699 #, no-wrap
700 msgid "BUGS"
701 msgstr "バグ"
702
703 #. type: Plain text
704 #: build/C/man3/argz_add.3:204
705 msgid ""
706 "Argz vectors without a terminating null byte may lead to Segmentation Faults."
707 msgstr ""
708 "ヌルバイトで終端されていない argz vector を使用した場合、 segmentation fault "
709 "を起こすかもしれない。"
710
711 #. type: Plain text
712 #: build/C/man3/argz_add.3:206
713 msgid "B<envz_add>(3)"
714 msgstr "B<envz_add>(3)"
715
716 #. type: TH
717 #: build/C/man3/backtrace.3:27
718 #, no-wrap
719 msgid "BACKTRACE"
720 msgstr "BACKTRACE"
721
722 #. type: Plain text
723 #: build/C/man3/backtrace.3:31
724 msgid ""
725 "backtrace, backtrace_symbols, backtrace_symbols_fd - support for application "
726 "self-debugging"
727 msgstr ""
728 "backtrace, backtrace_symbols, backtrace_symbols_fd - アプリケーション自身での"
729 "デバッグのサポート"
730
731 #. type: Plain text
732 #: build/C/man3/backtrace.3:33
733 msgid "B<#include E<lt>execinfo.hE<gt>>"
734 msgstr "B<#include E<lt>execinfo.hE<gt>>"
735
736 #. type: Plain text
737 #: build/C/man3/backtrace.3:38
738 msgid "B<int backtrace(void> B<**>I<buffer>B<,> B<int> I<size>B<);>"
739 msgstr "B<int backtrace(void> B<**>I<buffer>B<,> B<int> I<size>B<);>"
740
741 #. type: Plain text
742 #: build/C/man3/backtrace.3:43
743 msgid ""
744 "B<char **backtrace_symbols(void *const> B<*>I<buffer>B<,> B<int> I<size>B<);>"
745 msgstr ""
746 "B<char **backtrace_symbols(void *const> B<*>I<buffer>B<,> B<int> I<size>B<);>"
747
748 #. type: Plain text
749 #: build/C/man3/backtrace.3:50
750 msgid ""
751 "B<void backtrace_symbols_fd(void *const> B<*>I<buffer>B<,> B<int> I<size>B<,"
752 "> B<int> I<fd>B<);>"
753 msgstr ""
754 "B<void backtrace_symbols_fd(void *const> B<*>I<buffer>B<,> B<int> I<size>B<,"
755 "> B<int> I<fd>B<);>"
756
757 #. type: Plain text
758 #: build/C/man3/backtrace.3:78
759 msgid ""
760 "B<backtrace>()  returns a backtrace for the calling program, in the array "
761 "pointed to by I<buffer>.  A backtrace is the series of currently active "
762 "function calls for the program.  Each item in the array pointed to by "
763 "I<buffer> is of type I<void\\ *>, and is the return address from the "
764 "corresponding stack frame.  The I<size> argument specifies the maximum "
765 "number of addresses that can be stored in I<buffer>.  If the backtrace is "
766 "larger than I<size>, then the addresses corresponding to the I<size> most "
767 "recent function calls are returned; to obtain the complete backtrace, make "
768 "sure that I<buffer> and I<size> are large enough."
769 msgstr ""
770 "B<backtrace>()  は、呼び出したプログラムのバックトレースを I<buffer> が指す配"
771 "列に入れて返す。バックトレースは、プログラムで 現在動作中の関数呼び出しの並び"
772 "である。 I<buffer> が指す配列の個々の要素は I<void\\ *> 型で、 対応するスタッ"
773 "クフレームからのリターンアドレスである。 I<size> 引き数は I<buffer> に格納で"
774 "きるアドレスの最大個数を指定する。 バックトレースが I<size> より大きい場合、 "
775 "I<size> 個の直近の関数呼び出しに対応するアドレスが返される。 完全なバックト"
776 "レースを取得するためには、確実に I<buffer> と I<size> が十分大きくなるように"
777 "すること。"
778
779 #. type: Plain text
780 #: build/C/man3/backtrace.3:103
781 msgid ""
782 "Given the set of addresses returned by B<backtrace>()  in I<buffer>, "
783 "B<backtrace_symbols>()  translates the addresses into an array of strings "
784 "that describe the addresses symbolically.  The I<size> argument specifies "
785 "the number of addresses in I<buffer>.  The symbolic representation of each "
786 "address consists of the function name (if this can be determined), a "
787 "hexadecimal offset into the function, and the actual return address (in "
788 "hexadecimal).  The address of the array of string pointers is returned as "
789 "the function result of B<backtrace_symbols>().  This array is B<malloc>(3)ed "
790 "by B<backtrace_symbols>(), and must be freed by the caller.  (The strings "
791 "pointed to by the array of pointers need not and should not be freed.)"
792 msgstr ""
793 "B<backtrace>()  によって I<buffer> にアドレスの集合が得られたら、 "
794 "B<backtrace_symbols>()  によって、アドレス集合を、そのアドレスをシンボルで表"
795 "した文字列の配列 に翻訳できる。 I<size> 引き数は I<buffer> に格納されたアドレ"
796 "スの数を指定する。 個々のアドレスのシンボル表現は、関数名 (特定できた場合)、 "
797 "関数へのオフセット (16進表記)、実際のリターンアドレス (16進表記)  から構成さ"
798 "れる。 B<backtrace_symbols>()  の実行結果としては、 文字列ポインターの配列の"
799 "アドレスが返される。 この配列は B<backtrace_symbols>()  によって "
800 "B<malloc>(3)  され、呼び出し側で free しなければならない (ポインターの配列が"
801 "指す個々の文字列は free する必要はないし、 free すべきでもない)。"
802
803 #. type: Plain text
804 #: build/C/man3/backtrace.3:118
805 msgid ""
806 "B<backtrace_symbols_fd>()  takes the same I<buffer> and I<size> arguments as "
807 "B<backtrace_symbols>(), but instead of returning an array of strings to the "
808 "caller, it writes the strings, one per line, to the file descriptor I<fd>.  "
809 "B<backtrace_symbols_fd>()  does not call B<malloc>(3), and so can be "
810 "employed in situations where the latter function might fail."
811 msgstr ""
812 "B<backtrace_symbols_fd>()  は、 B<backtrace_symbols>()  と同じ引き数 "
813 "I<buffer> と I<size> をとるが、呼び出し側に文字列の配列を返す代わりに、 文字"
814 "列をファイルディスクリプター I<fd> に 1 行に 1 エントリーの形で書き込む。 "
815 "B<backtrace_symbols_fd>()  は B<malloc>(3)  を呼び出さない。 そのため、これに"
816 "続く関数が失敗する可能性がある状況でも利用できる。"
817
818 #. type: Plain text
819 #: build/C/man3/backtrace.3:130
820 msgid ""
821 "B<backtrace>()  returns the number of addresses returned in I<buffer>, which "
822 "is not greater than I<size>.  If the return value is less than I<size>, then "
823 "the full backtrace was stored; if it is equal to I<size>, then it may have "
824 "been truncated, in which case the addresses of the oldest stack frames are "
825 "not returned."
826 msgstr ""
827 "B<backtrace>()  は I<buffer> に格納したアドレスの個数を返す。その個数は "
828 "I<size> より大きくなることはない。 返り値が I<size> より小さい場合、バックト"
829 "レース全体が格納されている。返り値が I<size> と等しい場合、バックトレースは切"
830 "り詰められているかもしれない。 切り詰められた場合、最も古いスタックフレームの"
831 "アドレスは 返されないことになる。"
832
833 #. type: Plain text
834 #: build/C/man3/backtrace.3:137
835 msgid ""
836 "On success, B<backtrace_symbols>()  returns a pointer to the array "
837 "B<malloc>(3)ed by the call; on error, NULL is returned."
838 msgstr ""
839 "B<backtrace_symbols>()  は、成功すると、この呼び出しで B<malloc>(3)  された配"
840 "列へのポインターを返す。 エラーの場合、 NULL を返す。"
841
842 #. type: Plain text
843 #: build/C/man3/backtrace.3:143
844 msgid ""
845 "B<backtrace>(), B<backtrace_symbols>(), and B<backtrace_symbols_fd>()  are "
846 "provided in glibc since version 2.1."
847 msgstr ""
848 "B<backtrace>(), B<backtrace_symbols>(), B<backtrace_symbols_fd>()  はバージョ"
849 "ン 2.1 以降の glibc で提供されている。"
850
851 #. type: Plain text
852 #: build/C/man3/backtrace.3:145
853 msgid "These functions are GNU extensions."
854 msgstr "これらの関数は GNU による拡張である。"
855
856 #. type: Plain text
857 #: build/C/man3/backtrace.3:149
858 msgid ""
859 "These functions make some assumptions about how a function's return address "
860 "is stored on the stack.  Note the following:"
861 msgstr ""
862 "これらの関数は、関数のリターンアドレスがスタック上でどのように格納されるか に"
863 "関してある仮定を置いている。 以下の点に注意。"
864
865 #. type: IP
866 #: build/C/man3/backtrace.3:149 build/C/man3/backtrace.3:155
867 #: build/C/man3/backtrace.3:157 build/C/man3/queue.3:93
868 #: build/C/man3/queue.3:95 build/C/man3/queue.3:97 build/C/man3/queue.3:99
869 #: build/C/man3/queue.3:109 build/C/man3/queue.3:131 build/C/man3/queue.3:133
870 #: build/C/man3/queue.3:135
871 #, no-wrap
872 msgid "*"
873 msgstr "*"
874
875 #. type: Plain text
876 #: build/C/man3/backtrace.3:155
877 msgid ""
878 "Omission of the frame pointers (as implied by any of B<gcc>(1)'s nonzero "
879 "optimization levels) may cause these assumptions to be violated."
880 msgstr ""
881 "(B<gcc>(1)  の 0 以外の最適化レベルで暗黙のうちに行われる)  フレームポイン"
882 "ターの省略を行うと、これらの前提が崩れる可能性がある。"
883
884 #. type: Plain text
885 #: build/C/man3/backtrace.3:157
886 msgid "Inlined functions do not have stack frames."
887 msgstr "インライン関数はスタックフレームを持たない。"
888
889 #. type: Plain text
890 #: build/C/man3/backtrace.3:159
891 msgid "Tail-call optimization causes one stack frame to replace another."
892 msgstr ""
893 "末尾呼び出しの最適化 (tail-call optimization) を行うと、 あるスタックフレーム"
894 "が別のスタックフレームを置き換える可能性がある。"
895
896 #. type: Plain text
897 #: build/C/man3/backtrace.3:167
898 msgid ""
899 "The symbol names may be unavailable without the use of special linker "
900 "options.  For systems using the GNU linker, it is necessary to use the I<-"
901 "rdynamic> linker option.  Note that names of \"static\" functions are not "
902 "exposed, and won't be available in the backtrace."
903 msgstr ""
904 "シンボル名は特別なリンカーオプションを使用しないと利用できない場合がある。 "
905 "GNU リンカーを使用するシステムでは、 I<-rdynamic> リンカーオプションを使う必"
906 "要がある。 \"static\" な関数のシンボル名は公開されず、 バックトレースでは利用"
907 "できない点に注意すること。"
908
909 #. type: Plain text
910 #: build/C/man3/backtrace.3:174
911 msgid ""
912 "The program below demonstrates the use of B<backtrace>()  and "
913 "B<backtrace_symbols>().  The following shell session shows what we might see "
914 "when running the program:"
915 msgstr ""
916 "以下のプログラムは、 B<backtrace>()  と B<backtrace_symbols>()  の使用例を示"
917 "したものである。 以下に示すシェルのセッションは、 このプログラムを動かした際"
918 "の実行例である。"
919
920 #. type: Plain text
921 #: build/C/man3/backtrace.3:188
922 #, no-wrap
923 msgid ""
924 "$B< cc -rdynamic prog.c -o prog>\n"
925 "$B< ./prog 3>\n"
926 "backtrace() returned 8 addresses\n"
927 "\\&./prog(myfunc3+0x5c) [0x80487f0]\n"
928 "\\&./prog [0x8048871]\n"
929 "\\&./prog(myfunc+0x21) [0x8048894]\n"
930 "\\&./prog(myfunc+0x1a) [0x804888d]\n"
931 "\\&./prog(myfunc+0x1a) [0x804888d]\n"
932 "\\&./prog(main+0x65) [0x80488fb]\n"
933 "\\&/lib/libc.so.6(__libc_start_main+0xdc) [0xb7e38f9c]\n"
934 "\\&./prog [0x8048711]\n"
935 msgstr ""
936 "$B< cc -rdynamic prog.c -o prog>\n"
937 "$B< ./prog 3>\n"
938 "backtrace() returned 8 addresses\n"
939 "\\&./prog(myfunc3+0x5c) [0x80487f0]\n"
940 "\\&./prog [0x8048871]\n"
941 "\\&./prog(myfunc+0x21) [0x8048894]\n"
942 "\\&./prog(myfunc+0x1a) [0x804888d]\n"
943 "\\&./prog(myfunc+0x1a) [0x804888d]\n"
944 "\\&./prog(main+0x65) [0x80488fb]\n"
945 "\\&/lib/libc.so.6(__libc_start_main+0xdc) [0xb7e38f9c]\n"
946 "\\&./prog [0x8048711]\n"
947
948 #. type: SS
949 #: build/C/man3/backtrace.3:190 build/C/man3/offsetof.3:76
950 #, no-wrap
951 msgid "Program source"
952 msgstr "プログラムのソース"
953
954 #. type: Plain text
955 #: build/C/man3/backtrace.3:197
956 #, no-wrap
957 msgid ""
958 "#include E<lt>execinfo.hE<gt>\n"
959 "#include E<lt>stdio.hE<gt>\n"
960 "#include E<lt>stdlib.hE<gt>\n"
961 "#include E<lt>unistd.hE<gt>\n"
962 msgstr ""
963 "#include E<lt>execinfo.hE<gt>\n"
964 "#include E<lt>stdio.hE<gt>\n"
965 "#include E<lt>stdlib.hE<gt>\n"
966 "#include E<lt>unistd.hE<gt>\n"
967
968 #. type: Plain text
969 #: build/C/man3/backtrace.3:205
970 #, no-wrap
971 msgid ""
972 "void\n"
973 "myfunc3(void)\n"
974 "{\n"
975 "    int j, nptrs;\n"
976 "#define SIZE 100\n"
977 "    void *buffer[100];\n"
978 "    char **strings;\n"
979 msgstr ""
980 "void\n"
981 "myfunc3(void)\n"
982 "{\n"
983 "    int j, nptrs;\n"
984 "#define SIZE 100\n"
985 "    void *buffer[100];\n"
986 "    char **strings;\n"
987
988 #. type: Plain text
989 #: build/C/man3/backtrace.3:208
990 #, no-wrap
991 msgid ""
992 "    nptrs = backtrace(buffer, SIZE);\n"
993 "    printf(\"backtrace() returned %d addresses\\en\", nptrs);\n"
994 msgstr ""
995 "    nptrs = backtrace(buffer, SIZE);\n"
996 "    printf(\"backtrace() returned %d addresses\\en\", nptrs);\n"
997
998 #. type: Plain text
999 #: build/C/man3/backtrace.3:211
1000 #, no-wrap
1001 msgid ""
1002 "    /* The call backtrace_symbols_fd(buffer, nptrs, STDOUT_FILENO)\n"
1003 "       would produce similar output to the following: */\n"
1004 msgstr ""
1005 "    /* backtrace_symbols_fd(buffer, nptrs, STDOUT_FILENO) を\n"
1006 "       呼び出しても、以下と同様の出力が得られる。 */\n"
1007
1008 #. type: Plain text
1009 #: build/C/man3/backtrace.3:217
1010 #, no-wrap
1011 msgid ""
1012 "    strings = backtrace_symbols(buffer, nptrs);\n"
1013 "    if (strings == NULL) {\n"
1014 "        perror(\"backtrace_symbols\");\n"
1015 "        exit(EXIT_FAILURE);\n"
1016 "    }\n"
1017 msgstr ""
1018 "    strings = backtrace_symbols(buffer, nptrs);\n"
1019 "    if (strings == NULL) {\n"
1020 "        perror(\"backtrace_symbols\");\n"
1021 "        exit(EXIT_FAILURE);\n"
1022 "    }\n"
1023
1024 #. type: Plain text
1025 #: build/C/man3/backtrace.3:220
1026 #, no-wrap
1027 msgid ""
1028 "    for (j = 0; j E<lt> nptrs; j++)\n"
1029 "        printf(\"%s\\en\", strings[j]);\n"
1030 msgstr ""
1031 "    for (j = 0; j E<lt> nptrs; j++)\n"
1032 "        printf(\"%s\\en\", strings[j]);\n"
1033
1034 #. type: Plain text
1035 #: build/C/man3/backtrace.3:223
1036 #, no-wrap
1037 msgid ""
1038 "    free(strings);\n"
1039 "}\n"
1040 msgstr ""
1041 "    free(strings);\n"
1042 "}\n"
1043
1044 #. type: Plain text
1045 #: build/C/man3/backtrace.3:229
1046 #, no-wrap
1047 msgid ""
1048 "static void   /* \"static\" means don\\(aqt export the symbol... */\n"
1049 "myfunc2(void)\n"
1050 "{\n"
1051 "    myfunc3();\n"
1052 "}\n"
1053 msgstr ""
1054 "static void   /* \"static\" はシンボルを公開しないことを意味する */\n"
1055 "myfunc2(void)\n"
1056 "{\n"
1057 "    myfunc3();\n"
1058 "}\n"
1059
1060 #. type: Plain text
1061 #: build/C/man3/backtrace.3:238
1062 #, no-wrap
1063 msgid ""
1064 "void\n"
1065 "myfunc(int ncalls)\n"
1066 "{\n"
1067 "    if (ncalls E<gt> 1)\n"
1068 "        myfunc(ncalls - 1);\n"
1069 "    else\n"
1070 "        myfunc2();\n"
1071 "}\n"
1072 msgstr ""
1073 "void\n"
1074 "myfunc(int ncalls)\n"
1075 "{\n"
1076 "    if (ncalls E<gt> 1)\n"
1077 "        myfunc(ncalls - 1);\n"
1078 "    else\n"
1079 "        myfunc2();\n"
1080 "}\n"
1081
1082 #. type: Plain text
1083 #: build/C/man3/backtrace.3:246
1084 #, no-wrap
1085 msgid ""
1086 "int\n"
1087 "main(int argc, char *argv[])\n"
1088 "{\n"
1089 "    if (argc != 2) {\n"
1090 "        fprintf(stderr, \"%s num-calls\\en\", argv[0]);\n"
1091 "        exit(EXIT_FAILURE);\n"
1092 "    }\n"
1093 msgstr ""
1094 "int\n"
1095 "main(int argc, char *argv[])\n"
1096 "{\n"
1097 "    if (argc != 2) {\n"
1098 "        fprintf(stderr, \"%s num-calls\\en\", argv[0]);\n"
1099 "        exit(EXIT_FAILURE);\n"
1100 "    }\n"
1101
1102 #. type: Plain text
1103 #: build/C/man3/backtrace.3:250
1104 #, no-wrap
1105 msgid ""
1106 "    myfunc(atoi(argv[1]));\n"
1107 "    exit(EXIT_SUCCESS);\n"
1108 "}\n"
1109 msgstr ""
1110 "    myfunc(atoi(argv[1]));\n"
1111 "    exit(EXIT_SUCCESS);\n"
1112 "}\n"
1113
1114 #. type: Plain text
1115 #: build/C/man3/backtrace.3:256
1116 msgid "B<gcc>(1), B<ld>(1), B<dlopen>(3), B<malloc>(3)"
1117 msgstr "B<gcc>(1), B<ld>(1), B<dlopen>(3), B<malloc>(3)"
1118
1119 #. type: TH
1120 #: build/C/man3/basename.3:27
1121 #, no-wrap
1122 msgid "BASENAME"
1123 msgstr "BASENAME"
1124
1125 #. type: TH
1126 #: build/C/man3/basename.3:27
1127 #, no-wrap
1128 msgid "2014-06-13"
1129 msgstr "2014-06-13"
1130
1131 #. type: Plain text
1132 #: build/C/man3/basename.3:30
1133 msgid "basename, dirname - parse pathname components"
1134 msgstr "basename, dirname - パス名を解析して各部分を取り出す"
1135
1136 #. type: Plain text
1137 #: build/C/man3/basename.3:33
1138 #, no-wrap
1139 msgid "B<#include E<lt>libgen.hE<gt>>\n"
1140 msgstr "B<#include E<lt>libgen.hE<gt>>\n"
1141
1142 #. type: Plain text
1143 #: build/C/man3/basename.3:35
1144 #, no-wrap
1145 msgid "B<char *dirname(char *>I<path>B<);>\n"
1146 msgstr "B<char *dirname(char *>I<path>B<);>\n"
1147
1148 #. type: Plain text
1149 #: build/C/man3/basename.3:37
1150 #, no-wrap
1151 msgid "B<char *basename(char *>I<path>B<);>\n"
1152 msgstr "B<char *basename(char *>I<path>B<);>\n"
1153
1154 #. type: Plain text
1155 #: build/C/man3/basename.3:42
1156 msgid "Warning: there are two different functions B<basename>()  - see below."
1157 msgstr ""
1158 "警告: B<basename>()  には異なるバージョンが 2つ存在する。下記の「注意」の節を"
1159 "参照のこと。"
1160
1161 #. type: Plain text
1162 #: build/C/man3/basename.3:55
1163 msgid ""
1164 "The functions B<dirname>()  and B<basename>()  break a null-terminated "
1165 "pathname string into directory and filename components.  In the usual case, "
1166 "B<dirname>()  returns the string up to, but not including, the final \\(aq/"
1167 "\\(aq, and B<basename>()  returns the component following the final \\(aq/"
1168 "\\(aq.  Trailing \\(aq/\\(aq characters are not counted as part of the "
1169 "pathname."
1170 msgstr ""
1171 "B<dirname>()  と B<basename>()  は、ヌルで終端されたパス名の文字列を、 ディレ"
1172 "クトリ部分・ファイル名部分に分割する。 通常は、 B<dirname>()  は最後の \\(aq/"
1173 "\\(aq までの部分 (最後の \\(aq/\\(aq は含まない) を返し、 B<basename>()  は最"
1174 "後の \\(aq/\\(aq 以降の部分を返す。 文字列の末尾についた \\(aq/\\(aq 文字は、"
1175 "パス名の一部とはみなされない。"
1176
1177 #. type: Plain text
1178 #: build/C/man3/basename.3:78
1179 msgid ""
1180 "If I<path> does not contain a slash, B<dirname>()  returns the string \".\" "
1181 "while B<basename>()  returns a copy of I<path>.  If I<path> is the string \"/"
1182 "\", then both B<dirname>()  and B<basename>()  return the string \"/\".  If "
1183 "I<path> is a null pointer or points to an empty string, then both "
1184 "B<dirname>()  and B<basename>()  return the string \".\"."
1185 msgstr ""
1186 "I<path> に '/' 文字がない場合は、 B<dirname>()  は文字列 \".\" を返し、 "
1187 "B<basename>()  は I<path> と同じ内容を返す。 I<path> が文字列 \"/\" に等しい"
1188 "場合は、 B<dirname>()  も B<basename>()  も文字列 \"/\" を返す。 I<path> が "
1189 "ヌルポインターだったり、空の文字列を指していた場合は、 B<dirname>()  も "
1190 "B<basename>()  も文字列 \".\" を返す。"
1191
1192 #. type: Plain text
1193 #: build/C/man3/basename.3:84
1194 msgid ""
1195 "Concatenating the string returned by B<dirname>(), a \"/\", and the string "
1196 "returned by B<basename>()  yields a complete pathname."
1197 msgstr ""
1198 "B<dirname>()  の返した文字列、 \"/\"、 B<basename>()  の返した文字列、 を順に"
1199 "結合すると、完全なパス名が得られる。"
1200
1201 #. type: Plain text
1202 #: build/C/man3/basename.3:93
1203 msgid ""
1204 "Both B<dirname>()  and B<basename>()  may modify the contents of I<path>, so "
1205 "it may be desirable to pass a copy when calling one of these functions."
1206 msgstr ""
1207 "B<dirname>()  と B<basename>()  は、いずれも I<path> の内容を変更することがあ"
1208 "る。 したがって、これらの関数を呼び出す際には コピーを渡すのが望ましい。"
1209
1210 #. type: Plain text
1211 #: build/C/man3/basename.3:102
1212 msgid ""
1213 "These functions may return pointers to statically allocated memory which may "
1214 "be overwritten by subsequent calls.  Alternatively, they may return a "
1215 "pointer to some part of I<path>, so that the string referred to by I<path> "
1216 "should not be modified or freed until the pointer returned by the function "
1217 "is no longer required."
1218 msgstr ""
1219 "これらの関数は、静的に割り当てられたメモリーへのポインターを返すことがあり、 "
1220 "これらの領域は後の関数呼び出しで上書きされるかもしれない。 また、これらの関数"
1221 "は I<path> の一部分を指すポインターを返すこともある。そのため、 I<path> で参"
1222 "照される文字列は、関数が返すポインターが不要になるまでは 変更したり free した"
1223 "りすべきではない。"
1224
1225 #. type: Plain text
1226 #: build/C/man3/basename.3:109
1227 msgid ""
1228 "The following list of examples (taken from SUSv2)  shows the strings "
1229 "returned by B<dirname>()  and B<basename>()  for different paths:"
1230 msgstr ""
1231 "以下の一連の例 (SUSv2 から引用) は、 いろいろな path に対して B<dirname>()  "
1232 "と B<basename>()  が返す文字列を表したものである。"
1233
1234 #. type: tbl table
1235 #: build/C/man3/basename.3:113
1236 #, no-wrap
1237 msgid "path    \tdirname\tbasename\n"
1238 msgstr "path    \tdirname\tbasename\n"
1239
1240 #. type: tbl table
1241 #: build/C/man3/basename.3:114
1242 #, no-wrap
1243 msgid "/usr/lib\t/usr\tlib\n"
1244 msgstr "/usr/lib\t/usr\tlib\n"
1245
1246 #. type: tbl table
1247 #: build/C/man3/basename.3:115
1248 #, no-wrap
1249 msgid "/usr/   \t/\tusr\n"
1250 msgstr "/usr/   \t/\tusr\n"
1251
1252 #. type: tbl table
1253 #: build/C/man3/basename.3:116
1254 #, no-wrap
1255 msgid "usr     \t.\tusr\n"
1256 msgstr "usr     \t.\tusr\n"
1257
1258 #. type: tbl table
1259 #: build/C/man3/basename.3:117
1260 #, no-wrap
1261 msgid "/       \t/\t/\n"
1262 msgstr "/       \t/\t/\n"
1263
1264 #. type: tbl table
1265 #: build/C/man3/basename.3:118
1266 #, no-wrap
1267 msgid "\\&.       \t.\t.\n"
1268 msgstr "\\&.       \t.\t.\n"
1269
1270 #. type: tbl table
1271 #: build/C/man3/basename.3:119
1272 #, no-wrap
1273 msgid "\\&..      \t.\t..\n"
1274 msgstr "\\&..      \t.\t..\n"
1275
1276 #. type: Plain text
1277 #: build/C/man3/basename.3:129
1278 msgid ""
1279 "Both B<dirname>()  and B<basename>()  return pointers to null-terminated "
1280 "strings.  (Do not pass these pointers to B<free>(3).)"
1281 msgstr ""
1282 "B<dirname>()  と B<basename>()  は、いずれもヌルで終端された文字列へのポイン"
1283 "ターを返す。 (これらのポインターを B<free>(3)  に渡さないこと。)"
1284
1285 #. type: SH
1286 #: build/C/man3/basename.3:129 build/C/man3/ftok.3:70
1287 #, no-wrap
1288 msgid "ATTRIBUTES"
1289 msgstr "属性"
1290
1291 #. type: SS
1292 #: build/C/man3/basename.3:130 build/C/man3/ftok.3:71
1293 #, no-wrap
1294 msgid "Multithreading (see pthreads(7))"
1295 msgstr "マルチスレッディング (pthreads(7) 参照)"
1296
1297 #. type: Plain text
1298 #: build/C/man3/basename.3:136
1299 msgid "The B<basename>()  and B<dirname>()  functions are thread-safe."
1300 msgstr "関数 B<basename>() と B<dirname>() 関数はスレッドセーフである。"
1301
1302 #. type: Plain text
1303 #: build/C/man3/basename.3:138 build/C/man3/ftok.3:77
1304 msgid "POSIX.1-2001."
1305 msgstr "POSIX.1-2001."
1306
1307 #. type: Plain text
1308 #: build/C/man3/basename.3:143
1309 msgid ""
1310 "There are two different versions of B<basename>()  - the POSIX version "
1311 "described above, and the GNU version, which one gets after"
1312 msgstr ""
1313 "B<basename>()  には 2種類の異なるバージョンがある。 一つはすでに説明した "
1314 "POSIX バージョンであり、 もう一つは GNU バージョンである。 GNU バージョンを使"
1315 "用するには以下のようにする。"
1316
1317 #. type: Plain text
1318 #: build/C/man3/basename.3:147
1319 #, no-wrap
1320 msgid "B<    #define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
1321 msgstr "B<    #define _GNU_SOURCE>         /* feature_test_macros(7) 参照 */\n"
1322
1323 #. type: Plain text
1324 #: build/C/man3/basename.3:149
1325 #, no-wrap
1326 msgid "B<#include E<lt>string.hE<gt>>\n"
1327 msgstr "B<#include E<lt>string.hE<gt>>\n"
1328
1329 #. type: Plain text
1330 #: build/C/man3/basename.3:157
1331 msgid ""
1332 "The GNU version never modifies its argument, and returns the empty string "
1333 "when I<path> has a trailing slash, and in particular also when it is \"/\".  "
1334 "There is no GNU version of B<dirname>()."
1335 msgstr ""
1336 "GNU バージョンは引き数を変更することはなく、 I<path> の末尾が '/'の場合は空の"
1337 "文字列を返す。 特に I<path> が \"/\" の場合も空文字列を返す。 B<dirname>()  "
1338 "には GNU バージョンはない。"
1339
1340 #. type: Plain text
1341 #: build/C/man3/basename.3:163
1342 msgid ""
1343 "With glibc, one gets the POSIX version of B<basename>()  when I<E<lt>libgen."
1344 "hE<gt>> is included, and the GNU version otherwise."
1345 msgstr ""
1346 "glibc では、 I<E<lt>libgen.hE<gt>> をインクルードすると POSIX バージョンの "
1347 "B<basename>()  が使用され、それ以外の場合は GNU バージョンとなる。"
1348
1349 #. type: Plain text
1350 #: build/C/man3/basename.3:171
1351 msgid ""
1352 "In the glibc implementation of the POSIX versions of these functions they "
1353 "modify their argument, and segfault when called with a static string like \"/"
1354 "usr/\".  Before glibc 2.2.1, the glibc version of B<dirname>()  did not "
1355 "correctly handle pathnames with trailing \\(aq/\\(aq characters, and "
1356 "generated a segfault if given a NULL argument."
1357 msgstr ""
1358 "glibc の POSIX バージョンの実装では、引き数の内容が変更され、 引き数に (\"/"
1359 "usr/\" などの) 定数文字列を指定されると セグメンテーションフォールトを起こ"
1360 "す。 バージョン 2.2.1 以前の glibc では、 glibc の B<dirname>()  は末尾が "
1361 "\\(aq/\\(aq 文字になっているパス名を正しく扱えず、 引き数が NULL だとセグメン"
1362 "テーションフォールトを起こした。"
1363
1364 #. type: Plain text
1365 #: build/C/man3/basename.3:176
1366 #, no-wrap
1367 msgid ""
1368 "char *dirc, *basec, *bname, *dname;\n"
1369 "char *path = \"/etc/passwd\";\n"
1370 msgstr ""
1371 "char *dirc, *basec, *bname, *dname;\n"
1372 "char *path = \"/etc/passwd\";\n"
1373
1374 #. type: Plain text
1375 #: build/C/man3/basename.3:182
1376 #, no-wrap
1377 msgid ""
1378 "dirc = strdup(path);\n"
1379 "basec = strdup(path);\n"
1380 "dname = dirname(dirc);\n"
1381 "bname = basename(basec);\n"
1382 "printf(\"dirname=%s, basename=%s\\en\", dname, bname);\n"
1383 msgstr ""
1384 "dirc = strdup(path);\n"
1385 "basec = strdup(path);\n"
1386 "dname = dirname(dirc);\n"
1387 "bname = basename(basec);\n"
1388 "printf(\"dirname=%s, basename=%s\\en\", dname, bname);\n"
1389
1390 #. type: Plain text
1391 #: build/C/man3/basename.3:187
1392 msgid "B<basename>(1), B<dirname>(1)"
1393 msgstr "B<basename>(1), B<dirname>(1)"
1394
1395 #. type: TH
1396 #: build/C/man3/envz_add.3:10
1397 #, no-wrap
1398 msgid "ENVZ_ADD"
1399 msgstr "ENVZ_ADD"
1400
1401 #. type: Plain text
1402 #: build/C/man3/envz_add.3:14
1403 msgid ""
1404 "envz_add, envz_entry, envz_get, envz_merge, envz_remove, envz_strip - "
1405 "environment string support"
1406 msgstr ""
1407 "envz_add, envz_entry, envz_get, envz_merge, envz_remove, envz_strip - 環境変"
1408 "数文字列の操作"
1409
1410 #. type: Plain text
1411 #: build/C/man3/envz_add.3:17
1412 #, no-wrap
1413 msgid "B<#include E<lt>envz.hE<gt>>\n"
1414 msgstr "B<#include E<lt>envz.hE<gt>>\n"
1415
1416 #. type: Plain text
1417 #: build/C/man3/envz_add.3:20
1418 #, no-wrap
1419 msgid ""
1420 "B<error_t envz_add(char **>I<envz>B<, size_t *>I<envz_len>B<,>\n"
1421 "B<                 const char *>I<name>B<, const char *>I<value>B<);>\n"
1422 msgstr ""
1423 "B<error_t envz_add(char **>I<envz>B<, size_t *>I<envz_len>B<,>\n"
1424 "B<                 const char *>I<name>B<, const char *>I<value>B<);>\n"
1425
1426 #. type: Plain text
1427 #: build/C/man3/envz_add.3:23
1428 #, no-wrap
1429 msgid "B<char *envz_entry(const char *>I<envz>B<, size_t >I<envz_len>B<, const char *>I<name>B<);>\n"
1430 msgstr "B<char *envz_entry(const char *>I<envz>B<, size_t >I<envz_len>B<, const char *>I<name>B<);>\n"
1431
1432 #. type: Plain text
1433 #: build/C/man3/envz_add.3:26
1434 #, no-wrap
1435 msgid "B<char *envz_get(const char *>I<envz>B<, size_t >I<envz_len>B<, const char *>I<name>B<);>\n"
1436 msgstr "B<char *envz_get(const char *>I<envz>B<, size_t >I<envz_len>B<, const char *>I<name>B<);>\n"
1437
1438 #. type: Plain text
1439 #: build/C/man3/envz_add.3:30
1440 #, no-wrap
1441 msgid ""
1442 "B<error_t envz_merge(char **>I<envz>B<, size_t *>I<envz_len>B<,>\n"
1443 "B<                   const char *>I<envz2>B<, size_t >I<envz2_len>B<, int >I<override>B<);>\n"
1444 msgstr ""
1445 "B<error_t envz_merge(char **>I<envz>B<, size_t *>I<envz_len>B<,>\n"
1446 "B<                   const char *>I<envz2>B<, size_t >I<envz2_len>B<, int >I<override>B<);>\n"
1447
1448 #. type: Plain text
1449 #: build/C/man3/envz_add.3:33
1450 #, no-wrap
1451 msgid "B<void envz_remove(char **>I<envz>B<, size_t *>I<envz_len>B<, const char *>I<name>B<);>\n"
1452 msgstr "B<void envz_remove(char **>I<envz>B<, size_t *>I<envz_len>B<, const char *>I<name>B<);>\n"
1453
1454 #. type: Plain text
1455 #: build/C/man3/envz_add.3:35
1456 #, no-wrap
1457 msgid "B<void envz_strip(char **>I<envz>B<, size_t *>I<envz_len>B<);>\n"
1458 msgstr "B<void envz_strip(char **>I<envz>B<, size_t *>I<envz_len>B<);>\n"
1459
1460 #. type: Plain text
1461 #: build/C/man3/envz_add.3:48
1462 msgid ""
1463 "An argz vector is a pointer to a character buffer together with a length, "
1464 "see B<argz_add>(3).  An envz vector is a special argz vector, namely one "
1465 "where the strings have the form \"name=value\".  Everything after the first "
1466 "\\(aq=\\(aq is considered to be the value.  If there is no \\(aq=\\(aq, the "
1467 "value is taken to be NULL.  (While the value in case of a trailing \\(aq="
1468 "\\(aq is the empty string \"\".)"
1469 msgstr ""
1470 "argz vector は長さ情報付きの文字バッファーへのポインターである。 "
1471 "B<argz_add>(3)  を参照のこと。 envz vector は、文字列が \"name=value (名前="
1472 "値)\" の形式になっている特別な argz vector である。 最初の \\(aq=\\(aq 以降は"
1473 "すべて値とみなされる。\\(aq=\\(aq がなければ、 値は NULL と解釈される。(文字"
1474 "列の一番最後の文字が \\(aq=\\(aq の場合、値は空文字列 \"\" と解釈される。)"
1475
1476 #. type: Plain text
1477 #: build/C/man3/envz_add.3:50
1478 msgid "These functions are for handling envz vectors."
1479 msgstr "これらの関数は envz vector を操作するためのものである。"
1480
1481 #. type: Plain text
1482 #: build/C/man3/envz_add.3:69
1483 msgid ""
1484 "B<envz_add>()  adds the string \"I<name>=I<value>\" (in case I<value> is non-"
1485 "NULL) or \"I<name>\" (in case I<value> is NULL) to the envz vector (I<*envz>,"
1486 "\\ I<*envz_len>)  and updates I<*envz> and I<*envz_len>.  If an entry with "
1487 "the same I<name> existed, it is removed."
1488 msgstr ""
1489 "B<envz_add>()  は、文字列 \"I<name>=I<value>\" (I<value> が NULL でない場合) "
1490 "または \"I<name>\" (I<value> が NULL の場合) を envz vector (I<*envz>,\\ "
1491 "I<*envz_len>)  に追加し、 I<*envz> と I<*envz_len> を更新する。 I<name> と同"
1492 "じ名前を持つエントリーがあった場合、元のエントリーは削除される。"
1493
1494 #. type: Plain text
1495 #: build/C/man3/envz_add.3:76
1496 msgid ""
1497 "B<envz_entry>()  looks for I<name> in the envz vector (I<envz>,\\ "
1498 "I<envz_len>)  and returns the entry if found, or NULL if not."
1499 msgstr ""
1500 "B<envz_entry>()  は、envz vector (I<envz>,\\ I<envz_len>)  から名前が "
1501 "I<name> のエントリーを検索する。 見つかった場合はそのエントリーを返し、見つか"
1502 "らなかった場合は NULL を返す。"
1503
1504 #. type: Plain text
1505 #: build/C/man3/envz_add.3:87
1506 msgid ""
1507 "B<envz_get>()  looks for I<name> in the envz vector (I<envz>,\\ "
1508 "I<envz_len>)  and returns the value if found, or NULL if not.  (Note that "
1509 "the value can also be NULL, namely when there is an entry for I<name> "
1510 "without \\(aq=\\(aq sign.)"
1511 msgstr ""
1512 "B<envz_get>()  は、envz vector (I<envz>,\\ I<envz_len>)  から名前が I<name> "
1513 "のエントリーを検索する。 見つかった場合はエントリーの値を返し、見つからなかっ"
1514 "た場合は NULL を返す。 (値は NULL の場合もあることに注意すること。名前が "
1515 "I<name> のエントリーに \\(aq=\\(aq 符号がない場合が該当する。)"
1516
1517 #. type: Plain text
1518 #: build/C/man3/envz_add.3:102
1519 msgid ""
1520 "B<envz_merge>()  adds each entry in I<envz2> to I<*envz>, as if with "
1521 "B<envz_add>().  If I<override> is true, then values in I<envz2> will "
1522 "supersede those with the same name in I<*envz>, otherwise not."
1523 msgstr ""
1524 "B<envz_merge>()  は、 B<envz_add>()  と同じように I<envz2> の各エントリーを "
1525 "I<*envz> に追加する。 I<override> が真の場合、 I<envz2> の値で I<*envz> 内の"
1526 "同じ名前をもつ値は上書きされる。 偽の場合は上書きされない。"
1527
1528 #. type: Plain text
1529 #: build/C/man3/envz_add.3:109
1530 msgid ""
1531 "B<envz_remove>()  removes the entry for I<name> from (I<*envz>,\\ "
1532 "I<*envz_len>)  if there was one."
1533 msgstr ""
1534 "B<envz_remove>()  は、名前が I<name> のエントリーがあれば (I<*envz>,\\ "
1535 "I<*envz_len>)  から削除する。"
1536
1537 #. type: Plain text
1538 #: build/C/man3/envz_add.3:112
1539 msgid "B<envz_strip>()  removes all entries with value NULL."
1540 msgstr "B<envz_strip>()  は、値が NULL のエントリーをすべて削除する。"
1541
1542 #. type: Plain text
1543 #: build/C/man3/envz_add.3:118
1544 msgid ""
1545 "All envz functions that do memory allocation have a return type of "
1546 "I<error_t>, and return 0 for success, and B<ENOMEM> if an allocation error "
1547 "occurs."
1548 msgstr ""
1549 "メモリー割り当てを行う envz 関数群はすべて I<error_t> 型の返り値を持つ。 成功"
1550 "した場合は 0 を返し、割り当てエラーが発生した場合は B<ENOMEM> を返す。"
1551
1552 #. type: Plain text
1553 #: build/C/man3/envz_add.3:126
1554 #, no-wrap
1555 msgid ""
1556 "#include E<lt>stdio.hE<gt>\n"
1557 "#include E<lt>stdlib.hE<gt>\n"
1558 "#include E<lt>envz.hE<gt>\n"
1559 msgstr ""
1560 "#include E<lt>stdio.hE<gt>\n"
1561 "#include E<lt>stdlib.hE<gt>\n"
1562 "#include E<lt>envz.hE<gt>\n"
1563
1564 #. type: Plain text
1565 #: build/C/man3/envz_add.3:132
1566 #, no-wrap
1567 msgid ""
1568 "int\n"
1569 "main(int argc, char *argv[], char *envp[])\n"
1570 "{\n"
1571 "    int i, e_len = 0;\n"
1572 "    char *str;\n"
1573 msgstr ""
1574 "int\n"
1575 "main(int argc, char *argv[], char *envp[])\n"
1576 "{\n"
1577 "    int i, e_len = 0;\n"
1578 "    char *str;\n"
1579
1580 #. type: Plain text
1581 #: build/C/man3/envz_add.3:135
1582 #, no-wrap
1583 msgid ""
1584 "    for (i = 0; envp[i] != NULL; i++)\n"
1585 "        e_len += strlen(envp[i]) + 1;\n"
1586 msgstr ""
1587 "    for (i = 0; envp[i] != NULL; i++)\n"
1588 "        e_len += strlen(envp[i]) + 1;\n"
1589
1590 #. type: Plain text
1591 #: build/C/man3/envz_add.3:142
1592 #, no-wrap
1593 msgid ""
1594 "    str = envz_entry(*envp, e_len, \"HOME\");\n"
1595 "    printf(\"%s\\en\", str);\n"
1596 "    str = envz_get(*envp, e_len, \"HOME\");\n"
1597 "    printf(\"%s\\en\", str);\n"
1598 "    exit(EXIT_SUCCESS);\n"
1599 "}\n"
1600 msgstr ""
1601 "    str = envz_entry(*envp, e_len, \"HOME\");\n"
1602 "    printf(\"%s\\en\", str);\n"
1603 "    str = envz_get(*envp, e_len, \"HOME\");\n"
1604 "    printf(\"%s\\en\", str);\n"
1605 "    exit(EXIT_SUCCESS);\n"
1606 "}\n"
1607
1608 #. type: Plain text
1609 #: build/C/man3/envz_add.3:145
1610 msgid "B<argz_add>(3)"
1611 msgstr "B<argz_add>(3)"
1612
1613 #. type: TH
1614 #: build/C/man3/ftok.3:29
1615 #, no-wrap
1616 msgid "FTOK"
1617 msgstr "FTOK"
1618
1619 #. type: TH
1620 #: build/C/man3/ftok.3:29 build/C/man3/xcrypt.3:13
1621 #, no-wrap
1622 msgid "2014-08-19"
1623 msgstr "2014-08-19"
1624
1625 #. type: Plain text
1626 #: build/C/man3/ftok.3:32
1627 msgid ""
1628 "ftok - convert a pathname and a project identifier to a System V IPC key"
1629 msgstr "ftok - パス名とプロジェクト識別子を System V IPC キーに変換する"
1630
1631 #. type: Plain text
1632 #: build/C/man3/ftok.3:36
1633 #, no-wrap
1634 msgid ""
1635 "B<#include E<lt>sys/types.hE<gt>>\n"
1636 "B<#include E<lt>sys/ipc.hE<gt>>\n"
1637 msgstr ""
1638 "B<#include E<lt>sys/types.hE<gt>>\n"
1639 "B<#include E<lt>sys/ipc.hE<gt>>\n"
1640
1641 #. type: Plain text
1642 #: build/C/man3/ftok.3:39
1643 msgid "B<key_t ftok(const char *>I<pathname>B<, int >I<proj_id>B<);>"
1644 msgstr "B<key_t ftok(const char *>I<pathname>B<, int >I<proj_id>B<);>"
1645
1646 #. type: Plain text
1647 #: build/C/man3/ftok.3:54
1648 msgid ""
1649 "The B<ftok>()  function uses the identity of the file named by the given "
1650 "I<pathname> (which must refer to an existing, accessible file)  and the "
1651 "least significant 8 bits of I<proj_id> (which must be nonzero) to generate a "
1652 "I<key_t> type System V IPC key, suitable for use with B<msgget>(2), "
1653 "B<semget>(2), or B<shmget>(2)."
1654 msgstr ""
1655 "B<ftok>()  関数は I<pathname> で与えられたファイル (存在し、アクセス可能でな"
1656 "ければならない)  のファイル名の識別情報 (identity) と、 I<proj_id> (0 であっ"
1657 "てはならない) の低位 8 ビットとを用いて、 I<key_t> 型の System V IPC キーを生"
1658 "成する。 このキーは B<msgget>(2), B<semget>(2), B<shmget>(2)  などでの利用に"
1659 "適している。"
1660
1661 #. type: Plain text
1662 #: build/C/man3/ftok.3:61
1663 msgid ""
1664 "The resulting value is the same for all pathnames that name the same file, "
1665 "when the same value of I<proj_id> is used.  The value returned should be "
1666 "different when the (simultaneously existing) files or the project IDs differ."
1667 msgstr ""
1668 "同じファイルを示すあらゆるパス名と、同じ I<proj_id> に対しては、結果の値は等"
1669 "しくなる。 ファイルが違ったり (この場合両者は同時に存在しているはず)、 "
1670 "I<proj_id> が異なると、返り値も異なる。"
1671
1672 #. type: Plain text
1673 #: build/C/man3/ftok.3:70
1674 msgid ""
1675 "On success, the generated I<key_t> value is returned.  On failure -1 is "
1676 "returned, with I<errno> indicating the error as for the B<stat>(2)  system "
1677 "call."
1678 msgstr ""
1679 "成功した場合は生成された I<key_t> の値が返される。 失敗すると -1 が返され、エ"
1680 "ラーの内容が B<errno> に書き込まれる。この内容はシステムコール B<stat>(2)  の"
1681 "ものと同じである。"
1682
1683 #. type: Plain text
1684 #: build/C/man3/ftok.3:75
1685 msgid "The B<ftok>()  function is thread-safe."
1686 msgstr "B<ftok>() 関数はスレッドセーフである。"
1687
1688 #. type: Plain text
1689 #: build/C/man3/ftok.3:79
1690 msgid "On some ancient systems, the prototype was:"
1691 msgstr "いくつかの古いシステムでは、プロトタイプは以下のようになっていた。"
1692
1693 #. type: Plain text
1694 #: build/C/man3/ftok.3:82
1695 msgid "B<key_t ftok(char *>I<pathname>B<, char >I<proj_id>B<);>"
1696 msgstr "B<key_t ftok(char *>I<pathname>B<, char >I<proj_id>B<);>"
1697
1698 #. type: Plain text
1699 #: build/C/man3/ftok.3:94
1700 msgid ""
1701 "Today, I<proj_id> is an I<int>, but still only 8 bits are used.  Typical "
1702 "usage has an ASCII character I<proj_id>, that is why the behavior is said to "
1703 "be undefined when I<proj_id> is zero."
1704 msgstr ""
1705 "現在では I<proj_id> は I<int> だが、依然として 8 ビットしか用いられない。 通"
1706 "常は ASCII キャラクターが I<proj_id> に用いられる。 I<proj_id> が 0 のときの"
1707 "振る舞いが未定義になっているのは、これが理由である。"
1708
1709 #. type: Plain text
1710 #: build/C/man3/ftok.3:106
1711 msgid ""
1712 "Of course, no guarantee can be given that the resulting I<key_t> is unique.  "
1713 "Typically, a best-effort attempt combines the given I<proj_id> byte, the "
1714 "lower 16 bits of the inode number, and the lower 8 bits of the device number "
1715 "into a 32-bit result.  Collisions may easily happen, for example between "
1716 "files on I</dev/hda1> and files on I</dev/sda1>."
1717 msgstr ""
1718 "もちろん I<key_t> が他と重ならないものであるかどうかは保証されない。 最善の場"
1719 "合の組み合わせを考えても、 I<proj_id> の 1 バイト、i ノード番号の低位 16 ビッ"
1720 "ト、および デバイス番号の低位 8 ビットなので、結果は 32 ビットに過ぎない。 例"
1721 "えば I</dev/hda1> と I</dev/sda1> それぞれにあるファイルに対して、衝突は容易"
1722 "に起こりうる。"
1723
1724 #. type: Plain text
1725 #: build/C/man3/ftok.3:112
1726 msgid "B<msgget>(2), B<semget>(2), B<shmget>(2), B<stat>(2), B<svipc>(7)"
1727 msgstr "B<msgget>(2), B<semget>(2), B<shmget>(2), B<stat>(2), B<svipc>(7)"
1728
1729 #. type: TH
1730 #: build/C/man3/longjmp.3:27
1731 #, no-wrap
1732 msgid "LONGJMP"
1733 msgstr "LONGJMP"
1734
1735 #. type: TH
1736 #: build/C/man3/longjmp.3:27
1737 #, no-wrap
1738 msgid "2009-01-13"
1739 msgstr "2009-01-13"
1740
1741 #. type: Plain text
1742 #: build/C/man3/longjmp.3:30
1743 msgid "longjmp, siglongjmp - nonlocal jump to a saved stack context"
1744 msgstr ""
1745 "longjmp, siglongjmp - 保存されたスタックコンテキスト (stack context)  への非"
1746 "局所的なジャンプ"
1747
1748 #. type: Plain text
1749 #: build/C/man3/longjmp.3:33
1750 #, no-wrap
1751 msgid "B<#include E<lt>setjmp.hE<gt>>\n"
1752 msgstr "B<#include E<lt>setjmp.hE<gt>>\n"
1753
1754 #. type: Plain text
1755 #: build/C/man3/longjmp.3:35
1756 #, no-wrap
1757 msgid "B<void longjmp(jmp_buf >I<env>B<, int >I<val>B<);>\n"
1758 msgstr "B<void longjmp(jmp_buf >I<env>B<, int >I<val>B<);>\n"
1759
1760 #. type: Plain text
1761 #: build/C/man3/longjmp.3:37
1762 #, no-wrap
1763 msgid "B<void siglongjmp(sigjmp_buf >I<env>B<, int >I<val>B<);>\n"
1764 msgstr "B<void siglongjmp(sigjmp_buf >I<env>B<, int >I<val>B<);>\n"
1765
1766 #. type: Plain text
1767 #: build/C/man3/longjmp.3:46
1768 msgid ""
1769 "B<siglongjmp>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
1770 "_POSIX_C_SOURCE"
1771 msgstr ""
1772 "B<siglongjmp>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
1773 "_POSIX_C_SOURCE"
1774
1775 #. type: Plain text
1776 #: build/C/man3/longjmp.3:70
1777 msgid ""
1778 "B<longjmp>()  and B<setjmp>(3)  are useful for dealing with errors and "
1779 "interrupts encountered in a low-level subroutine of a program.  "
1780 "B<longjmp>()  restores the environment saved by the last call of "
1781 "B<setjmp>(3)  with the corresponding I<env> argument.  After B<longjmp>()  "
1782 "is completed, program execution continues as if the corresponding call of "
1783 "B<setjmp>(3)  had just returned the value I<val>.  B<longjmp>()  cannot "
1784 "cause 0 to be returned.  If B<longjmp>()  is invoked with a second argument "
1785 "of 0, 1 will be returned instead."
1786 msgstr ""
1787 "B<longjmp>()  と B<setjmp>(3)  は、プログラムの低レベルなサブルーチンにおい"
1788 "て、 エラーや割り込みが発生した時の処理に便利である。 B<longjmp>()  は、"
1789 "I<env> 引き数を指定して呼び出された最後の B<setjmp>(3)  によって保存された環"
1790 "境を復元する。 B<longjmp>()  の完了後、プログラムの実行は、まるで対応する "
1791 "B<setjmp>(3)  の呼び出しが値 I<val> で返って来たかように続行される。 "
1792 "B<longjmp>()  は 0 を返すように指示することはできない。 二番目の引き数に 0 を"
1793 "指定して B<longjmp>()  が呼ばれた場合は、代わりに 1 が返されることになる。"
1794
1795 #. type: Plain text
1796 #: build/C/man3/longjmp.3:88
1797 msgid ""
1798 "B<siglongjmp>()  is similar to B<longjmp>()  except for the type of its "
1799 "I<env> argument.  If, and only if, the B<sigsetjmp>(3)  call that set this "
1800 "I<env> used a nonzero I<savesigs> flag, B<siglongjmp>()  also restores the "
1801 "signal mask that was saved by B<sigsetjmp>(3)."
1802 msgstr ""
1803 "B<siglongjmp>()  は、引き数 I<env> の型が異なる点以外は、 B<longjmp>()  と同"
1804 "様である。 I<env> を保存した B<sigsetjmp>(3)  が 0 以外の I<savesigs> フラグ"
1805 "で呼び出されていた場合で、 かつ、その場合にのみ、 B<siglongjmp>(3)  は "
1806 "B<sigsetjmp>(3)  より保存されていたシグナルマスクの復元を行う。"
1807
1808 #. type: Plain text
1809 #: build/C/man3/longjmp.3:90
1810 msgid "These functions never return."
1811 msgstr "これらの関数が返ることはない。"
1812
1813 #. type: Plain text
1814 #: build/C/man3/longjmp.3:95
1815 msgid ""
1816 "C89, C99, and POSIX.1-2001 specify B<longjmp>().  POSIX.1-2001 specifies "
1817 "B<siglongjmp>()."
1818 msgstr ""
1819 "B<longjmp>()  は C89, C99, POSIX.1-2001 で規定されている。 B<siglongjmp>()  "
1820 "は POSIX.1-2001 で規定されている。"
1821
1822 #. type: Plain text
1823 #: build/C/man3/longjmp.3:105
1824 msgid ""
1825 "POSIX does not specify whether B<longjmp>()  will restore the signal context "
1826 "(see B<setjmp>(3)  for some more details).  If you want to portably save and "
1827 "restore signal masks, use B<sigsetjmp>(3)  and B<siglongjmp>()."
1828 msgstr ""
1829 "POSIX では、 B<longjmp>() がシグナルコンテキスト (signal context) を復元\n"
1830 "するかどうか規定されていない (B<setjmp>(3) にも少し詳しい情報がある)。\n"
1831 "移植性のある方法で、シグナルマスクを保存し復元させたい場合には、\n"
1832 "B<sigsetjmp>(3) と B<siglongjmp>() を使うこと。"
1833
1834 #. type: Plain text
1835 #: build/C/man3/longjmp.3:109
1836 msgid ""
1837 "The values of automatic variables are unspecified after a call to "
1838 "B<longjmp>()  if they meet all the following criteria:"
1839 msgstr ""
1840 "以下の条件が全て成立する場合、 B<longjmp>()  の呼び出しが行われた後の自動変数"
1841 "の値は未定義 (unspecified) となる。"
1842
1843 #. type: IP
1844 #: build/C/man3/longjmp.3:109 build/C/man3/longjmp.3:113
1845 #: build/C/man3/longjmp.3:119
1846 #, no-wrap
1847 msgid "\\(bu"
1848 msgstr "\\(bu"
1849
1850 #. type: Plain text
1851 #: build/C/man3/longjmp.3:113
1852 msgid ""
1853 "they are local to the function that made the corresponding B<setjmp>(3)  "
1854 "call;"
1855 msgstr ""
1856 "その自動変数が、対応する B<setjmp>(3)  呼び出しを行った関数のローカル変数であ"
1857 "る。"
1858
1859 #. type: Plain text
1860 #: build/C/man3/longjmp.3:119
1861 msgid ""
1862 "their values are changed between the calls to B<setjmp>(3)  and "
1863 "B<longjmp>(); and"
1864 msgstr "自動変数の値が B<setjmp>(3)  と B<longjmp>()  の間で変更されている。"
1865
1866 #. type: Plain text
1867 #: build/C/man3/longjmp.3:122
1868 msgid "they are not declared as I<volatile>."
1869 msgstr "I<volatile> として宣言されていない。"
1870
1871 #. type: Plain text
1872 #: build/C/man3/longjmp.3:125
1873 msgid "Analogous remarks apply for B<siglongjmp>()."
1874 msgstr "同様の注意が B<siglongjmp>()  にもあてはまる。"
1875
1876 #. type: Plain text
1877 #: build/C/man3/longjmp.3:132
1878 msgid ""
1879 "B<longjmp>()  and B<siglongjmp>()  make programs hard to understand and "
1880 "maintain.  If possible, an alternative should be used."
1881 msgstr ""
1882 "B<longjmp>()  や B<siglongjmp>()  を使うと、プログラムは理解しづらく、保守し"
1883 "にくいものになる。 別の方法が可能なら、それを使うべきである。"
1884
1885 #. type: Plain text
1886 #: build/C/man3/longjmp.3:135
1887 msgid "B<setjmp>(3), B<sigsetjmp>(3)"
1888 msgstr "B<setjmp>(3), B<sigsetjmp>(3)"
1889
1890 #. type: TH
1891 #: build/C/man3/offsetof.3:28
1892 #, no-wrap
1893 msgid "OFFSETOF"
1894 msgstr "OFFSETOF"
1895
1896 #. type: TH
1897 #: build/C/man3/offsetof.3:28
1898 #, no-wrap
1899 msgid "2014-04-06"
1900 msgstr "2014-04-06"
1901
1902 #. type: Plain text
1903 #: build/C/man3/offsetof.3:31
1904 msgid "offsetof - offset of a structure member"
1905 msgstr "offsetof - 構造体のメンバーのオフセットを返す"
1906
1907 #. type: Plain text
1908 #: build/C/man3/offsetof.3:34
1909 #, no-wrap
1910 msgid "B<#include E<lt>stddef.hE<gt>>\n"
1911 msgstr "B<#include E<lt>stddef.hE<gt>>\n"
1912
1913 #. type: Plain text
1914 #: build/C/man3/offsetof.3:36
1915 #, no-wrap
1916 msgid "B<size_t offsetof(>I<type>B<, >I<member>B<);>\n"
1917 msgstr "B<size_t offsetof(>I<type>B<, >I<member>B<);>\n"
1918
1919 #. type: Plain text
1920 #: build/C/man3/offsetof.3:44
1921 msgid ""
1922 "The macro B<offsetof>()  returns the offset of the field I<member> from the "
1923 "start of the structure I<type>."
1924 msgstr ""
1925 "B<offsetof>()  マクロは、フィールド I<member> の 構造体 I<type> の先頭からの"
1926 "オフセットを返す。"
1927
1928 #. type: Plain text
1929 #: build/C/man3/offsetof.3:51
1930 msgid ""
1931 "This macro is useful because the sizes of the fields that compose a "
1932 "structure can vary across implementations, and compilers may insert "
1933 "different numbers of padding bytes between fields.  Consequently, an "
1934 "element's offset is not necessarily given by the sum of the sizes of the "
1935 "previous elements."
1936 msgstr ""
1937 "このマクロが有用なのは、 構造体を構成するフィールドのサイズは実装によって変化"
1938 "するし、 コンパイラによりフィールド間に挿入するパディングのバイト数も 違う可"
1939 "能性があるからである。 その結果、あるエレメントのオフセットは必ずしもそれより"
1940 "前の エレメントのサイズの合計とはならない。"
1941
1942 #. type: Plain text
1943 #: build/C/man3/offsetof.3:56
1944 msgid ""
1945 "A compiler error will result if I<member> is not aligned to a byte boundary "
1946 "(i.e., it is a bit field)."
1947 msgstr ""
1948 "I<member> がバイト境界に位置していない場合 (すなわち、ビットフィールドの場"
1949 "合) には、 コンパイラでエラーが発生する。"
1950
1951 #. type: Plain text
1952 #: build/C/man3/offsetof.3:63
1953 msgid ""
1954 "B<offsetof>()  returns the offset of the given I<member> within the given "
1955 "I<type>, in units of bytes."
1956 msgstr ""
1957 "B<offsetof>()  は、指定された I<member> の指定された I<type> の中でのオフセッ"
1958 "トを、バイト単位で返す。"
1959
1960 #. type: Plain text
1961 #: build/C/man3/offsetof.3:65
1962 msgid "C89, C99, POSIX.1-2001."
1963 msgstr "C89, C99, POSIX.1-2001."
1964
1965 #. type: Plain text
1966 #: build/C/man3/offsetof.3:69
1967 msgid ""
1968 "On a Linux/i386 system, when compiled using the default B<gcc>(1)  options, "
1969 "the program below produces the following output:"
1970 msgstr ""
1971 "Linux/i386 システムで、 B<gcc>(1)  のデフォルトオプションで コンパイルされた"
1972 "場合、下記のプログラムは以下のような出力を返す。"
1973
1974 #. type: Plain text
1975 #: build/C/man3/offsetof.3:75
1976 #, no-wrap
1977 msgid ""
1978 "$B< ./a.out>\n"
1979 "offsets: i=0; c=4; d=8 a=16\n"
1980 "sizeof(struct s)=16\n"
1981 msgstr ""
1982 "$B< ./a.out>\n"
1983 "offsets: i=0; c=4; d=8 a=16\n"
1984 "sizeof(struct s)=16\n"
1985
1986 #. type: Plain text
1987 #: build/C/man3/offsetof.3:82
1988 #, no-wrap
1989 msgid ""
1990 "#include E<lt>stddef.hE<gt>\n"
1991 "#include E<lt>stdio.hE<gt>\n"
1992 "#include E<lt>stdlib.hE<gt>\n"
1993 msgstr ""
1994 "#include E<lt>stddef.hE<gt>\n"
1995 "#include E<lt>stdio.hE<gt>\n"
1996 "#include E<lt>stdlib.hE<gt>\n"
1997
1998 #. type: Plain text
1999 #: build/C/man3/offsetof.3:92
2000 #, no-wrap
2001 msgid ""
2002 "int\n"
2003 "main(void)\n"
2004 "{\n"
2005 "    struct s {\n"
2006 "        int i;\n"
2007 "        char c;\n"
2008 "        double d;\n"
2009 "        char a[];\n"
2010 "    };\n"
2011 msgstr ""
2012 "int\n"
2013 "main(void)\n"
2014 "{\n"
2015 "    struct s {\n"
2016 "        int i;\n"
2017 "        char c;\n"
2018 "        double d;\n"
2019 "        char a[];\n"
2020 "    };\n"
2021
2022 #. type: Plain text
2023 #: build/C/man3/offsetof.3:94
2024 #, no-wrap
2025 msgid "    /* Output is compiler dependent */\n"
2026 msgstr "    /* 出力はコンパイラ依存である */\n"
2027
2028 #. type: Plain text
2029 #: build/C/man3/offsetof.3:99
2030 #, no-wrap
2031 msgid ""
2032 "    printf(\"offsets: i=%zd; c=%zd; d=%zd a=%zd\\en\",\n"
2033 "            offsetof(struct s, i), offsetof(struct s, c),\n"
2034 "            offsetof(struct s, d), offsetof(struct s, a));\n"
2035 "    printf(\"sizeof(struct s)=%zd\\en\", sizeof(struct s));\n"
2036 msgstr ""
2037 "    printf(\"offsets: i=%zd; c=%zd; d=%zd a=%zd\\en\",\n"
2038 "            offsetof(struct s, i), offsetof(struct s, c),\n"
2039 "            offsetof(struct s, d), offsetof(struct s, a));\n"
2040 "    printf(\"sizeof(struct s)=%zd\\en\", sizeof(struct s));\n"
2041
2042 #. type: Plain text
2043 #: build/C/man3/offsetof.3:102
2044 #, no-wrap
2045 msgid ""
2046 "    exit(EXIT_SUCCESS);\n"
2047 "}\n"
2048 msgstr ""
2049 "    exit(EXIT_SUCCESS);\n"
2050 "}\n"
2051
2052 #. type: TH
2053 #: build/C/man3/program_invocation_name.3:24
2054 #, no-wrap
2055 msgid "INVOCATION_NAME"
2056 msgstr "INVOCATION_NAME"
2057
2058 #. type: TH
2059 #: build/C/man3/program_invocation_name.3:24
2060 #, no-wrap
2061 msgid "2006-04-29"
2062 msgstr "2006-04-29"
2063
2064 #. type: Plain text
2065 #: build/C/man3/program_invocation_name.3:28
2066 msgid ""
2067 "program_invocation_name, program_invocation_short_name - obtain name used to "
2068 "invoke calling program"
2069 msgstr ""
2070 "program_invocation_name, program_invocation_short_name - プログラムの起動に使"
2071 "われた名前を取得する"
2072
2073 #. type: Plain text
2074 #: build/C/man3/program_invocation_name.3:32
2075 #, no-wrap
2076 msgid ""
2077 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
2078 "B<#include E<lt>errno.hE<gt>>\n"
2079 msgstr ""
2080 "B<#define _GNU_SOURCE>         /* feature_test_macros(7) 参照 */\n"
2081 "B<#include E<lt>errno.hE<gt>>\n"
2082
2083 #. type: Plain text
2084 #: build/C/man3/program_invocation_name.3:35
2085 #, no-wrap
2086 msgid ""
2087 "B<extern char *>I<program_invocation_name>B<;>\n"
2088 "B<extern char *>I<program_invocation_short_name>B<;>\n"
2089 msgstr ""
2090 "B<extern char *>I<program_invocation_name>B<;>\n"
2091 "B<extern char *>I<program_invocation_short_name>B<;>\n"
2092
2093 #. type: Plain text
2094 #: build/C/man3/program_invocation_name.3:46
2095 msgid ""
2096 "I<program_invocation_name> contains the name that was used to invoke the "
2097 "calling program.  This is the same as the value of I<argv[0]> in I<main>(), "
2098 "with the difference that the scope of I<program_invocation_name> is global."
2099 msgstr ""
2100 "I<program_invocation_name> は、呼び出し元プログラムの起動に使用された名前を保"
2101 "持する。 内容は I<main>()  の I<argv[0]> の値と同じだが、 "
2102 "I<program_invocation_name> の方はスコープがグローバルである点が異なる。"
2103
2104 #. type: Plain text
2105 #: build/C/man3/program_invocation_name.3:53
2106 msgid ""
2107 "I<program_invocation_short_name> contains the basename component of name "
2108 "that was used to invoke the calling program.  That is, it is the same value "
2109 "as I<program_invocation_name>, with all text up to and including the final "
2110 "slash (/), if any, removed."
2111 msgstr ""
2112 "I<program_invocation_short_name> は、呼び出し元プログラムの起動に使用された名"
2113 "前の basename 部分を 保持する。つまり、この変数の内容は、最後のスラッシュ "
2114 "(/) とそれより前の 部分がある場合、 I<program_invocation_name> からこの部分を"
2115 "削除したものとなる。"
2116
2117 #. type: Plain text
2118 #: build/C/man3/program_invocation_name.3:56
2119 msgid ""
2120 "These variables are automatically initialized by the glibc run-time startup "
2121 "code."
2122 msgstr ""
2123 "これらの変数は glibc のランタイムスタートアップコードで 自動的に初期化され"
2124 "る。"
2125
2126 #. type: Plain text
2127 #: build/C/man3/program_invocation_name.3:59
2128 msgid ""
2129 "These variables are GNU extensions, and should not be used in programs "
2130 "intended to be portable."
2131 msgstr ""
2132 "これらの変数は GNU の拡張であり、 移植性が必要なプログラムでは使用すべきでな"
2133 "い。"
2134
2135 #. type: Plain text
2136 #: build/C/man3/program_invocation_name.3:63
2137 msgid ""
2138 "The Linux-specific I</proc/[number]/cmdline> file provides access to similar "
2139 "information."
2140 msgstr ""
2141 "Linux 独自のファイル I</proc/[number]/cmdline> でも同様の情報を得ることができ"
2142 "る。"
2143
2144 #. type: Plain text
2145 #: build/C/man3/program_invocation_name.3:65
2146 msgid "B<proc>(5)"
2147 msgstr "B<proc>(5)"
2148
2149 #. type: TH
2150 #: build/C/man3/queue.3:39
2151 #, no-wrap
2152 msgid "QUEUE"
2153 msgstr "QUEUE"
2154
2155 #. type: TH
2156 #: build/C/man3/queue.3:39
2157 #, no-wrap
2158 msgid "2007-12-28"
2159 msgstr "2007-12-28"
2160
2161 #. type: Plain text
2162 #: build/C/man3/queue.3:48
2163 msgid ""
2164 "LIST_ENTRY, LIST_HEAD, LIST_INIT, LIST_INSERT_AFTER, LIST_INSERT_HEAD, "
2165 "LIST_REMOVE, TAILQ_ENTRY, TAILQ_HEAD, TAILQ_INIT, TAILQ_INSERT_AFTER, "
2166 "TAILQ_INSERT_HEAD, TAILQ_INSERT_TAIL, TAILQ_REMOVE, CIRCLEQ_ENTRY, "
2167 "CIRCLEQ_HEAD, CIRCLEQ_INIT, CIRCLEQ_INSERT_AFTER, CIRCLEQ_INSERT_BEFORE, "
2168 "CIRCLEQ_INSERT_HEAD, CIRCLEQ_INSERT_TAIL, CIRCLEQ_REMOVE - implementations "
2169 "of lists, tail queues, and circular queues"
2170 msgstr ""
2171 "LIST_ENTRY, LIST_HEAD, LIST_INIT, LIST_INSERT_AFTER, LIST_INSERT_HEAD, "
2172 "LIST_REMOVE, TAILQ_ENTRY, TAILQ_HEAD, TAILQ_INIT, TAILQ_INSERT_AFTER, "
2173 "TAILQ_INSERT_HEAD, TAILQ_INSERT_TAIL, TAILQ_REMOVE, CIRCLEQ_ENTRY, "
2174 "CIRCLEQ_HEAD, CIRCLEQ_INIT, CIRCLEQ_INSERT_AFTER, CIRCLEQ_INSERT_BEFORE, "
2175 "CIRCLEQ_INSERT_HEAD, CIRCLEQ_INSERT_TAIL, CIRCLEQ_REMOVE - リスト・テール "
2176 "(tail) キュー・循環キューの実装"
2177
2178 #. type: Plain text
2179 #: build/C/man3/queue.3:51
2180 #, no-wrap
2181 msgid "B<#include E<lt>sys/queue.hE<gt>>\n"
2182 msgstr "B<#include E<lt>sys/queue.hE<gt>>\n"
2183
2184 #. type: Plain text
2185 #: build/C/man3/queue.3:60
2186 #, no-wrap
2187 msgid ""
2188 "B<LIST_ENTRY(>I<TYPE>B<);>\n"
2189 "B<LIST_HEAD(>I<HEADNAME>B<, >I<TYPE>B<);>\n"
2190 "B<LIST_INIT(LIST_HEAD *>I<head>B<);>\n"
2191 "B<LIST_INSERT_AFTER(LIST_ENTRY *>I<listelm>B<, >\n"
2192 "B<                TYPE *>I<elm>B<, LIST_ENTRY >I<NAME>B<);>\n"
2193 "B<LIST_INSERT_HEAD(LIST_HEAD *>I<head>B<, >\n"
2194 "B<                TYPE *>I<elm>B<, LIST_ENTRY >I<NAME>B<);>\n"
2195 "B<LIST_REMOVE(TYPE *>I<elm>B<, LIST_ENTRY >I<NAME>B<);>\n"
2196 msgstr ""
2197 "B<LIST_ENTRY(>I<TYPE>B<);>\n"
2198 "B<LIST_HEAD(>I<HEADNAME>B<, >I<TYPE>B<);>\n"
2199 "B<LIST_INIT(LIST_HEAD *>I<head>B<);>\n"
2200 "B<LIST_INSERT_AFTER(LIST_ENTRY *>I<listelm>B<, >\n"
2201 "B<                TYPE *>I<elm>B<, LIST_ENTRY >I<NAME>B<);>\n"
2202 "B<LIST_INSERT_HEAD(LIST_HEAD *>I<head>B<, >\n"
2203 "B<                TYPE *>I<elm>B<, LIST_ENTRY >I<NAME>B<);>\n"
2204 "B<LIST_REMOVE(TYPE *>I<elm>B<, LIST_ENTRY >I<NAME>B<);>\n"
2205
2206 #. type: Plain text
2207 #: build/C/man3/queue.3:71
2208 #, no-wrap
2209 msgid ""
2210 "B<TAILQ_ENTRY(>I<TYPE>B<);>\n"
2211 "B<TAILQ_HEAD(>I<HEADNAME>B<, >I<TYPE>B<);>\n"
2212 "B<TAILQ_INIT(TAILQ_HEAD *>I<head>B<);>\n"
2213 "B<TAILQ_INSERT_AFTER(TAILQ_HEAD *>I<head>B<, TYPE *>I<listelm>B<, >\n"
2214 "B<                TYPE *>I<elm>B<, TAILQ_ENTRY >I<NAME>B<);>\n"
2215 "B<TAILQ_INSERT_HEAD(TAILQ_HEAD *>I<head>B<, >\n"
2216 "B<                TYPE *>I<elm>B<, TAILQ_ENTRY >I<NAME>B<);>\n"
2217 "B<TAILQ_INSERT_TAIL(TAILQ_HEAD *>I<head>B<, >\n"
2218 "B<                TYPE *>I<elm>B<, TAILQ_ENTRY >I<NAME>B<);>\n"
2219 "B<TAILQ_REMOVE(TAILQ_HEAD *>I<head>B<, TYPE *>I<elm>B<, TAILQ_ENTRY >I<NAME>B<);>\n"
2220 msgstr ""
2221 "B<TAILQ_ENTRY(>I<TYPE>B<);>\n"
2222 "B<TAILQ_HEAD(>I<HEADNAME>B<, >I<TYPE>B<);>\n"
2223 "B<TAILQ_INIT(TAILQ_HEAD *>I<head>B<);>\n"
2224 "B<TAILQ_INSERT_AFTER(TAILQ_HEAD *>I<head>B<, TYPE *>I<listelm>B<, >\n"
2225 "B<                TYPE *>I<elm>B<, TAILQ_ENTRY >I<NAME>B<);>\n"
2226 "B<TAILQ_INSERT_HEAD(TAILQ_HEAD *>I<head>B<, >\n"
2227 "B<                TYPE *>I<elm>B<, TAILQ_ENTRY >I<NAME>B<);>\n"
2228 "B<TAILQ_INSERT_TAIL(TAILQ_HEAD *>I<head>B<, >\n"
2229 "B<                TYPE *>I<elm>B<, TAILQ_ENTRY >I<NAME>B<);>\n"
2230 "B<TAILQ_REMOVE(TAILQ_HEAD *>I<head>B<, TYPE *>I<elm>B<, TAILQ_ENTRY >I<NAME>B<);>\n"
2231
2232 #. type: Plain text
2233 #: build/C/man3/queue.3:85
2234 #, no-wrap
2235 msgid ""
2236 "B<CIRCLEQ_ENTRY(>I<TYPE>B<);>\n"
2237 "B<CIRCLEQ_HEAD(>I<HEADNAME>B<, >I<TYPE>B<);>\n"
2238 "B<CIRCLEQ_INIT(CIRCLEQ_HEAD *>I<head>B<);>\n"
2239 "B<CIRCLEQ_INSERT_AFTER(CIRCLEQ_HEAD *>I<head>B<, TYPE *>I<listelm>B<, >\n"
2240 "B<                TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
2241 "B<CIRCLEQ_INSERT_BEFORE(CIRCLEQ_HEAD *>I<head>B<, TYPE *>I<listelm>B<, >\n"
2242 "B<                TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
2243 "B<CIRCLEQ_INSERT_HEAD(CIRCLEQ_HEAD *>I<head>B<, >\n"
2244 "B<                TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
2245 "B<CIRCLEQ_INSERT_TAIL(CIRCLEQ_HEAD *>I<head>B<, >\n"
2246 "B<                TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
2247 "B<CIRCLEQ_REMOVE(CIRCLEQ_HEAD *>I<head>B<, >\n"
2248 "B<                TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
2249 msgstr ""
2250 "B<CIRCLEQ_ENTRY(>I<TYPE>B<);>\n"
2251 "B<CIRCLEQ_HEAD(>I<HEADNAME>B<, >I<TYPE>B<);>\n"
2252 "B<CIRCLEQ_INIT(CIRCLEQ_HEAD *>I<head>B<);>\n"
2253 "B<CIRCLEQ_INSERT_AFTER(CIRCLEQ_HEAD *>I<head>B<, TYPE *>I<listelm>B<, >\n"
2254 "B<                TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
2255 "B<CIRCLEQ_INSERT_BEFORE(CIRCLEQ_HEAD *>I<head>B<, TYPE *>I<listelm>B<, >\n"
2256 "B<                TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
2257 "B<CIRCLEQ_INSERT_HEAD(CIRCLEQ_HEAD *>I<head>B<, >\n"
2258 "B<                TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
2259 "B<CIRCLEQ_INSERT_TAIL(CIRCLEQ_HEAD *>I<head>B<, >\n"
2260 "B<                TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
2261 "B<CIRCLEQ_REMOVE(CIRCLEQ_HEAD *>I<head>B<, >\n"
2262 "B<                TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
2263
2264 #. type: Plain text
2265 #: build/C/man3/queue.3:90
2266 msgid ""
2267 "These macros define and operate on three types of data structures: lists, "
2268 "tail queues, and circular queues.  All three structures support the "
2269 "following functionality:"
2270 msgstr ""
2271 "これらのマクロは、次の 3 つのデータ構造を定義して操作する: リスト・テール"
2272 "キュー・循環キュー。 3 つのデータ構造すべてにおいて以下の機能がサポートされて"
2273 "いる:"
2274
2275 #. type: Plain text
2276 #: build/C/man3/queue.3:95
2277 msgid "Insertion of a new entry at the head of the list."
2278 msgstr "新たなエントリーをリストの先頭に挿入する。"
2279
2280 #. type: Plain text
2281 #: build/C/man3/queue.3:97
2282 msgid "Insertion of a new entry after any element in the list."
2283 msgstr "新たなエントリーをリストのどの要素よりも後に挿入する。"
2284
2285 #. type: Plain text
2286 #: build/C/man3/queue.3:99
2287 msgid "Removal of any entry in the list."
2288 msgstr "リストの任意のエントリーを削除する。"
2289
2290 #. type: Plain text
2291 #: build/C/man3/queue.3:101
2292 msgid "Forward traversal through the list."
2293 msgstr "リストを順方向に辿る。"
2294
2295 #. type: Plain text
2296 #: build/C/man3/queue.3:106
2297 msgid ""
2298 "Lists are the simplest of the three data structures and support only the "
2299 "above functionality."
2300 msgstr ""
2301 "リストは 3 つのデータ構造の中で最も単純であり、 上記の機能のみをサポートす"
2302 "る。"
2303
2304 #. type: Plain text
2305 #: build/C/man3/queue.3:108
2306 msgid "Tail queues add the following functionality:"
2307 msgstr "テールキューは以下の機能を追加する:"
2308
2309 #. type: Plain text
2310 #: build/C/man3/queue.3:111 build/C/man3/queue.3:133
2311 msgid "Entries can be added at the end of a list."
2312 msgstr "エントリーをリストの最後に追加できる。"
2313
2314 #. type: Plain text
2315 #: build/C/man3/queue.3:114 build/C/man3/queue.3:141
2316 msgid "However:"
2317 msgstr "ただし:"
2318
2319 #. type: IP
2320 #: build/C/man3/queue.3:117 build/C/man3/queue.3:144
2321 #, no-wrap
2322 msgid "1."
2323 msgstr "1."
2324
2325 #. type: Plain text
2326 #: build/C/man3/queue.3:119 build/C/man3/queue.3:146
2327 msgid "All list insertions and removals must specify the head of the list."
2328 msgstr "全てのリスト挿入と削除において、リストの先頭を指定しなければならない。"
2329
2330 #. type: IP
2331 #: build/C/man3/queue.3:119 build/C/man3/queue.3:146
2332 #, no-wrap
2333 msgid "2."
2334 msgstr "2."
2335
2336 #. type: Plain text
2337 #: build/C/man3/queue.3:121 build/C/man3/queue.3:148
2338 msgid "Each head entry requires two pointers rather than one."
2339 msgstr "各先頭エントリーは 1 つではなく 2 つのポインターを必要とする。"
2340
2341 #. type: IP
2342 #: build/C/man3/queue.3:121 build/C/man3/queue.3:148
2343 #, no-wrap
2344 msgid "3."
2345 msgstr "3."
2346
2347 #. type: Plain text
2348 #: build/C/man3/queue.3:124
2349 msgid ""
2350 "Code size is about 15% greater and operations run about 20% slower than "
2351 "lists."
2352 msgstr "リストと比べて、コードサイズは 15% 大きくなり、操作は 20% 遅くなる。"
2353
2354 #. type: Plain text
2355 #: build/C/man3/queue.3:128
2356 msgid "Circular queues add the following functionality:"
2357 msgstr "循環キューは以下の機能を追加する:"
2358
2359 #. type: Plain text
2360 #: build/C/man3/queue.3:135
2361 msgid "Entries can be added before another entry."
2362 msgstr "エントリーを他のエントリーの前に追加できる。"
2363
2364 #. type: Plain text
2365 #: build/C/man3/queue.3:137
2366 msgid "They may be traversed backward, from tail to head."
2367 msgstr "逆方向に末尾から先頭へ辿ることができる。"
2368
2369 #. type: Plain text
2370 #: build/C/man3/queue.3:150
2371 msgid "The termination condition for traversal is more complex."
2372 msgstr "辿る際の終了条件がより複雑である。"
2373
2374 #. type: IP
2375 #: build/C/man3/queue.3:150
2376 #, no-wrap
2377 msgid "4."
2378 msgstr "4."
2379
2380 #. type: Plain text
2381 #: build/C/man3/queue.3:153
2382 msgid ""
2383 "Code size is about 40% greater and operations run about 45% slower than "
2384 "lists."
2385 msgstr "リストと比べて、コードサイズは 40% 大きくなり、操作は 45% 遅くなる。"
2386
2387 #. type: Plain text
2388 #: build/C/man3/queue.3:176
2389 msgid ""
2390 "In the macro definitions, I<TYPE> is the name of a user-defined structure, "
2391 "that must contain a field of type B<LIST_ENTRY>, B<TAILQ_ENTRY>, or "
2392 "B<CIRCLEQ_ENTRY>, named I<NAME>.  The argument I<HEADNAME> is the name of a "
2393 "user-defined structure that must be declared using the macros B<LIST_HEAD>, "
2394 "B<TAILQ_HEAD>, or B<CIRCLEQ_HEAD>.  See the examples below for further "
2395 "explanation of how these macros are used."
2396 msgstr ""
2397 "マクロ定義において I<TYPE> はユーザー定義構造体の名前であり、 B<LIST_ENTRY>, "
2398 "B<TAILQ_ENTRY>, B<CIRCLEQ_ENTRY> の何れか型のフィールドと 指定された I<NAME> "
2399 "を含まなければならない。 引き数 I<HEADNAME> はユーザー定義構造体の名前であ"
2400 "り、 マクロ B<LIST_HEAD>, B<TAILQ_HEAD>, B<CIRCLEQ_HEAD> を用いて宣言されなけ"
2401 "ればならない。 これらのマクロがどのように使われるかについての更なる説明は、 "
2402 "以下の例を参照すること。"
2403
2404 #. type: SS
2405 #: build/C/man3/queue.3:176
2406 #, no-wrap
2407 msgid "Lists"
2408 msgstr "リスト"
2409
2410 #. type: Plain text
2411 #: build/C/man3/queue.3:189
2412 msgid ""
2413 "A list is headed by a structure defined by the B<LIST_HEAD> macro.  This "
2414 "structure contains a single pointer to the first element on the list.  The "
2415 "elements are doubly linked so that an arbitrary element can be removed "
2416 "without traversing the list.  New elements can be added to the list after an "
2417 "existing element or at the head of the list.  A B<LIST_HEAD> structure is "
2418 "declared as follows:"
2419 msgstr ""
2420 "リストの先頭には、 B<LIST_HEAD> マクロで定義される構造体が置かれる。 この構造"
2421 "体はリストの最初の要素へのポインターを 1 つ含む。 要素は 2 重にリンクされてお"
2422 "り、 任意の要素はリストを辿らずに削除できる。 新しい要素は既存の要素の後また"
2423 "はリストの先頭に追加できる。 B<LIST_HEAD> 構造体は以下のように宣言されている:"
2424
2425 #. type: Plain text
2426 #: build/C/man3/queue.3:193
2427 #, no-wrap
2428 msgid "LIST_HEAD(HEADNAME, TYPE) head;\n"
2429 msgstr "LIST_HEAD(HEADNAME, TYPE) head;\n"
2430
2431 #. type: Plain text
2432 #: build/C/man3/queue.3:202
2433 msgid ""
2434 "where I<HEADNAME> is the name of the structure to be defined, and I<TYPE> is "
2435 "the type of the elements to be linked into the list.  A pointer to the head "
2436 "of the list can later be declared as:"
2437 msgstr ""
2438 "ここで I<HEADNAME> は定義される構造体の名前であり、 I<TYPE> はリンク内でリン"
2439 "クされる要素の型である。 リストの先頭へのポインターは、その後で次のように宣言"
2440 "される:"
2441
2442 #. type: Plain text
2443 #: build/C/man3/queue.3:206 build/C/man3/queue.3:299 build/C/man3/queue.3:401
2444 #, no-wrap
2445 msgid "struct HEADNAME *headp;\n"
2446 msgstr "struct HEADNAME *headp;\n"
2447
2448 #. type: Plain text
2449 #: build/C/man3/queue.3:214 build/C/man3/queue.3:307 build/C/man3/queue.3:409
2450 msgid "(The names I<head> and I<headp> are user selectable.)"
2451 msgstr "(名前 I<head> と I<headp> はユーザーが選択できる。)"
2452
2453 #. type: Plain text
2454 #: build/C/man3/queue.3:219
2455 msgid ""
2456 "The macro B<LIST_ENTRY> declares a structure that connects the elements in "
2457 "the list."
2458 msgstr "マクロ B<LIST_ENTRY> はリストの要素を接続する構造体を宣言する。"
2459
2460 #. type: Plain text
2461 #: build/C/man3/queue.3:224
2462 msgid "The macro B<LIST_INIT> initializes the list referenced by I<head>."
2463 msgstr "マクロ B<LIST_INIT> は I<head> で参照されるリストを初期化する。"
2464
2465 #. type: Plain text
2466 #: build/C/man3/queue.3:230
2467 msgid ""
2468 "The macro B<LIST_INSERT_HEAD> inserts the new element I<elm> at the head of "
2469 "the list."
2470 msgstr ""
2471 "マクロ B<LIST_INSERT_HEAD> は新たな要素 I<elm> をリストの先頭に挿入する。"
2472
2473 #. type: Plain text
2474 #: build/C/man3/queue.3:237
2475 msgid ""
2476 "The macro B<LIST_INSERT_AFTER> inserts the new element I<elm> after the "
2477 "element I<listelm>."
2478 msgstr ""
2479 "マクロ B<LIST_INSERT_AFTER> は新たな要素 I<elm> を要素 I<listelm> の後に挿入"
2480 "する。"
2481
2482 #. type: Plain text
2483 #: build/C/man3/queue.3:243
2484 msgid "The macro B<LIST_REMOVE> removes the element I<elm> from the list."
2485 msgstr "マクロ B<LIST_REMOVE> は要素 I<elm> をリストから削除する。"
2486
2487 #. type: SS
2488 #: build/C/man3/queue.3:243
2489 #, no-wrap
2490 msgid "List example"
2491 msgstr "リストの例"
2492
2493 #. type: Plain text
2494 #: build/C/man3/queue.3:252
2495 #, no-wrap
2496 msgid ""
2497 "LIST_HEAD(listhead, entry) head;\n"
2498 "struct listhead *headp;                 /* List head. */\n"
2499 "struct entry {\n"
2500 "    ...\n"
2501 "    LIST_ENTRY(entry) entries;          /* List. */\n"
2502 "    ...\n"
2503 "} *n1, *n2, *np;\n"
2504 msgstr ""
2505 "LIST_HEAD(listhead, entry) head;\n"
2506 "struct listhead *headp;                 /* リストの先頭。*/\n"
2507 "struct entry {\n"
2508 "    ...\n"
2509 "    LIST_ENTRY(entry) entries;          /* リスト。 */\n"
2510 "    ...\n"
2511 "} *n1, *n2, *np;\n"
2512
2513 #. type: Plain text
2514 #: build/C/man3/queue.3:254
2515 #, no-wrap
2516 msgid "LIST_INIT(&head);                       /* Initialize the list. */\n"
2517 msgstr "LIST_INIT(&head);                       /* リストを初期化する。*/\n"
2518
2519 #. type: Plain text
2520 #: build/C/man3/queue.3:257
2521 #, no-wrap
2522 msgid ""
2523 "n1 = malloc(sizeof(struct entry));      /* Insert at the head. */\n"
2524 "LIST_INSERT_HEAD(&head, n1, entries);\n"
2525 msgstr ""
2526 "n1 = malloc(sizeof(struct entry));      /* 先頭に挿入する。*/\n"
2527 "LIST_INSERT_HEAD(&head, n1, entries);\n"
2528
2529 #. type: Plain text
2530 #: build/C/man3/queue.3:263
2531 #, no-wrap
2532 msgid ""
2533 "n2 = malloc(sizeof(struct entry));      /* Insert after. */\n"
2534 "LIST_INSERT_AFTER(n1, n2, entries);\n"
2535 "                                        /* Forward traversal. */\n"
2536 "for (np = head.lh_first; np != NULL; np = np-E<gt>entries.le_next)\n"
2537 "    np-E<gt> ...\n"
2538 msgstr ""
2539 "n2 = malloc(sizeof(struct entry));      /* 後ろに挿入する。*/\n"
2540 "LIST_INSERT_AFTER(n1, n2, entries);\n"
2541 "                                        /* 順方向に辿る。*/\n"
2542 "for (np = head.lh_first; np != NULL; np = np-E<gt>entries.le_next)\n"
2543 "    np-E<gt> ...\n"
2544
2545 #.  FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=1506
2546 #. type: Plain text
2547 #: build/C/man3/queue.3:267
2548 #, no-wrap
2549 msgid ""
2550 "while (head.lh_first != NULL)           /* Delete. */\n"
2551 "    LIST_REMOVE(head.lh_first, entries);\n"
2552 msgstr ""
2553 "while (head.lh_first != NULL)           /* 削除する。*/\n"
2554 "    LIST_REMOVE(head.lh_first, entries);\n"
2555
2556 #. type: SS
2557 #: build/C/man3/queue.3:268
2558 #, no-wrap
2559 msgid "Tail queues"
2560 msgstr "テールキュー"
2561
2562 #. type: Plain text
2563 #: build/C/man3/queue.3:282
2564 msgid ""
2565 "A tail queue is headed by a structure defined by the B<TAILQ_HEAD> macro.  "
2566 "This structure contains a pair of pointers, one to the first element in the "
2567 "tail queue and the other to the last element in the tail queue.  The "
2568 "elements are doubly linked so that an arbitrary element can be removed "
2569 "without traversing the tail queue.  New elements can be added to the tail "
2570 "queue after an existing element, at the head of the tail queue, or at the "
2571 "end of the tail queue.  A B<TAILQ_HEAD> structure is declared as follows:"
2572 msgstr ""
2573 "テールキューの先頭には B<TAILQ_HEAD> マクロで定義される構造体が置かれる。 こ"
2574 "の構造体は 1 組のポインターを含んでいる。 1 つはテールキューの最初の要素への"
2575 "ポインターであり、 もう 1 つはテールキューの最後の要素へのポインターである。 "
2576 "要素は 2 重にリンクされており、 任意の要素はテールキューを辿らずに削除でき"
2577 "る。 新しい要素は既存の要素の後またはテールキューの先頭または末尾に追加でき"
2578 "る。 B<TAILQ_HEAD> 構造体は以下のように定義されている:"
2579
2580 #. type: Plain text
2581 #: build/C/man3/queue.3:286
2582 #, no-wrap
2583 msgid "TAILQ_HEAD(HEADNAME, TYPE) head;\n"
2584 msgstr "TAILQ_HEAD(HEADNAME, TYPE) head;\n"
2585
2586 #. type: Plain text
2587 #: build/C/man3/queue.3:295
2588 msgid ""
2589 "where I<HEADNAME> is the name of the structure to be defined, and I<TYPE> is "
2590 "the type of the elements to be linked into the tail queue.  A pointer to the "
2591 "head of the tail queue can later be declared as:"
2592 msgstr ""
2593 "ここで I<HEADNAME> は定義される構造体の名前であり、 I<TYPE> はテールキュー内"
2594 "でリンクされる要素の型である。 テールキューの先頭へのポインターは、その後で次"
2595 "のように宣言される:"
2596
2597 #. type: Plain text
2598 #: build/C/man3/queue.3:312
2599 msgid ""
2600 "The macro B<TAILQ_ENTRY> declares a structure that connects the elements in "
2601 "the tail queue."
2602 msgstr "マクロ B<TAILQ_ENTRY> はテールキューの要素を接続する構造体を宣言する。"
2603
2604 #. type: Plain text
2605 #: build/C/man3/queue.3:317
2606 msgid ""
2607 "The macro B<TAILQ_INIT> initializes the tail queue referenced by I<head>."
2608 msgstr "マクロ B<TAILQ_INIT> は I<head> で参照されるテールキューを初期化する。"
2609
2610 #. type: Plain text
2611 #: build/C/man3/queue.3:323
2612 msgid ""
2613 "The macro B<TAILQ_INSERT_HEAD> inserts the new element I<elm> at the head of "
2614 "the tail queue."
2615 msgstr ""
2616 "マクロ B<TAILQ_INSERT_HEAD> は新たな要素 I<elm> をテールキューの先頭に挿入す"
2617 "る。"
2618
2619 #. type: Plain text
2620 #: build/C/man3/queue.3:329
2621 msgid ""
2622 "The macro B<TAILQ_INSERT_TAIL> inserts the new element I<elm> at the end of "
2623 "the tail queue."
2624 msgstr ""
2625 "マクロ B<TAILQ_INSERT_TAIL> は新たな要素 I<elm> をテールキューの末尾に挿入す"
2626 "る。"
2627
2628 #. type: Plain text
2629 #: build/C/man3/queue.3:336
2630 msgid ""
2631 "The macro B<TAILQ_INSERT_AFTER> inserts the new element I<elm> after the "
2632 "element I<listelm>."
2633 msgstr ""
2634 "マクロ B<TAILQ_INSERT_AFTER> は新たな要素 I<elm> を要素 I<listelm> の後に挿入"
2635 "する。"
2636
2637 #. type: Plain text
2638 #: build/C/man3/queue.3:342
2639 msgid ""
2640 "The macro B<TAILQ_REMOVE> removes the element I<elm> from the tail queue."
2641 msgstr "マクロ B<TAILQ_REMOVE> は要素 I<elm> をテールキューから削除する。"
2642
2643 #. type: SS
2644 #: build/C/man3/queue.3:342
2645 #, no-wrap
2646 msgid "Tail queue example"
2647 msgstr "テールキューの例"
2648
2649 #. type: Plain text
2650 #: build/C/man3/queue.3:351
2651 #, no-wrap
2652 msgid ""
2653 "TAILQ_HEAD(tailhead, entry) head;\n"
2654 "struct tailhead *headp;                 /* Tail queue head. */\n"
2655 "struct entry {\n"
2656 "    ...\n"
2657 "    TAILQ_ENTRY(entry) entries;         /* Tail queue. */\n"
2658 "    ...\n"
2659 "} *n1, *n2, *np;\n"
2660 msgstr ""
2661 "TAILQ_HEAD(tailhead, entry) head;\n"
2662 "struct tailhead *headp;                 /* テールキューの先頭。*/\n"
2663 "struct entry {\n"
2664 "    ...\n"
2665 "    TAILQ_ENTRY(entry) entries;         /* テールキュー。*/\n"
2666 "    ...\n"
2667 "} *n1, *n2, *np;\n"
2668
2669 #. type: Plain text
2670 #: build/C/man3/queue.3:353
2671 #, no-wrap
2672 msgid "TAILQ_INIT(&head);                      /* Initialize the queue. */\n"
2673 msgstr "TAILQ_INIT(&head);                      /* キューを初期化する。*/\n"
2674
2675 #. type: Plain text
2676 #: build/C/man3/queue.3:356
2677 #, no-wrap
2678 msgid ""
2679 "n1 = malloc(sizeof(struct entry));      /* Insert at the head. */\n"
2680 "TAILQ_INSERT_HEAD(&head, n1, entries);\n"
2681 msgstr ""
2682 "n1 = malloc(sizeof(struct entry));      /* 先頭に挿入する。*/\n"
2683 "TAILQ_INSERT_HEAD(&head, n1, entries);\n"
2684
2685 #. type: Plain text
2686 #: build/C/man3/queue.3:359
2687 #, no-wrap
2688 msgid ""
2689 "n1 = malloc(sizeof(struct entry));      /* Insert at the tail. */\n"
2690 "TAILQ_INSERT_TAIL(&head, n1, entries);\n"
2691 msgstr ""
2692 "n1 = malloc(sizeof(struct entry));      /* 末尾に挿入する。*/\n"
2693 "TAILQ_INSERT_TAIL(&head, n1, entries);\n"
2694
2695 #. type: Plain text
2696 #: build/C/man3/queue.3:368
2697 #, no-wrap
2698 msgid ""
2699 "n2 = malloc(sizeof(struct entry));      /* Insert after. */\n"
2700 "TAILQ_INSERT_AFTER(&head, n1, n2, entries);\n"
2701 "                                        /* Forward traversal. */\n"
2702 "for (np = head.tqh_first; np != NULL; np = np-E<gt>entries.tqe_next)\n"
2703 "    np-E<gt> ...\n"
2704 "                                        /* Delete. */\n"
2705 "while (head.tqh_first != NULL)\n"
2706 "    TAILQ_REMOVE(&head, head.tqh_first, entries);\n"
2707 msgstr ""
2708 "n2 = malloc(sizeof(struct entry));      /* 後ろに挿入する。*/\n"
2709 "TAILQ_INSERT_AFTER(&head, n1, n2, entries);\n"
2710 "                                        /* 順方向に辿る。*/\n"
2711 "for (np = head.tqh_first; np != NULL; np = np-E<gt>entries.tqe_next)\n"
2712 "    np-E<gt> ...\n"
2713 "                                        /* 削除する。*/\n"
2714 "while (head.tqh_first != NULL)\n"
2715 "    TAILQ_REMOVE(&head, head.tqh_first, entries);\n"
2716
2717 #. type: SS
2718 #: build/C/man3/queue.3:369
2719 #, no-wrap
2720 msgid "Circular queues"
2721 msgstr "循環キュー"
2722
2723 #. type: Plain text
2724 #: build/C/man3/queue.3:384
2725 msgid ""
2726 "A circular queue is headed by a structure defined by the B<CIRCLEQ_HEAD> "
2727 "macro.  This structure contains a pair of pointers, one to the first element "
2728 "in the circular queue and the other to the last element in the circular "
2729 "queue.  The elements are doubly linked so that an arbitrary element can be "
2730 "removed without traversing the queue.  New elements can be added to the "
2731 "queue after an existing element, before an existing element, at the head of "
2732 "the queue, or at the end of the queue.  A B<CIRCLEQ_HEAD> structure is "
2733 "declared as follows:"
2734 msgstr ""
2735 "循環キューの先頭には B<CIRCLEQ_HEAD> マクロで定義される構造体が置かれる。 こ"
2736 "の構造体は 1 組のポインターを含んでいる。 1 つは循環キューの最初の要素へのポ"
2737 "インターであり、 もう 1 つは循環キューの最後の要素へのポインターである。 要素"
2738 "は 2 重にリンクされており、 任意の要素はキューを辿らずに削除できる。 新しい要"
2739 "素は、既存の要素の後または前、またはキューの先頭または末尾に追加できる。 A "
2740 "B<CIRCLEQ_HEAD> 構造体は以下のように定義されている:"
2741
2742 #. type: Plain text
2743 #: build/C/man3/queue.3:388
2744 #, no-wrap
2745 msgid "CIRCLEQ_HEAD(HEADNAME, TYPE) head;\n"
2746 msgstr "CIRCLEQ_HEAD(HEADNAME, TYPE) head;\n"
2747
2748 #. type: Plain text
2749 #: build/C/man3/queue.3:397
2750 msgid ""
2751 "where I<HEADNAME> is the name of the structure to be defined, and I<TYPE> is "
2752 "the type of the elements to be linked into the circular queue.  A pointer to "
2753 "the head of the circular queue can later be declared as:"
2754 msgstr ""
2755 "ここで I<HEADNAME> は定義される構造体の名前であり、 I<TYPE> は循環キュー内で"
2756 "リンクされる要素の型である。 循環キューの先頭へのポインターは、その後で次のよ"
2757 "うに宣言される:"
2758
2759 #. type: Plain text
2760 #: build/C/man3/queue.3:414
2761 msgid ""
2762 "The macro B<CIRCLEQ_ENTRY> declares a structure that connects the elements "
2763 "in the circular queue."
2764 msgstr "マクロ B<CIRCLEQ_ENTRY> は循環キューの要素を接続する構造体を宣言する。"
2765
2766 #. type: Plain text
2767 #: build/C/man3/queue.3:419
2768 msgid ""
2769 "The macro B<CIRCLEQ_INIT> initializes the circular queue referenced by "
2770 "I<head>."
2771 msgstr "マクロ B<CIRCLEQ_INIT> は I<head> で参照される循環キューを初期化する。"
2772
2773 #. type: Plain text
2774 #: build/C/man3/queue.3:425
2775 msgid ""
2776 "The macro B<CIRCLEQ_INSERT_HEAD> inserts the new element I<elm> at the head "
2777 "of the circular queue."
2778 msgstr ""
2779 "マクロ B<CIRCLEQ_INSERT_HEAD> は新たな要素 I<elm> を循環キューの先頭に挿入す"
2780 "る。"
2781
2782 #. type: Plain text
2783 #: build/C/man3/queue.3:431
2784 msgid ""
2785 "The macro B<CIRCLEQ_INSERT_TAIL> inserts the new element I<elm> at the end "
2786 "of the circular queue."
2787 msgstr ""
2788 "マクロ B<CIRCLEQ_INSERT_TAIL> は新たな要素 I<elm> を循環キューの末尾に挿入す"
2789 "る。"
2790
2791 #. type: Plain text
2792 #: build/C/man3/queue.3:438
2793 msgid ""
2794 "The macro B<CIRCLEQ_INSERT_AFTER> inserts the new element I<elm> after the "
2795 "element I<listelm>."
2796 msgstr ""
2797 "マクロ B<CIRCLEQ_INSERT_AFTER> は新たな要素 I<elm> を要素 I<listelm> の後に挿"
2798 "入する。"
2799
2800 #. type: Plain text
2801 #: build/C/man3/queue.3:445
2802 msgid ""
2803 "The macro B<CIRCLEQ_INSERT_BEFORE> inserts the new element I<elm> before the "
2804 "element I<listelm>."
2805 msgstr ""
2806 "マクロ B<CIRCLEQ_INSERT_AFTER> は新たな要素 I<elm> を要素 I<listelm> の前に挿"
2807 "入する。"
2808
2809 #. type: Plain text
2810 #: build/C/man3/queue.3:451
2811 msgid ""
2812 "The macro B<CIRCLEQ_REMOVE> removes the element I<elm> from the circular "
2813 "queue."
2814 msgstr "マクロ B<CIRCLEQ_REMOVE> は要素 I<elm> を循環キューから削除する。"
2815
2816 #. type: SS
2817 #: build/C/man3/queue.3:451
2818 #, no-wrap
2819 msgid "Circular queue example"
2820 msgstr "循環キューの例"
2821
2822 #. type: Plain text
2823 #: build/C/man3/queue.3:460
2824 #, no-wrap
2825 msgid ""
2826 "CIRCLEQ_HEAD(circleq, entry) head;\n"
2827 "struct circleq *headp;              /* Circular queue head. */\n"
2828 "struct entry {\n"
2829 "    ...\n"
2830 "    CIRCLEQ_ENTRY(entry) entries;   /* Circular queue. */\n"
2831 "    ...\n"
2832 "} *n1, *n2, *np;\n"
2833 msgstr ""
2834 "CIRCLEQ_HEAD(circleq, entry) head;\n"
2835 "struct circleq *headp;                  /* 循環キューの先頭。*/\n"
2836 "struct entry {\n"
2837 "    ...\n"
2838 "    CIRCLEQ_ENTRY(entry) entries;       /* 循環キュー。*/\n"
2839 "    ...\n"
2840 "} *n1, *n2, *np;\n"
2841
2842 #. type: Plain text
2843 #: build/C/man3/queue.3:462
2844 #, no-wrap
2845 msgid "CIRCLEQ_INIT(&head);                /* Initialize the circular queue. */\n"
2846 msgstr "CIRCLEQ_INIT(&head);                    /* 循環キューを初期化する。*/\n"
2847
2848 #. type: Plain text
2849 #: build/C/man3/queue.3:465
2850 #, no-wrap
2851 msgid ""
2852 "n1 = malloc(sizeof(struct entry));  /* Insert at the head. */\n"
2853 "CIRCLEQ_INSERT_HEAD(&head, n1, entries);\n"
2854 msgstr ""
2855 "n1 = malloc(sizeof(struct entry));      /* 先頭に挿入する。*/\n"
2856 "CIRCLEQ_INSERT_HEAD(&head, n1, entries);\n"
2857
2858 #. type: Plain text
2859 #: build/C/man3/queue.3:468
2860 #, no-wrap
2861 msgid ""
2862 "n1 = malloc(sizeof(struct entry));  /* Insert at the tail. */\n"
2863 "CIRCLEQ_INSERT_TAIL(&head, n1, entries);\n"
2864 msgstr ""
2865 "n1 = malloc(sizeof(struct entry));      /* 末尾に挿入する。*/\n"
2866 "CIRCLEQ_INSERT_TAIL(&head, n1, entries);\n"
2867
2868 #. type: Plain text
2869 #: build/C/man3/queue.3:471
2870 #, no-wrap
2871 msgid ""
2872 "n2 = malloc(sizeof(struct entry));  /* Insert after. */\n"
2873 "CIRCLEQ_INSERT_AFTER(&head, n1, n2, entries);\n"
2874 msgstr ""
2875 "n2 = malloc(sizeof(struct entry));      /* 後ろに挿入する。*/\n"
2876 "CIRCLEQ_INSERT_AFTER(&head, n1, n2, entries);\n"
2877
2878 #. type: Plain text
2879 #: build/C/man3/queue.3:484
2880 #, no-wrap
2881 msgid ""
2882 "n2 = malloc(sizeof(struct entry));  /* Insert before. */\n"
2883 "CIRCLEQ_INSERT_BEFORE(&head, n1, n2, entries);\n"
2884 "                                    /* Forward traversal. */\n"
2885 "for (np = head.cqh_first; np != (void *)&head;\n"
2886 "        np = np-E<gt>entries.cqe_next)\n"
2887 "    np-E<gt> ...\n"
2888 "                                    /* Reverse traversal. */\n"
2889 "for (np = head.cqh_last; np != (void *)&head; np = np-E<gt>entries.cqe_prev)\n"
2890 "    np-E<gt> ...\n"
2891 "                                    /* Delete. */\n"
2892 "while (head.cqh_first != (void *)&head)\n"
2893 "    CIRCLEQ_REMOVE(&head, head.cqh_first, entries);\n"
2894 msgstr ""
2895 "n2 = malloc(sizeof(struct entry));      /* 前に挿入する。*/\n"
2896 "CIRCLEQ_INSERT_BEFORE(&head, n1, n2, entries);\n"
2897 "                                        /* 順方向に辿る。*/\n"
2898 "for (np = head.cqh_first; np != (void *)&head; np = np-E<gt>entries.cqe_next)\n"
2899 "    np-E<gt> ...\n"
2900 "                                        /* 逆方向に辿る。*/\n"
2901 "for (np = head.cqh_last; np != (void *)&head; np = np-E<gt>entries.cqe_prev)\n"
2902 "    np-E<gt> ...\n"
2903 "                                        /* 削除する。*/\n"
2904 "while (head.cqh_first != (void *)&head)\n"
2905 "    CIRCLEQ_REMOVE(&head, head.cqh_first, entries);\n"
2906
2907 #. type: Plain text
2908 #: build/C/man3/queue.3:491
2909 msgid ""
2910 "Not in POSIX.1-2001.  Present on the BSDs.  The queue functions first "
2911 "appeared in 4.4BSD."
2912 msgstr ""
2913 "POSIX.1-2001 にはない。 BSD 系に存在する。 queue 関数は 4.4BSD で初めて登場し"
2914 "た。"
2915
2916 #. type: TH
2917 #: build/C/man3/realpath.3:28
2918 #, no-wrap
2919 msgid "REALPATH"
2920 msgstr "REALPATH"
2921
2922 #. type: TH
2923 #: build/C/man3/realpath.3:28
2924 #, no-wrap
2925 msgid "2014-10-02"
2926 msgstr "2014-10-02"
2927
2928 #. type: Plain text
2929 #: build/C/man3/realpath.3:31
2930 msgid "realpath - return the canonicalized absolute pathname"
2931 msgstr "realpath - 正規化された絶対パス名を返す"
2932
2933 #. type: Plain text
2934 #: build/C/man3/realpath.3:35
2935 #, no-wrap
2936 msgid ""
2937 "B<#include E<lt>limits.hE<gt>>\n"
2938 "B<#include E<lt>stdlib.hE<gt>>\n"
2939 msgstr ""
2940 "B<#include E<lt>limits.hE<gt>>\n"
2941 "B<#include E<lt>stdlib.hE<gt>>\n"
2942
2943 #. type: Plain text
2944 #: build/C/man3/realpath.3:37
2945 #, no-wrap
2946 msgid "B<char *realpath(const char *>I<path>B<, char *>I<resolved_path>B<);>\n"
2947 msgstr "B<char *realpath(const char *>I<path>B<, char *>I<resolved_path>B<);>\n"
2948
2949 #. type: Plain text
2950 #: build/C/man3/realpath.3:45
2951 msgid "B<realpath>():"
2952 msgstr "B<realpath>():"
2953
2954 #. type: Plain text
2955 #: build/C/man3/realpath.3:49
2956 msgid ""
2957 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2958 "_XOPEN_SOURCE_EXTENDED"
2959 msgstr ""
2960 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2961 "_XOPEN_SOURCE_EXTENDED"
2962
2963 #. type: Plain text
2964 #: build/C/man3/realpath.3:71
2965 msgid ""
2966 "B<realpath>()  expands all symbolic links and resolves references to I</./>, "
2967 "I</../> and extra \\(aq/\\(aq characters in the null-terminated string named "
2968 "by I<path> to produce a canonicalized absolute pathname.  The resulting "
2969 "pathname is stored as a null-terminated string, up to a maximum of "
2970 "B<PATH_MAX> bytes, in the buffer pointed to by I<resolved_path>.  The "
2971 "resulting path will have no symbolic link, I</./> or I</../> components."
2972 msgstr ""
2973 "B<realpath>()  は I<path> として与えられたヌル終端された文字列中の すべてのシ"
2974 "ンボリックリンクを展開し、 I</./>, I</../> による参照や余分な \\(aq/\\(aq を"
2975 "解決して、正規化された絶対パス名を生成する。 得られた絶対パス名は、最大で "
2976 "B<PATH_MAX> バイトのヌル終端された文字列として、 I<resolved_path> により参照"
2977 "されるバッファーに格納される。 結果として返るパスの中には、シンボリックリンク"
2978 "や I</./>, I</../> といった要素は含まれない。"
2979
2980 #.  Even if we use resolved_path == NULL, then realpath() will still
2981 #.  return ENAMETOOLONG if the resolved pathname would exceed PATH_MAX
2982 #.  bytes -- MTK, Dec 04
2983 #.  .SH HISTORY
2984 #.  The
2985 #.  .BR realpath ()
2986 #.  function first appeared in 4.4BSD, contributed by Jan-Simon Pendry.
2987 #. type: Plain text
2988 #: build/C/man3/realpath.3:91
2989 msgid ""
2990 "If I<resolved_path> is specified as NULL, then B<realpath>()  uses "
2991 "B<malloc>(3)  to allocate a buffer of up to B<PATH_MAX> bytes to hold the "
2992 "resolved pathname, and returns a pointer to this buffer.  The caller should "
2993 "deallocate this buffer using B<free>(3)."
2994 msgstr ""
2995 "I<resolved_path> に NULL が指定されると、 B<realpath>()  は B<malloc>(3)  を"
2996 "使って解決したパス名を保持するためのバッファーを 最大で B<PATH_MAX> バイトま"
2997 "で割り当て、このバッファーへのポインターを返す。 呼び出し元は、 B<free>(3)  "
2998 "を使ってこのバッファーを解放すべきである。"
2999
3000 #. type: Plain text
3001 #: build/C/man3/realpath.3:96
3002 msgid ""
3003 "If there is no error, B<realpath>()  returns a pointer to the "
3004 "I<resolved_path>."
3005 msgstr ""
3006 "エラーがなかった場合、 B<realpath>()  は I<resolved_path> へのポインターを返"
3007 "す。"
3008
3009 #. type: Plain text
3010 #: build/C/man3/realpath.3:103
3011 msgid ""
3012 "Otherwise, it returns NULL, the contents of the array I<resolved_path> are "
3013 "undefined, and I<errno> is set to indicate the error."
3014 msgstr ""
3015 "それ以外の場合は NULL が返り、配列 I<resolved_path> の内容は不定となり、 "
3016 "I<errno> にエラーの内容を示す値がセットされる。"
3017
3018 #. type: SH
3019 #: build/C/man3/realpath.3:103
3020 #, no-wrap
3021 msgid "ERRORS"
3022 msgstr "エラー"
3023
3024 #. type: TP
3025 #: build/C/man3/realpath.3:104
3026 #, no-wrap
3027 msgid "B<EACCES>"
3028 msgstr "B<EACCES>"
3029
3030 #. type: Plain text
3031 #: build/C/man3/realpath.3:107
3032 msgid ""
3033 "Read or search permission was denied for a component of the path prefix."
3034 msgstr ""
3035 "パスのディレクトリ部分に、読み出し許可または検索許可が与えられていない。"
3036
3037 #. type: TP
3038 #: build/C/man3/realpath.3:107
3039 #, no-wrap
3040 msgid "B<EINVAL>"
3041 msgstr "B<EINVAL>"
3042
3043 #.  (In libc5 this would just cause a segfault.)
3044 #. type: Plain text
3045 #: build/C/man3/realpath.3:116
3046 msgid ""
3047 "I<path> is NULL.  (In glibc versions before 2.3, this error is also returned "
3048 "if I<resolved_path> is NULL.)"
3049 msgstr ""
3050 "I<path> が NULL である。 (バージョン 2.3 より前の glibc では、 "
3051 "I<resolved_path> が NULL の場合にもこのエラーが返される。)"
3052
3053 #. type: TP
3054 #: build/C/man3/realpath.3:116
3055 #, no-wrap
3056 msgid "B<EIO>"
3057 msgstr "B<EIO>"
3058
3059 #. type: Plain text
3060 #: build/C/man3/realpath.3:119
3061 msgid "An I/O error occurred while reading from the filesystem."
3062 msgstr "ファイルシステムを読むときに、I/Oエラーが起こった。"
3063
3064 #. type: TP
3065 #: build/C/man3/realpath.3:119
3066 #, no-wrap
3067 msgid "B<ELOOP>"
3068 msgstr "B<ELOOP>"
3069
3070 #. type: Plain text
3071 #: build/C/man3/realpath.3:122
3072 msgid "Too many symbolic links were encountered in translating the pathname."
3073 msgstr "パス名の変換にあたり、解決すべきシンボリックリンクの数が多過ぎた。"
3074
3075 #. type: TP
3076 #: build/C/man3/realpath.3:122
3077 #, no-wrap
3078 msgid "B<ENAMETOOLONG>"
3079 msgstr "B<ENAMETOOLONG>"
3080
3081 #. type: Plain text
3082 #: build/C/man3/realpath.3:129
3083 msgid ""
3084 "A component of a pathname exceeded B<NAME_MAX> characters, or an entire "
3085 "pathname exceeded B<PATH_MAX> characters."
3086 msgstr ""
3087 "パス名の一要素の文字数が B<NAME_MAX> を越えている、またはパス名全体の文字数"
3088 "が B<PATH_MAX> を越えている。"
3089
3090 #. type: TP
3091 #: build/C/man3/realpath.3:129
3092 #, no-wrap
3093 msgid "B<ENOENT>"
3094 msgstr "B<ENOENT>"
3095
3096 #. type: Plain text
3097 #: build/C/man3/realpath.3:132
3098 msgid "The named file does not exist."
3099 msgstr "指定されたファイルが存在しない。"
3100
3101 #. type: TP
3102 #: build/C/man3/realpath.3:132
3103 #, no-wrap
3104 msgid "B<ENOTDIR>"
3105 msgstr "B<ENOTDIR>"
3106
3107 #. type: Plain text
3108 #: build/C/man3/realpath.3:135
3109 msgid "A component of the path prefix is not a directory."
3110 msgstr "パスのディレクトリ要素が、ディレクトリでない。"
3111
3112 #. type: Plain text
3113 #: build/C/man3/realpath.3:137
3114 msgid "4.4BSD, POSIX.1-2001."
3115 msgstr "4.4BSD, POSIX.1-2001."
3116
3117 #. type: Plain text
3118 #: build/C/man3/realpath.3:142
3119 msgid ""
3120 "POSIX.1-2001 says that the behavior if I<resolved_path> is NULL is "
3121 "implementation-defined.  POSIX.1-2008 specifies the behavior described in "
3122 "this page."
3123 msgstr ""
3124 "POSIX.1-2001 では I<resolved_path> が NULL の場合の動作は実装に依存するとして"
3125 "いる。 POSIX.1-2008 では、このマニュアルページに書かれている動作が規定されて"
3126 "いる。"
3127
3128 #. type: Plain text
3129 #: build/C/man3/realpath.3:154
3130 msgid ""
3131 "In 4.4BSD and Solaris, the limit on the pathname length is B<MAXPATHLEN> "
3132 "(found in I<E<lt>sys/param.hE<gt>>).  SUSv2 prescribes B<PATH_MAX> and "
3133 "B<NAME_MAX>, as found in I<E<lt>limits.hE<gt>> or provided by the "
3134 "B<pathconf>(3)  function.  A typical source fragment would be"
3135 msgstr ""
3136 "4.4BSD と Solaris では、パス名の長さの上限は (I<E<lt>sys/param.hE<gt>> の中に"
3137 "ある)  B<MAXPATHLEN> である。SUSv2 では B<PATH_MAX> と B<NAME_MAX> が規定され"
3138 "ており、 これらは I<E<lt>limits.hE<gt>> で定義されているか、 B<pathconf>(3)  "
3139 "関数から得られる。以下のようなソースコードになっていることが多い。"
3140
3141 #. type: Plain text
3142 #: build/C/man3/realpath.3:164
3143 #, no-wrap
3144 msgid ""
3145 "#ifdef PATH_MAX\n"
3146 "  path_max = PATH_MAX;\n"
3147 "#else\n"
3148 "  path_max = pathconf(path, _PC_PATH_MAX);\n"
3149 "  if (path_max E<lt>= 0)\n"
3150 "    path_max = 4096;\n"
3151 "#endif\n"
3152 msgstr ""
3153 "#ifdef PATH_MAX\n"
3154 "  path_max = PATH_MAX;\n"
3155 "#else\n"
3156 "  path_max = pathconf(path, _PC_PATH_MAX);\n"
3157 "  if (path_max E<lt>= 0)\n"
3158 "\t path_max = 4096;\n"
3159 "#endif\n"
3160
3161 #. type: Plain text
3162 #: build/C/man3/realpath.3:168
3163 msgid "(But see the BUGS section.)"
3164 msgstr "(バグの章も参照のこと。)"
3165
3166 #.      2012-05-05, According to Casper Dik, the statement about
3167 #.      Solaris was not true at least as far back as 1997, and
3168 #.      may never have been true.
3169 #.  The 4.4BSD, Linux and SUSv2 versions always return an absolute
3170 #.  pathname.
3171 #.  Solaris may return a relative pathname when the
3172 #.  .I path
3173 #.  argument is relative.
3174 #.  The prototype of
3175 #.  .BR realpath ()
3176 #.  is given in \fI<unistd.h>\fP in libc4 and libc5,
3177 #.  but in \fI<stdlib.h>\fP everywhere else.
3178 #. type: SS
3179 #: build/C/man3/realpath.3:182
3180 #, no-wrap
3181 msgid "GNU extensions"
3182 msgstr "GNU による拡張"
3183
3184 #. type: Plain text
3185 #: build/C/man3/realpath.3:193
3186 msgid ""
3187 "If the call fails with either B<EACCES> or B<ENOENT> and I<resolved_path> is "
3188 "not NULL, then the prefix of I<path> that is not readable or does not exist "
3189 "is returned in I<resolved_path>."
3190 msgstr ""
3191 "呼び出しが B<EACCES> か B<ENOENT> で失敗し I<resolved_path> が NULL でない場"
3192 "合、読むことができない、もしくは存在しない I<path> のディレクトリ要素 "
3193 "(prefix) が I<resolved_path> で返される。"
3194
3195 #.  .LP
3196 #.  The libc4 and libc5 implementation contained a buffer overflow
3197 #.  (fixed in libc-5.4.13).
3198 #.  Thus, set-user-ID programs like
3199 #.  .BR mount (8)
3200 #.  needed a private version.
3201 #. type: Plain text
3202 #: build/C/man3/realpath.3:224
3203 msgid ""
3204 "The POSIX.1-2001 standard version of this function is broken by design, "
3205 "since it is impossible to determine a suitable size for the output buffer, "
3206 "I<resolved_path>.  According to POSIX.1-2001 a buffer of size B<PATH_MAX> "
3207 "suffices, but B<PATH_MAX> need not be a defined constant, and may have to be "
3208 "obtained using B<pathconf>(3).  And asking B<pathconf>(3)  does not really "
3209 "help, since, on the one hand POSIX warns that the result of B<pathconf>(3)  "
3210 "may be huge and unsuitable for mallocing memory, and on the other hand "
3211 "B<pathconf>(3)  may return -1 to signify that B<PATH_MAX> is not bounded.  "
3212 "The I<resolved_path\\ ==\\ NULL> feature, not standardized in POSIX.1-2001, "
3213 "but standardized in POSIX.1-2008, allows this design problem to be avoided."
3214 msgstr ""
3215 "この関数の POSIX.1-2001 版は、設計段階から問題がある。 出力バッファー "
3216 "I<resolved_path> の適切なサイズを決定することができないからである。 "
3217 "POSIX.1-2001 ではバッファーサイズとして B<PATH_MAX> は十分だとされているが、 "
3218 "B<PATH_MAX> は定義済の定数である必要はなく、 B<pathconf>(3)  を使って得られる"
3219 "値であってもよいことになっている。 B<pathconf>(3)  からバッファーサイズを取得"
3220 "したとしても必ずしも十分ではない。 なぜなら、POSIX で警告されているように、 "
3221 "B<pathconf>(3)  の返り値が大き過ぎて適切にメモリーを確保することができない か"
3222 "もしれない一方で、 B<pathconf>(3)  は B<PATH_MAX> に制限がないことを示す -1 "
3223 "を返すかもしれないからである。 I<resolved_path\\ ==\\ NULL> の機能を使うと、"
3224 "この設計上の問題を回避することができる。 この機能は POSIX.1-2001 では標準化さ"
3225 "れていないが、 POSIX.1-2008 では標準化されている。"
3226
3227 #. type: Plain text
3228 #: build/C/man3/realpath.3:231
3229 msgid ""
3230 "B<realpath>(1), B<readlink>(2), B<canonicalize_file_name>(3), B<getcwd>(3), "
3231 "B<pathconf>(3), B<sysconf>(3)"
3232 msgstr ""
3233 "B<realpath>(1), B<readlink>(2), B<canonicalize_file_name>(3), B<getcwd>(3), "
3234 "B<pathconf>(3), B<sysconf>(3)"
3235
3236 #. type: TH
3237 #: build/C/man3/setjmp.3:27
3238 #, no-wrap
3239 msgid "SETJMP"
3240 msgstr "SETJMP"
3241
3242 #. type: TH
3243 #: build/C/man3/setjmp.3:27
3244 #, no-wrap
3245 msgid "2014-01-07"
3246 msgstr "2014-01-07"
3247
3248 #. type: Plain text
3249 #: build/C/man3/setjmp.3:30
3250 msgid "setjmp, sigsetjmp - save stack context for nonlocal goto"
3251 msgstr ""
3252 "setjmp, sigsetjmp - 非局所的なジャンプのために、スタックコンテキスト (stack "
3253 "context) を保存する"
3254
3255 #. type: Plain text
3256 #: build/C/man3/setjmp.3:32
3257 msgid "B<#include E<lt>setjmp.hE<gt>>"
3258 msgstr "B<#include E<lt>setjmp.hE<gt>>"
3259
3260 #. type: Plain text
3261 #: build/C/man3/setjmp.3:35
3262 #, no-wrap
3263 msgid "B<int setjmp(jmp_buf >I<env>B<);>\n"
3264 msgstr "B<int setjmp(jmp_buf >I<env>B<);>\n"
3265
3266 #. type: Plain text
3267 #: build/C/man3/setjmp.3:37
3268 #, no-wrap
3269 msgid "B<int sigsetjmp(sigjmp_buf >I<env>B<, int >I<savesigs>B<);>\n"
3270 msgstr "B<int sigsetjmp(sigjmp_buf >I<env>B<, int >I<savesigs>B<);>\n"
3271
3272 #. type: Plain text
3273 #: build/C/man3/setjmp.3:46
3274 msgid "B<setjmp>(): see NOTES."
3275 msgstr "B<setjmp>(): 「注意」参照。"
3276
3277 #. type: Plain text
3278 #: build/C/man3/setjmp.3:49
3279 msgid ""
3280 "B<sigsetjmp>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
3281 "_POSIX_C_SOURCE"
3282 msgstr ""
3283 "B<sigsetjmp>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
3284 "_POSIX_C_SOURCE"
3285
3286 #. type: Plain text
3287 #: build/C/man3/setjmp.3:65
3288 msgid ""
3289 "B<setjmp>()  and B<longjmp>(3)  are useful for dealing with errors and "
3290 "interrupts encountered in a low-level subroutine of a program.  B<setjmp>()  "
3291 "saves the stack context/environment in I<env> for later use by "
3292 "B<longjmp>(3).  The stack context will be invalidated if the function which "
3293 "called B<setjmp>()  returns."
3294 msgstr ""
3295 "B<setjmp>()  と B<longjmp>(3)  は、プログラムの低レベルなサブルーチン におい"
3296 "て、エラーや割り込みが発生した時の処理に便利である。 B<setjmp>()  は、 "
3297 "B<longjmp>(3)  によって使われる I<env> に スタックコンテキスト/スタック環境を"
3298 "保存する。 B<setjmp>()  を呼び出した 関数が返るときに、そのスタックコンテキス"
3299 "トは無効になる。"
3300
3301 #. type: Plain text
3302 #: build/C/man3/setjmp.3:78
3303 msgid ""
3304 "B<sigsetjmp>()  is similar to B<setjmp>().  If, and only if, I<savesigs> is "
3305 "nonzero, the process's current signal mask is saved in I<env> and will be "
3306 "restored if a B<siglongjmp>(3)  is later performed with this I<env>."
3307 msgstr ""
3308 "B<sigsetjmp>()  も B<setjmp>()  と同様である。 I<savesigs> が 0 以外の場合、 "
3309 "このプロセスの現在のシグナルマスクも I<env> に保存され、 このシグナルは後で "
3310 "B<siglongjmp>(3)  がこの I<env> で実行された際に復元される。"
3311
3312 #. type: Plain text
3313 #: build/C/man3/setjmp.3:88
3314 msgid ""
3315 "B<setjmp>()  and B<sigsetjmp>()  return 0 if returning directly, and nonzero "
3316 "when returning from B<longjmp>(3)  or B<siglongjmp>(3)  using the saved "
3317 "context."
3318 msgstr ""
3319 "直接返ってくるときは、 B<setjmp>()  と B<sigsetjmp>()  は 0 を返し、保存した"
3320 "コンテキストを使って B<longjmp>(3)  や B<siglongjmp>(3)  から返ってくるとき"
3321 "は 0 以外を返す。"
3322
3323 #. type: Plain text
3324 #: build/C/man3/setjmp.3:93
3325 msgid ""
3326 "C89, C99, and POSIX.1-2001 specify B<setjmp>().  POSIX.1-2001 specifies "
3327 "B<sigsetjmp>()."
3328 msgstr ""
3329 "B<setjmp>()  は C89, C99, POSIX.1-2001 で規定されている。 B<sigsetjmp>()  は "
3330 "POSIX.1-2001 で規定されている。"
3331
3332 #. type: Plain text
3333 #: build/C/man3/setjmp.3:129
3334 msgid ""
3335 "POSIX does not specify whether B<setjmp>()  will save the signal mask (to be "
3336 "later restored during B<longjmp>(3)).  In System V it will not.  In 4.3BSD "
3337 "it will, and there is a function B<_setjmp> that will not.  On Linux with "
3338 "glibc versions before 2.19, B<setjmp>()  follows the System V behavior by "
3339 "default, but the BSD behavior is provided if the B<_BSD_SOURCE> feature test "
3340 "macro is defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, "
3341 "B<_XOPEN_SOURCE>, B<_XOPEN_SOURCE_EXTENDED>, B<_GNU_SOURCE>, or "
3342 "B<_SVID_SOURCE> is defined.  Since glibc 2.19, I<E<lt>setjmp.hE<gt>> exposes "
3343 "only the System V version of B<setjmp>().  Programs that need the BSD "
3344 "semantics should replace calls to B<setjmp>()  with calls to B<sigsetjmp>()  "
3345 "with a nonzero I<savesigs> argument."
3346 msgstr ""
3347 "POSIX は、 (B<longjmp>() 中で後で復元できるように) B<setjmp>() がシグナルマス"
3348 "クを保存すべきかどうかを規定していない。 System V では保存しない。 4.3BSD で"
3349 "は保存する; 4.3BSD にはシグナルコンテキストを保存しない関数 B<_setjmp> もあ"
3350 "る。 バージョン 2.19 より前の glibc を使う Linux では、 B<setjmp>() はデフォ"
3351 "ルトでは System V の振る舞いに従うが、 B<_BSD_SOURCE> 機能検査マクロが定義さ"
3352 "れ、 B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
3353 "B<_XOPEN_SOURCE_EXTENDED>, B<_GNU_SOURCE>, B<_SVID_SOURCE> のいずれも定義され"
3354 "ていない時は BSD の振る舞いとなる。 glibc 2.19 以降では、 I<E<lt>setjmp."
3355 "hE<gt>> は System V 版の B<setjmp>() のみを公開するようになっている。 BSD の"
3356 "動作を必要とするプログラムでは、 B<setjmp>() の呼び出しを、 I<savesigs> 引き"
3357 "数に 0 以外の値を渡す B<sigsetjmp>() に置き換えるべきである。"
3358
3359 #. type: Plain text
3360 #: build/C/man3/setjmp.3:134
3361 msgid ""
3362 "If you want to portably save and restore signal masks, use B<sigsetjmp>()  "
3363 "and B<siglongjmp>(3)."
3364 msgstr ""
3365 "移植性のある形でシグナルマスクを保存および復元したいのなら、 B<sigsetjmp>()  "
3366 "と B<siglongjmp>(3)  を使うこと。"
3367
3368 #. type: Plain text
3369 #: build/C/man3/setjmp.3:141
3370 msgid ""
3371 "B<setjmp>()  and B<sigsetjmp>()  make programs hard to understand and "
3372 "maintain.  If possible, an alternative should be used."
3373 msgstr ""
3374 "B<setjmp>()  や B<sigsetjmp>()  を使うと、プログラムは理解しづらく、保守しに"
3375 "くいものになる。 別の方法が可能なら、それを使うべきである。"
3376
3377 #. type: Plain text
3378 #: build/C/man3/setjmp.3:144
3379 msgid "B<longjmp>(3), B<siglongjmp>(3)"
3380 msgstr "B<longjmp>(3), B<siglongjmp>(3)"
3381
3382 #. type: TH
3383 #: build/C/man3/xcrypt.3:13
3384 #, no-wrap
3385 msgid "XCRYPT"
3386 msgstr "XCRYPT"
3387
3388 #. type: Plain text
3389 #: build/C/man3/xcrypt.3:16
3390 msgid "xencrypt, xdecrypt, passwd2des - RFS password encryption"
3391 msgstr "xencrypt, xdecrypt, passwd2des - RFS パスワード暗号化"
3392
3393 #. type: Plain text
3394 #: build/C/man3/xcrypt.3:18
3395 msgid "B<#include E<lt>rpc/des_crypt.hE<gt>>"
3396 msgstr "B<#include E<lt>rpc/des_crypt.hE<gt>>"
3397
3398 #. type: Plain text
3399 #: build/C/man3/xcrypt.3:20
3400 msgid "B<void passwd2des(char >I<*passwd>B<, char *>I<key>B<);>"
3401 msgstr "B<void passwd2des(char >I<*passwd>B<, char *>I<key>B<);>"
3402
3403 #. type: Plain text
3404 #: build/C/man3/xcrypt.3:22
3405 msgid "B<int xencrypt(char *>I<secret>B<, char *>I<passwd>B<);>"
3406 msgstr "B<int xencrypt(char *>I<secret>B<, char *>I<passwd>B<);>"
3407
3408 #. type: Plain text
3409 #: build/C/man3/xcrypt.3:24
3410 msgid "B<int xdecrypt(char *>I<secret>B<, char *>I<passwd>B<);>"
3411 msgstr "B<int xdecrypt(char *>I<secret>B<, char *>I<passwd>B<);>"
3412
3413 #. type: Plain text
3414 #: build/C/man3/xcrypt.3:40
3415 msgid ""
3416 "The function B<passwd2des>()  takes a character string I<passwd> of "
3417 "arbitrary length and fills a character array I<key> of length 8.  The array "
3418 "I<key> is suitable for use as DES key.  It has odd parity set in bit 0 of "
3419 "each byte.  Both other functions described here use this function to turn "
3420 "their argument I<passwd> into a DES key."
3421 msgstr ""
3422 "関数 B<passwd2des>()  は任意の長さの文字列 I<passwd> をとり、長さ 8 の文字配"
3423 "列 I<key> を埋める。 配列 I<key> は DES キーとして使うのに適している。 この配"
3424 "列の各バイトのビット 0 は奇数パリティである。 ここで説明されている残りの 2 つ"
3425 "の関数は、 この関数を使い、引き数 I<passwd> を DES キーに変換する。"
3426
3427 #.  (over the alphabet 0123456789abcdefABCDEF),
3428 #.  (over the alphabet 0123456789abcdef)
3429 #. type: Plain text
3430 #: build/C/man3/xcrypt.3:57
3431 msgid ""
3432 "The B<xencrypt>()  function takes the ASCII character string I<secret> given "
3433 "in hex, which must have a length that is a multiple of 16, encrypts it using "
3434 "the DES key derived from I<passwd> by B<passwd2des>(), and outputs the "
3435 "result again in I<secret> as a hex string of the same length."
3436 msgstr ""
3437 "B<xencrypt>()  関数は 16 進数で与えられた ASCII 文字列 I<secret> をとる。 こ"
3438 "の長さは 16 の倍数でなければならない。 そして B<passwd2des>()  によって "
3439 "I<passwd> から導き出された DES キーを使い、 I<secret> を暗号化する。 その結果"
3440 "は 16 進数文字列として I<secret> に再び同じ長さで出力される。"
3441
3442 #. type: Plain text
3443 #: build/C/man3/xcrypt.3:61
3444 msgid "The B<xdecrypt>()  function performs the converse operation."
3445 msgstr "B<xdecrypt>()  関数は逆の操作を行う。"
3446
3447 #. type: Plain text
3448 #: build/C/man3/xcrypt.3:67
3449 msgid ""
3450 "The functions B<xencrypt>()  and B<xdecrypt>()  return 1 on success and 0 on "
3451 "error."
3452 msgstr ""
3453 "関数 B<xencrypt>()  と B<xdecrypt>()  は、成功した場合に 1 を返し、失敗した場"
3454 "合に 0 を返す。"
3455
3456 #. type: Plain text
3457 #: build/C/man3/xcrypt.3:69
3458 msgid "These functions are available in glibc since version 2.1."
3459 msgstr "これらの関数はバージョン 2.1 以降の glibc で提供されている。"
3460
3461 #. type: Plain text
3462 #: build/C/man3/xcrypt.3:71
3463 msgid "The prototypes are missing from the abovementioned include file."
3464 msgstr "上記のインクルードファイルにプロトタイプがない。"
3465
3466 #. type: Plain text
3467 #: build/C/man3/xcrypt.3:73
3468 msgid "B<cbc_crypt>(3)"
3469 msgstr "B<cbc_crypt>(3)"