17

Will fopen() fail if a file exists, but is currently locked with LOCK_EX?

Or do I have to open it, and then try and set a lock, in order to determine if one already exists?

I've also read that flock() will;

pause [the script] untill you get the lock for indefinite amount of time or till your script times out

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

If so, is it true this 'pause' can be by-passed with;

if (!flock($f, LOCK_SH | LOCK_NB)) {
    // file locked, do something else
}
Community
  • 1
  • 1
TheDeadMedic
  • 9,948
  • 2
  • 35
  • 50

1 Answers1

12

flock() doesn't actually prevent you from reading/writing to a file, it only allows you to "communicate" the ideas of locking to other scripts. You can detect if there is a lock on a file using the snippet you posted.

Daniel Egeberg
  • 8,359
  • 31
  • 44