HASH man page on 4.4BSD

Man page or keyword search:  
man Server   1065 pages
apropos Keyword Search (all sections)
Output format
4.4BSD logo
[printable version]

HASH(3)								       HASH(3)

       hash - hash database access method

       #include <sys/types.h>
       #include <db.h>

       The  routine dbopen is the library interface to database files.	One of
       the supported file formats is hash files.  The general  description  of
       the database access methods is in dbopen(3), this manual page describes
       only the hash specific information.

       The hash data structure is an extensible, dynamic hashing scheme.

       The access method specific data structure provided to dbopen is defined
       in the <db.h> include file as follows:

       typedef struct {
	      u_int bsize;
	      u_int ffactor;
	      u_int nelem;
	      u_int cachesize;
	      u_int32_t (*hash)(const void *, size_t);
	      int lorder;
       } HASHINFO;

       The elements of this structure are as follows:

       bsize  Bsize  defines  the  hash table bucket size, and is, by default,
	      256 bytes.  It may be preferable to increase the page  size  for
	      disk-resident tables and tables with large data items.

	      Ffactor  indicates  a desired density within the hash table.  It
	      is an approximation of the number of keys allowed to  accumulate
	      in  any  one  bucket,  determining  when the hash table grows or
	      shrinks.	The default value is 8.

       nelem  Nelem is an estimate of the final size of the  hash  table.   If
	      not  set	or  set too low, hash tables will expand gracefully as
	      keys are entered, although a slight performance degradation  may
	      be noticed.  The default value is 1.

	      A	 suggested  maximum size, in bytes, of the memory cache.  This
	      value is only advisory, and the access method will allocate more
	      memory rather than fail.

       hash   Hash  is	a  user defined hash function.	Since no hash function
	      performs equally well on all possible data, the  user  may  find
	      that the built-in hash function does poorly on a particular data
	      set.  User specified hash functions must take two	 arguments  (a
	      pointer to a byte string and a length) and return a 32-bit quan‐
	      tity to be used as the hash value.

       lorder The byte order for integers in  the  stored  database  metadata.
	      The  number  should represent the order as an integer; for exam‐
	      ple, big endian order would be the number 4,321.	If lorder is 0
	      (no  order is specified) the current host order is used.	If the
	      file already exists, the specified  value	 is  ignored  and  the
	      value specified when the tree was created is used.

       If the file already exists (and the O_TRUNC flag is not specified), the
       values specified for the parameters bsize, ffactor,  lorder  and	 nelem
       are  ignored  and  the  values  specified when the tree was created are

       If a hash function is specified, hash_open will attempt to determine if
       the hash function specified is the same as the one with which the data‐
       base was created, and will fail if it is not.

       Backward compatible interfaces to the routines described in dbm(3), and
       ndbm(3)	are provided, however these interfaces are not compatible with
       previous file formats.

       The hash access method routines may fail and set errno for any  of  the
       errors specified for the library routine dbopen(3).

       btree(3), dbopen(3), mpool(3), recno(3)

       Dynamic	Hash  Tables, Per-Ake Larson, Communications of the ACM, April

       A New Hash Package for UNIX, Margo Seltzer, USENIX Proceedings,	Winter

       Only big and little endian byte order is supported.

4.4 Berkeley Distribution	August 18, 1994			       HASH(3)

List of man pages available for 4.4BSD

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net