Я читаю файл 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?
Ответ 1 · рейтинг 1 · Pierre de Buyl
В документации HDF5 не указан конкретный максимальный размер, за исключением максимального размера заголовка (заголовок содержит все метаданные об объекте HDF5).
Ограничение составляет 64 КБ, см. вопрос "Существует ли ограничение на заголовок объекта и как это влияет на HDF5?" на https://support.hdfgroup.org/HDF5/faq/limits.html а>
Таким образом, максимальная длина имени в принципе равна примерно этому значению.
Вы можете указать большую максимальную длину по умолчанию, как вы это сделали, и выполнить некоторую проверку ошибок. Я проверю исходный код HDF5, чтобы увидеть, есть ли определенные ограничения.
РЕДАКТИРОВАТЬ: функция H5Gget_obj_info_idx_f усекает имя до длины передаваемой символьной переменной. Впоследствии вы можете проверить с помощью обычного запроса имени, что имя допустимо.
РЕДАКТИРОВАТЬ 2: это сообщение списка рассылки от человека, работающего с группой HDF, подтверждает это по состоянию на 2010 год. 003662.html" rel="nofollow noreferrer">https://lists.hdfgroup.org/pipermail/hdf-forum_lists.hdfgroup.org/2010-September/003662.html