Página 1 de 1

flock(FILE,8) ??????

NotaPublicado: 2005-10-14 10:37 @484
por monoswim
Hola, me topé con un script que antes de ceerrar un archivo hacía

flock(FILE,8);

Nunca había visto el número 8 en flock !!!

Busqueé en mi biblia de perl y ni siquiera usa número para flock sino que usa palabras como LOCK_EX para que tenga acceso exculivo (para escritura, lo que sería 2)

Alguien sabe que corno hace ese 8 ??? y que opciones más hay de flockeo ?

Saludos

NotaPublicado: 2005-10-14 12:46 @573
por Perl user
Corresponde a la bandera LOCK_UN del módulo Fcntl.

Generalmente se asocia un valor potencia de 2 a las banderas para permitir inteligentemente encender o apagar bits de manera conjunta con operadores de bits propiamente, así como hacer verificaciones, de esta manera:

LOCK_SH = 0x1
LOCK_EX = 0x2
LOCK_NB = 0x4
LOCK_UN = 0x8

( Esto fué heredado directamente del fcntl.h de C )

Nota: El hecho de que lo hayas visto así en un código funcional no significa que debas hacerlo, poner código 'hardcoded' tiende a errores y aparte no es portable ( imagina que en HPUX el valor de LOCK_UN cambie ), es mejor apegarte a las estandarizaciones de las bibliotecas, por algo ponen esas constantes.

Saludos,

NotaPublicado: 2005-10-14 14:41 @653
por monoswim
haa, perfecto, entonces lo haré con las constantes...

Gracias y saludos