#!/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; }