ndbm man page on Ultrix

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

ndbm(3)								       ndbm(3)

       dbm_open,  dbm_close,  dbm_fetch,  dbm_store, dbm_delete, dbm_firstkey,
       dbm_nextkey, dbm_setpblksiz, dbm_error, dbm_clearerr - database subrou‐

       #include <ndbm.h>

       typedef struct {
	   char *dptr;
	   int dsize; } datum;

       DBM *dbm_open(file, flags, mode)
	   char *file;
	   int flags, mode;

       void dbm_close(db)
	   DBM *db;

       datum dbm_fetch(db, key)
	   DBM *db;
	   datum key;

       int dbm_store(db, key, content, flags)
	   DBM *db;
	   datum key, content;
	   int flags;

       int dbm_delete(db, key)
	   DBM *db;
	   datum key;

       datum dbm_firstkey(db)
	   DBM *db;

       datum dbm_nextkey(db)
	   DBM *db;

       int dbm_setpblksiz(db, size)
	   DBM *db;
	   int size;

       int dbm_error(db)
	   DBM *db;

       int dbm_clearerr(db)
	   DBM *db;

       The arguments are described in the Description section.

       These  functions	 maintain  key/content pairs in a database.  The func‐
       tions will handle very large (a	billion	 blocks)  databases  and  will
       access  a  keyed item in one or two file system accesses.  This package
       replaces the earlier library, which managed only a single database.

       The keys and contents are described by  the  typedef.   A  specifies  a
       string  of bytes pointed to by Arbitrary binary data, as well as normal
       ASCII strings, are allowed.  The database is stored in two files.   One
       file  is	 a  directory containing a bit map and has .dir as its suffix.
       The second file contains all data and has .pag as its suffix.

       Before a database can be accessed, it must be opened by	the  function.
       This  will open and/or create the files file.dir and file.pag depending
       on the flags parameter (see

       Once open, the data stored under a key is accessed by the function  and
       data  is	 placed	 under	a key by the function.	The flags field can be
       either DBM_INSERT or DBM_REPLACE.   DBM_INSERT  will  only  insert  new
       entries	into  the  database and will not change an existing entry with
       the same key.  DBM_REPLACE will replace an existing entry if it has the
       same  key.  A key (and its associated contents) is deleted by the func‐
       tion.  A linear pass through all keys in a database may be made, in  an
       (apparently)  random order, by use of the and the functions.  The func‐
       tion will return the first key in  the  database.   The	function  will
       return the next key in the database.  This code will traverse the data‐

       (key = dbm_firstkey(db); key.dptr != NULL; key = dbm_nextkey(db))

       The function returns an EINVAL error if the value passed is not between
       1024  and  32767,  inclusive.   The function sets the block size of the
       page file to something higher than the current value,  which  is	 1024.
       Digital recommends a value of 4096.  The passed to the function is that
       returned from the function.

       The function returns non-zero when an error  has	 occurred  reading  or
       writing	the  database.	The function resets the error condition on the
       named database.

       The .pag file will contain holes so that its  apparent  size  is	 about
       four  times  its	 actual	 content.   Older systems may create real file
       blocks for these holes when touched.  These files cannot be  copied  by
       normal means ( without filling in the holes.

       The  pointers  returned	by these subroutines point into static storage
       that is changed by subsequent calls.

       The sum of the sizes of a key/content pair must not exceed the internal
       block size (currently 4096 bytes).  Moreover all key/content pairs that
       hash together must fit on a single block.  The function will return  an
       error in the event that a disk block fills with inseparable data.

       The  function  does not physically reclaim file space, although it does
       make it available for reuse.

       The order of keys presented by the and functions depends on  a  hashing

       All  functions  that return an indicate errors with negative values.  A
       zero return indicates ok.  Routines that return a indicate errors  with
       a null (0) If called with a flags value of DBM_INSERT finds an existing
       entry with the same key it returns 1.

See Also

List of man pages available for Ultrix

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