OSDN Git Service

(split) LDP: draft snapshot generated from latest ja.po files.
[linuxjm/LDP_man-pages.git] / draft / man3 / hsearch.3
index edd36a5..ebb47eb 100644 (file)
 .\" 2008-09-03, mtk, restructured somewhat, in part after suggestions from
 .\"     Timothy S. Nelson <wayland@wayland.id.au>
 .\"
-.\" Japanese Version Copyright (c) 1998 George Momma,
-.\"     Copyright (c) 2001-2005 Yuichi SATO,
-.\"     and Copyright (c) 2008 Akihiro MOTOKI
-.\" Translated 1998-05-23, George Momma <momma@wakhok.ac.jp>
-.\" Updated & Modified 2001-10-15, Yuichi SATO <ysato@h4.dion.ne.jp>
-.\" Updated & Modified 2002-01-03, Yuichi SATO
-.\" Updated & Modified 2004-01-17, Yuichi SATO <ysato444@yahoo.co.jp>
-.\" Updated & Modified 2005-01-10, Yuichi SATO
-.\" Updated 2008-09-20, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
+.\"*******************************************************************
 .\"
-.\"WORD:       hash table              ハッシュテーブル
-.\"WORD:       entry                   エントリー
-.\"WORD:       allocate                割り当て
-.\"WORD:       NUL-terminated          ヌル文字 \0 で終端された
-.\"WORD:       pointer                 ポインタ
-.\"WORD:       character               文字型
-.\"WORD:       item                    項目
+.\" This file was generated with po4a. Translate the source file.
 .\"
-.TH HSEARCH 3 2011-09-10 "GNU" "Linux Programmer's Manual"
-.\"O .SH NAME
+.\"*******************************************************************
+.TH HSEARCH 3 2011\-09\-10 GNU "Linux Programmer's Manual"
 .SH 名前
-.\"O hcreate, hdestroy, hsearch, hcreate_r, hdestroy_r,
-.\"O hsearch_r \- hash table management
-hcreate, hdestroy, hsearch, hcreate_r, hdestroy_r,
-hsearch_r \- ハッシュテーブルの管理
-.\"O .SH SYNOPSIS
+hcreate, hdestroy, hsearch, hcreate_r, hdestroy_r, hsearch_r \- ハッシュテーブルの管理
 .SH 書式
 .nf
-.B #include <search.h>
+\fB#include <search.h>\fP
 .sp
-.BI "int hcreate(size_t " nel );
+\fBint hcreate(size_t \fP\fInel\fP\fB);\fP
 .sp
-.BI "ENTRY *hsearch(ENTRY " item ", ACTION " action );
+\fBENTRY *hsearch(ENTRY \fP\fIitem\fP\fB, ACTION \fP\fIaction\fP\fB);\fP
 .sp
-.B "void hdestroy(void);"
+\fBvoid hdestroy(void);\fP
 .sp
-.\"O .BR "#define _GNU_SOURCE" "         /* See feature_test_macros(7) */"
-.BR "#define _GNU_SOURCE" "         /* feature_test_macros(7) 参照 */"
+\fB#define _GNU_SOURCE\fP         /* feature_test_macros(7) 参照 */
 .br
-.B #include <search.h>
+\fB#include <search.h>\fP
 .sp
-.BI "int hcreate_r(size_t " nel ", struct hsearch_data *" htab );
+\fBint hcreate_r(size_t \fP\fInel\fP\fB, struct hsearch_data *\fP\fIhtab\fP\fB);\fP
 .sp
-.BI "int hsearch_r(ENTRY " item ", ACTION " action ", ENTRY **" retval ,
-.BI "              struct hsearch_data *" htab );
+\fBint hsearch_r(ENTRY \fP\fIitem\fP\fB, ACTION \fP\fIaction\fP\fB, ENTRY **\fP\fIretval\fP\fB,\fP
+\fB              struct hsearch_data *\fP\fIhtab\fP\fB);\fP
 .sp
-.BI "void hdestroy_r(struct hsearch_data *" htab );
+\fBvoid hdestroy_r(struct hsearch_data *\fP\fIhtab\fP\fB);\fP
 .fi
-.\"O .SH DESCRIPTION
 .SH 説明
-.\"O The three functions
-.\"O .BR hcreate (),
-.\"O .BR hsearch (),
-.\"O and
-.\"O .BR hdestroy ()
-.\"O allow the caller to create and manage a hash search table
-.\"O containing entries consisting of a key (a string) and associated data.
-.\"O Using these functions, only one hash table can be used at a time.
-.BR hcreate (),
-.BR hsearch (),
-.BR hdestroy ()
-の 3 つの関数を利用すると、キー (文字列) と対応するデータから構成される
-エントリを格納できるハッシュ検索テーブルを作成、管理することができる。
+\fBhcreate\fP(), \fBhsearch\fP(), \fBhdestroy\fP()  の 3 つの関数を利用すると、キー (文字列)
+と対応するデータから構成される エントリを格納できるハッシュ検索テーブルを作成、管理することができる。
 これらの関数を使って、一度に使用できるのは一つのハッシュテーブルだけである。
 
-.\"O The three functions
-.\"O .BR hcreate_r (),
-.\"O .BR hsearch_r (),
-.\"O .BR hdestroy_r ()
-.\"O are reentrant versions that allow a program to use
-.\"O more than one hash search table at the same time.
-.\"O The last argument,
-.\"O .IR htab ,
-.\"O points to a structure that describes the table
-.\"O on which the function is to operate.
-.\"O The programmer should treat this structure as opaque
-.\"O (i.e., do not attempt to directly access or modify
-.\"O the fields in this structure).
-.BR hcreate_r (),
-.BR hsearch_r (),
-.BR hdestroy_r ()
-の 3 つの関数はリエントラント版で、これらを利用すると、
-一つのプログラムで同時に複数のハッシュテーブルを使うことができる。
-最後の引き数
-.I htab
-は関数の操作対象となるテーブルを示す構造体へのポインタである。
-プログラマはこの構造体をブラックボックスとして扱うべきである
-(つまり、この構造体のフィールドに直接アクセスしたり変更したり
-しないこと)。
+\fBhcreate_r\fP(), \fBhsearch_r\fP(), \fBhdestroy_r\fP()  の 3
+つの関数はリエントラント版で、これらを利用すると、 一つのプログラムで同時に複数のハッシュテーブルを使うことができる。 最後の引き数 \fIhtab\fP
+は関数の操作対象となるテーブルを示す構造体へのポインタである。 プログラマはこの構造体をブラックボックスとして扱うべきである
+(つまり、この構造体のフィールドに直接アクセスしたり変更したり しないこと)。
 
-.\"O First a hash table must be created using
-.\"O .BR hcreate ().
-.\"O The argument \fInel\fP specifies the maximum number of entries
-.\"O in the table.
-.\"O (This maximum cannot be changed later, so choose it wisely.)
-.\"O The implementation may adjust this value upward to improve the
-.\"O performance of the resulting hash table.
-最初に、
-.BR hcreate ()
-関数によってハッシュテーブルを作成しなければならない。
-引き数 \fInel\fP でテーブルの最大エントリ数を指定する
-(この最大値は後で変更することはできないので、よく考えて選択すること)。
-作成されるハッシュテーブルの性能を向上させるために、
-関数内部の実装によりこの値は増やされる場合もある。
 .\" e.g., in glibc it is raised to the next higher prime number
+最初に、 \fBhcreate\fP()  関数によってハッシュテーブルを作成しなければならない。 引き数 \fInel\fP でテーブルの最大エントリ数を指定する
+(この最大値は後で変更することはできないので、よく考えて選択すること)。 作成されるハッシュテーブルの性能を向上させるために、
+関数内部の実装によりこの値は増やされる場合もある。
 
-.\"O The
-.\"O .BR hcreate_r ()
-.\"O function performs the same task as
-.\"O .BR hcreate (),
-.\"O but for the table described by the structure
-.\"O .IR *htab .
-.\"O The structure pointed to by
-.\"O .I htab
-.\"O must be zeroed before the first call to
-.\"O .BR hcreate_r ().
-.BR hcreate_r ()
-関数は
-.BR hcreate ()
-と同じ動作をするが、構造体
-.I *htab
-で示されるテーブルを対象として動作する。
-.I htab
-が指し示す構造体は、
-.BR hcreate_r ()
-を初めて呼び出す前に 0 で埋めておかなければならない。
+\fBhcreate_r\fP()  関数は \fBhcreate\fP()  と同じ動作をするが、構造体 \fI*htab\fP
+で示されるテーブルを対象として動作する。 \fIhtab\fP が指し示す構造体は、 \fBhcreate_r\fP()  を初めて呼び出す前に 0
+で埋めておかなければならない。
 
-.\"O The function
-.\"O .BR hdestroy ()
-.\"O frees the memory occupied by the hash table that was created by
-.\"O .BR hcreate ().
-.\"O After calling
-.\"O .BR hdestroy ()
-.\"O a new hash table can be created using
-.\"O .BR hcreate ().
-.\"O The
-.\"O .BR hdestroy_r ()
-.\"O function performs the analogous task for a hash table described by
-.\"O .IR *htab ,
-.\"O which was previously created using
-.\"O .BR hcreate_r ().
-.BR hdestroy ()
-関数は、
-.BR hcreate ()
-で作成されたハッシュテーブルが占有していたメモリを解放する。
-ハッシュテーブルによって占有されていたメモリを解放し、
-新しいテーブルを作成できるようにする。
-.BR hdestroy ()
-を呼び出すと、その後は
-.BR hcreate ()
-を使って新しいハッシュテーブルを作成することができる。
-.BR hdestroy_r ()
-関数は、同様の処理を、それ以前に
-.BR hcreate_r ()
-を使って作成した
-.I *htab
-で示されるハッシュテーブルに対して実行する。
+\fBhdestroy\fP()  関数は、 \fBhcreate\fP()  で作成されたハッシュテーブルが占有していたメモリを解放する。
+ハッシュテーブルによって占有されていたメモリを解放し、 新しいテーブルを作成できるようにする。 \fBhdestroy\fP()  を呼び出すと、その後は
+\fBhcreate\fP()  を使って新しいハッシュテーブルを作成することができる。 \fBhdestroy_r\fP()  関数は、同様の処理を、それ以前に
+\fBhcreate_r\fP()  を使って作成した \fI*htab\fP で示されるハッシュテーブルに対して実行する。
 
-.\"O The
-.\"O .BR hsearch ()
-.\"O function searches the hash table for an
-.\"O item with the same key as \fIitem\fP (where "the same" is determined using
-.\"O .BR strcmp (3)),
-.\"O and if successful returns a pointer to it.
-.BR hsearch ()
-関数は、\fIitem\fP と同じキーを持つ項目をハッシュテーブルから
-検索し、項目が見つかった場合にはその項目へのポインタを返す
-(「同じ」かどうかは
-.BR strcmp (3)
-を使って判定する)。
+\fBhsearch\fP()  関数は、\fIitem\fP と同じキーを持つ項目をハッシュテーブルから
+検索し、項目が見つかった場合にはその項目へのポインタを返す (「同じ」かどうかは \fBstrcmp\fP(3)  を使って判定する)。
 
-.\"O The argument \fIitem\fP is of type \fIENTRY\fP, which is defined in
-.\"O \fI<search.h>\fP as follows:
-引き数 \fIitem\fP は \fBENTRY\fP 型であり、\fI<search.h>\fP の中で
-以下のように定義されている。
+引き数 \fIitem\fP は \fBENTRY\fP 型であり、\fI<search.h>\fP の中で 以下のように定義されている。
 .in +4n
 .sp
 .nf
@@ -217,269 +99,60 @@ typedef struct entry {
 .in
 .fi
 .sp
-.\"O The field \fIkey\fP points to a null-terminated string which is the
-.\"O search key.
-.\"O The field \fIdata\fP points to data that is associated with that key.
-フィールド \fIkey\fP は検索キーとなる NULL 終端された文字列を指す。
-フィールド \fIdata\fP は、このキーに対応するデータを指す。
+フィールド \fIkey\fP は検索キーとなる NULL 終端された文字列を指す。 フィールド \fIdata\fP は、このキーに対応するデータを指す。
 
-.\"O The argument \fIaction\fP determines what
-.\"O .BR hsearch ()
-.\"O does after an unsuccessful search.
-検索が失敗した後の動作は、引き数 \fIaction\fP により決まる。
-.\"O This argument must either have the value
-.\"O .BR ENTER ,
-.\"O meaning insert a copy of
-.\"O .IR item
-.\"O (and return a pointer to the new hash table entry as the function result),
-.\"O or the value
-.\"O .BR FIND ,
-.\"O meaning that NULL should be returned.
-.\"O (If
-.\"O .I action
-.\"O is
-.\"O .BR FIND ,
-.\"O then
-.\"O .I data
-.\"O is ignored.)
-この引き数には
-.B ENTER
-か
-.B FIND
-のいずれかの値を指定しなければならない。
-.B ENTER
-は
-.I item
-のコピーを挿入することを
-(関数の結果として新しいハッシュテーブルエントリへのポインタを返す)、
-.B FIND
-は NULL を返すことを意味する
-.RI ( action
-が
-.B FIND
-の場合、
-.I data
-は無視される)。
+検索が失敗した後の動作は、引き数 \fIaction\fP により決まる。 この引き数には \fBENTER\fP か \fBFIND\fP
+のいずれかの値を指定しなければならない。 \fBENTER\fP は \fIitem\fP のコピーを挿入することを
+(関数の結果として新しいハッシュテーブルエントリへのポインタを返す)、 \fBFIND\fP は NULL を返すことを意味する (\fIaction\fP が
+\fBFIND\fP の場合、 \fIdata\fP は無視される)。
 
-.\"O The
-.\"O .BR hsearch_r ()
-.\"O function is like
-.\"O .BR hsearch ()
-.\"O but operates on the hash table described by
-.\"O .IR *htab .
-.\"O The
-.\"O .BR hsearch_r ()
-.\"O function differs from
-.\"O .BR hsearch ()
-.\"O in that a pointer to the found item is returned in
-.\"O .IR *retval ,
-.\"O rather than as the function result.
-.BR hsearch_r ()
-関数は
-.BR hsearch ()
-と同様だが、
-.I *htab
-で示されるハッシュテーブルに対して処理を行う。
-.BR hsearch_r ()
-関数が
-.BR hsearch ()
-と異なるのは、見つかった項目へのポインタを、
-関数の結果としてではなく、
-.I *retval
-に格納して返す点である。
-.\"O .SH "RETURN VALUE"
+\fBhsearch_r\fP()  関数は \fBhsearch\fP()  と同様だが、 \fI*htab\fP で示されるハッシュテーブルに対して処理を行う。
+\fBhsearch_r\fP()  関数が \fBhsearch\fP()  と異なるのは、見つかった項目へのポインタを、 関数の結果としてではなく、
+\fI*retval\fP に格納して返す点である。
 .SH 返り値
-.\"O .BR hcreate ()
-.\"O and
-.\"O .BR hcreate_r ()
-.\"O return nonzero on success.
-.\"O They return 0 on error.
-.BR hcreate ()
-と
-.BR hcreate_r ()
-は、成功した場合 0 以外の値を返し、
-エラーの場合 0 を返す。
+\fBhcreate\fP()  と \fBhcreate_r\fP()  は、成功した場合 0 以外の値を返し、 エラーの場合 0 を返す。
 
-.\"O On success,
-.\"O .BR hsearch ()
-.\"O returns a pointer to an entry in the hash table.
-.\"O .BR hsearch ()
-.\"O returns NULL on error, that is,
-.\"O if \fIaction\fP is \fBENTER\fP and
-.\"O the hash table is full, or \fIaction\fP is \fBFIND\fP and \fIitem\fP
-.\"O cannot be found in the hash table.
-成功すると、
-.BR hsearch ()
-は、ハッシュテーブル内のエントリへのポインタを返す。
-エラーの場合、
-.BR hsearch ()
-は NULL を返す。
-エラーとなるのは、
-\fIaction\fP が \fBENTER\fP でハッシュテーブルがいっぱいの場合か、
-\fIaction\fP が \fBFIND\fP で \fIitem\fP がハッシュテーブル内に
-見つからない場合である。
-.\"O .BR hsearch_r ()
-.\"O returns nonzero on success, and 0 on error.
-.BR hsearch_r ()
-は、成功すると 0 以外を返し、エラーの場合 0 を返す。
-.\"O .SH ERRORS
+成功すると、 \fBhsearch\fP()  は、ハッシュテーブル内のエントリへのポインタを返す。 エラーの場合、 \fBhsearch\fP()  は NULL
+を返す。 エラーとなるのは、 \fIaction\fP が \fBENTER\fP でハッシュテーブルがいっぱいの場合か、 \fIaction\fP が \fBFIND\fP
+で \fIitem\fP がハッシュテーブル内に 見つからない場合である。 \fBhsearch_r\fP()  は、成功すると 0 以外を返し、エラーの場合 0
+を返す。
 .SH エラー
 .LP
-.\"O .BR hcreate_r ()
-.\"O and
-.\"O .BR hdestroy_r ()
-.\"O can fail for the following reasons:
-.BR hcreate_r ()
-と
-.BR hdestroy_r ()
-は以下の理由で失敗する可能性がある。
-.TP
-.B EINVAL
-.\"O .I htab
-.\"O is NULL.
-.I htab
-が NULL である。
+\fBhcreate_r\fP()  と \fBhdestroy_r\fP()  は以下の理由で失敗する可能性がある。
+.TP 
+\fBEINVAL\fP
+\fIhtab\fP が NULL である。
 .PP
-.\"O .BR hsearch ()
-.\"O and
-.\"O .BR hsearch_r ()
-.\"O can fail for the following reasons:
-.BR hsearch ()
-と
-.BR hsearch_r ()
-は以下の理由で失敗する可能性がある。
-.TP
-.B ENOMEM
-.\"O .I action
-.\"O was
-.\"O .BR ENTER ,
-.\"O .I key
-.\"O was not found in the table,
-.\"O and there was no room in the table to add a new entry.
-.I action
-が
-.B ENTER
-で、
-.I key
-がテーブル内に見つからず、
-テーブルに新しいエントリを追加する余地がなかった。
-.TP
-.B ESRCH
-.\"O .I action
-.\"O was
-.\"O .BR FIND ,
-.\"O and
-.\"O .I key
-.\"O was not found in the table.
-.I action
-が
-.B FIND
-で、
-.I key
-がテーブル内に見つからなかった。
+\fBhsearch\fP()  と \fBhsearch_r\fP()  は以下の理由で失敗する可能性がある。
+.TP 
+\fBENOMEM\fP
+\fIaction\fP が \fBENTER\fP で、 \fIkey\fP がテーブル内に見つからず、 テーブルに新しいエントリを追加する余地がなかった。
+.TP 
+\fBESRCH\fP
+\fIaction\fP が \fBFIND\fP で、 \fIkey\fP がテーブル内に見つからなかった。
 .PP
-.\"O POSIX.1-2001 only specifies the
-.\"O .B ENOMEM
-.\"O error.
-POSIX.1-2001 が規定しているのは、エラー
-.B ENOMEM
-だけである。
-.\"O .SH "CONFORMING TO"
+POSIX.1\-2001 が規定しているのは、エラー \fBENOMEM\fP だけである。
 .SH 準拠
-.\"O The functions
-.\"O .BR hcreate (),
-.\"O .BR hsearch (),
-.\"O and
-.\"O .BR hdestroy ()
-.\"O are from SVr4, and are described in POSIX.1-2001.
-関数
-.BR hcreate (),
-.BR hsearch (),
-.BR hdestroy ()
-は SVr4 から導入されたもので、POSIX.1-2001 に記述されている。
-.\"O The functions
-.\"O .BR hcreate_r ,
-.\"O .BR hsearch_r ,
-.\"O and
-.\"O .BR hdestroy_r
-.\"O are GNU extensions.
-関数
-.BR hcreate_r ,
-.BR hsearch_r ,
-.B hdestroy_r
-は GNU の拡張である。
-.\"O .SH NOTES
+関数 \fBhcreate\fP(), \fBhsearch\fP(), \fBhdestroy\fP()  は SVr4 から導入されたもので、POSIX.1\-2001
+に記述されている。 関数 \fBhcreate_r\fP, \fBhsearch_r\fP, \fBhdestroy_r\fP は GNU の拡張である。
 .SH 注意
-.\"O Hash table implementations are usually more efficient when the
-.\"O table contains enough free space to minimize collisions.
-.\"O Typically, this means that
-.\"O .I nel
-.\"O should be at least 25% larger than the maximum number of elements
-.\"O that the caller expects to store in the table.
-通常、ハッシュテーブルの実装は、衝突を最小限にするために
-テーブルに十分な空き領域がある場合に効率がよくなる。
-このため、普通は、
-.I nel
-を、呼び出し側がテーブルに格納しようと思っている
-エントリの最大数より少なくとも 25% は大きな値にすべきである。
+通常、ハッシュテーブルの実装は、衝突を最小限にするために テーブルに十分な空き領域がある場合に効率がよくなる。 このため、普通は、 \fInel\fP
+を、呼び出し側がテーブルに格納しようと思っている エントリの最大数より少なくとも 25% は大きな値にすべきである。
 
-.\"O The
-.\"O .BR hdestroy ()
-.\"O and
-.\"O .BR hdestroy_r ()
-.\"O functions do not free the buffers pointed to by the
-.\"O .I key
-.\"O and
-.\"O .I data
-.\"O elements of the hash table entries.
-.\"O (It can't do this because it doesn't know
-.\"O whether these buffers were allocated dynamically.)
-.BR hdestroy ()
-と
-.BR hdestroy_r ()
-は、ハッシュテーブルのエントリの要素である
-.I key
-と
-.I data
-が指すバッファを解放しない
-(これができないのは、これらのバッファが動的に割り当てられたのかを
-知ることができないからである)。
-.\"O If these buffers need to be freed (perhaps because the program
-.\"O is repeatedly creating and destroying hash tables,
-.\"O rather than creating a single table whose lifetime
-.\"O matches that of the program),
-.\"O then the program must maintain bookkeeping data structures that
-.\"O allow it to free them.
-これらのバッファを解放する必要がある場合、
-プログラムでは、これらのバッファを解放できるように管理用のデータ構造を
-設けて、これを管理しなければならない
-(解放が必要となる理由は、たいていは、プログラム自身と生存期間が同じ
-ハッシュテーブルを一つだけ作成するのではなく、そのプログラムでは複数の
+\fBhdestroy\fP()  と \fBhdestroy_r\fP()  は、ハッシュテーブルのエントリの要素である \fIkey\fP と \fIdata\fP
+が指すバッファを解放しない (これができないのは、これらのバッファが動的に割り当てられたのかを 知ることができないからである)。
+これらのバッファを解放する必要がある場合、 プログラムでは、これらのバッファを解放できるように管理用のデータ構造を 設けて、これを管理しなければならない
+(解放が必要となる理由は、たいていは、プログラム自身と生存期間が同じ ハッシュテーブルを一つだけ作成するのではなく、そのプログラムでは複数の
 ハッシュテーブルを繰り返して作成したり破棄したりするからであろう)。
-.\"O .SH BUGS
 .SH バグ
-.\"O SVr4 and POSIX.1-2001 specify that \fIaction\fP
-.\"O is significant only for unsuccessful searches, so that an \fBENTER\fP
-.\"O should not do anything for a successful search.
-.\"O In libc and glibc (before version 2.3), the
-.\"O implementation violates the specification,
-.\"O updating the \fIdata\fP for the given \fIkey\fP in this case.
-SVr4 と POSIX.1-2001 の規定では、
-\fIaction\fP は検索が失敗したときにだけ意味を持つとなっている。
-よって、検索が成功した場合、\fIaction\fP の値が \fBENTER\fP でも
-何もすべきではない。
-(バージョン 2.3 より前の) libc と glibc の実装はこの規格に違反しており、
-この状況で、指定された \fIkey\fP に対応する \fIdata\fP が更新される。
+SVr4 と POSIX.1\-2001 の規定では、 \fIaction\fP は検索が失敗したときにだけ意味を持つとなっている。
+よって、検索が成功した場合、\fIaction\fP の値が \fBENTER\fP でも 何もすべきではない。 (バージョン 2.3 より前の) libc と
+glibc の実装はこの規格に違反しており、 この状況で、指定された \fIkey\fP に対応する \fIdata\fP が更新される。
 
-.\"O Individual hash table entries can be added, but not deleted.
 ハッシュテーブルエントリーの追加はできるが、削除ができない。
-.\"O .SH EXAMPLE
 .SH 例
 .PP
-.\"O The following program inserts 24 items into a hash table, then prints
-.\"O some of them.
-次のプログラムは、ハッシュテーブルに 24 個の項目を挿入し、
-それからそのうちのいくつかを表示する。
+次のプログラムは、ハッシュテーブルに 24 個の項目を挿入し、 それからそのうちのいくつかを表示する。
 .nf
 
 #include <stdio.h>
@@ -502,36 +175,27 @@ int main()
 
     for (i = 0; i < 24; i++) {
         e.key = data[i];
-.\"O         /* data is just an integer, instead of a
-.\"O            pointer to something */
         /* データは、ポインタではなく、単なる整数値である。 */
         e.data = (void *) i;
         ep = hsearch(e, ENTER);
-.\"O         /* there should be no failures */
         /* エラーは起こらないはずである。 */
         if (ep == NULL) {
-            fprintf(stderr, "entry failed\\n");
+            fprintf(stderr, "entry failed\en");
             exit(EXIT_FAILURE);
         }
     }
 
     for (i = 22; i < 26; i++) {
-.\"O         /* print two entries from the table, and
-.\"O            show that two are not in the table */
         /* テーブルにある 2 つのエントリを表示し、
            あとの 2 つがテーブルにないことを示す。 */
         e.key = data[i];
         ep = hsearch(e, FIND);
-        printf("%9.9s \-> %9.9s:%d\\n", e.key,
+        printf("%9.9s \-> %9.9s:%d\en", e.key,
                ep ? ep\->key : "NULL", ep ? (int)(ep\->data) : 0);
     }
     hdestroy();
     exit(EXIT_SUCCESS);
 }
 .fi
-.\"O .SH "SEE ALSO"
 .SH 関連項目
-.BR bsearch (3),
-.BR lsearch (3),
-.BR malloc (3),
-.BR tsearch (3)
+\fBbsearch\fP(3), \fBlsearch\fP(3), \fBmalloc\fP(3), \fBtsearch\fP(3)