В PHP, как я могу проверить, был ли файл уже заблокирован с помощью flock
? Например, если другой исполняемый скрипт вызвал следующее:
$fp = fopen('thefile.txt', 'w'); flock($fp, LOCK_EX);
if (!flock($fp, LOCK_EX|LOCK_NB, $wouldblock)) { if ($wouldblock) { // another process holds the lock } else { // couldn't lock for another reason, eg no such file } } else { // lock obtained }
Как описано в документах , используйте LOCK_NB
чтобы сделать неблокирующую попытку получения блокировки, а при сбое проверьте аргумент $wouldblock
чтобы увидеть, содержит ли что-то еще блокировку.
Проверьте это следующим образом:
if (!flock($file, LOCK_EX)) { throw new Exception(sprintf('File %s is locked', $file)); } fwrite($file, $write_contents);