Provided by: manpages-ja-dev_0.5.0.0.20210215+dfsg-1_all
名前
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.79 の一部 である。プロジェクト の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。