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);
- int gd_flush(DIRFILE *dirfile, const char *field_code);
DESCRIPTION
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 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 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).