gpt4 book ai didi

Perl Open 和 Flock 超时

转载 作者:行者123 更新时间:2023-12-05 00:59:11 24 4
gpt4 key购买 nike

Perl 中的“open”函数是否会自动检查文件是否被锁定并等待解锁?如果是这样,它会等待多长时间,或者我如何控制这段时间?

我有 5 个 fork 进程将数据附加到同一个文件。每个 fork 进程基本上打开文件,然后聚集它。然后附加数据并关闭文件处理程序以解锁文件,以便其他派生进程可以使用它。

一切都按预期工作,但我担心如果其中一个 fork 进程花费太长时间来完成其任务,打开命令可能会超时。

最佳答案

flock仅防止使用 flock 获取锁;它不会阻止文件被打开、读取、修改或删除。

没有 LOCK_NB 标志的

flock 将阻塞,直到可以获得锁,或直到被信号中断。

带有 LOCK_NB 标志的

flock 将立即返回。

  • 如果 flock 能够获得锁,它将返回 true。
  • 如果flock 无法获得锁,它将返回false,并设置errno
    • $!{EINTR} 表示操作被信号中断。
    • $!{EWOULDBLOCK} 表示需要等待,但指定了 LOCK_NB

关于Perl Open 和 Flock 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42914538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com