mirror of
https://github.com/HDFGroup/hdf5.git
synced 2026-09-25 04:09:44 +03:00
* Consolidate documentation under doc/ directory
Move user-facing guides from release_docs/ and doxygen/ into a single
doc/ root. release_docs/ now holds only release artifacts (changelogs,
history, release process, maintainer info).
- git mv release_docs/INSTALL*.md, USING_*.md, README_HPC.md,
BuildSystemNotes.md, AutotoolsToCMakeOptions.md,
HDF5_Library_2.0.0_Migration_Guide.md → doc/
- git mv doxygen/ → doc/doxygen/
- Update CMakeLists.txt: HDF5_DOXYGEN_DIR and add_subdirectory path
- Update CMakeInstallation.cmake: all install paths for moved files
- Update bin/make_vers: hardcoded doxygen/ path substitution
- Update doc/doxygen/CMakeLists.txt: EXAMPLES_DIRECTORY and comments
- Update README.md, CONTRIBUTING.md, SECURITY.md, config/README.md,
release_docs/RELEASE_PROCESS.md: links to moved files
- Update doxygen .dox files: release_docs/ URLs for moved guides
- Rewrite release_docs/README.md for narrowed scope
* Add HDF5_DOCS_DIR variable for doc/ root path
Introduce HDF5_DOCS_DIR = \${HDF5_SOURCE_DIR}/doc so that
CMakeInstallation.cmake and future callers reference the doc/
directory symbolically rather than by hardcoded path.
HDF5_DOXYGEN_DIR is now derived from HDF5_DOCS_DIR.
44 lines
1.7 KiB
C
44 lines
1.7 KiB
C
unsigned char tmp_fill_buf[40];
|
|
...
|
|
|
|
file_id = H5Fopen(FILENAME, H5F_ACC_RDWR, H5P_DEFAULT);
|
|
dataset_id = H5Dopen(file_id, TABLE_NAME, H5P_DEFAULT);
|
|
datatype_id = H5Dget_type(dataset_id);
|
|
|
|
status = H5TBget_table_info(file_id, TABLE_NAME, &nfields, &nrecords);
|
|
|
|
hasfill = H5TBAget_fill(file_id, TABLE_NAME, dataset_id, tmp_fill_buf);
|
|
|
|
for (i = 0; i < nfields; i++) {
|
|
member_type_id = H5Tget_member_type(datatype_id, (unsigned)i);
|
|
native_mem_type_id = H5Tget_native_type(member_type_id, H5T_DIR_ASCEND);
|
|
member_offset = H5Tget_member_offset(datatype_id, (unsigned)i);
|
|
printf("member_offset: %i\n", member_offset);
|
|
memb_class = H5Tget_class(member_type_id);
|
|
switch (memb_class) {
|
|
case H5T_INTEGER:
|
|
/* convert unsigned char array to integer */
|
|
break;
|
|
case H5T_FLOAT:
|
|
/* convert unsigned char array to double or float */
|
|
|
|
if (H5Tequal(native_mem_type_id, H5T_NATIVE_DOUBLE)) {
|
|
}
|
|
else if (H5Tequal(native_mem_type_id, H5T_NATIVE_FLOAT)) {
|
|
f.i = tmp_fill_buf[member_offset] | (tmp_fill_buf[member_offset + 1] << 8) |
|
|
(tmp_fill_buf[member_offset + 2] << 16) | (tmp_fill_buf[member_offset + 3] << 24);
|
|
printf("Field %i Fill Value: %lf\n", i, f.f);
|
|
}
|
|
break;
|
|
|
|
case H5T_STRING:
|
|
/* convert unsigned char array to string */
|
|
strsize = H5Tget_size(member_type_id);
|
|
|
|
printf("Field %i Fill Value: ", i);
|
|
for (j = 0; j < strsize; j++)
|
|
printf("%c", tmp_fill_buf[member_offset + j]);
|
|
printf("\n");
|
|
break;
|
|
}
|