タグ

file lockに関するkyouzontのブックマーク (1)

  • ロックファイルを考える

    CGIでファイルを操作すると、しばしばデータが消失することが有ります。 これは、同時アクセス(書き込み)による衝突です。 他の多くのサイトでもこれを避ける方法が紹介されていますが、私の経験上どれも不十分で、 現に有名サイトのカウンタさえ破壊されていることがしばしばです。 このコーナーでは、衝突しない。万が一衝突してもデータを破壊しないロック機能を考えてみましょう。 現在もっとも採用されているロック機能 foreach (1 .. 10) { if (symlink($datafile,$tmpfile)) { last; } sleep(1); } open(OUT,"$datafile) || die "Can't open tmp file.\n"; print @DATA; close(OUT); unlink($tmpfile); このコードを1つずつ解析してみましょう。 fore

    kyouzont
    kyouzont 2011/07/30
     http://x68000.q-e-d.net/~68user/webcgi/lock.html などのサイトと比較しつつ読む。
  • 1