【发布时间】:2012-08-05 20:28:30
【问题描述】:
我看到人们这样使用flock:
if (!$fp = fopen($file_name, 'wb'))
{
return FALSE;
}
if (flock($fp, LOCK_EX))
{
fwrite($fp, serialize($data));
flock($fp, LOCK_UN);
}
还有这个:
if (!$fp = @fopen($file_name, 'rb'))
{
return FALSE;
}
flock($fp, LOCK_SH);
$data = '';
if (filesize($file_name) > 0)
{
$data = unserialize(fread($fp, filesize($file_name)));
}
但是在fopen 调用和flock 调用之间是否有其他人编辑文件的机会?和fread 的同样问题
编辑:
为了澄清我为什么要问这个......我的问题基于代码here, 在mysql缓存情况下,如果他们都可以的话,如何阻止20个人同时访问文件进入fopen和flock之间?
那个代码是万无一失的吗?
【问题讨论】:
标签: php locking file-locking flock