c++ - 读取未正确关闭的 HDF5 文件

标签 c++ hdf5

如果 HDF5 文件未使用 H5close() 或其他方式关闭,则 hdfview 无法读取该文件。在常规应用程序中,HDF5 文件会正确关闭,但有时,代码会发生某些事情(例如段错误)并且文件不会关闭。在这些情况下,查看 HDF5 文件中的内容可能有助于深入了解错误原因。

有什么办法可以实现吗?

最佳答案

您通常可以按照 standard RAII (Resource Acquisition is Initialization) paradigm 使对 HDF5 文件异常的引用安全.但是,这不会保护您免受段错误的影响,段错误是操作系统对您的程序产生的中断,除非您捕获中断并关闭文件。

对于更简单的异常安全案例,这可以通过一些最佳实践来实现。首先,在调用对象构造函数期间获取资源。编写复制构造函数并重载赋值运算符以正确转移文件句柄的所有权,而不是简单地从两个地方持有指针。最后,为正确关闭文件句柄的对象编写析构函数。

关于c++ - 读取未正确关闭的 HDF5 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23227522/

相关文章:

python - 从 Amazon S3 和 Boto3 下载并读取 HDF5 文件

c++ - 在类中声明函数数组

c++ - 不同项目中多个类的基类

c++ - graphics.h 在 Windows 7 64 位中无法使用 MinGW 的代码块

python - 调整大小时如何压缩hdf5文件?

file - 在matlab中将数据 append 到hdf5中的同一数据集

c++ - 找不到命令时出现段错误

C++ 半偶数四舍五入到 x 位数

python-2.7 - 在pandas中查看hdf5文件中的行数

c++ - 如何智能地将多个参数写入一个hdf5文件?