gpt4 book ai didi

windows - 为什么重写二进制文件不起作用?

转载 作者:可可西里 更新时间:2023-11-01 11:21:18 24 4
gpt4 key购买 nike

我的tar.gz文件差不多了。我需要在解包之前跳过一些字节,然后解压缩它,更改一些内容并再次打包。

 #!perl

open (my $src, "<", $path) or die $!;
binmode($src);
seek($src, $magicNumber,0);

open(my $tgz, ">", $path . ".tar.gz");
binmode($tgz);

#while(<$src>){
# print $tgz $_;
#}
my $n; my $data;
while(($n = read $src, $data, 4) != 0){
print $tgz $data;
}

为什么在使用未注释版本时生成的文件比未注释版本更短(中间跳过字节)。我会理解文件末尾是否会损坏但生成的文件在中间某处有所不同。对此有什么解释吗?

很遗憾,我不允许上传重现问题的文件。

最佳答案

使用类似 foreach(<$src>) 的构造对于二进制文件一般不是很好,因为它以行模式读取(二进制文件没有行的概念)。

如果您在文件之间进行二进制比较,我猜您丢失的字节是 CR 或 LF。

关于windows - 为什么重写二进制文件不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8940582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com