2010-06-30 12 views
14

¿Fallará fopen() si existe un archivo, pero actualmente está bloqueado con LOCK_EX?Comprobación de PHP si el archivo está bloqueado con flock()?

¿O tengo que abrirlo, y luego intentar y establecer un candado, para determinar si ya existe uno?

También he leído que flock() voluntad;

pausa [el guión] hasta que usted consigue el bloqueo por tiempo indefinido o hasta que sus tiempos de guión a cabo

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

Si es así, ¿es verdad esta 'pausa' puede ser pasado por alto con;

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

Respuesta

10

flock() en realidad no le impide leer/escribir en un archivo, sólo se le permite "comunicar" las ideas de bloqueo a otros scripts. Puedes detectar si hay un bloqueo en un archivo usando el fragmento que publicaste.

+0

Mucho aprecié a Daniel :) – TheDeadMedic

Cuestiones relacionadas