我正在阅读 flock .该示例有这一行:
flock($fh, LOCK_EX) or die "Cannot lock mailbox - $!\n";
这个电话是阻塞电话吗?因此,如果锁已被占用,则调用 block 。
我假设如果调用返回,则锁定被授予。那么 die
会在什么时候发生?
最佳答案
flock
是同名系统调用的包装器。 $!
由系统设置。因此,请查阅系统文档以获得答案。
在我的系统上,根据 man 2 flock
,
EBADF
:fd
不是打开的文件描述符。EINTR
:在等待获取锁时,调用被处理程序捕获的信号传送中断;见信号(7)。EINVAL
:操作
无效。ENOLCK
:内核内存不足,无法分配锁记录。EWOULDBLOCK
:文件被锁定并且选择了LOCK_NB
标志。
关于linux - 什么时候对 flock 的阻塞调用会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19481010/