关于HDF5文件的读取

问题遇到的现象和发生背景

我使用c++来读写400多个HDF5中的数据在一个二维数组中

遇到的现象和发生背景,请写出第一个错误信息

在读到161个HDF5的文件的时候出现了错误

用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%

HDF5-DIAG: Error detected in HDF5 (1.10.7) thread 1:
#000: ../../../src/H5Dio.c line 198 in H5Dread(): can't read data
major: Dataset
minor: Read failed
#001: ../../../src/H5Dio.c line 599 in H5D__read(): can't read data
major: Dataset
minor: Read failed
#002: ../../../src/H5Dcontig.c line 622 in H5D__contig_read(): contiguous read failed
major: Dataset
minor: Read failed
#003: ../../../src/H5Dselect.c line 290 in H5D__select_read(): read error
major: Dataspace
minor: Read failed
#004: ../../../src/H5Dselect.c line 223 in H5D__select_io(): read error
major: Dataspace
minor: Read failed
#005: ../../../src/H5Dcontig.c line 957 in H5D__contig_readvv(): can't perform vectorized sieve buffer read
major: Dataset
minor: Can't operate on object
#006: ../../../src/H5VM.c line 1464 in H5VM_opvv(): can't perform operation
major: Internal error (too specific to document in detail)
minor: Can't operate on object
#007: ../../../src/H5Dcontig.c line 754 in H5D__contig_readvv_sieve_cb(): block read failed
major: Dataset
minor: Read failed
#008: ../../../src/H5Fio.c line 116 in H5F_block_read(): read through page buffer failed
major: Low-level I/O
minor: Read failed
#009: ../../../src/H5PB.c line 736 in H5PB_read(): read through metadata accumulator failed
major: Page Buffering
minor: Read failed
#010: ../../../src/H5Faccum.c line 260 in H5F__accum_read(): driver read request failed
major: Low-level I/O
minor: Read failed
#011: ../../../src/H5FDint.c line 198 in H5FD_read(): driver read request failed
major: Virtual File Layer
minor: Read failed
#012: ../../../src/H5FDsec2.c line 753 in H5FD__sec2_read(): file read failed: time = Tue Jan 24 18:11:56 2023
, filename = '/mnt/work01/TNG/TNG100-1/output/snapdir_099/snap_099.161.hdf5', file descriptor = 3, errno = 14, error message = 'Bad address', buf = 0x1422e8e27e08, total read size = 325567296, bytes this sub-read = 325567296, bytes actually read = 18446744073709551615, offset = 0
major: Low-level I/O
minor: Read failed
terminate called after throwing an instance of 'H5::DataSetIException'
(core dumped)

运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%

我认为是动态分配的内存不够,但希望知道这里的报错具体是什么意思,望解答

我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
  • 给你找了一篇非常好的博客,你可以看看是否有帮助,链接:HDF5报错和解决

具体来说,读取数据时出现了问题,并在试图读取连续的数据时失败。这可能是由于数据格式不正确,或者文件损坏导致的。

具体来说,在读取数据时出现了错误,并在试图读取连续的数据时失败。在使用矢量读取时出错,进一步错误是读取文件时出错,具体错误是:'Bad address'。

您可以尝试检查文件系统,看看是否有磁盘空间或者磁盘空间不足的问题导致的。还可以尝试检查你的hdf5文件是否损坏或者磁盘上的文件是否损坏,检查是否有权限读取文件。