警告:flock():"Illegal operation argument" 和 LOCK_NB

Warning: flock(): "Illegal operation argument" with LOCK_NB

当我尝试使用 flock 从文件中读取数据以检查文件锁是否已释放以进行读取时,我做错了什么?

我收到警告:flock():"Illegal operation argument"

function SafeReadContent($file, $t = 500, $limit = 1000){
  $fp = fopen($file, "r");
  flock($fp, LOCK_NB); // This line can be removed. It for test only.
  while ( ! flock($fp, LOCK_NB) ) {
    echo "Read data performed. ";
    $str = file_get_contents($file, FILE_IGNORE_NEW_LINES ); 
    usleep($t); // read/write 128kb ~ < 0.5ms
    $s++;
    if ($s==$limit) // force break
      break;
  }
  return $str;
}

您不能单独使用LOCK_NB。 LOCK_NB 必须与操作一起使用。例如

if(!flock($fp, LOCK_EX | LOCK_NB)) {..