# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2015-01-23 22:24+0900\n" "PO-Revision-Date: 2015-01-25 07:19+0900\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: build/C/man3/__setfpucw.3:8 #, no-wrap msgid "__SETFPUCW" msgstr "__SETFPUCW" #. type: TH #: build/C/man3/__setfpucw.3:8 #, no-wrap msgid "2012-12-31" msgstr "2012-12-31" #. type: TH #: build/C/man3/__setfpucw.3:8 build/C/man3/queue.3:39 #, no-wrap msgid "Linux" msgstr "Linux" #. type: TH #: build/C/man3/__setfpucw.3:8 build/C/man3/addseverity.3:9 #: build/C/man3/argz_add.3:10 build/C/man3/backtrace.3:27 #: build/C/man3/basename.3:27 build/C/man3/envz_add.3:10 #: build/C/man3/ftok.3:29 build/C/man3/longjmp.3:27 build/C/man3/offsetof.3:28 #: build/C/man3/program_invocation_name.3:24 build/C/man3/queue.3:39 #: build/C/man3/realpath.3:28 build/C/man3/setjmp.3:27 #: build/C/man3/xcrypt.3:13 #, no-wrap msgid "Linux Programmer's Manual" msgstr "Linux Programmer's Manual" #. type: SH #: build/C/man3/__setfpucw.3:9 build/C/man3/addseverity.3:10 #: build/C/man3/argz_add.3:11 build/C/man3/backtrace.3:28 #: build/C/man3/basename.3:28 build/C/man3/envz_add.3:11 #: build/C/man3/ftok.3:30 build/C/man3/longjmp.3:28 build/C/man3/offsetof.3:29 #: build/C/man3/program_invocation_name.3:25 build/C/man3/queue.3:40 #: build/C/man3/realpath.3:29 build/C/man3/setjmp.3:28 #: build/C/man3/xcrypt.3:14 #, no-wrap msgid "NAME" msgstr "名前" #. type: Plain text #: build/C/man3/__setfpucw.3:11 msgid "__setfpucw - set FPU control word on i386 architecture (obsolete)" msgstr "__setfpucw - i386 アーキテクチャにおける FPU のコントロールワードの設定 (obsolete)" #. type: SH #: build/C/man3/__setfpucw.3:11 build/C/man3/addseverity.3:12 #: build/C/man3/argz_add.3:15 build/C/man3/backtrace.3:31 #: build/C/man3/basename.3:30 build/C/man3/envz_add.3:14 #: build/C/man3/ftok.3:32 build/C/man3/longjmp.3:30 build/C/man3/offsetof.3:31 #: build/C/man3/program_invocation_name.3:28 build/C/man3/queue.3:48 #: build/C/man3/realpath.3:31 build/C/man3/setjmp.3:30 #: build/C/man3/xcrypt.3:16 #, no-wrap msgid "SYNOPSIS" msgstr "書式" #. type: Plain text #: build/C/man3/__setfpucw.3:13 msgid "B<#include Ei386/fpu_control.hE>" msgstr "B<#include Ei386/fpu_control.hE>" #. type: Plain text #: build/C/man3/__setfpucw.3:15 msgid "BIB<);>" msgstr "BIB<);>" #. type: SH #: build/C/man3/__setfpucw.3:15 build/C/man3/addseverity.3:27 #: build/C/man3/argz_add.3:51 build/C/man3/backtrace.3:50 #: build/C/man3/basename.3:38 build/C/man3/envz_add.3:36 #: build/C/man3/ftok.3:39 build/C/man3/longjmp.3:46 build/C/man3/offsetof.3:37 #: build/C/man3/program_invocation_name.3:36 build/C/man3/queue.3:86 #: build/C/man3/realpath.3:51 build/C/man3/setjmp.3:49 #: build/C/man3/xcrypt.3:24 #, no-wrap msgid "DESCRIPTION" msgstr "説明" #. type: Plain text #: build/C/man3/__setfpucw.3:22 msgid "B<__setfpucw>() transfers I to the registers of the FPU (floating-point unit) on the i386 architecture. This was used to control floating-point precision, rounding and floating-point exceptions." msgstr "B<__setfpucw>() は、i386アーキテクチャにおいて I を FPU (floating-point unit) のレジスタに転送する。 これは浮動小数点演算の精度、丸め方、 および浮動小数点例外を制御するのに使われる。" #. type: SH #: build/C/man3/__setfpucw.3:22 build/C/man3/addseverity.3:60 #: build/C/man3/argz_add.3:198 build/C/man3/backtrace.3:143 #: build/C/man3/basename.3:136 build/C/man3/envz_add.3:118 #: build/C/man3/ftok.3:75 build/C/man3/longjmp.3:90 build/C/man3/offsetof.3:63 #: build/C/man3/program_invocation_name.3:56 build/C/man3/queue.3:485 #: build/C/man3/realpath.3:135 build/C/man3/setjmp.3:88 #, no-wrap msgid "CONFORMING TO" msgstr "準拠" #. type: Plain text #: build/C/man3/__setfpucw.3:24 msgid "This function was a nonstandard GNU extension." msgstr "この関数は非標準で GNU 拡張である。" #. type: SH #: build/C/man3/__setfpucw.3:24 build/C/man3/addseverity.3:67 #: build/C/man3/backtrace.3:145 build/C/man3/basename.3:138 #: build/C/man3/ftok.3:77 build/C/man3/longjmp.3:95 #: build/C/man3/program_invocation_name.3:59 build/C/man3/realpath.3:142 #: build/C/man3/setjmp.3:93 #, no-wrap msgid "NOTES" msgstr "注意" #. type: Plain text #: build/C/man3/__setfpucw.3:43 msgid "As of glibc 2.1 this function does not exist anymore. There are new functions from C99, with prototypes in Ifenv.hE>, to control FPU rounding modes, like B(3), B(3), and the floating-point environment, like B(3), B(3), B(3), B(3), and FPU exception handling, like B(3), B(3), B(3), B(3), and B(3)." msgstr "glibc 2.1 以降では、この関数は存在しない。 新たな関数群が C99 から導入された。これらのプロトタイプは Ifenv.hE> に置かれている。 FPU の丸めモードの制御には B(3), B(3) などが、浮動小数点関連の環境には B(3), B(3), B(3), B(3) などが、 FPU 例外処理には B(3), B(3), B(3), B(3), B(3) などが導入された。" #. type: Plain text #: build/C/man3/__setfpucw.3:51 msgid "If direct access to the FPU control word is still needed, the B<_FPU_GETCW> and B<_FPU_SETCW> macros from Ifpu_control.hE> can be used." msgstr "FPU のコントロールワードへどうしても直接アクセスする必要がある場合には、 Ifpu_control.hE> の B<_FPU_GETCW> マクロと B<_FPU_SETCW> マクロを用いることは可能である。" #. type: SH #: build/C/man3/__setfpucw.3:51 build/C/man3/backtrace.3:167 #: build/C/man3/basename.3:171 build/C/man3/envz_add.3:121 #: build/C/man3/offsetof.3:65 #, no-wrap msgid "EXAMPLE" msgstr "例" #. type: Plain text #: build/C/man3/__setfpucw.3:53 msgid "B<__setfpucw(0x1372)>" msgstr "B<__setfpucw(0x1372)>" #. type: Plain text #: build/C/man3/__setfpucw.3:55 msgid "Set FPU control word on the i386 architecture to" msgstr "は、i386アーキテクチャにおける FPU のコントロールワードを、" #. type: Plain text #: build/C/man3/__setfpucw.3:57 #, no-wrap msgid " - extended precision\n" msgstr " - 拡張精度\n" #. type: Plain text #: build/C/man3/__setfpucw.3:59 #, no-wrap msgid " - rounding to nearest\n" msgstr " - 最も近い整数へ丸める、中間の場合は偶数を選択する。\n" #. type: Plain text #: build/C/man3/__setfpucw.3:61 #, no-wrap msgid " - exceptions on overflow, zero divide and NaN\n" msgstr " - 桁溢れ、0で除算、及び無効値(NaN)ときに例外を発生に設定する。\n" #. type: SH #: build/C/man3/__setfpucw.3:61 build/C/man3/addseverity.3:70 #: build/C/man3/argz_add.3:204 build/C/man3/backtrace.3:251 #: build/C/man3/basename.3:184 build/C/man3/envz_add.3:143 #: build/C/man3/ftok.3:106 build/C/man3/longjmp.3:132 #: build/C/man3/program_invocation_name.3:63 build/C/man3/realpath.3:224 #: build/C/man3/setjmp.3:141 build/C/man3/xcrypt.3:71 #, no-wrap msgid "SEE ALSO" msgstr "関連項目" #. type: Plain text #: build/C/man3/__setfpucw.3:63 msgid "B(3)" msgstr "B(3)" #. type: Plain text #: build/C/man3/__setfpucw.3:65 msgid "Ifpu_control.hE>" msgstr "Ifpu_control.hE>" #. type: SH #: build/C/man3/__setfpucw.3:65 build/C/man3/addseverity.3:72 #: build/C/man3/argz_add.3:206 build/C/man3/backtrace.3:256 #: build/C/man3/basename.3:187 build/C/man3/envz_add.3:145 #: build/C/man3/ftok.3:112 build/C/man3/longjmp.3:135 #: build/C/man3/offsetof.3:103 build/C/man3/program_invocation_name.3:65 #: build/C/man3/queue.3:491 build/C/man3/realpath.3:231 #: build/C/man3/setjmp.3:144 build/C/man3/xcrypt.3:73 #, no-wrap msgid "COLOPHON" msgstr "この文書について" #. type: Plain text #: build/C/man3/__setfpucw.3:73 build/C/man3/addseverity.3:80 #: build/C/man3/argz_add.3:214 build/C/man3/backtrace.3:264 #: build/C/man3/basename.3:195 build/C/man3/envz_add.3:153 #: build/C/man3/ftok.3:120 build/C/man3/longjmp.3:143 #: build/C/man3/offsetof.3:111 build/C/man3/program_invocation_name.3:73 #: build/C/man3/queue.3:499 build/C/man3/realpath.3:239 #: build/C/man3/setjmp.3:152 build/C/man3/xcrypt.3:81 msgid "This page is part of release 3.78 of the Linux I project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at \\%http://www.kernel.org/doc/man-pages/." msgstr "" "この man ページは Linux I プロジェクトのリリース 3.78 の一部\n" "である。プロジェクトの説明とバグ報告に関する情報は\n" "http://www.kernel.org/doc/man-pages/ に書かれている。" #. type: TH #: build/C/man3/addseverity.3:9 #, no-wrap msgid "ADDSEVERITY" msgstr "ADDSEVERITY" #. type: TH #: build/C/man3/addseverity.3:9 build/C/man3/backtrace.3:27 #, no-wrap msgid "2008-06-14" msgstr "2008-06-14" #. type: TH #: build/C/man3/addseverity.3:9 build/C/man3/backtrace.3:27 #: build/C/man3/basename.3:27 build/C/man3/ftok.3:29 #: build/C/man3/offsetof.3:28 build/C/man3/program_invocation_name.3:24 #, no-wrap msgid "GNU" msgstr "GNU" #. type: Plain text #: build/C/man3/addseverity.3:12 msgid "addseverity - introduce new severity classes" msgstr "addseverity - 新しい重大度 (severity class) を導入する" #. type: Plain text #: build/C/man3/addseverity.3:16 #, no-wrap msgid "B<#include Efmtmsg.hE>\n" msgstr "B<#include Efmtmsg.hE>\n" #. type: Plain text #: build/C/man3/addseverity.3:18 #, no-wrap msgid "BIB<, const char *>IB<);>\n" msgstr "BIB<, const char *>IB<);>\n" #. type: Plain text #: build/C/man3/addseverity.3:23 build/C/man3/longjmp.3:42 #: build/C/man3/realpath.3:42 build/C/man3/setjmp.3:42 msgid "Feature Test Macro Requirements for glibc (see B(7)):" msgstr "glibc 向けの機能検査マクロの要件 (B(7) 参照):" #. type: Plain text #: build/C/man3/addseverity.3:27 msgid "B(): _SVID_SOURCE" msgstr "B(): _SVID_SOURCE" #. type: Plain text #: build/C/man3/addseverity.3:49 msgid "This function allows the introduction of new severity classes which can be addressed by the I argument of the B(3) function. By default that latter function only knows how to print messages for severity 0-4 (with strings (none), HALT, ERROR, WARNING, INFO). This call attaches the given string I to the given value I. If I is NULL, the severity class with the numeric value I is removed. It is not possible to overwrite or remove one of the default severity classes. The severity value must be nonnegative." msgstr "この関数により、新しい重大度を導入できる。 この重大度は、 B(3) 関数の I 引き数に入れることができる。 デフォルトでは、後者の B(3) 関数は重大度 0-4 (文字列では (none), HALT, ERROR, WARNING, INFO) の メッセージを表示する方法しか知らない。 この B(3) の呼び出しにより、指定された文字列 I に指定された値 I を付加する。 I が NULL の場合、数値 I の重大度が削除される。 デフォルトの重大度のどれかを上書きしたり削除したりすることはできない。 重大度の値は負でない数としなければならない。" #. type: SH #: build/C/man3/addseverity.3:49 build/C/man3/argz_add.3:192 #: build/C/man3/backtrace.3:118 build/C/man3/basename.3:121 #: build/C/man3/envz_add.3:112 build/C/man3/ftok.3:61 #: build/C/man3/longjmp.3:88 build/C/man3/offsetof.3:56 #: build/C/man3/realpath.3:91 build/C/man3/setjmp.3:78 #: build/C/man3/xcrypt.3:61 #, no-wrap msgid "RETURN VALUE" msgstr "返り値" #. type: Plain text #: build/C/man3/addseverity.3:57 msgid "Upon success, the value B is returned. Upon error, the return value is B. Possible errors include: out of memory, attempt to remove a nonexistent or default severity class." msgstr "成功した場合、値 B が返される。 エラーの場合、返り値は B である。 起こる可能性があるエラーには、以下のものが含まれる: メモリを使い果たした。 存在しない重大度またはデフォルトの重大度を削除しようとした。" #. type: SH #: build/C/man3/addseverity.3:57 build/C/man3/backtrace.3:137 #: build/C/man3/xcrypt.3:67 #, no-wrap msgid "VERSIONS" msgstr "バージョン" #. type: Plain text #: build/C/man3/addseverity.3:60 msgid "B() is provided in glibc since version 2.1." msgstr "B() はバージョン 2.1 以降の glibc で提供されている。" #. type: Plain text #: build/C/man3/addseverity.3:67 msgid "This function is not specified in the X/Open Portability Guide although the B(3) function is. It is available on System V systems." msgstr "B(3) 関数は X/Open Portability Guide に指定されているが、 この関数は指定されていない。 この関数は System V システムで利用可能である。" #. type: Plain text #: build/C/man3/addseverity.3:70 msgid "New severity classes can also be added by setting the environment variable B." msgstr "新しい重大度は、環境変数 B を設定することで追加することもできる。" #. type: Plain text #: build/C/man3/addseverity.3:72 msgid "B(3)" msgstr "B(3)" #. type: TH #: build/C/man3/argz_add.3:10 #, no-wrap msgid "ARGZ_ADD" msgstr "ARGZ_ADD" #. type: TH #: build/C/man3/argz_add.3:10 build/C/man3/envz_add.3:10 #, no-wrap msgid "2014-05-28" msgstr "2014-05-28" #. type: Plain text #: build/C/man3/argz_add.3:15 msgid "argz_add, argz_add_sep, argz_append, argz_count, argz_create, argz_create_sep, argz_delete, argz_extract, argz_insert, argz_next, argz_replace, argz_stringify - functions to handle an argz list" msgstr "argz_add, argz_add_sep, argz_append, argz_count, argz_create, argz_create_sep, argz_delete, argz_extract, argz_insert, argz_next, argz_replace, argz_stringify - argz リストを操作するための関数群" #. type: Plain text #: build/C/man3/argz_add.3:18 #, no-wrap msgid "B<#include Eargz.hE>\n" msgstr "B<#include Eargz.hE>\n" #. type: Plain text #: build/C/man3/argz_add.3:21 #, no-wrap msgid "BIB<, size_t *>IB<, const char *>IB<);>\n" msgstr "BIB<, size_t *>IB<, const char *>IB<);>\n" #. type: Plain text #: build/C/man3/argz_add.3:24 #, no-wrap msgid "" "BIB<, size_t *>IB<,>\n" "B< const char *>IB<, int >IB<);>\n" msgstr "" "BIB<, size_t *>IB<,>\n" "B< const char *>IB<, int >IB<);>\n" #. type: Plain text #: build/C/man3/argz_add.3:27 #, no-wrap msgid "" "BIB<, size_t *>IB<,>\n" "B< const char *>IB<, size_t >IB<);>\n" msgstr "" "BIB<, size_t *>IB<,>\n" "B< const char *>IB<, size_t >IB<);>\n" #. type: Plain text #: build/C/man3/argz_add.3:29 #, no-wrap msgid "BIB<, size_t >IB<);>\n" msgstr "BIB<, size_t >IB<);>\n" #. type: Plain text #: build/C/man3/argz_add.3:32 #, no-wrap msgid "" "BIB<[], char **>IB<,>\n" "B< size_t *>IB<);>\n" msgstr "" "BIB<[], char **>IB<,>\n" "B< size_t *>IB<);>\n" #. type: Plain text #: build/C/man3/argz_add.3:35 #, no-wrap msgid "" "BIB<, int >IB<, char **>IB<,>\n" "B< size_t *>IB<);>\n" msgstr "" "BIB<, int >IB<, char **>IB<,>\n" "B< size_t *>IB<);>\n" #. type: Plain text #: build/C/man3/argz_add.3:37 #, no-wrap msgid "BIB<, size_t *>IB<, char *>IB<);>\n" msgstr "BIB<, size_t *>IB<, char *>IB<);>\n" #. type: Plain text #: build/C/man3/argz_add.3:39 #, no-wrap msgid "BIB<, size_t >IB<, char **>IB<);>\n" msgstr "BIB<, size_t >IB<, char **>IB<);>\n" #. type: Plain text #: build/C/man3/argz_add.3:42 #, no-wrap msgid "" "BIB<, size_t *>IB<, char *>IB<,>\n" "B< const char *>IB<);>\n" msgstr "" "BIB<, size_t *>IB<, char *>IB<,>\n" "B< const char *>IB<);>\n" #. type: Plain text #: build/C/man3/argz_add.3:44 #, no-wrap msgid "BIB<, size_t >IB<, const char *>IB<);>\n" msgstr "BIB<, size_t >IB<, const char *>IB<);>\n" #. type: Plain text #: build/C/man3/argz_add.3:48 #, no-wrap msgid "" "BIB<, size_t *>IB<, const char *>IB<,>\n" "B< const char *>IB<, unsigned int *>IB<);>\n" msgstr "" "BIB<, size_t *>IB<, const char *>IB<,>\n" "B< const char *>IB<, unsigned int *>IB<);>\n" #. type: Plain text #: build/C/man3/argz_add.3:50 #, no-wrap msgid "BIB<, size_t >IB<, int >IB<);>\n" msgstr "BIB<, size_t >IB<, int >IB<);>\n" #. type: Plain text #: build/C/man3/argz_add.3:53 build/C/man3/envz_add.3:38 msgid "These functions are glibc-specific." msgstr "これらの関数は glibc 固有である。" #. type: Plain text #: build/C/man3/argz_add.3:58 msgid "An argz vector is a pointer to a character buffer together with a length. The intended interpretation of the character buffer is an array of strings, where the strings are separated by null bytes (\\(aq\\e0\\(aq). If the length is nonzero, the last byte of the buffer must be a null byte." msgstr "argz vector は長さ情報付きの文字バッファへのポインタである。 文字バッファでは、複数の文字列がヌルバイト (\\(aq\\e0\\(aq) で区切られており、 文字列の配列として解釈されるようになっている。 長さが 0 でない場合、バッファの最後のバイトはヌルバイトでなければならない。" #. type: Plain text #: build/C/man3/argz_add.3:67 msgid "These functions are for handling argz vectors. The pair (NULL,0) is an argz vector, and, conversely, argz vectors of length 0 must have null pointer. Allocation of nonempty argz vectors is done using B(3), so that B(3) can be used to dispose of them again." msgstr "これらの関数は argz vector を操作するためのものである。 ペア (NULL,0) は argz vector であり、逆に言えば 長さ 0 の argz vectorはヌルポインタを持たなければならない。 空でない argz vector の割り当ては B(3) を使って行われる。したがって、argz vector を解放するのに B(3) を使うことができる。" #. type: Plain text #: build/C/man3/argz_add.3:77 msgid "B() adds the string I at the end of the array I<*argz>, and updates I<*argz> and I<*argz_len>." msgstr "B() は、文字列 I を配列 I<*argz> の末尾に追加し、 I<*argz> と I<*argz_len> を更新する。" #. type: Plain text #: build/C/man3/argz_add.3:85 msgid "B() is similar, but splits the string I into substrings separated by the delimiter I. For example, one might use this on a UNIX search path with delimiter \\(aq:\\(aq." msgstr "B() も同様の動作をするが、区切り文字 I にしたがって文字列 I を複数の文字列に分割する点が異なる。 例えば、区切り文字 \\(aq:\\(aq を指定して、UNIX サーチパスに対して この関数を使うことができるだろう。" #. type: Plain text #: build/C/man3/argz_add.3:99 msgid "B() appends the argz vector (I,\\ I) after (I<*argz>,\\ I<*argz_len>) and updates I<*argz> and I<*argz_len>. (Thus, I<*argz_len> will be increased by I.)" msgstr "B() は argz vector (I,\\ I) の後ろに (I<*argz>,\\ I<*argz_len>) を付け加え、 I<*argz> と I<*argz_len> を更新する。 (したがって、 I<*argz_len> は I だけ増加する。)" #. type: Plain text #: build/C/man3/argz_add.3:104 msgid "B() counts the number of strings, that is, the number of null bytes (\\(aq\\e0\\(aq), in (I,\\ I)." msgstr "B() は (I,\\ I) 内の文字列の数を数える。実際にはヌルバイト (\\(aq\\e0\\(aq) の数を数えている。" #. type: Plain text #: build/C/man3/argz_add.3:112 msgid "B() converts a UNIX-style argument vector I, terminated by I<(char\\ *)\\ 0>, into an argz vector (I<*argz>,\\ I<*argz_len>)." msgstr "B() は、UNIX 流の引き数ベクトルである (I<(char\\ *)\\ 0> で終端される) I を、argz vector (I<*argz>,\\ I<*argz_len>) に変換する。" #. type: Plain text #: build/C/man3/argz_add.3:120 msgid "B() converts the null-terminated string I into an argz vector (I<*argz>,\\ I<*argz_len>) by breaking it up at every occurrence of the separator I." msgstr "B() は、ヌル終端された文字列 I を区切り文字 I が現れる毎に分割しながら、argz vector (*I,\\ I<*argz_len>) に変換する。" #. type: Plain text #: build/C/man3/argz_add.3:130 msgid "B() removes the substring pointed to by I from the argz vector (I<*argz>,\\ I<*argz_len>) and updates I<*argz> and I<*argz_len>." msgstr "B() は、 I で指し示された文字列を argz vector (I<*argz>,\\ I<*argz_len>) から削除し、 I<*argz> と I<*argz_len> を更新する。" #. type: Plain text #: build/C/man3/argz_add.3:145 msgid "B() is the opposite of B(). It takes the argz vector (I,\\ I) and fills the array starting at I with pointers to the substrings, and a final NULL, making a UNIX-style argv vector. The array I must have room for I(I, I) + 1 pointers." msgstr "B() は B() の反対の操作を行う。argz vector (I,\\ I) を調べ、 I から始まる配列をサブ文字列へのポインタで埋めていき、 一番最後に NULL を入れて、UNIX 流の argv ベクトルを作成する。 配列 I は I(I,I) + 1 個のポインタを収容できる空間を持っていなければならない。" #. type: Plain text #: build/C/man3/argz_add.3:164 msgid "B() is the opposite of B(). It inserts the argument I at position I into the argz vector (I<*argz>,\\ I<*argz_len>) and updates I<*argz> and I<*argz_len>. If I is NULL, then I will inserted at the end." msgstr "B() は B() の反対の操作を行う。argz vector (I<*argz>,\\ I<*argz_len>) の位置 I に引き数 I を挿入し、 I<*argz> と I<*argz_len> を更新する。 I が NULL の場合、 I は末尾に挿入される。" #. type: Plain text #: build/C/man3/argz_add.3:173 msgid "B() is a function to step trough the argz vector. If I is NULL, the first entry is returned. Otherwise, the entry following is returned. It returns NULL if there is no following entry." msgstr "B() は argz vector を順番に調べるための関数である。 I が NULL の場合、最初のエントリを返す。 そうでない場合、次のエントリを返す。 次のエントリがない場合、NULL を返す。" #. type: Plain text #: build/C/man3/argz_add.3:185 msgid "B() replaces each occurrence of I with I, reallocating argz as necessary. If I is non-NULL, I<*replace_count> will be incremented by the number of replacements." msgstr "B() は、 I をすべて I で置き換える (必要に応じて argz の再割り当てを行う)。 I が NULL でない場合、 I<*replace_count> を置き換えを行った数だけ増やす。" #. type: Plain text #: build/C/man3/argz_add.3:192 msgid "B() is the opposite of B(). It transforms the argz vector into a normal string by replacing all null bytes (\\(aq\\e0\\(aq) except the last by I." msgstr "B() は B() の反対の操作を行う。 末尾の ヌルバイト以外の全てのヌルバイト (\\(aq\\e0\\(aq) を I で置き換えて、 argz vector を通常の文字列に変換する。" #. type: Plain text #: build/C/man3/argz_add.3:198 msgid "All argz functions that do memory allocation have a return type of I, and return 0 for success, and B if an allocation error occurs." msgstr "メモリ割り当てを行う argz 関数群はすべて I 型の返り値を持つ。 成功した場合は 0 を返し、割り当てエラーが発生した場合は B を返す。" #. type: Plain text #: build/C/man3/argz_add.3:201 build/C/man3/envz_add.3:121 msgid "These functions are a GNU extension. Handle with care." msgstr "これらの関数は GNU による拡張である。注意して使用すること。" #. type: SH #: build/C/man3/argz_add.3:201 build/C/man3/basename.3:163 #: build/C/man3/realpath.3:193 build/C/man3/xcrypt.3:69 #, no-wrap msgid "BUGS" msgstr "バグ" #. type: Plain text #: build/C/man3/argz_add.3:204 msgid "Argz vectors without a terminating null byte may lead to Segmentation Faults." msgstr "ヌルバイトで終端されていない argz vector を使用した場合、 segmentation fault を起こすかもしれない。" #. type: Plain text #: build/C/man3/argz_add.3:206 msgid "B(3)" msgstr "B(3)" #. type: TH #: build/C/man3/backtrace.3:27 #, no-wrap msgid "BACKTRACE" msgstr "BACKTRACE" #. type: Plain text #: build/C/man3/backtrace.3:31 msgid "backtrace, backtrace_symbols, backtrace_symbols_fd - support for application self-debugging" msgstr "backtrace, backtrace_symbols, backtrace_symbols_fd - アプリケーション自身でのデバッグのサポート" #. type: Plain text #: build/C/man3/backtrace.3:33 msgid "B<#include Eexecinfo.hE>" msgstr "B<#include Eexecinfo.hE>" #. type: Plain text #: build/C/man3/backtrace.3:38 msgid "B B<**>IB<,> B IB<);>" msgstr "B B<**>IB<,> B IB<);>" #. type: Plain text #: build/C/man3/backtrace.3:43 msgid "B B<*>IB<,> B IB<);>" msgstr "B B<*>IB<,> B IB<);>" #. type: Plain text #: build/C/man3/backtrace.3:50 msgid "B B<*>IB<,> B IB<,> B IB<);>" msgstr "B B<*>IB<,> B IB<,> B IB<);>" #. type: Plain text #: build/C/man3/backtrace.3:78 msgid "B() returns a backtrace for the calling program, in the array pointed to by I. A backtrace is the series of currently active function calls for the program. Each item in the array pointed to by I is of type I, and is the return address from the corresponding stack frame. The I argument specifies the maximum number of addresses that can be stored in I. If the backtrace is larger than I, then the addresses corresponding to the I most recent function calls are returned; to obtain the complete backtrace, make sure that I and I are large enough." msgstr "B() は、呼び出したプログラムのバックトレースを I が指す配列に入れて返す。バックトレースは、プログラムで 現在動作中の関数呼び出しの並びである。 I が指す配列の個々の要素は I 型で、 対応するスタックフレームからのリターンアドレスである。 I 引き数は I に格納できるアドレスの最大個数を指定する。 バックトレースが I より大きい場合、 I 個の直近の関数呼び出しに対応するアドレスが返される。 完全なバックトレースを取得するためには、確実に I と I が十分大きくなるようにすること。" #. type: Plain text #: build/C/man3/backtrace.3:103 msgid "Given the set of addresses returned by B() in I, B() translates the addresses into an array of strings that describe the addresses symbolically. The I argument specifies the number of addresses in I. The symbolic representation of each address consists of the function name (if this can be determined), a hexadecimal offset into the function, and the actual return address (in hexadecimal). The address of the array of string pointers is returned as the function result of B(). This array is B(3)ed by B(), and must be freed by the caller. (The strings pointed to by the array of pointers need not and should not be freed.)" msgstr "B() によって I にアドレスの集合が得られたら、 B() によって、アドレス集合を、そのアドレスをシンボルで表した文字列の配列 に翻訳できる。 I 引き数は I に格納されたアドレスの数を指定する。 個々のアドレスのシンボル表現は、関数名 (特定できた場合)、 関数へのオフセット (16進表記)、実際のリターンアドレス (16進表記) から構成される。 B() の実行結果としては、 文字列ポインタの配列のアドレスが返される。 この配列は B() によって B(3) され、呼び出し側で free しなければならない (ポインタの配列が指す個々の文字列は free する必要はないし、 free すべきでもない)。" #. type: Plain text #: build/C/man3/backtrace.3:118 msgid "B() takes the same I and I arguments as B(), but instead of returning an array of strings to the caller, it writes the strings, one per line, to the file descriptor I. B() does not call B(3), and so can be employed in situations where the latter function might fail." msgstr "B() は、 B() と同じ引き数 I と I をとるが、呼び出し側に文字列の配列を返す代わりに、 文字列をファイルディスクリプター I に 1 行に 1 エントリの形で書き込む。 B() は B(3) を呼び出さない。 そのため、これに続く関数が失敗する可能性がある状況でも利用できる。" #. type: Plain text #: build/C/man3/backtrace.3:130 msgid "B() returns the number of addresses returned in I, which is not greater than I. If the return value is less than I, then the full backtrace was stored; if it is equal to I, then it may have been truncated, in which case the addresses of the oldest stack frames are not returned." msgstr "B() は I に格納したアドレスの個数を返す。その個数は I より大きくなることはない。 返り値が I より小さい場合、バックトレース全体が格納されている。返り値が I と等しい場合、バックトレースは切り詰められているかもしれない。 切り詰められた場合、最も古いスタックフレームのアドレスは 返されないことになる。" #. type: Plain text #: build/C/man3/backtrace.3:137 msgid "On success, B() returns a pointer to the array B(3)ed by the call; on error, NULL is returned." msgstr "B() は、成功すると、この呼び出しで B(3) された配列へのポインタを返す。 エラーの場合、 NULL を返す。" #. type: Plain text #: build/C/man3/backtrace.3:143 msgid "B(), B(), and B() are provided in glibc since version 2.1." msgstr "B(), B(), B() はバージョン 2.1 以降の glibc で提供されている。" #. type: Plain text #: build/C/man3/backtrace.3:145 msgid "These functions are GNU extensions." msgstr "これらの関数は GNU による拡張である。" #. type: Plain text #: build/C/man3/backtrace.3:149 msgid "These functions make some assumptions about how a function's return address is stored on the stack. Note the following:" msgstr "これらの関数は、関数のリターンアドレスがスタック上でどのように格納されるか に関してある仮定を置いている。 以下の点に注意。" #. type: IP #: build/C/man3/backtrace.3:149 build/C/man3/backtrace.3:155 #: build/C/man3/backtrace.3:157 build/C/man3/queue.3:93 #: build/C/man3/queue.3:95 build/C/man3/queue.3:97 build/C/man3/queue.3:99 #: build/C/man3/queue.3:109 build/C/man3/queue.3:131 build/C/man3/queue.3:133 #: build/C/man3/queue.3:135 #, no-wrap msgid "*" msgstr "*" #. type: Plain text #: build/C/man3/backtrace.3:155 msgid "Omission of the frame pointers (as implied by any of B(1)'s nonzero optimization levels) may cause these assumptions to be violated." msgstr "(B(1) の 0 以外の最適化レベルで暗黙のうちに行われる) フレームポインタの省略を行うと、これらの前提が崩れる可能性がある。" #. type: Plain text #: build/C/man3/backtrace.3:157 msgid "Inlined functions do not have stack frames." msgstr "インライン関数はスタックフレームを持たない。" #. type: Plain text #: build/C/man3/backtrace.3:159 msgid "Tail-call optimization causes one stack frame to replace another." msgstr "末尾呼び出しの最適化 (tail-call optimization) を行うと、 あるスタックフレームが別のスタックフレームを置き換える可能性がある。" #. type: Plain text #: build/C/man3/backtrace.3:167 msgid "The symbol names may be unavailable without the use of special linker options. For systems using the GNU linker, it is necessary to use the I<-rdynamic> linker option. Note that names of \"static\" functions are not exposed, and won't be available in the backtrace." msgstr "シンボル名は特別なリンカオプションを使用しないと利用できない場合がある。 GNU リンカを使用するシステムでは、 I<-rdynamic> リンカオプションを使う必要がある。 \"static\" な関数のシンボル名は公開されず、 バックトレースでは利用できない点に注意すること。" #. type: Plain text #: build/C/man3/backtrace.3:174 msgid "The program below demonstrates the use of B() and B(). The following shell session shows what we might see when running the program:" msgstr "以下のプログラムは、 B() と B() の使用例を示したものである。 以下に示すシェルのセッションは、 このプログラムを動かした際の実行例である。" #. type: Plain text #: build/C/man3/backtrace.3:188 #, no-wrap msgid "" "$B< cc -rdynamic prog.c -o prog>\n" "$B< ./prog 3>\n" "backtrace() returned 8 addresses\n" "\\&./prog(myfunc3+0x5c) [0x80487f0]\n" "\\&./prog [0x8048871]\n" "\\&./prog(myfunc+0x21) [0x8048894]\n" "\\&./prog(myfunc+0x1a) [0x804888d]\n" "\\&./prog(myfunc+0x1a) [0x804888d]\n" "\\&./prog(main+0x65) [0x80488fb]\n" "\\&/lib/libc.so.6(__libc_start_main+0xdc) [0xb7e38f9c]\n" "\\&./prog [0x8048711]\n" msgstr "" "$B< cc -rdynamic prog.c -o prog>\n" "$B< ./prog 3>\n" "backtrace() returned 8 addresses\n" "\\&./prog(myfunc3+0x5c) [0x80487f0]\n" "\\&./prog [0x8048871]\n" "\\&./prog(myfunc+0x21) [0x8048894]\n" "\\&./prog(myfunc+0x1a) [0x804888d]\n" "\\&./prog(myfunc+0x1a) [0x804888d]\n" "\\&./prog(main+0x65) [0x80488fb]\n" "\\&/lib/libc.so.6(__libc_start_main+0xdc) [0xb7e38f9c]\n" "\\&./prog [0x8048711]\n" #. type: SS #: build/C/man3/backtrace.3:190 build/C/man3/offsetof.3:76 #, no-wrap msgid "Program source" msgstr "プログラムのソース" #. type: Plain text #: build/C/man3/backtrace.3:197 #, no-wrap msgid "" "#include Eexecinfo.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Eunistd.hE\n" msgstr "" "#include Eexecinfo.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Eunistd.hE\n" #. type: Plain text #: build/C/man3/backtrace.3:205 #, no-wrap msgid "" "void\n" "myfunc3(void)\n" "{\n" " int j, nptrs;\n" "#define SIZE 100\n" " void *buffer[100];\n" " char **strings;\n" msgstr "" "void\n" "myfunc3(void)\n" "{\n" " int j, nptrs;\n" "#define SIZE 100\n" " void *buffer[100];\n" " char **strings;\n" #. type: Plain text #: build/C/man3/backtrace.3:208 #, no-wrap msgid "" " nptrs = backtrace(buffer, SIZE);\n" " printf(\"backtrace() returned %d addresses\\en\", nptrs);\n" msgstr "" " nptrs = backtrace(buffer, SIZE);\n" " printf(\"backtrace() returned %d addresses\\en\", nptrs);\n" #. type: Plain text #: build/C/man3/backtrace.3:211 #, no-wrap msgid "" " /* The call backtrace_symbols_fd(buffer, nptrs, STDOUT_FILENO)\n" " would produce similar output to the following: */\n" msgstr "" " /* backtrace_symbols_fd(buffer, nptrs, STDOUT_FILENO) を\n" " 呼び出しても、以下と同様の出力が得られる。 */\n" #. type: Plain text #: build/C/man3/backtrace.3:217 #, no-wrap msgid "" " strings = backtrace_symbols(buffer, nptrs);\n" " if (strings == NULL) {\n" " perror(\"backtrace_symbols\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" " strings = backtrace_symbols(buffer, nptrs);\n" " if (strings == NULL) {\n" " perror(\"backtrace_symbols\");\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: build/C/man3/backtrace.3:220 #, no-wrap msgid "" " for (j = 0; j E nptrs; j++)\n" " printf(\"%s\\en\", strings[j]);\n" msgstr "" " for (j = 0; j E nptrs; j++)\n" " printf(\"%s\\en\", strings[j]);\n" #. type: Plain text #: build/C/man3/backtrace.3:223 #, no-wrap msgid "" " free(strings);\n" "}\n" msgstr "" " free(strings);\n" "}\n" #. type: Plain text #: build/C/man3/backtrace.3:229 #, no-wrap msgid "" "static void /* \"static\" means don\\(aqt export the symbol... */\n" "myfunc2(void)\n" "{\n" " myfunc3();\n" "}\n" msgstr "" "static void /* \"static\" はシンボルを公開しないことを意味する */\n" "myfunc2(void)\n" "{\n" " myfunc3();\n" "}\n" #. type: Plain text #: build/C/man3/backtrace.3:238 #, no-wrap msgid "" "void\n" "myfunc(int ncalls)\n" "{\n" " if (ncalls E 1)\n" " myfunc(ncalls - 1);\n" " else\n" " myfunc2();\n" "}\n" msgstr "" "void\n" "myfunc(int ncalls)\n" "{\n" " if (ncalls E 1)\n" " myfunc(ncalls - 1);\n" " else\n" " myfunc2();\n" "}\n" #. type: Plain text #: build/C/man3/backtrace.3:246 #, no-wrap msgid "" "int\n" "main(int argc, char *argv[])\n" "{\n" " if (argc != 2) {\n" " fprintf(stderr, \"%s num-calls\\en\", argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" "int\n" "main(int argc, char *argv[])\n" "{\n" " if (argc != 2) {\n" " fprintf(stderr, \"%s num-calls\\en\", argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: build/C/man3/backtrace.3:250 #, no-wrap msgid "" " myfunc(atoi(argv[1]));\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" " myfunc(atoi(argv[1]));\n" " exit(EXIT_SUCCESS);\n" "}\n" #. type: Plain text #: build/C/man3/backtrace.3:256 msgid "B(1), B(1), B(3), B(3)" msgstr "B(1), B(1), B(3), B(3)" #. type: TH #: build/C/man3/basename.3:27 #, no-wrap msgid "BASENAME" msgstr "BASENAME" #. type: TH #: build/C/man3/basename.3:27 #, no-wrap msgid "2014-06-13" msgstr "2014-06-13" #. type: Plain text #: build/C/man3/basename.3:30 msgid "basename, dirname - parse pathname components" msgstr "basename, dirname - パス名を解析して各部分を取り出す" #. type: Plain text #: build/C/man3/basename.3:33 #, no-wrap msgid "B<#include Elibgen.hE>\n" msgstr "B<#include Elibgen.hE>\n" #. type: Plain text #: build/C/man3/basename.3:35 #, no-wrap msgid "BIB<);>\n" msgstr "BIB<);>\n" #. type: Plain text #: build/C/man3/basename.3:37 #, no-wrap msgid "BIB<);>\n" msgstr "BIB<);>\n" #. type: Plain text #: build/C/man3/basename.3:42 msgid "Warning: there are two different functions B() - see below." msgstr "警告: B() には異なるバージョンが 2つ存在する。下記の「注意」の節を参照のこと。" #. type: Plain text #: build/C/man3/basename.3:55 msgid "The functions B() and B() break a null-terminated pathname string into directory and filename components. In the usual case, B() returns the string up to, but not including, the final \\(aq/\\(aq, and B() returns the component following the final \\(aq/\\(aq. Trailing \\(aq/\\(aq characters are not counted as part of the pathname." msgstr "B() と B() は、ヌルで終端されたパス名の文字列を、 ディレクトリ部分・ファイル名部分に分割する。 通常は、 B() は最後の \\(aq/\\(aq までの部分 (最後の \\(aq/\\(aq は含まない) を返し、 B() は最後の \\(aq/\\(aq 以降の部分を返す。 文字列の末尾についた \\(aq/\\(aq 文字は、パス名の一部とはみなされない。" #. type: Plain text #: build/C/man3/basename.3:78 msgid "If I does not contain a slash, B() returns the string \".\" while B() returns a copy of I. If I is the string \"/\", then both B() and B() return the string \"/\". If I is a null pointer or points to an empty string, then both B() and B() return the string \".\"." msgstr "I に '/' 文字がない場合は、 B() は文字列 \".\" を返し、 B() は I と同じ内容を返す。 I が文字列 \"/\" に等しい場合は、 B() も B() も文字列 \"/\" を返す。 I が ヌルポインタだったり、空の文字列を指していた場合は、 B() も B() も文字列 \".\" を返す。" #. type: Plain text #: build/C/man3/basename.3:84 msgid "Concatenating the string returned by B(), a \"/\", and the string returned by B() yields a complete pathname." msgstr "B() の返した文字列、 \"/\"、 B() の返した文字列、 を順に結合すると、完全なパス名が得られる。" #. type: Plain text #: build/C/man3/basename.3:93 msgid "Both B() and B() may modify the contents of I, so it may be desirable to pass a copy when calling one of these functions." msgstr "B() と B() は、いずれも I の内容を変更することがある。 したがって、これらの関数を呼び出す際には コピーを渡すのが望ましい。" #. type: Plain text #: build/C/man3/basename.3:102 msgid "These functions may return pointers to statically allocated memory which may be overwritten by subsequent calls. Alternatively, they may return a pointer to some part of I, so that the string referred to by I should not be modified or freed until the pointer returned by the function is no longer required." msgstr "これらの関数は、静的に割り当てられたメモリへのポインタを返すことがあり、 これらの領域は後の関数呼び出しで上書きされるかもしれない。 また、これらの関数は I の一部分を指すポインタを返すこともある。そのため、 I で参照される文字列は、関数が返すポインタが不要になるまでは 変更したり free したりすべきではない。" #. type: Plain text #: build/C/man3/basename.3:109 msgid "The following list of examples (taken from SUSv2) shows the strings returned by B() and B() for different paths:" msgstr "以下の一連の例 (SUSv2 から引用) は、 いろいろな path に対して B() と B() が返す文字列を表したものである。" #. type: tbl table #: build/C/man3/basename.3:113 #, no-wrap msgid "path \tdirname\tbasename\n" msgstr "path \tdirname\tbasename\n" #. type: tbl table #: build/C/man3/basename.3:114 #, no-wrap msgid "/usr/lib\t/usr\tlib\n" msgstr "/usr/lib\t/usr\tlib\n" #. type: tbl table #: build/C/man3/basename.3:115 #, no-wrap msgid "/usr/ \t/\tusr\n" msgstr "/usr/ \t/\tusr\n" #. type: tbl table #: build/C/man3/basename.3:116 #, no-wrap msgid "usr \t.\tusr\n" msgstr "usr \t.\tusr\n" #. type: tbl table #: build/C/man3/basename.3:117 #, no-wrap msgid "/ \t/\t/\n" msgstr "/ \t/\t/\n" #. type: tbl table #: build/C/man3/basename.3:118 #, no-wrap msgid "\\&. \t.\t.\n" msgstr "\\&. \t.\t.\n" #. type: tbl table #: build/C/man3/basename.3:119 #, no-wrap msgid "\\&.. \t.\t..\n" msgstr "\\&.. \t.\t..\n" #. type: Plain text #: build/C/man3/basename.3:129 msgid "Both B() and B() return pointers to null-terminated strings. (Do not pass these pointers to B(3).)" msgstr "B() と B() は、いずれもヌルで終端された文字列へのポインタを返す。 (これらのポインタを B(3) に渡さないこと。)" #. type: SH #: build/C/man3/basename.3:129 build/C/man3/ftok.3:70 #, no-wrap msgid "ATTRIBUTES" msgstr "属性" #. type: SS #: build/C/man3/basename.3:130 build/C/man3/ftok.3:71 #, no-wrap msgid "Multithreading (see pthreads(7))" msgstr "マルチスレッディング (pthreads(7) 参照)" #. type: Plain text #: build/C/man3/basename.3:136 msgid "The B() and B() functions are thread-safe." msgstr "関数 B() と B() 関数はスレッドセーフである。" #. type: Plain text #: build/C/man3/basename.3:138 build/C/man3/ftok.3:77 msgid "POSIX.1-2001." msgstr "POSIX.1-2001." #. type: Plain text #: build/C/man3/basename.3:143 msgid "There are two different versions of B() - the POSIX version described above, and the GNU version, which one gets after" msgstr "B() には 2種類の異なるバージョンがある。 一つはすでに説明した POSIX バージョンであり、 もう一つは GNU バージョンである。 GNU バージョンを使用するには以下のようにする。" #. type: Plain text #: build/C/man3/basename.3:147 #, no-wrap msgid "B< #define _GNU_SOURCE> /* See feature_test_macros(7) */\n" msgstr "B< #define _GNU_SOURCE> /* feature_test_macros(7) 参照 */\n" #. type: Plain text #: build/C/man3/basename.3:149 #, no-wrap msgid "B<#include Estring.hE>\n" msgstr "B<#include Estring.hE>\n" #. type: Plain text #: build/C/man3/basename.3:157 msgid "The GNU version never modifies its argument, and returns the empty string when I has a trailing slash, and in particular also when it is \"/\". There is no GNU version of B()." msgstr "GNU バージョンは引き数を変更することはなく、 I の末尾が '/'の場合は空の文字列を返す。 特に I が \"/\" の場合も空文字列を返す。 B() には GNU バージョンはない。" #. type: Plain text #: build/C/man3/basename.3:163 msgid "With glibc, one gets the POSIX version of B() when Ilibgen.hE> is included, and the GNU version otherwise." msgstr "glibc では、 Ilibgen.hE> をインクルードすると POSIX バージョンの B() が使用され、それ以外の場合は GNU バージョンとなる。" #. type: Plain text #: build/C/man3/basename.3:171 msgid "In the glibc implementation of the POSIX versions of these functions they modify their argument, and segfault when called with a static string like \"/usr/\". Before glibc 2.2.1, the glibc version of B() did not correctly handle pathnames with trailing \\(aq/\\(aq characters, and generated a segfault if given a NULL argument." msgstr "glibc の POSIX バージョンの実装では、引き数の内容が変更され、 引き数に (\"/usr/\" などの) 定数文字列を指定されると セグメンテーションフォールトを起こす。 バージョン 2.2.1 以前の glibc では、 glibc の B() は末尾が \\(aq/\\(aq 文字になっているパス名を正しく扱えず、 引き数が NULL だとセグメンテーションフォールトを起こした。" #. type: Plain text #: build/C/man3/basename.3:176 #, no-wrap msgid "" "char *dirc, *basec, *bname, *dname;\n" "char *path = \"/etc/passwd\";\n" msgstr "" "char *dirc, *basec, *bname, *dname;\n" "char *path = \"/etc/passwd\";\n" #. type: Plain text #: build/C/man3/basename.3:182 #, no-wrap msgid "" "dirc = strdup(path);\n" "basec = strdup(path);\n" "dname = dirname(dirc);\n" "bname = basename(basec);\n" "printf(\"dirname=%s, basename=%s\\en\", dname, bname);\n" msgstr "" "dirc = strdup(path);\n" "basec = strdup(path);\n" "dname = dirname(dirc);\n" "bname = basename(basec);\n" "printf(\"dirname=%s, basename=%s\\en\", dname, bname);\n" #. type: Plain text #: build/C/man3/basename.3:187 msgid "B(1), B(1)" msgstr "B(1), B(1)" #. type: TH #: build/C/man3/envz_add.3:10 #, no-wrap msgid "ENVZ_ADD" msgstr "ENVZ_ADD" #. type: Plain text #: build/C/man3/envz_add.3:14 msgid "envz_add, envz_entry, envz_get, envz_merge, envz_remove, envz_strip - environment string support" msgstr "envz_add, envz_entry, envz_get, envz_merge, envz_remove, envz_strip - 環境変数文字列の操作" #. type: Plain text #: build/C/man3/envz_add.3:17 #, no-wrap msgid "B<#include Eenvz.hE>\n" msgstr "B<#include Eenvz.hE>\n" #. type: Plain text #: build/C/man3/envz_add.3:20 #, no-wrap msgid "" "BIB<, size_t *>IB<,>\n" "B< const char *>IB<, const char *>IB<);>\n" msgstr "" "BIB<, size_t *>IB<,>\n" "B< const char *>IB<, const char *>IB<);>\n" #. type: Plain text #: build/C/man3/envz_add.3:23 #, no-wrap msgid "BIB<, size_t >IB<, const char *>IB<);>\n" msgstr "BIB<, size_t >IB<, const char *>IB<);>\n" #. type: Plain text #: build/C/man3/envz_add.3:26 #, no-wrap msgid "BIB<, size_t >IB<, const char *>IB<);>\n" msgstr "BIB<, size_t >IB<, const char *>IB<);>\n" #. type: Plain text #: build/C/man3/envz_add.3:30 #, no-wrap msgid "" "BIB<, size_t *>IB<,>\n" "B< const char *>IB<, size_t >IB<, int >IB<);>\n" msgstr "" "BIB<, size_t *>IB<,>\n" "B< const char *>IB<, size_t >IB<, int >IB<);>\n" #. type: Plain text #: build/C/man3/envz_add.3:33 #, no-wrap msgid "BIB<, size_t *>IB<, const char *>IB<);>\n" msgstr "BIB<, size_t *>IB<, const char *>IB<);>\n" #. type: Plain text #: build/C/man3/envz_add.3:35 #, no-wrap msgid "BIB<, size_t *>IB<);>\n" msgstr "BIB<, size_t *>IB<);>\n" #. type: Plain text #: build/C/man3/envz_add.3:48 msgid "An argz vector is a pointer to a character buffer together with a length, see B(3). An envz vector is a special argz vector, namely one where the strings have the form \"name=value\". Everything after the first \\(aq=\\(aq is considered to be the value. If there is no \\(aq=\\(aq, the value is taken to be NULL. (While the value in case of a trailing \\(aq=\\(aq is the empty string \"\".)" msgstr "argz vector は長さ情報付きの文字バッファへのポインタである。 B(3) を参照のこと。 envz vector は、文字列が \"name=value (名前=値)\" の形式になっている特別な argz vector である。 最初の \\(aq=\\(aq 以降はすべて値とみなされる。\\(aq=\\(aq がなければ、 値は NULL と解釈される。(文字列の一番最後の文字が \\(aq=\\(aq の場合、値は空文字列 \"\" と解釈される。)" #. type: Plain text #: build/C/man3/envz_add.3:50 msgid "These functions are for handling envz vectors." msgstr "これらの関数は envz vector を操作するためのものである。" #. type: Plain text #: build/C/man3/envz_add.3:69 msgid "B() adds the string \"I=I\" (in case I is non-NULL) or \"I\" (in case I is NULL) to the envz vector (I<*envz>,\\ I<*envz_len>) and updates I<*envz> and I<*envz_len>. If an entry with the same I existed, it is removed." msgstr "B() は、文字列 \"I=I\" (I が NULL でない場合) または \"I\" (I が NULL の場合) を envz vector (I<*envz>,\\ I<*envz_len>) に追加し、 I<*envz> と I<*envz_len> を更新する。 I と同じ名前を持つエントリがあった場合、元のエントリは削除される。" #. type: Plain text #: build/C/man3/envz_add.3:76 msgid "B() looks for I in the envz vector (I,\\ I) and returns the entry if found, or NULL if not." msgstr "B() は、envz vector (I,\\ I) から名前が I のエントリを検索する。 見つかった場合はそのエントリを返し、見つからなかった場合は NULL を返す。" #. type: Plain text #: build/C/man3/envz_add.3:87 msgid "B() looks for I in the envz vector (I,\\ I) and returns the value if found, or NULL if not. (Note that the value can also be NULL, namely when there is an entry for I without \\(aq=\\(aq sign.)" msgstr "B() は、envz vector (I,\\ I) から名前が I のエントリを検索する。 見つかった場合はエントリの値を返し、見つからなかった場合は NULL を返す。 (値は NULL の場合もあることに注意すること。名前が I のエントリに \\(aq=\\(aq 符号がない場合が該当する。)" #. type: Plain text #: build/C/man3/envz_add.3:102 msgid "B() adds each entry in I to I<*envz>, as if with B(). If I is true, then values in I will supersede those with the same name in I<*envz>, otherwise not." msgstr "B() は、 B() と同じように I の各エントリを I<*envz> に追加する。 I が真の場合、 I の値で I<*envz> 内の同じ名前をもつ値は上書きされる。 偽の場合は上書きされない。" #. type: Plain text #: build/C/man3/envz_add.3:109 msgid "B() removes the entry for I from (I<*envz>,\\ I<*envz_len>) if there was one." msgstr "B() は、名前が I のエントリがあれば (I<*envz>,\\ I<*envz_len>) から削除する。" #. type: Plain text #: build/C/man3/envz_add.3:112 msgid "B() removes all entries with value NULL." msgstr "B() は、値が NULL のエントリをすべて削除する。" #. type: Plain text #: build/C/man3/envz_add.3:118 msgid "All envz functions that do memory allocation have a return type of I, and return 0 for success, and B if an allocation error occurs." msgstr "メモリ割り当てを行う envz 関数群はすべて I 型の返り値を持つ。 成功した場合は 0 を返し、割り当てエラーが発生した場合は B を返す。" #. type: Plain text #: build/C/man3/envz_add.3:126 #, no-wrap msgid "" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Eenvz.hE\n" msgstr "" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Eenvz.hE\n" #. type: Plain text #: build/C/man3/envz_add.3:132 #, no-wrap msgid "" "int\n" "main(int argc, char *argv[], char *envp[])\n" "{\n" " int i, e_len = 0;\n" " char *str;\n" msgstr "" "int\n" "main(int argc, char *argv[], char *envp[])\n" "{\n" " int i, e_len = 0;\n" " char *str;\n" #. type: Plain text #: build/C/man3/envz_add.3:135 #, no-wrap msgid "" " for (i = 0; envp[i] != NULL; i++)\n" " e_len += strlen(envp[i]) + 1;\n" msgstr "" " for (i = 0; envp[i] != NULL; i++)\n" " e_len += strlen(envp[i]) + 1;\n" #. type: Plain text #: build/C/man3/envz_add.3:142 #, no-wrap msgid "" " str = envz_entry(*envp, e_len, \"HOME\");\n" " printf(\"%s\\en\", str);\n" " str = envz_get(*envp, e_len, \"HOME\");\n" " printf(\"%s\\en\", str);\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" " str = envz_entry(*envp, e_len, \"HOME\");\n" " printf(\"%s\\en\", str);\n" " str = envz_get(*envp, e_len, \"HOME\");\n" " printf(\"%s\\en\", str);\n" " exit(EXIT_SUCCESS);\n" "}\n" #. type: Plain text #: build/C/man3/envz_add.3:145 msgid "B(3)" msgstr "B(3)" #. type: TH #: build/C/man3/ftok.3:29 #, no-wrap msgid "FTOK" msgstr "FTOK" #. type: TH #: build/C/man3/ftok.3:29 build/C/man3/xcrypt.3:13 #, no-wrap msgid "2014-08-19" msgstr "2014-08-19" #. type: Plain text #: build/C/man3/ftok.3:32 msgid "ftok - convert a pathname and a project identifier to a System V IPC key" msgstr "ftok - パス名とプロジェクト識別子を System V IPC キーに変換する" #. type: Plain text #: build/C/man3/ftok.3:36 #, no-wrap msgid "" "B<#include Esys/types.hE>\n" "B<#include Esys/ipc.hE>\n" msgstr "" "B<#include Esys/types.hE>\n" "B<#include Esys/ipc.hE>\n" #. type: Plain text #: build/C/man3/ftok.3:39 msgid "BIB<, int >IB<);>" msgstr "BIB<, int >IB<);>" #. type: Plain text #: build/C/man3/ftok.3:54 msgid "The B() function uses the identity of the file named by the given I (which must refer to an existing, accessible file) and the least significant 8 bits of I (which must be nonzero) to generate a I type System V IPC key, suitable for use with B(2), B(2), or B(2)." msgstr "B() 関数は I で与えられたファイル (存在し、アクセス可能でなければならない) のファイル名の識別情報 (identity) と、 I (0 であってはならない) の低位 8 ビットとを用いて、 I 型の System V IPC キーを生成する。 このキーは B(2), B(2), B(2) などでの利用に適している。" #. type: Plain text #: build/C/man3/ftok.3:61 msgid "The resulting value is the same for all pathnames that name the same file, when the same value of I is used. The value returned should be different when the (simultaneously existing) files or the project IDs differ." msgstr "同じファイルを示すあらゆるパス名と、同じ I に対しては、結果の値は等しくなる。 ファイルが違ったり (この場合両者は同時に存在しているはず)、 I が異なると、返り値も異なる。" #. type: Plain text #: build/C/man3/ftok.3:70 msgid "On success, the generated I value is returned. On failure -1 is returned, with I indicating the error as for the B(2) system call." msgstr "成功した場合は生成された I の値が返される。 失敗すると -1 が返され、エラーの内容が B に書き込まれる。この内容はシステムコール B(2) のものと同じである。" #. type: Plain text #: build/C/man3/ftok.3:75 msgid "The B() function is thread-safe." msgstr "B() 関数はスレッドセーフである。" #. type: Plain text #: build/C/man3/ftok.3:79 msgid "On some ancient systems, the prototype was:" msgstr "いくつかの古いシステムでは、プロトタイプは以下のようになっていた。" #. type: Plain text #: build/C/man3/ftok.3:82 msgid "BIB<, char >IB<);>" msgstr "BIB<, char >IB<);>" #. type: Plain text #: build/C/man3/ftok.3:94 msgid "Today, I is an I, but still only 8 bits are used. Typical usage has an ASCII character I, that is why the behavior is said to be undefined when I is zero." msgstr "現在では I は I だが、依然として 8 ビットしか用いられない。 通常は ASCII キャラクタが I に用いられる。 I が 0 のときの振る舞いが未定義になっているのは、これが理由である。" #. type: Plain text #: build/C/man3/ftok.3:106 msgid "Of course, no guarantee can be given that the resulting I is unique. Typically, a best-effort attempt combines the given I byte, the lower 16 bits of the inode number, and the lower 8 bits of the device number into a 32-bit result. Collisions may easily happen, for example between files on I and files on I." msgstr "もちろん I が他と重ならないものであるかどうかは保証されない。 最善の場合の組み合わせを考えても、 I の 1 バイト、i ノード番号の低位 16 ビット、および デバイス番号の低位 8 ビットなので、結果は 32 ビットに過ぎない。 例えば I と I それぞれにあるファイルに対して、衝突は容易に起こりうる。" #. type: Plain text #: build/C/man3/ftok.3:112 msgid "B(2), B(2), B(2), B(2), B(7)" msgstr "B(2), B(2), B(2), B(2), B(7)" #. type: TH #: build/C/man3/longjmp.3:27 #, no-wrap msgid "LONGJMP" msgstr "LONGJMP" #. type: TH #: build/C/man3/longjmp.3:27 #, no-wrap msgid "2009-01-13" msgstr "2009-01-13" #. type: Plain text #: build/C/man3/longjmp.3:30 msgid "longjmp, siglongjmp - nonlocal jump to a saved stack context" msgstr "longjmp, siglongjmp - 保存されたスタックコンテキスト (stack context) への非局所的なジャンプ" #. type: Plain text #: build/C/man3/longjmp.3:33 #, no-wrap msgid "B<#include Esetjmp.hE>\n" msgstr "B<#include Esetjmp.hE>\n" #. type: Plain text #: build/C/man3/longjmp.3:35 #, no-wrap msgid "BIB<, int >IB<);>\n" msgstr "BIB<, int >IB<);>\n" #. type: Plain text #: build/C/man3/longjmp.3:37 #, no-wrap msgid "BIB<, int >IB<);>\n" msgstr "BIB<, int >IB<);>\n" #. type: Plain text #: build/C/man3/longjmp.3:46 msgid "B(): _POSIX_C_SOURCE\\ E=\\ 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE" msgstr "B(): _POSIX_C_SOURCE\\ E=\\ 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE" #. type: Plain text #: build/C/man3/longjmp.3:70 msgid "B() and B(3) are useful for dealing with errors and interrupts encountered in a low-level subroutine of a program. B() restores the environment saved by the last call of B(3) with the corresponding I argument. After B() is completed, program execution continues as if the corresponding call of B(3) had just returned the value I. B() cannot cause 0 to be returned. If B() is invoked with a second argument of 0, 1 will be returned instead." msgstr "B() と B(3) は、プログラムの低レベルなサブルーチンにおいて、 エラーや割り込みが発生した時の処理に便利である。 B() は、I 引き数を指定して呼び出された最後の B(3) によって保存された環境を復元する。 B() の完了後、プログラムの実行は、まるで対応する B(3) の呼び出しが値 I で返って来たかように続行される。 B() は 0 を返すように指示することはできない。 二番目の引き数に 0 を指定して B() が呼ばれた場合は、代わりに 1 が返されることになる。" #. type: Plain text #: build/C/man3/longjmp.3:88 msgid "B() is similar to B() except for the type of its I argument. If, and only if, the B(3) call that set this I used a nonzero I flag, B() also restores the signal mask that was saved by B(3)." msgstr "B() は、引き数 I の型が異なる点以外は、 B() と同様である。 I を保存した B(3) が 0 以外の I フラグで呼び出されていた場合で、 かつ、その場合にのみ、 B(3) は B(3) より保存されていたシグナルマスクの復元を行う。" #. type: Plain text #: build/C/man3/longjmp.3:90 msgid "These functions never return." msgstr "これらの関数が返ることはない。" #. type: Plain text #: build/C/man3/longjmp.3:95 msgid "C89, C99, and POSIX.1-2001 specify B(). POSIX.1-2001 specifies B()." msgstr "B() は C89, C99, POSIX.1-2001 で規定されている。 B() は POSIX.1-2001 で規定されている。" #. type: Plain text #: build/C/man3/longjmp.3:105 msgid "POSIX does not specify whether B() will restore the signal context (see B(3) for some more details). If you want to portably save and restore signal masks, use B(3) and B()." msgstr "" "POSIX では、 B() がシグナルコンテキスト (signal context) を復元\n" "するかどうか規定されていない (B(3) にも少し詳しい情報がある)。\n" "移植性のある方法で、シグナルマスクを保存し復元させたい場合には、\n" "B(3) と B() を使うこと。" #. type: Plain text #: build/C/man3/longjmp.3:109 msgid "The values of automatic variables are unspecified after a call to B() if they meet all the following criteria:" msgstr "以下の条件が全て成立する場合、 B() の呼び出しが行われた後の自動変数の値は未定義 (unspecified) となる。" #. type: IP #: build/C/man3/longjmp.3:109 build/C/man3/longjmp.3:113 #: build/C/man3/longjmp.3:119 #, no-wrap msgid "\\(bu" msgstr "\\(bu" #. type: Plain text #: build/C/man3/longjmp.3:113 msgid "they are local to the function that made the corresponding B(3) call;" msgstr "その自動変数が、対応する B(3) 呼び出しを行った関数のローカル変数である。" #. type: Plain text #: build/C/man3/longjmp.3:119 msgid "their values are changed between the calls to B(3) and B(); and" msgstr "自動変数の値が B(3) と B() の間で変更されている。" #. type: Plain text #: build/C/man3/longjmp.3:122 msgid "they are not declared as I." msgstr "I として宣言されていない。" #. type: Plain text #: build/C/man3/longjmp.3:125 msgid "Analogous remarks apply for B()." msgstr "同様の注意が B() にもあてはまる。" #. type: Plain text #: build/C/man3/longjmp.3:132 msgid "B() and B() make programs hard to understand and maintain. If possible, an alternative should be used." msgstr "B() や B() を使うと、プログラムは理解しづらく、保守しにくいものになる。 別の方法が可能なら、それを使うべきである。" #. type: Plain text #: build/C/man3/longjmp.3:135 msgid "B(3), B(3)" msgstr "B(3), B(3)" #. type: TH #: build/C/man3/offsetof.3:28 #, no-wrap msgid "OFFSETOF" msgstr "OFFSETOF" #. type: TH #: build/C/man3/offsetof.3:28 #, no-wrap msgid "2014-04-06" msgstr "2014-04-06" #. type: Plain text #: build/C/man3/offsetof.3:31 msgid "offsetof - offset of a structure member" msgstr "offsetof - 構造体のメンバーのオフセットを返す" #. type: Plain text #: build/C/man3/offsetof.3:34 #, no-wrap msgid "B<#include Estddef.hE>\n" msgstr "B<#include Estddef.hE>\n" #. type: Plain text #: build/C/man3/offsetof.3:36 #, no-wrap msgid "BIB<, >IB<);>\n" msgstr "BIB<, >IB<);>\n" #. type: Plain text #: build/C/man3/offsetof.3:44 msgid "The macro B() returns the offset of the field I from the start of the structure I." msgstr "B() マクロは、フィールド I の 構造体 I の先頭からのオフセットを返す。" #. type: Plain text #: build/C/man3/offsetof.3:51 msgid "This macro is useful because the sizes of the fields that compose a structure can vary across implementations, and compilers may insert different numbers of padding bytes between fields. Consequently, an element's offset is not necessarily given by the sum of the sizes of the previous elements." msgstr "このマクロが有用なのは、 構造体を構成するフィールドのサイズは実装によって変化するし、 コンパイラによりフィールド間に挿入するパディングのバイト数も 違う可能性があるからである。 その結果、あるエレメントのオフセットは必ずしもそれより前の エレメントのサイズの合計とはならない。" #. type: Plain text #: build/C/man3/offsetof.3:56 msgid "A compiler error will result if I is not aligned to a byte boundary (i.e., it is a bit field)." msgstr "I がバイト境界に位置していない場合 (すなわち、ビットフィールドの場合) には、 コンパイラでエラーが発生する。" #. type: Plain text #: build/C/man3/offsetof.3:63 msgid "B() returns the offset of the given I within the given I, in units of bytes." msgstr "B() は、指定された I の指定された I の中でのオフセットを、バイト単位で返す。" #. type: Plain text #: build/C/man3/offsetof.3:65 msgid "C89, C99, POSIX.1-2001." msgstr "C89, C99, POSIX.1-2001." #. type: Plain text #: build/C/man3/offsetof.3:69 msgid "On a Linux/i386 system, when compiled using the default B(1) options, the program below produces the following output:" msgstr "Linux/i386 システムで、 B(1) のデフォルトオプションで コンパイルされた場合、下記のプログラムは以下のような出力を返す。" #. type: Plain text #: build/C/man3/offsetof.3:75 #, no-wrap msgid "" "$B< ./a.out>\n" "offsets: i=0; c=4; d=8 a=16\n" "sizeof(struct s)=16\n" msgstr "" "$B< ./a.out>\n" "offsets: i=0; c=4; d=8 a=16\n" "sizeof(struct s)=16\n" #. type: Plain text #: build/C/man3/offsetof.3:82 #, no-wrap msgid "" "#include Estddef.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" msgstr "" "#include Estddef.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" #. type: Plain text #: build/C/man3/offsetof.3:92 #, no-wrap msgid "" "int\n" "main(void)\n" "{\n" " struct s {\n" " int i;\n" " char c;\n" " double d;\n" " char a[];\n" " };\n" msgstr "" "int\n" "main(void)\n" "{\n" " struct s {\n" " int i;\n" " char c;\n" " double d;\n" " char a[];\n" " };\n" #. type: Plain text #: build/C/man3/offsetof.3:94 #, no-wrap msgid " /* Output is compiler dependent */\n" msgstr " /* 出力はコンパイラ依存である */\n" #. type: Plain text #: build/C/man3/offsetof.3:99 #, no-wrap msgid "" " printf(\"offsets: i=%zd; c=%zd; d=%zd a=%zd\\en\",\n" " offsetof(struct s, i), offsetof(struct s, c),\n" " offsetof(struct s, d), offsetof(struct s, a));\n" " printf(\"sizeof(struct s)=%zd\\en\", sizeof(struct s));\n" msgstr "" " printf(\"offsets: i=%zd; c=%zd; d=%zd a=%zd\\en\",\n" " offsetof(struct s, i), offsetof(struct s, c),\n" " offsetof(struct s, d), offsetof(struct s, a));\n" " printf(\"sizeof(struct s)=%zd\\en\", sizeof(struct s));\n" #. type: Plain text #: build/C/man3/offsetof.3:102 #, no-wrap msgid "" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" " exit(EXIT_SUCCESS);\n" "}\n" #. type: TH #: build/C/man3/program_invocation_name.3:24 #, no-wrap msgid "INVOCATION_NAME" msgstr "INVOCATION_NAME" #. type: TH #: build/C/man3/program_invocation_name.3:24 #, no-wrap msgid "2006-04-29" msgstr "2006-04-29" #. type: Plain text #: build/C/man3/program_invocation_name.3:28 msgid "program_invocation_name, program_invocation_short_name - obtain name used to invoke calling program" msgstr "program_invocation_name, program_invocation_short_name - プログラムの起動に使われた名前を取得する" #. type: Plain text #: build/C/man3/program_invocation_name.3:32 #, no-wrap msgid "" "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n" "B<#include Eerrno.hE>\n" msgstr "" "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */\n" "B<#include Eerrno.hE>\n" #. type: Plain text #: build/C/man3/program_invocation_name.3:35 #, no-wrap msgid "" "BIB<;>\n" "BIB<;>\n" msgstr "" "BIB<;>\n" "BIB<;>\n" #. type: Plain text #: build/C/man3/program_invocation_name.3:46 msgid "I contains the name that was used to invoke the calling program. This is the same as the value of I in I
(), with the difference that the scope of I is global." msgstr "I は、呼び出し元プログラムの起動に使用された名前を保持する。 内容は I
() の I の値と同じだが、 I の方はスコープがグローバルである点が異なる。" #. type: Plain text #: build/C/man3/program_invocation_name.3:53 msgid "I contains the basename component of name that was used to invoke the calling program. That is, it is the same value as I, with all text up to and including the final slash (/), if any, removed." msgstr "I は、呼び出し元プログラムの起動に使用された名前の basename 部分を 保持する。つまり、この変数の内容は、最後のスラッシュ (/) とそれより前の 部分がある場合、 I からこの部分を削除したものとなる。" #. type: Plain text #: build/C/man3/program_invocation_name.3:56 msgid "These variables are automatically initialized by the glibc run-time startup code." msgstr "これらの変数は glibc のランタイムスタートアップコードで 自動的に初期化される。" #. type: Plain text #: build/C/man3/program_invocation_name.3:59 msgid "These variables are GNU extensions, and should not be used in programs intended to be portable." msgstr "これらの変数は GNU の拡張であり、 移植性が必要なプログラムでは使用すべきでない。" #. type: Plain text #: build/C/man3/program_invocation_name.3:63 msgid "The Linux-specific I file provides access to similar information." msgstr "Linux 独自のファイル I でも同様の情報を得ることができる。" #. type: Plain text #: build/C/man3/program_invocation_name.3:65 msgid "B(5)" msgstr "B(5)" #. type: TH #: build/C/man3/queue.3:39 #, no-wrap msgid "QUEUE" msgstr "QUEUE" #. type: TH #: build/C/man3/queue.3:39 #, no-wrap msgid "2007-12-28" msgstr "2007-12-28" #. type: Plain text #: build/C/man3/queue.3:48 msgid "LIST_ENTRY, LIST_HEAD, LIST_INIT, LIST_INSERT_AFTER, LIST_INSERT_HEAD, LIST_REMOVE, TAILQ_ENTRY, TAILQ_HEAD, TAILQ_INIT, TAILQ_INSERT_AFTER, TAILQ_INSERT_HEAD, TAILQ_INSERT_TAIL, TAILQ_REMOVE, CIRCLEQ_ENTRY, CIRCLEQ_HEAD, CIRCLEQ_INIT, CIRCLEQ_INSERT_AFTER, CIRCLEQ_INSERT_BEFORE, CIRCLEQ_INSERT_HEAD, CIRCLEQ_INSERT_TAIL, CIRCLEQ_REMOVE - implementations of lists, tail queues, and circular queues" msgstr "LIST_ENTRY, LIST_HEAD, LIST_INIT, LIST_INSERT_AFTER, LIST_INSERT_HEAD, LIST_REMOVE, TAILQ_ENTRY, TAILQ_HEAD, TAILQ_INIT, TAILQ_INSERT_AFTER, TAILQ_INSERT_HEAD, TAILQ_INSERT_TAIL, TAILQ_REMOVE, CIRCLEQ_ENTRY, CIRCLEQ_HEAD, CIRCLEQ_INIT, CIRCLEQ_INSERT_AFTER, CIRCLEQ_INSERT_BEFORE, CIRCLEQ_INSERT_HEAD, CIRCLEQ_INSERT_TAIL, CIRCLEQ_REMOVE - リスト・テール (tail) キュー・循環キューの実装" #. type: Plain text #: build/C/man3/queue.3:51 #, no-wrap msgid "B<#include Esys/queue.hE>\n" msgstr "B<#include Esys/queue.hE>\n" #. type: Plain text #: build/C/man3/queue.3:60 #, no-wrap msgid "" "BIB<);>\n" "BIB<, >IB<);>\n" "BIB<);>\n" "BIB<, >\n" "B< TYPE *>IB<, LIST_ENTRY >IB<);>\n" "BIB<, >\n" "B< TYPE *>IB<, LIST_ENTRY >IB<);>\n" "BIB<, LIST_ENTRY >IB<);>\n" msgstr "" "BIB<);>\n" "BIB<, >IB<);>\n" "BIB<);>\n" "BIB<, >\n" "B< TYPE *>IB<, LIST_ENTRY >IB<);>\n" "BIB<, >\n" "B< TYPE *>IB<, LIST_ENTRY >IB<);>\n" "BIB<, LIST_ENTRY >IB<);>\n" #. type: Plain text #: build/C/man3/queue.3:71 #, no-wrap msgid "" "BIB<);>\n" "BIB<, >IB<);>\n" "BIB<);>\n" "BIB<, TYPE *>IB<, >\n" "B< TYPE *>IB<, TAILQ_ENTRY >IB<);>\n" "BIB<, >\n" "B< TYPE *>IB<, TAILQ_ENTRY >IB<);>\n" "BIB<, >\n" "B< TYPE *>IB<, TAILQ_ENTRY >IB<);>\n" "BIB<, TYPE *>IB<, TAILQ_ENTRY >IB<);>\n" msgstr "" "BIB<);>\n" "BIB<, >IB<);>\n" "BIB<);>\n" "BIB<, TYPE *>IB<, >\n" "B< TYPE *>IB<, TAILQ_ENTRY >IB<);>\n" "BIB<, >\n" "B< TYPE *>IB<, TAILQ_ENTRY >IB<);>\n" "BIB<, >\n" "B< TYPE *>IB<, TAILQ_ENTRY >IB<);>\n" "BIB<, TYPE *>IB<, TAILQ_ENTRY >IB<);>\n" #. type: Plain text #: build/C/man3/queue.3:85 #, no-wrap msgid "" "BIB<);>\n" "BIB<, >IB<);>\n" "BIB<);>\n" "BIB<, TYPE *>IB<, >\n" "B< TYPE *>IB<, CIRCLEQ_ENTRY >IB<);>\n" "BIB<, TYPE *>IB<, >\n" "B< TYPE *>IB<, CIRCLEQ_ENTRY >IB<);>\n" "BIB<, >\n" "B< TYPE *>IB<, CIRCLEQ_ENTRY >IB<);>\n" "BIB<, >\n" "B< TYPE *>IB<, CIRCLEQ_ENTRY >IB<);>\n" "BIB<, >\n" "B< TYPE *>IB<, CIRCLEQ_ENTRY >IB<);>\n" msgstr "" "BIB<);>\n" "BIB<, >IB<);>\n" "BIB<);>\n" "BIB<, TYPE *>IB<, >\n" "B< TYPE *>IB<, CIRCLEQ_ENTRY >IB<);>\n" "BIB<, TYPE *>IB<, >\n" "B< TYPE *>IB<, CIRCLEQ_ENTRY >IB<);>\n" "BIB<, >\n" "B< TYPE *>IB<, CIRCLEQ_ENTRY >IB<);>\n" "BIB<, >\n" "B< TYPE *>IB<, CIRCLEQ_ENTRY >IB<);>\n" "BIB<, >\n" "B< TYPE *>IB<, CIRCLEQ_ENTRY >IB<);>\n" #. type: Plain text #: build/C/man3/queue.3:90 msgid "These macros define and operate on three types of data structures: lists, tail queues, and circular queues. All three structures support the following functionality:" msgstr "これらのマクロは、次の 3 つのデータ構造を定義して操作する: リスト・テールキュー・循環キュー。 3 つのデータ構造すべてにおいて以下の機能がサポートされている:" #. type: Plain text #: build/C/man3/queue.3:95 msgid "Insertion of a new entry at the head of the list." msgstr "新たなエントリをリストの先頭に挿入する。" #. type: Plain text #: build/C/man3/queue.3:97 msgid "Insertion of a new entry after any element in the list." msgstr "新たなエントリをリストのどの要素よりも後に挿入する。" #. type: Plain text #: build/C/man3/queue.3:99 msgid "Removal of any entry in the list." msgstr "リストの任意のエントリを削除する。" #. type: Plain text #: build/C/man3/queue.3:101 msgid "Forward traversal through the list." msgstr "リストを順方向に辿る。" #. type: Plain text #: build/C/man3/queue.3:106 msgid "Lists are the simplest of the three data structures and support only the above functionality." msgstr "リストは 3 つのデータ構造の中で最も単純であり、 上記の機能のみをサポートする。" #. type: Plain text #: build/C/man3/queue.3:108 msgid "Tail queues add the following functionality:" msgstr "テールキューは以下の機能を追加する:" #. type: Plain text #: build/C/man3/queue.3:111 build/C/man3/queue.3:133 msgid "Entries can be added at the end of a list." msgstr "エントリをリストの最後に追加できる。" #. type: Plain text #: build/C/man3/queue.3:114 build/C/man3/queue.3:141 msgid "However:" msgstr "ただし:" #. type: IP #: build/C/man3/queue.3:117 build/C/man3/queue.3:144 #, no-wrap msgid "1." msgstr "1." #. type: Plain text #: build/C/man3/queue.3:119 build/C/man3/queue.3:146 msgid "All list insertions and removals must specify the head of the list." msgstr "全てのリスト挿入と削除において、リストの先頭を指定しなければならない。" #. type: IP #: build/C/man3/queue.3:119 build/C/man3/queue.3:146 #, no-wrap msgid "2." msgstr "2." #. type: Plain text #: build/C/man3/queue.3:121 build/C/man3/queue.3:148 msgid "Each head entry requires two pointers rather than one." msgstr "各先頭エントリは 1 つではなく 2 つのポインタを必要とする。" #. type: IP #: build/C/man3/queue.3:121 build/C/man3/queue.3:148 #, no-wrap msgid "3." msgstr "3." #. type: Plain text #: build/C/man3/queue.3:124 msgid "Code size is about 15% greater and operations run about 20% slower than lists." msgstr "リストと比べて、コードサイズは 15% 大きくなり、操作は 20% 遅くなる。" #. type: Plain text #: build/C/man3/queue.3:128 msgid "Circular queues add the following functionality:" msgstr "循環キューは以下の機能を追加する:" #. type: Plain text #: build/C/man3/queue.3:135 msgid "Entries can be added before another entry." msgstr "エントリを他のエントリの前に追加できる。" #. type: Plain text #: build/C/man3/queue.3:137 msgid "They may be traversed backward, from tail to head." msgstr "逆方向に末尾から先頭へ辿ることができる。" #. type: Plain text #: build/C/man3/queue.3:150 msgid "The termination condition for traversal is more complex." msgstr "辿る際の終了条件がより複雑である。" #. type: IP #: build/C/man3/queue.3:150 #, no-wrap msgid "4." msgstr "4." #. type: Plain text #: build/C/man3/queue.3:153 msgid "Code size is about 40% greater and operations run about 45% slower than lists." msgstr "リストと比べて、コードサイズは 40% 大きくなり、操作は 45% 遅くなる。" #. type: Plain text #: build/C/man3/queue.3:176 msgid "In the macro definitions, I is the name of a user-defined structure, that must contain a field of type B, B, or B, named I. The argument I is the name of a user-defined structure that must be declared using the macros B, B, or B. See the examples below for further explanation of how these macros are used." msgstr "マクロ定義において I はユーザー定義構造体の名前であり、 B, B, B の何れか型のフィールドと 指定された I を含まなければならない。 引き数 I はユーザー定義構造体の名前であり、 マクロ B, B, B を用いて宣言されなければならない。 これらのマクロがどのように使われるかについての更なる説明は、 以下の例を参照すること。" #. type: SS #: build/C/man3/queue.3:176 #, no-wrap msgid "Lists" msgstr "リスト" #. type: Plain text #: build/C/man3/queue.3:189 msgid "A list is headed by a structure defined by the B macro. This structure contains a single pointer to the first element on the list. The elements are doubly linked so that an arbitrary element can be removed without traversing the list. New elements can be added to the list after an existing element or at the head of the list. A B structure is declared as follows:" msgstr "リストの先頭には、 B マクロで定義される構造体が置かれる。 この構造体はリストの最初の要素へのポインタを 1 つ含む。 要素は 2 重にリンクされており、 任意の要素はリストを辿らずに削除できる。 新しい要素は既存の要素の後またはリストの先頭に追加できる。 B 構造体は以下のように宣言されている:" #. type: Plain text #: build/C/man3/queue.3:193 #, no-wrap msgid "LIST_HEAD(HEADNAME, TYPE) head;\n" msgstr "LIST_HEAD(HEADNAME, TYPE) head;\n" #. type: Plain text #: build/C/man3/queue.3:202 msgid "where I is the name of the structure to be defined, and I is the type of the elements to be linked into the list. A pointer to the head of the list can later be declared as:" msgstr "ここで I は定義される構造体の名前であり、 I はリンク内でリンクされる要素の型である。 リストの先頭へのポインタは、その後で次のように宣言される:" #. type: Plain text #: build/C/man3/queue.3:206 build/C/man3/queue.3:299 build/C/man3/queue.3:401 #, no-wrap msgid "struct HEADNAME *headp;\n" msgstr "struct HEADNAME *headp;\n" #. type: Plain text #: build/C/man3/queue.3:214 build/C/man3/queue.3:307 build/C/man3/queue.3:409 msgid "(The names I and I are user selectable.)" msgstr "(名前 I と I はユーザーが選択できる。)" #. type: Plain text #: build/C/man3/queue.3:219 msgid "The macro B declares a structure that connects the elements in the list." msgstr "マクロ B はリストの要素を接続する構造体を宣言する。" #. type: Plain text #: build/C/man3/queue.3:224 msgid "The macro B initializes the list referenced by I." msgstr "マクロ B は I で参照されるリストを初期化する。" #. type: Plain text #: build/C/man3/queue.3:230 msgid "The macro B inserts the new element I at the head of the list." msgstr "マクロ B は新たな要素 I をリストの先頭に挿入する。" #. type: Plain text #: build/C/man3/queue.3:237 msgid "The macro B inserts the new element I after the element I." msgstr "マクロ B は新たな要素 I を要素 I の後に挿入する。" #. type: Plain text #: build/C/man3/queue.3:243 msgid "The macro B removes the element I from the list." msgstr "マクロ B は要素 I をリストから削除する。" #. type: SS #: build/C/man3/queue.3:243 #, no-wrap msgid "List example" msgstr "リストの例" #. type: Plain text #: build/C/man3/queue.3:252 #, no-wrap msgid "" "LIST_HEAD(listhead, entry) head;\n" "struct listhead *headp; /* List head. */\n" "struct entry {\n" " ...\n" " LIST_ENTRY(entry) entries; /* List. */\n" " ...\n" "} *n1, *n2, *np;\n" msgstr "" "LIST_HEAD(listhead, entry) head;\n" "struct listhead *headp; /* リストの先頭。*/\n" "struct entry {\n" " ...\n" " LIST_ENTRY(entry) entries; /* リスト。 */\n" " ...\n" "} *n1, *n2, *np;\n" #. type: Plain text #: build/C/man3/queue.3:254 #, no-wrap msgid "LIST_INIT(&head); /* Initialize the list. */\n" msgstr "LIST_INIT(&head); /* リストを初期化する。*/\n" #. type: Plain text #: build/C/man3/queue.3:257 #, no-wrap msgid "" "n1 = malloc(sizeof(struct entry)); /* Insert at the head. */\n" "LIST_INSERT_HEAD(&head, n1, entries);\n" msgstr "" "n1 = malloc(sizeof(struct entry)); /* 先頭に挿入する。*/\n" "LIST_INSERT_HEAD(&head, n1, entries);\n" #. type: Plain text #: build/C/man3/queue.3:263 #, no-wrap msgid "" "n2 = malloc(sizeof(struct entry)); /* Insert after. */\n" "LIST_INSERT_AFTER(n1, n2, entries);\n" " /* Forward traversal. */\n" "for (np = head.lh_first; np != NULL; np = np-Eentries.le_next)\n" " np-E ...\n" msgstr "" "n2 = malloc(sizeof(struct entry)); /* 後ろに挿入する。*/\n" "LIST_INSERT_AFTER(n1, n2, entries);\n" " /* 順方向に辿る。*/\n" "for (np = head.lh_first; np != NULL; np = np-Eentries.le_next)\n" " np-E ...\n" #. FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=1506 #. type: Plain text #: build/C/man3/queue.3:267 #, no-wrap msgid "" "while (head.lh_first != NULL) /* Delete. */\n" " LIST_REMOVE(head.lh_first, entries);\n" msgstr "" "while (head.lh_first != NULL) /* 削除する。*/\n" " LIST_REMOVE(head.lh_first, entries);\n" #. type: SS #: build/C/man3/queue.3:268 #, no-wrap msgid "Tail queues" msgstr "テールキュー" #. type: Plain text #: build/C/man3/queue.3:282 msgid "A tail queue is headed by a structure defined by the B macro. This structure contains a pair of pointers, one to the first element in the tail queue and the other to the last element in the tail queue. The elements are doubly linked so that an arbitrary element can be removed without traversing the tail queue. New elements can be added to the tail queue after an existing element, at the head of the tail queue, or at the end of the tail queue. A B structure is declared as follows:" msgstr "テールキューの先頭には B マクロで定義される構造体が置かれる。 この構造体は 1 組のポインタを含んでいる。 1 つはテールキューの最初の要素へのポインタであり、 もう 1 つはテールキューの最後の要素へのポインタである。 要素は 2 重にリンクされており、 任意の要素はテールキューを辿らずに削除できる。 新しい要素は既存の要素の後またはテールキューの先頭または末尾に追加できる。 B 構造体は以下のように定義されている:" #. type: Plain text #: build/C/man3/queue.3:286 #, no-wrap msgid "TAILQ_HEAD(HEADNAME, TYPE) head;\n" msgstr "TAILQ_HEAD(HEADNAME, TYPE) head;\n" #. type: Plain text #: build/C/man3/queue.3:295 msgid "where I is the name of the structure to be defined, and I is the type of the elements to be linked into the tail queue. A pointer to the head of the tail queue can later be declared as:" msgstr "ここで I は定義される構造体の名前であり、 I はテールキュー内でリンクされる要素の型である。 テールキューの先頭へのポインタは、その後で次のように宣言される:" #. type: Plain text #: build/C/man3/queue.3:312 msgid "The macro B declares a structure that connects the elements in the tail queue." msgstr "マクロ B はテールキューの要素を接続する構造体を宣言する。" #. type: Plain text #: build/C/man3/queue.3:317 msgid "The macro B initializes the tail queue referenced by I." msgstr "マクロ B は I で参照されるテールキューを初期化する。" #. type: Plain text #: build/C/man3/queue.3:323 msgid "The macro B inserts the new element I at the head of the tail queue." msgstr "マクロ B は新たな要素 I をテールキューの先頭に挿入する。" #. type: Plain text #: build/C/man3/queue.3:329 msgid "The macro B inserts the new element I at the end of the tail queue." msgstr "マクロ B は新たな要素 I をテールキューの末尾に挿入する。" #. type: Plain text #: build/C/man3/queue.3:336 msgid "The macro B inserts the new element I after the element I." msgstr "マクロ B は新たな要素 I を要素 I の後に挿入する。" #. type: Plain text #: build/C/man3/queue.3:342 msgid "The macro B removes the element I from the tail queue." msgstr "マクロ B は要素 I をテールキューから削除する。" #. type: SS #: build/C/man3/queue.3:342 #, no-wrap msgid "Tail queue example" msgstr "テールキューの例" #. type: Plain text #: build/C/man3/queue.3:351 #, no-wrap msgid "" "TAILQ_HEAD(tailhead, entry) head;\n" "struct tailhead *headp; /* Tail queue head. */\n" "struct entry {\n" " ...\n" " TAILQ_ENTRY(entry) entries; /* Tail queue. */\n" " ...\n" "} *n1, *n2, *np;\n" msgstr "" "TAILQ_HEAD(tailhead, entry) head;\n" "struct tailhead *headp; /* テールキューの先頭。*/\n" "struct entry {\n" " ...\n" " TAILQ_ENTRY(entry) entries; /* テールキュー。*/\n" " ...\n" "} *n1, *n2, *np;\n" #. type: Plain text #: build/C/man3/queue.3:353 #, no-wrap msgid "TAILQ_INIT(&head); /* Initialize the queue. */\n" msgstr "TAILQ_INIT(&head); /* キューを初期化する。*/\n" #. type: Plain text #: build/C/man3/queue.3:356 #, no-wrap msgid "" "n1 = malloc(sizeof(struct entry)); /* Insert at the head. */\n" "TAILQ_INSERT_HEAD(&head, n1, entries);\n" msgstr "" "n1 = malloc(sizeof(struct entry)); /* 先頭に挿入する。*/\n" "TAILQ_INSERT_HEAD(&head, n1, entries);\n" #. type: Plain text #: build/C/man3/queue.3:359 #, no-wrap msgid "" "n1 = malloc(sizeof(struct entry)); /* Insert at the tail. */\n" "TAILQ_INSERT_TAIL(&head, n1, entries);\n" msgstr "" "n1 = malloc(sizeof(struct entry)); /* 末尾に挿入する。*/\n" "TAILQ_INSERT_TAIL(&head, n1, entries);\n" #. type: Plain text #: build/C/man3/queue.3:368 #, no-wrap msgid "" "n2 = malloc(sizeof(struct entry)); /* Insert after. */\n" "TAILQ_INSERT_AFTER(&head, n1, n2, entries);\n" " /* Forward traversal. */\n" "for (np = head.tqh_first; np != NULL; np = np-Eentries.tqe_next)\n" " np-E ...\n" " /* Delete. */\n" "while (head.tqh_first != NULL)\n" " TAILQ_REMOVE(&head, head.tqh_first, entries);\n" msgstr "" "n2 = malloc(sizeof(struct entry)); /* 後ろに挿入する。*/\n" "TAILQ_INSERT_AFTER(&head, n1, n2, entries);\n" " /* 順方向に辿る。*/\n" "for (np = head.tqh_first; np != NULL; np = np-Eentries.tqe_next)\n" " np-E ...\n" " /* 削除する。*/\n" "while (head.tqh_first != NULL)\n" " TAILQ_REMOVE(&head, head.tqh_first, entries);\n" #. type: SS #: build/C/man3/queue.3:369 #, no-wrap msgid "Circular queues" msgstr "循環キュー" #. type: Plain text #: build/C/man3/queue.3:384 msgid "A circular queue is headed by a structure defined by the B macro. This structure contains a pair of pointers, one to the first element in the circular queue and the other to the last element in the circular queue. The elements are doubly linked so that an arbitrary element can be removed without traversing the queue. New elements can be added to the queue after an existing element, before an existing element, at the head of the queue, or at the end of the queue. A B structure is declared as follows:" msgstr "循環キューの先頭には B マクロで定義される構造体が置かれる。 この構造体は 1 組のポインタを含んでいる。 1 つは循環キューの最初の要素へのポインタであり、 もう 1 つは循環キューの最後の要素へのポインタである。 要素は 2 重にリンクされており、 任意の要素はキューを辿らずに削除できる。 新しい要素は、既存の要素の後または前、またはキューの先頭または末尾に追加できる。 A B 構造体は以下のように定義されている:" #. type: Plain text #: build/C/man3/queue.3:388 #, no-wrap msgid "CIRCLEQ_HEAD(HEADNAME, TYPE) head;\n" msgstr "CIRCLEQ_HEAD(HEADNAME, TYPE) head;\n" #. type: Plain text #: build/C/man3/queue.3:397 msgid "where I is the name of the structure to be defined, and I is the type of the elements to be linked into the circular queue. A pointer to the head of the circular queue can later be declared as:" msgstr "ここで I は定義される構造体の名前であり、 I は循環キュー内でリンクされる要素の型である。 循環キューの先頭へのポインタは、その後で次のように宣言される:" #. type: Plain text #: build/C/man3/queue.3:414 msgid "The macro B declares a structure that connects the elements in the circular queue." msgstr "マクロ B は循環キューの要素を接続する構造体を宣言する。" #. type: Plain text #: build/C/man3/queue.3:419 msgid "The macro B initializes the circular queue referenced by I." msgstr "マクロ B は I で参照される循環キューを初期化する。" #. type: Plain text #: build/C/man3/queue.3:425 msgid "The macro B inserts the new element I at the head of the circular queue." msgstr "マクロ B は新たな要素 I を循環キューの先頭に挿入する。" #. type: Plain text #: build/C/man3/queue.3:431 msgid "The macro B inserts the new element I at the end of the circular queue." msgstr "マクロ B は新たな要素 I を循環キューの末尾に挿入する。" #. type: Plain text #: build/C/man3/queue.3:438 msgid "The macro B inserts the new element I after the element I." msgstr "マクロ B は新たな要素 I を要素 I の後に挿入する。" #. type: Plain text #: build/C/man3/queue.3:445 msgid "The macro B inserts the new element I before the element I." msgstr "マクロ B は新たな要素 I を要素 I の前に挿入する。" #. type: Plain text #: build/C/man3/queue.3:451 msgid "The macro B removes the element I from the circular queue." msgstr "マクロ B は要素 I を循環キューから削除する。" #. type: SS #: build/C/man3/queue.3:451 #, no-wrap msgid "Circular queue example" msgstr "循環キューの例" #. type: Plain text #: build/C/man3/queue.3:460 #, no-wrap msgid "" "CIRCLEQ_HEAD(circleq, entry) head;\n" "struct circleq *headp; /* Circular queue head. */\n" "struct entry {\n" " ...\n" " CIRCLEQ_ENTRY(entry) entries; /* Circular queue. */\n" " ...\n" "} *n1, *n2, *np;\n" msgstr "" "CIRCLEQ_HEAD(circleq, entry) head;\n" "struct circleq *headp; /* 循環キューの先頭。*/\n" "struct entry {\n" " ...\n" " CIRCLEQ_ENTRY(entry) entries; /* 循環キュー。*/\n" " ...\n" "} *n1, *n2, *np;\n" #. type: Plain text #: build/C/man3/queue.3:462 #, no-wrap msgid "CIRCLEQ_INIT(&head); /* Initialize the circular queue. */\n" msgstr "CIRCLEQ_INIT(&head); /* 循環キューを初期化する。*/\n" #. type: Plain text #: build/C/man3/queue.3:465 #, no-wrap msgid "" "n1 = malloc(sizeof(struct entry)); /* Insert at the head. */\n" "CIRCLEQ_INSERT_HEAD(&head, n1, entries);\n" msgstr "" "n1 = malloc(sizeof(struct entry)); /* 先頭に挿入する。*/\n" "CIRCLEQ_INSERT_HEAD(&head, n1, entries);\n" #. type: Plain text #: build/C/man3/queue.3:468 #, no-wrap msgid "" "n1 = malloc(sizeof(struct entry)); /* Insert at the tail. */\n" "CIRCLEQ_INSERT_TAIL(&head, n1, entries);\n" msgstr "" "n1 = malloc(sizeof(struct entry)); /* 末尾に挿入する。*/\n" "CIRCLEQ_INSERT_TAIL(&head, n1, entries);\n" #. type: Plain text #: build/C/man3/queue.3:471 #, no-wrap msgid "" "n2 = malloc(sizeof(struct entry)); /* Insert after. */\n" "CIRCLEQ_INSERT_AFTER(&head, n1, n2, entries);\n" msgstr "" "n2 = malloc(sizeof(struct entry)); /* 後ろに挿入する。*/\n" "CIRCLEQ_INSERT_AFTER(&head, n1, n2, entries);\n" #. type: Plain text #: build/C/man3/queue.3:484 #, no-wrap msgid "" "n2 = malloc(sizeof(struct entry)); /* Insert before. */\n" "CIRCLEQ_INSERT_BEFORE(&head, n1, n2, entries);\n" " /* Forward traversal. */\n" "for (np = head.cqh_first; np != (void *)&head;\n" " np = np-Eentries.cqe_next)\n" " np-E ...\n" " /* Reverse traversal. */\n" "for (np = head.cqh_last; np != (void *)&head; np = np-Eentries.cqe_prev)\n" " np-E ...\n" " /* Delete. */\n" "while (head.cqh_first != (void *)&head)\n" " CIRCLEQ_REMOVE(&head, head.cqh_first, entries);\n" msgstr "" "n2 = malloc(sizeof(struct entry)); /* 前に挿入する。*/\n" "CIRCLEQ_INSERT_BEFORE(&head, n1, n2, entries);\n" " /* 順方向に辿る。*/\n" "for (np = head.cqh_first; np != (void *)&head; np = np-Eentries.cqe_next)\n" " np-E ...\n" " /* 逆方向に辿る。*/\n" "for (np = head.cqh_last; np != (void *)&head; np = np-Eentries.cqe_prev)\n" " np-E ...\n" " /* 削除する。*/\n" "while (head.cqh_first != (void *)&head)\n" " CIRCLEQ_REMOVE(&head, head.cqh_first, entries);\n" #. type: Plain text #: build/C/man3/queue.3:491 msgid "Not in POSIX.1-2001. Present on the BSDs. The queue functions first appeared in 4.4BSD." msgstr "POSIX.1-2001 にはない。 BSD 系に存在する。 queue 関数は 4.4BSD で初めて登場した。" #. type: TH #: build/C/man3/realpath.3:28 #, no-wrap msgid "REALPATH" msgstr "REALPATH" #. type: TH #: build/C/man3/realpath.3:28 #, no-wrap msgid "2014-10-02" msgstr "2014-10-02" #. type: Plain text #: build/C/man3/realpath.3:31 msgid "realpath - return the canonicalized absolute pathname" msgstr "realpath - 正規化された絶対パス名を返す" #. type: Plain text #: build/C/man3/realpath.3:35 #, no-wrap msgid "" "B<#include Elimits.hE>\n" "B<#include Estdlib.hE>\n" msgstr "" "B<#include Elimits.hE>\n" "B<#include Estdlib.hE>\n" #. type: Plain text #: build/C/man3/realpath.3:37 #, no-wrap msgid "BIB<, char *>IB<);>\n" msgstr "BIB<, char *>IB<);>\n" #. type: Plain text #: build/C/man3/realpath.3:45 msgid "B():" msgstr "B():" #. type: Plain text #: build/C/man3/realpath.3:49 msgid "_BSD_SOURCE || _XOPEN_SOURCE\\ E=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED" msgstr "_BSD_SOURCE || _XOPEN_SOURCE\\ E=\\ 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED" #. type: Plain text #: build/C/man3/realpath.3:71 msgid "B() expands all symbolic links and resolves references to I, I and extra \\(aq/\\(aq characters in the null-terminated string named by I to produce a canonicalized absolute pathname. The resulting pathname is stored as a null-terminated string, up to a maximum of B bytes, in the buffer pointed to by I. The resulting path will have no symbolic link, I or I components." msgstr "B() は I として与えられたヌル終端された文字列中の すべてのシンボリックリンクを展開し、 I, I による参照や余分な \\(aq/\\(aq を解決して、正規化された絶対パス名を生成する。 得られた絶対パス名は、最大で B バイトのヌル終端された文字列として、 I により参照されるバッファに格納される。 結果として返るパスの中には、シンボリックリンクや I, I といった要素は含まれない。" #. Even if we use resolved_path == NULL, then realpath() will still #. return ENAMETOOLONG if the resolved pathname would exceed PATH_MAX #. bytes -- MTK, Dec 04 #. .SH HISTORY #. The #. .BR realpath () #. function first appeared in 4.4BSD, contributed by Jan-Simon Pendry. #. type: Plain text #: build/C/man3/realpath.3:91 msgid "If I is specified as NULL, then B() uses B(3) to allocate a buffer of up to B bytes to hold the resolved pathname, and returns a pointer to this buffer. The caller should deallocate this buffer using B(3)." msgstr "I に NULL が指定されると、 B() は B(3) を使って解決したパス名を保持するためのバッファを 最大で B バイトまで割り当て、このバッファへのポインタを返す。 呼び出し元は、 B(3) を使ってこのバッファを解放すべきである。" #. type: Plain text #: build/C/man3/realpath.3:96 msgid "If there is no error, B() returns a pointer to the I." msgstr "エラーがなかった場合、 B() は I へのポインターを返す。" #. type: Plain text #: build/C/man3/realpath.3:103 msgid "Otherwise, it returns NULL, the contents of the array I are undefined, and I is set to indicate the error." msgstr "それ以外の場合は NULL が返り、配列 I の内容は不定となり、 I にエラーの内容を示す値がセットされる。" #. type: SH #: build/C/man3/realpath.3:103 #, no-wrap msgid "ERRORS" msgstr "エラー" #. type: TP #: build/C/man3/realpath.3:104 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man3/realpath.3:107 msgid "Read or search permission was denied for a component of the path prefix." msgstr "パスのディレクトリ部分に、読み出し許可または検索許可が与えられていない。" #. type: TP #: build/C/man3/realpath.3:107 #, no-wrap msgid "B" msgstr "B" #. (In libc5 this would just cause a segfault.) #. type: Plain text #: build/C/man3/realpath.3:116 msgid "I is NULL. (In glibc versions before 2.3, this error is also returned if I is NULL.)" msgstr "I が NULL である。 (バージョン 2.3 より前の glibc では、 I が NULL の場合にもこのエラーが返される。)" #. type: TP #: build/C/man3/realpath.3:116 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man3/realpath.3:119 msgid "An I/O error occurred while reading from the filesystem." msgstr "ファイルシステムを読むときに、I/Oエラーが起こった。" #. type: TP #: build/C/man3/realpath.3:119 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man3/realpath.3:122 msgid "Too many symbolic links were encountered in translating the pathname." msgstr "パス名の変換にあたり、解決すべきシンボリックリンクの数が多過ぎた。" #. type: TP #: build/C/man3/realpath.3:122 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man3/realpath.3:129 msgid "A component of a pathname exceeded B characters, or an entire pathname exceeded B characters." msgstr "パス名の一要素の文字数が B を越えている、またはパス名全体の文字数が B を越えている。" #. type: TP #: build/C/man3/realpath.3:129 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man3/realpath.3:132 msgid "The named file does not exist." msgstr "指定されたファイルが存在しない。" #. type: TP #: build/C/man3/realpath.3:132 #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: build/C/man3/realpath.3:135 msgid "A component of the path prefix is not a directory." msgstr "パスのディレクトリ要素が、ディレクトリでない。" #. type: Plain text #: build/C/man3/realpath.3:137 msgid "4.4BSD, POSIX.1-2001." msgstr "4.4BSD, POSIX.1-2001." #. type: Plain text #: build/C/man3/realpath.3:142 msgid "POSIX.1-2001 says that the behavior if I is NULL is implementation-defined. POSIX.1-2008 specifies the behavior described in this page." msgstr "POSIX.1-2001 では I が NULL の場合の動作は実装に依存するとしている。 POSIX.1-2008 では、このマニュアルページに書かれている動作が規定されている。" #. type: Plain text #: build/C/man3/realpath.3:154 msgid "In 4.4BSD and Solaris, the limit on the pathname length is B (found in Isys/param.hE>). SUSv2 prescribes B and B, as found in Ilimits.hE> or provided by the B(3) function. A typical source fragment would be" msgstr "4.4BSD と Solaris では、パス名の長さの上限は (Isys/param.hE> の中にある) B である。SUSv2 では B と B が規定されており、 これらは Ilimits.hE> で定義されているか、 B(3) 関数から得られる。以下のようなソースコードになっていることが多い。" #. type: Plain text #: build/C/man3/realpath.3:164 #, no-wrap msgid "" "#ifdef PATH_MAX\n" " path_max = PATH_MAX;\n" "#else\n" " path_max = pathconf(path, _PC_PATH_MAX);\n" " if (path_max E= 0)\n" " path_max = 4096;\n" "#endif\n" msgstr "" "#ifdef PATH_MAX\n" " path_max = PATH_MAX;\n" "#else\n" " path_max = pathconf(path, _PC_PATH_MAX);\n" " if (path_max E= 0)\n" "\t path_max = 4096;\n" "#endif\n" #. type: Plain text #: build/C/man3/realpath.3:168 msgid "(But see the BUGS section.)" msgstr "(バグの章も参照のこと。)" #. 2012-05-05, According to Casper Dik, the statement about #. Solaris was not true at least as far back as 1997, and #. may never have been true. #. The 4.4BSD, Linux and SUSv2 versions always return an absolute #. pathname. #. Solaris may return a relative pathname when the #. .I path #. argument is relative. #. The prototype of #. .BR realpath () #. is given in \fI\fP in libc4 and libc5, #. but in \fI\fP everywhere else. #. type: SS #: build/C/man3/realpath.3:182 #, no-wrap msgid "GNU extensions" msgstr "GNU による拡張" #. type: Plain text #: build/C/man3/realpath.3:193 msgid "If the call fails with either B or B and I is not NULL, then the prefix of I that is not readable or does not exist is returned in I." msgstr "呼び出しが B か B で失敗し I が NULL でない場合、読むことができない、もしくは存在しない I のディレクトリ要素 (prefix) が I で返される。" #. .LP #. The libc4 and libc5 implementation contained a buffer overflow #. (fixed in libc-5.4.13). #. Thus, set-user-ID programs like #. .BR mount (8) #. needed a private version. #. type: Plain text #: build/C/man3/realpath.3:224 msgid "The POSIX.1-2001 standard version of this function is broken by design, since it is impossible to determine a suitable size for the output buffer, I. According to POSIX.1-2001 a buffer of size B suffices, but B need not be a defined constant, and may have to be obtained using B(3). And asking B(3) does not really help, since, on the one hand POSIX warns that the result of B(3) may be huge and unsuitable for mallocing memory, and on the other hand B(3) may return -1 to signify that B is not bounded. The I feature, not standardized in POSIX.1-2001, but standardized in POSIX.1-2008, allows this design problem to be avoided." msgstr "この関数の POSIX.1-2001 版は、設計段階から問題がある。 出力バッファ I の適切なサイズを決定することができないからである。 POSIX.1-2001 ではバッファサイズとして B は十分だとされているが、 B は定義済の定数である必要はなく、 B(3) を使って得られる値であってもよいことになっている。 B(3) からバッファサイズを取得したとしても必ずしも十分ではない。 なぜなら、POSIX で警告されているように、 B(3) の返り値が大き過ぎて適切にメモリを確保することができない かもしれない一方で、 B(3) は B に制限がないことを示す -1 を返すかもしれないからである。 I の機能を使うと、この設計上の問題を回避することができる。 この機能は POSIX.1-2001 では標準化されていないが、 POSIX.1-2008 では標準化されている。" #. type: Plain text #: build/C/man3/realpath.3:231 msgid "B(1), B(2), B(3), B(3), B(3), B(3)" msgstr "B(1), B(2), B(3), B(3), B(3), B(3)" #. type: TH #: build/C/man3/setjmp.3:27 #, no-wrap msgid "SETJMP" msgstr "SETJMP" #. type: TH #: build/C/man3/setjmp.3:27 #, no-wrap msgid "2014-01-07" msgstr "2014-01-07" #. type: Plain text #: build/C/man3/setjmp.3:30 msgid "setjmp, sigsetjmp - save stack context for nonlocal goto" msgstr "setjmp, sigsetjmp - 非局所的なジャンプのために、スタックコンテキスト (stack context) を保存する" #. type: Plain text #: build/C/man3/setjmp.3:32 msgid "B<#include Esetjmp.hE>" msgstr "B<#include Esetjmp.hE>" #. type: Plain text #: build/C/man3/setjmp.3:35 #, no-wrap msgid "BIB<);>\n" msgstr "BIB<);>\n" #. type: Plain text #: build/C/man3/setjmp.3:37 #, no-wrap msgid "BIB<, int >IB<);>\n" msgstr "BIB<, int >IB<);>\n" #. type: Plain text #: build/C/man3/setjmp.3:46 msgid "B(): see NOTES." msgstr "B(): 「注意」参照。" #. type: Plain text #: build/C/man3/setjmp.3:49 msgid "B(): _POSIX_C_SOURCE\\ E=\\ 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE" msgstr "B(): _POSIX_C_SOURCE\\ E=\\ 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE" #. type: Plain text #: build/C/man3/setjmp.3:65 msgid "B() and B(3) are useful for dealing with errors and interrupts encountered in a low-level subroutine of a program. B() saves the stack context/environment in I for later use by B(3). The stack context will be invalidated if the function which called B() returns." msgstr "B() と B(3) は、プログラムの低レベルなサブルーチン において、エラーや割り込みが発生した時の処理に便利である。 B() は、 B(3) によって使われる I に スタックコンテキスト/スタック環境を保存する。 B() を呼び出した 関数が返るときに、そのスタックコンテキストは無効になる。" #. type: Plain text #: build/C/man3/setjmp.3:78 msgid "B() is similar to B(). If, and only if, I is nonzero, the process's current signal mask is saved in I and will be restored if a B(3) is later performed with this I." msgstr "B() も B() と同様である。 I が 0 以外の場合、 このプロセスの現在のシグナルマスクも I に保存され、 このシグナルは後で B(3) がこの I で実行された際に復元される。" #. type: Plain text #: build/C/man3/setjmp.3:88 msgid "B() and B() return 0 if returning directly, and nonzero when returning from B(3) or B(3) using the saved context." msgstr "直接返ってくるときは、 B() と B() は 0 を返し、保存したコンテキストを使って B(3) や B(3) から返ってくるときは 0 以外を返す。" #. type: Plain text #: build/C/man3/setjmp.3:93 msgid "C89, C99, and POSIX.1-2001 specify B(). POSIX.1-2001 specifies B()." msgstr "B() は C89, C99, POSIX.1-2001 で規定されている。 B() は POSIX.1-2001 で規定されている。" #. type: Plain text #: build/C/man3/setjmp.3:129 msgid "POSIX does not specify whether B() will save the signal mask (to be later restored during B(3)). In System V it will not. In 4.3BSD it will, and there is a function B<_setjmp> that will not. On Linux with glibc versions before 2.19, B() follows the System V behavior by default, but the BSD behavior is provided if the B<_BSD_SOURCE> feature test macro is defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, B<_XOPEN_SOURCE_EXTENDED>, B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined. Since glibc 2.19, Isetjmp.hE> exposes only the System V version of B(). Programs that need the BSD semantics should replace calls to B() with calls to B() with a nonzero I argument." msgstr "POSIX は、 (B() 中で後で復元できるように) B() がシグナルマスクを保存すべきかどうかを規定していない。 System V では保存しない。 4.3BSD では保存する; 4.3BSD にはシグナルコンテキストを保存しない関数 B<_setjmp> もある。 バージョン 2.19 より前の glibc を使う Linux では、 B() はデフォルトでは System V の振る舞いに従うが、 B<_BSD_SOURCE> 機能検査マクロが定義され、 B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, B<_XOPEN_SOURCE_EXTENDED>, B<_GNU_SOURCE>, B<_SVID_SOURCE> のいずれも定義されていない時は BSD の振る舞いとなる。 glibc 2.19 以降では、 Isetjmp.hE> は System V 版の B() のみを公開するようになっている。 BSD の動作を必要とするプログラムでは、 B() の呼び出しを、 I 引き数に 0 以外の値を渡す B() に置き換えるべきである。" #. type: Plain text #: build/C/man3/setjmp.3:134 msgid "If you want to portably save and restore signal masks, use B() and B(3)." msgstr "移植性のある形でシグナルマスクを保存および復元したいのなら、 B() と B(3) を使うこと。" #. type: Plain text #: build/C/man3/setjmp.3:141 msgid "B() and B() make programs hard to understand and maintain. If possible, an alternative should be used." msgstr "B() や B() を使うと、プログラムは理解しづらく、保守しにくいものになる。 別の方法が可能なら、それを使うべきである。" #. type: Plain text #: build/C/man3/setjmp.3:144 msgid "B(3), B(3)" msgstr "B(3), B(3)" #. type: TH #: build/C/man3/xcrypt.3:13 #, no-wrap msgid "XCRYPT" msgstr "XCRYPT" #. type: Plain text #: build/C/man3/xcrypt.3:16 msgid "xencrypt, xdecrypt, passwd2des - RFS password encryption" msgstr "xencrypt, xdecrypt, passwd2des - RFS パスワード暗号化" #. type: Plain text #: build/C/man3/xcrypt.3:18 msgid "B<#include Erpc/des_crypt.hE>" msgstr "B<#include Erpc/des_crypt.hE>" #. type: Plain text #: build/C/man3/xcrypt.3:20 msgid "BI<*passwd>B<, char *>IB<);>" msgstr "BI<*passwd>B<, char *>IB<);>" #. type: Plain text #: build/C/man3/xcrypt.3:22 msgid "BIB<, char *>IB<);>" msgstr "BIB<, char *>IB<);>" #. type: Plain text #: build/C/man3/xcrypt.3:24 msgid "BIB<, char *>IB<);>" msgstr "BIB<, char *>IB<);>" #. type: Plain text #: build/C/man3/xcrypt.3:40 msgid "The function B() takes a character string I of arbitrary length and fills a character array I of length 8. The array I is suitable for use as DES key. It has odd parity set in bit 0 of each byte. Both other functions described here use this function to turn their argument I into a DES key." msgstr "関数 B() は任意の長さの文字列 I をとり、長さ 8 の文字配列 I を埋める。 配列 I は DES キーとして使うのに適している。 この配列の各バイトのビット 0 は奇数パリティである。 ここで説明されている残りの 2 つの関数は、 この関数を使い、引き数 I を DES キーに変換する。" #. (over the alphabet 0123456789abcdefABCDEF), #. (over the alphabet 0123456789abcdef) #. type: Plain text #: build/C/man3/xcrypt.3:57 msgid "The B() function takes the ASCII character string I given in hex, which must have a length that is a multiple of 16, encrypts it using the DES key derived from I by B(), and outputs the result again in I as a hex string of the same length." msgstr "B() 関数は 16 進数で与えられた ASCII 文字列 I をとる。 この長さは 16 の倍数でなければならない。 そして B() によって I から導き出された DES キーを使い、 I を暗号化する。 その結果は 16 進数文字列として I に再び同じ長さで出力される。" #. type: Plain text #: build/C/man3/xcrypt.3:61 msgid "The B() function performs the converse operation." msgstr "B() 関数は逆の操作を行う。" #. type: Plain text #: build/C/man3/xcrypt.3:67 msgid "The functions B() and B() return 1 on success and 0 on error." msgstr "関数 B() と B() は、成功した場合に 1 を返し、失敗した場合に 0 を返す。" #. type: Plain text #: build/C/man3/xcrypt.3:69 msgid "These functions are available in glibc since version 2.1." msgstr "これらの関数はバージョン 2.1 以降の glibc で提供されている。" #. type: Plain text #: build/C/man3/xcrypt.3:71 msgid "The prototypes are missing from the abovementioned include file." msgstr "上記のインクルードファイルにプロトタイプがない。" #. type: Plain text #: build/C/man3/xcrypt.3:73 msgid "B(3)" msgstr "B(3)"