Flushes all buffers associated with a file to disk

Procedure:

H5F_FLUSH(object_id, scope)

Signature:

<pre><code class="language-c">herr_t H5Fflush(hid_t object_id, H5F_scope_t scope )</code></pre>

<pre><code class="language-fortran">SUBROUTINE h5fflush_f(obj_id, scope, hdferr)
  IMPLICIT NONE 
  INTEGER(HID_T), INTENT(IN)  :: obj_id      ! Object identifier
  INTEGER, INTENT(IN)         :: scope       ! Flag with two possible values:
                                             !     H5F_SCOPE_GLOBAL_F  
                                             !     H5F_SCOPE_LOCAL_F  
  INTEGER, INTENT(OUT)        :: hdferr      ! Error code 
                                             ! 0 on success and -1 on failure
END SUBROUTINE h5fflush_f</code></pre>

Parameters:
hid_t object_idIN: Identifier of object used to identify the file; may be a file, group, dataset, named datatype or attribute
H5F_scope_t scope    IN: Specifies the scope of the flushing action

Description:

H5F_FLUSH causes all buffers associated with a file to be immediately flushed to disk without removing the data from the cache.

object_id can be any object associated with the file, including the file itself, a dataset, a group, an attribute, or a named datatype.

scope specifies whether the scope of the flushing action is global or local. Valid values are as follows:

H5F_SCOPE_GLOBALFlushes the entire virtual file
H5F_SCOPE_LOCALFlushes only the specified file

HDF5 does not possess full control over buffering. H5F_FLUSH flushes the internal HDF5 buffers then asks the operating system (the OS) to flush the system buffers for the open files. After that, the OS is responsible for ensuring that the data is actually flushed to disk.

Returns:

Returns a non-negative value if successful; otherwise returns a negative value.

Example:

See the dsets.c (C) and fflush1.f90 (FORTRAN) tests in the HDF5 source code.