Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在阅读有关羊群的信息。该示例有这一行: flock($fh, LOCK_EX) or die "Cannot lock mailbox - $!\n"; 此调用是阻塞调用,对吗?因此,如果锁已被占用,则调用块。 我假设如果调用返回,则授予锁。那么什么时候die会发生呢?
flock($fh, LOCK_EX) or die "Cannot lock mailbox - $!\n";
die
flock是同名系统调用的包装器。$!由系统设置。因此,请查阅系统文档以获取答案。
flock
$!
在我的系统上,根据man 2 flock,
man 2 flock
EBADF:fd不是打开的文件描述符。
EBADF
fd
EINTR:在等待获取锁时,调用被处理程序捕获的信号传递中断;见信号(7)。
EINTR
EINVAL:operation无效。
EINVAL
operation
ENOLCK: 内核用于分配锁记录的内存不足。
ENOLCK
EWOULDBLOCK: 文件被锁定并且LOCK_NB标志被选中。
EWOULDBLOCK
LOCK_NB