• ベストアンサー

パールで掲示板の内容を

ファイルにしまうときに 投稿者が同時にアクセスしてしまう 不都合をどのように対策すればいいのでしょうか? セマフォのための何か適切な関数でも有るのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • helonpa
  • ベストアンサー率38% (108/278)
回答No.1

同時に1つのアクセスだけを保障する仕組みを作って利用します。 「cgi ファイルロック」でgoogleを検索してみて下さい。

参考URL:
http://www.google.co.jp/search?hl=ja&q=cgi%E3%80%80%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%AD%E3%83%83%E3%82%AF&btnG=
keyguy
質問者

補足

ありがとうございます sub lock { local($retry,$mtime); # 1分以上古いロックは削除する if (-e $lockfile) { ($mtime) = (stat($lockfile))[9]; if ($mtime < time - 60) { &unlock; } } # symlink関数式ロック if ($lockkey == 1) { $retry = 5; while (!symlink(".", $lockfile)) { if (--$retry <= 0) { &error('LOCK is BUSY'); } sleep(1); } # mkdir関数式ロック } elsif ($lockkey == 2) { $retry = 5; while (!mkdir($lockfile, 0755)) { if (--$retry <= 0) { &error('LOCK is BUSY'); } sleep(1); } } $lockflag=1; } とありますが ($mtime) = (stat($lockfile))[9]; は $mtime = (stat($lockfile))[9]; としてはいけないのでしょうか? なぜ()が付いているのでしょうか?

関連するQ&A