OSDN Git Service

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