boost::filesystem::copy()
通常のローカル パーティションから Lustre でホストされているパーティションにファイルをコピーするときに、奇妙な問題が発生することがあります。通常cp
、ファイルを処理すると、宛先ファイルが正しく存在し、返された直後に利用可能であることに気付きますがcp
、ブースト操作では、返されたときに、ファイルがすべて存在する場合とそうでない場合があります (宛先に)。
ブーストコードを見ると、次のことがわかります。
if ( ::close( infile) < 0 ) sz_read = -1;
if ( ::close( outfile) < 0 ) sz_read = -1;
これが正しいのか、ファイルを宛先に正しくフラッシュするのか、それとも::fclose()
明示的にフラッシュしてからファイルを閉じるように呼び出す必要があるのか 疑問に思っています。閉じる前に明示的な::fflush()
呼び出しが見られないため、ファイルが実際に宛先に正しくフラッシュされているかどうかはわかりません...