OSDN Git Service

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