# package gb_util *********************************************## 掲示板CGI追加機能 # { package gb_util; # # use warnings; # 警告表示 # use strict; # 構文チェック # # sub confirm *************************************************## 未確定ログ確定 # sub confirm # サブルーチン: ログファイルの内容を確定する # { # # my $logNum = 1; # ログ番号 for バックアップ退避 # my $buf = ""; # 作業領域 # # # for( ; ; ) # 無限ループ # { # # if( (-s "./LOG_MAS.txt") == (-s "./guestlog.txt") ) # ログファイルがバックアップファイルと同一かどうか # { # ログファイルがバックアップファイルと同一の場合 # last; # その後の処理をせず終了 # } # # # # while( -e "./LOG_MAS_$logNum.txt" ) # 対象の番号のバックアップファイルが存在する限り # { # # $logNum++; # ログ番号を加算していく # } # ループを抜けたら最新の番号となる # rename( "./LOG_MAS.txt", "./LOG_MAS_$logNum.txt" ); # バックアップ退避 # # # open( INFO, "<./guestlog.txt" ) # ファイルオープン(読込み専用) # or print "Location: http://bj006.com/cgi/error0.htm"."\n\n"; # 失敗したら、エラーページ0へジャンプ # flock( INFO, 1 ) # 排他ロック(LOCK_SH == 1) # or print "Location: http://bj006.com/cgi/error0.htm"."\n\n"; # 失敗したら、エラーページ0へジャンプ # read( INFO, $buf, (-s "./guestlog.txt") ); # ファイル内容を変数に読込む # close( INFO ); # ファイルクローズ # # # open( OUTFO, ">./LOG_MAS.txt" ) # ファイルオープン(書込み専用) # or print "Location: http://bj006.com/cgi/error0.htm"."\n\n"; # 失敗したら、エラーページ0へジャンプ # flock( OUTFO, 2 ) # 排他ロック(LOCK_EX == 2) # or print "Location: http://bj006.com/cgi/error0.htm"."\n\n"; # 失敗したら、エラーページ0へジャンプ # print OUTFO $buf; # マスタファイルの内容をログに書き込む # close( OUTFO ); # ファイルクローズ # # # last; # ループ終了 # } # # # # return 0; # 処理終了 # } #/sub confirm *************************************************## # # sub rollback ************************************************## ログ状態のロールバック # sub rollback # サブルーチン: ログファイルの内容を巻戻す # { # # my $buf = ""; # 作業領域 # # # open( INFO, "<./LOG_MAS.txt" ) # ファイルオープン(読込み専用) # or print "Location: http://bj006.com/cgi/error0.htm"."\n\n"; # 失敗したら、エラーページ0へジャンプ # flock( INFO, 1 ) # 共有ロック(LOCK_SH == 1) # or print "Location: http://bj006.com/cgi/error0.htm"."\n\n"; # 失敗したら、エラーページ0へジャンプ # read( INFO, $buf, (-s "./LOG_MAS.txt") ); # ファイル内容を変数に読込む # close( INFO ); # ファイルクローズ # # # open( OUTFO, ">./guestlog.txt" ) # ファイルオープン(書込み専用) # or print "Location: http://bj006.com/cgi/error0.htm"."\n\n"; # 失敗したら、エラーページ0へジャンプ # flock( OUTFO, 2 ) # 排他ロック(LOCK_EX == 2) # or print "Location: http://bj006.com/cgi/error0.htm"."\n\n"; # 失敗したら、エラーページ0へジャンプ # # # seek( OUTFO, 0, 0 ); # ポインタをファイルの先頭にセット # truncate( OUTFO, 0 ); # ファイル内容を消去 # # # print OUTFO $buf; # マスタファイルの内容をログに書き込む # close( OUTFO ); # ファイルクローズ # # # return 0; # 処理終了 # } #/sub rollback ************************************************## # # sub rollback2 ***********************************************## ログ状態のロールバック2 # sub rollback2 # サブルーチン: ログファイルの内容を(強引に)巻戻す # { # # my $buf = ""; # 作業領域 # # # open( INFO, "<./LOG_MAS_FRC.txt" ) # ファイルオープン(読込み専用) # or print "Location: http://bj006.com/cgi/error0.htm"."\n\n"; # 失敗したら、エラーページ0へジャンプ # flock( INFO, 1 ) # 共有ロック(LOCK_SH == 1) # or print "Location: http://bj006.com/cgi/error0.htm"."\n\n"; # 失敗したら、エラーページ0へジャンプ # read( INFO, $buf, (-s "./LOG_MAS_FRC.txt") ); # ファイル内容を変数に読込む # close( INFO ); # ファイルクローズ # # # open( OUTFO, ">./guestlog.txt" ) # ファイルオープン(書込み専用) # or print "Location: http://bj006.com/cgi/error0.htm"."\n\n"; # 失敗したら、エラーページ0へジャンプ # flock( OUTFO, 2 ) # 排他ロック(LOCK_EX == 2) # or print "Location: http://bj006.com/cgi/error0.htm"."\n\n"; # 失敗したら、エラーページ0へジャンプ # # # seek( OUTFO, 0, 0 ); # ポインタをファイルの先頭にセット # truncate( OUTFO, 0 ); # ファイル内容を消去 # # # print OUTFO $buf; # マスタファイルの内容をログに書き込む # close( OUTFO ); # ファイルクローズ # # # &gb_util::confirm(); # 確定処理も行う(!性能改善余地!) # # # return 0; # 処理終了 # } #/sub rollback ************************************************## # 1; } #/package gb_util *********************************************## #