Last modified: 9 November 2009
Name: H5Lcreate_hard
Signature:
  herr_t `H5Lcreate_hard`( hid_t `obj_loc_id`, const char *`obj_name`, hid_t `link_loc_id`, const char *`link_name`, hid_t `lcpl_id`, hid_t `lapl_id` )

Purpose:
  Creates a hard link to an object.

Description:
  `H5Lcreate_hard` creates a new hard link to a pre-existing object in an HDF5 file. The new link may be one of many that point to that object.

  The target object must already exist in the file.

  `obj_loc_id` and `obj_name` specify the location and name, respectively, of the target object, i.e., the object that the new hard link points to.

  `link_loc_id` and `link_name` specify the location and name, respectively, of the new hard link.

  `obj_name` and `link_name` are interpreted relative to `obj_loc_id` and `link_loc_id`, respectively.

  If `obj_loc_id` and `link_loc_id` are the same location, the HDF5 macro `H5L_SAME_LOC` can be used for either parameter (but not both).

  `lcpl_id` and `lapl_id` are the link creation and access property lists associated with the new link.

  Hard and soft links are for use only if the target object is in the current file. If the desired target object is in a different file from the new link, an external link may be created with `H5Lcreate_external`.

  The HDF5 library keeps a count of all hard links pointing to an object; if the hard link count reaches zero (`0`), the object will be deleted from the file. Creating new hard links to an object will prevent it from being deleted if other links are removed. The library maintains no similar count for soft links and they can dangle.

Parameters:

  hid_t `obj_loc_id` | IN: The file or group identifier for the target object.
  const char *`obj_name` | IN: Name of the target object, which must already exist.
  hid_t `link_loc_id` | IN: The file or group identifier for the new link.
  const char * `link_name` | IN: The name of the new link.
  hid_t `lcpl_id` | IN: Link creation property list identifier.
  hid_t `lapl_id` | IN: Link access property list identifier.

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

Fortran90 Interface: h5lcreate_hard_f

      SUBROUTINE h5lcreate_hard_f(obj_loc_id, obj_name, link_loc_id, link_name, &
                                  hdferr, lcpl_id, lapl_id)
        IMPLICIT NONE
        INTEGER(HID_T), INTENT(IN) :: obj_loc_id
                                ! The file or group identifier for the target object.
        CHARACTER(LEN=*), INTENT(IN) :: obj_name
                                ! Name of the target object, which must already exist.
        INTEGER(HID_T), INTENT(IN) :: link_loc_id
                                ! The file or group identifier for the new link.
        CHARACTER(LEN=*), INTENT(IN) :: link_name
                                ! The name of the new link.
        INTEGER, INTENT(OUT) :: hdferr
                                ! Error code:
                                ! 0 on success and -1 on failure
        INTEGER(HID_T), OPTIONAL, INTENT(IN) ::   lcpl_id
                                ! Link creation property list identifier.
        INTEGER(HID_T), OPTIONAL, INTENT(IN) ::   lapl_id
                                ! Link access property list identifier.
      END SUBROUTINE h5lcreate_hard_f

History:

  Release | C
  1.8.0 | Function introduced in this release.