问题
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
}
回答1:
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.
来源:https://stackoverflow.com/questions/3149324/php-check-if-file-locked-with-flock