Retrieves the metadata for an object specified by an identifier
herr_t H5Oget_info( hid_t object_id, H5O_info_t *object_info )
herr_t H5Oget_info( hid_t object_id, H5O_info_t *object_info, unsigned int fields)
SUBROUTINE h5oget_info_f(object_id, object_info, hdferr) USE, INTRINSIC :: ISO_C_BINDING IMPLICIT NONE INTEGER(HID_T) , INTENT(IN) :: object_id TYPE(h5o_info_t), INTENT(OUT), TARGET :: object_info INTEGER , INTENT(OUT) :: hdferr
Related Fortran2003 Derived Type: h5o_info_t
TYPE, BIND(C) :: space_t INTEGER(hsize_t) :: total ! Total space for storing object header in file INTEGER(hsize_t) :: meta ! Space within header for object header metadata ! information INTEGER(hsize_t) :: mesg ! Space within header for actual message ! information INTEGER(hsize_t) :: free ! Free space within object header END TYPE space_t TYPE, BIND(C) :: mesg_t INTEGER(c_int64_t) :: present ! Flags to indicate presence of message type ! in header INTEGER(c_int64_t) :: shared ! Flags to indicate message type is shared ! in header END TYPE mesg_t TYPE, BIND(C) :: hdr_t INTEGER :: version ! Version number of header format in file INTEGER :: nmesgs ! Number of object header messages INTEGER :: nchunks ! Number of object header chunks INTEGER :: flags ! Object header status flags TYPE(space_t) :: space TYPE(mesg_t) :: mesg END TYPE hdr_t ! Extra metadata storage for obj & attributes TYPE, BIND(C) :: H5_ih_info_t INTEGER(hsize_t) :: index_size ! btree and/or list INTEGER(hsize_t) :: heap_size END TYPE H5_ih_info_t TYPE, BIND(C) :: meta_size_t TYPE(H5_ih_info_t) :: obj ! v1/v2 B-tree & local/fractal heap for ! groups, B-tree for chunked datasets TYPE(H5_ih_info_t) :: attr ! v2 B-tree & heap for attributes ENDTYPE meta_size_t TYPE, BIND(C) :: h5o_info_t INTEGER(C_LONG) :: fileno ! File number that object is located in INTEGER(haddr_t) :: addr ! Object address in file INTEGER(C_INT) :: type ! Basic object type (group, dataset, etc.) INTEGER :: rc ! Reference count of object INTEGER, DIMENSION(8) :: atime ! Access time ! -- NOTE -- INTEGER, DIMENSION(8) :: mtime ! Modification time ! Returns an integer INTEGER, DIMENSION(8) :: ctime ! Change time ! array as specified INTEGER, DIMENSION(8) :: btime ! Birth time ! in Fortran intrinsic ! DATE_AND_TIME(VALUES) INTEGER(hsize_t) :: num_attrs ! # of attributes attached to object TYPE(hdr_t) :: hdr TYPE(meta_size_t) :: meta_size END TYPE h5o_info_t
In HDF5-1.10, H5O_GET_INFO is identical to H5O_GET_INFO1.
Such macros are provided to facilitate application compatibility. Their use and mappings are fully described in API Compatibility Macros in HDF5; we urge you to read that document closely.
If the library and/or application is compiled for Release 1.8 or 1.10 emulation, H5O_GET_INFO will be mapped to H5O_GET_INFO1. With later versions, H5O_GET_INFO is mapped to H5O_GET_INFO2 (and H5O_GET_INFO1 is deprecated).
Specific compile-time compatibility flags and the resulting mappings are as follows:
|No compatibility flag|
|Emulate Release 1.8 interface|
|Emulate Release 1.10 interface|
|Emulate Releases after 1.10|
If you are iterating through a lot of different objects to retrieve information via the H5O_GET_INFO family of routines, you may see memory building up. This can be due to memory allocation for metadata such as object headers and messages when the iterated objects are put into the metadata cache.
If the memory buildup is not desirable, you can configure a smaller cache via H5F_SET_MDC_CONFIG or set the file access property list via H5P_SET_MDC_CONFIG. A smaller sized cache will force metadata entries to be evicted from the cache, thus freeing the memory associated with the entries.
|1.12.0||The function |
|1.10.5||The macro |
|1.8.15||Added a note about the valid values for the |
|1.8.11||Fortran subroutine introduced in this release.|
|1.8.10||Added H5O_type_t structure to the Description section.|
Separated H5O_hdr_info_t structure from H5O_info_t in the Description section.
Clarified the definition and implementation of the time fields.
|1.8.0||Function introduced in this release.|