Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/11/2006, 04:13
jgar
 
Fecha de Ingreso: septiembre-2006
Mensajes: 81
Antigüedad: 17 años, 7 meses
Puntos: 0
dudas sobre flock

Tengo una duda sobre lo que dicen los manuales del flock.
No entiendo exactamente...
Yo quiero que al abrir un archivo para escribir, el bloqueo impida que otra persona pueda abrirlo para escribir pero si pueda abrirlo para leer.
Esto es el número 2 bloqueo exlusivo????
Y entonces cuando se ejecuta un codigo y al entrar en un fichero para escribir en el se encuentra un bloqueo...que pasa? sigue con el resto del codigo? da un error? o como se debe tratar esta situación?

flock() opera sobre un file handler que debe apuntar a un fichero previamente abierto. Puede tener los siguientes valores:

Para que adquiera un bloqueo compartido (lectura), se fija su valor a 1. Mas de un proceso puede tener un candado compartido para un mismo archivo.
Para obtener un bloqueo exclusivo (escritura), se fija el valor a 2. Solo un proceso puede tener un candado exclusivo. Los demás procesos deben esperar
Para liberar un bloqueo (compartido o exclusivo), se fija el valor a 3.
Si no quieres que flock() bloquee mientras está activado, suma 4 al valor fijado. si se quiere que flock no bloquee el script sumar 4 al modo (modos: 5,6,7) y consultar por el valor devuelto por la función: true si el lock fue adquirido o false si no fue adquirido. Usando esta función pueden implementarse mecanismos de sincronización entre procesos