Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3c2a056

Browse files
committed
Extensive changes by AMK.
1 parent 5320998 commit 3c2a056

2 files changed

Lines changed: 154 additions & 8 deletions

File tree

Doc/lib/libgdbm.tex

Lines changed: 77 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,81 @@
11
\section{Built-in Module \sectcode{gdbm}}
2+
\label{module-gdbm}
23
\bimodindex{gdbm}
34

4-
This module is nearly identical to the \code{dbm} module, but uses
5-
GDBM instead. Its interface is identical, and not repeated here.
6-
7-
Warning: the file formats created by gdbm and dbm are incompatible.
5+
This module is quite similar to the \code{dbm} module, but uses {\sc gdbm}
6+
instead to provide some additional functionality. Please note that
7+
the file formats created by {\sc gdbm} and dbm are incompatible.
88
\bimodindex{dbm}
9+
10+
The \code{gdbm} module provides an interface to the GNU DBM
11+
library. {\sc gdbm} objects behave like mappings
12+
(dictionaries), except that keys and values are always strings.
13+
Printing a {\sc gdbm} object doesn't print the keys and values, and the
14+
\code{items()} and \code{values()} methods are not supported.
15+
16+
The module defines the following constant and functions:
17+
18+
\renewcommand{\indexsubitem}{(in module dbm)}
19+
\begin{excdesc}{error}
20+
Raised on dbm-specific errors, such as I/O errors. \code{KeyError} is
21+
raised for general mapping errors like specifying an incorrect key.
22+
\end{excdesc}
23+
24+
\begin{funcdesc}{open}{filename\, \optional{flag\, \optional{mode}}}
25+
Open a dbm database and return a dbm object. The \var{filename}
26+
argument is the name of the database file (without the \file{.dir} or
27+
\file{.pag} extensions).
28+
29+
The optional \var{flag} argument can be
30+
\code{'r'} (to open an existing database for reading only --- default),
31+
\code{'w'} (to open an existing database for reading and writing),
32+
\code{'c'} (which creates the database if it doesn't exist), or
33+
\code{'n'} (which always creates a new empty database).
34+
35+
Appending \code{f} to the flag opens the database in fast mode;
36+
altered data will not automatically be written to the disk after every
37+
change. This results in faster writes to the database, but may result
38+
in an inconsistent database if the program crashes while the database
39+
is still open. Use the \code{sync()} method to force any unwritten
40+
data to be written to the disk.
41+
42+
The optional \var{mode} argument is the \UNIX{} mode of the file, used
43+
only when the database has to be created. It defaults to octal
44+
\code{0666}.
45+
\end{funcdesc}
46+
47+
In addition to the dictionary-like methods, {\sc gdbm} objects have the
48+
following methods:
49+
50+
\begin{funcdesc}{firstkey}{}
51+
It's possible to loop over every key in the database using this method
52+
and the \code{nextkey()} method. The traversal is ordered by {\sc gdbm}'s
53+
internal hash values, and won't be sorted by the key values. This
54+
method returns the starting key.
55+
\end{funcdesc}
56+
57+
\begin{funcdesc}{nextkey}{key}
58+
Returns the key that follows \var{key} in the traversal. The
59+
following code prints every key in the database \code{db}, without having to
60+
create a list in memory that contains them all:
61+
\bcode\begin{verbatim}
62+
k=db.firstkey()
63+
while k!=None:
64+
print k
65+
k=db.nextkey(k)
66+
\end{verbatim}\ecode
67+
\end{funcdesc}
68+
69+
\begin{funcdesc}{reorganize}{}
70+
If you have carried out a lot of deletions and would like to shrink
71+
the space used by the {\sc gdbm} file, this routine will reorganize the
72+
database. {\sc gdbm} will not shorten the length of a database file except
73+
by using this reorganization; otherwise, deleted file space will be
74+
kept and reused as new (key,value) pairs are added.
75+
\end{funcdesc}
76+
77+
\begin{funcdesc}{sync}{}
78+
When the database has been opened in fast mode, this method forces any
79+
unwritten data to be written to the disk.
80+
\end{funcdesc}
81+

Doc/libgdbm.tex

Lines changed: 77 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,81 @@
11
\section{Built-in Module \sectcode{gdbm}}
2+
\label{module-gdbm}
23
\bimodindex{gdbm}
34

4-
This module is nearly identical to the \code{dbm} module, but uses
5-
GDBM instead. Its interface is identical, and not repeated here.
6-
7-
Warning: the file formats created by gdbm and dbm are incompatible.
5+
This module is quite similar to the \code{dbm} module, but uses {\sc gdbm}
6+
instead to provide some additional functionality. Please note that
7+
the file formats created by {\sc gdbm} and dbm are incompatible.
88
\bimodindex{dbm}
9+
10+
The \code{gdbm} module provides an interface to the GNU DBM
11+
library. {\sc gdbm} objects behave like mappings
12+
(dictionaries), except that keys and values are always strings.
13+
Printing a {\sc gdbm} object doesn't print the keys and values, and the
14+
\code{items()} and \code{values()} methods are not supported.
15+
16+
The module defines the following constant and functions:
17+
18+
\renewcommand{\indexsubitem}{(in module dbm)}
19+
\begin{excdesc}{error}
20+
Raised on dbm-specific errors, such as I/O errors. \code{KeyError} is
21+
raised for general mapping errors like specifying an incorrect key.
22+
\end{excdesc}
23+
24+
\begin{funcdesc}{open}{filename\, \optional{flag\, \optional{mode}}}
25+
Open a dbm database and return a dbm object. The \var{filename}
26+
argument is the name of the database file (without the \file{.dir} or
27+
\file{.pag} extensions).
28+
29+
The optional \var{flag} argument can be
30+
\code{'r'} (to open an existing database for reading only --- default),
31+
\code{'w'} (to open an existing database for reading and writing),
32+
\code{'c'} (which creates the database if it doesn't exist), or
33+
\code{'n'} (which always creates a new empty database).
34+
35+
Appending \code{f} to the flag opens the database in fast mode;
36+
altered data will not automatically be written to the disk after every
37+
change. This results in faster writes to the database, but may result
38+
in an inconsistent database if the program crashes while the database
39+
is still open. Use the \code{sync()} method to force any unwritten
40+
data to be written to the disk.
41+
42+
The optional \var{mode} argument is the \UNIX{} mode of the file, used
43+
only when the database has to be created. It defaults to octal
44+
\code{0666}.
45+
\end{funcdesc}
46+
47+
In addition to the dictionary-like methods, {\sc gdbm} objects have the
48+
following methods:
49+
50+
\begin{funcdesc}{firstkey}{}
51+
It's possible to loop over every key in the database using this method
52+
and the \code{nextkey()} method. The traversal is ordered by {\sc gdbm}'s
53+
internal hash values, and won't be sorted by the key values. This
54+
method returns the starting key.
55+
\end{funcdesc}
56+
57+
\begin{funcdesc}{nextkey}{key}
58+
Returns the key that follows \var{key} in the traversal. The
59+
following code prints every key in the database \code{db}, without having to
60+
create a list in memory that contains them all:
61+
\bcode\begin{verbatim}
62+
k=db.firstkey()
63+
while k!=None:
64+
print k
65+
k=db.nextkey(k)
66+
\end{verbatim}\ecode
67+
\end{funcdesc}
68+
69+
\begin{funcdesc}{reorganize}{}
70+
If you have carried out a lot of deletions and would like to shrink
71+
the space used by the {\sc gdbm} file, this routine will reorganize the
72+
database. {\sc gdbm} will not shorten the length of a database file except
73+
by using this reorganization; otherwise, deleted file space will be
74+
kept and reused as new (key,value) pairs are added.
75+
\end{funcdesc}
76+
77+
\begin{funcdesc}{sync}{}
78+
When the database has been opened in fast mode, this method forces any
79+
unwritten data to be written to the disk.
80+
\end{funcdesc}
81+

0 commit comments

Comments
 (0)