2

パールでは:

排他ロックを使用して、読み取り/書き込みでファイルを開いています。

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

以前に保持していたよりも多くのデータをファイルに書き込むと、ファイルが大きくなります。
書き込むデータが少ない場合、新しいコンテンツは先頭にありますが、古いコンテンツはファイルの末尾に残っています。

これは驚くべきことではありませんが、私が望んでいるものではありません。

ファイルを読み取り/書き込みで開いているときにファイルを圧縮する簡単な方法はありますか? 基本的に、正確にこのバイト位置でファイルを終了するように指示したいと思います。

別の方法で開くことができることはわかっており、それを行うことを検討していますが、1行の修正がいいでしょう。

4

2 に答える 2

1

truncate

于 2010-11-23T00:24:14.567 に答える
1

私は実際にperlについて知りませんftruncate(2)が、C関数になるので、おそらくこれは役に立ちますか?

于 2010-11-23T00:25:19.003 に答える