summaryrefslogtreecommitdiffstats
path: root/man3/dbopen.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/dbopen.3')
-rw-r--r--man3/dbopen.3536
1 files changed, 0 insertions, 536 deletions
diff --git a/man3/dbopen.3 b/man3/dbopen.3
deleted file mode 100644
index 516768b..0000000
--- a/man3/dbopen.3
+++ /dev/null
@@ -1,536 +0,0 @@
-.\" Copyright (c) 1990, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" SPDX-License-Identifier: BSD-4-Clause-UC
-.\"
-.\" @(#)dbopen.3 8.5 (Berkeley) 1/2/94
-.\"
-.TH dbopen 3 2023-10-31 "Linux man-pages 6.7"
-.UC 7
-.SH NAME
-dbopen \- database access methods
-.SH LIBRARY
-Standard C library
-.RI ( libc ", " \-lc )
-.SH SYNOPSIS
-.nf
-.B #include <sys/types.h>
-.B #include <limits.h>
-.B #include <db.h>
-.B #include <fcntl.h>
-.P
-.BI "DB *dbopen(const char *" file ", int " flags ", int " mode \
-", DBTYPE " type ,
-.BI " const void *" openinfo );
-.fi
-.SH DESCRIPTION
-.IR "Note well" :
-This page documents interfaces provided up until glibc 2.1.
-Since glibc 2.2, glibc no longer provides these interfaces.
-Probably, you are looking for the APIs provided by the
-.I libdb
-library instead.
-.P
-.BR dbopen ()
-is the library interface to database files.
-The supported file formats are btree, hashed, and UNIX file oriented.
-The btree format is a representation of a sorted, balanced tree structure.
-The hashed format is an extensible, dynamic hashing scheme.
-The flat-file format is a byte stream file with fixed or variable length
-records.
-The formats and file-format-specific information are described in detail
-in their respective manual pages
-.BR btree (3),
-.BR hash (3),
-and
-.BR recno (3).
-.P
-.BR dbopen ()
-opens
-.I file
-for reading and/or writing.
-Files never intended to be preserved on disk may be created by setting
-the
-.I file
-argument to NULL.
-.P
-The
-.I flags
-and
-.I mode
-arguments are as specified to the
-.BR open (2)
-routine, however, only the
-.BR O_CREAT ,
-.BR O_EXCL ,
-.BR O_EXLOCK ,
-.BR O_NONBLOCK ,
-.BR O_RDONLY ,
-.BR O_RDWR ,
-.BR O_SHLOCK ,
-and
-.B O_TRUNC
-flags are meaningful.
-(Note, opening a database file
-.B O_WRONLY
-is not possible.)
-.\"Three additional options may be specified by ORing
-.\"them into the
-.\".I flags
-.\"argument.
-.\".TP
-.\"DB_LOCK
-.\"Do the necessary locking in the database to support concurrent access.
-.\"If concurrent access isn't needed or the database is read-only this
-.\"flag should not be set, as it tends to have an associated performance
-.\"penalty.
-.\".TP
-.\"DB_SHMEM
-.\"Place the underlying memory pool used by the database in shared
-.\"memory.
-.\"Necessary for concurrent access.
-.\".TP
-.\"DB_TXN
-.\"Support transactions in the database.
-.\"The DB_LOCK and DB_SHMEM flags must be set as well.
-.P
-The
-.I type
-argument is of type
-.I DBTYPE
-(as defined in the
-.I <db.h>
-include file) and
-may be set to
-.BR DB_BTREE ,
-.BR DB_HASH ,
-or
-.BR DB_RECNO .
-.P
-The
-.I openinfo
-argument is a pointer to an access-method-specific structure described
-in the access method's manual page.
-If
-.I openinfo
-is NULL, each access method will use defaults appropriate for the system
-and the access method.
-.P
-.BR dbopen ()
-returns a pointer to a
-.I DB
-structure on success and NULL on error.
-The
-.I DB
-structure is defined in the
-.I <db.h>
-include file, and contains at
-least the following fields:
-.P
-.in +4n
-.EX
-typedef struct {
- DBTYPE type;
- int (*close)(const DB *db);
- int (*del)(const DB *db, const DBT *key, unsigned int flags);
- int (*fd)(const DB *db);
- int (*get)(const DB *db, DBT *key, DBT *data,
- unsigned int flags);
- int (*put)(const DB *db, DBT *key, const DBT *data,
- unsigned int flags);
- int (*sync)(const DB *db, unsigned int flags);
- int (*seq)(const DB *db, DBT *key, DBT *data,
- unsigned int flags);
-} DB;
-.EE
-.in
-.P
-These elements describe a database type and a set of functions performing
-various actions.
-These functions take a pointer to a structure as returned by
-.BR dbopen (),
-and sometimes one or more pointers to key/data structures and a flag value.
-.TP
-.I type
-The type of the underlying access method (and file format).
-.TP
-.I close
-A pointer to a routine to flush any cached information to disk, free any
-allocated resources, and close the underlying file(s).
-Since key/data pairs may be cached in memory, failing to sync the file
-with a
-.I close
-or
-.I sync
-function may result in inconsistent or lost information.
-.I close
-routines return \-1 on error (setting
-.IR errno )
-and 0 on success.
-.TP
-.I del
-A pointer to a routine to remove key/data pairs from the database.
-.IP
-The argument
-.I flag
-may be set to the following value:
-.RS
-.TP
-.B R_CURSOR
-Delete the record referenced by the cursor.
-The cursor must have previously been initialized.
-.RE
-.IP
-.I delete
-routines return \-1 on error (setting
-.IR errno ),
-0 on success, and 1 if the specified
-.I key
-was not in the file.
-.TP
-.I fd
-A pointer to a routine which returns a file descriptor representative
-of the underlying database.
-A file descriptor referencing the same file will be returned to all
-processes which call
-.BR dbopen ()
-with the same
-.I file
-name.
-This file descriptor may be safely used as an argument to the
-.BR fcntl (2)
-and
-.BR flock (2)
-locking functions.
-The file descriptor is not necessarily associated with any of the
-underlying files used by the access method.
-No file descriptor is available for in memory databases.
-.I fd
-routines return \-1 on error (setting
-.IR errno ),
-and the file descriptor on success.
-.TP
-.I get
-A pointer to a routine which is the interface for keyed retrieval from
-the database.
-The address and length of the data associated with the specified
-.I key
-are returned in the structure referenced by
-.IR data .
-.I get
-routines return \-1 on error (setting
-.IR errno ),
-0 on success, and 1 if the
-.I key
-was not in the file.
-.TP
-.I put
-A pointer to a routine to store key/data pairs in the database.
-.IP
-The argument
-.I flag
-may be set to one of the following values:
-.RS
-.TP
-.B R_CURSOR
-Replace the key/data pair referenced by the cursor.
-The cursor must have previously been initialized.
-.TP
-.B R_IAFTER
-Append the data immediately after the data referenced by
-.IR key ,
-creating a new key/data pair.
-The record number of the appended key/data pair is returned in the
-.I key
-structure.
-(Applicable only to the
-.B DB_RECNO
-access method.)
-.TP
-.B R_IBEFORE
-Insert the data immediately before the data referenced by
-.IR key ,
-creating a new key/data pair.
-The record number of the inserted key/data pair is returned in the
-.I key
-structure.
-(Applicable only to the
-.B DB_RECNO
-access method.)
-.TP
-.B R_NOOVERWRITE
-Enter the new key/data pair only if the key does not previously exist.
-.TP
-.B R_SETCURSOR
-Store the key/data pair, setting or initializing the position of the
-cursor to reference it.
-(Applicable only to the
-.B DB_BTREE
-and
-.B DB_RECNO
-access methods.)
-.RE
-.IP
-.B R_SETCURSOR
-is available only for the
-.B DB_BTREE
-and
-.B DB_RECNO
-access
-methods because it implies that the keys have an inherent order
-which does not change.
-.IP
-.B R_IAFTER
-and
-.B R_IBEFORE
-are available only for the
-.B DB_RECNO
-access method because they each imply that the access method is able to
-create new keys.
-This is true only if the keys are ordered and independent, record numbers
-for example.
-.IP
-The default behavior of the
-.I put
-routines is to enter the new key/data pair, replacing any previously
-existing key.
-.IP
-.I put
-routines return \-1 on error (setting
-.IR errno ),
-0 on success, and 1 if the
-.B R_NOOVERWRITE
-.I flag
-was set and the key already exists in the file.
-.TP
-.I seq
-A pointer to a routine which is the interface for sequential
-retrieval from the database.
-The address and length of the key are returned in the structure
-referenced by
-.IR key ,
-and the address and length of the data are returned in the
-structure referenced
-by
-.IR data .
-.IP
-Sequential key/data pair retrieval may begin at any time, and the
-position of the "cursor" is not affected by calls to the
-.IR del ,
-.IR get ,
-.IR put ,
-or
-.I sync
-routines.
-Modifications to the database during a sequential scan will be reflected
-in the scan, that is,
-records inserted behind the cursor will not be returned
-while records inserted in front of the cursor will be returned.
-.IP
-The flag value
-.B must
-be set to one of the following values:
-.RS
-.TP
-.B R_CURSOR
-The data associated with the specified key is returned.
-This differs from the
-.I get
-routines in that it sets or initializes the cursor to the location of
-the key as well.
-(Note, for the
-.B DB_BTREE
-access method, the returned key is not necessarily an
-exact match for the specified key.
-The returned key is the smallest key greater than or equal to the specified
-key, permitting partial key matches and range searches.)
-.TP
-.B R_FIRST
-The first key/data pair of the database is returned, and the cursor
-is set or initialized to reference it.
-.TP
-.B R_LAST
-The last key/data pair of the database is returned, and the cursor
-is set or initialized to reference it.
-(Applicable only to the
-.B DB_BTREE
-and
-.B DB_RECNO
-access methods.)
-.TP
-.B R_NEXT
-Retrieve the key/data pair immediately after the cursor.
-If the cursor is not yet set, this is the same as the
-.B R_FIRST
-flag.
-.TP
-.B R_PREV
-Retrieve the key/data pair immediately before the cursor.
-If the cursor is not yet set, this is the same as the
-.B R_LAST
-flag.
-(Applicable only to the
-.B DB_BTREE
-and
-.B DB_RECNO
-access methods.)
-.RE
-.IP
-.B R_LAST
-and
-.B R_PREV
-are available only for the
-.B DB_BTREE
-and
-.B DB_RECNO
-access methods because they each imply that the keys have an inherent
-order which does not change.
-.IP
-.I seq
-routines return \-1 on error (setting
-.IR errno ),
-0 on success and 1 if there are no key/data pairs less than or greater
-than the specified or current key.
-If the
-.B DB_RECNO
-access method is being used, and if the database file
-is a character special file and no complete key/data pairs are currently
-available, the
-.I seq
-routines return 2.
-.TP
-.I sync
-A pointer to a routine to flush any cached information to disk.
-If the database is in memory only, the
-.I sync
-routine has no effect and will always succeed.
-.IP
-The flag value may be set to the following value:
-.RS
-.TP
-.B R_RECNOSYNC
-If the
-.B DB_RECNO
-access method is being used, this flag causes
-the sync routine to apply to the btree file which underlies the
-recno file, not the recno file itself.
-(See the
-.I bfname
-field of the
-.BR recno (3)
-manual page for more information.)
-.RE
-.IP
-.I sync
-routines return \-1 on error (setting
-.IR errno )
-and 0 on success.
-.SS Key/data pairs
-Access to all file types is based on key/data pairs.
-Both keys and data are represented by the following data structure:
-.P
-.in +4n
-.EX
-typedef struct {
- void *data;
- size_t size;
-} DBT;
-.EE
-.in
-.P
-The elements of the
-.I DBT
-structure are defined as follows:
-.TP
-.I data
-A pointer to a byte string.
-.TP
-.I size
-The length of the byte string.
-.P
-Key and data byte strings may reference strings of essentially unlimited
-length although any two of them must fit into available memory at the same
-time.
-It should be noted that the access methods provide no guarantees about
-byte string alignment.
-.SH ERRORS
-The
-.BR dbopen ()
-routine may fail and set
-.I errno
-for any of the errors specified for the library routines
-.BR open (2)
-and
-.BR malloc (3)
-or the following:
-.TP
-.B EFTYPE
-A file is incorrectly formatted.
-.TP
-.B EINVAL
-A parameter has been specified (hash function, pad byte, etc.) that is
-incompatible with the current file specification or which is not
-meaningful for the function (for example, use of the cursor without
-prior initialization) or there is a mismatch between the version
-number of file and the software.
-.P
-The
-.I close
-routines may fail and set
-.I errno
-for any of the errors specified for the library routines
-.BR close (2),
-.BR read (2),
-.BR write (2),
-.BR free (3),
-or
-.BR fsync (2).
-.P
-The
-.IR del ,
-.IR get ,
-.IR put ,
-and
-.I seq
-routines may fail and set
-.I errno
-for any of the errors specified for the library routines
-.BR read (2),
-.BR write (2),
-.BR free (3),
-or
-.BR malloc (3).
-.P
-The
-.I fd
-routines will fail and set
-.I errno
-to
-.B ENOENT
-for in memory databases.
-.P
-The
-.I sync
-routines may fail and set
-.I errno
-for any of the errors specified for the library routine
-.BR fsync (2).
-.SH BUGS
-The typedef
-.I DBT
-is a mnemonic for "data base thang", and was used
-because no one could think of a reasonable name that wasn't already used.
-.P
-The file descriptor interface is a kludge and will be deleted in a
-future version of the interface.
-.P
-None of the access methods provide any form of concurrent access,
-locking, or transactions.
-.SH SEE ALSO
-.BR btree (3),
-.BR hash (3),
-.BR mpool (3),
-.BR recno (3)
-.P
-.IR "LIBTP: Portable, Modular Transactions for UNIX" ,
-Margo Seltzer, Michael Olson, USENIX proceedings, Winter 1992.