続:flock

  • 投稿日:
  • by
  • カテゴリ:

結局、PerlのことはPerlのドキュメントに書いてあるんだなぁ。と。

use Fcntl qw(:DEFAULT :flock);

sysopen(FH, "numfile", O_RDWR | O_CREAT) 
   or die "can't open numfile: $!";
# autoflush FH
$ofh = select(FH); $| = 1; select ($ofh);
flock(FH, LOCK_EX) 
   or die "can't write-lock numfile: $!";

$num = <FH> || 0;
seek(FH, 0, 0) or die "can't rewind numfile : $!";
print FH $num+1, "\n" or die "can't write numfile: $!";

truncate(FH, tell(FH)) or die "can't truncate numfile: $!";
close(FH) or die "can't close numfile: $!";

ちう風にかくとよい。と、perlopentutに書かれていた。perldoc perlopentutして、確認。

まぁ、結局、LOCK_EXでいいんだろうなぁ……