gd_rewrite_fragment(3) GETDATA gd_rewrite_fragment(3)NAMEgd_rewrite_fragment — re-write a dirfile format specification fragment
SYNOPSIS
#include <getdata.h>
int gd_rewrite_fragment(DIRFILE *dirfile, int fragment);
DESCRIPTION
The gd_rewrite_fragment() writes the format specification fragment
specified by fragment to disk, regardless of whether it has changed or
not, overwriting the existing file.
In addition to being simply a valid fragment index, fragment may also
be the special value GD_ALL_FRAGMENTS, which indicates that all frag‐
ments 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_ALLOC
The library was unable to allocate memory.
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.
The dirfile error may be retrieved by calling gd_error(3). A descrip‐
tive 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 refer‐
ence field may change, owing to the lack of a /REFERENCE directive. A
work-around is to upgrade to Standards Version 5 or later.
SEE ALSOgd_open(3), gd_close(3), gd_dirfile_standards(3), gd_error(3), gd_er‐
ror_string(3), gd_flush(3), gd_metaflush(3)Version 0.8.0 19 August 2011 gd_rewrite_fragment(3)