开发者社区> 问答> 正文

如何防止他人在文件写入时对其进行读/写操作

我想在一个过程正在文本文件上写入时锁定。因此没有其他进程可以读取或写入。

展开
收起
祖安文状元 2020-01-06 16:19:42 500 0
1 条回答
写回答
取消 提交回答
  • flockPerl中的文件锁定机制是建议性的。如果其他进程也使用flock,则可以使用它来阻止其他进程访问文件。甚至在某些系统中,这种机制也很不稳定(我正在看着您,NFS)。

    使用其他进程不会知道的匿名临时文件操作,并在处理完成后重命名文件可能会更可靠。

    use File::Temp;
    
    my ($fh, $obscure_filename) = tempfile();
    print $fh "some data ...\n";
    ...
    close $fh;
    rename($obscure_filename, $the_real_name_of_the_file);
    
    2020-01-06 16:19:50
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载