gd_rewrite_fragment3
Re-write a dirfile format specification fragment
Usage
#include <getdata.h>
int gd_rewrite_fragment(DIRFILE *dirfile, int fragment);
Overview
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 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, a negative-valued error code is returned. Possible error codes are:
.TP 8 GD_E_ACCMODE The supplied dirfile was opened in read-only mode.
.TP 8 GD_E_ALLOC The library was unable to allocate memory.
.TP 8 GD_E_BAD_DIRFILE The supplied dirfile was invalid.
.TP 8 GD_E_BAD_INDEX The supplied fragment index was out of range.
.TP 8 GD_E_IO An I/O error occurred while trying to write modified metadata to disk.
.TP 8 GD_E_LINE_TOO_LONG While attempting to flush modified metadata to disk, a field specification line exceeded the maximum allowed length. On most platforms, the maximum length is at least 2**31 bytes, so this typically indicates something pathological happening.
The error code is also stored in the DIRFILE object and may be retrieved after this function returns by calling gd_error(3). A descriptive error string for the error may be obtained by calling gd_error_string(3).
Releases
7 releases since Debian 7 (Wheezy); the text changed 2 times.