flockについて
http://www.freespace.jp/phpstudy.php4
のサイト様を拝見したり、フリーで配布されているスクリプトを見ると、書き込むファイルに対して、
$fp = fopen('bbs.log', 'r+');
flock($fp, LOCK_EX);
…
とやっていると思うのですが、perl記述のcgiで掲示板を作成したときは、書き込むファイルとは別にロック用のファイルを用意し、(perl記述です)
open(LOCK,"+<$lockfile");
flock(LOCK,2);
open(IN,"$logfile");
....
close(IN,"$logfile");
open(OUT,"$logfile");
....
close(OUT,">$logfile");
としていました。(書き込むファイルが2つあったのでこのような方法をとってました)
そこでphpでも同じ方法は使えるのでしょうか?
$fp = fopen('bbs.log', 'r+');
flock($fp, LOCK_EX);
…
の方法を使おうと思っていたのですが、最初にログファイルを読み込むとき、
file("bbs.log");
という風にしているので、flockに記述すべきファイルハンドルが見当たりません。仮に取得できたとしても、file();の仕様からして内部にcloseが入ってそうなので、flockできたとしてもcloseで無効になってしまわないかが心配です。なのでこの場合はやはり別にログファイルを用意しないとできないということでしょうか。
お礼
有難う御座いました。 やってみます。