#!/usr/bin/perl
#
# flock.cgi
# 1998/08/20 Ver.0.00
# 1998/08/24 Ver.0.01
# 1998/09/30 Ver.0.02
# 2008/08/16 Ver.0.03
#
# (C) 1998 がま <gama@mvg.biglobe.ne.jp>
$LOCK_EX = 2; # 排他的にロック
#/////////////////////////////////////////////////////
$ctr='ctr.dat';
$dir='./data/';
$ext='.dat';
#/////////////////////////////////////////////////////
{
$test = $ENV{'QUERY_STRING'};
# 制御用カウンタへ加算
open(CTR,"+<$ctr");
flock(CTR,$LOCK_EX); # ロック
$n=<CTR> + 1;
seek(CTR, 0, 0);
printf(CTR "%d", $n);
close(CTR);
# 実験用カウンタ
$ctrdat=$dir.$n.$ext; # 新しい実験用カウンタファイル名
open(CTR,">$ctrdat");
printf(CTR '0'); # 0 を書き込む
close(CTR);
$m=$n-20;
unlink($dir.$m.$ext); # 古いのを削除 -20
$m=$n-40;
unlink($dir.$m.$ext); # 念のため削除 -40
#/////////////////////////////////////////////////////
$|=1;
print "Content-type: text/html\n\n";
print <<END;
<HTML>
<HEAD>
<TITLE>flock の動作 -- 実験 $test</TITLE>
</HEAD>
<FRAMESET COLS="50%,50%">
<FRAME SRC="flocks.cgi?${test}&${n}" NAME="test1" SCROLLING="auto">
<FRAME SRC="flocks.cgi?${test}&${n}" NAME="test2" SCROLLING="auto">
</FRAMESET>
<NOFRAME>
このページは、フレームが、表\示できるブラウザでごらんください。
</NOFRAME>
</HTML>
END
exit;
}