msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2012-04-23 07:54+0900\n"
-"PO-Revision-Date: 2012-03-23 04:57+0900\n"
+"POT-Creation-Date: 2015-01-23 22:25+0900\n"
+"PO-Revision-Date: 2015-01-25 06:44+0900\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"Content-Transfer-Encoding: 8bit\n"
#. type: TH
-#: build/C/man3/bsearch.3:29
+#: build/C/man3/bsearch.3:31
#, no-wrap
msgid "BSEARCH"
msgstr "BSEARCH"
#. type: TH
-#: build/C/man3/bsearch.3:29
+#: build/C/man3/bsearch.3:31
#, no-wrap
msgid "2003-11-01"
msgstr "2003-11-01"
#. type: TH
-#: build/C/man3/bsearch.3:29 build/C/man3/hsearch.3:35
-#: build/C/man3/insque.3:34 build/C/man3/lsearch.3:25 build/C/man3/qsort.3:35
-#: build/C/man3/tsearch.3:24
+#: build/C/man3/bsearch.3:31 build/C/man3/hsearch.3:35
+#: build/C/man3/insque.3:36 build/C/man3/lsearch.3:26 build/C/man3/qsort.3:37
+#: build/C/man3/tsearch.3:25
#, no-wrap
msgid "Linux Programmer's Manual"
msgstr "Linux Programmer's Manual"
#. type: SH
-#: build/C/man3/bsearch.3:30 build/C/man3/hsearch.3:36
-#: build/C/man3/insque.3:35 build/C/man3/lsearch.3:26 build/C/man3/qsort.3:36
-#: build/C/man3/tsearch.3:25
+#: build/C/man3/bsearch.3:32 build/C/man3/hsearch.3:36
+#: build/C/man3/insque.3:37 build/C/man3/lsearch.3:27 build/C/man3/qsort.3:38
+#: build/C/man3/tsearch.3:26
#, no-wrap
msgid "NAME"
msgstr "名前"
#. type: Plain text
-#: build/C/man3/bsearch.3:32
+#: build/C/man3/bsearch.3:34
msgid "bsearch - binary search of a sorted array"
msgstr "bsearch - ソートされた配列を二分木検索 (binary search) する"
#. type: SH
-#: build/C/man3/bsearch.3:32 build/C/man3/hsearch.3:39
-#: build/C/man3/insque.3:37 build/C/man3/lsearch.3:28 build/C/man3/qsort.3:38
-#: build/C/man3/tsearch.3:27
+#: build/C/man3/bsearch.3:34 build/C/man3/hsearch.3:39
+#: build/C/man3/insque.3:39 build/C/man3/lsearch.3:29 build/C/man3/qsort.3:40
+#: build/C/man3/tsearch.3:28
#, no-wrap
msgid "SYNOPSIS"
msgstr "書式"
#. type: Plain text
-#: build/C/man3/bsearch.3:35 build/C/man3/qsort.3:41
+#: build/C/man3/bsearch.3:37 build/C/man3/qsort.3:43
#, no-wrap
msgid "B<#include E<lt>stdlib.hE<gt>>\n"
msgstr "B<#include E<lt>stdlib.hE<gt>>\n"
#. type: Plain text
-#: build/C/man3/bsearch.3:39
+#: build/C/man3/bsearch.3:41
#, no-wrap
msgid ""
"B<void *bsearch(const void *>I<key>B<, const void *>I<base>B<,>\n"
"B< int (*>I<compar>B<)(const void *, const void *));>\n"
#. type: SH
-#: build/C/man3/bsearch.3:40 build/C/man3/hsearch.3:60
-#: build/C/man3/insque.3:59 build/C/man3/lsearch.3:38 build/C/man3/qsort.3:59
-#: build/C/man3/tsearch.3:50
+#: build/C/man3/bsearch.3:42 build/C/man3/hsearch.3:60
+#: build/C/man3/insque.3:61 build/C/man3/lsearch.3:39 build/C/man3/qsort.3:61
+#: build/C/man3/tsearch.3:51
#, no-wrap
msgid "DESCRIPTION"
msgstr "説明"
#. type: Plain text
-#: build/C/man3/bsearch.3:48
+#: build/C/man3/bsearch.3:56
msgid ""
"The B<bsearch>() function searches an array of I<nmemb> objects, the "
"initial member of which is pointed to by I<base>, for a member that matches "
"specified by I<size>."
msgstr ""
"B<bsearch>() 関数は I<nmemb> 個のオブジェクトからなる配列を検索 する。配列の"
-"æ\9c\80å\88\9dã\81®ã\83¡ã\83³ã\83\90ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81¯ I<base> ã\81«ã\82\88ã\81£ã\81¦ä¸\8eã\81\88ã\82\8bã\80\82 ã\83\9dã\82¤ã\83³ã\82¿ I<key> ã\81§å\8f\82ç\85§"
-"されるオブジェクトと一致するメンバーが返される。 配列中の各々のメンバーのサイ"
-"ズは I<size> によって指定する。"
+"æ\9c\80å\88\9dã\81®ã\83¡ã\83³ã\83\90ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¯ I<base> ã\81«ã\82\88ã\81£ã\81¦ä¸\8eã\81\88ã\82\8bã\80\82 ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ I<key> ã\81§"
+"参照されるオブジェクトと一致するメンバーが返される。 配列中の各々のメンバーの"
+"ã\82µã\82¤ã\82ºã\81¯ I<size> ã\81«ã\82\88ã\81£ã\81¦æ\8c\87å®\9aã\81\99ã\82\8bã\80\82"
#. type: Plain text
-#: build/C/man3/bsearch.3:57
+#: build/C/man3/bsearch.3:70
msgid ""
"The contents of the array should be in ascending sorted order according to "
"the comparison function referenced by I<compar>. The I<compar> routine is "
"less than, to match, or be greater than the array member."
msgstr ""
"配列の内容は比較関数 I<compar> に基づき、昇順にソートされていなけれ ばならな"
-"い。 I<compar> ルーチンは二つの引数を取る関数で、一つ 目に I<key> へのポイン"
-"ã\82¿ã\80\81次ã\81«é\85\8då\88\97ã\81®ã\83¡ã\83³ã\83\90ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92å\8f\96ã\82\8bã\80\82 ã\81\93ã\81®é \86ã\81«æ\8c\87å®\9aã\81\97ã\81\9fã\81¨ã\81\8dã\80\81 I<key> ã\81\8cé\85\8d"
-"列メンバーより小さいときには 負の整数を、大きいときには正の整数を、一致したと"
-"きには 0 を、それぞれ I<compar> は返さなければならない。"
+"い。 I<compar> ルーチンは二つの引き数を取る関数で、一つ 目に I<key> へのポイ"
+"ã\83³ã\82¿ã\83¼ã\80\81次ã\81«é\85\8då\88\97ã\81®ã\83¡ã\83³ã\83\90ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92å\8f\96ã\82\8bã\80\82 ã\81\93ã\81®é \86ã\81«æ\8c\87å®\9aã\81\97ã\81\9fã\81¨ã\81\8dã\80\81 "
+"I<key> が配列メンバーより小さいときには 負の整数を、大きいときには正の整数"
+"ã\82\92ã\80\81ä¸\80è\87´ã\81\97ã\81\9fã\81¨ã\81\8dã\81«ã\81¯ 0 ã\82\92ã\80\81ã\81\9dã\82\8cã\81\9eã\82\8c I<compar> ã\81¯è¿\94ã\81\95ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82"
#. type: SH
-#: build/C/man3/bsearch.3:57 build/C/man3/hsearch.3:174
-#: build/C/man3/lsearch.3:58 build/C/man3/qsort.3:89
-#: build/C/man3/tsearch.3:132
+#: build/C/man3/bsearch.3:70 build/C/man3/hsearch.3:174
+#: build/C/man3/lsearch.3:72 build/C/man3/qsort.3:91
+#: build/C/man3/tsearch.3:167
#, no-wrap
msgid "RETURN VALUE"
msgstr "返り値"
#. type: Plain text
-#: build/C/man3/bsearch.3:64
+#: build/C/man3/bsearch.3:77
msgid ""
"The B<bsearch>() function returns a pointer to a matching member of the "
"array, or NULL if no match is found. If there are multiple elements that "
"match the key, the element returned is unspecified."
msgstr ""
-"B<bsearch>() é\96¢æ\95°ã\81¯ã\80\81é\85\8då\88\97ã\81®ã\83¡ã\83³ã\83\90ã\83¼ã\81®ã\81\86ã\81¡ã\80\81ä¸\80è\87´ã\81\97ã\81\9fã\82\82ã\81®ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92 è¿\94ã\81\99ã\80\82"
-"見つからなかったときは NULL を返す。 I<key> と一致したメンバーが 複数あると"
-"き、そのうちのどのメンバーが返されるかはわからない。"
+"B<bsearch>() é\96¢æ\95°ã\81¯ã\80\81é\85\8då\88\97ã\81®ã\83¡ã\83³ã\83\90ã\83¼ã\81®ã\81\86ã\81¡ã\80\81ä¸\80è\87´ã\81\97ã\81\9fã\82\82ã\81®ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92 è¿\94"
+"す。見つからなかったときは NULL を返す。 I<key> と一致したメンバーが 複数ある"
+"ã\81¨ã\81\8dã\80\81ã\81\9dã\81®ã\81\86ã\81¡ã\81®ã\81©ã\81®ã\83¡ã\83³ã\83\90ã\83¼ã\81\8cè¿\94ã\81\95ã\82\8cã\82\8bã\81\8bã\81¯ã\82\8fã\81\8bã\82\89ã\81ªã\81\84ã\80\82"
#. type: SH
-#: build/C/man3/bsearch.3:64 build/C/man3/hsearch.3:226
-#: build/C/man3/insque.3:97 build/C/man3/lsearch.3:66 build/C/man3/qsort.3:98
-#: build/C/man3/tsearch.3:153
+#: build/C/man3/bsearch.3:77 build/C/man3/hsearch.3:246
+#: build/C/man3/insque.3:99 build/C/man3/lsearch.3:80 build/C/man3/qsort.3:100
+#: build/C/man3/tsearch.3:190
#, no-wrap
msgid "CONFORMING TO"
msgstr "準拠"
#. type: Plain text
-#: build/C/man3/bsearch.3:66
+#: build/C/man3/bsearch.3:79
msgid "SVr4, 4.3BSD, POSIX.1-2001, C89, C99."
msgstr "SVr4, 4.3BSD, POSIX.1-2001, C89, C99."
#. type: SH
-#: build/C/man3/bsearch.3:66 build/C/man3/hsearch.3:273
-#: build/C/man3/insque.3:132 build/C/man3/qsort.3:114
-#: build/C/man3/tsearch.3:181
+#: build/C/man3/bsearch.3:79 build/C/man3/hsearch.3:293
+#: build/C/man3/insque.3:134 build/C/man3/qsort.3:116
+#: build/C/man3/tsearch.3:212
#, no-wrap
msgid "EXAMPLE"
msgstr "例"
#. type: Plain text
-#: build/C/man3/bsearch.3:71
+#: build/C/man3/bsearch.3:84
msgid ""
"The example below first sorts an array of structures using B<qsort>(3), then "
"retrieves desired elements using B<bsearch>()."
"素を B<bsearch>() を使って取得するものである。"
#. type: Plain text
-#: build/C/man3/bsearch.3:76 build/C/man3/qsort.3:125
+#: build/C/man3/bsearch.3:89 build/C/man3/qsort.3:127
#, no-wrap
msgid ""
"#include E<lt>stdio.hE<gt>\n"
"#include E<lt>string.hE<gt>\n"
#. type: Plain text
-#: build/C/man3/bsearch.3:85
+#: build/C/man3/bsearch.3:98
#, no-wrap
msgid ""
"struct mi {\n"
"};\n"
#. type: Plain text
-#: build/C/man3/bsearch.3:87
+#: build/C/man3/bsearch.3:100
#, no-wrap
msgid "#define nr_of_months (sizeof(months)/sizeof(months[0]))\n"
msgstr "#define nr_of_months (sizeof(months)/sizeof(months[0]))\n"
#. type: Plain text
-#: build/C/man3/bsearch.3:95
+#: build/C/man3/bsearch.3:108
#, no-wrap
msgid ""
"static int\n"
"}\n"
#. type: Plain text
-#: build/C/man3/bsearch.3:100
+#: build/C/man3/bsearch.3:113
#, no-wrap
msgid ""
"int\n"
" int i;\n"
#. type: Plain text
-#: build/C/man3/bsearch.3:114
+#: build/C/man3/bsearch.3:127
#, no-wrap
msgid ""
" qsort(months, nr_of_months, sizeof(struct mi), compmi);\n"
"}\n"
#. type: SH
-#: build/C/man3/bsearch.3:116 build/C/man3/hsearch.3:323
-#: build/C/man3/lsearch.3:71 build/C/man3/qsort.3:153
-#: build/C/man3/tsearch.3:258
+#: build/C/man3/bsearch.3:129 build/C/man3/hsearch.3:343
+#: build/C/man3/lsearch.3:85 build/C/man3/qsort.3:155
+#: build/C/man3/tsearch.3:289
#, no-wrap
msgid "SEE ALSO"
msgstr "関連項目"
#. type: Plain text
-#: build/C/man3/bsearch.3:121
+#: build/C/man3/bsearch.3:134
msgid "B<hsearch>(3), B<lsearch>(3), B<qsort>(3), B<tsearch>(3)"
msgstr "B<hsearch>(3), B<lsearch>(3), B<qsort>(3), B<tsearch>(3)"
#. type: SH
-#: build/C/man3/bsearch.3:121 build/C/man3/hsearch.3:328
-#: build/C/man3/insque.3:242 build/C/man3/lsearch.3:75
-#: build/C/man3/qsort.3:158 build/C/man3/tsearch.3:263
+#: build/C/man3/bsearch.3:134 build/C/man3/hsearch.3:348
+#: build/C/man3/insque.3:244 build/C/man3/lsearch.3:89
+#: build/C/man3/qsort.3:160 build/C/man3/tsearch.3:294
#, no-wrap
msgid "COLOPHON"
msgstr "この文書について"
#. type: Plain text
-#: build/C/man3/bsearch.3:128 build/C/man3/hsearch.3:335
-#: build/C/man3/insque.3:249 build/C/man3/lsearch.3:82
-#: build/C/man3/qsort.3:165 build/C/man3/tsearch.3:270
-#, fuzzy
-#| msgid ""
-#| "This page is part of release 3.37 of the Linux I<man-pages> project. A "
-#| "description of the project, and information about reporting bugs, can be "
-#| "found at http://www.kernel.org/doc/man-pages/."
+#: build/C/man3/bsearch.3:142 build/C/man3/hsearch.3:356
+#: build/C/man3/insque.3:252 build/C/man3/lsearch.3:97
+#: build/C/man3/qsort.3:168 build/C/man3/tsearch.3:302
msgid ""
-"This page is part of release 3.38 of the Linux I<man-pages> project. A "
-"description of the project, and information about reporting bugs, can be "
-"found at http://www.kernel.org/doc/man-pages/."
+"This page is part of release 3.78 of the Linux I<man-pages> 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<man-pages> プロジェクトのリリース 3.37 の一部であ"
-"る。\n"
-"プロジェクトの説明とバグ報告に関する情報は\n"
+"この man ページは Linux I<man-pages> プロジェクトのリリース 3.78 の一部\n"
+"である。プロジェクトの説明とバグ報告に関する情報は\n"
"http://www.kernel.org/doc/man-pages/ に書かれている。"
#. type: TH
#. type: TH
#: build/C/man3/hsearch.3:35
#, no-wrap
-msgid "2011-09-10"
-msgstr "2011-09-10"
+msgid "2014-01-05"
+msgstr "2014-01-05"
#. type: TH
-#: build/C/man3/hsearch.3:35 build/C/man3/lsearch.3:25
-#: build/C/man3/tsearch.3:24
+#: build/C/man3/hsearch.3:35 build/C/man3/lsearch.3:26
+#: build/C/man3/tsearch.3:25
#, no-wrap
msgid "GNU"
msgstr "GNU"
#. type: Plain text
#: build/C/man3/hsearch.3:42 build/C/man3/hsearch.3:52
-#: build/C/man3/insque.3:40 build/C/man3/lsearch.3:31
-#: build/C/man3/tsearch.3:30 build/C/man3/tsearch.3:47
+#: build/C/man3/insque.3:42 build/C/man3/lsearch.3:32
+#: build/C/man3/tsearch.3:31 build/C/man3/tsearch.3:48
#, no-wrap
msgid "B<#include E<lt>search.hE<gt>>\n"
msgstr "B<#include E<lt>search.hE<gt>>\n"
msgstr "B<void hdestroy(void);>\n"
#. type: Plain text
-#: build/C/man3/hsearch.3:50 build/C/man3/tsearch.3:45
+#: build/C/man3/hsearch.3:50 build/C/man3/tsearch.3:46
#, no-wrap
msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
msgstr "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */\n"
"only one hash table can be used at a time."
msgstr ""
"B<hcreate>(), B<hsearch>(), B<hdestroy>() の 3 つの関数を利用すると、キー "
-"(æ\96\87å\97å\88\97) ã\81¨å¯¾å¿\9cã\81\99ã\82\8bã\83\87ã\83¼ã\82¿ã\81\8bã\82\89æ§\8bæ\88\90ã\81\95ã\82\8cã\82\8b ã\82¨ã\83³ã\83\88ã\83ªã\82\92æ ¼ç´\8dã\81§ã\81\8dã\82\8bã\83\8fã\83\83ã\82·ã\83¥æ¤\9cç´¢ã\83\86ã\83¼"
-"ã\83\96ã\83«ã\82\92ä½\9cæ\88\90ã\80\81管ç\90\86ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\82\92使ã\81£ã\81¦ã\80\81ä¸\80度ã\81«ä½¿ç\94¨ã\81§ã\81\8dã\82\8bã\81®ã\81¯"
-"一つのハッシュテーブルだけである。"
+"(æ\96\87å\97å\88\97) ã\81¨å¯¾å¿\9cã\81\99ã\82\8bã\83\87ã\83¼ã\82¿ã\81\8bã\82\89æ§\8bæ\88\90ã\81\95ã\82\8cã\82\8b ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92æ ¼ç´\8dã\81§ã\81\8dã\82\8bã\83\8fã\83\83ã\82·ã\83¥æ¤\9cç´¢"
+"ã\83\86ã\83¼ã\83\96ã\83«ã\82\92ä½\9cæ\88\90ã\80\81管ç\90\86ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\81\93ã\82\8cã\82\89ã\81®é\96¢æ\95°ã\82\92使ã\81£ã\81¦ã\80\81ä¸\80度ã\81«ä½¿ç\94¨ã\81§ã\81\8dã\82\8b"
+"のは一つのハッシュテーブルだけである。"
#. type: Plain text
#: build/C/man3/hsearch.3:83
"B<hcreate_r>(), B<hsearch_r>(), B<hdestroy_r>() の 3 つの関数はリエントラン"
"ト版で、これらを利用すると、 一つのプログラムで同時に複数のハッシュテーブルを"
"使うことができる。 最後の引き数 I<htab> は関数の操作対象となるテーブルを示す"
-"æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81§ã\81\82ã\82\8bã\80\82 ã\83\97ã\83ã\82°ã\83©ã\83\9eã\81¯ã\81\93ã\81®æ§\8bé\80 ä½\93ã\82\92ã\83\96ã\83©ã\83\83ã\82¯ã\83\9cã\83\83ã\82¯ã\82¹ã\81¨ã\81\97ã\81¦æ\89±ã\81\86"
-"ã\81¹ã\81\8dã\81§ã\81\82ã\82\8b (ã\81¤ã\81¾ã\82\8aã\80\81ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«ç\9b´æ\8e¥ã\82¢ã\82¯ã\82»ã\82¹ã\81\97ã\81\9fã\82\8aå¤\89æ\9b´ã\81\97ã\81\9fã\82\8a ã\81\97ã\81ª"
-"いこと)。"
+"æ§\8bé\80 ä½\93ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\83\97ã\83ã\82°ã\83©ã\83\9eã\81¯ã\81\93ã\81®æ§\8bé\80 ä½\93ã\82\92ã\83\96ã\83©ã\83\83ã\82¯ã\83\9cã\83\83ã\82¯ã\82¹ã\81¨ã\81\97ã\81¦æ\89±"
+"ã\81\86ã\81¹ã\81\8dã\81§ã\81\82ã\82\8b (ã\81¤ã\81¾ã\82\8aã\80\81ã\81\93ã\81®æ§\8bé\80 ä½\93ã\81®ã\83\95ã\82£ã\83¼ã\83«ã\83\89ã\81«ç\9b´æ\8e¥ã\82¢ã\82¯ã\82»ã\82¹ã\81\97ã\81\9fã\82\8aå¤\89æ\9b´ã\81\97ã\81\9fã\82\8a ã\81\97"
+"ã\81ªã\81\84ã\81\93ã\81¨)ã\80\82"
#. e.g., in glibc it is raised to the next higher prime number
#. type: Plain text
"value upward to improve the performance of the resulting hash table."
msgstr ""
"最初に、 B<hcreate>() 関数によってハッシュテーブルを作成しなければならな"
-"い。 引き数 I<nel> でテーブルの最大エントリ数を指定する (この最大値は後で変更"
-"することはできないので、よく考えて選択すること)。 作成されるハッシュテーブル"
-"の性能を向上させるために、 関数内部の実装によりこの値は増やされる場合もある。"
+"い。 引き数 I<nel> でテーブルの最大エントリー数を指定する (この最大値は後で変"
+"更することはできないので、よく考えて選択すること)。 作成されるハッシュテーブ"
+"ルの性能を向上させるために、 関数内部の実装によりこの値は増やされる場合もあ"
+"る。"
#. type: Plain text
#: build/C/man3/hsearch.3:103
"previously created using B<hcreate_r>()."
msgstr ""
"B<hdestroy>() 関数は、 B<hcreate>() で作成されたハッシュテーブルが占有して"
-"ã\81\84ã\81\9fã\83¡ã\83¢ã\83ªã\82\92解æ\94¾ã\81\99ã\82\8bã\80\82 ã\83\8fã\83\83ã\82·ã\83¥ã\83\86ã\83¼ã\83\96ã\83«ã\81«ã\82\88ã\81£ã\81¦å\8d æ\9c\89ã\81\95ã\82\8cã\81¦ã\81\84ã\81\9fã\83¡ã\83¢ã\83ªを解放"
+"ã\81\84ã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82\92解æ\94¾ã\81\99ã\82\8bã\80\82 ã\83\8fã\83\83ã\82·ã\83¥ã\83\86ã\83¼ã\83\96ã\83«ã\81«ã\82\88ã\81£ã\81¦å\8d æ\9c\89ã\81\95ã\82\8cã\81¦ã\81\84ã\81\9fã\83¡ã\83¢ã\83ªã\83¼を解放"
"し、 新しいテーブルを作成できるようにする。 B<hdestroy>() を呼び出すと、その"
"後は B<hcreate>() を使って新しいハッシュテーブルを作成することができる。 "
"B<hdestroy_r>() 関数は、同様の処理を、それ以前に B<hcreate_r>() を使って作"
"successful returns a pointer to it."
msgstr ""
"B<hsearch>() 関数は、I<item> と同じキーを持つ項目をハッシュテーブルから 検索"
-"し、項目が見つかった場合にはその項目へのポインタを返す (「同じ」かどうかは "
+"ã\81\97ã\80\81é \85ç\9b®ã\81\8cè¦\8bã\81¤ã\81\8bã\81£ã\81\9få ´å\90\88ã\81«ã\81¯ã\81\9dã\81®é \85ç\9b®ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99 (ã\80\8cå\90\8cã\81\98ã\80\8dã\81\8bã\81©ã\81\86ã\81\8bã\81¯ "
"B<strcmp>(3) を使って判定する)。"
#. type: Plain text
"The field I<key> points to a null-terminated string which is the search "
"key. The field I<data> points to data that is associated with that key."
msgstr ""
-"フィールド I<key> は検索キーとなる NULL 終端された文字列を指す。 フィールド "
+"フィールド I<key> は検索キーとなるヌル終端された文字列を指す。 フィールド "
"I<data> は、このキーに対応するデータを指す。"
#. type: Plain text
"検索が失敗した後の動作は、引き数 I<action> により決まる。 この引き数には "
"B<ENTER> か B<FIND> のいずれかの値を指定しなければならない。 B<ENTER> は "
"I<item> のコピーを挿入することを (関数の結果として新しいハッシュテーブルエン"
-"ã\83\88ã\83ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99)ã\80\81 B<FIND> ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\81\93ã\81¨ã\82\92æ\84\8få\91³ã\81\99ã\82\8b (I<action> ã\81\8c "
-"B<FIND> の場合、 I<data> は無視される)。"
+"ã\83\88ã\83ªã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99)ã\80\81 B<FIND> ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\81\93ã\81¨ã\82\92æ\84\8få\91³ã\81\99ã\82\8b "
+"(I<action> が B<FIND> の場合、 I<data> は無視される)。"
#. type: Plain text
#: build/C/man3/hsearch.3:174
msgstr ""
"B<hsearch_r>() 関数は B<hsearch>() と同様だが、 I<*htab> で示されるハッシュ"
"テーブルに対して処理を行う。 B<hsearch_r>() 関数が B<hsearch>() と異なるの"
-"ã\81¯ã\80\81è¦\8bã\81¤ã\81\8bã\81£ã\81\9fé \85ç\9b®ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92ã\80\81 é\96¢æ\95°ã\81®çµ\90æ\9e\9cã\81¨ã\81\97ã\81¦ã\81§ã\81¯ã\81ªã\81\8fã\80\81 I<*retval> ã\81«æ ¼"
-"納して返す点である。"
+"ã\81¯ã\80\81è¦\8bã\81¤ã\81\8bã\81£ã\81\9fé \85ç\9b®ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92ã\80\81 é\96¢æ\95°ã\81®çµ\90æ\9e\9cã\81¨ã\81\97ã\81¦ã\81§ã\81¯ã\81ªã\81\8fã\80\81 I<*retval> ã\81«"
+"格納して返す点である。"
#. type: Plain text
-#: build/C/man3/hsearch.3:180
+#: build/C/man3/hsearch.3:182
msgid ""
"B<hcreate>() and B<hcreate_r>() return nonzero on success. They return 0 "
-"on error."
+"on error, with I<errno> set to indicate the cause of the error."
msgstr ""
-"B<hcreate>() ã\81¨ B<hcreate_r>() ã\81¯ã\80\81æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88 0 以å¤\96ã\81®å\80¤ã\82\92è¿\94ã\81\97ã\80\81 エラーの"
-"å ´å\90\88 0 ã\82\92è¿\94ã\81\99。"
+"B<hcreate>() ã\81¨ B<hcreate_r>() ã\81¯ã\80\81æ\88\90å\8a\9fã\81\97ã\81\9få ´å\90\88 0 以å¤\96ã\81®å\80¤ã\82\92è¿\94ã\81\99ã\80\82 エラーの"
+"å ´å\90\88 0 ã\82\92è¿\94ã\81\97ã\80\81 I<errno> ã\81«ã\82¨ã\83©ã\83¼ã\81®å\8e\9få\9b ã\82\92示ã\81\99å\80¤ã\82\92è¨å®\9aã\81\99ã\82\8b。"
#. type: Plain text
-#: build/C/man3/hsearch.3:191
+#: build/C/man3/hsearch.3:196
msgid ""
"On success, B<hsearch>() returns a pointer to an entry in the hash table. "
"B<hsearch>() returns NULL on error, that is, if I<action> is B<ENTER> and "
"the hash table is full, or I<action> is B<FIND> and I<item> cannot be found "
"in the hash table. B<hsearch_r>() returns nonzero on success, and 0 on "
-"error."
+"error. In the event of an error, these two functions set I<errno> to "
+"indicate the cause of the error."
msgstr ""
-"æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81 B<hsearch>() ã\81¯ã\80\81ã\83\8fã\83\83ã\82·ã\83¥ã\83\86ã\83¼ã\83\96ã\83«å\86\85ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94"
-"す。 エラーの場合、 B<hsearch>() は NULL を返す。 エラーとなるのは、 "
+"æ\88\90å\8a\9fã\81\99ã\82\8bã\81¨ã\80\81 B<hsearch>() ã\81¯ã\80\81ã\83\8fã\83\83ã\82·ã\83¥ã\83\86ã\83¼ã\83\96ã\83«å\86\85ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92"
+"返す。 エラーの場合、 B<hsearch>() は NULL を返す。 エラーとなるのは、 "
"I<action> が B<ENTER> でハッシュテーブルがいっぱいの場合か、 I<action> が "
"B<FIND> で I<item> がハッシュテーブル内に 見つからない場合である。 "
-"B<hsearch_r>() は、成功すると 0 以外を返し、エラーの場合 0 を返す。"
+"B<hsearch_r>() は、成功すると 0 以外を返し、エラーの場合 0 を返す。 エラーの"
+"場合、 これら二つの関数は I<errno> にエラーの原因を示す値を設定する。"
#. type: SH
-#: build/C/man3/hsearch.3:191
+#: build/C/man3/hsearch.3:196
#, no-wrap
msgid "ERRORS"
msgstr "エラー"
#. type: Plain text
-#: build/C/man3/hsearch.3:197
+#: build/C/man3/hsearch.3:202
msgid ""
"B<hcreate_r>() and B<hdestroy_r>() can fail for the following reasons:"
msgstr ""
"B<hcreate_r>() と B<hdestroy_r>() は以下の理由で失敗する可能性がある。"
#. type: TP
-#: build/C/man3/hsearch.3:197
+#: build/C/man3/hsearch.3:202
#, no-wrap
msgid "B<EINVAL>"
msgstr "B<EINVAL>"
#. type: Plain text
-#: build/C/man3/hsearch.3:201
+#: build/C/man3/hsearch.3:206
msgid "I<htab> is NULL."
msgstr "I<htab> が NULL である。"
#. type: Plain text
-#: build/C/man3/hsearch.3:206
+#: build/C/man3/hsearch.3:211
msgid "B<hsearch>() and B<hsearch_r>() can fail for the following reasons:"
msgstr "B<hsearch>() と B<hsearch_r>() は以下の理由で失敗する可能性がある。"
#. type: TP
-#: build/C/man3/hsearch.3:206
+#: build/C/man3/hsearch.3:211
#, no-wrap
msgid "B<ENOMEM>"
msgstr "B<ENOMEM>"
#. type: Plain text
-#: build/C/man3/hsearch.3:214
+#: build/C/man3/hsearch.3:219
msgid ""
"I<action> was B<ENTER>, I<key> was not found in the table, and there was no "
"room in the table to add a new entry."
msgstr ""
"I<action> が B<ENTER> で、 I<key> がテーブル内に見つからず、 テーブルに新しい"
-"エントリを追加する余地がなかった。"
+"ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92追å\8a ã\81\99ã\82\8bä½\99å\9c°ã\81\8cã\81ªã\81\8bã\81£ã\81\9fã\80\82"
#. type: TP
-#: build/C/man3/hsearch.3:214
+#: build/C/man3/hsearch.3:219
#, no-wrap
msgid "B<ESRCH>"
msgstr "B<ESRCH>"
#. type: Plain text
-#: build/C/man3/hsearch.3:222
+#: build/C/man3/hsearch.3:227
msgid "I<action> was B<FIND>, and I<key> was not found in the table."
msgstr "I<action> が B<FIND> で、 I<key> がテーブル内に見つからなかった。"
#. type: Plain text
-#: build/C/man3/hsearch.3:226
-msgid "POSIX.1-2001 only specifies the B<ENOMEM> error."
+#: build/C/man3/hsearch.3:231
+msgid "POSIX.1-2001 specifies only the B<ENOMEM> error."
msgstr "POSIX.1-2001 が規定しているのは、エラー B<ENOMEM> だけである。"
+#. type: SH
+#: build/C/man3/hsearch.3:231
+#, no-wrap
+msgid "ATTRIBUTES"
+msgstr "属性"
+
+#. type: SS
+#: build/C/man3/hsearch.3:232
+#, no-wrap
+msgid "Multithreading (see pthreads(7))"
+msgstr "マルチスレッディング (pthreads(7) 参照)"
+
#. type: Plain text
#: build/C/man3/hsearch.3:239
msgid ""
+"The B<hcreate>(), B<hsearch>(), and B<hdestroy>() functions use a global "
+"space for storing the table, so they are not thread-safe."
+msgstr ""
+"関数 B<hcreate>(), B<hsearch>(), B<hdestroy>() はテーブルを格納するのにグロー"
+"バル空間を使用する。そのため、これらの関数はスレッドセーフではない。"
+
+#. type: Plain text
+#: build/C/man3/hsearch.3:246
+msgid ""
+"The B<hcreate_r>(), B<hsearch_r>(), and B<hdestroy_r>() functions are "
+"thread-safe."
+msgstr ""
+"関数 B<hcreate_r>(), B<hsearch_r>(), B<hdestroy_r>() はスレッドセーフである。"
+
+#. type: Plain text
+#: build/C/man3/hsearch.3:259
+msgid ""
"The functions B<hcreate>(), B<hsearch>(), and B<hdestroy>() are from SVr4, "
"and are described in POSIX.1-2001. The functions B<hcreate_r>(), "
"B<hsearch_r>(), and B<hdestroy_r>() are GNU extensions."
"B<hdestroy_r> は GNU の拡張である。"
#. type: SH
-#: build/C/man3/hsearch.3:239 build/C/man3/insque.3:99
-#: build/C/man3/qsort.3:102 build/C/man3/tsearch.3:158
+#: build/C/man3/hsearch.3:259 build/C/man3/insque.3:101
+#: build/C/man3/qsort.3:104 build/C/man3/tsearch.3:195
#, no-wrap
msgid "NOTES"
msgstr "注意"
#. type: Plain text
-#: build/C/man3/hsearch.3:246
+#: build/C/man3/hsearch.3:266
msgid ""
"Hash table implementations are usually more efficient when the table "
"contains enough free space to minimize collisions. Typically, this means "
msgstr ""
"通常、ハッシュテーブルの実装は、衝突を最小限にするために テーブルに十分な空き"
"領域がある場合に効率がよくなる。 このため、普通は、 I<nel> を、呼び出し側が"
-"ã\83\86ã\83¼ã\83\96ã\83«ã\81«æ ¼ç´\8dã\81\97ã\82\88ã\81\86ã\81¨æ\80\9dã\81£ã\81¦ã\81\84ã\82\8b ã\82¨ã\83³ã\83\88ã\83ªã\81®æ\9c\80大æ\95°ã\82\88ã\82\8aå°\91ã\81ªã\81\8fã\81¨ã\82\82 25% ã\81¯å¤§ã\81\8dã\81ª"
-"値にすべきである。"
+"ã\83\86ã\83¼ã\83\96ã\83«ã\81«æ ¼ç´\8dã\81\97ã\82\88ã\81\86ã\81¨æ\80\9dã\81£ã\81¦ã\81\84ã\82\8b ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®æ\9c\80大æ\95°ã\82\88ã\82\8aå°\91ã\81ªã\81\8fã\81¨ã\82\82 25% ã\81¯å¤§ã\81\8d"
+"な値にすべきである。"
#. type: Plain text
-#: build/C/man3/hsearch.3:264
+#: build/C/man3/hsearch.3:284
msgid ""
"The B<hdestroy>() and B<hdestroy_r>() functions do not free the buffers "
"pointed to by the I<key> and I<data> elements of the hash table entries. "
"the program must maintain bookkeeping data structures that allow it to free "
"them."
msgstr ""
-"B<hdestroy>() と B<hdestroy_r>() は、ハッシュテーブルのエントリの要素であ"
-"ã\82\8b I<key> ã\81¨ I<data> ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\82\92解æ\94¾ã\81\97ã\81ªã\81\84 (ã\81\93ã\82\8cã\81\8cã\81§ã\81\8dã\81ªã\81\84ã\81®ã\81¯ã\80\81ã\81\93ã\82\8cã\82\89ã\81®"
-"ã\83\90ã\83\83ã\83\95ã\82¡ã\81\8cå\8b\95ç\9a\84ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\81®ã\81\8bã\82\92 ç\9f¥ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\84ã\81\8bã\82\89ã\81§ã\81\82ã\82\8b)ã\80\82 ã\81\93ã\82\8cã\82\89ã\81®"
-"ã\83\90ã\83\83ã\83\95ã\82¡ã\82\92解æ\94¾ã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bå ´å\90\88ã\80\81 ã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ã\81¯ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\82\92解æ\94¾ã\81§ã\81\8d"
-"るように管理用のデータ構造を 設けて、これを管理しなければならない (解放が必要"
-"となる理由は、たいていは、プログラム自身と生存期間が同じ ハッシュテーブルを一"
-"ã\81¤ã\81 ã\81\91ä½\9cæ\88\90ã\81\99ã\82\8bã\81®ã\81§ã\81¯ã\81ªã\81\8fã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ã\81¯è¤\87æ\95°ã\81® ã\83\8fã\83\83ã\82·ã\83¥ã\83\86ã\83¼ã\83\96ã\83«ã\82\92ç¹°ã\82\8aè¿\94ã\81\97"
-"て作成したり破棄したりするからであろう)。"
+"B<hdestroy>() ã\81¨ B<hdestroy_r>() ã\81¯ã\80\81ã\83\8fã\83\83ã\82·ã\83¥ã\83\86ã\83¼ã\83\96ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®è¦\81ç´ ã\81§ã\81\82"
+"ã\82\8b I<key> ã\81¨ I<data> ã\81\8cæ\8c\87ã\81\99ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92解æ\94¾ã\81\97ã\81ªã\81\84 (ã\81\93ã\82\8cã\81\8cã\81§ã\81\8dã\81ªã\81\84ã\81®ã\81¯ã\80\81ã\81\93ã\82\8cã\82\89"
+"ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\81\8cå\8b\95ç\9a\84ã\81«å\89²ã\82\8aå½\93ã\81¦ã\82\89ã\82\8cã\81\9fã\81®ã\81\8bã\82\92 ç\9f¥ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\81ªã\81\84ã\81\8bã\82\89ã\81§ã\81\82ã\82\8b)ã\80\82 ã\81\93ã\82\8c"
+"ã\82\89ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92解æ\94¾ã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bå ´å\90\88ã\80\81 ã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ã\81¯ã\80\81ã\81\93ã\82\8cã\82\89ã\81®ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92"
+"解放できるように管理用のデータ構造を 設けて、これを管理しなければならない (解"
+"放が必要となる理由は、たいていは、プログラム自身と生存期間が同じ ハッシュテー"
+"ã\83\96ã\83«ã\82\92ä¸\80ã\81¤ã\81 ã\81\91ä½\9cæ\88\90ã\81\99ã\82\8bã\81®ã\81§ã\81¯ã\81ªã\81\8fã\80\81ã\81\9dã\81®ã\83\97ã\83ã\82°ã\83©ã\83 ã\81§ã\81¯è¤\87æ\95°ã\81® ã\83\8fã\83\83ã\82·ã\83¥ã\83\86ã\83¼ã\83\96ã\83«ã\82\92"
+"繰り返して作成したり破棄したりするからであろう)。"
#. type: SH
-#: build/C/man3/hsearch.3:264 build/C/man3/insque.3:125
-#: build/C/man3/lsearch.3:69
+#: build/C/man3/hsearch.3:284 build/C/man3/insque.3:127
+#: build/C/man3/lsearch.3:83
#, no-wrap
msgid "BUGS"
msgstr "バグ"
#. type: Plain text
-#: build/C/man3/hsearch.3:271
+#: build/C/man3/hsearch.3:291
msgid ""
"SVr4 and POSIX.1-2001 specify that I<action> is significant only for "
"unsuccessful searches, so that an B<ENTER> should not do anything for a "
"される。"
#. type: Plain text
-#: build/C/man3/hsearch.3:273
+#: build/C/man3/hsearch.3:293
msgid "Individual hash table entries can be added, but not deleted."
msgstr "ハッシュテーブルエントリーの追加はできるが、削除ができない。"
#. type: Plain text
-#: build/C/man3/hsearch.3:277
+#: build/C/man3/hsearch.3:297
msgid ""
"The following program inserts 24 items into a hash table, then prints some "
"of them."
"いくつかを表示する。"
#. type: Plain text
-#: build/C/man3/hsearch.3:282
+#: build/C/man3/hsearch.3:302
#, no-wrap
msgid ""
"#include E<lt>stdio.hE<gt>\n"
"#include E<lt>search.hE<gt>\n"
#. type: Plain text
-#: build/C/man3/hsearch.3:289
+#: build/C/man3/hsearch.3:309
#, no-wrap
msgid ""
-"char *data[] = { \"alpha\", \"bravo\", \"charlie\", \"delta\",\n"
+"static char *data[] = { \"alpha\", \"bravo\", \"charlie\", \"delta\",\n"
" \"echo\", \"foxtrot\", \"golf\", \"hotel\", \"india\", \"juliet\",\n"
" \"kilo\", \"lima\", \"mike\", \"november\", \"oscar\", \"papa\",\n"
" \"quebec\", \"romeo\", \"sierra\", \"tango\", \"uniform\",\n"
" \"victor\", \"whisky\", \"x-ray\", \"yankee\", \"zulu\"\n"
"};\n"
msgstr ""
-"char *data[] = { \"alpha\", \"bravo\", \"charlie\", \"delta\",\n"
+"static char *data[] = { \"alpha\", \"bravo\", \"charlie\", \"delta\",\n"
" \"echo\", \"foxtrot\", \"golf\", \"hotel\", \"india\", \"juliet\",\n"
" \"kilo\", \"lima\", \"mike\", \"november\", \"oscar\", \"papa\",\n"
" \"quebec\", \"romeo\", \"sierra\", \"tango\", \"uniform\",\n"
"};\n"
#. type: Plain text
-#: build/C/man3/hsearch.3:295
+#: build/C/man3/hsearch.3:315
#, no-wrap
msgid ""
"int\n"
" int i;\n"
#. type: Plain text
-#: build/C/man3/hsearch.3:297
+#: build/C/man3/hsearch.3:317
#, no-wrap
msgid " hcreate(30);\n"
msgstr " hcreate(30);\n"
#. type: Plain text
-#: build/C/man3/hsearch.3:310
+#: build/C/man3/hsearch.3:330
#, no-wrap
msgid ""
" for (i = 0; i E<lt> 24; i++) {\n"
msgstr ""
" for (i = 0; i E<lt> 24; i++) {\n"
" e.key = data[i];\n"
-" /* データは、ポインタではなく、単なる整数値である。 */\n"
+" /* ã\83\87ã\83¼ã\82¿ã\81¯ã\80\81ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81¯ã\81ªã\81\8fã\80\81å\8d\98ã\81ªã\82\8bæ\95´æ\95°å\80¤ã\81§ã\81\82ã\82\8bã\80\82 */\n"
" e.data = (void *) i;\n"
" ep = hsearch(e, ENTER);\n"
" /* エラーは起こらないはずである。 */\n"
" }\n"
#. type: Plain text
-#: build/C/man3/hsearch.3:322
+#: build/C/man3/hsearch.3:342
#, no-wrap
msgid ""
" for (i = 22; i E<lt> 26; i++) {\n"
"}\n"
msgstr ""
" for (i = 22; i E<lt> 26; i++) {\n"
-" /* テーブルにある 2 つのエントリを表示し、\n"
+" /* ã\83\86ã\83¼ã\83\96ã\83«ã\81«ã\81\82ã\82\8b 2 ã\81¤ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\82\92表示ã\81\97ã\80\81\n"
" あとの 2 つがテーブルにないことを示す。 */\n"
" e.key = data[i];\n"
" ep = hsearch(e, FIND);\n"
"}\n"
#. type: Plain text
-#: build/C/man3/hsearch.3:328
+#: build/C/man3/hsearch.3:348
msgid "B<bsearch>(3), B<lsearch>(3), B<malloc>(3), B<tsearch>(3)"
msgstr "B<bsearch>(3), B<lsearch>(3), B<malloc>(3), B<tsearch>(3)"
#. type: TH
-#: build/C/man3/insque.3:34
+#: build/C/man3/insque.3:36
#, no-wrap
msgid "INSQUE"
msgstr "INSQUE"
#. type: TH
-#: build/C/man3/insque.3:34
-#, fuzzy, no-wrap
-#| msgid "2011-09-10"
-msgid "2010-09-09"
-msgstr "2011-09-10"
+#: build/C/man3/insque.3:36
+#, no-wrap
+msgid "2014-08-19"
+msgstr "2014-08-19"
#. type: Plain text
-#: build/C/man3/insque.3:37
+#: build/C/man3/insque.3:39
msgid "insque, remque - insert/remove an item from a queue"
msgstr "insque, remque - キューにアイテムを挿入/削除する"
#. type: Plain text
-#: build/C/man3/insque.3:42
+#: build/C/man3/insque.3:44
#, no-wrap
msgid "B<void insque(void *>I<elem>B<, void *>I<prev>B<);>\n"
msgstr "B<void insque(void *>I<elem>B<, void *>I<prev>B<);>\n"
#. type: Plain text
-#: build/C/man3/insque.3:44
+#: build/C/man3/insque.3:46
#, no-wrap
msgid "B<void remque(void *>I<elem>B<);>\n"
msgstr "B<void remque(void *>I<elem>B<);>\n"
#. type: Plain text
-#: build/C/man3/insque.3:49 build/C/man3/qsort.3:53
+#: build/C/man3/insque.3:51 build/C/man3/qsort.3:55
msgid ""
"Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7) 参照):"
#. type: Plain text
-#: build/C/man3/insque.3:54
+#: build/C/man3/insque.3:56
msgid "B<insque>(), B<remque>():"
-msgstr ""
+msgstr "B<insque>(), B<remque>():"
#. type: Plain text
-#: build/C/man3/insque.3:57
+#: build/C/man3/insque.3:59
msgid ""
"_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
"_XOPEN_SOURCE_EXTENDED"
msgstr ""
+"_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
+"_XOPEN_SOURCE_EXTENDED"
#. type: Plain text
-#: build/C/man3/insque.3:71
-#, fuzzy
-#| msgid ""
-#| "B<insque>() and B<remque>() are functions for manipulating doubly-"
-#| "linked lists. Each element in the list is a structure of which the first "
-#| "two structure elements are a forward and a backward pointer."
+#: build/C/man3/insque.3:73
msgid ""
"The B<insque>() and B<remque>() functions manipulate doubly-linked lists. "
"Each element in the list is a structure of which the first two elements are "
"forward pointer at the end of the list and NULL backward pointer at the "
"start of the list) or circular."
msgstr ""
-"B<insque>() と B<remque>() は双方向連結リスト (doubly-linked list) を操作す"
-"る関数である。 リスト中のそれぞれの要素は、最初の二つの構造体要素が 次と前へ"
-"のポインタであるような構造体である。"
+"関数 B<insque>() と B<remque>() は双方向連結リスト (doubly-linked list) を\n"
+"操作する。リスト中のそれぞれの要素は、最初の二つの要素がそれぞれ次と前への\n"
+"ポインターであるような構造体である。\n"
+"リンクリストは、線形 (linear) か環状 (circular) のどちらかになる\n"
+"(線形の場合には、リストの末尾では次へのポインターが NULL になり、\n"
+"リストの先頭では前へのポインターが NULL になる)。"
#. type: Plain text
-#: build/C/man3/insque.3:76
-#, fuzzy
-#| msgid ""
-#| "B<insque>() inserts the element pointed to by I<elem> immediately after "
-#| "the element pointed to by I<prev>, which must not be NULL."
+#: build/C/man3/insque.3:78
msgid ""
"The B<insque>() function inserts the element pointed to by I<elem> "
"immediately after the element pointed to by I<prev>."
msgstr ""
-"B<insque>() は I<elem> で示される要素を I<prev> で示される 要素の直後に挿入"
-"する。 I<prev> は NULL であってはならない。"
+"B<insque>() 関数は I<elem> で示される要素を I<prev> で示される\n"
+"要素の直後に挿入する。"
#. type: Plain text
-#: build/C/man3/insque.3:83
+#: build/C/man3/insque.3:85
msgid ""
"If the list is linear, then the call I<insque(elem, NULL)> can be used to "
"insert the initial list element, and the call sets the forward and backward "
"pointers of I<elem> to NULL."
msgstr ""
+"リストが線形の場合、I<insque(elem, NULL)> を呼び出すと、\n"
+"リストの最初の要素を挿入することができる。\n"
+"この呼び出しを行うと I<elem> の次へのポインターと前へのポインターに\n"
+"共に NULL が設定される。"
#. type: Plain text
-#: build/C/man3/insque.3:92
+#: build/C/man3/insque.3:94
msgid ""
"If the list is circular, the caller should ensure that the forward and "
"backward pointers of the first element are initialized to point to that "
"element, and the I<prev> argument of the B<insque>() call should also point "
"to the element."
msgstr ""
+"リストが環状の場合、呼び出す側が、最初の要素の次へのポインターと前へのポイン"
+"ター\n"
+"が自分自身を指し、また B<insque>() の呼び出しで I<prev> 引き数が最初の要素\n"
+"を指すように保証しなければならない。"
#. type: Plain text
-#: build/C/man3/insque.3:97
-#, fuzzy
-#| msgid ""
-#| "B<remque>() removes the element pointed to by I<elem> from the doubly-"
-#| "linked list."
+#: build/C/man3/insque.3:99
msgid ""
"The B<remque>() function removes the element pointed to by I<elem> from the "
"doubly-linked list."
-msgstr "B<remque>() は I<elem> で示される要素を双方向連結リストから取り除く。"
+msgstr ""
+"B<remque>() 関数は I<elem> で示される要素を双方向連結リストから取り除く。"
#. type: Plain text
-#: build/C/man3/insque.3:99
+#: build/C/man3/insque.3:101
msgid "POSIX.1-2001."
msgstr "POSIX.1-2001."
#. type: Plain text
-#: build/C/man3/insque.3:103
+#: build/C/man3/insque.3:105
msgid ""
-"Traditionally (e.g., SunOS, Linux libc 4 and libc 5), the arguments of these "
+"Traditionally (e.g., SunOS, Linux libc4 and libc5), the arguments of these "
"functions were of type I<struct qelem *>, defined as:"
msgstr ""
-"伝統的に (SunOS, Linux libc 4,5 では) これらの関数の引数は I<struct qelem *>"
-"型であり、これは以下のように定義されている。"
+"伝統的に (SunOS, Linux libc 4,5 では) これらの関数の引き数は I<struct qelem "
+"*>型であり、これは以下のように定義されている。"
#. type: Plain text
-#: build/C/man3/insque.3:111
+#: build/C/man3/insque.3:113
#, no-wrap
msgid ""
"struct qelem {\n"
"};\n"
#. type: Plain text
-#: build/C/man3/insque.3:118
+#: build/C/man3/insque.3:120
msgid ""
"This is still what you will get if B<_GNU_SOURCE> is defined before "
"including I<E<lt>search.hE<gt>>."
"この定義は I<E<lt>search.hE<gt>> をインクルードする前に B<_GNU_SOURCE> を定義"
"することで得られる。"
+#. Linux libc4 and libc 5 placed them
+#. in \fI<stdlib.h>\fP.
#. type: Plain text
-#: build/C/man3/insque.3:125
-#, fuzzy
-#| msgid ""
-#| "The location of the prototypes for these functions differs among several "
-#| "versions of Unix. The above is the POSIX version. Some systems place "
-#| "them in I<E<lt>string.hE<gt>>. Linux libc4 and libc 5 placed them in "
-#| "I<E<lt>stdlib.hE<gt>>."
+#: build/C/man3/insque.3:127
msgid ""
"The location of the prototypes for these functions differs among several "
"versions of UNIX. The above is the POSIX version. Some systems place them "
-"in I<E<lt>string.hE<gt>>. Linux libc4 and libc 5 placed them in "
-"I<E<lt>stdlib.hE<gt>>."
+"in I<E<lt>string.hE<gt>>."
msgstr ""
-"これらの関数のプロトタイプの置かれる場所は、Unix の種類により異なる。 上記は "
-"POSIX 版である。 I<E<lt>string.hE<gt>> にあるシステムもある。 Linux libc4 と "
-"libc5 は I<E<lt>stdlib.hE<gt>> にプロトタイプを置いている。"
+"これらの関数のプロトタイプの置かれる場所は、UNIX の種類により異なる。\n"
+"上記は POSIX 版である。 I<E<lt>string.hE<gt>> にあるシステムもある。"
#. type: Plain text
-#: build/C/man3/insque.3:132
+#: build/C/man3/insque.3:134
msgid ""
"In glibc 2.4 and earlier, it was not possible to specify I<prev> as NULL. "
"Consequently, to build a linear list, the caller had to build a list using "
"an initial call that contained the first two elements of the list, with the "
"forward and backward pointers in each element suitably initialized."
msgstr ""
+"glibc 2.4 以前では I<prev> に NULL を指定することができなかった。\n"
+"その結果、線形のリストを作成するためには、\n"
+"呼び出し側は、最初の呼び出しで、リストの最初の 2 つの要素を持ち、\n"
+"各要素の次へのポインターと前へのポインターを適切に初期化したリストを\n"
+"作成しなければならなかった。"
#. type: Plain text
-#: build/C/man3/insque.3:136
+#: build/C/man3/insque.3:138
msgid ""
"The program below demonstrates the use of B<insque>(). Here is an example "
"run of the program:"
msgstr ""
+"次のプログラムは B<insque>() の使用法を示したものである。\n"
+"下記はプログラムの実行例である。"
#. type: Plain text
-#: build/C/man3/insque.3:145
+#: build/C/man3/insque.3:147
#, no-wrap
msgid ""
"$ B<./a.out -c a b c>\n"
" c\n"
"That was a circular list\n"
msgstr ""
+"$ B<./a.out -c a b c>\n"
+"Traversing completed list:\n"
+" a\n"
+" b\n"
+" c\n"
+"That was a circular list\n"
#. type: SS
-#: build/C/man3/insque.3:147
+#: build/C/man3/insque.3:149
#, no-wrap
msgid "Program source"
-msgstr ""
+msgstr "プログラムのソース"
#. type: Plain text
-#: build/C/man3/insque.3:154
-#, fuzzy, no-wrap
-#| msgid ""
-#| "#include E<lt>stdio.hE<gt>\n"
-#| "#include E<lt>stdlib.hE<gt>\n"
-#| "#include E<lt>search.hE<gt>\n"
+#: build/C/man3/insque.3:156
+#, no-wrap
msgid ""
"#include E<lt>stdio.hE<gt>\n"
"#include E<lt>stdlib.hE<gt>\n"
msgstr ""
"#include E<lt>stdio.hE<gt>\n"
"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
"#include E<lt>search.hE<gt>\n"
#. type: Plain text
-#: build/C/man3/insque.3:160
-#, fuzzy, no-wrap
-#| msgid ""
-#| "struct qelem {\n"
-#| " struct qelem *q_forw;\n"
-#| " struct qelem *q_back;\n"
-#| " char q_data[1];\n"
-#| "};\n"
+#: build/C/man3/insque.3:162
+#, no-wrap
msgid ""
"struct element {\n"
" struct element *forward;\n"
" char *name;\n"
"};\n"
msgstr ""
-"struct qelem {\n"
-" struct qelem *q_forw;\n"
-" struct qelem *q_back;\n"
-" char q_data[1];\n"
+"struct element {\n"
+" struct element *forward;\n"
+" struct element *backward;\n"
+" char *name;\n"
"};\n"
#. type: Plain text
-#: build/C/man3/insque.3:165
+#: build/C/man3/insque.3:167
#, no-wrap
msgid ""
"static struct element *\n"
"{\n"
" struct element *e;\n"
msgstr ""
+"static struct element *\n"
+"new_element(void)\n"
+"{\n"
+" struct element *e;\n"
#. type: Plain text
-#: build/C/man3/insque.3:171
+#: build/C/man3/insque.3:173
#, no-wrap
msgid ""
" e = malloc(sizeof(struct element));\n"
" exit(EXIT_FAILURE);\n"
" }\n"
msgstr ""
+" e = malloc(sizeof(struct element));\n"
+" if (e == NULL) {\n"
+" fprintf(stderr, \"malloc() failed\\en\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
#. type: Plain text
-#: build/C/man3/insque.3:174
-#, fuzzy, no-wrap
-#| msgid " hcreate(30);\n"
+#: build/C/man3/insque.3:176
+#, no-wrap
msgid ""
" return e;\n"
"}\n"
-msgstr " hcreate(30);\n"
+msgstr ""
+" return e;\n"
+"}\n"
#. type: Plain text
-#: build/C/man3/insque.3:180
+#: build/C/man3/insque.3:182
#, no-wrap
msgid ""
"int\n"
" struct element *first, *elem, *prev;\n"
" int circular, opt, errfnd;\n"
msgstr ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" struct element *first, *elem, *prev;\n"
+" int circular, opt, errfnd;\n"
#. type: Plain text
-#: build/C/man3/insque.3:183
+#: build/C/man3/insque.3:185
#, no-wrap
msgid ""
" /* The \"-c\" command-line option can be used to specify that the\n"
" list is circular */\n"
msgstr ""
+" /* The \"-c\" command-line option can be used to specify that the\n"
+" list is circular */\n"
#. type: Plain text
-#: build/C/man3/insque.3:196
+#: build/C/man3/insque.3:198
#, no-wrap
msgid ""
" errfnd = 0;\n"
" }\n"
" }\n"
msgstr ""
+" errfnd = 0;\n"
+" circular = 0;\n"
+" while ((opt = getopt(argc, argv, \"c\")) != -1) {\n"
+" switch (opt) {\n"
+" case 'c':\n"
+" circular = 1;\n"
+" break;\n"
+" default:\n"
+" errfnd = 1;\n"
+" break;\n"
+" }\n"
+" }\n"
#. type: Plain text
-#: build/C/man3/insque.3:201
-#, fuzzy, no-wrap
-#| msgid ""
-#| " if (argc E<lt> 2) {\n"
-#| "\tfprintf(stderr, \"Usage: %s E<lt>stringE<gt>...\\en\", argv[0]);\n"
-#| "\texit(EXIT_FAILURE);\n"
-#| " }\n"
+#: build/C/man3/insque.3:203
+#, no-wrap
msgid ""
" if (errfnd || optind E<gt>= argc) {\n"
" fprintf(stderr, \"Usage: %s [-c] string...\\en\", argv[0]);\n"
" exit(EXIT_FAILURE);\n"
" }\n"
msgstr ""
-" if (argc E<lt> 2) {\n"
-"\tfprintf(stderr, \"Usage: %s E<lt>stringE<gt>...\\en\", argv[0]);\n"
-"\texit(EXIT_FAILURE);\n"
+" if (errfnd || optind E<gt>= argc) {\n"
+" fprintf(stderr, \"Usage: %s [-c] string...\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
" }\n"
#. type: Plain text
-#: build/C/man3/insque.3:203
+#: build/C/man3/insque.3:205
#, no-wrap
msgid " /* Create first element and place it in the linked list */\n"
-msgstr ""
+msgstr " /* Create first element and place it in the linked list */\n"
#. type: Plain text
-#: build/C/man3/insque.3:206
+#: build/C/man3/insque.3:208
#, no-wrap
msgid ""
" elem = new_element();\n"
" first = elem;\n"
msgstr ""
+" elem = new_element();\n"
+" first = elem;\n"
#. type: Plain text
-#: build/C/man3/insque.3:208
+#: build/C/man3/insque.3:210
#, no-wrap
msgid " elem-E<gt>name = argv[optind];\n"
-msgstr ""
+msgstr " elem-E<gt>name = argv[optind];\n"
#. type: Plain text
-#: build/C/man3/insque.3:216
+#: build/C/man3/insque.3:218
#, no-wrap
msgid ""
" if (circular) {\n"
" insque(elem, NULL);\n"
" }\n"
msgstr ""
+" if (circular) {\n"
+" elem-E<gt>forward = elem;\n"
+" elem-E<gt>backward = elem;\n"
+" insque(elem, elem);\n"
+" } else {\n"
+" insque(elem, NULL);\n"
+" }\n"
#. type: Plain text
-#: build/C/man3/insque.3:218
+#: build/C/man3/insque.3:220
#, no-wrap
msgid " /* Add remaining command-line arguments as list elements */\n"
-msgstr ""
+msgstr " /* Add remaining command-line arguments as list elements */\n"
#. type: Plain text
-#: build/C/man3/insque.3:221
+#: build/C/man3/insque.3:223
#, no-wrap
msgid ""
" while (++optind E<lt> argc) {\n"
" prev = elem;\n"
msgstr ""
+" while (++optind E<lt> argc) {\n"
+" prev = elem;\n"
#. type: Plain text
-#: build/C/man3/insque.3:226
+#: build/C/man3/insque.3:228
#, no-wrap
msgid ""
" elem = new_element();\n"
" insque(elem, prev);\n"
" }\n"
msgstr ""
+" elem = new_element();\n"
+" elem-E<gt>name = argv[optind];\n"
+" insque(elem, prev);\n"
+" }\n"
#. type: Plain text
-#: build/C/man3/insque.3:228
+#: build/C/man3/insque.3:230
#, no-wrap
msgid " /* Traverse the list from the start, printing element names */\n"
-msgstr ""
+msgstr " /* Traverse the list from the start, printing element names */\n"
#. type: Plain text
-#: build/C/man3/insque.3:235
+#: build/C/man3/insque.3:237
#, no-wrap
msgid ""
" printf(\"Traversing completed list:\\en\");\n"
" elem = elem-E<gt>forward;\n"
" } while (elem != NULL && elem != first);\n"
msgstr ""
+" printf(\"Traversing completed list:\\en\");\n"
+" elem = first;\n"
+" do {\n"
+" printf(\" %s\\en\", elem-E<gt>name);\n"
+" elem = elem-E<gt>forward;\n"
+" } while (elem != NULL && elem != first);\n"
#. type: Plain text
-#: build/C/man3/insque.3:238
+#: build/C/man3/insque.3:240
#, no-wrap
msgid ""
" if (elem == first)\n"
" printf(\"That was a circular list\\en\");\n"
msgstr ""
+" if (elem == first)\n"
+" printf(\"That was a circular list\\en\");\n"
#. type: Plain text
-#: build/C/man3/insque.3:241
+#: build/C/man3/insque.3:243
#, no-wrap
msgid ""
" exit(EXIT_SUCCESS);\n"
"}\n"
msgstr ""
+" exit(EXIT_SUCCESS);\n"
+"}\n"
#. type: TH
-#: build/C/man3/lsearch.3:25
+#: build/C/man3/lsearch.3:26
#, no-wrap
msgid "LSEARCH"
msgstr "LSEARCH"
#. type: TH
-#: build/C/man3/lsearch.3:25
+#: build/C/man3/lsearch.3:26
#, no-wrap
msgid "1999-09-27"
msgstr "1999-09-27"
#. type: Plain text
-#: build/C/man3/lsearch.3:28
+#: build/C/man3/lsearch.3:29
msgid "lfind, lsearch - linear search of an array"
msgstr "lfind, lsearch - 配列を線形検索する"
#. type: Plain text
-#: build/C/man3/lsearch.3:34
+#: build/C/man3/lsearch.3:35
#, no-wrap
msgid ""
"B<void *lfind(const void *>I<key>B<, const void *>I<base>B<, size_t *>I<nmemb>B<,>\n"
"B< size_t >I<size>B<, int(*>I<compar>B<)(const void *, const void *));>\n"
#. type: Plain text
-#: build/C/man3/lsearch.3:37
+#: build/C/man3/lsearch.3:38
#, no-wrap
msgid ""
"B<void *lsearch(const void *>I<key>B<, void *>I<base>B<, size_t *>I<nmemb>B<,>\n"
"B< size_t >I<size>B<, int(*>I<compar>B<)(const void *, const void *));>\n"
#. type: Plain text
-#: build/C/man3/lsearch.3:50
+#: build/C/man3/lsearch.3:61
msgid ""
"B<lfind>() and B<lsearch>() perform a linear search for I<key> in the "
"array I<base> which has I<*nmemb> elements of I<size> bytes each. The "
"たなら 0、そうでなければ 0 以外を返すことが期待されている。"
#. type: Plain text
-#: build/C/man3/lsearch.3:58
+#: build/C/man3/lsearch.3:72
msgid ""
"If B<lsearch>() does not find a matching element, then the I<key> object is "
"inserted at the end of the table, and I<*nmemb> is incremented. In "
"領域があるか、を把握しておく必要がある。"
#. type: Plain text
-#: build/C/man3/lsearch.3:66
+#: build/C/man3/lsearch.3:80
msgid ""
"B<lfind>() returns a pointer to a matching member of the array, or NULL if "
"no match is found. B<lsearch>() returns a pointer to a matching member of "
"the array, or to the newly added member if no match is found."
msgstr ""
-"B<lfind>() ã\81®è¿\94ã\82\8aå\80¤ã\81¯ã\80\81é\85\8då\88\97ã\81®ã\83\9eã\83\83ã\83\81ã\81\97ã\81\9fã\83¡ã\83³ã\83\90ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81§ã\81\82ã\82\8bã\80\82 ã\82\82ã\81\97ã\83\9eã\83\83"
-"ã\83\81ã\81\99ã\82\8bã\83¡ã\83³ã\83\90ã\83¼ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\84ã\81¨ NULL ã\82\92è¿\94ã\81\99ã\80\82 B<lsearch>() ã\81®è¿\94ã\82\8aå\80¤ã\82\82ã\80\81é\85\8då\88\97ã\81®"
-"マッチしたメンバーへのポインタである。 マッチするメンバーが見つからなかったと"
-"ã\81\8dã\81¯ã\80\81 æ\96°ã\81\9fã\81«ã\81¤ã\81\91å\8a ã\81\88ã\81\9fã\83¡ã\83³ã\83\90ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿を返す。"
+"B<lfind>() ã\81®è¿\94ã\82\8aå\80¤ã\81¯ã\80\81é\85\8då\88\97ã\81®ã\83\9eã\83\83ã\83\81ã\81\97ã\81\9fã\83¡ã\83³ã\83\90ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 ã\82\82ã\81\97"
+"ã\83\9eã\83\83ã\83\81ã\81\99ã\82\8bã\83¡ã\83³ã\83\90ã\83¼ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ªã\81\84ã\81¨ NULL ã\82\92è¿\94ã\81\99ã\80\82 B<lsearch>() ã\81®è¿\94ã\82\8aå\80¤ã\82\82ã\80\81é\85\8d"
+"列のマッチしたメンバーへのポインターである。 マッチするメンバーが見つからな"
+"ã\81\8bã\81£ã\81\9fã\81¨ã\81\8dã\81¯ã\80\81 æ\96°ã\81\9fã\81«ã\81¤ã\81\91å\8a ã\81\88ã\81\9fã\83¡ã\83³ã\83\90ã\83¼ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼を返す。"
#. type: Plain text
-#: build/C/man3/lsearch.3:69
+#: build/C/man3/lsearch.3:83
msgid "SVr4, 4.3BSD, POSIX.1-2001. Present in libc since libc-4.6.27."
msgstr ""
"SVr4, 4.3BSD, POSIX.1-2001. libc には libc-4.6.27 以降で実装されている。"
#. type: Plain text
-#: build/C/man3/lsearch.3:71
+#: build/C/man3/lsearch.3:85
msgid "The naming is unfortunate."
msgstr "関数の名前の選び方がよくない。"
#. type: Plain text
-#: build/C/man3/lsearch.3:75
+#: build/C/man3/lsearch.3:89
msgid "B<bsearch>(3), B<hsearch>(3), B<tsearch>(3)"
msgstr "B<bsearch>(3), B<hsearch>(3), B<tsearch>(3)"
#. type: TH
-#: build/C/man3/qsort.3:35
+#: build/C/man3/qsort.3:37
#, no-wrap
msgid "QSORT"
msgstr "QSORT"
#. type: TH
-#: build/C/man3/qsort.3:35
+#: build/C/man3/qsort.3:37
#, no-wrap
msgid "2012-03-08"
-msgstr ""
+msgstr "2012-03-08"
#. type: Plain text
-#: build/C/man3/qsort.3:38
-#, fuzzy
-#| msgid "qsort - sorts an array"
+#: build/C/man3/qsort.3:40
msgid "qsort, qsort_r - sort an array"
-msgstr "qsort - 配列を並べ変える"
+msgstr "qsort, qsort_r - 配列を並べ変える"
#. type: Plain text
-#: build/C/man3/qsort.3:44
-#, fuzzy, no-wrap
-#| msgid ""
-#| "B<void qsort(void *>I<base>B<, size_t >I<nmemb>B<, size_t >I<size>B<,>\n"
-#| "B< int(*>I<compar>B<)(const void *, const void *));>\n"
+#: build/C/man3/qsort.3:46
+#, no-wrap
msgid ""
"B<void qsort(void *>I<base>B<, size_t >I<nmemb>B<, size_t >I<size>B<,>\n"
"B< int (*>I<compar>B<)(const void *, const void *));>\n"
msgstr ""
"B<void qsort(void *>I<base>B<, size_t >I<nmemb>B<, size_t >I<size>B<,>\n"
-"B< int(*>I<compar>B<)(const void *, const void *));>\n"
+"B< int (*>I<compar>B<)(const void *, const void *));>\n"
#. type: Plain text
-#: build/C/man3/qsort.3:48
-#, fuzzy, no-wrap
-#| msgid ""
-#| "B<void qsort(void *>I<base>B<, size_t >I<nmemb>B<, size_t >I<size>B<,>\n"
-#| "B< int(*>I<compar>B<)(const void *, const void *));>\n"
+#: build/C/man3/qsort.3:50
+#, no-wrap
msgid ""
"B<void qsort_r(void *>I<base>B<, size_t >I<nmemb>B<, size_t >I<size>B<,>\n"
"B< int (*>I<compar>B<)(const void *, const void *, void *),>\n"
"B< void *>I<arg>B<);>\n"
msgstr ""
-"B<void qsort(void *>I<base>B<, size_t >I<nmemb>B<, size_t >I<size>B<,>\n"
-"B< int(*>I<compar>B<)(const void *, const void *));>\n"
+"B<void qsort_r(void *>I<base>B<, size_t >I<nmemb>B<, size_t >I<size>B<,>\n"
+"B< int (*>I<compar>B<)(const void *, const void *, void *),>\n"
+"B< void *>I<arg>B<);>\n"
#. type: Plain text
-#: build/C/man3/qsort.3:58
+#: build/C/man3/qsort.3:60
msgid "B<qsort_r>(): _GNU_SOURCE"
-msgstr ""
+msgstr "B<qsort_r>(): _GNU_SOURCE"
#. type: Plain text
-#: build/C/man3/qsort.3:66
+#: build/C/man3/qsort.3:68
msgid ""
"The B<qsort>() function sorts an array with I<nmemb> elements of size "
"I<size>. The I<base> argument points to the start of the array."
msgstr ""
"B<qsort>() 関数は、 I<nmemb> 個の大きさ I<size> の要素をもつ配列を並べ変え"
-"る。 I<base> 引き数は配列の先頭へのポインタである。"
+"ã\82\8bã\80\82 I<base> å¼\95ã\81\8dæ\95°ã\81¯é\85\8då\88\97ã\81®å\85\88é ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82"
#. type: Plain text
-#: build/C/man3/qsort.3:70
+#: build/C/man3/qsort.3:72
msgid ""
"The contents of the array are sorted in ascending order according to a "
"comparison function pointed to by I<compar>, which is called with two "
"arguments that point to the objects being compared."
msgstr ""
-"I<compar> ã\82\92ã\83\9dã\82¤ã\83³ã\82¿ã\81¨ã\81\99ã\82\8bæ¯\94è¼\83é\96¢æ\95°ã\81«ã\82\88ã\81£ã\81¦ã\80\81 é\85\8då\88\97ã\81®ä¸èº«ã\81¯æ\98\87é \86 (å\80¤ã\81®å¤§ã\81\8dã\81\84ã\82\82ã\81®"
-"ã\81»ã\81©å¾\8cã\81«ä¸¦ã\81¶é \86ç\95ª) ã\81«ä¸¦ã\81¹ã\82\89ã\82\8cã\82\8bã\80\82 æ¯\94è¼\83é\96¢æ\95°ã\81®å¼\95ã\81\8dæ\95°ã\81¯æ¯\94è¼\83ã\81\95ã\82\8cã\82\8bã\81µã\81\9fã\81¤ã\81®ã\82ªã\83\96ã\82¸ã\82§"
-"ã\82¯ã\83\88ã\81®ã\83\9dã\82¤ã\83³ã\82¿である。"
+"I<compar> ã\82\92ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¨ã\81\99ã\82\8bæ¯\94è¼\83é\96¢æ\95°ã\81«ã\82\88ã\81£ã\81¦ã\80\81 é\85\8då\88\97ã\81®ä¸èº«ã\81¯æ\98\87é \86 (å\80¤ã\81®å¤§ã\81\8dã\81\84ã\82\82"
+"ã\81®ã\81»ã\81©å¾\8cã\81«ä¸¦ã\81¶é \86ç\95ª) ã\81«ä¸¦ã\81¹ã\82\89ã\82\8cã\82\8bã\80\82 æ¯\94è¼\83é\96¢æ\95°ã\81®å¼\95ã\81\8dæ\95°ã\81¯æ¯\94è¼\83ã\81\95ã\82\8cã\82\8bã\81µã\81\9fã\81¤ã\81®ã\82ªã\83\96"
+"ã\82¸ã\82§ã\82¯ã\83\88ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼である。"
#. type: Plain text
-#: build/C/man3/qsort.3:76
+#: build/C/man3/qsort.3:78
msgid ""
"The comparison function must return an integer less than, equal to, or "
"greater than zero if the first argument is considered to be respectively "
"た後の配列では、これら二つの順序は規定されていない。"
#. type: Plain text
-#: build/C/man3/qsort.3:89
+#: build/C/man3/qsort.3:91
msgid ""
"The B<qsort_r>() function is identical to B<qsort>() except that the "
"comparison function I<compar> takes a third argument. A pointer is passed "
"does not need to use global variables to pass through arbitrary arguments, "
"and is therefore reentrant and safe to use in threads."
msgstr ""
+"B<qsort_r>() 関数は B<qsort>() と同じだが、比較関数 I<compar> が第 3 引き数"
+"を\n"
+"取る点が異なる。ポインターが I<arg> 経由で比較関数に渡される。\n"
+"これにより、比較関数は任意の引き数を渡すためにグローバル変数を使う必要がなく"
+"なり、\n"
+"そのため、リエントラント (再入可能) で安全にスレッドで使用できるようになる。"
#. type: Plain text
-#: build/C/man3/qsort.3:95
-#, fuzzy
-#| msgid "The B<qsort>() function returns no value."
+#: build/C/man3/qsort.3:97
msgid "The B<qsort>() and B<qsort_r>() functions return no value."
-msgstr "B<qsort>() は値を返さない。"
+msgstr "関数 B<qsort>() と B<qsort_r>() は値を返さない。"
#. type: SH
-#: build/C/man3/qsort.3:95
+#: build/C/man3/qsort.3:97
#, no-wrap
msgid "VERSIONS"
-msgstr ""
+msgstr "バージョン"
#. type: Plain text
-#: build/C/man3/qsort.3:98
+#: build/C/man3/qsort.3:100
msgid "B<qsort_r>() was added to glibc in version 2.8."
-msgstr ""
+msgstr "B<qsort_r>() は glibc バージョン 2.8 で追加された。"
#. type: Plain text
-#: build/C/man3/qsort.3:102
-#, fuzzy
-#| msgid "The B<qsort>() function returns no value."
+#: build/C/man3/qsort.3:104
msgid "The B<qsort>() function conforms to SVr4, 4.3BSD, C89, C99."
-msgstr "B<qsort>() は値を返さない。"
+msgstr "B<qsort>() 関数は SVr4, 4.3BSD, C89, C99 に準拠している。"
#. type: Plain text
-#: build/C/man3/qsort.3:114
-#, fuzzy
-#| msgid ""
-#| "Library routines suitable for use as the I<compar> argument include "
-#| "B<alphasort>(3) and B<versionsort>(3). To compare C strings, the "
-#| "comparison function can call B<strcmp>(3), as shown in the example below."
+#: build/C/man3/qsort.3:116
msgid ""
"Library routines suitable for use as the I<compar> argument to B<qsort>() "
"include B<alphasort>(3) and B<versionsort>(3). To compare C strings, the "
"comparison function can call B<strcmp>(3), as shown in the example below."
msgstr ""
-"I<compar> 引き数に使用するのに適しているライブラリルーチンとしては "
-"B<alphasort>(3), B<versionsort>(3) がある。 C の文字列を比較する場合、以下の"
-"例にあるように比較関数で B<strcmp>(3) を呼び出すこともできる。"
+"B<qsort>() の I<compar> 引き数に使用するのに適しているライブラリルーチンと\n"
+"しては B<alphasort>(3), B<versionsort>(3) がある。 C の文字列を比較する場"
+"合、\n"
+"以下の例にあるように比較関数で B<strcmp>(3) を呼び出すこともできる。"
#. type: Plain text
-#: build/C/man3/qsort.3:117
+#: build/C/man3/qsort.3:119
msgid "For one example of use, see the example under B<bsearch>(3)."
msgstr "使用例については、 B<bsearch>(3) にある例を参照すること。"
#. type: Plain text
-#: build/C/man3/qsort.3:120
+#: build/C/man3/qsort.3:122
msgid ""
"Another example is the following program, which sorts the strings given in "
"its command-line arguments:"
"指定された文字列の並び換えを行う。"
#. type: Plain text
-#: build/C/man3/qsort.3:132
+#: build/C/man3/qsort.3:134
#, no-wrap
msgid ""
"static int\n"
"static int\n"
"cmpstringp(const void *p1, const void *p2)\n"
"{\n"
-" /* ã\81\93ã\81®é\96¢æ\95°ã\81®å®\9fé\9a\9bã\81®å¼\95ã\81\8dæ\95°ã\81¯ \"char å\9e\8bã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81®ã\83\9dã\82¤ã\83³ã\82¿\" だが、\n"
-" strcmp(3) の引き数は \"char 型へのポインタ\" である。\n"
-" そこで、以下のようにキャストをしてからポインタの逆参照を行う。*/\n"
+" /* ã\81\93ã\81®é\96¢æ\95°ã\81®å®\9fé\9a\9bã\81®å¼\95ã\81\8dæ\95°ã\81¯ \"char å\9e\8bã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼\" だが、\n"
+" strcmp(3) の引き数は \"char 型へのポインター\" である。\n"
+" ã\81\9dã\81\93ã\81§ã\80\81以ä¸\8bã\81®ã\82\88ã\81\86ã\81«ã\82ã\83£ã\82¹ã\83\88ã\82\92ã\81\97ã\81¦ã\81\8bã\82\89ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81®é\80\86å\8f\82ç\85§ã\82\92è¡\8cã\81\86ã\80\82*/\n"
#. type: Plain text
-#: build/C/man3/qsort.3:135
+#: build/C/man3/qsort.3:137
#, no-wrap
msgid ""
" return strcmp(* (char * const *) p1, * (char * const *) p2);\n"
"}\n"
#. type: Plain text
-#: build/C/man3/qsort.3:140
+#: build/C/man3/qsort.3:142
#, no-wrap
msgid ""
"int\n"
" int j;\n"
#. type: Plain text
-#: build/C/man3/qsort.3:145
+#: build/C/man3/qsort.3:147
#, no-wrap
msgid ""
" if (argc E<lt> 2) {\n"
-"\tfprintf(stderr, \"Usage: %s E<lt>stringE<gt>...\\en\", argv[0]);\n"
-"\texit(EXIT_FAILURE);\n"
+" fprintf(stderr, \"Usage: %s E<lt>stringE<gt>...\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
" }\n"
msgstr ""
" if (argc E<lt> 2) {\n"
-"\tfprintf(stderr, \"Usage: %s E<lt>stringE<gt>...\\en\", argv[0]);\n"
-"\texit(EXIT_FAILURE);\n"
+" fprintf(stderr, \"Usage: %s E<lt>stringE<gt>...\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
" }\n"
#. type: Plain text
-#: build/C/man3/qsort.3:147
+#: build/C/man3/qsort.3:149
#, no-wrap
msgid " qsort(&argv[1], argc - 1, sizeof(char *), cmpstringp);\n"
msgstr " qsort(&argv[1], argc - 1, sizeof(char *), cmpstringp);\n"
#. type: Plain text
-#: build/C/man3/qsort.3:152
+#: build/C/man3/qsort.3:154
#, no-wrap
msgid ""
" for (j = 1; j E<lt> argc; j++)\n"
"}\n"
#. type: Plain text
-#: build/C/man3/qsort.3:158
+#: build/C/man3/qsort.3:160
msgid "B<sort>(1), B<alphasort>(3), B<strcmp>(3), B<versionsort>(3)"
msgstr "B<sort>(1), B<alphasort>(3), B<strcmp>(3), B<versionsort>(3)"
#. type: TH
-#: build/C/man3/tsearch.3:24
+#: build/C/man3/tsearch.3:25
#, no-wrap
msgid "TSEARCH"
msgstr "TSEARCH"
#. type: TH
-#: build/C/man3/tsearch.3:24
+#: build/C/man3/tsearch.3:25
#, no-wrap
-msgid "2008-09-23"
-msgstr "2008-09-23"
+msgid "2014-05-28"
+msgstr "2014-05-28"
#. type: Plain text
-#: build/C/man3/tsearch.3:27
+#: build/C/man3/tsearch.3:28
msgid "tsearch, tfind, tdelete, twalk, tdestroy - manage a binary tree"
msgstr "tsearch, tfind, tdelete, twalk, tdestroy - 二分木 (binary tree) の操作"
#. type: Plain text
-#: build/C/man3/tsearch.3:33
+#: build/C/man3/tsearch.3:34
#, no-wrap
msgid ""
"B<void *tsearch(const void *>I<key>B<, void **>I<rootp>B<,>\n"
"B< int (*>I<compar>B<)(const void *, const void *));>\n"
#. type: Plain text
-#: build/C/man3/tsearch.3:36
+#: build/C/man3/tsearch.3:37
#, no-wrap
msgid ""
-"B<void *tfind(const void *>I<key>B<, const void **>I<rootp>B<,>\n"
+"B<void *tfind(const void *>I<key>B<, void *const *>I<rootp>B<,>\n"
"B< int (*>I<compar>B<)(const void *, const void *));>\n"
msgstr ""
-"B<void *tfind(const void *>I<key>B<, const void **>I<rootp>B<,>\n"
+"B<void *tfind(const void *>I<key>B<, void *const *>I<rootp>B<,>\n"
"B< int (*>I<compar>B<)(const void *, const void *));>\n"
#. type: Plain text
-#: build/C/man3/tsearch.3:39
+#: build/C/man3/tsearch.3:40
#, no-wrap
msgid ""
"B<void *tdelete(const void *>I<key>B<, void **>I<rootp>B<,>\n"
"B< int (*>I<compar>B<)(const void *, const void *));>\n"
#. type: Plain text
-#: build/C/man3/tsearch.3:43
+#: build/C/man3/tsearch.3:44
#, no-wrap
msgid ""
"B<void twalk(const void *>I<root>B<, void (*>I<action>B<)(const void *>I<nodep>B<,>\n"
"B< const int >I<depth>B<));>\n"
#. type: Plain text
-#: build/C/man3/tsearch.3:49
+#: build/C/man3/tsearch.3:50
#, no-wrap
msgid "B<void tdestroy(void *>I<root>B<, void (*>I<free_node>B<)(void *>I<nodep>B<));>\n"
msgstr "B<void tdestroy(void *>I<root>B<, void (*>I<free_node>B<)(void *>I<nodep>B<));>\n"
#. type: Plain text
-#: build/C/man3/tsearch.3:67
+#: build/C/man3/tsearch.3:69
msgid ""
"B<tsearch>(), B<tfind>(), B<twalk>(), and B<tdelete>() manage a binary "
"tree. They are generalized from Knuth (6.2.2) Algorithm T. The first field "
msgstr ""
"B<tsearch>(), B<tfind>(), B<twalk>(), B<tdelete>() は 二分木を操作する関数で"
"ある。 これらの関数は Knuth (6.2.2) Algorithm T に基づいている。 木構造におけ"
-"る各ノードの最初のフィールドは、対応するデータ・ アイテムへのポインタであ"
+"る各ノードの最初のフィールドは、対応するデータ アイテムへのポインターであ"
"る。 (参照先のデータは、呼び出しプログラムで用意する。) I<compar> は比較ルー"
-"チンへのポインタである。 比較ルーチンは、アイテムへのポインタ 2 つを引数に持"
-"つ。 比較ルーチンの返り値は、1 つ目のアイテムが 2 つ目のアイテムよりも 「小さ"
-"い、等しい、大きい」によって、 「負、0、正」の整数値でなければならない。"
+"チンへのポインターである。 比較ルーチンは、アイテムへのポインター 2 つを引き"
+"数に持つ。 比較ルーチンの返り値は、1 つ目のアイテムが 2 つ目のアイテムよりも "
+"「小さい、等しい、大きい」によって、 「負、0、正」の整数値でなければならな"
+"い。"
#. type: Plain text
-#: build/C/man3/tsearch.3:82
+#: build/C/man3/tsearch.3:88
msgid ""
"B<tsearch>() searches the tree for an item. I<key> points to the item to "
"be searched for. I<rootp> points to a variable which points to the root of "
"and returns a pointer to the newly added item."
msgstr ""
"B<tsearch>() は、木構造からアイテムを検索する関数である。 I<key> は、検索す"
-"ã\82\8bã\82¢ã\82¤ã\83\86ã\83 ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81§ã\81\82ã\82\8bã\80\82 I<rootp> ã\81¯æ\9c¨æ§\8bé\80 ã\81®æ ¹ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿"
-"ã\81§ã\81\82ã\82\8bã\80\82 æ\9c¨æ§\8bé\80 ã\81\8cã\83\8eã\83¼ã\83\89ã\82\92å\90«ã\81¾ã\81ªã\81\84å ´å\90\88ã\80\81I<rootp> ã\81®å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bå¤\89æ\95°ã\81¯ NULL ã\81«"
-"設定されていなければならない。 木構造にアイテムが見つかった場合、 B<tsearch>"
-"() はそのアイテムへのポインタを返す。 見つからなかった場合は、アイテムを木構"
-"造に追加し、 追加したアイテムへのポインタを返す。"
+"ã\82\8bã\82¢ã\82¤ã\83\86ã\83 ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 I<rootp> ã\81¯æ\9c¨æ§\8bé\80 ã\81®æ ¹ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81¸ã\81®ã\83\9dã\82¤"
+"ã\83³ã\82¿ã\83¼ã\81§ã\81\82ã\82\8bã\80\82 æ\9c¨æ§\8bé\80 ã\81\8cã\83\8eã\83¼ã\83\89ã\82\92å\90«ã\81¾ã\81ªã\81\84å ´å\90\88ã\80\81I<rootp> ã\81®å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8bå¤\89æ\95°ã\81¯ "
+"NULL に設定されていなければならない。 木構造にアイテムが見つかった場合、 "
+"B<tsearch>() はそのアイテムへのポインターを返す。 見つからなかった場合は、ア"
+"イテムを木構造に追加し、 追加したアイテムへのポインターを返す。"
#. type: Plain text
-#: build/C/man3/tsearch.3:90
+#: build/C/man3/tsearch.3:96
msgid ""
"B<tfind>() is like B<tsearch>(), except that if the item is not found, then "
"B<tfind>() returns NULL."
"NULL を返す点が異なる。"
#. type: Plain text
-#: build/C/man3/tsearch.3:95
+#: build/C/man3/tsearch.3:101
msgid ""
"B<tdelete>() deletes an item from the tree. Its arguments are the same as "
"for B<tsearch>()."
msgstr ""
-"B<tdelete>() は木構造からアイテムを削除する。 引数は B<tsearch>() と同じで"
-"ある。"
+"B<tdelete>() は木構造からアイテムを削除する。 引き数は B<tsearch>() と同じ"
+"ã\81§ã\81\82ã\82\8bã\80\82"
#. type: Plain text
-#: build/C/man3/tsearch.3:115
+#: build/C/man3/tsearch.3:136
msgid ""
"B<twalk>() performs depth-first, left-to-right traversal of a binary tree. "
"I<root> points to the starting node for the traversal. If that node is not "
"the root, then only part of the tree will be visited. B<twalk>() calls the "
"user function I<action> each time a node is visited (that is, three times "
"for an internal node, and once for a leaf). I<action>, in turn, takes three "
-"arguments. The first is a pointer to the node being visited. The second is "
-"an integer which takes on the values B<preorder>, B<postorder>, and "
-"B<endorder> depending on whether this is the first, second, or third visit "
-"to the internal node, or B<leaf> if it is the single visit to a leaf node. "
-"(These symbols are defined in I<E<lt>search.hE<gt>>.) The third argument is "
-"the depth of the node, with zero being the root."
+"arguments. The first argument is a pointer to the node being visited. The "
+"structure of the node is unspecified, but it is possible to cast the pointer "
+"to a pointer-to-pointer-to-element in order to access the element stored "
+"within the node. The application must not modify the structure pointed to "
+"by this argument. The second argument is an integer which takes one of the "
+"values B<preorder>, B<postorder>, or B<endorder> depending on whether this "
+"is the first, second, or third visit to the internal node, or the value "
+"B<leaf> if this is the single visit to a leaf node. (These symbols are "
+"defined in I<E<lt>search.hE<gt>>.) The third argument is the depth of the "
+"node; the root node has depth zero."
msgstr ""
"B<twalk>() は、二分木を深さ優先 (depth-first) で、 左から右にたどっていく関"
-"数である。 I<root> は起点となるノードへのポインタである。 I<root> に根以外の"
-"ノードを指定すると、部分木が対象となる。 B<twalk>() は、ノードを訪れる度に "
-"(つまり、内部ノードに対しては 3 回、葉に対しては 1 回) ユーザ関数 I<action> "
-"を呼び出す。 I<action> には以下の順に 3 つの引数が与えられる。 最初の引数は訪"
-"れたノードへのポインタである。 2 つ目の引数には、内部ノードの場合は訪問回数に"
-"応じて B<preorder>, B<postorder>, B<endorder> が、 葉の場合は B<leaf> が与え"
-"られる。 (これらのシンボルは I<E<lt>search.hE<gt>> で定義されている。) 3 つ"
-"目の引数はノードの深さで、根の場合は 0 である。"
-
-#. type: Plain text
-#: build/C/man3/tsearch.3:122
+"数である。 I<root> は起点となるノードへのポインターである。 I<root> に根以外"
+"のノードを指定すると、部分木が対象となる。 B<twalk>() は、ノードを訪れる度に"
+"ユーザー関数 I<action> を呼び出す (内部ノードに対しては 3 回、葉に対しては 1 "
+"回呼び出しが行われる)。 I<action> には以下の順に 3 つの引き数が与えられる。 "
+"最初の引き数は訪れたノードへのポインターである。 ノードの構造体は規定されてい"
+"ないが、 ポインターを要素へのポインターのポインターにキャストし、 ノードに格"
+"納された要素にアクセスすることができる。 アプリケーションは、この引き数が指す"
+"構造体を変更してはならない。 2 番目の引き数には、内部ノードの場合は訪問回数に"
+"応じて B<preorder>, B<postorder>, B<endorder> のいずれかの整数が、 葉を最初に"
+"訪れた場合は B<leaf> の値が渡される (これらのシンボルは I<E<lt>search."
+"hE<gt>> で定義されている)。 3 番目の引き数はノードの深さで、根の場合は深さ "
+"0 である。"
+
+#. type: Plain text
+#: build/C/man3/tsearch.3:152
msgid ""
"(More commonly, B<preorder>, B<postorder>, and B<endorder> are known as "
"B<preorder>, B<inorder>, and B<postorder>: before visiting the children, "
"している。 よって B<post\\%order> という名前を選ぶのは少し紛らわしい。)"
#. type: Plain text
-#: build/C/man3/tsearch.3:132
+#: build/C/man3/tsearch.3:167
msgid ""
"B<tdestroy>() removes the whole tree pointed to by I<root>, freeing all "
"resources allocated by the B<tsearch>() function. For the data in each "
"tree node the function I<free_node> is called. The pointer to the data is "
-"passed as the argument to the function. If no such work is necessary "
+"passed as the argument to the function. If no such work is necessary, "
"I<free_node> must point to a function doing nothing."
msgstr ""
"B<tdestroy>() は I<root> が指す木構造全体を削除し、 B<tsearch>() 関数で確保"
"されたリソースを全て解放する。 木構造の各ノードについて、関数 I<free_node> が"
-"å\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bã\80\82 ã\83\87ã\83¼ã\82¿ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81\8cã\81\93ã\81®é\96¢æ\95°ã\81®å¼\95æ\95°ã\81¨ã\81\97ã\81¦æ¸¡ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\9dã\81®ã\82\88ã\81\86ã\81ª"
-"動作が必要でなければ、 I<free_node> は何もしない関数へのポインタでなければな"
-"らない。"
+"å\91¼ã\81³å\87ºã\81\95ã\82\8cã\82\8bã\80\82 ã\83\87ã\83¼ã\82¿ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\81\8cã\81\93ã\81®é\96¢æ\95°ã\81®å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦æ¸¡ã\81\95ã\82\8cã\82\8bã\80\82 ã\81\9dã\81®ã\82\88"
+"うな動作が必要でなければ、 I<free_node> は何もしない関数へのポインターでなけ"
+"ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82"
#. type: Plain text
-#: build/C/man3/tsearch.3:142
+#: build/C/man3/tsearch.3:177
msgid ""
"B<tsearch>() returns a pointer to a matching item in the tree, or to the "
"newly added item, or NULL if there was insufficient memory to add the item. "
"unspecified."
msgstr ""
"B<tsearch>() は、木構造に見つかったアイテムか、 新しく追加したアイテムへのポ"
-"ã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\83¡ã\83¢ã\83ªã\81®ä¸\8d足ã\81®ã\81\9fã\82\81ã\82¢ã\82¤ã\83\86ã\83 ã\82\92追å\8a ã\81§ã\81\8dã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\81¯ NULL ã\82\92è¿\94"
-"す。 B<tfind>() は、アイテムへのポインタを返す。 一致するアイテムが見つから"
-"ã\81ªã\81\84å ´å\90\88ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82 æ¤\9cç´¢æ\9d¡ä»¶ã\81«ä¸\80è\87´ã\81\99ã\82\8bè¦\81ç´ ã\81\8cè¤\87æ\95°ã\81\82ã\82\8bå ´å\90\88ã\80\81è¿\94ã\81\95ã\82\8cã\82\8bå\80¤ã\81¯ä¸\8d"
-"定である。"
+"ã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\83¡ã\83¢ã\83ªã\83¼ã\81®ä¸\8d足ã\81®ã\81\9fã\82\81ã\82¢ã\82¤ã\83\86ã\83 ã\82\92追å\8a ã\81§ã\81\8dã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\81¯ NULL ã\82\92"
+"返す。 B<tfind>() は、アイテムへのポインターを返す。 一致するアイテムが見つ"
+"ã\81\8bã\82\89ã\81ªã\81\84å ´å\90\88ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82 æ¤\9cç´¢æ\9d¡ä»¶ã\81«ä¸\80è\87´ã\81\99ã\82\8bè¦\81ç´ ã\81\8cè¤\87æ\95°ã\81\82ã\82\8bå ´å\90\88ã\80\81è¿\94ã\81\95ã\82\8cã\82\8bå\80¤"
+"は不定である。"
#. type: Plain text
-#: build/C/man3/tsearch.3:146
+#: build/C/man3/tsearch.3:181
msgid ""
"B<tdelete>() returns a pointer to the parent of the item deleted, or NULL "
"if the item was not found."
msgstr ""
-"B<tdelete>() ã\81¯å\89\8aé\99¤ã\81\97ã\81\9fã\82¢ã\82¤ã\83\86ã\83 ã\81®è¦ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\82¢ã\82¤ã\83\86ã\83 ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89ã\81ª"
-"かった場合は NULL を返す。"
+"B<tdelete>() ã\81¯å\89\8aé\99¤ã\81\97ã\81\9fã\82¢ã\82¤ã\83\86ã\83 ã\81®è¦ªã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92è¿\94ã\81\99ã\80\82 ã\82¢ã\82¤ã\83\86ã\83 ã\81\8cè¦\8bã\81¤ã\81\8bã\82\89"
+"ã\81ªã\81\8bã\81£ã\81\9få ´å\90\88ã\81¯ NULL ã\82\92è¿\94ã\81\99ã\80\82"
#. type: Plain text
-#: build/C/man3/tsearch.3:153
+#: build/C/man3/tsearch.3:190
msgid ""
"B<tsearch>(), B<tfind>(), and B<tdelete>() also return NULL if I<rootp> was "
"NULL on entry."
"返す。"
#. type: Plain text
-#: build/C/man3/tsearch.3:158
+#: build/C/man3/tsearch.3:195
msgid "SVr4, POSIX.1-2001. The function B<tdestroy>() is a GNU extension."
msgstr "SVr4, POSIX.1-2001. 関数 B<tdestroy>() は GNU の拡張である。"
#. type: Plain text
-#: build/C/man3/tsearch.3:162
+#: build/C/man3/tsearch.3:199
msgid ""
"B<twalk>() takes a pointer to the root, while the other functions take a "
"pointer to a variable which points to the root."
msgstr ""
-"B<twalk>() ã\81¯æ ¹ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92å¼\95æ\95°ã\81«ã\81¨ã\82\8bã\81\8cã\80\81 ã\81»ã\81\8bã\81®é\96¢æ\95°ã\81¯æ ¹ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81¸ã\81®ã\83\9d"
-"ã\82¤ã\83³ã\82¿である。"
+"B<twalk>() ã\81¯æ ¹ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼ã\82\92å¼\95ã\81\8dæ\95°ã\81«ã\81¨ã\82\8bã\81\8cã\80\81 ã\81»ã\81\8bã\81®é\96¢æ\95°ã\81¯æ ¹ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼"
+"ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\83¼である。"
#. type: Plain text
-#: build/C/man3/tsearch.3:168
-msgid ""
-"B<twalk>() uses B<postorder> to mean \"after the left subtree, but before "
-"the right subtree\". Some authorities would call this \"inorder\", and "
-"reserve \"postorder\" to mean \"after both subtrees\"."
-msgstr ""
-"B<twalk>() においては、B<postorder> は 「左の部分木の後で、右の部分木の前」"
-"を意味している。 しかし、人によってはこれを \"inorder\" と呼んで、 "
-"\"postorder\" を「両方の部分木の後」とする場合もある。"
-
-#. type: Plain text
-#: build/C/man3/tsearch.3:173
+#: build/C/man3/tsearch.3:204
msgid ""
"B<tdelete>() frees the memory required for the node in the tree. The user "
"is responsible for freeing the memory for the corresponding data."
msgstr ""
-"B<tdelete>() ã\81¯ã\80\81å\89\8aé\99¤ã\81\97ã\81\9fã\83\8eã\83¼ã\83\89ã\81®ä½¿ç\94¨ã\81\97ã\81¦ã\81\84ã\81\9fã\83¡ã\83¢ã\83ªã\82\92解æ\94¾ã\81\99ã\82\8bã\81\8cã\80\81 ã\83\8eã\83¼ã\83\89ã\81«å¯¾"
-"å¿\9cã\81\99ã\82\8bã\83\87ã\83¼ã\82¿ã\81®ã\83¡ã\83¢ã\83ªã\81¯ã\80\81ã\83¦ã\83¼ã\82¶が解放しなければならない。"
+"B<tdelete>() ã\81¯ã\80\81å\89\8aé\99¤ã\81\97ã\81\9fã\83\8eã\83¼ã\83\89ã\81®ä½¿ç\94¨ã\81\97ã\81¦ã\81\84ã\81\9fã\83¡ã\83¢ã\83ªã\83¼ã\82\92解æ\94¾ã\81\99ã\82\8bã\81\8cã\80\81 ã\83\8eã\83¼ã\83\89ã\81«"
+"対å¿\9cã\81\99ã\82\8bã\83\87ã\83¼ã\82¿ã\81®ã\83¡ã\83¢ã\83ªã\83¼ã\81¯ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼が解放しなければならない。"
#. type: Plain text
-#: build/C/man3/tsearch.3:181
+#: build/C/man3/tsearch.3:212
msgid ""
"The example program depends on the fact that B<twalk>() makes no further "
"reference to a node after calling the user function with argument \"endorder"
"\" or \"leaf\". This works with the GNU library implementation, but is not "
"in the System V documentation."
msgstr ""
-"下のプログラム例は、ユーザ関数が \"endorder\" か \"leaf\" を引数にして 呼び出"
-"ã\81\95ã\82\8cã\81¦ä»¥é\99\8dã\81¯ã\80\81 B<twalk>() ã\81\8cã\81\9dã\81®ã\83\8eã\83¼ã\83\89ã\82\92å\8f\82ç\85§ã\81\97ã\81ªã\81\84ã\81\93ã\81¨ã\82\92å\89\8dæ\8f\90ã\81¨ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 ã\81\93"
-"ã\82\8cã\81¯ GNU ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81®å®\9fè£\85ã\81§ã\81¯æ©\9fè\83½ã\81\99ã\82\8bã\81\8cã\80\81System V ã\81®ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\81«ã\81¯å\98å\9c¨ã\81\97ã\81ª"
-"い。"
+"下のプログラム例は、ユーザー関数が \"endorder\" か \"leaf\" を引き数にして 呼"
+"ã\81³å\87ºã\81\95ã\82\8cã\81¦ä»¥é\99\8dã\81¯ã\80\81 B<twalk>() ã\81\8cã\81\9dã\81®ã\83\8eã\83¼ã\83\89ã\82\92å\8f\82ç\85§ã\81\97ã\81ªã\81\84ã\81\93ã\81¨ã\82\92å\89\8dæ\8f\90ã\81¨ã\81\97ã\81¦ã\81\84"
+"ã\82\8bã\80\82 ã\81\93ã\82\8cã\81¯ GNU ã\83©ã\82¤ã\83\96ã\83©ã\83ªã\81®å®\9fè£\85ã\81§ã\81¯æ©\9fè\83½ã\81\99ã\82\8bã\81\8cã\80\81System V ã\81®ã\83\9eã\83\8bã\83¥ã\82¢ã\83«ã\81«ã\81¯å\98å\9c¨"
+"ã\81\97ã\81ªã\81\84ã\80\82"
#. type: Plain text
-#: build/C/man3/tsearch.3:185
+#: build/C/man3/tsearch.3:216
msgid ""
"The following program inserts twelve random numbers into a binary tree, "
"where duplicate numbers are collapsed, then prints the numbers in order."
"る (挿入の際、重複した乱数は 1 つにまとめられる)。"
#. type: Plain text
-#: build/C/man3/tsearch.3:192
+#: build/C/man3/tsearch.3:223
#, no-wrap
msgid ""
"#define _GNU_SOURCE /* Expose declaration of tdestroy() */\n"
"#include E<lt>time.hE<gt>\n"
#. type: Plain text
-#: build/C/man3/tsearch.3:194
+#: build/C/man3/tsearch.3:225
#, no-wrap
-msgid "void *root = NULL;\n"
-msgstr "void *root = NULL;\n"
+msgid "static void *root = NULL;\n"
+msgstr "static void *root = NULL;\n"
#. type: Plain text
-#: build/C/man3/tsearch.3:205
+#: build/C/man3/tsearch.3:236
#, no-wrap
msgid ""
-"void *\n"
+"static void *\n"
"xmalloc(unsigned n)\n"
"{\n"
" void *p;\n"
" exit(EXIT_FAILURE);\n"
"}\n"
msgstr ""
-"void *\n"
+"static void *\n"
"xmalloc(unsigned n)\n"
"{\n"
" void *p;\n"
"}\n"
#. type: Plain text
-#: build/C/man3/tsearch.3:215
+#: build/C/man3/tsearch.3:246
#, no-wrap
msgid ""
-"int\n"
+"static int\n"
"compare(const void *pa, const void *pb)\n"
"{\n"
" if (*(int *) pa E<lt> *(int *) pb)\n"
" return 0;\n"
"}\n"
msgstr ""
-"int\n"
+"static int\n"
"compare(const void *pa, const void *pb)\n"
"{\n"
" if (*(int *) pa E<lt> *(int *) pb)\n"
"}\n"
#. type: Plain text
-#: build/C/man3/tsearch.3:220
+#: build/C/man3/tsearch.3:251
#, no-wrap
msgid ""
-"void\n"
+"static void\n"
"action(const void *nodep, const VISIT which, const int depth)\n"
"{\n"
" int *datap;\n"
msgstr ""
-"void\n"
+"static void\n"
"action(const void *nodep, const VISIT which, const int depth)\n"
"{\n"
" int *datap;\n"
#. type: Plain text
-#: build/C/man3/tsearch.3:236
+#: build/C/man3/tsearch.3:267
#, no-wrap
msgid ""
" switch (which) {\n"
"}\n"
#. type: Plain text
-#: build/C/man3/tsearch.3:242
+#: build/C/man3/tsearch.3:273
#, no-wrap
msgid ""
"int\n"
" void *val;\n"
#. type: Plain text
-#: build/C/man3/tsearch.3:257
+#: build/C/man3/tsearch.3:288
#, no-wrap
msgid ""
" srand(time(NULL));\n"
" for (i = 0; i E<lt> 12; i++) {\n"
-" ptr = (int *) xmalloc(sizeof(int));\n"
+" ptr = xmalloc(sizeof(int));\n"
" *ptr = rand() & 0xff;\n"
" val = tsearch((void *) ptr, &root, compare);\n"
" if (val == NULL)\n"
msgstr ""
" srand(time(NULL));\n"
" for (i = 0; i E<lt> 12; i++) {\n"
-" ptr = (int *) xmalloc(sizeof(int));\n"
+" ptr = xmalloc(sizeof(int));\n"
" *ptr = rand() & 0xff;\n"
" val = tsearch((void *) ptr, &root, compare);\n"
" if (val == NULL)\n"
"}\n"
#. type: Plain text
-#: build/C/man3/tsearch.3:263
+#: build/C/man3/tsearch.3:294
msgid "B<bsearch>(3), B<hsearch>(3), B<lsearch>(3), B<qsort>(3)"
msgstr "B<bsearch>(3), B<hsearch>(3), B<lsearch>(3) B<qsort>(3)"
-
-#~ msgid "2009-09-15"
-#~ msgstr "2009-09-15"
-
-#~ msgid "SVr4, 4.3BSD, C89, C99."
-#~ msgstr "SVr4, 4.3BSD, C89, C99."
-
-#~ msgid "2008-07-11"
-#~ msgstr "2008-07-11"
-
-#~ msgid ""
-#~ "B<insque>(), B<remque>(): _SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500"
-#~ msgstr ""
-#~ "B<insque>(), B<remque>(): _SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500"