gd_flush(3)

NAME
gd_flush — write all pending dirfile changes to disk.

SYNOPSIS
#include <getdata.h>

int gd_flush(DIRFILE *dirfile, const char *field_code);

DESCRIPTION
The gd_flush() function flushes and closes all file handles associated with field_code, or its input(s), in the dirfile specified by dirfile. If the field_code contains a valid representation suffix, it will be ignored. As a special case, if field_code is NULL, all fields in dirfile will be flushed and closed. In this special case, modified metadata will also be flushed to disk as if gd_metaflush(3) had been called.

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_BAD_CODE
    The field specified by field_code was not found in the database.

GD_E_BAD_DIRFILE
    The supplied dirfile was invalid.

GD_E_BAD_REPR
    The representation suffix specified in field_code was not recognised.

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. Only returned when field_code is NULL.

GD_E_RAW_IO
    An error occurred while trying to flush or close the field(s).

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).

SEE ALSO
gd_open(3), gd_close(3), gd_dirfile_standards(3), gd_error(3), gd_error_string(3), gd_metaflush(3)