PHP проверяет, заблокирован ли файл с помощью flock ()? - PullRequest
16 голосов
/ 30 июня 2010

Ошибка fopen(), если файл существует, но в данный момент заблокирован с помощью LOCK_EX?

Или мне нужно открыть его, а затем попробовать и установить блокировку, чтобы определить, существует ли она уже?

Я также читал, что flock() будет;

приостановить [сценарий], пока вы не получите блокировку на неопределенное время или до истечения срока действия сценария

http://www.php.net/manual/en/function.flock.php#95257

Если это так, правда ли, что эту «паузу» можно обойти;

if (!flock($f, LOCK_SH | LOCK_NB)) {
    // file locked, do something else
}

1 Ответ

12 голосов
/ 30 июня 2010

flock() на самом деле не мешает вам читать / записывать в файл, он только позволяет «донести» идеи блокировки до других скриптов. С помощью сниппета, который вы разместили, вы можете определить наличие блокировки файла.

...