Help us improve by taking our short survey: https://www.hdfgroup.org/website-survey/

| HDF5 Last Updated on 2025-11-11 The HDF5 Field Guide

- Main Page
- Getting started
- User Guide
- Reference Manual
- Cookbook
- Technical Notes
- RFCs
- Specifications
- Glossary
- Full-Text Search
- About

Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Enumerations | Functions
H5Lpublic.h File Reference
`#include "H5public.h"`
`#include "H5Ipublic.h"`
`#include "H5Opublic.h"`
`#include "H5Tpublic.h"`

## Data Structures
struct | H5L_info1_t
struct | H5L_info2_t
| Information struct for links. More...

## Macros
#define | H5L_MAX_LINK_NAME_LEN UINT32_MAX
#define | H5L_SAME_LOC 0 /* (hid_t) */
#define | H5L_TYPE_BUILTIN_MAX H5L_TYPE_SOFT
#define | H5L_TYPE_UD_MAX H5L_TYPE_MAX
#define | H5L_TYPE_UD_MIN H5L_TYPE_EXTERNAL

## Typedefs
typedef herr_t(* | H5L_elink_traverse_t) (const char *parent_file_name, const char *parent_group_name, const char *child_file_name, const char *child_object_name, unsigned *acc_flags, hid_t fapl_id, void *op_data)
| Callback for external link traversal.
typedef herr_t(* | H5L_iterate1_t) (hid_t group, const char *name, const H5L_info1_t *info, void *op_data)
typedef herr_t(* | H5L_iterate2_t) (hid_t group, const char *name, const H5L_info2_t *info, void *op_data)
| Prototype for H5Literate2(), H5Literate_by_name2() operator.

## Enumerations
enum | H5L_type_t { H5L_TYPE_ERROR = (-1) , H5L_TYPE_HARD = 0 , H5L_TYPE_SOFT = 1 , H5L_TYPE_EXTERNAL = 64 , H5L_TYPE_MAX = 255 }
| Link class types. More...

## Functions
herr_t | H5Lcopy (hid_t src_loc, const char *src_name, hid_t dst_loc, const char *dst_name, hid_t lcpl_id, hid_t lapl_id)
| Creates an identical copy of a link with the same creation time and target. The new link can have a different name and be in a different location than the original.
herr_t | H5Lcreate_external (const char *file_name, const char *obj_name, hid_t link_loc_id, const char *link_name, hid_t lcpl_id, hid_t lapl_id)
| Creates an external link, a soft link to an object in a different file.
herr_t | H5Lcreate_hard (hid_t cur_loc, const char *cur_name, hid_t dst_loc, const char *dst_name, hid_t lcpl_id, hid_t lapl_id)
| Creates a hard link to an object.
herr_t | H5Lcreate_hard_async (hid_t cur_loc_id, const char *cur_name, hid_t new_loc_id, const char *new_name, hid_t lcpl_id, hid_t lapl_id, hid_t es_id)
herr_t | H5Lcreate_soft (const char *link_target, hid_t link_loc_id, const char *link_name, hid_t lcpl_id, hid_t lapl_id)
| Creates a soft link.
herr_t | H5Lcreate_soft_async (const char *link_target, hid_t link_loc_id, const char *link_name, hid_t lcpl_id, hid_t lapl_id, hid_t es_id)
herr_t | H5Lcreate_ud (hid_t link_loc_id, const char *link_name, H5L_type_t link_type, const void *udata, size_t udata_size, hid_t lcpl_id, hid_t lapl_id)
| Creates a link of a user-defined type.
herr_t | H5Ldelete (hid_t loc_id, const char *name, hid_t lapl_id)
| Removes a link from a group.
herr_t | H5Ldelete_async (hid_t loc_id, const char *name, hid_t lapl_id, hid_t es_id)
herr_t | H5Ldelete_by_idx (hid_t loc_id, const char *group_name, H5_index_t idx_type, H5_iter_order_t order, hsize_t n, hid_t lapl_id)
| Removes the n-th link in a group.
herr_t | H5Ldelete_by_idx_async (hid_t loc_id, const char *group_name, H5_index_t idx_type, H5_iter_order_t order, hsize_t n, hid_t lapl_id, hid_t es_id)
htri_t | H5Lexists (hid_t loc_id, const char *name, hid_t lapl_id)
| Determines whether a link with the specified name exists in a group.
herr_t | H5Lexists_async (hid_t loc_id, const char *name, bool *exists, hid_t lapl_id, hid_t es_id)
herr_t | H5Lget_info1 (hid_t loc_id, const char *name, H5L_info1_t *linfo, hid_t lapl_id)
| Returns information about a link.
herr_t | H5Lget_info2 (hid_t loc_id, const char *name, H5L_info2_t *linfo, hid_t lapl_id)
| Returns information about a link.
herr_t | H5Lget_info_by_idx1 (hid_t loc_id, const char *group_name, H5_index_t idx_type, H5_iter_order_t order, hsize_t n, H5L_info1_t *linfo, hid_t lapl_id)
| Retrieves metadata for a link in a group, according to the order within a field or index.
herr_t | H5Lget_info_by_idx2 (hid_t loc_id, const char *group_name, H5_index_t idx_type, H5_iter_order_t order, hsize_t n, H5L_info2_t *linfo, hid_t lapl_id)
| Retrieves metadata for a link in a group, according to the order within a field or index.
ssize_t | H5Lget_name_by_idx (hid_t loc_id, const char *group_name, H5_index_t idx_type, H5_iter_order_t order, hsize_t n, char *name, size_t size, hid_t lapl_id)
| Retrieves name of the n-th link in a group, according to the order within a specified field or index.
herr_t | H5Lget_val (hid_t loc_id, const char *name, void *buf, size_t size, hid_t lapl_id)
| Returns the value of a link.
herr_t | H5Lget_val_by_idx (hid_t loc_id, const char *group_name, H5_index_t idx_type, H5_iter_order_t order, hsize_t n, void *buf, size_t size, hid_t lapl_id)
| Retrieves value of the n-th link in a group, according to the order within an index.
htri_t | H5Lis_registered (H5L_type_t id)
| Determines whether a class of user-defined links is registered.
herr_t | H5Literate1 (hid_t grp_id, H5_index_t idx_type, H5_iter_order_t order, hsize_t *idx, H5L_iterate1_t op, void *op_data)
| Iterates over links in a group, with user callback routine, according to the order within an index.
herr_t | H5Literate2 (hid_t grp_id, H5_index_t idx_type, H5_iter_order_t order, hsize_t *idx, H5L_iterate2_t op, void *op_data)
| Iterates over links in a group, with user callback routine, according to the order within an index.
herr_t | H5Literate_async (hid_t group_id, H5_index_t idx_type, H5_iter_order_t order, hsize_t *idx_p, H5L_iterate2_t op, void *op_data, hid_t es_id)
herr_t | H5Literate_by_name1 (hid_t loc_id, const char *group_name, H5_index_t idx_type, H5_iter_order_t order, hsize_t *idx, H5L_iterate1_t op, void *op_data, hid_t lapl_id)
| Iterates through links in a group by its name.
herr_t | H5Literate_by_name2 (hid_t loc_id, const char *group_name, H5_index_t idx_type, H5_iter_order_t order, hsize_t *idx, H5L_iterate2_t op, void *op_data, hid_t lapl_id)
| Iterates through links in a group.
herr_t | H5Lmove (hid_t src_loc, const char *src_name, hid_t dst_loc, const char *dst_name, hid_t lcpl_id, hid_t lapl_id)
| Moves a link within an HDF5 file.
herr_t | H5Lunpack_elink_val (const void *ext_linkval, size_t link_size, unsigned *flags, const char **filename, const char **obj_path)
| Decodes external link information.
herr_t | H5Lvisit1 (hid_t grp_id, H5_index_t idx_type, H5_iter_order_t order, H5L_iterate1_t op, void *op_data)
| Recursively visits all links starting from a specified group.
herr_t | H5Lvisit2 (hid_t grp_id, H5_index_t idx_type, H5_iter_order_t order, H5L_iterate2_t op, void *op_data)
| Recursively visits all links starting from a specified group.
herr_t | H5Lvisit_by_name1 (hid_t loc_id, const char *group_name, H5_index_t idx_type, H5_iter_order_t order, H5L_iterate1_t op, void *op_data, hid_t lapl_id)
| Recursively visits all links starting from a specified group.
herr_t | H5Lvisit_by_name2 (hid_t loc_id, const char *group_name, H5_index_t idx_type, H5_iter_order_t order, H5L_iterate2_t op, void *op_data, hid_t lapl_id)
| Recursively visits all links starting from a specified group.

## Macro Definition Documentation

## ◆ H5L_MAX_LINK_NAME_LEN

#define H5L_MAX_LINK_NAME_LEN UINT32_MAX

Maximum length of a link's name

Since
  1.8.0

## ◆ H5L_SAME_LOC

#define H5L_SAME_LOC 0 /* (hid_t) */

Macro to indicate operation occurs on same location

Since
  1.8.0

## ◆ H5L_TYPE_BUILTIN_MAX

#define H5L_TYPE_BUILTIN_MAX H5L_TYPE_SOFT

Maximum value link value for "built-in" link types

Since
  1.8.0

## ◆ H5L_TYPE_UD_MAX

#define H5L_TYPE_UD_MAX H5L_TYPE_MAX

Maximum link id value for "user-defined" link types.

Since
  1.12.1

## ◆ H5L_TYPE_UD_MIN

#define H5L_TYPE_UD_MIN H5L_TYPE_EXTERNAL

Link ids at or above this value are "user-defined" link types.

Since
  1.8.0

## Typedef Documentation

## ◆ H5L_elink_traverse_t

typedef herr_t(* H5L_elink_traverse_t) (const char *parent_file_name, const char *parent_group_name, const char *child_file_name, const char *child_object_name, unsigned *acc_flags, hid_t fapl_id, void *op_data)

Callback for external link traversal.

## ◆ H5L_iterate1_t

typedef herr_t(* H5L_iterate1_t) (hid_t group, const char *name, const H5L_info1_t *info, void *op_data)

Prototype for H5Literate1() / H5Literate_by_name1() operator

## ◆ H5L_iterate2_t

typedef herr_t(* H5L_iterate2_t) (hid_t group, const char *name, const H5L_info2_t *info, void *op_data)

Prototype for H5Literate2(), H5Literate_by_name2() operator.

The H5O_token_t version is used in the VOL layer and future public API calls.

## Enumeration Type Documentation

## ◆ H5L_type_t

enum H5L_type_t

Link class types.

Values less than 64 are reserved for the HDF5 library's internal use. Values 64 to 255 are for "user-defined" link class types; these types are defined by HDF5 but their behavior can be overridden by users. Users who want to create new classes of links should contact the HDF5 development team at help@.nosp@m.hdfg.nosp@m.roup..nosp@m.org. These values can never change because they appear in HDF5 files.

Enumerator
H5L_TYPE_ERROR | Invalid link type id
H5L_TYPE_HARD | Hard link id
H5L_TYPE_SOFT | Soft link id
H5L_TYPE_EXTERNAL | External link id
H5L_TYPE_MAX | Maximum link type id