Question

En perl:

J'ai un fichier ouvert en lecture / écriture, avec un verrou 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 sont toujours là à la fin du fichier.

Ce n'est pas surprenant, mais ce n'est pas ce que je veux.

Y at-il un moyen simple de réduire le fichier alors qu'il est ouvert en lecture / écriture? Fondamentalement, je veux dire à la fin du fichier à cette position d'octet exactement.

Je sais que je peux l'ouvrir différemment, et je songe à me faire, mais une solution d'une ligne serait bien.

Était-ce utile?

La solution

Autres conseils

Je ne sais pas vraiment à propos de Perl, mais comme ftruncate(2) serait la fonction C, peut-être ce aide?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top