En perl:Rétrécissement du fichier qui est ouvert en lecture/écriture
J'ai un fichier ouvert en lecture/écriture, avec un verrouillage exclusif.
open($f, "+< $filename");
flock($f, LOCK_EX);
Si j'écris plus de données dans le fichier qu'il a auparavant occupé, le fichier se développera.
Si j'écris moins de données, mes nouveaux contenus sont au début, mais l'ancien contenu est toujours là à la fin du fichier.
Ce n'est pas surprenant, mais ce n'est pas ce que je veux.
Existe-t-il un moyen simple de réduire le fichier lorsqu'il est ouvert en lecture/écriture? Fondamentalement, je veux lui dire de terminer le fichier exactement à cette position d'octet.
Je sais que je peux l'ouvrir différemment, et j'envisage de le faire, mais une correction d'une ligne serait bien.
Je suggère de tester le résultat de l'ouverture, flock, tronquer, etc – hpavc
@ hpavc, ou utiliser [autodie] (http://search.cpan.org/perldoc?autodie). – cjm
Je teste les résultats de toutes ces commandes. Il suffit de les découper pour la brièveté. – Brock