私のプログラムは、ネットワーク ソケットから 1 行を読み取り、それをディスクに書き込みます。行は非常に長くなる可能性があり、文字列のパフォーマンスはひどいものだったので、遅延バイト文字列を使い始めました。hClose
現在、Haskell は、実際にバイト文字列全体をディスクにフラッシュすることなく、ディスク ファイル ハンドルを通過するように見えるので、次のようにします。
- 書き込み用にファイルを開く
- バイト文字列をファイルに書き込む
hPut
- ファイルを閉じる
- ファイルを読み取り用に開く
通常は になりopenFile: resource busy (file is locked)
ます。
評価を強制し、ファイルを閉じる前にバイト文字列全体が書き込まれるのを待つことは可能ですか? その操作の後にファイルが実際に閉じられていることを確認できますか?