如何检查文件被锁定以便在perl中写入而不再实际锁定它?

时间:2016-01-20 08:13:54

标签: linux perl file-locking flock

如何检查文件被锁定以便在perl中写入。我不想再次使用锁定,如果失败则告诉它被其他进程锁定。

flock (FILE, LOCK_EX | LOCK_NB)

我不想使用上述技术,因为如果文件没有被其他进程锁定,它会锁定文件。

1 个答案:

答案 0 :(得分:3)

  

我想要一个条件,如果文件没有被锁定,那么就开始写入文件。

你说当文件没有被锁定时你想要做什么,但你没有说出文件被锁定时你想做什么。我认为你想等待它解锁。

如果是,请使用以下内容:

open(my $fh, ">>", $qfn) or die $!;
flock($fh, LOCK_EX) or die $!;
print($fh ...);
close($fh);

如果要先清除文件,请在获取锁定后执行以下操作:

truncate($fh, 0) or die $!;