gd_flush(3) GETDATA gd_flush(3)NAME
gd_flush gd_raw_close gd_sync — write all pending dirfile changes to
disk or close open raw fields
SYNOPSIS
#include <getdata.h>
int gd_flush(DIRFILE *dirfile, const char *field_code);
int gd_raw_close(DIRFILE *dirfile, const char *field_code);
int gd_sync(DIRFILE *dirfile, const char *field_code);
DESCRIPTION
The gd_sync() function flushes all pending writes to disk of raw data
files associated with field_code, or its input(s), in the dirfile spec‐
ified 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. In this special case, modified
metadata will also be flushed to disk as if gd_metaflush(3) had been
called. If the dirfile has been opened read-only, this function does
nothing. Additionally, some encoding schemes may implement this as a
NOP.
The gd_raw_close() function closes any raw data files which GetData has
opened associated with field_code, or its input(s). Again, if
field_code is NULL, all open data files are closed.
Calling gd_flush() is essentially equivalent to calling first gd_sync()
and then gd_raw_close() (ie. it does both tasks), although, if
field_code is NULL, the order of operations if may be different than
making the two explicit calls.
RETURN VALUE
On success, these functions return zero. On error, -1 is returned and
the dirfile error is set to a non-zero error value. Possible error
values are:
GD_E_ALLOC
The library was unable to allocate memory.
GD_E_BAD_CODE
The field specified by field_code was not found in the data‐
base.
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
(Not gd_raw_close().) A temporary file could not be opened in‐
to which to write the modified metadata, or renaming the tempo‐
rary 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).
GD_E_RECURSE_LEVEL
Too many levels of recursion were encountered while trying to
resolve field_code. This usually indicates a circular depen‐
dency in field specification in the dirfile.
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).
SEE ALSOgd_open(3), gd_close(3), gd_dirfile_standards(3), gd_error(3), gd_er‐
ror_string(3), gd_metaflush(3)Version 0.8.0 15 March 2012 gd_flush(3)