0

プロセスを閉じずにフラグを使用してデータを含むを再度開くと、プロセスが を保持しているときにどうなりますか?fstreamstd::ios::truncboost::interprocess::file_lock()

OS がファイル ロックを維持することを期待する必要がありますか? または、ファイルが閉じられると、OS はロックを透過的に登録解除しますか? Windows と POSIX の両方の経験があれば歓迎します。

編集

私の主な目標は、構成ファイルを切り捨てて書き直すことです。このファイルの第 2 の目的は、他の同等のデーモンが起動しないようにすることです。したがって、boost または c++ stl を使用して、ファイルを閉じずにファイルを切り捨てる別の方法がある場合、私はすべて耳にします :D

4

1 に答える 1

0

経験的に: を使用してファイルを再度開くと、透過的にロックが解除std::fstream::closeされます (Linux コマンドでテスト済み)。これを行った後、 を使用してロックを再取得する必要があります。std::fstream::openlsofboost::interprocess

そのため、open-file に続いて acquire-lock に従う限り、問題はありません。

Windows で同じテストを実行したい場合があります。

于 2012-03-07T15:12:02.770 に答える