Integridad de ficheros
Salvador Ortiz Garcia
sog@msg.com.mx
Wed, 4 Mar 1998 15:09:16 -0600 (CST)
On Wed, 4 Mar 1998, Jose Ignacio wrote:
> Hola, utilizando los consejos de Salvador (Muchas gracias) he intentado
> probar con flock pero tengo problemas
Dije:
> > Asumiendo LOCK_SH = 1, LOCK_EX = 2, LOCK_NB = 4 y LOCK_UN = 8
Y se defines asi:
> $LOCK_EX = 2; #nadie puede tocar el fichero
No puedes usar:
> flock(FF,LOCK_EX); # Nadie puede tocar el fichero, (pues a mi no me
Pon: flock(FF,$LOCK_EX);
O mejor aún, define: sub LOCK_EX(){2} que crea una constante via inline
y entonces si, LOCK_EX sin $ jala.
Ahora, en:
> while (<FF>) {
....
> }
Quedas al _final_ del archivo.
> for ($i=0;$i<=$#kk;$i++) {
> print FF "$kk[$i]";
Es _ahí_ donde quieres escribir?
> }
> close FF;
En cuanto cierras un archivo automáticamente se liberan los locks, lo que
sigue sale sobrando:
> flock(FF,LOCK_UN); # Libere o no el fichero me escribe igual desde
> #cualquier parte
Saludos.
Salvador Ortiz.