2015-07-01 30 views
3

可以將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 - 

在節目foobar瞭解特殊文件名-分別表示stdoutstdin。爲了編寫這些程序,我想知道1)這是否完全可能,以及2)我如何實現這個,即如果文件名爲-,我要如何分別傳遞給H5Fcreate()H5Fopen()


我試過了,似乎不可能(不是很大的驚喜)。 HDF5只有H5Fcreate(),H5Fopen()H5Freopen(),這兩者似乎都不支持到stdin/stdout的I/O。

+1

當然這是可能的。 HDF5只是一個數據源,就像任何其他數據源一樣。 –

+0

@HighPerformanceMark ??所以呢?我認爲這與我的問題無關。我澄清說,有點爲你的利益。 – Walter

+0

我向您表示支持流式傳輸的嘗試致敬 - 這可能非常有用。如果你的HDF5庫支持流媒體,它可能會提供類似'H5Ffdopen()'的東西,讓你傳遞一個已經打開的fd或FILE *。另一方面,如果他們只給你'H5Fopen',可能他們不支持它,並且很可能使用像'/ dev/stdin'這樣的特殊文件名不起作用。如果他們不支持它,很可能是因爲,正如另一個答案所指出的,他們期望在閱讀或寫作時能夠四處尋找。 –

回答

1

我不認爲你可以使用stdin作爲hdf5輸入文件。圖書館需要在標題內容和數據之間尋找,而你不能用stdin這樣做。

+1

這聽起來不像來自合格來源的defiite答案... – Walter

+0

不,我不是HDF5專家。但是如果從stdin中讀取是可能的,我會非常驚訝。 – Phil

+0

雖然你似乎是正確的。 – Walter

相關問題