私はHDF5(1 0.1)を使用してFortranコードを使用しています。ある時点でh5fopen_f
を使用してファイルを開くための呼び出しがあります:エラー(1.10.1)
H5FileName = "+hdf5/Temperature_00000_00001.h5"
CALL h5fopen_f(H5FileName, H5F_ACC_RDWR_F, file, hdferr)
Scalardataset = 'Temperature_00001_0000'
call h5ltget_dataset_info_f(file, Scalardataset, dimstmp, type_class, type_size, hdferr)
call h5fclose_f(file,hdferr)
:
HDF5-DIAG: Error detected in HDF5 (1.10.1) MPI-process 0:
#000: H5F.c line 586 in H5Fopen(): unable to open file
major: File accessibilty
minor: Unable to open file
#001: H5Fint.c line 1305 in H5F_open(): unable to lock the file
major: File accessibilty
minor: Unable to open file
#002: H5FD.c line 1839 in H5FD_lock(): driver lock request failed
major: Virtual File Layer
minor: Can't update object
#003: H5FDsec2.c line 940 in H5FD_sec2_lock(): unable to lock file, errno = 11, error message = 'Resource temporarily unavailable'
major: File accessibilty
minor: Bad file ID accessed
私はどこそれが必要とそのIそれはだ、ファイルが存在することを確認しています適切な権限を持っています。また、私は1つのプロセスを使用すると、コードが正常に動作します。複数のプロセスを使用すると、プロセスの1つがファイル(err=0
)を開くことができますが、残りは(err=-1
)できません。最後に、私はこの同じコードを別の場所にインストールしています。バージョン1の場合はうまく動作します( .14)。
これはバージョンに問題がありますか?
このファイルは実際に存在しますか?パスは正しいですか?喜んで[mcve]を供給する。 –
罰金を*ロックして複数のプロセスで同時に開こうとしているようです。しかし、@VladimirFは言うとおり、コードを見る必要があります。 @VladimirF、@Ross。 – Ross
元の投稿を編集してコードのスニペットを追加しました。申し訳ありません。 私が言及したように、ファイルが存在し、パスが正しいです 私はそれを 'H5F_ACC_RDWR_F'の代わりに' H5F_ACC_RDONLY_F'を使用して読み取り専用で開くことで解決することができました。しかし、バージョン1.8.14を使用しているときにこれを行う必要はありませんでした。これがなぜなのか? Pythonと1.10.1を経由して、ここで – jrglez