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.