是否可以通过管道传输 HDF5 格式的数据?

Is it possible to pipe HDF5 formated data?

是否可以将 HDF5 写入标准输出并从标准输入读取(通过 H5::File file("/dev/stdout",H5F_ACC_RDONLY) 或其他方式)?


我想要的是有一个程序 foo 写入 HDF5 文件(假设是它的第一个参数)和另一个程序 bar 从 HDF5 文件读取然后而不是

command_prompt> foo temp.h5
command_prompt> bar temp.h5
command_prompt> rm temp.h5

简单说

command_prompt> foo - | bar -

其中程序 foobar 将特殊文件名 - 理解为分别表示 stdoutstdin。为了编写这些程序,我想知道 1) 这是否完全可行以及 2) 我如何实现它,即分别传递给 H5Fcreate()H5Fopen() 的内容,以防文件名= -.


我试过了,但似乎不可能(不足为奇)。 HDF5只有H5Fcreate()H5Fopen()H5Freopen(),好像都不支持I/O到stdin/stdout

我认为您不能将 stdin 用作 hdf5 输入文件。图书馆需要在 header 内容和数据之间寻找,而您不能使用 stdin.