perl – 当您再次使用open时,文件锁会保留吗?

perl – 当您再次使用open时,文件锁会保留吗?,第1张

概述假设: my $fh;open $fh, ">>", "file.txt";flock($fh, LOCK_EX);open $fh, "+<", "file.txt";close $fh; 文件锁会保留还是会被释放?如果它会被释放有没有办法让它留下来? 我没有找到相关信息. 在已分配给打开文件描述符的文件句柄上调用open会对文件句柄执行隐式关闭.关闭一个锁定的文件句柄会释放锁定. 通过 假设:

my $fh;open $fh,">>","file.txt";flock($fh,LOCK_EX);open $fh,"+<","file.txt";close $fh;

文件锁会保留还是会被释放?如果它会被释放有没有办法让它留下来?
我没有找到相关信息.

解决方法 在已分配给打开文件描述符的文件句柄上调用open会对文件句柄执行隐式关闭.关闭一个锁定的文件句柄会释放锁定.

通过在两种不同的模式下使用相同的文件句柄打开相同的文件,我不清楚你要做什么.如果您使用第二个文件句柄怎么办?

open my $fh,LOCK_EX);open my $fh2,"file.txt";... rewrite 'file.txt' with $fh2 ...close $fh2;   # done with rewriteclose $fh;    # done with lock

对于<中的文件,看起来像flock一样受到尊重模式(在linux中工作,这可能不是可移植的),所以使用它和一些搜索语句,你只需要一个文件句柄.

# make sure file exists before you use '+<' mode{ open my $touch,'>>','file.txt'; }open my $fh,'+<','file.txt';flock $fh,LOCK_EX;seek $fh,2;print $fh 'stuff for the end of the file';seek $fh,0;print $fh 'something for the start of the file';close $fh;  # releases lock
总结

以上是内存溢出为你收集整理的perl – 当您再次使用open时,文件锁会保留吗?全部内容,希望文章能够帮你解决perl – 当您再次使用open时,文件锁会保留吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1209790.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存