【Perl】ファイルロック(排他処理)について語ろうat PHP【Perl】ファイルロック(排他処理)について語ろう - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト305:304 02/11/29 17:25 ごめん、間違えた。 tmpファイルの名前を毎回変えれば大丈夫か。 306:nobodyさん 02/11/29 19:16 >>302 普通に、だめだね。 たとえば、Aプロセスがclose(OUT)まで行く、その直後にBプロセスが open (IN,"data.txt");、でそのあとAプロセスがrename、Bプロセスは 普通に終了するけど、BのINは、Aが変更を加える前のdata.txtなので Bがrenameした時点で、Aで加えた変更は破棄される。 307:perlお勉強ちゅー 02/11/30 00:18 >>304 さん >>306 さん ご解説して下さってありがとうございます。 close しなければ rename できないと勝手に 思い込んでいました。(やってみたらできました) close したときに flock が解除されるのなら rename 後に close しとけば別プロセスに割り 込まれることが減り、少しはましになるかな。 308:nobodyさん 02/11/30 15:54 >>307 > rename 後に close だめ。 AプロセスがINをopen、直後にBがINをopen、Aがflockして処理を おえる、Bがflockを獲得して処理を終える。これでも、BのINはAが変更を 加える前のdata.txtなので、同様にAの変更が破棄される。 なおかつ、Win環境だとopen中のファイルのrenameはできなかったような? 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch