aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/gdbm.texi21
1 files changed, 17 insertions, 4 deletions
diff --git a/doc/gdbm.texi b/doc/gdbm.texi
index d172ad7..8096215 100644
--- a/doc/gdbm.texi
+++ b/doc/gdbm.texi
@@ -260,5 +260,10 @@ constructs. It is the size of a single transfer from disk to
memory. This parameter is ignored if the file has been previously
-initialized. The minimum size is 512. If the value is less than 512,
-the file system block size is used, otherwise the value of
-@var{block_size} is used.
+initialized. If the value is less than 512, the file system block
+size is used instead. The size is adjusted so that the block can hold
+exact number of directory entries, so that the effective block size
+can be slightly greater than requested. However, if the
+@samp{GDBM_BSEXACT} flag is set and the size needs to be adjusted, the
+function will return with error status, setting the @samp{gdbm_errno}
+variable to @samp{GDBM_BLOCK_SIZE_ERROR}.
+
@item flags
@@ -289,2 +294,8 @@ now obsolete, since @code{gdbm} defaults to no-sync mode.
+@kwindex GDBM_BSEXACT
+If this flag is set and the requested @var{block_size} cannot be used
+without adjustment, @code{gdbm_open} will refuse to create the
+databases. In this case it will set the @samp{gdbm_errno}
+variable to @samp{GDBM_BLOCK_SIZE_ERROR} and return @samp{NULL}.
+
@kwindex GDBM_CLOEXEC
@@ -1235,5 +1246,7 @@ Memory allocation failed. Not enough memory.
@kwindex GDBM_BLOCK_SIZE_ERROR
+@kwindex GDBM_BSEXACT
@item GDBM_BLOCK_SIZE_ERROR
This error is set by the @code{gdbm_open} function (@pxref{Open}), if
-the value of its @var{block_size} argument is incorrect.
+the value of its @var{block_size} argument is incorrect and the
+@samp{GDBM_BSEXACT} flag is set.

Return to:

Send suggestions and report system problems to the System administrator.