Last modified: 11 May 2016
Name: H5Aopen_by_idx
Signature:
  hid_t `H5Aopen_by_idx`( hid_t `loc_id`, const char *`obj_name`, H5_index_t `idx_type`, H5_iter_order_t `order`, hsize_t `n`, hid_t `aapl_id`, hid_t `lapl_id` )

Purpose:
  Opens the nth attribute attached to an object.

Description:
  `H5Aopen_by_idx` opens an existing attribute that is attached to an object specified by location and name, `loc_id` and `obj_name`, respectively. If `loc_id` fully specifies the object to which the attribute is attached, `obj_name` should be `'.'` (a dot).

  The attribute is identified by an index type, an index traversal order, and a position in the index, `idx_type`, `order` and `n`, respectively. These parameters and their valid values are discussed in the description of `H5Aiterate2`.

  The attribute access property list, `aapl_id`, is currently unused and should currently be `H5P_DEFAULT`.

  The link access property list, `lapl_id`, may provide information regarding the properties of links required to access the object, `obj_name`. See “Link Access Properties” in the H5P APIs.

  This function, `H5Aopen`, or `H5Aopen_by_name` must be called before an attribute can be accessed for any further purpose, including reading, writing, or any modification.

  The attribute identifier returned by this function must be released with `H5Aclose` or resource leaks will develop.

Parameters:

  hid_t `loc_id` | IN: Location of object to which attribute is attached
  const char *`obj_name` | IN: Name of object to which attribute is attached, relative to location
  H5_index_t `idx_type` | IN: Type of index
  H5_iter_order_t `order` | IN: Index traversal order
  hsize_t `n` | IN: Attribute’s position in index
  hid_t `aapl_id` | IN: Attribute access property list
  hid_t `lapl_id` | IN: Link access property list

Returns:
  Returns an attribute identifier if successful; otherwise returns a negative value.

Fortran90 Interface: h5aopen_by_idx_f

      SUBROUTINE h5aopen_by_idx_f(loc_id, obj_name, idx_type, order, n, attr_id, &
           hdferr, aapl_id, lapl_id)
        IMPLICIT NONE
        INTEGER(HID_T), INTENT(IN) :: loc_id
                                    ! Object identifier
        CHARACTER(LEN=*), INTENT(IN) :: obj_name
                                    ! Name of object to which attribute is attached

        INTEGER, INTENT(IN) :: idx_type
                                    ! Type of index; Possible values are:
                                    !  H5_INDEX_UNKNOWN_F   - Unknown index type
                                    !  H5_INDEX_NAME_F      - Index on names
                                    !  H5_INDEX_CRT_ORDER_F - Index on creation order
                                    !  H5_INDEX_N_F	      - Number of indices defined
        INTEGER, INTENT(IN) :: order
                                    ! Order in which to iterate over index:
                                    !  H5_ITER_UNKNOWN_F  - Unknown order
                                    !  H5_ITER_INC_F      - Increasing order
                                    !  H5_ITER_DEC_F      - Decreasing order
                                    !  H5_ITER_NATIVE_F   - No particular order,
                                    !                       whatever is fastest

        INTEGER(HSIZE_T), INTENT(IN) :: n
                                    ! Attribute’s position in index
        INTEGER(HID_T), INTENT(OUT) :: attr_id
                                    ! Attribute identifier
        INTEGER, INTENT(OUT) :: hdferr
                                    ! Error code:
                                    ! 0 on success and -1 on failure
        INTEGER(HID_T), OPTIONAL, INTENT(IN) :: aapl_id
                                    ! Attribute access property list
        INTEGER(HID_T), OPTIONAL, INTENT(IN) :: lapl_id
                                    ! Link access property list
      END SUBROUTINE h5aopen_by_idx_f

See Also:
  “Using Identifiers”

History:

  Release | C
  1.8.0 | Function introduced in this release.