Provided by: libgetdata-doc_0.11.0-13_all bug

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 NULL is passed to gd_sync() as field_code, 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 operations if may be different than  mak‐
       ing the two explicit calls.

RETURN VALUE

       On  success, these functions return zero.   On error, a negative-valued error code is returned.  Possible
       error codes 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 max‐
               imum allowed length.  On most platforms, the maximum length is at least 2**31 bytes, so this typ‐
               ically 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  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).

HISTORY

       The dirfile_flush() function appeared in GetData-0.3.0.

       In GetData-0.7.0, this function was renamed to gd_flush().

       The gd_raw_close() and gd_sync() functions appeared in GetData-0.8.0.

       In GetData-0.10.0, the error return from these functions changed from -1 to a negative-valued error code.

SEE ALSO

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

Version 0.10.0                                  25 December 2016                                     gd_flush(3)