Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 正在缩小以读/写方式打开的文件_Perl_File Io_Readwritelock - Fatal编程技术网

Perl 正在缩小以读/写方式打开的文件

Perl 正在缩小以读/写方式打开的文件,perl,file-io,readwritelock,Perl,File Io,Readwritelock,在perl中: 我有一个以读/写方式打开的文件,带有独占锁 打开($f,“+

在perl中:

我有一个以读/写方式打开的文件,带有独占锁


打开($f,“+<$filename”)
鸥群(f,洛克什);

如果我向文件中写入的数据多于以前保存的数据,文件将增长。
如果我写更少的数据,我的新内容在开始,但旧内容仍然在文件的末尾

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

在以读/写方式打开文件时,是否有一种简单的方法来收缩文件?基本上我想告诉它在这个字节位置结束文件


我知道我可以以不同的方式打开它,我正在考虑这样做,但是一行修复会很好。

我实际上不知道perl,但是因为
ftruncate(2)
将是C函数,也许会有帮助?

你们都赢得了一个cookie。我不能在9分钟内接受你的答案(为什么?),我甚至搜索了truncate这个词,但不知怎么的,还是漏掉了。谢谢。我建议测试open、flock、truncate等@hpavc或use的结果。我正在测试所有这些命令的结果。为了简洁起见,就把它们删掉吧。