HDF5 中对象名称的最大长度?

Maximum length of object name in HDF5?

我正在读取 Fortran 格式的 HDF5 文件,但不知道对象(组)名称先验。因此,我使用以下代码片段来提取该信息:

CALL H5Gn_members_f(group_id, groupName, nlinks, error)
do ilink = 0, nlinks-1
  CALL H5Gget_obj_info_idx_f(group_id, groupName, ilink, objName, H5G_GROUP_F, error)
enddo

在这里,我定义了

character(len=100) :: objName

任意长度为100。但是,我不保证对象名称不超过100个字符。所以,我的实际问题是:

HDF5 中的对象名称是否有最大长度?

除了最大 header 大小(header 包含有关 HDF5 object 的所有元数据)外,HDF5 文档中没有找到具体的最大值。

限制为 64kB,参见 https://support.hdfgroup.org/HDF5/faq/limits.html

处的问题 "Is there an object header limit and how does that affect HDF5 ?"

原则上,最大名称长度约为该值。

您可以像您所做的那样指定一个较大的默认最大长度,并进行一些错误检查。我去看看HDF5的源码有没有具体的限制。

编辑:函数 H5Gget_obj_info_idx_f 将名称截断为传入的字符变量的长度。之后您可以使用常规名称查询检查名称是否有效。

EDIT2:截至 2010 年,与 HDF 小组合作的人员的邮件列表消息证实了这一点。https://lists.hdfgroup.org/pipermail/hdf-forum_lists.hdfgroup.org/2010-September/003662.html