La disminución de archivo que se abre en lectura / escritura
-
27-09-2019 - |
Pregunta
En Perl:
Tengo un archivo abierto en modo lectura / escritura, con un bloqueo exclusivo.
open( $f, "+< $filename" );
flock( $f, LOCK_EX );
Si escribo más datos para el archivo de lo que previamente llevó a cabo, el archivo crecerá.
Si escribo menos datos, mis nuevos contenidos están al principio, pero el antiguo contenido siguen ahí al final del archivo.
Esto no es sorprendente, sin embargo no es lo que quiero.
¿Hay una manera simple de reducir el tamaño del archivo mientras se abre en modo lectura / escritura? Básicamente quiero decir que para acabar con el archivo exactamente en esta posición de byte.
Sé que puedo abrirlo de forma diferente, y estoy pensando en hacer eso, pero una solución de una línea estaría bien.
Solución
Otros consejos
En realidad, no sé nada de Perl, pero desde ftruncate(2)
sería la función de C, tal vez este ayuda?