Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP check if file locked with flock()?

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
}
like image 604
TheDeadMedic Avatar asked Jun 30 '10 12:06

TheDeadMedic


1 Answers

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.

like image 76
Daniel Egeberg Avatar answered Oct 20 '22 22:10

Daniel Egeberg