在perl的:

我有一个文件在读/写打开,一个排他锁。

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

如果我写更多的数据比它以前持有的文件,该文件会越来越大。结果 如果我写更少的数据,我的新内容是在开始,但旧的内容仍然存在在文件的结尾。

这并不奇怪,但是这不是我想要的。

有没有一种简单的方法,而它在读/写打开收缩文件?基本上,我想要告诉它结束文件在此确切字节位置。

我知道我可以不同,打开它,我考虑这样做,但一个行的解决将是很好的。

有帮助吗?

解决方案

其他提示

其实我不知道perl的,但由于ftruncate(2)将是C函数,也许有助于?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top