3
我在讀關於flock。示例中有以下行:
flock($fh, LOCK_EX) or die "Cannot lock mailbox - $!\n";
此調用是阻止調用權限?所以如果鎖已經佔用了呼叫塊。
我假設,如果調用返回鎖被授予。那麼die
何時會發生?什麼時候阻塞呼叫羣失敗?
我在讀關於flock。示例中有以下行:
flock($fh, LOCK_EX) or die "Cannot lock mailbox - $!\n";
此調用是阻止調用權限?所以如果鎖已經佔用了呼叫塊。
我假設,如果調用返回鎖被授予。那麼die
何時會發生?什麼時候阻塞呼叫羣失敗?
flock
是同名系統調用的包裝。 $!
由系統設置。所以請查閱系統的文檔以獲得答案。
在我的系統,按照man 2 flock
,
EBADF
:fd
不是一個打開的文件描述符。
EINTR
:在等待獲取鎖定時,通過傳遞處理程序捕獲的信號來中斷通話;見信號(7)。
EINVAL
:operation
無效。
ENOLCK
:內核運行內存不足以分配鎖定記錄。
EWOULDBLOCK
:文件被鎖定,並且LOCK_NB
標誌被選中。