如果 HDF5 文件未使用 H5close() 或其他方式关闭,则 hdfview 无法读取该文件。在常规应用程序中,HDF5 文件会正确关闭,但有时,代码会发生某些事情(例如段错误)并且文件不会关闭。在这些情况下,查看 HDF5 文件中的内容可能有助于深入了解错误原因。
有什么办法可以实现吗?
最佳答案
您通常可以按照 standard RAII (Resource Acquisition is Initialization) paradigm 使对 HDF5 文件异常的引用安全.但是,这不会保护您免受段错误的影响,段错误是操作系统对您的程序产生的中断,除非您捕获中断并关闭文件。
对于更简单的异常安全案例,这可以通过一些最佳实践来实现。首先,在调用对象构造函数期间获取资源。编写复制构造函数并重载赋值运算符以正确转移文件句柄的所有权,而不是简单地从两个地方持有指针。最后,为正确关闭文件句柄的对象编写析构函数。
关于c++ - 读取未正确关闭的 HDF5 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23227522/