可以將HDF5寫入標準輸出並從標準輸入讀取(通過H5::File file("/dev/stdout",H5F_ACC_RDONLY)
或其他方式)?是否可以管理HDF5格式化的數據?
我想要的是有一個程序foo
寫一個HDF5文件(取爲它的第一個參數,說了)和另一個程序bar
從一個HDF5文件讀取,然後代替
command_prompt> foo temp.h5
command_prompt> bar temp.h5
command_prompt> rm temp.h5
簡單地說
command_prompt> foo - | bar -
在節目foo
和bar
瞭解特殊文件名-
分別表示stdout
和stdin
。爲了編寫這些程序,我想知道1)這是否完全可能,以及2)我如何實現這個,即如果文件名爲-
,我要如何分別傳遞給H5Fcreate()
和H5Fopen()
。
我試過了,似乎不可能(不是很大的驚喜)。 HDF5只有H5Fcreate()
,H5Fopen()
和H5Freopen()
,這兩者似乎都不支持到stdin/stdout
的I/O。
當然這是可能的。 HDF5只是一個數據源,就像任何其他數據源一樣。 –
@HighPerformanceMark ??所以呢?我認爲這與我的問題無關。我澄清說,有點爲你的利益。 – Walter
我向您表示支持流式傳輸的嘗試致敬 - 這可能非常有用。如果你的HDF5庫支持流媒體,它可能會提供類似'H5Ffdopen()'的東西,讓你傳遞一個已經打開的fd或FILE *。另一方面,如果他們只給你'H5Fopen',可能他們不支持它,並且很可能使用像'/ dev/stdin'這樣的特殊文件名不起作用。如果他們不支持它,很可能是因爲,正如另一個答案所指出的,他們期望在閱讀或寫作時能夠四處尋找。 –