Kri*_*ege 5 linux nonblocking file-locking flock
考虑这样一种情况:两个进程同时尝试使用某个文件放置一个独占锁flock(fd, LOCK_EX|LOCK_NB).
如上所述,尝试是非阻塞的,因此两个进程中的一个应该失败EWOULDBLOCK.
这是我的问题:(Linux)实现是否flock()保证两个进程中的一个在每种情况下都会成功?或者,EWOULDBLOCK即使没有其他人干扰,它们是否有可能最终失败?
简而言之,可以flock(fd, LOCK_EX|LOCK_NB)虚假地失败EWOULDBLOCK吗?
我主要对flock()Linux提供的版本感兴趣,但是flock()欢迎关于其他系统(如OS X)的信息.
此外,我假设答案是相同的,无论锁是独占(LOCK_EX)还是共享(LOCK_SH).如果没有,请告诉我.