\section{Built-in Module \sectcode{gdbm}}
\bimodindex{gdbm}

Gdbm provides python programs with an interface to the GNU \code{gdbm}
database library.  Gdbm objects are of the mapping type, so they can be
handled just like objects of the built-in \dfn{dictionary} type,
except that keys and values are always strings, and printing a gdbm
object doesn't print the keys and values.

The module is based on the Dbm module, modified to use GDBM instead.

The module defines the following constant and functions:

\renewcommand{\indexsubitem}{(in module gdbm)}
\begin{excdesc}{error}
Raised on gdbm-specific errors, such as I/O errors. \code{KeyError} is
raised for general mapping errors like specifying an incorrect key.
\end{excdesc}

\begin{funcdesc}{open}{filename\, rwmode\, filemode}
Open a gdbm database and return a mapping object. \var{filename} is
the name of the database file, \var{rwmode} is \code{'r'}, \code{'w'},
\code{'c'}, or \code{'n'} for reader, writer (this also gives read
access), create (writer, but create the database if it doesnt already
exist) and newdb (which will always create a new database). Only one
writer may open a gdbm file and many readers may open the file. Readers
and writers can not open the gdbm file at the same time. Note that the
\code{GDBM_FAST} mode of opening the database is not supported. \var{filemode} 
is the unix mode of the file, used only when a database is created.
\end{funcdesc}
