Le 5 janvier 2011 10:24, Yves Martin <[email protected]> a écrit :
>
>
> Par contre si des processus sont toujours en train de concaténer des lignes, 
> on risque de les perdre - à moins de faire du 'flock' en plus.

Il me semble aussi qu'on risque de perdre des lignes.
Mon code recopie les lignes ajoutées pendant le comptage de retour de ligne
(et dans ce cas conserve plus de lignes que demandé), mais perd les lignes
ajoutées entre la fin de copie et le ftruncate.
En revanche, je ne vois pas de solution avec flock, car les locks Unix
sont coopératifs. Je crois cependant qu'il existe des "mandatory locks"
sur Linux, mais je n'ai aucune expérience avec. Voir
http://www.mjmwired.net/kernel/Documentation/filesystems/mandatory-locking.txt

Les verrous de fichier sur Unix sont généralement complètement foireux.
Voir http://oilq.org/fr/node/13344 par exemple.

Marc
_______________________________________________
gull mailing list
[email protected]
http://forum.linux-gull.ch/mailman/listinfo/gull

Répondre à