正在读取未正确关闭的HDF5文件
Reading an HDF5 file not properly closed
如果HDF5文件没有用H5close()关闭或hdfview无法读取。在常规应用程序中,HDF5文件会正确关闭,但有时,代码会出现问题(例如segfault),文件不会关闭。在这种情况下,查看HDF5文件中可能包含的内容可以深入了解错误的原因。
有办法做到这一点吗?
通常,您可以通过遵循标准RAII(资源获取即初始化)范式来确保对HDF5文件异常的引用是安全的。然而,这不会保护您免受segfault的影响,segfault是操作系统生成的程序中断,除非您捕捉到中断并关闭文件。
对于异常安全的简单情况,这可以通过几个最佳实践来实现。首先,在调用对象构造函数的过程中获取资源。编写一个复制构造函数并重载赋值运算符,以正确地转移文件句柄的所有权,而不是简单地从两个位置保持指针。最后,为正确关闭文件句柄的对象编写一个析构函数。
相关文章:
- C++创建空 HDF5 文件而不是数据集的代码
- 一个HDF5文件中有多少个数据集
- 如何从C 中的HDF5文件中读取属性名称和数据集名称,在这里我不知道HDF5文件中存在什么属性
- Armadillo:在一个hdf5文件中保存多个数据集
- FLANN 和大 HDF5 文件
- 导入hdf5文件以在caffe中训练hdf5_classification时出错
- 使用 OpenMPI 创建 HDF5 文件和数据集
- 从 HDF5 文件读取:将 3D 数据转换为内存中的 1D 矢量
- 通过C++克隆HDF5文件的功能
- C++:从hdf5文件中读取复数的numpy数组
- 在c++中读取hdf5文件到动态数组
- 无法写入矢量大于 2^13 的 HDF5 文件
- 隐藏复合数据类型的某些字段,使其不被写入(或从hdf5文件中读取)
- 用Visual c++编写二维数组int[n][m]到HDF5文件
- HDF5 c++:我需要得到组列表,数据集列表,属性列表在HDF5文件
- 使用c++ API在HDF5文件中存储图像
- 打开HDF5文件错误
- 如何检查文件是否为有效的HDF5文件?
- 正在读取未正确关闭的HDF5文件
- 如何智能地将多个参数写入hdf5文件