开发者社区 问答 正文

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

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

展开
收起
祖安文状元 2020-01-06 16:19:42 512 分享
分享
版权
举报
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 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答地址:
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等