| \section{\module{dbm} --- |
| Simple ``database'' interface} |
| |
| \declaremodule{builtin}{dbm} |
| \platform{Unix} |
| \modulesynopsis{The standard ``database'' interface, based on ndbm.} |
| |
| |
| The \module{dbm} module provides an interface to the \UNIX{} |
| (\code{n})\code{dbm} library. Dbm objects behave like mappings |
| (dictionaries), except that keys and values are always strings. |
| Printing a dbm object doesn't print the keys and values, and the |
| \method{items()} and \method{values()} methods are not supported. |
| |
| This module can be used with the ``classic'' ndbm interface, the BSD |
| DB compatibility interface, or the GNU GDBM compatibility interface. |
| On \UNIX, the \program{configure} script will attempt to locate the |
| appropriate header file to simplify building this module. |
| |
| The module defines the following: |
| |
| \begin{excdesc}{error} |
| Raised on dbm-specific errors, such as I/O errors. |
| \exception{KeyError} is raised for general mapping errors like |
| specifying an incorrect key. |
| \end{excdesc} |
| |
| \begin{datadesc}{library} |
| Name of the \code{ndbm} implementation library used. |
| \end{datadesc} |
| |
| \begin{funcdesc}{open}{filename\optional{, flag\optional{, mode}}} |
| Open a dbm database and return a dbm object. The \var{filename} |
| argument is the name of the database file (without the \file{.dir} or |
| \file{.pag} extensions; note that the BSD DB implementation of the |
| interface will append the extension \file{.db} and only create one |
| file). |
| |
| The optional \var{flag} argument must be one of these values: |
| |
| \begin{tableii}{c|l}{code}{Value}{Meaning} |
| \lineii{'r'}{Open existing database for reading only (default)} |
| \lineii{'w'}{Open existing database for reading and writing} |
| \lineii{'c'}{Open database for reading and writing, creating it if |
| it doesn't exist} |
| \lineii{'n'}{Always create a new, empty database, open for reading |
| and writing} |
| \end{tableii} |
| |
| The optional \var{mode} argument is the \UNIX{} mode of the file, used |
| only when the database has to be created. It defaults to octal |
| \code{0666}. |
| \end{funcdesc} |
| |
| |
| \begin{seealso} |
| \seemodule{anydbm}{Generic interface to \code{dbm}-style databases.} |
| \seemodule{gdbm}{Similar interface to the GNU GDBM library.} |
| \seemodule{whichdb}{Utility module used to determine the type of an |
| existing database.} |
| \end{seealso} |