何时阻止调用flock会失败?

时间:2013-10-20 18:13:43

标签: linux perl file locking flock

我正在阅读flock。这个例子有这一行:
flock($fh, LOCK_EX) or die "Cannot lock mailbox - $!\n";
这个电话是阻止通话吗?因此,如果已经锁定了呼叫块 我假设如果调用返回锁定被授予。那么die什么时候会发生?

1 个答案:

答案 0 :(得分:7)

flock是同名系统调用的包装器。 $!由系统设置。因此,请参阅系统的文档以获得答案。

在我的系统上,按照man 2 flock

  • EBADFfd不是一个打开的文件描述符。

  • EINTR:在等待获取锁定时,通过传递处理程序捕获的信号来中断调用;见信号(7)。

  • EINVALoperation无效。

  • ENOLCK:内核内存不足,无法分配锁记录。

  • EWOULDBLOCK:文件已锁定且已选中LOCK_NB标记。