正在读取未正确关闭的HDF5文件

Reading an HDF5 file not properly closed

本文关键字:HDF5 文件 读取      更新时间:2023-10-16

如果HDF5文件没有用H5close()关闭或hdfview无法读取。在常规应用程序中,HDF5文件会正确关闭,但有时,代码会出现问题(例如segfault),文件不会关闭。在这种情况下,查看HDF5文件中可能包含的内容可以深入了解错误的原因。

有办法做到这一点吗?

通常,您可以通过遵循标准RAII(资源获取即初始化)范式来确保对HDF5文件异常的引用是安全的。然而,这不会保护您免受segfault的影响,segfault是操作系统生成的程序中断,除非您捕捉到中断并关闭文件。

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