Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ lfind(3) — OSF/1 SILVER Baselevel 4 rev36

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

bsearch(3)

hsearch(3)

tsearch(3)

qsort(3)

lsearch(3)  —  Subroutines

OSF

NAME

lsearch, lfind −  Performs a linear search and update

LIBRARY

Standard C Library (libc.a)

SYNOPSIS

#include <search.h> #include <sys/types.h> void ∗lsearch(
const void ∗key,
const 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 ∗)) ;

PARAMETERS

keyPoints to an entry containing the key that specifies the entry to be searched for in the table. 

basePoints to the first entry in the table to be searched. 

nelpPoints to an integer that specifies the number of entries in the table to be searched. This integer is incremented whenever an entry is added to the table. 

widthSpecifies the size of each entry, in bytes. 

comparPoints to the user-specified function to be used for comparing two table entries (strcmp(), for example).  This function must return 0 (zero) when called with arguments that point to entries whose keys compare equal, and nonzero otherwise. 

DESCRIPTION

The lsearch() function performs a linear search of a table.  This function returns a pointer into a table indicating where a specified key is located in the table.  When the key is not found in the table, it is added to the end of the table.  Free space must be available at the end of the table, or other program information may be corrupted. 

The lfind() function is similar to the lsearch() function, except that when a key is not found in a table, an entry for it is not added to the table. In this case, a null pointer is returned. 

NOTES

Pointers to the key parameter and the entry at the base of the table should be of type pointer-to-element.  Although it is declared as type pointer-to-void, the returned value must be cast to type pointer-to-element. 

The comparison function need not compare every byte; therefore, the table entries can contain arbitrary data in addition to the values undergoing comparison. 

AES Support Level
Trial use

RETURN VALUES

Upon successful completion, both the lsearch() and lfind() functions return a pointer to its location in the table. Otherwise, the lfind() function returns a null pointer and the lsearch() function returns a pointer to the location of the newly added table entry. 

RELATED INFORMATION

Functions: bsearch(3), hsearch(3), tsearch(3), qsort(3)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026