Provided by: libgetdata-doc_0.11.0-14_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 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.   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,  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 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  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)