【Perl】ファイルロック(排他処理)について語ろうat PHP【Perl】ファイルロック(排他処理)について語ろう - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト800:nobodyさん 05/04/08 23:18:53 書き込みの最中に死んだりするとデータ全部消えて無くなるな。仕方ないか。 801:nobodyさん 05/04/09 19:52:50 >>800 ゆーあーばか 802:nobodyさん 05/06/06 21:34:45 nLjgLi0T sub create_lock { for ($i = 0; $i < 10; $i++) {#10回繰り返す return if link($0, $lock);#link関数でロックファイルが作成できれば終了 sleep(1);#作れない場合は1秒スリープしてから再挑戦 } print "BUSY";#10回以内にロックできない場合はBUSYと表示 exit;#スクリプト終了 } ↑だとうまくいくのに、↓だとうまくいかないのは何ででしょうか? ↓ですとsleepを5回繰り返した後&error("BUSY")の処理をします。 sub create_lock { local($retry) = 5; # 1分以上古いロックは削除する if (-e $lockfile) { local($mtime) = (stat($lockfile))[9]; if ($mtime < time - 60) { &unlock; } } while (!mkdir($lockfile, 0755)) { if (--$retry <= 0) { &error("BUSY");#5回以内にロックできない場合はBUSYと表示 } sleep(1); } exit; } 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch