The following function should be used very seldom.
Reorganizes the database.
The parameter is:
The pointer returned by
If you have had a lot of deletions and would like to shrink the space
used by the
gdbm file, this function will reorganize the database.
This results, in particular, in shortening the length of a
file by removing the space occupied by deleted records.
This reorganization requires creating a new file and inserting all the elements in the old file dbf into the new file. The new file is then renamed to the same name as the old file and dbf is updated to contain all the correct information about the new file. If an error is detected, the return value is negative. The value zero is returned after a successful reorganization.
Notice, that calling this function disables crash tolerance,
reverting the effect of the recent
You will have to call
gdbm_failure_atomic again after
gdbm_reorganize returns successfully. This will be fixed in