Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
锁定文件PHP进行读取,然后无法读取?_Php_File_Locking - Fatal编程技术网

锁定文件PHP进行读取,然后无法读取?

锁定文件PHP进行读取,然后无法读取?,php,file,locking,Php,File,Locking,我正在锁定文件,但当我读取它们时,我无法锁定,我的代码 // ACQUIRE READ LOCK if(flock($file, LOCK_SH)) { // READ HASHES FILE if($contents = file('haasdas.txt')) { // RELEASE READ LOCK flock($file, LOCK_UN); } else { echo 'errrrrrorzzzer'; } } 这里发生了什么?

我正在锁定文件,但当我读取它们时,我无法锁定,我的代码

// ACQUIRE READ LOCK
if(flock($file, LOCK_SH)) {
// READ HASHES FILE
if($contents = file('haasdas.txt')) {
    // RELEASE READ LOCK
    flock($file, LOCK_UN);
} else {
            echo 'errrrrrorzzzer';
      }
}
这里发生了什么?

如上所述,flock不处理文件名,而是处理文件描述符:

$fd=fopen($filename,'rb');
while (!flock($fd,LOCK_SH)) usleep(500);
$fs=fstat($fd);
$contents=fread($fd,$fs['size']);
flock($fd,LOCK_UN);
fclose($fd);
错误处理留给读者作为练习