Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Максимальная длина имени объекта в HDF5?

Автор вопроса: Eli LanseyОтветов: 1

Я читаю файл 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?

  • @francescalus Не совсем так. Мой вопрос касается не неопределенного размера строки, хранящейся в наборе данных, а самого имени набора данных. Eli Lansey 11.01.2017
  • Теперь разбираю правильно, спасибо. francescalus 11.01.2017

fortranhdf5

Ответы

Ответ 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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы