LSEARCH - linear search and update table.
(Compatible with UNIX System V C) 
Usage:
#include <stdio.h>
#include <search.h>
char *lsearch();
ptr = lsearch( 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 *). If this key is not found in the
        table, it will be added to the end of the table. 
 
    - char *table; 
 
    - points to the beginning of a table that contains
        information to search. This need not be sorted in any
        order. It should have enough space to hold a new key, in
        the event that the desired key is not found in the
        existing table. 
 
    - unsigned int *tsize_p; 
 
    - points to an unsigned integer that gives the number of
        elements in the table. If the desired key cannot be found
        in the table and is therefore added to the end of the
        table, the unsigned integer will be incremented to
        reflect that the table now has one more element. 
 
    - 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 in the original table, this will
        point to the new key where it was added at the end of the
        table. 
 
Description:
"lsearch" 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, the search key is added to the end of the
table. 
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 lfind 
 
    - -- linear search without update 
 
    - expl c lib bsearch 
 
    - -- binary search 
 
    - expl c lib hsearch 
 
    - -- hash functions 
 
    - expl c lib tsearch 
 
    - -- tree search 
 
Copyright © 1996, Thinkage Ltd.