2012-04-15 5 views
0

私はスレッドで実行されていて、データをファイルに追加しているcプログラムを持っています。私はいくつかの時間間隔の後に同じファイル(どのcスレッドが書いている)をコピーするpythonスレッドを実行したい。これを行うための安全な方法はありますか?私はLinux OSでこれをやっています。ファイルをコピーするのを待っているPythonスレッド

+0

1つのオプションはファイルをロックすることです:http://stackoverflow.com/questions/489861/locking-a-file-in-python –

+0

なぜファイルをコピーする必要がありますか? –

答えて

0

あなたのシナリオには言及されていない多くの重要な詳細がありますが、Cプログラムにロック機構を書いてPythonプログラムで使用することはできないという前提で作業していますシステム上の既存のアプリケーションを使用している場合)、os.statを調べて、最後に変更された時刻m_timeを確認することができます。最近のm_timeは、ファイルがCプログラムで再び開かれて再び使用されないことを知っていることに頼っています。

ファイルハンドルがCプログラムで常に開いていて、ときどき書き込まれた場合、書き込まれていないと書かれていないことを知る簡単なオプションはたくさんありません。

+0

Cスレッドは2秒ごとにファイルを書き込みますが、Pythonスレッドはファイルをコピーしませんが、2秒間Cスレッドはファイルからすべてのロックを解放します。なぜですか? –

+0

なぜあなたは_Python_でファイルを具体的にコピーする必要がありますか?なぜこれを行うには 'rsync'を定期的に起動しないのですか? –

+0

rsyncでどうすればいいですか? –

関連する問題