SIMPLE SOLUTIONS

GD_FLUSH(3) - man page online | library functions

Write all pending dirfile changes to disk or close open raw fields.

Chapter
16 October 2014
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 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. 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 encod‐ ing 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. The I/O pointer of any RAW field which is closed is reset to the beginning-of- field. 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 op‐ erations 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 database. GD_E_BAD_DIRFILE The supplied dirfile was invalid. GD_E_IO An I/O error occurred while trying to write modified data or metadata to disk. 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. GD_E_RECURSE_LEVEL Too many levels of recursion were encountered while trying to resolve field_code. This usually indicates a circular dependency in field specification in the dirfile. 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)
Version 0.9.0 16 October 2014 gd_flush(3)
This manual Reference Other manuals
gd_flush(3) referred by dirfile-encoding(5) | gd_cbopen(3) | gd_close(3) | gd_flags(3) | gd_getdata(3) | gd_metaflush(3) | gd_rewrite_fragment(3)
refer to gd_cbopen(3) | gd_close(3) | gd_dirfile_standards(3) | gd_error(3) | gd_error_string(3) | gd_metaflush(3)