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.
8 "Project-Id-Version: PACKAGE VERSION\n"
9 "POT-Creation-Date: 2013-07-15 16:08+0900\n"
10 "PO-Revision-Date: 2013-07-18 00:00+0900\n"
11 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Language-Team: LANGUAGE <LL@li.org>\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
19 #: build/C/man3/__setfpucw.3:8
25 #: build/C/man3/__setfpucw.3:8
31 #: build/C/man3/__setfpucw.3:8 build/C/man3/queue.3:39
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
45 msgid "Linux Programmer's Manual"
46 msgstr "Linux Programmer's Manual"
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
61 #: build/C/man3/__setfpucw.3:11
62 msgid "__setfpucw - set FPU control word on i386 architecture (obsolete)"
64 "__setfpucw - i386 アーキテクチャにおける FPU のコントロールワードの設定 "
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
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>>"
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<);>"
90 #: build/C/man3/__setfpucw.3:15 build/C/man3/addseverity.3:27
91 #: build/C/man3/argz_add.3:51 build/C/man3/backtrace.3:50
92 #: build/C/man3/basename.3:38 build/C/man3/envz_add.3:36
93 #: build/C/man3/ftok.3:39 build/C/man3/longjmp.3:46 build/C/man3/offsetof.3:37
94 #: build/C/man3/program_invocation_name.3:36 build/C/man3/queue.3:86
95 #: build/C/man3/realpath.3:51 build/C/man3/setjmp.3:49
96 #: build/C/man3/xcrypt.3:24
102 #: build/C/man3/__setfpucw.3:22
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."
108 "B<__setfpucw>() は、i386アーキテクチャにおいて I<control_word> を FPU "
109 "(floating-point unit) のレジスタに転送する。 これは浮動小数点演算の精度、丸め"
110 "方、 および浮動小数点例外を制御するのに使われる。"
113 #: build/C/man3/__setfpucw.3:22 build/C/man3/addseverity.3:60
114 #: build/C/man3/argz_add.3:198 build/C/man3/backtrace.3:143
115 #: build/C/man3/basename.3:129 build/C/man3/envz_add.3:118
116 #: build/C/man3/ftok.3:70 build/C/man3/longjmp.3:90 build/C/man3/offsetof.3:63
117 #: build/C/man3/program_invocation_name.3:56 build/C/man3/queue.3:485
118 #: build/C/man3/realpath.3:137 build/C/man3/setjmp.3:88
120 msgid "CONFORMING TO"
124 #: build/C/man3/__setfpucw.3:24
125 msgid "This function was a nonstandard GNU extension."
126 msgstr "この関数は非標準で GNU 拡張である。"
129 #: build/C/man3/__setfpucw.3:24 build/C/man3/addseverity.3:67
130 #: build/C/man3/backtrace.3:145 build/C/man3/basename.3:131
131 #: build/C/man3/ftok.3:72 build/C/man3/longjmp.3:95
132 #: build/C/man3/program_invocation_name.3:59 build/C/man3/realpath.3:144
133 #: build/C/man3/setjmp.3:93
139 #: build/C/man3/__setfpucw.3:43
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)."
149 "glibc 2.1 以降では、この関数は存在しない。 新たな関数群が C99 から導入され"
150 "た。これらのプロトタイプは I<E<lt>fenv.hE<gt>> に置かれている。 FPU の丸め"
151 "モードの制御には B<fegetround>(3), B<fesetround>(3) などが、浮動小数点関連の"
152 "環境には B<fegetenv>(3), B<feholdexcept>(3), B<fesetenv>(3), B<feupdateenv>"
153 "(3) などが、 FPU 例外処理には B<feclearexcept>(3), B<fegetexceptflag>(3), "
154 "B<feraiseexcept>(3), B<fesetexceptflag>(3), B<fetestexcept>(3) などが導入され"
158 #: build/C/man3/__setfpucw.3:51
160 "If direct access to the FPU control word is still needed, the B<_FPU_GETCW> "
161 "and B<_FPU_SETCW> macros from I<E<lt>fpu_control.hE<gt>> can be used."
163 "FPU のコントロールワードへどうしても直接アクセスする必要がある場合には、 "
164 "I<E<lt>fpu_control.hE<gt>> の B<_FPU_GETCW> マクロと B<_FPU_SETCW> マクロを用"
168 #: build/C/man3/__setfpucw.3:51 build/C/man3/backtrace.3:167
169 #: build/C/man3/basename.3:164 build/C/man3/envz_add.3:121
170 #: build/C/man3/offsetof.3:65
176 #: build/C/man3/__setfpucw.3:53
177 msgid "B<__setfpucw(0x1372)>"
178 msgstr "B<__setfpucw(0x1372)>"
181 #: build/C/man3/__setfpucw.3:55
182 msgid "Set FPU control word on the i386 architecture to"
183 msgstr "は、i386アーキテクチャにおける FPU のコントロールワードを、"
186 #: build/C/man3/__setfpucw.3:57
188 msgid " - extended precision\n"
192 #: build/C/man3/__setfpucw.3:59
194 msgid " - rounding to nearest\n"
195 msgstr " - 最も近い整数へ丸める、中間の場合は偶数を選択する。\n"
198 #: build/C/man3/__setfpucw.3:61
200 msgid " - exceptions on overflow, zero divide and NaN\n"
201 msgstr " - 桁溢れ、0で除算、及び無効値(NaN)ときに例外を発生に設定する。\n"
204 #: build/C/man3/__setfpucw.3:61 build/C/man3/addseverity.3:70
205 #: build/C/man3/argz_add.3:204 build/C/man3/backtrace.3:251
206 #: build/C/man3/basename.3:177 build/C/man3/envz_add.3:143
207 #: build/C/man3/ftok.3:101 build/C/man3/longjmp.3:132
208 #: build/C/man3/program_invocation_name.3:63 build/C/man3/realpath.3:226
209 #: build/C/man3/setjmp.3:126 build/C/man3/xcrypt.3:72
215 #: build/C/man3/__setfpucw.3:63
216 msgid "B<feclearexcept>(3)"
217 msgstr "B<feclearexcept>(3)"
220 #: build/C/man3/__setfpucw.3:65
221 msgid "I<E<lt>fpu_control.hE<gt>>"
222 msgstr "I<E<lt>fpu_control.hE<gt>>"
225 #: build/C/man3/__setfpucw.3:65 build/C/man3/addseverity.3:72
226 #: build/C/man3/argz_add.3:206 build/C/man3/backtrace.3:256
227 #: build/C/man3/basename.3:180 build/C/man3/envz_add.3:145
228 #: build/C/man3/ftok.3:107 build/C/man3/longjmp.3:135
229 #: build/C/man3/offsetof.3:105 build/C/man3/program_invocation_name.3:65
230 #: build/C/man3/queue.3:491 build/C/man3/realpath.3:232
231 #: build/C/man3/setjmp.3:129 build/C/man3/xcrypt.3:74
237 #: build/C/man3/__setfpucw.3:72 build/C/man3/addseverity.3:79
238 #: build/C/man3/argz_add.3:213 build/C/man3/backtrace.3:263
239 #: build/C/man3/basename.3:187 build/C/man3/envz_add.3:152
240 #: build/C/man3/ftok.3:114 build/C/man3/longjmp.3:142
241 #: build/C/man3/offsetof.3:112 build/C/man3/program_invocation_name.3:72
242 #: build/C/man3/queue.3:498 build/C/man3/realpath.3:239
243 #: build/C/man3/setjmp.3:136 build/C/man3/xcrypt.3:81
245 "This page is part of release 3.52 of the Linux I<man-pages> project. A "
246 "description of the project, and information about reporting bugs, can be "
247 "found at \\%http://www.kernel.org/doc/man-pages/."
249 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.52 の一部\n"
250 "である。プロジェクトの説明とバグ報告に関する情報は\n"
251 "http://www.kernel.org/doc/man-pages/ に書かれている。"
254 #: build/C/man3/addseverity.3:9
260 #: build/C/man3/addseverity.3:9 build/C/man3/backtrace.3:27
266 #: build/C/man3/addseverity.3:9 build/C/man3/backtrace.3:27
267 #: build/C/man3/basename.3:27 build/C/man3/ftok.3:29
268 #: build/C/man3/offsetof.3:28 build/C/man3/program_invocation_name.3:24
274 #: build/C/man3/addseverity.3:12
275 msgid "addseverity - introduce new severity classes"
276 msgstr "addseverity - 新しい重大度 (severity class) を導入する"
279 #: build/C/man3/addseverity.3:16
281 msgid "B<#include E<lt>fmtmsg.hE<gt>>\n"
282 msgstr "B<#include E<lt>fmtmsg.hE<gt>>\n"
285 #: build/C/man3/addseverity.3:18
287 msgid "B<int addseverity(int >I<severity>B<, const char *>I<s>B<);>\n"
288 msgstr "B<int addseverity(int >I<severity>B<, const char *>I<s>B<);>\n"
291 #: build/C/man3/addseverity.3:23 build/C/man3/longjmp.3:42
292 #: build/C/man3/realpath.3:42 build/C/man3/setjmp.3:42
294 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
295 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7) 参照):"
298 #: build/C/man3/addseverity.3:27
299 msgid "B<addseverity>(): _SVID_SOURCE"
300 msgstr "B<addseverity>(): _SVID_SOURCE"
303 #: build/C/man3/addseverity.3:49
305 "This function allows the introduction of new severity classes which can be "
306 "addressed by the I<severity> argument of the B<fmtmsg>(3) function. By "
307 "default that latter function only knows how to print messages for severity "
308 "0-4 (with strings (none), HALT, ERROR, WARNING, INFO). This call attaches "
309 "the given string I<s> to the given value I<severity>. If I<s> is NULL, the "
310 "severity class with the numeric value I<severity> is removed. It is not "
311 "possible to overwrite or remove one of the default severity classes. The "
312 "severity value must be nonnegative."
314 "この関数により、新しい重大度を導入できる。 この重大度は、 B<fmtmsg>(3) 関数"
315 "の I<severity> 引き数に入れることができる。 デフォルトでは、後者の B<fmtmsg>"
316 "(3) 関数は重大度 0-4 (文字列では (none), HALT, ERROR, WARNING, INFO) の メッ"
317 "セージを表示する方法しか知らない。 この B<addseverity>(3) の呼び出しにより、"
318 "指定された文字列 I<s> に指定された値 I<severity> を付加する。 I<s> が NULL の"
319 "場合、数値 I<severity> の重大度が削除される。 デフォルトの重大度のどれかを上"
320 "書きしたり削除したりすることはできない。 重大度の値は負でない数としなければな"
324 #: build/C/man3/addseverity.3:49 build/C/man3/argz_add.3:192
325 #: build/C/man3/backtrace.3:118 build/C/man3/basename.3:121
326 #: build/C/man3/envz_add.3:112 build/C/man3/ftok.3:61
327 #: build/C/man3/longjmp.3:88 build/C/man3/offsetof.3:56
328 #: build/C/man3/realpath.3:91 build/C/man3/setjmp.3:78
329 #: build/C/man3/xcrypt.3:61
335 #: build/C/man3/addseverity.3:57
337 "Upon success, the value B<MM_OK> is returned. Upon error, the return value "
338 "is B<MM_NOTOK>. Possible errors include: out of memory, attempt to remove a "
339 "nonexistent or default severity class."
341 "成功した場合、値 B<MM_OK> が返される。 エラーの場合、返り値は B<MM_NOTOK> で"
342 "ある。 起こる可能性があるエラーには、以下のものが含まれる: メモリを使い果たし"
343 "た。 存在しない重大度またはデフォルトの重大度を削除しようとした。"
346 #: build/C/man3/addseverity.3:57 build/C/man3/backtrace.3:137
347 #: build/C/man3/realpath.3:135 build/C/man3/xcrypt.3:67
353 #: build/C/man3/addseverity.3:60
354 msgid "B<addseverity>() is provided in glibc since version 2.1."
355 msgstr "B<addseverity>() はバージョン 2.1 以降の glibc で提供されている。"
358 #: build/C/man3/addseverity.3:67
360 "This function is not specified in the X/Open Portability Guide although the "
361 "B<fmtmsg>(3) function is. It is available on System V systems."
363 "B<fmtmsg>(3) 関数は X/Open Portability Guide に指定されているが、 この関数は"
364 "指定されていない。 この関数は System V システムで利用可能である。"
367 #: build/C/man3/addseverity.3:70
369 "New severity classes can also be added by setting the environment variable "
372 "新しい重大度は、環境変数 B<SEV_LEVEL> を設定することで追加することもできる。"
375 #: build/C/man3/addseverity.3:72
377 msgstr "B<fmtmsg>(3)"
380 #: build/C/man3/argz_add.3:10
386 #: build/C/man3/argz_add.3:10 build/C/man3/envz_add.3:10
392 #: build/C/man3/argz_add.3:15
394 "argz_add, argz_add_sep, argz_append, argz_count, argz_create, "
395 "argz_create_sep, argz_delete, argz_extract, argz_insert, argz_next, "
396 "argz_replace, argz_stringify - functions to handle an argz list"
398 "argz_add, argz_add_sep, argz_append, argz_count, argz_create, "
399 "argz_create_sep, argz_delete, argz_extract, argz_insert, argz_next, "
400 "argz_replace, argz_stringify - argz リストを操作するための関数群"
403 #: build/C/man3/argz_add.3:18
405 msgid "B<#include E<lt>argz.hE<gt>>\n"
406 msgstr "B<#include E<lt>argz.hE<gt>>\n"
409 #: build/C/man3/argz_add.3:21
411 msgid "B<error_t argz_add(char **>I<argz>B<, size_t *>I<argz_len>B<, const char *>I<str>B<);>\n"
412 msgstr "B<error_t argz_add(char **>I<argz>B<, size_t *>I<argz_len>B<, const char *>I<str>B<);>\n"
415 #: build/C/man3/argz_add.3:24
418 "B<error_t argz_add_sep(char **>I<argz>B<, size_t *>I<argz_len>B<,>\n"
419 "B< const char *>I<str>B<, int >I<delim>B<);>\n"
421 "B<error_t argz_add_sep(char **>I<argz>B<, size_t *>I<argz_len>B<,>\n"
422 "B< const char *>I<str>B<, int >I<delim>B<);>\n"
425 #: build/C/man3/argz_add.3:27
428 "B<error_t argz_append(char **>I<argz>B<, size_t *>I<argz_len>B<,>\n"
429 "B< const char *>I<buf>B<, size_t >I<buf_len>B<);>\n"
431 "B<error_t argz_append(char **>I<argz>B<, size_t *>I<argz_len>B<,>\n"
432 "B< const char *>I<buf>B<, size_t >I<buf_len>B<);>\n"
435 #: build/C/man3/argz_add.3:29
437 msgid "B<size_t argz_count(const char *>I<argz>B<, size_t >I<argz_len>B<);>\n"
438 msgstr "B<size_t argz_count(const char *>I<argz>B<, size_t >I<argz_len>B<);>\n"
441 #: build/C/man3/argz_add.3:32
444 "B<error_t argz_create(char * const >I<argv>B<[], char **>I<argz>B<,>\n"
445 "B< size_t *>I<argz_len>B<);>\n"
447 "B<error_t argz_create(char * const >I<argv>B<[], char **>I<argz>B<,>\n"
448 "B< size_t *>I<argz_len>B<);>\n"
451 #: build/C/man3/argz_add.3:35
454 "B<error_t argz_create_sep(const char *>I<str>B<, int >I<sep>B<, char **>I<argz>B<,>\n"
455 "B< size_t *>I<argz_len>B<);>\n"
457 "B<error_t argz_create_sep(const char *>I<str>B<, int >I<sep>B<, char **>I<argz>B<,>\n"
458 "B< size_t *>I<argz_len>B<);>\n"
461 #: build/C/man3/argz_add.3:37
463 msgid "B<error_t argz_delete(char **>I<argz>B<, size_t *>I<argz_len>B<, char *>I<entry>B<);>\n"
464 msgstr "B<error_t argz_delete(char **>I<argz>B<, size_t *>I<argz_len>B<, char *>I<entry>B<);>\n"
467 #: build/C/man3/argz_add.3:39
469 msgid "B<void argz_extract(char *>I<argz>B<, size_t >I<argz_len>B<, char **>I<argv>B<);>\n"
470 msgstr "B<void argz_extract(char *>I<argz>B<, size_t >I<argz_len>B<, char **>I<argv>B<);>\n"
473 #: build/C/man3/argz_add.3:42
476 "B<error_t argz_insert(char **>I<argz>B<, size_t *>I<argz_len>B<, char *>I<before>B<,>\n"
477 "B< const char *>I<entry>B<);>\n"
479 "B<error_t argz_insert(char **>I<argz>B<, size_t *>I<argz_len>B<, char *>I<before>B<,>\n"
480 "B< const char *>I<entry>B<);>\n"
483 #: build/C/man3/argz_add.3:44
485 msgid "B<char *argz_next(char *>I<argz>B<, size_t >I<argz_len>B<, const char *>I<entry>B<);>\n"
486 msgstr "B<char *argz_next(char *>I<argz>B<, size_t >I<argz_len>B<, const char *>I<entry>B<);>\n"
489 #: build/C/man3/argz_add.3:48
492 "B<error_t argz_replace(char **>I<argz>B<, size_t *>I<argz_len>B<, const char *>I<str>B<,>\n"
493 "B< const char *>I<with>B<, unsigned int *>I<replace_count>B<);>\n"
495 "B<error_t argz_replace(char **>I<argz>B<, size_t *>I<argz_len>B<, const char *>I<str>B<,>\n"
496 "B< const char *>I<with>B<, unsigned int *>I<replace_count>B<);>\n"
499 #: build/C/man3/argz_add.3:50
501 msgid "B<void argz_stringify(char *>I<argz>B<, size_t >I<len>B<, int >I<sep>B<);>\n"
502 msgstr "B<void argz_stringify(char *>I<argz>B<, size_t >I<len>B<, int >I<sep>B<);>\n"
505 #: build/C/man3/argz_add.3:53 build/C/man3/envz_add.3:38
506 msgid "These functions are glibc-specific."
507 msgstr "これらの関数は glibc 固有である。"
510 #: build/C/man3/argz_add.3:58
512 "An argz vector is a pointer to a character buffer together with a length. "
513 "The intended interpretation of the character buffer is an array of strings, "
514 "where the strings are separated by null bytes (\\(aq\\e0\\(aq). If the "
515 "length is nonzero, the last byte of the buffer must be a null byte."
516 msgstr "argz vector は長さ情報付きの文字バッファへのポインタである。 文字バッファでは、複数の文字列が NULL バイト (\\(aq\\e0\\(aq) で区切られており、 文字列の配列として解釈されるようになっている。 長さが 0 でない場合、バッファの最後のバイトは NULL バイトでなければならない。"
519 #: build/C/man3/argz_add.3:67
521 "These functions are for handling argz vectors. The pair (NULL,0) is an argz "
522 "vector, and, conversely, argz vectors of length 0 must have NULL pointer. "
523 "Allocation of nonempty argz vectors is done using B<malloc>(3), so that "
524 "B<free>(3) can be used to dispose of them again."
526 "これらの関数は argz vector を操作するためのものである。 ペア (NULL,0) は "
527 "argz vector であり、逆に言えば 長さ 0 の argz vectorは NULL ポインタを持たな"
528 "ければならない。 空でない argz vector の割り当ては B<malloc>(3) を使って行わ"
529 "れる。したがって、argz vector を解放するのに B<free>(3) を使うことができる。"
532 #: build/C/man3/argz_add.3:77
534 "B<argz_add>() adds the string I<str> at the end of the array I<*argz>, and "
535 "updates I<*argz> and I<*argz_len>."
537 "B<argz_add>() は、文字列 I<str> を配列 I<*argz> の末尾に追加し、 I<*argz> "
538 "と I<*argz_len> を更新する。"
541 #: build/C/man3/argz_add.3:85
543 "B<argz_add_sep>() is similar, but splits the string I<str> into substrings "
544 "separated by the delimiter I<delim>. For example, one might use this on a "
545 "UNIX search path with delimiter \\(aq:\\(aq."
546 msgstr "B<argz_add_sep>() も同様の動作をするが、区切り文字 I<delim> にしたがって文字列 I<str> を複数の文字列に分割する点が異なる。 例えば、区切り文字 \\(aq:\\(aq を指定して、UNIX サーチ・パスに対して この関数を使うことができるだろう。"
549 #: build/C/man3/argz_add.3:99
552 #| "B<argz_append>() appends the argz vector (I<buf>,\\ I<buf_len>) after "
553 #| "(I<*argz>,\\ I<*argz_len>) and updates I<*argz> and I<*argz_len>. "
554 #| "(Thus, I<*argz_len> will be increased by I<buf_len>.)"
556 "B<argz_append>() appends the argz vector (I<buf>,\\ buf_lenI<)> after "
557 "(I<*argz>,\\ *argz_lenI<)> and updates I<*argz> and I<*argz_len>. (Thus, "
558 "I<*argz_len> will be increased by I<buf_len>.)"
560 "B<argz_append>() は argz vector (I<buf>,\\ I<buf_len>) の後ろに (*I<argz>,"
561 "\\ I<*argz_len>) を付け加え、 I<*argz> と I<*argz_len> を更新する。 (した"
562 "がって、 I<*argz_len> は I<buf_len> だけ増加する。)"
565 #: build/C/man3/argz_add.3:104
568 "B<argz_count>() counts the number of strings, that is, the number of null "
569 "bytes (\\(aq\\e0\\(aq), in (I<argz>,\\ argz_lenI<).>"
570 msgstr "B<argz_count>() は (I<argz>,\\ I<argz_len>) 内の文字列の数を数える。実際には NULL バイト (\\(aq\\e0\\(aq) の数を数えている。"
573 #: build/C/man3/argz_add.3:112
576 #| "B<argz_create>() converts a UNIX-style argument vector I<argv>, "
577 #| "terminated by I<(char *) 0>, into an argz vector (I<*argz>,\\ "
580 "B<argz_create>() converts a UNIX-style argument vector I<argv>, terminated "
581 "by I<(char\\ *)\\ 0>, into an argz vector (I<*argz>,\\ *argz_lenI<).>"
583 "B<argz_create>() は、UNIX 流の引き数ベクトルである (I<(char *) 0> で終端され"
584 "る) I<argv> を、argz vector (I<*argz>,\\ I<*argz_len>) に変換する。"
587 #: build/C/man3/argz_add.3:120
590 #| "B<argz_create_sep>() converts the null-terminated string I<str> into an "
591 #| "argz vector (I<*argz>,\\ I<*argz_len>) by breaking it up at every "
592 #| "occurrence of the separator I<sep>."
594 "B<argz_create_sep>() converts the null-terminated string I<str> into an "
595 "argz vector (I<*argz>,\\ *argz_lenI<)> by breaking it up at every occurrence "
596 "of the separator I<sep>."
598 "B<argz_create_sep>() は、NULL 終端された文字列 I<str> を区切り文字 I<sep> が"
599 "現れる毎に分割しながら、argz vector (*I<argz>,\\ I<*argz_len>) に変換する。"
602 #: build/C/man3/argz_add.3:130
605 #| "B<argz_delete>() removes the substring pointed to by I<entry> from the "
606 #| "argz vector (I<*argz>,\\ I<*argz_len>) and updates I<*argz> and "
609 "B<argz_delete>() removes the substring pointed to by I<entry> from the argz "
610 "vector (I<*argz>,\\ *argz_lenI<)> and updates I<*argz> and I<*argz_len>."
612 "B<argz_delete>() は、 I<entry> で指し示された文字列を argz vector (I<*argz>,"
613 "\\ I<*argz_len>) から削除し、 I<*argz> と I<*argz_len> を更新する。"
616 #: build/C/man3/argz_add.3:145
619 #| "B<argz_extract>() is the opposite of B<argz_create>(). It takes the "
620 #| "argz vector (I<argz>,\\ I<argz_len>) and fills the array starting at "
621 #| "I<argv> with pointers to the substrings, and a final NULL, making a UNIX-"
622 #| "style argv vector. The array I<argv> must have room for I<argz_count>"
623 #| "(I<argz>,I<argz_len>) + 1 pointers."
625 "B<argz_extract>() is the opposite of B<argz_create>(). It takes the argz "
626 "vector (I<argz>,\\ argz_lenI<)> and fills the array starting at I<argv> with "
627 "pointers to the substrings, and a final NULL, making a UNIX-style argv "
628 "vector. The array I<argv> must have room for I<argz_count>(I<argz>,"
629 "I<argz_len>) + 1 pointers."
631 "B<argz_extract>() は B<argz_create>() の反対の操作を行う。argz vector "
632 "(I<argz>,\\ I<argz_len>) を調べ、 I<argv> から始まる配列をサブ文字列へのポイ"
633 "ンタで埋めていき、 一番最後に NULL を入れて、UNIX 流の argv ベクトルを作成す"
634 "る。 配列 I<argv> は I<argz_count>(I<argz>,I<argz_len>) + 1 個のポインタを収"
635 "容できる空間を持っていなければならない。"
638 #: build/C/man3/argz_add.3:164
641 #| "B<argz_insert>() is the opposite of B<argz_delete>(). It inserts the "
642 #| "argument I<entry> at position I<before> into the argz vector (I<*argz>,\\ "
643 #| "I<*argz_len>) and updates I<*argz> and I<*argz_len>. If I<before> is "
644 #| "NULL, then I<entry> will inserted at the end."
646 "B<argz_insert>() is the opposite of B<argz_delete>(). It inserts the "
647 "argument I<entry> at position I<before> into the argz vector (I<*argz>,\\ "
648 "*argz_lenI<)> and updates I<*argz> and I<*argz_len>. If I<before> is NULL, "
649 "then I<entry> will inserted at the end."
651 "B<argz_insert>() は B<argz_delete>() の反対の操作を行う。argz vector "
652 "(I<*argz>,\\ I<*argz_len>) の位置 I<before> に引き数 I<entry> を挿入し、 "
653 "I<*argz> と I<*argz_len> を更新する。 I<before> が NULL の場合、 I<entry> は"
657 #: build/C/man3/argz_add.3:173
659 "B<argz_next>() is a function to step trough the argz vector. If I<entry> "
660 "is NULL, the first entry is returned. Otherwise, the entry following is "
661 "returned. It returns NULL if there is no following entry."
663 "B<argz_next>() は argz vector を順番に調べるための関数である。 I<entry> が "
664 "NULL の場合、最初のエントリを返す。 そうでない場合、次のエントリを返す。 次の"
665 "エントリがない場合、NULL を返す。"
668 #: build/C/man3/argz_add.3:185
670 "B<argz_replace>() replaces each occurrence of I<str> with I<with>, "
671 "reallocating argz as necessary. If I<replace_count> is non-NULL, "
672 "I<*replace_count> will be incremented by the number of replacements."
674 "B<argz_replace>() は、 I<str> をすべて I<with> で置き換える (必要に応じて "
675 "argz の再割り当てを行う)。 I<replace_count> が NULL でない場合、 "
676 "I<*replace_count> を置き換えを行った数だけ増やす。"
679 #: build/C/man3/argz_add.3:192
681 "B<argz_stringify>() is the opposite of B<argz_create_sep>(). It transforms "
682 "the argz vector into a normal string by replacing all null bytes (\\(aq"
683 "\\e0\\(aq) except the last by I<sep>."
684 msgstr "B<argz_stringify>() は B<argz_create_sep>() の反対の操作を行う。 末尾の NULL バイト以外の全ての NULL バイト (\\(aq\\e0\\(aq) を I<sep> で置き換えて、 argz vector を通常の文字列に変換する。"
687 #: build/C/man3/argz_add.3:198
689 "All argz functions that do memory allocation have a return type of "
690 "I<error_t>, and return 0 for success, and B<ENOMEM> if an allocation error "
693 "メモリ割り当てを行う argz 関数群はすべて I<error_t> 型の返り値を持つ。 成功し"
694 "た場合は 0 を返し、割り当てエラーが発生した場合は B<ENOMEM> を返す。"
697 #: build/C/man3/argz_add.3:201 build/C/man3/envz_add.3:121
698 msgid "These functions are a GNU extension. Handle with care."
699 msgstr "これらの関数は GNU による拡張である。注意して使用すること。"
702 #: build/C/man3/argz_add.3:201 build/C/man3/basename.3:156
703 #: build/C/man3/realpath.3:195 build/C/man3/xcrypt.3:70
709 #: build/C/man3/argz_add.3:204
711 "Argz vectors without a terminating null byte may lead to Segmentation Faults."
713 "NULL バイトで終端されていない argz vector を使用した場合、 segmentation "
717 #: build/C/man3/argz_add.3:206
718 msgid "B<envz_add>(3)"
719 msgstr "B<envz_add>(3)"
722 #: build/C/man3/backtrace.3:27
728 #: build/C/man3/backtrace.3:31
730 "backtrace, backtrace_symbols, backtrace_symbols_fd - support for application "
733 "backtrace, backtrace_symbols, backtrace_symbols_fd - アプリケーション自身での"
737 #: build/C/man3/backtrace.3:33
738 msgid "B<#include E<lt>execinfo.hE<gt>>"
739 msgstr "B<#include E<lt>execinfo.hE<gt>>"
742 #: build/C/man3/backtrace.3:38
743 msgid "B<int backtrace(void> B<**>I<buffer>B<,> B<int> I<size>B<);>"
744 msgstr "B<int backtrace(void> B<**>I<buffer>B<,> B<int> I<size>B<);>"
747 #: build/C/man3/backtrace.3:43
749 "B<char **backtrace_symbols(void *const> B<*>I<buffer>B<,> B<int> I<size>B<);>"
751 "B<char **backtrace_symbols(void *const> B<*>I<buffer>B<,> B<int> I<size>B<);>"
754 #: build/C/man3/backtrace.3:50
756 "B<void backtrace_symbols_fd(void *const> B<*>I<buffer>B<,> B<int> I<size>B<,"
757 "> B<int> I<fd>B<);>"
759 "B<void backtrace_symbols_fd(void *const> B<*>I<buffer>B<,> B<int> I<size>B<,"
760 "> B<int> I<fd>B<);>"
763 #: build/C/man3/backtrace.3:78
766 #| "B<backtrace>() returns a backtrace for the calling program, in the array "
767 #| "pointed to by I<buffer>. A backtrace is the series of currently active "
768 #| "function calls for the program. Each item in the array pointed to by "
769 #| "I<buffer> is of type I<void *>, and is the return address from the "
770 #| "corresponding stack frame. The I<size> argument specifies the maximum "
771 #| "number of addresses that can be stored in I<buffer>. If the backtrace is "
772 #| "larger than I<size>, then the addresses corresponding to the I<size> most "
773 #| "recent function calls are returned; to obtain the complete backtrace, "
774 #| "make sure that I<buffer> and I<size> are large enough."
776 "B<backtrace>() returns a backtrace for the calling program, in the array "
777 "pointed to by I<buffer>. A backtrace is the series of currently active "
778 "function calls for the program. Each item in the array pointed to by "
779 "I<buffer> is of type I<void\\ *>, and is the return address from the "
780 "corresponding stack frame. The I<size> argument specifies the maximum "
781 "number of addresses that can be stored in I<buffer>. If the backtrace is "
782 "larger than I<size>, then the addresses corresponding to the I<size> most "
783 "recent function calls are returned; to obtain the complete backtrace, make "
784 "sure that I<buffer> and I<size> are large enough."
786 "B<backtrace>() は、呼び出したプログラムのバックトレースを I<buffer> が指す配"
787 "列に入れて返す。バックトレースは、プログラムで 現在動作中の関数呼び出しの並び"
788 "である。 I<buffer> が指す配列の個々の要素は I<void *> 型で、 対応するスタック"
789 "フレームからのリターンアドレスである。 I<size> 引き数は I<buffer> に格納でき"
790 "るアドレスの最大個数を指定する。 バックトレースが I<size> より大きい場合、 "
791 "I<size> 個の直近の関数呼び出しに対応するアドレスが返される。 完全なバックト"
792 "レースを取得するためには、確実に I<buffer> と I<size> が十分大きくなるように"
796 #: build/C/man3/backtrace.3:103
798 "Given the set of addresses returned by B<backtrace>() in I<buffer>, "
799 "B<backtrace_symbols>() translates the addresses into an array of strings "
800 "that describe the addresses symbolically. The I<size> argument specifies "
801 "the number of addresses in I<buffer>. The symbolic representation of each "
802 "address consists of the function name (if this can be determined), a "
803 "hexadecimal offset into the function, and the actual return address (in "
804 "hexadecimal). The address of the array of string pointers is returned as "
805 "the function result of B<backtrace_symbols>(). This array is B<malloc>(3)ed "
806 "by B<backtrace_symbols>(), and must be freed by the caller. (The strings "
807 "pointed to by the array of pointers need not and should not be freed.)"
809 "B<backtrace>() によって I<buffer> にアドレスの集合が得られたら、 "
810 "B<backtrace_symbols>() によって、アドレス集合を、そのアドレスをシンボルで表"
811 "した文字列の配列 に翻訳できる。 I<size> 引き数は I<buffer> に格納されたアドレ"
812 "スの数を指定する。 個々のアドレスのシンボル表現は、関数名 (特定できた場合)、 "
813 "関数へのオフセット (16進表記)、実際のリターンアドレス (16進表記) から構成さ"
814 "れる。 B<backtrace_symbols>() の実行結果としては、 文字列ポインタの配列のア"
815 "ドレスが返される。 この配列は B<backtrace_symbols>() によって B<malloc>(3) "
816 "され、呼び出し側で free しなければならない (ポインタの配列が指す個々の文字列"
817 "は free する必要はないし、 free すべきでもない)。"
820 #: build/C/man3/backtrace.3:118
822 "B<backtrace_symbols_fd>() takes the same I<buffer> and I<size> arguments as "
823 "B<backtrace_symbols>(), but instead of returning an array of strings to the "
824 "caller, it writes the strings, one per line, to the file descriptor I<fd>. "
825 "B<backtrace_symbols_fd>() does not call B<malloc>(3), and so can be "
826 "employed in situations where the latter function might fail."
828 "B<backtrace_symbols_fd>() は、 B<backtrace_symbols>() と同じ引き数 "
829 "I<buffer> と I<size> をとるが、呼び出し側に文字列の配列を返す代わりに、 文字"
830 "列をファイルディスクリプタ I<fd> に 1 行に 1 エントリの形で書き込む。 "
831 "B<backtrace_symbols_fd>() は B<malloc>(3) を呼び出さない。 そのため、これに"
832 "続く関数が失敗する可能性がある状況でも利用できる。"
835 #: build/C/man3/backtrace.3:130
837 "B<backtrace>() returns the number of addresses returned in I<buffer>, which "
838 "is not greater than I<size>. If the return value is less than I<size>, then "
839 "the full backtrace was stored; if it is equal to I<size>, then it may have "
840 "been truncated, in which case the addresses of the oldest stack frames are "
843 "B<backtrace>() は I<buffer> に格納したアドレスの個数を返す。その個数は "
844 "I<size> より大きくなることはない。 返り値が I<size> より小さい場合、バックト"
845 "レース全体が格納されている。返り値が I<size> と等しい場合、バックトレースは切"
846 "り詰められているかもしれない。 切り詰められた場合、最も古いスタックフレームの"
850 #: build/C/man3/backtrace.3:137
852 "On success, B<backtrace_symbols>() returns a pointer to the array B<malloc>"
853 "(3)ed by the call; on error, NULL is returned."
855 "B<backtrace_symbols>() は、成功すると、この呼び出しで B<malloc>(3) された配"
856 "列へのポインタを返す。 エラーの場合、 NULL を返す。"
859 #: build/C/man3/backtrace.3:143
861 "B<backtrace>(), B<backtrace_symbols>(), and B<backtrace_symbols_fd>() are "
862 "provided in glibc since version 2.1."
864 "B<backtrace>(), B<backtrace_symbols>(), B<backtrace_symbols_fd>() はバージョ"
865 "ン 2.1 以降の glibc で提供されている。"
868 #: build/C/man3/backtrace.3:145
869 msgid "These functions are GNU extensions."
870 msgstr "これらの関数は GNU による拡張である。"
873 #: build/C/man3/backtrace.3:149
875 "These functions make some assumptions about how a function's return address "
876 "is stored on the stack. Note the following:"
878 "これらの関数は、関数のリターンアドレスがスタック上でどのように格納されるか に"
879 "関してある仮定を置いている。 以下の点に注意。"
882 #: build/C/man3/backtrace.3:149 build/C/man3/backtrace.3:155
883 #: build/C/man3/backtrace.3:157 build/C/man3/queue.3:93
884 #: build/C/man3/queue.3:95 build/C/man3/queue.3:97 build/C/man3/queue.3:99
885 #: build/C/man3/queue.3:109 build/C/man3/queue.3:131 build/C/man3/queue.3:133
886 #: build/C/man3/queue.3:135
892 #: build/C/man3/backtrace.3:155
894 "Omission of the frame pointers (as implied by any of B<gcc>(1)'s nonzero "
895 "optimization levels) may cause these assumptions to be violated."
897 "(B<gcc>(1) の 0 以外の最適化レベルで暗黙のうちに行われる) フレームポインタ"
898 "の省略を行うと、これらの前提が崩れる可能性がある。"
901 #: build/C/man3/backtrace.3:157
902 msgid "Inlined functions do not have stack frames."
903 msgstr "インライン関数はスタックフレームを持たない。"
906 #: build/C/man3/backtrace.3:159
907 msgid "Tail-call optimization causes one stack frame to replace another."
909 "末尾呼び出しの最適化 (tail-call optimization) を行うと、 あるスタックフレーム"
910 "が別のスタックフレームを置き換える可能性がある。"
913 #: build/C/man3/backtrace.3:167
915 "The symbol names may be unavailable without the use of special linker "
916 "options. For systems using the GNU linker, it is necessary to use the I<-"
917 "rdynamic> linker option. Note that names of \"static\" functions are not "
918 "exposed, and won't be available in the backtrace."
920 "シンボル名は特別なリンカ・オプションを使用しないと利用できない場合がある。 "
921 "GNU リンカを使用するシステムでは、 I<-rdynamic> リンカ・オプションを使う必要"
922 "がある。 \"static\" な関数のシンボル名は公開されず、 バックトレースでは利用で"
926 #: build/C/man3/backtrace.3:174
928 "The program below demonstrates the use of B<backtrace>() and "
929 "B<backtrace_symbols>(). The following shell session shows what we might see "
930 "when running the program:"
932 "以下のプログラムは、 B<backtrace>() と B<backtrace_symbols>() の使用例を示"
933 "したものである。 以下に示すシェルのセッションは、 このプログラムを動かした際"
937 #: build/C/man3/backtrace.3:188
940 "$B< cc -rdynamic prog.c -o prog>\n"
942 "backtrace() returned 8 addresses\n"
943 "\\&./prog(myfunc3+0x5c) [0x80487f0]\n"
944 "\\&./prog [0x8048871]\n"
945 "\\&./prog(myfunc+0x21) [0x8048894]\n"
946 "\\&./prog(myfunc+0x1a) [0x804888d]\n"
947 "\\&./prog(myfunc+0x1a) [0x804888d]\n"
948 "\\&./prog(main+0x65) [0x80488fb]\n"
949 "\\&/lib/libc.so.6(__libc_start_main+0xdc) [0xb7e38f9c]\n"
950 "\\&./prog [0x8048711]\n"
952 "$B< cc -rdynamic prog.c -o prog>\n"
954 "backtrace() returned 8 addresses\n"
955 "\\&./prog(myfunc3+0x5c) [0x80487f0]\n"
956 "\\&./prog [0x8048871]\n"
957 "\\&./prog(myfunc+0x21) [0x8048894]\n"
958 "\\&./prog(myfunc+0x1a) [0x804888d]\n"
959 "\\&./prog(myfunc+0x1a) [0x804888d]\n"
960 "\\&./prog(main+0x65) [0x80488fb]\n"
961 "\\&/lib/libc.so.6(__libc_start_main+0xdc) [0xb7e38f9c]\n"
962 "\\&./prog [0x8048711]\n"
965 #: build/C/man3/backtrace.3:190 build/C/man3/offsetof.3:76
967 msgid "Program source"
971 #: build/C/man3/backtrace.3:197
974 "#include E<lt>execinfo.hE<gt>\n"
975 "#include E<lt>stdio.hE<gt>\n"
976 "#include E<lt>stdlib.hE<gt>\n"
977 "#include E<lt>unistd.hE<gt>\n"
979 "#include E<lt>execinfo.hE<gt>\n"
980 "#include E<lt>stdio.hE<gt>\n"
981 "#include E<lt>stdlib.hE<gt>\n"
982 "#include E<lt>unistd.hE<gt>\n"
985 #: build/C/man3/backtrace.3:205
993 " void *buffer[100];\n"
1000 "#define SIZE 100\n"
1001 " void *buffer[100];\n"
1002 " char **strings;\n"
1005 #: build/C/man3/backtrace.3:208
1008 " nptrs = backtrace(buffer, SIZE);\n"
1009 " printf(\"backtrace() returned %d addresses\\en\", nptrs);\n"
1011 " nptrs = backtrace(buffer, SIZE);\n"
1012 " printf(\"backtrace() returned %d addresses\\en\", nptrs);\n"
1015 #: build/C/man3/backtrace.3:211
1018 " /* The call backtrace_symbols_fd(buffer, nptrs, STDOUT_FILENO)\n"
1019 " would produce similar output to the following: */\n"
1021 " /* backtrace_symbols_fd(buffer, nptrs, STDOUT_FILENO) を\n"
1022 " 呼び出しても、以下と同様の出力が得られる。 */\n"
1025 #: build/C/man3/backtrace.3:217
1028 " strings = backtrace_symbols(buffer, nptrs);\n"
1029 " if (strings == NULL) {\n"
1030 " perror(\"backtrace_symbols\");\n"
1031 " exit(EXIT_FAILURE);\n"
1034 " strings = backtrace_symbols(buffer, nptrs);\n"
1035 " if (strings == NULL) {\n"
1036 " perror(\"backtrace_symbols\");\n"
1037 " exit(EXIT_FAILURE);\n"
1041 #: build/C/man3/backtrace.3:220
1044 " for (j = 0; j E<lt> nptrs; j++)\n"
1045 " printf(\"%s\\en\", strings[j]);\n"
1047 " for (j = 0; j E<lt> nptrs; j++)\n"
1048 " printf(\"%s\\en\", strings[j]);\n"
1051 #: build/C/man3/backtrace.3:223
1061 #: build/C/man3/backtrace.3:229
1064 "static void /* \"static\" means don\\(aqt export the symbol... */\n"
1070 "static void /* \"static\" はシンボルを公開しないことを意味する */\n"
1077 #: build/C/man3/backtrace.3:238
1081 "myfunc(int ncalls)\n"
1083 " if (ncalls E<gt> 1)\n"
1084 " myfunc(ncalls - 1);\n"
1090 "myfunc(int ncalls)\n"
1092 " if (ncalls E<gt> 1)\n"
1093 " myfunc(ncalls - 1);\n"
1099 #: build/C/man3/backtrace.3:246
1103 "main(int argc, char *argv[])\n"
1105 " if (argc != 2) {\n"
1106 " fprintf(stderr, \"%s num-calls\\en\", argv[0]);\n"
1107 " exit(EXIT_FAILURE);\n"
1111 "main(int argc, char *argv[])\n"
1113 " if (argc != 2) {\n"
1114 " fprintf(stderr, \"%s num-calls\\en\", argv[0]);\n"
1115 " exit(EXIT_FAILURE);\n"
1119 #: build/C/man3/backtrace.3:250
1122 " myfunc(atoi(argv[1]));\n"
1123 " exit(EXIT_SUCCESS);\n"
1126 " myfunc(atoi(argv[1]));\n"
1127 " exit(EXIT_SUCCESS);\n"
1131 #: build/C/man3/backtrace.3:256
1132 msgid "B<gcc>(1), B<ld>(1), B<dlopen>(3), B<malloc>(3)"
1133 msgstr "B<gcc>(1), B<ld>(1), B<dlopen>(3), B<malloc>(3)"
1136 #: build/C/man3/basename.3:27
1142 #: build/C/man3/basename.3:27
1148 #: build/C/man3/basename.3:30
1149 msgid "basename, dirname - parse pathname components"
1150 msgstr "basename, dirname - パス名を解析して各部分を取り出す"
1153 #: build/C/man3/basename.3:33
1155 msgid "B<#include E<lt>libgen.hE<gt>>\n"
1156 msgstr "B<#include E<lt>libgen.hE<gt>>\n"
1159 #: build/C/man3/basename.3:35
1161 msgid "B<char *dirname(char *>I<path>B<);>\n"
1162 msgstr "B<char *dirname(char *>I<path>B<);>\n"
1165 #: build/C/man3/basename.3:37
1167 msgid "B<char *basename(char *>I<path>B<);>\n"
1168 msgstr "B<char *basename(char *>I<path>B<);>\n"
1171 #: build/C/man3/basename.3:42
1172 msgid "Warning: there are two different functions B<basename>() - see below."
1174 "警告: B<basename>() には異なるバージョンが 2つ存在する。下記の「注意」の節を"
1178 #: build/C/man3/basename.3:55
1180 "The functions B<dirname>() and B<basename>() break a null-terminated "
1181 "pathname string into directory and filename components. In the usual case, "
1182 "B<dirname>() returns the string up to, but not including, the final \\(aq/"
1183 "\\(aq, and B<basename>() returns the component following the final \\(aq/"
1184 "\\(aq. Trailing \\(aq/\\(aq characters are not counted as part of the "
1187 "B<dirname>() と B<basename>() は、NULL で終端されたパス名の文字列を、 ディ"
1188 "レクトリ部分・ファイル名部分に分割する。 通常は、 B<dirname>() は最後の "
1189 "\\(aq/\\(aq までの部分 (最後の \\(aq/\\(aq は含まない) を返し、 B<basename>"
1190 "() は最後の \\(aq/\\(aq 以降の部分を返す。 文字列の末尾についた \\(aq/\\(aq "
1191 "文字は、パス名の一部とはみなされない。"
1194 #: build/C/man3/basename.3:78
1196 "If I<path> does not contain a slash, B<dirname>() returns the string \".\" "
1197 "while B<basename>() returns a copy of I<path>. If I<path> is the string \"/"
1198 "\", then both B<dirname>() and B<basename>() return the string \"/\". If "
1199 "I<path> is a NULL pointer or points to an empty string, then both B<dirname>"
1200 "() and B<basename>() return the string \".\"."
1202 "I<path> に '/' 文字がない場合は、 B<dirname>() は文字列 \".\" を返し、 "
1203 "B<basename>() は I<path> と同じ内容を返す。 I<path> が文字列 \"/\" に等しい"
1204 "場合は、 B<dirname>() も B<basename>() も文字列 \"/\" を返す。 I<path> が "
1205 "NULL ポインタだったり、空の文字列を指していた場合は、 B<dirname>() も "
1206 "B<basename>() も文字列 \".\" を返す。"
1209 #: build/C/man3/basename.3:84
1211 "Concatenating the string returned by B<dirname>(), a \"/\", and the string "
1212 "returned by B<basename>() yields a complete pathname."
1214 "B<dirname>() の返した文字列、 \"/\"、 B<basename>() の返した文字列、 を順に"
1215 "結合すると、完全なパス名が得られる。"
1218 #: build/C/man3/basename.3:93
1220 "Both B<dirname>() and B<basename>() may modify the contents of I<path>, so "
1221 "it may be desirable to pass a copy when calling one of these functions."
1223 "B<dirname>() と B<basename>() は、いずれも I<path> の内容を変更することがあ"
1224 "る。 したがって、これらの関数を呼び出す際には コピーを渡すのが望ましい。"
1227 #: build/C/man3/basename.3:102
1229 "These functions may return pointers to statically allocated memory which may "
1230 "be overwritten by subsequent calls. Alternatively, they may return a "
1231 "pointer to some part of I<path>, so that the string referred to by I<path> "
1232 "should not be modified or freed until the pointer returned by the function "
1233 "is no longer required."
1235 "これらの関数は、静的に割り当てられたメモリへのポインタを返すことがあり、 これ"
1236 "らの領域は後の関数呼び出しで上書きされるかもしれない。 また、これらの関数は "
1237 "I<path> の一部分を指すポインタを返すこともある。そのため、 I<path> で参照され"
1238 "る文字列は、関数が返すポインタが不要になるまでは 変更したり free したりすべき"
1242 #: build/C/man3/basename.3:109
1244 "The following list of examples (taken from SUSv2) shows the strings "
1245 "returned by B<dirname>() and B<basename>() for different paths:"
1247 "以下の一連の例 (SUSv2 から引用) は、 いろいろな path に対して B<dirname>() "
1248 "と B<basename>() が返す文字列を表したものである。"
1251 #: build/C/man3/basename.3:113
1253 msgid "path \tdirname\tbasename\n"
1257 #: build/C/man3/basename.3:114
1259 msgid "/usr/lib\t/usr\tlib\n"
1263 #: build/C/man3/basename.3:115
1265 msgid "/usr/ \t/\tusr\n"
1269 #: build/C/man3/basename.3:116
1271 msgid "usr \t.\tusr\n"
1275 #: build/C/man3/basename.3:117
1281 #: build/C/man3/basename.3:118
1287 #: build/C/man3/basename.3:119
1289 msgid ".. \t.\t..\n"
1293 #: build/C/man3/basename.3:129
1295 "Both B<dirname>() and B<basename>() return pointers to null-terminated "
1296 "strings. (Do not pass these pointers to B<free>(3).)"
1298 "B<dirname>() と B<basename>() は、いずれも NULL で終端された文字列へのポイ"
1299 "ンタを返す。 (これらのポインタを B<free>(3) に渡さないこと。)"
1302 #: build/C/man3/basename.3:131 build/C/man3/ftok.3:72
1303 msgid "POSIX.1-2001."
1304 msgstr "POSIX.1-2001."
1307 #: build/C/man3/basename.3:136
1309 "There are two different versions of B<basename>() - the POSIX version "
1310 "described above, and the GNU version, which one gets after"
1312 "B<basename>() には 2種類の異なるバージョンがある。 一つはすでに説明した "
1313 "POSIX バージョンであり、 もう一つは GNU バージョンである。 GNU バージョンを使"
1317 #: build/C/man3/basename.3:140
1319 msgid "B< #define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
1320 msgstr "B< #define _GNU_SOURCE> /* feature_test_macros(7) 参照 */\n"
1323 #: build/C/man3/basename.3:142
1325 msgid "B<#include E<lt>string.hE<gt>>\n"
1326 msgstr "B<#include E<lt>string.hE<gt>>\n"
1329 #: build/C/man3/basename.3:150
1331 "The GNU version never modifies its argument, and returns the empty string "
1332 "when I<path> has a trailing slash, and in particular also when it is \"/\". "
1333 "There is no GNU version of B<dirname>()."
1335 "GNU バージョンは引き数を変更することはなく、 I<path> の末尾が '/'の場合は空の"
1336 "文字列を返す。 特に I<path> が \"/\" の場合も空文字列を返す。 B<dirname>() "
1340 #: build/C/man3/basename.3:156
1342 "With glibc, one gets the POSIX version of B<basename>() when I<E<lt>libgen."
1343 "hE<gt>> is included, and the GNU version otherwise."
1345 "glibc では、 I<E<lt>libgen.hE<gt>> をインクルードすると POSIX バージョンの "
1346 "B<basename>() が使用され、それ以外の場合は GNU バージョンとなる。"
1349 #: build/C/man3/basename.3:164
1351 "In the glibc implementation of the POSIX versions of these functions they "
1352 "modify their argument, and segfault when called with a static string like \"/"
1353 "usr/\". Before glibc 2.2.1, the glibc version of B<dirname>() did not "
1354 "correctly handle pathnames with trailing \\(aq/\\(aq characters, and "
1355 "generated a segfault if given a NULL argument."
1357 "glibc の POSIX バージョンの実装では、引き数の内容が変更され、 引き数に (\"/"
1358 "usr/\" などの) 定数文字列を指定されると セグメンテーションフォールトを起こ"
1359 "す。 バージョン 2.2.1 以前の glibc では、 glibc の B<dirname>() は末尾が "
1360 "\\(aq/\\(aq 文字になっているパス名を正しく扱えず、 引き数が NULL だとセグメン"
1364 #: build/C/man3/basename.3:169
1367 "char *dirc, *basec, *bname, *dname;\n"
1368 "char *path = \"/etc/passwd\";\n"
1370 "char *dirc, *basec, *bname, *dname;\n"
1371 "char *path = \"/etc/passwd\";\n"
1374 #: build/C/man3/basename.3:175
1377 "dirc = strdup(path);\n"
1378 "basec = strdup(path);\n"
1379 "dname = dirname(dirc);\n"
1380 "bname = basename(basec);\n"
1381 "printf(\"dirname=%s, basename=%s\\en\", dname, bname);\n"
1383 "dirc = strdup(path);\n"
1384 "basec = strdup(path);\n"
1385 "dname = dirname(dirc);\n"
1386 "bname = basename(basec);\n"
1387 "printf(\"dirname=%s, basename=%s\\en\", dname, bname);\n"
1390 #: build/C/man3/basename.3:180
1391 msgid "B<basename>(1), B<dirname>(1)"
1392 msgstr "B<basename>(1), B<dirname>(1)"
1395 #: build/C/man3/envz_add.3:10
1401 #: build/C/man3/envz_add.3:14
1403 "envz_add, envz_entry, envz_get, envz_merge, envz_remove, envz_strip - "
1404 "environment string support"
1406 "envz_add, envz_entry, envz_get, envz_merge, envz_remove, envz_strip - 環境変"
1410 #: build/C/man3/envz_add.3:17
1412 msgid "B<#include E<lt>envz.hE<gt>>\n"
1413 msgstr "B<#include E<lt>envz.hE<gt>>\n"
1416 #: build/C/man3/envz_add.3:20
1419 "B<error_t envz_add(char **>I<envz>B<, size_t *>I<envz_len>B<,>\n"
1420 "B< const char *>I<name>B<, const char *>I<value>B<);>\n"
1422 "B<error_t envz_add(char **>I<envz>B<, size_t *>I<envz_len>B<,>\n"
1423 "B< const char *>I<name>B<, const char *>I<value>B<);>\n"
1426 #: build/C/man3/envz_add.3:23
1428 msgid "B<char *envz_entry(const char *>I<envz>B<, size_t *>I<envz_len>B<, const char *>I<name>B<);>\n"
1429 msgstr "B<char *envz_entry(const char *>I<envz>B<, size_t *>I<envz_len>B<, const char *>I<name>B<);>\n"
1432 #: build/C/man3/envz_add.3:26
1434 msgid "B<char *envz_get(const char *>I<envz>B<, size_t *>I<envz_len>B<, const char *>I<name>B<);>\n"
1435 msgstr "B<char *envz_get(const char *>I<envz>B<, size_t *>I<envz_len>B<, const char *>I<name>B<);>\n"
1438 #: build/C/man3/envz_add.3:30
1441 "B<error_t envz_merge(char **>I<envz>B<, size_t *>I<envz_len>B<,>\n"
1442 "B< const char *>I<envz2>B<, size_t >I<envz2_len>B<, int >I<override>B<);>\n"
1444 "B<error_t envz_merge(char **>I<envz>B<, size_t *>I<envz_len>B<,>\n"
1445 "B< const char *>I<envz2>B<, size_t >I<envz2_len>B<, int >I<override>B<);>\n"
1448 #: build/C/man3/envz_add.3:33
1450 msgid "B<void envz_remove(char **>I<envz>B<, size_t *>I<envz_len>B<, const char *>I<name>B<);>\n"
1451 msgstr "B<void envz_remove(char **>I<envz>B<, size_t *>I<envz_len>B<, const char *>I<name>B<);>\n"
1454 #: build/C/man3/envz_add.3:35
1456 msgid "B<void envz_strip(char **>I<envz>B<, size_t *>I<envz_len>B<);>\n"
1457 msgstr "B<void envz_strip(char **>I<envz>B<, size_t *>I<envz_len>B<);>\n"
1460 #: build/C/man3/envz_add.3:48
1462 "An argz vector is a pointer to a character buffer together with a length, "
1463 "see B<argz_add>(3). An envz vector is a special argz vector, namely one "
1464 "where the strings have the form \"name=value\". Everything after the first "
1465 "\\(aq=\\(aq is considered to be the value. If there is no \\(aq=\\(aq, the "
1466 "value is taken to be NULL. (While the value in case of a trailing \\(aq="
1467 "\\(aq is the empty string \"\".)"
1469 "argz vector は長さ情報付きの文字バッファへのポインタである。 B<argz_add>(3) "
1470 "を参照のこと。 envz vector は、文字列が \"name=value (名前=値)\" の形式になっ"
1471 "ている特別な argz vector である。 最初の \\(aq=\\(aq 以降はすべて値とみなされ"
1472 "る。\\(aq=\\(aq がなければ、 値は NULL と解釈される。(文字列の一番最後の文字"
1473 "が \\(aq=\\(aq の場合、値は空文字列 \"\" と解釈される。)"
1476 #: build/C/man3/envz_add.3:50
1477 msgid "These functions are for handling envz vectors."
1478 msgstr "これらの関数は envz vector を操作するためのものである。"
1481 #: build/C/man3/envz_add.3:69
1483 "B<envz_add>() adds the string \"I<name>=I<value>\" (in case I<value> is non-"
1484 "NULL) or \"I<name>\" (in case I<value> is NULL) to the envz vector (I<*envz>,"
1485 "\\ I<*envz_len>) and updates I<*envz> and I<*envz_len>. If an entry with "
1486 "the same I<name> existed, it is removed."
1488 "B<envz_add>() は、文字列 \"I<name>=I<value>\" (I<value> が NULL でない場合) "
1489 "または \"I<name>\" (I<value> が NULL の場合) を envz vector (I<*envz>,\\ "
1490 "I<*envz_len>) に追加し、 I<*envz> と I<*envz_len> を更新する。 I<name> と同"
1491 "じ名前を持つエントリがあった場合、元のエントリは削除される。"
1494 #: build/C/man3/envz_add.3:76
1496 "B<envz_entry>() looks for I<name> in the envz vector (I<envz>,\\ "
1497 "I<envz_len>) and returns the entry if found, or NULL if not."
1499 "B<envz_entry>() は、envz vector (I<envz>,\\ I<envz_len>) から名前が "
1500 "I<name> のエントリを検索する。 見つかった場合はそのエントリを返し、見つからな"
1504 #: build/C/man3/envz_add.3:87
1506 "B<envz_get>() looks for I<name> in the envz vector (I<envz>,\\ "
1507 "I<envz_len>) and returns the value if found, or NULL if not. (Note that "
1508 "the value can also be NULL, namely when there is an entry for I<name> "
1509 "without \\(aq=\\(aq sign.)"
1511 "B<envz_get>() は、envz vector (I<envz>,\\ I<envz_len>) から名前が I<name> "
1512 "のエントリを検索する。 見つかった場合はエントリの値を返し、見つからなかった場"
1513 "合は NULL を返す。 (値は NULL の場合もあることに注意すること。名前が I<name> "
1514 "のエントリに \\(aq=\\(aq 符号がない場合が該当する。)"
1517 #: build/C/man3/envz_add.3:102
1519 "B<envz_merge>() adds each entry in I<envz2> to I<*envz>, as if with "
1520 "B<envz_add>(). If I<override> is true, then values in I<envz2> will "
1521 "supersede those with the same name in I<*envz>, otherwise not."
1523 "B<envz_merge>() は、 B<envz_add>() と同じように I<envz2> の各エントリを "
1524 "I<*envz> に追加する。 I<override> が真の場合、 I<envz2> の値で I<*envz> 内の"
1525 "同じ名前をもつ値は上書きされる。 偽の場合は上書きされない。"
1528 #: build/C/man3/envz_add.3:109
1530 "B<envz_remove>() removes the entry for I<name> from (I<*envz>,\\ "
1531 "I<*envz_len>) if there was one."
1533 "B<envz_remove>() は、名前が I<name> のエントリがあれば (I<*envz>,\\ "
1534 "I<*envz_len>) から削除する。"
1537 #: build/C/man3/envz_add.3:112
1538 msgid "B<envz_strip>() removes all entries with value NULL."
1539 msgstr "B<envz_strip>() は、値が NULL のエントリをすべて削除する。"
1542 #: build/C/man3/envz_add.3:118
1544 "All envz functions that do memory allocation have a return type of "
1545 "I<error_t>, and return 0 for success, and B<ENOMEM> if an allocation error "
1548 "メモリ割り当てを行う envz 関数群はすべて I<error_t> 型の返り値を持つ。 成功し"
1549 "た場合は 0 を返し、割り当てエラーが発生した場合は B<ENOMEM> を返す。"
1552 #: build/C/man3/envz_add.3:126
1555 "#include E<lt>stdio.hE<gt>\n"
1556 "#include E<lt>stdlib.hE<gt>\n"
1557 "#include E<lt>envz.hE<gt>\n"
1559 "#include E<lt>stdio.hE<gt>\n"
1560 "#include E<lt>stdlib.hE<gt>\n"
1561 "#include E<lt>envz.hE<gt>\n"
1564 #: build/C/man3/envz_add.3:132
1568 "main(int argc, char *argv[], char *envp[])\n"
1570 " int i, e_len = 0;\n"
1574 "main(int argc, char *argv[], char *envp[])\n"
1576 " int i, e_len = 0;\n"
1580 #: build/C/man3/envz_add.3:135
1583 " for (i = 0; envp[i] != NULL; i++)\n"
1584 " e_len += strlen(envp[i]) + 1;\n"
1586 " for (i = 0; envp[i] != NULL; i++)\n"
1587 " e_len += strlen(envp[i]) + 1;\n"
1590 #: build/C/man3/envz_add.3:142
1593 " str = envz_entry(*envp, e_len, \"HOME\");\n"
1594 " printf(\"%s\\en\", str);\n"
1595 " str = envz_get(*envp, e_len, \"HOME\");\n"
1596 " printf(\"%s\\en\", str);\n"
1597 " exit(EXIT_SUCCESS);\n"
1600 " str = envz_entry(*envp, e_len, \"HOME\");\n"
1601 " printf(\"%s\\en\", str);\n"
1602 " str = envz_get(*envp, e_len, \"HOME\");\n"
1603 " printf(\"%s\\en\", str);\n"
1604 " exit(EXIT_SUCCESS);\n"
1608 #: build/C/man3/envz_add.3:145
1609 msgid "B<argz_add>(3)"
1610 msgstr "B<argz_add>(3)"
1613 #: build/C/man3/ftok.3:29
1619 #: build/C/man3/ftok.3:29
1625 #: build/C/man3/ftok.3:32
1627 "ftok - convert a pathname and a project identifier to a System V IPC key"
1628 msgstr "ftok - パス名とプロジェクト識別子を System V IPC キーに変換する"
1631 #: build/C/man3/ftok.3:36
1634 "B<#include E<lt>sys/types.hE<gt>>\n"
1635 "B<#include E<lt>sys/ipc.hE<gt>>\n"
1637 "B<#include E<lt>sys/types.hE<gt>>\n"
1638 "B<#include E<lt>sys/ipc.hE<gt>>\n"
1641 #: build/C/man3/ftok.3:39
1642 msgid "B<key_t ftok(const char *>I<pathname>B<, int >I<proj_id>B<);>"
1643 msgstr "B<key_t ftok(const char *>I<pathname>B<, int >I<proj_id>B<);>"
1646 #: build/C/man3/ftok.3:54
1648 "The B<ftok>() function uses the identity of the file named by the given "
1649 "I<pathname> (which must refer to an existing, accessible file) and the "
1650 "least significant 8 bits of I<proj_id> (which must be nonzero) to generate a "
1651 "I<key_t> type System V IPC key, suitable for use with B<msgget>(2), B<semget>"
1652 "(2), or B<shmget>(2)."
1654 "B<ftok>() 関数は I<pathname> で与えられたファイル (存在し、アクセス可能でな"
1655 "ければならない) のファイル名の識別情報 (identity) と、 I<proj_id> (0 であっ"
1656 "てはならない) の低位 8 ビットとを用いて、 I<key_t> 型の System V IPC キーを生"
1657 "成する。 このキーは B<msgget>(2), B<semget>(2), B<shmget>(2) などでの利用に"
1661 #: build/C/man3/ftok.3:61
1663 "The resulting value is the same for all pathnames that name the same file, "
1664 "when the same value of I<proj_id> is used. The value returned should be "
1665 "different when the (simultaneously existing) files or the project IDs differ."
1667 "同じファイルを示すあらゆるパス名と、同じ I<proj_id> に対しては、結果の値は等"
1668 "しくなる。 ファイルが違ったり (この場合両者は同時に存在しているはず)、 "
1669 "I<proj_id> が異なると、返り値も異なる。"
1672 #: build/C/man3/ftok.3:70
1674 "On success, the generated I<key_t> value is returned. On failure -1 is "
1675 "returned, with I<errno> indicating the error as for the B<stat>(2) system "
1678 "成功した場合は生成された I<key_t> の値が返される。 失敗すると -1 が返され、エ"
1679 "ラーの内容が B<errno> に書き込まれる。この内容はシステムコール B<stat>(2) の"
1683 #: build/C/man3/ftok.3:74
1684 msgid "Under libc4 and libc5 (and under SunOS 4.x) the prototype was:"
1686 "libc4 と libc5 (および SunOS 4.x) では、 プロトタイプは以下のようになってい"
1690 #: build/C/man3/ftok.3:77
1691 msgid "B<key_t ftok(char *>I<pathname>B<, char >I<proj_id>B<);>"
1692 msgstr "B<key_t ftok(char *>I<pathname>B<, char >I<proj_id>B<);>"
1695 #: build/C/man3/ftok.3:89
1697 "Today I<proj_id> is an I<int>, but still only 8 bits are used. Typical "
1698 "usage has an ASCII character I<proj_id>, that is why the behavior is said to "
1699 "be undefined when I<proj_id> is zero."
1701 "現在では I<proj_id> は I<int> だが、依然として 8 ビットしか用いられない。 通"
1702 "常は ASCII キャラクタが I<proj_id> に用いられる。 I<proj_id> が 0 のときの振"
1703 "る舞いが未定義になっているのは、これが理由である。"
1706 #: build/C/man3/ftok.3:101
1708 "Of course no guarantee can be given that the resulting I<key_t> is unique. "
1709 "Typically, a best effort attempt combines the given I<proj_id> byte, the "
1710 "lower 16 bits of the inode number, and the lower 8 bits of the device number "
1711 "into a 32-bit result. Collisions may easily happen, for example between "
1712 "files on I</dev/hda1> and files on I</dev/sda1>."
1714 "もちろん I<key_t> が他と重ならないものであるかどうかは保証されない。 最善の場"
1715 "合の組み合わせを考えても、 I<proj_id> の 1 バイト、i ノード番号の低位 16 ビッ"
1716 "ト、および デバイス番号の低位 8 ビットなので、結果は 32 ビットに過ぎない。 例"
1717 "えば I</dev/hda1> と I</dev/sda1> それぞれにあるファイルに対して、衝突は容易"
1721 #: build/C/man3/ftok.3:107
1722 msgid "B<msgget>(2), B<semget>(2), B<shmget>(2), B<stat>(2), B<svipc>(7)"
1723 msgstr "B<msgget>(2), B<semget>(2), B<shmget>(2), B<stat>(2), B<svipc>(7)"
1726 #: build/C/man3/longjmp.3:27
1732 #: build/C/man3/longjmp.3:27
1738 #: build/C/man3/longjmp.3:30
1739 msgid "longjmp, siglongjmp - nonlocal jump to a saved stack context"
1741 "longjmp, siglongjmp - 保存されたスタックコンテキスト (stack context) への非"
1745 #: build/C/man3/longjmp.3:33
1747 msgid "B<#include E<lt>setjmp.hE<gt>>\n"
1748 msgstr "B<#include E<lt>setjmp.hE<gt>>\n"
1751 #: build/C/man3/longjmp.3:35
1753 msgid "B<void longjmp(jmp_buf >I<env>B<, int >I<val>B<);>\n"
1754 msgstr "B<void longjmp(jmp_buf >I<env>B<, int >I<val>B<);>\n"
1757 #: build/C/man3/longjmp.3:37
1759 msgid "B<void siglongjmp(sigjmp_buf >I<env>B<, int >I<val>B<);>\n"
1760 msgstr "B<void siglongjmp(sigjmp_buf >I<env>B<, int >I<val>B<);>\n"
1763 #: build/C/man3/longjmp.3:46
1765 "B<siglongjmp>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
1768 "B<siglongjmp>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
1772 #: build/C/man3/longjmp.3:70
1774 "B<longjmp>() and B<setjmp>(3) are useful for dealing with errors and "
1775 "interrupts encountered in a low-level subroutine of a program. B<longjmp>"
1776 "() restores the environment saved by the last call of B<setjmp>(3) with "
1777 "the corresponding I<env> argument. After B<longjmp>() is completed, "
1778 "program execution continues as if the corresponding call of B<setjmp>(3) "
1779 "had just returned the value I<val>. B<longjmp>() cannot cause 0 to be "
1780 "returned. If B<longjmp>() is invoked with a second argument of 0, 1 will "
1781 "be returned instead."
1783 "B<longjmp>() と B<setjmp>(3) は、プログラムの低レベルなサブルーチンにおい"
1784 "て、 エラーや割り込みが発生した時の処理に便利である。 B<longjmp>() は、"
1785 "I<env> 引き数を指定して呼び出された最後の B<setjmp>(3) によって保存された環"
1786 "境を復元する。 B<longjmp>() の完了後、プログラムの実行は、まるで対応する "
1787 "B<setjmp>(3) の呼び出しが値 I<val> で返って来たかように続行される。 "
1788 "B<longjmp>() は 0 を返すように指示することはできない。 二番目の引き数に 0 を"
1789 "指定して B<longjmp>() が呼ばれた場合は、代わりに 1 が返されることになる。"
1792 #: build/C/man3/longjmp.3:88
1794 "B<siglongjmp>() is similar to B<longjmp>() except for the type of its "
1795 "I<env> argument. If, and only if, the B<sigsetjmp>(3) call that set this "
1796 "I<env> used a nonzero I<savesigs> flag, B<siglongjmp>() also restores the "
1797 "signal mask that was saved by B<sigsetjmp>(3)."
1799 "B<siglongjmp>() は、引き数 I<env> の型が異なる点以外は、 B<longjmp>() と同"
1800 "様である。 I<env> を保存した B<sigsetjmp>(3) が 0 以外の I<savesigs> フラグ"
1801 "で呼び出されていた場合で、 かつ、その場合にのみ、 B<siglongjmp>(3) は "
1802 "B<sigsetjmp>(3) より保存されていたシグナルマスクの復元を行う。"
1805 #: build/C/man3/longjmp.3:90
1806 msgid "These functions never return."
1807 msgstr "これらの関数が返ることはない。"
1810 #: build/C/man3/longjmp.3:95
1812 "C89, C99, and POSIX.1-2001 specify B<longjmp>(). POSIX.1-2001 specifies "
1815 "B<longjmp>() は C89, C99, POSIX.1-2001 で規定されている。 B<siglongjmp>() "
1816 "は POSIX.1-2001 で規定されている。"
1819 #: build/C/man3/longjmp.3:105
1821 "POSIX does not specify whether B<longjmp>() will restore the signal context "
1822 "(see B<setjmp>(3) for some more details). If you want to portably save and "
1823 "restore signal masks, use B<sigsetjmp>(3) and B<siglongjmp>()."
1825 "POSIX では、 B<longjmp>() がシグナルコンテキスト (signal context) を復元\n"
1826 "するかどうか規定されていない (B<setjmp>(3) にも少し詳しい情報がある)。\n"
1827 "移植性のある方法で、シグナルマスクを保存し復元させたい場合には、\n"
1828 "B<sigsetjmp>(3) と B<siglongjmp>() を使うこと。"
1831 #: build/C/man3/longjmp.3:109
1833 "The values of automatic variables are unspecified after a call to B<longjmp>"
1834 "() if they meet all the following criteria:"
1836 "以下の条件が全て成立する場合、 B<longjmp>() の呼び出しが行われた後の自動変数"
1837 "の値は未定義 (unspecified) となる。"
1840 #: build/C/man3/longjmp.3:109 build/C/man3/longjmp.3:113
1841 #: build/C/man3/longjmp.3:119
1847 #: build/C/man3/longjmp.3:113
1849 "they are local to the function that made the corresponding B<setjmp>(3) "
1852 "その自動変数が、対応する B<setjmp>(3) 呼び出しを行った関数のローカル変数であ"
1856 #: build/C/man3/longjmp.3:119
1858 "their values are changed between the calls to B<setjmp>(3) and B<longjmp>"
1860 msgstr "自動変数の値が B<setjmp>(3) と B<longjmp>() の間で変更されている。"
1863 #: build/C/man3/longjmp.3:122
1864 msgid "they are not declared as I<volatile>."
1865 msgstr "I<volatile> として宣言されていない。"
1868 #: build/C/man3/longjmp.3:125
1869 msgid "Analogous remarks apply for B<siglongjmp>()."
1870 msgstr "同様の注意が B<siglongjmp>() にもあてはまる。"
1873 #: build/C/man3/longjmp.3:132
1875 "B<longjmp>() and B<siglongjmp>() make programs hard to understand and "
1876 "maintain. If possible an alternative should be used."
1878 "B<longjmp>() や B<siglongjmp>() を使うと、プログラムは理解しづらく、保守し"
1879 "にくいものになる。 別の方法が可能なら、それを使うべきである。"
1882 #: build/C/man3/longjmp.3:135
1883 msgid "B<setjmp>(3), B<sigsetjmp>(3)"
1884 msgstr "B<setjmp>(3), B<sigsetjmp>(3)"
1887 #: build/C/man3/offsetof.3:28
1893 #: build/C/man3/offsetof.3:28
1899 #: build/C/man3/offsetof.3:31
1900 msgid "offsetof - offset of a structure member"
1901 msgstr "offsetof - 構造体のメンバーのオフセットを返す"
1904 #: build/C/man3/offsetof.3:34
1906 msgid "B<#include E<lt>stddef.hE<gt>>\n"
1907 msgstr "B<#include E<lt>stddef.hE<gt>>\n"
1910 #: build/C/man3/offsetof.3:36
1912 msgid "B<size_t offsetof(>I<type>B<, >I<member>B<);>\n"
1913 msgstr "B<size_t offsetof(>I<type>B<, >I<member>B<);>\n"
1916 #: build/C/man3/offsetof.3:44
1918 "The macro B<offsetof>() returns the offset of the field I<member> from the "
1919 "start of the structure I<type>."
1921 "B<offsetof>() マクロは、フィールド I<member> の 構造体 I<type> の先頭からの"
1925 #: build/C/man3/offsetof.3:51
1927 "This macro is useful because the sizes of the fields that compose a "
1928 "structure can vary across implementations, and compilers may insert "
1929 "different numbers of padding bytes between fields. Consequently, an "
1930 "element's offset is not necessarily given by the sum of the sizes of the "
1931 "previous elements."
1933 "このマクロが有用なのは、 構造体を構成するフィールドのサイズは実装によって変化"
1934 "するし、 コンパイラによりフィールド間に挿入するパディングのバイト数も 違う可"
1935 "能性があるからである。 その結果、あるエレメントのオフセットは必ずしもそれより"
1936 "前の エレメントのサイズの合計とはならない。"
1939 #: build/C/man3/offsetof.3:56
1941 "A compiler error will result if I<member> is not aligned to a byte boundary "
1942 "(i.e., it is a bit field)."
1944 "I<member> がバイト境界に位置していない場合 (すなわち、ビットフィールドの場"
1945 "合) には、 コンパイラでエラーが発生する。"
1948 #: build/C/man3/offsetof.3:63
1950 "B<offsetof>() returns the offset of the given I<member> within the given "
1951 "I<type>, in units of bytes."
1953 "B<offsetof>() は、指定された I<member> の指定された I<type> の中でのオフセッ"
1957 #: build/C/man3/offsetof.3:65
1958 msgid "C89, C99, POSIX.1-2001."
1959 msgstr "C89, C99, POSIX.1-2001."
1962 #: build/C/man3/offsetof.3:69
1964 "On a Linux/i386 system, when compiled using the default B<gcc>(1) options, "
1965 "the program below produces the following output:"
1967 "Linux/i386 システムで、 B<gcc>(1) のデフォルトオプションで コンパイルされた"
1968 "場合、下記のプログラムは以下のような出力を返す。"
1971 #: build/C/man3/offsetof.3:75
1975 "offsets: i=0; c=4; d=8 a=16\n"
1976 "sizeof(struct s)=16\n"
1979 "offsets: i=0; c=4; d=8 a=16\n"
1980 "sizeof(struct s)=16\n"
1983 #: build/C/man3/offsetof.3:82
1986 "#include E<lt>stddef.hE<gt>\n"
1987 "#include E<lt>stdio.hE<gt>\n"
1988 "#include E<lt>stdlib.hE<gt>\n"
1990 "#include E<lt>stddef.hE<gt>\n"
1991 "#include E<lt>stdio.hE<gt>\n"
1992 "#include E<lt>stdlib.hE<gt>\n"
1995 #: build/C/man3/offsetof.3:92
2019 #: build/C/man3/offsetof.3:94
2021 msgid " /* Output is compiler dependent */\n"
2022 msgstr " /* 出力はコンパイラ依存である */\n"
2025 #: build/C/man3/offsetof.3:101
2028 " printf(\"offsets: i=%ld; c=%ld; d=%ld a=%ld\\en\",\n"
2029 " (long) offsetof(struct s, i),\n"
2030 " (long) offsetof(struct s, c),\n"
2031 " (long) offsetof(struct s, d),\n"
2032 " (long) offsetof(struct s, a));\n"
2033 " printf(\"sizeof(struct s)=%ld\\en\", (long) sizeof(struct s));\n"
2035 " printf(\"offsets: i=%ld; c=%ld; d=%ld a=%ld\\en\",\n"
2036 " (long) offsetof(struct s, i),\n"
2037 " (long) offsetof(struct s, c),\n"
2038 " (long) offsetof(struct s, d),\n"
2039 " (long) offsetof(struct s, a));\n"
2040 " printf(\"sizeof(struct s)=%ld\\en\", (long) sizeof(struct s));\n"
2043 #: build/C/man3/offsetof.3:104
2046 " exit(EXIT_SUCCESS);\n"
2049 " exit(EXIT_SUCCESS);\n"
2053 #: build/C/man3/program_invocation_name.3:24
2055 msgid "INVOCATION_NAME"
2056 msgstr "INVOCATION_NAME"
2059 #: build/C/man3/program_invocation_name.3:24
2065 #: build/C/man3/program_invocation_name.3:28
2067 "program_invocation_name, program_invocation_short_name - obtain name used to "
2068 "invoke calling program"
2070 "program_invocation_name, program_invocation_short_name - プログラムの起動に使"
2074 #: build/C/man3/program_invocation_name.3:32
2077 "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
2078 "B<#include E<lt>errno.hE<gt>>\n"
2080 "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */\n"
2081 "B<#include E<lt>errno.hE<gt>>\n"
2084 #: build/C/man3/program_invocation_name.3:35
2087 "B<extern char *>I<program_invocation_name>B<;>\n"
2088 "B<extern char *>I<program_invocation_short_name>B<;>\n"
2090 "B<extern char *>I<program_invocation_name>B<;>\n"
2091 "B<extern char *>I<program_invocation_short_name>B<;>\n"
2094 #: build/C/man3/program_invocation_name.3:46
2096 "I<program_invocation_name> contains the name that was used to invoke the "
2097 "calling program. This is the same as the value of I<argv[0]> in I<main>(), "
2098 "with the difference that the scope of I<program_invocation_name> is global."
2100 "I<program_invocation_name> は、呼び出し元プログラムの起動に使用された名前を保"
2101 "持する。 内容は I<main>() の I<argv[0]> の値と同じだが、 "
2102 "I<program_invocation_name> の方はスコープがグローバルである点が異なる。"
2105 #: build/C/man3/program_invocation_name.3:53
2107 "I<program_invocation_short_name> contains the basename component of name "
2108 "that was used to invoke the calling program. That is, it is the same value "
2109 "as I<program_invocation_name>, with all text up to and including the final "
2110 "slash (/), if any, removed."
2112 "I<program_invocation_short_name> は、呼び出し元プログラムの起動に使用された名"
2113 "前の basename 部分を 保持する。つまり、この変数の内容は、最後のスラッシュ "
2114 "(/) とそれより前の 部分がある場合、 I<program_invocation_name> からこの部分を"
2118 #: build/C/man3/program_invocation_name.3:56
2120 "These variables are automatically initialized by the glibc run-time startup "
2123 "これらの変数は glibc のランタイム・スタートアップ・コードで 自動的に初期化さ"
2127 #: build/C/man3/program_invocation_name.3:59
2129 "These variables are GNU extensions, and should not be used in programs "
2130 "intended to be portable."
2132 "これらの変数は GNU の拡張であり、 移植性が必要なプログラムでは使用すべきでな"
2136 #: build/C/man3/program_invocation_name.3:63
2138 "The Linux-specific I</proc/[number]/cmdline> file provides access to similar "
2141 "Linux 独自のファイル I</proc/[number]/cmdline> でも同様の情報を得ることができ"
2145 #: build/C/man3/program_invocation_name.3:65
2150 #: build/C/man3/queue.3:39
2156 #: build/C/man3/queue.3:39
2162 #: build/C/man3/queue.3:48
2164 "LIST_ENTRY, LIST_HEAD, LIST_INIT, LIST_INSERT_AFTER, LIST_INSERT_HEAD, "
2165 "LIST_REMOVE, TAILQ_ENTRY, TAILQ_HEAD, TAILQ_INIT, TAILQ_INSERT_AFTER, "
2166 "TAILQ_INSERT_HEAD, TAILQ_INSERT_TAIL, TAILQ_REMOVE, CIRCLEQ_ENTRY, "
2167 "CIRCLEQ_HEAD, CIRCLEQ_INIT, CIRCLEQ_INSERT_AFTER, CIRCLEQ_INSERT_BEFORE, "
2168 "CIRCLEQ_INSERT_HEAD, CIRCLEQ_INSERT_TAIL, CIRCLEQ_REMOVE - implementations "
2169 "of lists, tail queues, and circular queues"
2171 "LIST_ENTRY, LIST_HEAD, LIST_INIT, LIST_INSERT_AFTER, LIST_INSERT_HEAD, "
2172 "LIST_REMOVE, TAILQ_ENTRY, TAILQ_HEAD, TAILQ_INIT, TAILQ_INSERT_AFTER, "
2173 "TAILQ_INSERT_HEAD, TAILQ_INSERT_TAIL, TAILQ_REMOVE, CIRCLEQ_ENTRY, "
2174 "CIRCLEQ_HEAD, CIRCLEQ_INIT, CIRCLEQ_INSERT_AFTER, CIRCLEQ_INSERT_BEFORE, "
2175 "CIRCLEQ_INSERT_HEAD, CIRCLEQ_INSERT_TAIL, CIRCLEQ_REMOVE - リスト・テール "
2176 "(tail) キュー・循環キューの実装"
2179 #: build/C/man3/queue.3:51
2181 msgid "B<#include E<lt>sys/queue.hE<gt>>\n"
2182 msgstr "B<#include E<lt>sys/queue.hE<gt>>\n"
2185 #: build/C/man3/queue.3:60
2188 "B<LIST_ENTRY(>I<TYPE>B<);>\n"
2189 "B<LIST_HEAD(>I<HEADNAME>B<, >I<TYPE>B<);>\n"
2190 "B<LIST_INIT(LIST_HEAD *>I<head>B<);>\n"
2191 "B<LIST_INSERT_AFTER(LIST_ENTRY *>I<listelm>B<, >\n"
2192 "B< TYPE *>I<elm>B<, LIST_ENTRY >I<NAME>B<);>\n"
2193 "B<LIST_INSERT_HEAD(LIST_HEAD *>I<head>B<, >\n"
2194 "B< TYPE *>I<elm>B<, LIST_ENTRY >I<NAME>B<);>\n"
2195 "B<LIST_REMOVE(TYPE *>I<elm>B<, LIST_ENTRY >I<NAME>B<);>\n"
2197 "B<LIST_ENTRY(>I<TYPE>B<);>\n"
2198 "B<LIST_HEAD(>I<HEADNAME>B<, >I<TYPE>B<);>\n"
2199 "B<LIST_INIT(LIST_HEAD *>I<head>B<);>\n"
2200 "B<LIST_INSERT_AFTER(LIST_ENTRY *>I<listelm>B<, >\n"
2201 "B< TYPE *>I<elm>B<, LIST_ENTRY >I<NAME>B<);>\n"
2202 "B<LIST_INSERT_HEAD(LIST_HEAD *>I<head>B<, >\n"
2203 "B< TYPE *>I<elm>B<, LIST_ENTRY >I<NAME>B<);>\n"
2204 "B<LIST_REMOVE(TYPE *>I<elm>B<, LIST_ENTRY >I<NAME>B<);>\n"
2207 #: build/C/man3/queue.3:71
2210 "B<TAILQ_ENTRY(>I<TYPE>B<);>\n"
2211 "B<TAILQ_HEAD(>I<HEADNAME>B<, >I<TYPE>B<);>\n"
2212 "B<TAILQ_INIT(TAILQ_HEAD *>I<head>B<);>\n"
2213 "B<TAILQ_INSERT_AFTER(TAILQ_HEAD *>I<head>B<, TYPE *>I<listelm>B<, >\n"
2214 "B< TYPE *>I<elm>B<, TAILQ_ENTRY >I<NAME>B<);>\n"
2215 "B<TAILQ_INSERT_HEAD(TAILQ_HEAD *>I<head>B<, >\n"
2216 "B< TYPE *>I<elm>B<, TAILQ_ENTRY >I<NAME>B<);>\n"
2217 "B<TAILQ_INSERT_TAIL(TAILQ_HEAD *>I<head>B<, >\n"
2218 "B< TYPE *>I<elm>B<, TAILQ_ENTRY >I<NAME>B<);>\n"
2219 "B<TAILQ_REMOVE(TAILQ_HEAD *>I<head>B<, TYPE *>I<elm>B<, TAILQ_ENTRY >I<NAME>B<);>\n"
2221 "B<TAILQ_ENTRY(>I<TYPE>B<);>\n"
2222 "B<TAILQ_HEAD(>I<HEADNAME>B<, >I<TYPE>B<);>\n"
2223 "B<TAILQ_INIT(TAILQ_HEAD *>I<head>B<);>\n"
2224 "B<TAILQ_INSERT_AFTER(TAILQ_HEAD *>I<head>B<, TYPE *>I<listelm>B<, >\n"
2225 "B< TYPE *>I<elm>B<, TAILQ_ENTRY >I<NAME>B<);>\n"
2226 "B<TAILQ_INSERT_HEAD(TAILQ_HEAD *>I<head>B<, >\n"
2227 "B< TYPE *>I<elm>B<, TAILQ_ENTRY >I<NAME>B<);>\n"
2228 "B<TAILQ_INSERT_TAIL(TAILQ_HEAD *>I<head>B<, >\n"
2229 "B< TYPE *>I<elm>B<, TAILQ_ENTRY >I<NAME>B<);>\n"
2230 "B<TAILQ_REMOVE(TAILQ_HEAD *>I<head>B<, TYPE *>I<elm>B<, TAILQ_ENTRY >I<NAME>B<);>\n"
2233 #: build/C/man3/queue.3:85
2236 "B<CIRCLEQ_ENTRY(>I<TYPE>B<);>\n"
2237 "B<CIRCLEQ_HEAD(>I<HEADNAME>B<, >I<TYPE>B<);>\n"
2238 "B<CIRCLEQ_INIT(CIRCLEQ_HEAD *>I<head>B<);>\n"
2239 "B<CIRCLEQ_INSERT_AFTER(CIRCLEQ_HEAD *>I<head>B<, TYPE *>I<listelm>B<, >\n"
2240 "B< TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
2241 "B<CIRCLEQ_INSERT_BEFORE(CIRCLEQ_HEAD *>I<head>B<, TYPE *>I<listelm>B<, >\n"
2242 "B< TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
2243 "B<CIRCLEQ_INSERT_HEAD(CIRCLEQ_HEAD *>I<head>B<, >\n"
2244 "B< TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
2245 "B<CIRCLEQ_INSERT_TAIL(CIRCLEQ_HEAD *>I<head>B<, >\n"
2246 "B< TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
2247 "B<CIRCLEQ_REMOVE(CIRCLEQ_HEAD *>I<head>B<, >\n"
2248 "B< TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
2250 "B<CIRCLEQ_ENTRY(>I<TYPE>B<);>\n"
2251 "B<CIRCLEQ_HEAD(>I<HEADNAME>B<, >I<TYPE>B<);>\n"
2252 "B<CIRCLEQ_INIT(CIRCLEQ_HEAD *>I<head>B<);>\n"
2253 "B<CIRCLEQ_INSERT_AFTER(CIRCLEQ_HEAD *>I<head>B<, TYPE *>I<listelm>B<, >\n"
2254 "B< TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
2255 "B<CIRCLEQ_INSERT_BEFORE(CIRCLEQ_HEAD *>I<head>B<, TYPE *>I<listelm>B<, >\n"
2256 "B< TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
2257 "B<CIRCLEQ_INSERT_HEAD(CIRCLEQ_HEAD *>I<head>B<, >\n"
2258 "B< TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
2259 "B<CIRCLEQ_INSERT_TAIL(CIRCLEQ_HEAD *>I<head>B<, >\n"
2260 "B< TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
2261 "B<CIRCLEQ_REMOVE(CIRCLEQ_HEAD *>I<head>B<, >\n"
2262 "B< TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
2265 #: build/C/man3/queue.3:90
2267 "These macros define and operate on three types of data structures: lists, "
2268 "tail queues, and circular queues. All three structures support the "
2269 "following functionality:"
2271 "これらのマクロは、次の 3 つのデータ構造を定義して操作する: リスト・テール"
2272 "キュー・循環キュー。 3 つのデータ構造すべてにおいて以下の機能がサポートされて"
2276 #: build/C/man3/queue.3:95
2277 msgid "Insertion of a new entry at the head of the list."
2278 msgstr "新たなエントリをリストの先頭に挿入する。"
2281 #: build/C/man3/queue.3:97
2282 msgid "Insertion of a new entry after any element in the list."
2283 msgstr "新たなエントリをリストのどの要素よりも後に挿入する。"
2286 #: build/C/man3/queue.3:99
2287 msgid "Removal of any entry in the list."
2288 msgstr "リストの任意のエントリを削除する。"
2291 #: build/C/man3/queue.3:101
2292 msgid "Forward traversal through the list."
2293 msgstr "リストを順方向に辿る。"
2296 #: build/C/man3/queue.3:106
2298 "Lists are the simplest of the three data structures and support only the "
2299 "above functionality."
2301 "リストは 3 つのデータ構造の中で最も単純であり、 上記の機能のみをサポートす"
2305 #: build/C/man3/queue.3:108
2306 msgid "Tail queues add the following functionality:"
2307 msgstr "テールキューは以下の機能を追加する:"
2310 #: build/C/man3/queue.3:111 build/C/man3/queue.3:133
2311 msgid "Entries can be added at the end of a list."
2312 msgstr "エントリをリストの最後に追加できる。"
2315 #: build/C/man3/queue.3:114 build/C/man3/queue.3:141
2320 #: build/C/man3/queue.3:117 build/C/man3/queue.3:144
2326 #: build/C/man3/queue.3:119 build/C/man3/queue.3:146
2327 msgid "All list insertions and removals must specify the head of the list."
2328 msgstr "全てのリスト挿入と削除において、リストの先頭を指定しなければならない。"
2331 #: build/C/man3/queue.3:119 build/C/man3/queue.3:146
2337 #: build/C/man3/queue.3:121 build/C/man3/queue.3:148
2338 msgid "Each head entry requires two pointers rather than one."
2339 msgstr "各先頭エントリは 1 つではなく 2 つのポインタを必要とする。"
2342 #: build/C/man3/queue.3:121 build/C/man3/queue.3:148
2348 #: build/C/man3/queue.3:124
2350 "Code size is about 15% greater and operations run about 20% slower than "
2352 msgstr "リストと比べて、コードサイズは 15% 大きくなり、操作は 20% 遅くなる。"
2355 #: build/C/man3/queue.3:128
2356 msgid "Circular queues add the following functionality:"
2357 msgstr "循環キューは以下の機能を追加する:"
2360 #: build/C/man3/queue.3:135
2361 msgid "Entries can be added before another entry."
2362 msgstr "エントリを他のエントリの前に追加できる。"
2365 #: build/C/man3/queue.3:137
2366 msgid "They may be traversed backward, from tail to head."
2367 msgstr "逆方向に末尾から先頭へ辿ることができる。"
2370 #: build/C/man3/queue.3:150
2371 msgid "The termination condition for traversal is more complex."
2372 msgstr "辿る際の終了条件がより複雑である。"
2375 #: build/C/man3/queue.3:150
2381 #: build/C/man3/queue.3:153
2383 "Code size is about 40% greater and operations run about 45% slower than "
2385 msgstr "リストと比べて、コードサイズは 40% 大きくなり、操作は 45% 遅くなる。"
2388 #: build/C/man3/queue.3:176
2390 "In the macro definitions, I<TYPE> is the name of a user-defined structure, "
2391 "that must contain a field of type B<LIST_ENTRY>, B<TAILQ_ENTRY>, or "
2392 "B<CIRCLEQ_ENTRY>, named I<NAME>. The argument I<HEADNAME> is the name of a "
2393 "user-defined structure that must be declared using the macros B<LIST_HEAD>, "
2394 "B<TAILQ_HEAD>, or B<CIRCLEQ_HEAD>. See the examples below for further "
2395 "explanation of how these macros are used."
2397 "マクロ定義において I<TYPE> はユーザ定義構造体の名前であり、 B<LIST_ENTRY>, "
2398 "B<TAILQ_ENTRY>, B<CIRCLEQ_ENTRY> の何れか型のフィールドと 指定された I<NAME> "
2399 "を含まなければならない。 引き数 I<HEADNAME> はユーザ定義構造体の名前であり、 "
2400 "マクロ B<LIST_HEAD>, B<TAILQ_HEAD>, B<CIRCLEQ_HEAD> を用いて宣言されなければ"
2401 "ならない。 これらのマクロがどのように使われるかについての更なる説明は、 以下"
2405 #: build/C/man3/queue.3:176
2411 #: build/C/man3/queue.3:189
2413 "A list is headed by a structure defined by the B<LIST_HEAD> macro. This "
2414 "structure contains a single pointer to the first element on the list. The "
2415 "elements are doubly linked so that an arbitrary element can be removed "
2416 "without traversing the list. New elements can be added to the list after an "
2417 "existing element or at the head of the list. A B<LIST_HEAD> structure is "
2418 "declared as follows:"
2420 "リストの先頭には、 B<LIST_HEAD> マクロで定義される構造体が置かれる。 この構造"
2421 "体はリストの最初の要素へのポインタを 1 つ含む。 要素は 2 重にリンクされてお"
2422 "り、 任意の要素はリストを辿らずに削除できる。 新しい要素は既存の要素の後また"
2423 "はリストの先頭に追加できる。 B<LIST_HEAD> 構造体は以下のように宣言されている:"
2426 #: build/C/man3/queue.3:193
2428 msgid "LIST_HEAD(HEADNAME, TYPE) head;\n"
2429 msgstr "LIST_HEAD(HEADNAME, TYPE) head;\n"
2432 #: build/C/man3/queue.3:202
2434 "where I<HEADNAME> is the name of the structure to be defined, and I<TYPE> is "
2435 "the type of the elements to be linked into the list. A pointer to the head "
2436 "of the list can later be declared as:"
2438 "ここで I<HEADNAME> は定義される構造体の名前であり、 I<TYPE> はリンク内でリン"
2439 "クされる要素の型である。 リストの先頭へのポインタは、その後で次のように宣言さ"
2443 #: build/C/man3/queue.3:206 build/C/man3/queue.3:299 build/C/man3/queue.3:401
2445 msgid "struct HEADNAME *headp;\n"
2446 msgstr "struct HEADNAME *headp;\n"
2449 #: build/C/man3/queue.3:214 build/C/man3/queue.3:307 build/C/man3/queue.3:409
2450 msgid "(The names I<head> and I<headp> are user selectable.)"
2451 msgstr "(名前 I<head> と I<headp> はユーザが選択できる。)"
2454 #: build/C/man3/queue.3:219
2456 "The macro B<LIST_ENTRY> declares a structure that connects the elements in "
2458 msgstr "マクロ B<LIST_ENTRY> はリストの要素を接続する構造体を宣言する。"
2461 #: build/C/man3/queue.3:224
2462 msgid "The macro B<LIST_INIT> initializes the list referenced by I<head>."
2463 msgstr "マクロ B<LIST_INIT> は I<head> で参照されるリストを初期化する。"
2466 #: build/C/man3/queue.3:230
2468 "The macro B<LIST_INSERT_HEAD> inserts the new element I<elm> at the head of "
2471 "マクロ B<LIST_INSERT_HEAD> は新たな要素 I<elm> をリストの先頭に挿入する。"
2474 #: build/C/man3/queue.3:237
2476 "The macro B<LIST_INSERT_AFTER> inserts the new element I<elm> after the "
2477 "element I<listelm>."
2479 "マクロ B<LIST_INSERT_AFTER> は新たな要素 I<elm> を要素 I<listelm> の後に挿入"
2483 #: build/C/man3/queue.3:243
2484 msgid "The macro B<LIST_REMOVE> removes the element I<elm> from the list."
2485 msgstr "マクロ B<LIST_REMOVE> は要素 I<elm> をリストから削除する。"
2488 #: build/C/man3/queue.3:243
2490 msgid "List example"
2494 #: build/C/man3/queue.3:252
2497 "LIST_HEAD(listhead, entry) head;\n"
2498 "struct listhead *headp; /* List head. */\n"
2501 " LIST_ENTRY(entry) entries; /* List. */\n"
2503 "} *n1, *n2, *np;\n"
2505 "LIST_HEAD(listhead, entry) head;\n"
2506 "struct listhead *headp; /* リストの先頭。*/\n"
2509 " LIST_ENTRY(entry) entries; /* リスト。 */\n"
2511 "} *n1, *n2, *np;\n"
2514 #: build/C/man3/queue.3:254
2516 msgid "LIST_INIT(&head); /* Initialize the list. */\n"
2517 msgstr "LIST_INIT(&head); /* リストを初期化する。*/\n"
2520 #: build/C/man3/queue.3:257
2523 "n1 = malloc(sizeof(struct entry)); /* Insert at the head. */\n"
2524 "LIST_INSERT_HEAD(&head, n1, entries);\n"
2526 "n1 = malloc(sizeof(struct entry)); /* 先頭に挿入する。*/\n"
2527 "LIST_INSERT_HEAD(&head, n1, entries);\n"
2530 #: build/C/man3/queue.3:263
2533 "n2 = malloc(sizeof(struct entry)); /* Insert after. */\n"
2534 "LIST_INSERT_AFTER(n1, n2, entries);\n"
2535 " /* Forward traversal. */\n"
2536 "for (np = head.lh_first; np != NULL; np = np-E<gt>entries.le_next)\n"
2539 "n2 = malloc(sizeof(struct entry)); /* 後ろに挿入する。*/\n"
2540 "LIST_INSERT_AFTER(n1, n2, entries);\n"
2542 "for (np = head.lh_first; np != NULL; np = np-E<gt>entries.le_next)\n"
2545 #. FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=1506
2547 #: build/C/man3/queue.3:267
2550 "while (head.lh_first != NULL) /* Delete. */\n"
2551 " LIST_REMOVE(head.lh_first, entries);\n"
2553 "while (head.lh_first != NULL) /* 削除する。*/\n"
2554 " LIST_REMOVE(head.lh_first, entries);\n"
2557 #: build/C/man3/queue.3:268
2563 #: build/C/man3/queue.3:282
2565 "A tail queue is headed by a structure defined by the B<TAILQ_HEAD> macro. "
2566 "This structure contains a pair of pointers, one to the first element in the "
2567 "tail queue and the other to the last element in the tail queue. The "
2568 "elements are doubly linked so that an arbitrary element can be removed "
2569 "without traversing the tail queue. New elements can be added to the tail "
2570 "queue after an existing element, at the head of the tail queue, or at the "
2571 "end of the tail queue. A B<TAILQ_HEAD> structure is declared as follows:"
2573 "テールキューの先頭には B<TAILQ_HEAD> マクロで定義される構造体が置かれる。 こ"
2574 "の構造体は 1 組のポインタを含んでいる。 1 つはテールキューの最初の要素へのポ"
2575 "インタであり、 もう 1 つはテールキューの最後の要素へのポインタである。 要素"
2576 "は 2 重にリンクされており、 任意の要素はテールキューを辿らずに削除できる。 新"
2577 "しい要素は既存の要素の後またはテールキューの先頭または末尾に追加できる。 "
2578 "B<TAILQ_HEAD> 構造体は以下のように定義されている:"
2581 #: build/C/man3/queue.3:286
2583 msgid "TAILQ_HEAD(HEADNAME, TYPE) head;\n"
2584 msgstr "TAILQ_HEAD(HEADNAME, TYPE) head;\n"
2587 #: build/C/man3/queue.3:295
2589 "where I<HEADNAME> is the name of the structure to be defined, and I<TYPE> is "
2590 "the type of the elements to be linked into the tail queue. A pointer to the "
2591 "head of the tail queue can later be declared as:"
2593 "ここで I<HEADNAME> は定義される構造体の名前であり、 I<TYPE> はテールキュー内"
2594 "でリンクされる要素の型である。 テールキューの先頭へのポインタは、その後で次の"
2598 #: build/C/man3/queue.3:312
2600 "The macro B<TAILQ_ENTRY> declares a structure that connects the elements in "
2602 msgstr "マクロ B<TAILQ_ENTRY> はテールキューの要素を接続する構造体を宣言する。"
2605 #: build/C/man3/queue.3:317
2607 "The macro B<TAILQ_INIT> initializes the tail queue referenced by I<head>."
2608 msgstr "マクロ B<TAILQ_INIT> は I<head> で参照されるテールキューを初期化する。"
2611 #: build/C/man3/queue.3:323
2613 "The macro B<TAILQ_INSERT_HEAD> inserts the new element I<elm> at the head of "
2616 "マクロ B<TAILQ_INSERT_HEAD> は新たな要素 I<elm> をテールキューの先頭に挿入す"
2620 #: build/C/man3/queue.3:329
2622 "The macro B<TAILQ_INSERT_TAIL> inserts the new element I<elm> at the end of "
2625 "マクロ B<TAILQ_INSERT_TAIL> は新たな要素 I<elm> をテールキューの末尾に挿入す"
2629 #: build/C/man3/queue.3:336
2631 "The macro B<TAILQ_INSERT_AFTER> inserts the new element I<elm> after the "
2632 "element I<listelm>."
2634 "マクロ B<TAILQ_INSERT_AFTER> は新たな要素 I<elm> を要素 I<listelm> の後に挿入"
2638 #: build/C/man3/queue.3:342
2640 "The macro B<TAILQ_REMOVE> removes the element I<elm> from the tail queue."
2641 msgstr "マクロ B<TAILQ_REMOVE> は要素 I<elm> をテールキューから削除する。"
2644 #: build/C/man3/queue.3:342
2646 msgid "Tail queue example"
2650 #: build/C/man3/queue.3:351
2653 "TAILQ_HEAD(tailhead, entry) head;\n"
2654 "struct tailhead *headp; /* Tail queue head. */\n"
2657 " TAILQ_ENTRY(entry) entries; /* Tail queue. */\n"
2659 "} *n1, *n2, *np;\n"
2661 "TAILQ_HEAD(tailhead, entry) head;\n"
2662 "struct tailhead *headp; /* テールキューの先頭。*/\n"
2665 " TAILQ_ENTRY(entry) entries; /* テールキュー。*/\n"
2667 "} *n1, *n2, *np;\n"
2670 #: build/C/man3/queue.3:353
2672 msgid "TAILQ_INIT(&head); /* Initialize the queue. */\n"
2673 msgstr "TAILQ_INIT(&head); /* キューを初期化する。*/\n"
2676 #: build/C/man3/queue.3:356
2679 "n1 = malloc(sizeof(struct entry)); /* Insert at the head. */\n"
2680 "TAILQ_INSERT_HEAD(&head, n1, entries);\n"
2682 "n1 = malloc(sizeof(struct entry)); /* 先頭に挿入する。*/\n"
2683 "TAILQ_INSERT_HEAD(&head, n1, entries);\n"
2686 #: build/C/man3/queue.3:359
2689 "n1 = malloc(sizeof(struct entry)); /* Insert at the tail. */\n"
2690 "TAILQ_INSERT_TAIL(&head, n1, entries);\n"
2692 "n1 = malloc(sizeof(struct entry)); /* 末尾に挿入する。*/\n"
2693 "TAILQ_INSERT_TAIL(&head, n1, entries);\n"
2696 #: build/C/man3/queue.3:368
2699 "n2 = malloc(sizeof(struct entry)); /* Insert after. */\n"
2700 "TAILQ_INSERT_AFTER(&head, n1, n2, entries);\n"
2701 " /* Forward traversal. */\n"
2702 "for (np = head.tqh_first; np != NULL; np = np-E<gt>entries.tqe_next)\n"
2705 "while (head.tqh_first != NULL)\n"
2706 " TAILQ_REMOVE(&head, head.tqh_first, entries);\n"
2708 "n2 = malloc(sizeof(struct entry)); /* 後ろに挿入する。*/\n"
2709 "TAILQ_INSERT_AFTER(&head, n1, n2, entries);\n"
2711 "for (np = head.tqh_first; np != NULL; np = np-E<gt>entries.tqe_next)\n"
2714 "while (head.tqh_first != NULL)\n"
2715 " TAILQ_REMOVE(&head, head.tqh_first, entries);\n"
2718 #: build/C/man3/queue.3:369
2720 msgid "Circular queues"
2724 #: build/C/man3/queue.3:384
2726 "A circular queue is headed by a structure defined by the B<CIRCLEQ_HEAD> "
2727 "macro. This structure contains a pair of pointers, one to the first element "
2728 "in the circular queue and the other to the last element in the circular "
2729 "queue. The elements are doubly linked so that an arbitrary element can be "
2730 "removed without traversing the queue. New elements can be added to the "
2731 "queue after an existing element, before an existing element, at the head of "
2732 "the queue, or at the end of the queue. A B<CIRCLEQ_HEAD> structure is "
2733 "declared as follows:"
2735 "循環キューの先頭には B<CIRCLEQ_HEAD> マクロで定義される構造体が置かれる。 こ"
2736 "の構造体は 1 組のポインタを含んでいる。 1 つは循環キューの最初の要素へのポイ"
2737 "ンタであり、 もう 1 つは循環キューの最後の要素へのポインタである。 要素は 2 "
2738 "重にリンクされており、 任意の要素はキューを辿らずに削除できる。 新しい要素"
2739 "は、既存の要素の後または前、またはキューの先頭または末尾に追加できる。 A "
2740 "B<CIRCLEQ_HEAD> 構造体は以下のように定義されている:"
2743 #: build/C/man3/queue.3:388
2745 msgid "CIRCLEQ_HEAD(HEADNAME, TYPE) head;\n"
2746 msgstr "CIRCLEQ_HEAD(HEADNAME, TYPE) head;\n"
2749 #: build/C/man3/queue.3:397
2751 "where I<HEADNAME> is the name of the structure to be defined, and I<TYPE> is "
2752 "the type of the elements to be linked into the circular queue. A pointer to "
2753 "the head of the circular queue can later be declared as:"
2755 "ここで I<HEADNAME> は定義される構造体の名前であり、 I<TYPE> は循環キュー内で"
2756 "リンクされる要素の型である。 循環キューの先頭へのポインタは、その後で次のよう"
2760 #: build/C/man3/queue.3:414
2762 "The macro B<CIRCLEQ_ENTRY> declares a structure that connects the elements "
2763 "in the circular queue."
2764 msgstr "マクロ B<CIRCLEQ_ENTRY> は循環キューの要素を接続する構造体を宣言する。"
2767 #: build/C/man3/queue.3:419
2769 "The macro B<CIRCLEQ_INIT> initializes the circular queue referenced by "
2771 msgstr "マクロ B<CIRCLEQ_INIT> は I<head> で参照される循環キューを初期化する。"
2774 #: build/C/man3/queue.3:425
2776 "The macro B<CIRCLEQ_INSERT_HEAD> inserts the new element I<elm> at the head "
2777 "of the circular queue."
2779 "マクロ B<CIRCLEQ_INSERT_HEAD> は新たな要素 I<elm> を循環キューの先頭に挿入す"
2783 #: build/C/man3/queue.3:431
2785 "The macro B<CIRCLEQ_INSERT_TAIL> inserts the new element I<elm> at the end "
2786 "of the circular queue."
2788 "マクロ B<CIRCLEQ_INSERT_TAIL> は新たな要素 I<elm> を循環キューの末尾に挿入す"
2792 #: build/C/man3/queue.3:438
2794 "The macro B<CIRCLEQ_INSERT_AFTER> inserts the new element I<elm> after the "
2795 "element I<listelm>."
2797 "マクロ B<CIRCLEQ_INSERT_AFTER> は新たな要素 I<elm> を要素 I<listelm> の後に挿"
2801 #: build/C/man3/queue.3:445
2803 "The macro B<CIRCLEQ_INSERT_BEFORE> inserts the new element I<elm> before the "
2804 "element I<listelm>."
2806 "マクロ B<CIRCLEQ_INSERT_AFTER> は新たな要素 I<elm> を要素 I<listelm> の前に挿"
2810 #: build/C/man3/queue.3:451
2812 "The macro B<CIRCLEQ_REMOVE> removes the element I<elm> from the circular "
2814 msgstr "マクロ B<CIRCLEQ_REMOVE> は要素 I<elm> を循環キューから削除する。"
2817 #: build/C/man3/queue.3:451
2819 msgid "Circular queue example"
2823 #: build/C/man3/queue.3:460
2826 "CIRCLEQ_HEAD(circleq, entry) head;\n"
2827 "struct circleq *headp; /* Circular queue head. */\n"
2830 " CIRCLEQ_ENTRY(entry) entries; /* Circular queue. */\n"
2832 "} *n1, *n2, *np;\n"
2834 "CIRCLEQ_HEAD(circleq, entry) head;\n"
2835 "struct circleq *headp; /* 循環キューの先頭。*/\n"
2838 " CIRCLEQ_ENTRY(entry) entries; /* 循環キュー。*/\n"
2840 "} *n1, *n2, *np;\n"
2843 #: build/C/man3/queue.3:462
2845 msgid "CIRCLEQ_INIT(&head); /* Initialize the circular queue. */\n"
2846 msgstr "CIRCLEQ_INIT(&head); /* 循環キューを初期化する。*/\n"
2849 #: build/C/man3/queue.3:465
2852 "n1 = malloc(sizeof(struct entry)); /* Insert at the head. */\n"
2853 "CIRCLEQ_INSERT_HEAD(&head, n1, entries);\n"
2855 "n1 = malloc(sizeof(struct entry)); /* 先頭に挿入する。*/\n"
2856 "CIRCLEQ_INSERT_HEAD(&head, n1, entries);\n"
2859 #: build/C/man3/queue.3:468
2862 "n1 = malloc(sizeof(struct entry)); /* Insert at the tail. */\n"
2863 "CIRCLEQ_INSERT_TAIL(&head, n1, entries);\n"
2865 "n1 = malloc(sizeof(struct entry)); /* 末尾に挿入する。*/\n"
2866 "CIRCLEQ_INSERT_TAIL(&head, n1, entries);\n"
2869 #: build/C/man3/queue.3:471
2872 "n2 = malloc(sizeof(struct entry)); /* Insert after. */\n"
2873 "CIRCLEQ_INSERT_AFTER(&head, n1, n2, entries);\n"
2875 "n2 = malloc(sizeof(struct entry)); /* 後ろに挿入する。*/\n"
2876 "CIRCLEQ_INSERT_AFTER(&head, n1, n2, entries);\n"
2879 #: build/C/man3/queue.3:484
2882 "n2 = malloc(sizeof(struct entry)); /* Insert before. */\n"
2883 "CIRCLEQ_INSERT_BEFORE(&head, n1, n2, entries);\n"
2884 " /* Forward traversal. */\n"
2885 "for (np = head.cqh_first; np != (void *)&head;\n"
2886 " np = np-E<gt>entries.cqe_next)\n"
2888 " /* Reverse traversal. */\n"
2889 "for (np = head.cqh_last; np != (void *)&head; np = np-E<gt>entries.cqe_prev)\n"
2892 "while (head.cqh_first != (void *)&head)\n"
2893 " CIRCLEQ_REMOVE(&head, head.cqh_first, entries);\n"
2895 "n2 = malloc(sizeof(struct entry)); /* 前に挿入する。*/\n"
2896 "CIRCLEQ_INSERT_BEFORE(&head, n1, n2, entries);\n"
2898 "for (np = head.cqh_first; np != (void *)&head; np = np-E<gt>entries.cqe_next)\n"
2901 "for (np = head.cqh_last; np != (void *)&head; np = np-E<gt>entries.cqe_prev)\n"
2904 "while (head.cqh_first != (void *)&head)\n"
2905 " CIRCLEQ_REMOVE(&head, head.cqh_first, entries);\n"
2908 #: build/C/man3/queue.3:491
2910 "Not in POSIX.1-2001. Present on the BSDs. The queue functions first "
2911 "appeared in 4.4BSD."
2913 "POSIX.1-2001 にはない。 BSD 系に存在する。 queue 関数は 4.4BSD で初めて登場し"
2917 #: build/C/man3/realpath.3:28
2923 #: build/C/man3/realpath.3:28
2929 #: build/C/man3/realpath.3:31
2930 msgid "realpath - return the canonicalized absolute pathname"
2931 msgstr "realpath - 正規化された絶対パス名を返す"
2934 #: build/C/man3/realpath.3:35
2937 "B<#include E<lt>limits.hE<gt>>\n"
2938 "B<#include E<lt>stdlib.hE<gt>>\n"
2940 "B<#include E<lt>limits.hE<gt>>\n"
2941 "B<#include E<lt>stdlib.hE<gt>>\n"
2944 #: build/C/man3/realpath.3:37
2946 msgid "B<char *realpath(const char *>I<path>B<, char *>I<resolved_path>B<);>\n"
2947 msgstr "B<char *realpath(const char *>I<path>B<, char *>I<resolved_path>B<);>\n"
2950 #: build/C/man3/realpath.3:45
2951 msgid "B<realpath>():"
2952 msgstr "B<realpath>():"
2955 #: build/C/man3/realpath.3:49
2957 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2958 "_XOPEN_SOURCE_EXTENDED"
2960 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2961 "_XOPEN_SOURCE_EXTENDED"
2964 #: build/C/man3/realpath.3:71
2966 "B<realpath>() expands all symbolic links and resolves references to I</./>, "
2967 "I</../> and extra \\(aq/\\(aq characters in the null-terminated string named "
2968 "by I<path> to produce a canonicalized absolute pathname. The resulting "
2969 "pathname is stored as a null-terminated string, up to a maximum of "
2970 "B<PATH_MAX> bytes, in the buffer pointed to by I<resolved_path>. The "
2971 "resulting path will have no symbolic link, I</./> or I</../> components."
2973 "B<realpath>() は I<path> として与えられた NULL 終端された文字列中の すべての"
2974 "シンボリックリンクを展開し、 I</./>, I</../> による参照や余分な \\(aq/\\(aq "
2975 "を解決して、正規化された絶対パス名を生成する。 得られた絶対パス名は、最大で "
2976 "B<PATH_MAX> バイトの NULL 終端された文字列として、 I<resolved_path> により参"
2977 "照されるバッファに格納される。 結果として返るパスの中には、シンボリックリンク"
2978 "や I</./>, I</../> といった要素は含まれない。"
2980 #. Even if we use resolved_path == NULL, then realpath() will still
2981 #. return ENAMETOOLONG if the resolved pathname would exceed PATH_MAX
2982 #. bytes -- MTK, Dec 04
2986 #. function first appeared in 4.4BSD, contributed by Jan-Simon Pendry.
2988 #: build/C/man3/realpath.3:91
2990 "If I<resolved_path> is specified as NULL, then B<realpath>() uses B<malloc>"
2991 "(3) to allocate a buffer of up to B<PATH_MAX> bytes to hold the resolved "
2992 "pathname, and returns a pointer to this buffer. The caller should "
2993 "deallocate this buffer using B<free>(3)."
2995 "I<resolved_path> に NULL が指定されると、 B<realpath>() は B<malloc>(3) を"
2996 "使って解決したパス名を保持するためのバッファを 最大で B<PATH_MAX> バイトまで"
2997 "割り当て、このバッファへのポインタを返す。 呼び出し元は、 B<free>(3) を使っ"
3001 #: build/C/man3/realpath.3:96
3003 "If there is no error, B<realpath>() returns a pointer to the "
3006 "エラーがなかった場合、 B<realpath>() は I<resolved_path> へのポインターを返"
3010 #: build/C/man3/realpath.3:103
3012 "Otherwise, it returns a NULL pointer, the contents of the array "
3013 "I<resolved_path> are undefined, and I<errno> is set to indicate the error."
3015 "それ以外の場合は、ヌル (NULL) ポインターが返り、配列 I<resolved_path> の内容"
3016 "は不定となり、 I<errno> にエラーの内容を示す値がセットされる。"
3019 #: build/C/man3/realpath.3:103
3025 #: build/C/man3/realpath.3:104
3031 #: build/C/man3/realpath.3:107
3033 "Read or search permission was denied for a component of the path prefix."
3035 "パスのディレクトリ部分に、読み出し許可または検索許可が与えられていない。"
3038 #: build/C/man3/realpath.3:107
3043 #. (In libc5 this would just cause a segfault.)
3045 #: build/C/man3/realpath.3:116
3047 "I<path> is NULL. (In glibc versions before 2.3, this error is also returned "
3048 "if I<resolved_path> is NULL.)"
3050 "I<path> が NULL である。 (バージョン 2.3 より前の glibc では、 "
3051 "I<resolved_path> が NULL の場合にもこのエラーが返される。)"
3054 #: build/C/man3/realpath.3:116
3060 #: build/C/man3/realpath.3:119
3061 msgid "An I/O error occurred while reading from the file system."
3062 msgstr "ファイルシステムを読むときに、I/Oエラーが起こった。"
3065 #: build/C/man3/realpath.3:119
3071 #: build/C/man3/realpath.3:122
3072 msgid "Too many symbolic links were encountered in translating the pathname."
3073 msgstr "パス名の変換にあたり、解決すべきシンボリック・リンクの数が多過ぎた。"
3076 #: build/C/man3/realpath.3:122
3078 msgid "B<ENAMETOOLONG>"
3079 msgstr "B<ENAMETOOLONG>"
3082 #: build/C/man3/realpath.3:129
3084 "A component of a pathname exceeded B<NAME_MAX> characters, or an entire "
3085 "pathname exceeded B<PATH_MAX> characters."
3087 "パス名の一要素の文字数が B<NAME_MAX> を越えている、またはパス名全体の文字数"
3088 "が B<PATH_MAX> を越えている。"
3091 #: build/C/man3/realpath.3:129
3097 #: build/C/man3/realpath.3:132
3098 msgid "The named file does not exist."
3099 msgstr "指定されたファイルが存在しない。"
3102 #: build/C/man3/realpath.3:132
3108 #: build/C/man3/realpath.3:135
3109 msgid "A component of the path prefix is not a directory."
3110 msgstr "パスのディレクトリ要素が、ディレクトリでない。"
3113 #: build/C/man3/realpath.3:137
3114 msgid "On Linux, this function appeared in libc 4.5.21."
3115 msgstr "Linux では、この関数が登場したのは libc 4.5.21 である。"
3118 #: build/C/man3/realpath.3:139
3119 msgid "4.4BSD, POSIX.1-2001."
3120 msgstr "4.4BSD, POSIX.1-2001."
3123 #: build/C/man3/realpath.3:144
3125 "POSIX.1-2001 says that the behavior if I<resolved_path> is NULL is "
3126 "implementation-defined. POSIX.1-2008 specifies the behavior described in "
3129 "POSIX.1-2001 では I<resolved_path> が NULL の場合の動作は実装に依存するとして"
3130 "いる。 POSIX.1-2008 では、このマニュアルページに書かれている動作が規定されて"
3134 #: build/C/man3/realpath.3:156
3136 "In 4.4BSD and Solaris, the limit on the pathname length is B<MAXPATHLEN> "
3137 "(found in I<E<lt>sys/param.hE<gt>>). SUSv2 prescribes B<PATH_MAX> and "
3138 "B<NAME_MAX>, as found in I<E<lt>limits.hE<gt>> or provided by the B<pathconf>"
3139 "(3) function. A typical source fragment would be"
3141 "4.4BSD と Solaris では、パス名の長さの上限は (I<E<lt>sys/param.hE<gt>> の中に"
3142 "ある) B<MAXPATHLEN> である。SUSv2 では B<PATH_MAX> と B<NAME_MAX> が規定され"
3143 "ており、 これらは I<E<lt>limits.hE<gt>> で定義されているか、 B<pathconf>(3) "
3144 "関数から得られる。以下のようなソースコードになっていることが多い。"
3147 #: build/C/man3/realpath.3:166
3151 " path_max = PATH_MAX;\n"
3153 " path_max = pathconf(path, _PC_PATH_MAX);\n"
3154 " if (path_max E<lt>= 0)\n"
3155 " path_max = 4096;\n"
3159 " path_max = PATH_MAX;\n"
3161 " path_max = pathconf(path, _PC_PATH_MAX);\n"
3162 " if (path_max E<lt>= 0)\n"
3163 "\t path_max = 4096;\n"
3167 #: build/C/man3/realpath.3:170
3168 msgid "(But see the BUGS section.)"
3169 msgstr "(バグの章も参照のこと。)"
3171 #. 2012-05-05, According to Casper Dik, the statement about
3172 #. Solaris was not true at least as far back as 1997, and
3173 #. may never have been true.
3174 #. The 4.4BSD, Linux and SUSv2 versions always return an absolute
3176 #. Solaris may return a relative pathname when the
3178 #. argument is relative.
3180 #: build/C/man3/realpath.3:184
3182 "The prototype of B<realpath>() is given in I<E<lt>unistd.hE<gt>> in libc4 "
3183 "and libc5, but in I<E<lt>stdlib.hE<gt>> everywhere else."
3185 "B<realpath>() のプロトタイプ宣言は、 libc4 と libc5 では\n"
3186 "I<E<lt>unistd.hE<gt>> にあるが、それ以外の環境ではいずれも\n"
3187 "I<E<lt>stdlib.hE<gt>> にある。"
3190 #: build/C/man3/realpath.3:184
3192 msgid "GNU extensions"
3196 #: build/C/man3/realpath.3:195
3198 "If the call fails with either B<EACCES> or B<ENOENT> and I<resolved_path> is "
3199 "not NULL, then the prefix of I<path> that is not readable or does not exist "
3200 "is returned in I<resolved_path>."
3202 "呼び出しが B<EACCES> か B<ENOENT> で失敗し I<resolved_path> が NULL でない場"
3203 "合、読むことができない、もしくは存在しない I<path> のディレクトリ要素 "
3204 "(prefix) が I<resolved_path> で返される。"
3207 #: build/C/man3/realpath.3:220
3209 "The POSIX.1-2001 standard version of this function is broken by design, "
3210 "since it is impossible to determine a suitable size for the output buffer, "
3211 "I<resolved_path>. According to POSIX.1-2001 a buffer of size B<PATH_MAX> "
3212 "suffices, but B<PATH_MAX> need not be a defined constant, and may have to be "
3213 "obtained using B<pathconf>(3). And asking B<pathconf>(3) does not really "
3214 "help, since, on the one hand POSIX warns that the result of B<pathconf>(3) "
3215 "may be huge and unsuitable for mallocing memory, and on the other hand "
3216 "B<pathconf>(3) may return -1 to signify that B<PATH_MAX> is not bounded. "
3217 "The I<resolved_path\\ ==\\ NULL> feature, not standardized in POSIX.1-2001, "
3218 "but standardized in POSIX.1-2008, allows this design problem to be avoided."
3220 "この関数の POSIX.1-2001 版は、設計段階から問題がある。 出力バッファ "
3221 "I<resolved_path> の適切なサイズを決定することができないからである。 "
3222 "POSIX.1-2001 ではバッファ・サイズとして B<PATH_MAX> は十分だとされているが、 "
3223 "B<PATH_MAX> は定義済の定数である必要はなく、 B<pathconf>(3) を使って得られる"
3224 "値であってもよいことになっている。 B<pathconf>(3) からバッファ・サイズを取得"
3225 "したとしても必ずしも十分ではない。 なぜなら、POSIX で警告されているように、 "
3226 "B<pathconf>(3) の返り値が大き過ぎて適切にメモリを確保することができない かも"
3227 "しれない一方で、 B<pathconf>(3) は B<PATH_MAX> に制限がないことを示す -1 を"
3228 "返すかもしれないからである。 I<resolved_path\\ ==\\ NULL> の機能を使うと、こ"
3229 "の設計上の問題を回避することができる。 この機能は POSIX.1-2001 では標準化され"
3230 "ていないが、 POSIX.1-2008 では標準化されている。"
3233 #: build/C/man3/realpath.3:226
3235 "The libc4 and libc5 implementation contained a buffer overflow (fixed in "
3236 "libc-5.4.13). Thus, set-user-ID programs like B<mount>(8) needed a private "
3239 "libc4 と libc5 の実装はバッファ・オーバーフローの可能性を持っていた "
3240 "(libc-5.4.13 で修正されたが)。したがって、 B<mount>(8) のような set-user-ID "
3241 "されるプログラムでは、この関数相当の関数を自前で持つ必要があった。"
3244 #: build/C/man3/realpath.3:232
3246 "B<readlink>(2), B<canonicalize_file_name>(3), B<getcwd>(3), B<pathconf>(3), "
3249 "B<readlink>(2), B<canonicalize_file_name>(3), B<getcwd>(3), B<pathconf>(3), "
3253 #: build/C/man3/setjmp.3:27
3259 #: build/C/man3/setjmp.3:27
3265 #: build/C/man3/setjmp.3:30
3266 msgid "setjmp, sigsetjmp - save stack context for nonlocal goto"
3268 "setjmp, sigsetjmp - 非局所的なジャンプのために、スタックコンテキスト (stack "
3272 #: build/C/man3/setjmp.3:32
3273 msgid "B<#include E<lt>setjmp.hE<gt>>"
3274 msgstr "B<#include E<lt>setjmp.hE<gt>>"
3277 #: build/C/man3/setjmp.3:35
3279 msgid "B<int setjmp(jmp_buf >I<env>B<);>\n"
3280 msgstr "B<int setjmp(jmp_buf >I<env>B<);>\n"
3283 #: build/C/man3/setjmp.3:37
3285 msgid "B<int sigsetjmp(sigjmp_buf >I<env>B<, int >I<savesigs>B<);>\n"
3286 msgstr "B<int sigsetjmp(sigjmp_buf >I<env>B<, int >I<savesigs>B<);>\n"
3289 #: build/C/man3/setjmp.3:46
3290 msgid "B<setjmp>(): see NOTES."
3291 msgstr "B<setjmp>(): 「注意」参照。"
3294 #: build/C/man3/setjmp.3:49
3296 "B<sigsetjmp>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
3299 "B<sigsetjmp>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
3303 #: build/C/man3/setjmp.3:65
3305 "B<setjmp>() and B<longjmp>(3) are useful for dealing with errors and "
3306 "interrupts encountered in a low-level subroutine of a program. B<setjmp>() "
3307 "saves the stack context/environment in I<env> for later use by B<longjmp>"
3308 "(3). The stack context will be invalidated if the function which called "
3309 "B<setjmp>() returns."
3311 "B<setjmp>() と B<longjmp>(3) は、プログラムの低レベルなサブルーチン におい"
3312 "て、エラーや割り込みが発生した時の処理に便利である。 B<setjmp>() は、 "
3313 "B<longjmp>(3) によって使われる I<env> に スタックコンテキスト/スタック環境を"
3314 "保存する。 B<setjmp>() を呼び出した 関数が返るときに、そのスタックコンテキス"
3318 #: build/C/man3/setjmp.3:78
3320 "B<sigsetjmp>() is similar to B<setjmp>(). If, and only if, I<savesigs> is "
3321 "nonzero, the process's current signal mask is saved in I<env> and will be "
3322 "restored if a B<siglongjmp>(3) is later performed with this I<env>."
3324 "B<sigsetjmp>() も B<setjmp>() と同様である。 I<savesigs> が 0 以外の場合、 "
3325 "このプロセスの現在のシグナルマスクも I<env> に保存され、 このシグナルは後で "
3326 "B<siglongjmp>(3) がこの I<env> で実行された際に復元される。"
3329 #: build/C/man3/setjmp.3:88
3331 "B<setjmp>() and B<sigsetjmp>() return 0 if returning directly, and nonzero "
3332 "when returning from B<longjmp>(3) or B<siglongjmp>(3) using the saved "
3335 "直接返ってくるときは、 B<setjmp>() と B<sigsetjmp>() は 0 を返し、保存した"
3336 "コンテキストを使って B<longjmp>(3) や B<siglongjmp>(3) から返ってくるとき"
3340 #: build/C/man3/setjmp.3:93
3342 "C89, C99, and POSIX.1-2001 specify B<setjmp>(). POSIX.1-2001 specifies "
3345 "B<setjmp>() は C89, C99, POSIX.1-2001 で規定されている。 B<sigsetjmp>() は "
3346 "POSIX.1-2001 で規定されている。"
3349 #: build/C/man3/setjmp.3:114
3351 "POSIX does not specify whether B<setjmp>() will save the signal mask. In "
3352 "System V it will not. In 4.3BSD it will, and there is a function B<_setjmp> "
3353 "that will not. By default, Linux/glibc follows the System V behavior, but "
3354 "the BSD behavior is provided if the B<_BSD_SOURCE> feature test macro is "
3355 "defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
3356 "B<_XOPEN_SOURCE_EXTENDED>, B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined."
3358 "POSIX は、 B<setjmp>() がシグナルマスクを保存すべきかどうかを規定していな"
3359 "い。 System V では保存しない。 4.3BSD では保存する; 4.3BSD にはシグナルコンテ"
3360 "キストを保存しない関数 B<_setjmp> もある。 デフォルトでは、Linux/glibc は "
3361 "System V の振る舞いに従うが、 B<_BSD_SOURCE> 機能検査マクロが定義され、 "
3362 "B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
3363 "B<_XOPEN_SOURCE_EXTENDED>, B<_GNU_SOURCE>, B<_SVID_SOURCE> のいずれも定義され"
3364 "ていない時は BSD の振る舞いとなる。"
3367 #: build/C/man3/setjmp.3:119
3369 "If you want to portably save and restore signal masks, use B<sigsetjmp>() "
3370 "and B<siglongjmp>(3)."
3372 "移植性のある形でシグナルマスクを保存および復元したいのなら、 B<sigsetjmp>() "
3373 "と B<siglongjmp>(3) を使うこと。"
3376 #: build/C/man3/setjmp.3:126
3378 "B<setjmp>() and B<sigsetjmp>() make programs hard to understand and "
3379 "maintain. If possible an alternative should be used."
3381 "B<setjmp>() や B<sigsetjmp>() を使うと、プログラムは理解しづらく、保守しに"
3382 "くいものになる。 別の方法が可能なら、それを使うべきである。"
3385 #: build/C/man3/setjmp.3:129
3386 msgid "B<longjmp>(3), B<siglongjmp>(3)"
3387 msgstr "B<longjmp>(3), B<siglongjmp>(3)"
3390 #: build/C/man3/xcrypt.3:13
3396 #: build/C/man3/xcrypt.3:13
3402 #: build/C/man3/xcrypt.3:16
3403 msgid "xencrypt, xdecrypt, passwd2des - RFS password encryption"
3404 msgstr "xencrypt, xdecrypt, passwd2des - RFS パスワード暗号化"
3407 #: build/C/man3/xcrypt.3:18
3408 msgid "B<#include E<lt>rpc/des_crypt.hE<gt>>"
3409 msgstr "B<#include E<lt>rpc/des_crypt.hE<gt>>"
3412 #: build/C/man3/xcrypt.3:20
3413 msgid "B<void passwd2des(char >I<*passwd>B<, char *>I<key>B<);>"
3414 msgstr "B<void passwd2des(char >I<*passwd>B<, char *>I<key>B<);>"
3417 #: build/C/man3/xcrypt.3:22
3418 msgid "B<int xencrypt(char *>I<secret>B<, char *>I<passwd>B<);>"
3419 msgstr "B<int xencrypt(char *>I<secret>B<, char *>I<passwd>B<);>"
3422 #: build/C/man3/xcrypt.3:24
3423 msgid "B<int xdecrypt(char *>I<secret>B<, char *>I<passwd>B<);>"
3424 msgstr "B<int xdecrypt(char *>I<secret>B<, char *>I<passwd>B<);>"
3427 #: build/C/man3/xcrypt.3:40
3429 "The function B<passwd2des>() takes a character string I<passwd> of "
3430 "arbitrary length and fills a character array I<key> of length 8. The array "
3431 "I<key> is suitable for use as DES key. It has odd parity set in bit 0 of "
3432 "each byte. Both other functions described here use this function to turn "
3433 "their argument I<passwd> into a DES key."
3435 "関数 B<passwd2des>() は任意の長さの文字列 I<passwd> をとり、長さ 8 の文字配"
3436 "列 I<key> を埋める。 配列 I<key> は DES キーとして使うのに適している。 この配"
3437 "列の各バイトのビット 0 は奇数パリティである。 ここで説明されている残りの 2 つ"
3438 "の関数は、 この関数を使い、引き数 I<passwd> を DES キーに変換する。"
3440 #. (over the alphabet 0123456789abcdefABCDEF),
3441 #. (over the alphabet 0123456789abcdef)
3443 #: build/C/man3/xcrypt.3:57
3445 "The B<xencrypt>() function takes the ASCII character string I<secret> given "
3446 "in hex, which must have a length that is a multiple of 16, encrypts it using "
3447 "the DES key derived from I<passwd> by B<passwd2des>(), and outputs the "
3448 "result again in I<secret> as a hex string of the same length."
3450 "B<xencrypt>() 関数は 16 進数で与えられた ASCII 文字列 I<secret> をとる。 こ"
3451 "の長さは 16 の倍数でなければならない。 そして B<passwd2des>() によって "
3452 "I<passwd> から導き出された DES キーを使い、 I<secret> を暗号化する。 その結果"
3453 "は 16 進数文字列として I<secret> に再び同じ長さで出力される。"
3456 #: build/C/man3/xcrypt.3:61
3457 msgid "The B<xdecrypt>() function performs the converse operation."
3458 msgstr "B<xdecrypt>() 関数は逆の操作を行う。"
3461 #: build/C/man3/xcrypt.3:67
3463 "The functions B<xencrypt>() and B<xdecrypt>() return 1 on success and 0 on "
3466 "関数 B<xencrypt>() と B<xdecrypt>() は、成功した場合に 1 を返し、失敗した場"
3470 #: build/C/man3/xcrypt.3:70
3472 "These routines are present in libc 4.6.27 and later, and in glibc 2.1 and "
3474 msgstr "これらのルーチンは libc 4.6.27 以降と glibc 2.1 以降に存在する。"
3477 #: build/C/man3/xcrypt.3:72
3478 msgid "The prototypes are missing from the abovementioned include file."
3479 msgstr "上記のインクルードファイルにプロトタイプがない。"
3482 #: build/C/man3/xcrypt.3:74
3483 msgid "B<cbc_crypt>(3)"
3484 msgstr "B<cbc_crypt>(3)"
3486 #~ msgid "B<error_t argz_add_sep(char **>I<argz>B<, size_t *>I<argz_len>B<,>\n"
3487 #~ msgstr "B<error_t argz_add_sep(char **>I<argz>B<, size_t *>I<argz_len>B<,>\n"
3489 #~ msgid "B<const char *>I<str>B<, int >I<delim>B<);>\n"
3490 #~ msgstr "B<const char *>I<str>B<, int >I<delim>B<);>\n"
3492 #~ msgid "B<error_t argz_append(char **>I<argz>B<, size_t *>I<argz_len>B<,>\n"
3493 #~ msgstr "B<error_t argz_append(char **>I<argz>B<, size_t *>I<argz_len>B<,>\n"
3495 #~ msgid "B<const char *>I<buf>B<, size_t >I<buf_len>B<);>\n"
3496 #~ msgstr "B<const char *>I<buf>B<, size_t >I<buf_len>B<);>\n"
3498 #~ msgid "B<size_t *>I<argz_len>B<);>\n"
3499 #~ msgstr "B<size_t *>I<argz_len>B<);>\n"
3501 #~ msgid "B<const char *>I<entry>B<);>\n"
3502 #~ msgstr "B<const char *>I<entry>B<);>\n"
3504 #~ msgid "B<const char *>I<with>B<, unsigned int *>I<replace_count>B<);>\n"
3505 #~ msgstr "B<const char *>I<with>B<, unsigned int *>I<replace_count>B<);>\n"
3508 #~ "B<path dirname basename>\n"
3509 #~ "\"/usr/lib\" \"/usr\" \"lib\"\n"
3510 #~ "\"/usr/\" \"/\" \"usr\"\n"
3511 #~ "\"usr\" \".\" \"usr\"\n"
3512 #~ "\"/\" \"/\" \"/\"\n"
3513 #~ "\".\" \".\" \".\"\n"
3514 #~ "\"..\" \".\" \"..\"\n"
3516 #~ "B<path dirname basename>\n"
3517 #~ "\"/usr/lib\" \"/usr\" \"lib\"\n"
3518 #~ "\"/usr/\" \"/\" \"usr\"\n"
3519 #~ "\"usr\" \".\" \"usr\"\n"
3520 #~ "\"/\" \"/\" \"/\"\n"
3521 #~ "\".\" \".\" \".\"\n"
3522 #~ "\"..\" \".\" \"..\"\n"
3524 #~ msgid "B<error_t envz_add(char **>I<envz>B<, size_t *>I<envz_len>B<,>\n"
3525 #~ msgstr "B<error_t envz_add(char **>I<envz>B<, size_t *>I<envz_len>B<,>\n"
3527 #~ msgid "B<const char *>I<name>B<, const char *>I<value>B<);>\n"
3528 #~ msgstr "B<const char *>I<name>B<, const char *>I<value>B<);>\n"
3530 #~ msgid "B<error_t envz_merge(char **>I<envz>B<, size_t *>I<envz_len>B<,>\n"
3531 #~ msgstr "B<error_t envz_merge(char **>I<envz>B<, size_t *>I<envz_len>B<,>\n"
3533 #~ msgid "B<const char *>I<envz2>B<, size_t >I<envz2_len>B<, int >I<override>B<);>\n"
3534 #~ msgstr "B<const char *>I<envz2>B<, size_t >I<envz2_len>B<, int >I<override>B<);>\n"
3536 #~ msgid "1997-03-08"
3537 #~ msgstr "1997-03-08"
3539 #~ msgid "2011-09-10"
3540 #~ msgstr "2011-09-10"