ranhash(3)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
Points to an array of ranlib structures. Points to the corresponding
ranlib string table (which are used only by ranlookup). 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 ran‐
hashinit().
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 struc‐
ture 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 ALSOar(1)ranhash(3)