gd_rewrite_fragment (3)
NAME
gd_rewrite_fragment --- re-write a dirfile format specification fragmentSYNOPSIS
#include <getdata.h>- int gd_rewrite_fragment(DIRFILE *dirfile, int fragment);
DESCRIPTION
In addition to being simply a valid fragment index, fragment may also be the special value GD_ALL_FRAGMENTS, which indicates that all fragments should be rewritten.
Metadata is written to disk using the current Standards Version as stored in the dirfile object. See gd_dirfile_standards(3) to change or report the current Standards Version. If the dirfile metadata conforms to no known Standards Version, a Standards non-compliant fragment will be written.
RETURN VALUE
On success, zero is returned. On error, -1 is returned and the dirfile error is set to a non-zero error value. Possible error values are:- GD_E_ACCMODE
- The supplied dirfile was opened in read-only mode.
- GD_E_BAD_DIRFILE
- The supplied dirfile was invalid.
- GD_E_BAD_INDEX
- The supplied fragment index was out of range.
- GD_E_FLUSH
- A temporary file could not be opened into which to write the modified metadata, or renaming the temporary file over the original fragment failed.
- GD_E_INTERNAL_ERROR
- An internal error occurred in the library while trying to perform the task. This indicates a bug in the library. Please report the incident to the maintainer.
The dirfile error may be retrieved by calling gd_error(3). A descriptive error string for the last error encountered can be obtained from a call to gd_error_string(3).
BUGS
When writing metadata using Standards Version 4 or earlier, the reference field may change, owing to the lack of a /REFERENCE directive. A work-around is to upgrade to Standards Version 5 or later.SEE ALSO
gd_open(3), gd_close(3), gd_dirfile_standards(3), gd_error(3), gd_error_string(3), gd_flush(3), gd_metaflush(3)