July 6, 2005 LSEARCH 3

### NAME

lsearch, lfind - linear searching routines

### LIBRARY

Standard C Library (libc, -lc)

### SYNOPSIS

```void``*` lsearch(```const void *key``, void *base``, size_t *nelp``, size_t width``, int (*compar)(const void *, const void *)`)
```void``*` lfind(```const void *key``, const void *base``, size_t *nelp``, size_t width``, int (*compar)(const void *, const void *)`)

### DESCRIPTION

The functions lsearch(``), and lfind(``) provide basic linear searching functionality.

```base` is the pointer to the beginning of an array. The argument ```nelp` is the current number of elements in the array, where each element is ```width` bytes long. The ```compar` argument points to a function which compares its two arguments and returns zero if they are matching, and non-zero otherwise.

The lsearch(``) and lfind(``) functions return a pointer into the array referenced by ```base` where ```key` is located. If ```key` does not exist, lfind(``) will return a null pointer and lsearch(``) will add it to the array. When an element is added to the array by lsearch(``) the location referenced by the argument ```nelp` is incremented by one.

### SEE ALSO

bsearch(3), db(3)

### STANDARDS

The lsearch(``) and lfind(``) functions conform to IEEE Std 1003.1-2001 (``POSIX.1'') .