OSDN Git Service

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