如何检查文件被锁定以便在perl中写入。我不想再次使用锁定,如果失败则告诉它被其他进程锁定。
flock (FILE, LOCK_EX | LOCK_NB)
我不想使用上述技术,因为如果文件没有被其他进程锁定,它会锁定文件。
答案 0 :(得分:3)
我想要一个条件,如果文件没有被锁定,那么就开始写入文件。
你说当文件没有被锁定时你想要做什么,但你没有说出文件被锁定时你想做什么。我认为你想等待它解锁。
如果是,请使用以下内容:
open(my $fh, ">>", $qfn) or die $!;
flock($fh, LOCK_EX) or die $!;
print($fh ...);
close($fh);
如果要先清除文件,请在获取锁定后执行以下操作:
truncate($fh, 0) or die $!;