Page tree

The license could not be verified: License Certificate has expired!

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

 

JAVA

FORTRAN

C++

C

 

Link

H5F_GET_FREE_SECTIONS

Retrieves free-space section information for a file. 

Procedure:

H5F_GET_FREE_SECTIONS(fcpl_id, type, nsects, sect_info)

Signature:

ssize_t H5Fget_free_sections( hid_t fcpl_id, H5F_mem_t type, size_t nsects, H5F_sect_info_t * sect_info )

Parameters:
hid_t fcpl_id    IN: The file creation property list identifier.
H5F_mem_t type    IN: The file memory allocation type.

Valid values are as follows:

H5FD_MEM_DEFAULT  The default file memory allocation type.
H5FD_MEM_SUPERFile memory allocated for Superblock.
H5FD_MEM_BTREEFile memory allocated for B-tree.
H5FD_MEM_DRAWFile memory allocated for raw data.
H5FD_MEM_GHEAPFile memory allocated for Global Heap.
H5FD_MEM_LHEAPFile memory allocated for Local Heap.
H5FD_MEM_OHDRFile memory allocated for Object Header.

 

There are other file memory allocation types that are mapped to the above six basic types.

hsize_t nsects IN: The number of free-space sections.
H5F_sect_info_t *sect_info IN/OUT: Pointer to instances of H5F_sect_info_t in which the free-space section information is to be returned.

An H5F_sect_info_t struct is defined as follows (in H5Fpublic.h):

        typedef struct H5F_sect_info_t {
            haddr_t     addr;     /* address of the     */
                                  /* free-space section */
            hsize_t     size;     /* size of the        */
                                  /* free-space section */
        } H5F_sect_info_t;

Description:

H5Fget_free_sections retrieves free-space section information for the free-space manager with type that is associated with file fcpl_id. If type is H5FD_MEM_DEFAULT, this routine retrieves free-space section information for all the free-space managers in the file.

This routine retrieves free-space section information for nsects sections or at most the maximum number of sections in the specified free-space manager. If the number of sections is not known, a preliminary H5Fget_free_sections() call can be made by setting sect_info to NULL and the total number of free-space sections for the specified free-space manager will be returned. Users can then allocate space for entries in sect_info, each of which is defined as an H5F_sect_info_t struct (see Parameters section).

Returns:

Returns the number of free-space sections for the specified free-space manager in the file; otherwise returns a negative value. 

Failure Modes:

This routine will fail when the following is true:

  • The library fails to retrieve the file creation property list associated with fcpl_id.
  • If the parameter sect_info is nonnull, but the parameter nsects is equal to 0.
  • The library fails to retrieve free-space section information for the file associated with the file creation property list fcpl_id.

Example:

Example Usage:

The first example shows that the first call to H5Fget_free_sections() returns the total number of free-space sections in nsects for all the free-space managers in the file that is associated with fcpl. The second call to H5Fget_free_sections() retrieves free-space section information in sect_info for nsects sections. The value in ret is the same as nsects.

nsects = H5Fget_free_sections(fcpl, H5FD_MEM_DEFAULT, 0, NULL);
:
: Allocate space for entries in sect_info
:
ret = H5F_get_free_sections(fcpl, H5FD_MEM_DEFAULT, nsects, sect_info);

 

The second example shows that the first call to H5Fget_free_sections() returns the total number of free-space sections in nsects for the H5FD_MEM_SUPER free-space manager in the file that is associated with fcpl. Even though there are nsects sections for the specified free-space manager, the second call to H5Fget_free_sections() retrieves free-space section information in sect_info for nsects-1 sections as requested. The value in ret is the same as nsects.

nsects = H5Fget_free_sections(fcpl, H5FD_MEM_SUPER, 0, NULL);
:
: Allocate space for entries in sect_info
:
ret = H5F_get_free_sections(fcpl, H5FD_MEM_SUPER, nsects-1, sect_info);

 

The third example shows that the first call to H5Fget_free_sections() returns the total number of free-space sections in nsects for the H5FD_MEM_BTREE free-space manager in the file that is associated with fcpl. Even though the second call to H5Fget_free_sections() requests nsects+1sections, the routine retrieves free-space section information in sect_info for only nsects sections. The value in ret is the same as nsects.

nsects = H5Fget_free_sections(fcpl, H5FD_MEM_BTREE, 0, NULL);
:
: Allocate space for entries in sect_info
:
ret = H5F_get_free_sections(fcpl, H5FD_MEM_BTREE, nsects+1, sect_info);

examples / h5_subset.c [32:42]  1.10/master  HDFFV/hdf5
int
main (void)
{
    hsize_t     dims[2], dimsm[2];   
    int         data[DIM0][DIM1];           /* data to write */
    int         sdata[DIM0_SUB][DIM1_SUB];  /* subset to write */
    int         rdata[DIM0][DIM1];          /* buffer for read */
 
    hid_t       file_id, dataset_id;        /* handles */
    hid_t       dataspace_id, memspace_id; 

     PROGRAM COMPOUNDEXAMPLE

     USE HDF5 ! This module contains all necessary modules

     IMPLICIT NONE

     CHARACTER(LEN=11), PARAMETER :: filename = "compound.h5" ! File name
     CHARACTER(LEN=8), PARAMETER :: dsetname = "Compound"     ! Dataset name
     INTEGER, PARAMETER :: dimsize = 6 ! Size of the dataset

     INTEGER(HID_T) :: file_id       ! File identifier

c++ / examples / create.cpp [33:43]  1.10/master  HDFFV/hdf5
int main (void)
{
   /*
    * Data initialization.
    */
   int i, j;
   int data[NX][NY];          // buffer for data to write
   for (j = 0; j < NX; j++)
   {
      for (i = 0; i < NY; i++)

public class H5Ex_D_Chunk {
    private static String FILENAME = "H5Ex_D_Chunk.h5";
    private static String DATASETNAME = "DS1";
    private static final int DIM_X = 6;
    private static final int DIM_Y = 8;
    private static final int CHUNK_X = 4;
    private static final int CHUNK_Y = 4;
    private static final int RANK = 2;
    private static final int NDIMS = 2;

History:
Release    Change
1.10.0C function introduced in this release.

--- Last Modified: November 08, 2017 | 08:05 AM