读取HDF5文件未正确关闭

时间:2014-04-22 18:32:13

标签: c++ hdf5

如果HDF5文件没有用H5close()关闭,或hdfview无法读取。在常规应用程序中,HDF5文件正确关闭,但有时,代码会发生某些事情(例如段错误),文件未关闭。在这些情况下,查看HDF5文件中可能包含的内容可能会提供对错误原因的深入了解。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:5)

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

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