LSEARCH(3)

名称
lsearch, lfind - 線形探索ルーチン

ライブラリ
libcompat

書式
<sys/types.h> char * lsearch(const void *key, const void *base, size_t *nelp, size_t width, int (*compar)(void *, void *)) char * lfind(const void *key, const void *base, size_t *nelp, size_t width, int (*compar)(void *, void *))

解説
このインタフェースは、これが書かれるより前に時代遅れでした。

関数 lsearch() 及び lfind() は基本的な線形探索機能を提供します。

base は配列の先頭を指すポインタです。 引数 nelp は配列の現在の要素数であり、 各要素サイズのバイト長は width です。 関数 compar は、2 つの要素比較に使用される比較ルーチンです。 この関数は、2 つの引数、 比較対象を指すポインタ key と配列メンバを指すポインタを、 この順序でとります。 そして、 key が指す比較対象が配列のメンバより、小さい、等しい、大きいと 考えられるそれぞれの場合について、 負、 0 、正の整数を返さなければなりません。

関数 lsearch() 及び lfind() は、 base によって参照される配列の中で key が位置するポインタを返します。 もし key が存在しない場合、 lfind() はヌルポインタを返し、 lsearch() はそれを配列に追加します。 lsearch() 要素が配列に追加されると、 により配列要素が追加されると、引数 nelp によって参照される位置が 1 つ加算されます。

関連項目
bsearch(3), db(3)