如何在 perl 中检查文件是否被锁定以写入。我不想再次使用锁定,如果它失败,它会告诉它正在被其他进程锁定。
flock (FILE, LOCK_EX | LOCK_NB)
我不想使用上述技术,因为如果文件未被其他进程锁定,它会锁定文件。
最佳答案
I want a condition like if the file is not locked then start writing to file.
你说了文件未锁定时你想做什么,但你没有说文件锁定时你想做什么。我想你想等它解锁。
如果是这样,请使用以下内容:
open(my $fh, ">>", $qfn) or die $!;
flock($fh, LOCK_EX) or die $!;
print($fh ...);
close($fh);
如果想先清空文件,在获得锁后进行如下操作:
truncate($fh, 0) or die $!;
关于linux - 如何检查文件是否已锁定以写入 perl 而无需再次实际锁定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34894711/