fichier Shrinking qui est ouvert en lecture / écriture
-
27-09-2019 - |
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.
La solution
Autres conseils
Je ne sais pas vraiment à propos de Perl, mais comme ftruncate(2)
serait la fonction C, peut-être ce aide?