Index Index for
Section 3
Index Alphabetical
listing for R
Bottom of page Bottom of
page

ranhash(3)

NAME

ranhashinit, ranhash, ranlookup - access routine for the symbol table definition file in archives

SYNOPSIS

#include <ldfcn.h> int ranhashinit( struct ranlib *pran, char *pstr, int size ); ranhash( char *name ); struct ranlib *ranlookup( char *name );

PARAMETERS

pran Points to an array of ranlib structures. pstr Points to the corresponding ranlib string table (which are used only by ranlookup). size Specifies the size of the hash table and should be a power of 2. If the size is not a power of 2, a 1 is returned; otherwise, a 0 is returned.

DESCRIPTION

The ranhashinit() routine initializes static information for future use by ranhash() and ranlookup(). The ranhash() routine, given a name, returns a hash number. It uses a multiplicative hashing algorithm and the size argument to ranhashinit(). The ranlookup() routine looks up name in the ranlib table specified by ranhashinit(). It uses the ranhash() routine as a starting point. Then, it does a rehash from there. This routine returns a pointer to a valid ranlib entry on a match. If no matches are found (the "emptiness" can be inferred if the ran_off field is zero), the empty ranlib structure hash table should be sparse. This routine does not expect to run out of places to look in the table. For example, if you collide on all entries in the table, an error is printed to stderr and a zero is returned.

AUTHOR

Mark I. Himelstein

SEE ALSO

ar(1)

Index Index for
Section 3
Index Alphabetical
listing for R
Top of page Top of
page