Provided by: libgetdata-doc_0.9.0-2.2_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
       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.  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).

SEE ALSO

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