我正在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中的对象名称是否有最大长度?
答案 0 :(得分:1)
除了最大标题大小(标题包含有关HDF5对象的所有元数据)之外,HDF5文档中没有找到特定的最大值。
限制为64kB,请参阅问题"是否存在对象标题限制以及它如何影响HDF5?"在https://support.hdfgroup.org/HDF5/faq/limits.html
原则上,它将最大名称长度设置为大约该值。
您可以指定一个较大的默认最大长度,并执行一些错误检查。我将检查HDF5的源代码,看看是否有特定的限制。
编辑:函数H5Gget_obj_info_idx_f
将名称截断为传入的字符变量的长度。之后可以使用名称有效的常规名称查询进行检查。
EDIT2:截至2010年,与HDF小组合作的人员发送的此邮件列表消息证实了这一点。https://lists.hdfgroup.org/pipermail/hdf-forum_lists.hdfgroup.org/2010-September/003662.html