OSDN Git Service

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