LFIND - linear search.
(Compatible with UNIX System V C)
Usage:
#include <stdio.h>
#include <search.h>
char *lfind();
ptr = lfind( key, table, tsize_p, keysize, compar);
Where:
- char *key;
- points to the key you are searching for. This can
actually be any type of information, but the pointer must
be cast into (char *).
- char *table;
- points to the beginning of a table that contains
information to search. This need not be sorted in any
order.
- unsigned int *tsize_p;
- points to an unsigned integer that gives the number of
elements in the table.
- int keysize;
- is equal to "sizeof(*key)", i.e. the size (in
bytes) of the key you are searching for.
- int (*compar)(char *,char *);
- is a pointer to a user-defined function that determines
whether or not two keys are equal. This function should
take two (char *) arguments; one will point to the key
you are looking for and the other will point to a key in
the table. The function should return a zero if the two
keys are equal, and a non-zero value otherwise.
- char *ptr;
- points to a table element that matches "key".
If no match was found, this will be the NULL pointer.
Description:
"lfind" performs a linear search through the
elements of a table. It uses the user-supplied "compar"
function to compare elements in the table. If the desired key is
not found in the table, a NULL pointer is returned.
Note that "compar" does not have to do a
byte-by-byte comparison between the key and the table elements.
For example, the table may be an array of C structures and
"compar" may only look at a particular field when
comparing two structures. In this case, the original search key
might just be a dummy, with only the significant field filled in.
See Also:
- expl c lib lsearch
- linear search with table update
- expl c lib bsearch
- binary search
- expl c lib hsearch
- hash functions
- expl c lib tsearch
- tree search
Copyright © 1996, Thinkage Ltd.