Domanda

in Perl:

Ho un file aperto in lettura / scrittura, con un blocco esclusivo.

open( $f, "+< $filename" );
flock( $f, LOCK_EX );

Se scrivo più dati da file di quanto precedentemente detenuta, il file crescerà.
Se scrivo meno dati, i miei nuovi contenuti sono agli inizi, ma i vecchi contenuti sono ancora lì alla fine del file.

Questo non è sorprendente, ma non è quello che voglio.

C'è un modo semplice per compattare il file mentre è aperto in lettura / scrittura? Fondamentalmente voglio dire a finire il file esattamente questa posizione di byte.

So che posso aprire in modo diverso, e sto pensando di fare questo, ma una correzione di una linea sarebbe bello.

È stato utile?

Soluzione

Altri suggerimenti

Io in realtà non so su Perl, ma dal momento che ftruncate(2) sarebbe la funzione C, forse questo aiuta?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top