At Wed, 14 Dec 2005 23:14:43 +0900,
Yoshihiko Sarumaru wrote:
> ちゃんと排他制御はしてますか?

していませんでした; (いつも御世話になります。)
古い(失礼;)「CGIプログラミング入門」のままで使っていました。
ずっと無事故でしたが,以下の様に変更しました。

% cat accesslog.cgi
...
$uselock = 1;
...
if (!&lock_file(AGENT)) {
  print "busy_1";
  exit(0);
}
print AGENT "$ENV{'HTTP_USER_AGENT'}\n";
&unlock_file(AGENT);
close(AGENT);
...
sub lock_file {
    local(*FILE) = @_;
    if ($uselock) {
        eval("flock(FILE, 2)"); # 2=LOCK_EX
        if ($@) {
            return 0;
        }
    }
    return 1;
}
sub unlock_file {
    local(*FILE) = @_;
    if ($uselock) {
        eval("flock(FILE, 8)"); # 8=LOCK_UN
    }
}

> これは GNU tar なアーカイブのヘッダっぽいですね。

なるほど。頭からの0を無くすと,以下の様なtar型になりました。
(展開は出来ませんでしたが)

$ hd agent.log | jless
00000000  68 6f 6d 65 31 2f 6d 64  34 34 30 2f 70 75 62 6c  |home1/md440/publ|
00000010  69 63 5f 68 74 6d 6c 2f  73 75 62 2f 64 61 74 61  |ic_html/sub/data|
00000020  2f 63 6f 75 6e 74 67 69  66 2e 63 6e 74 00 00 00  |/countgif.cnt...|
00000030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000060  00 00 00 00 30 30 30 30  36 36 36 00 30 30 31 32  |....0000666.0012|
00000070  35 36 31 00 30 30 32 33  34 32 30 00 30 30 30 30  |561.0023420.0000|
00000080  30 30 30 30 30 30 36 00  31 30 33 34 30 32 36 30  |0000006.10340260|
00000090  37 35 37 00 30 31 37 34  33 33 00 20 30 00 00 00  |757.017433. 0...|
000000a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000100  00 75 73 74 61 72 20 20  00 00 00 00 00 00 00 00  |.ustar  ........|
00000110  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000110  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000140  00 00 00 00 00 00 00 00  00 30 30 30 30 30 30 30  |.........0000000|
00000150  00 30 30 30 30 30 30 30  00 00 00 00 00 00 00 00  |.0000000........|
00000160  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000200  31 33 37 31 36 0a 00 00  00 00 00 00 00 00 00 00  |13716...........|
00000210  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
...(続く)

CGIはサーバー側ではtarにして動作しているのですね?
-- 
                        /  Name : Dobashi Mitsuyoshi  /
                       / E-mail : [EMAIL PROTECTED] /

メールによる返信