繁体   English   中英

通过C ++克隆HDF5文件的功能

[英]Function to clone HDF5 file via C++

预先感谢您的宝贵时间。

关于最佳/最简单的克隆HDF5文件(即在磁盘中进行复制)的方法,我有一个相当简单的问题。 例如,有一个HDF5文件:file.h5。 我想将此文件的内容复制到file_BU.h5中。 原因是我的写入文件的工作有可能在一次写入(到多个数据集)的途中被杀死,并且我希望在每次写入的“一代”之间都有一个备份,以便我可以恢复最近的好状态。

当然,我可以使用正常的文件复制代码,例如以理智,安全,高效的方式复制文件 (或使用朴素的系统(“ cp file.h5 file_BU.h5”))。 但是,这是特定于HDF5的问题-我想知道是否有一个函数可以克隆()HDF5文件。 下面的示例代码片段:

H5::H5File file;
file = H5::H5File( "file.h5", H5F_ACC_TRUNC );
//TODO Write datasets etc. to file
std::string file2name = "file_BU.h5";

//This is the thing I would like to do:
file.clone( file2name );
file.close();

//file_BU.h5 and file.h5 are now identical on disk...

我尚未检查整个文档,但与您要查找的文档最接近的似乎是https://www.hdfgroup.org/HDF5/doc/RM/RM_H5O.html#Object-Copy ,但您显然需要编写一些功能可以复制整个内容。
您可以在此处查看其余可用功能, 网址为https://www.hdfgroup.org/HDF5/doc/RM/RM_H5Front.html#LowLevelAPIs ,我还将介绍h5copy命令行工具的来源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM