PHP检查文件是不是被flock()锁定?

Posted

技术标签:

【中文标题】PHP检查文件是不是被flock()锁定?【英文标题】:PHP check if file locked with flock()?PHP检查文件是否被flock()锁定? 【发布时间】:2011-03-10 02:59:20 【问题描述】:

如果文件存在但当前被LOCK_EX 锁定,fopen() 会失败吗?

还是我必须打开它,然后尝试设置一把锁,以确定是否已经存在?

我也读过flock()会;

暂停 [脚本] 直到您无限期地获得锁定或直到您的脚本超时

http://www.php.net/manual/en/function.flock.php#95257

如果是这样,这个“暂停”是否可以绕过;

if (!flock($f, LOCK_SH | LOCK_NB)) 
    // file locked, do something else

【问题讨论】:

【参考方案1】:

flock() 实际上并不会阻止您读取/写入文件,它只允许您“传达”锁定其他脚本的想法。您可以使用您发布的 sn-p 检测文件是否被锁定。

【讨论】:

以上是关于PHP检查文件是不是被flock()锁定?的主要内容,如果未能解决你的问题,请参考以下文章

php利用文件进行排他型锁定,防止并发

PHP - 检查 CSV 文件是不是被锁定以供其他用户修改

PHP使用flock实现文件加锁来防止多进程同时写入文件

PHP 利用文件锁处理高并发

PHP 利用文件锁处理高并发

PHP 利用文件锁处理高并发