php - flock() 总是返回 true

标签 php flock

过去一个小时我一直在思考这个问题,但无法真正弄清楚出了什么问题。

这是我用来调试问题的代码。

监控.php

$fp = fopen("lock.txt", "r+");
$var=flock($fp, LOCK_EX | LOCK_NB);
var_dump($var);
$var=flock($fp, LOCK_SH | LOCK_NB);
var_dump($var);
exit;

储物柜.php

$fp = fopen("lock.txt", "r+");
sleep(60);

为了查看flock是否正常工作,我首先运行locker.php,以便该文件将被锁定60秒,然后我尝试运行monitor.php以查看是否可以获得锁定。

对于独占锁和共享锁,我都得到 TRUE

会出现什么问题?

解决方案:假设打开文件会锁定它。锁定器应该发出一个集群来锁定文件。

匆忙中错过了那部分。截止日期。截止日期:)

最佳答案

locker.php 未锁定文件。打开文件不会锁定它。 flock 是一个协作咨询锁定系统。所有各方都需要参与其中并使用flock来锁定和/或检查锁定。除非locker.php明确flock文件,否则它不会被锁定。

关于php - flock() 总是返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30097487/

相关文章:

php - 将数据库中的数据转换为列表

PHP5 SQLite3 重新编译更新,删除限制

firefox - 使用 AppleScript 从 Web 浏览器的最前面的窗口中获取 URL : The definitive list

Linux flock,如何锁定 "just"文件?

php - Laravel 4 种子数据库表与关系

PHP 包和导入

Docker 和文件锁定

php - 如何 flock() 图像?

不应该运行的代码上的 PHP 错误

linux - bash脚本flock()锁定并启动服务