EN JA
LSEARCH(3)
LSEARCH(3) Linux Programmer's Manual LSEARCH(3)

名前

lfind, lsearch -配列を線形検索する

書式


#include <search.h>
 

void *lfind(const void * key , const void * base , size_t * nmemb ,
size_t size , int(* compar )(const void *, const void *));
 

void *lsearch(const void * key , void * base , size_t * nmemb ,
size_t size , int(* compar )(const void *, const void *));

説明

lfind() と lsearch() は、 size バイトの要素 *nmemb 個からなる配列 base から、 key を線形検索する。比較を行うのは compar が参照している関数で、これは 2つの引き数を持ち、1つめの引き数が key を、2つめの引き数は配列メンバーを指す。また compar は、 key が配列のメンバーとマッチしたなら 0、そうでなければ 0 以外を返すことが期待されている。

lsearch() は、マッチする要素を見つけられなかったとき、配列の最後に key をつけ加える。そして *nmemb を 1 ふやす。したがって、この関数を使用する際には、マッチする要素が存在するか、もしくは配列に要素を追加するための領域があるか、を把握しておく必要がある。

返り値

lfind() の返り値は、配列のマッチしたメンバーへのポインタである。もしマッチするメンバーが見つからないと NULL を返す。 lsearch() の返り値も、配列のマッチしたメンバーへのポインタである。マッチするメンバーが見つからなかったときは、新たにつけ加えたメンバーへのポインタを返す。

準拠

SVr4, 4.3BSD, POSIX.1-2001. libc には libc-4.6.27 以降で実装されている。

バグ

関数の名前の選び方がよくない。

関連項目

bsearch(3), hsearch(3), tsearch(3)

この文書について

この man ページは Linux man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。
1999-09-27 GNU