好吧我实际上已经付出了一些努力来实现这一目标,这一次:)
我有这段代码:
#! /usr/bin/perl
open(my $fin, '<', "./file1.bin") or die "Cannot open file1.bin: $!";
binmode($fin);
open(my $fout, '>>', "./file2.bin") or die "Cannot create file2.bin: $!";
binmode($fout);
seek($fin,0x760, SEEK_CUR);
read($fin, 0x400,)
print ("$fin, $fout);
close($fout);
我不知道你是否能看到我想要做什么,但我试图寻求抵消0x760 然后从偏移量0x760读取然后从file1.bin读取一个字节块(0x400)并将该块字节打印到file2.bin
所以我想这就是我想要做的事情:
open file1.bin for reading in binmode
open file2.bin for writing in binmode
seek to offset 0x760 in file1.bin
read a chunk of data (0x400) from file1.bin
write the chunk of data (0x400) to file2.bin
希望你明白我想要完成的事情:)并且任何输入都是教育性的:)
答案 0 :(得分:1)
你忘了启用警告(这会告诉你“SEEK_CUR”被解释为字符串,因为你没有导入常量)。
阅读文档以供阅读;你需要提供一个变量来读取数据。
还阅读印刷品;它的语法是print FILEHANDLE LIST
; (其中FILEHANDLE是$ fout,LIST是您读入的变量)。
答案 1 :(得分:1)
您的代码中存在拼写错误:
print ("$fin, $fout);
应替换为(在打开和绑定模式之后)
my $buffer = '';
sysseek $fin, 0x760, SEEK_SET;
sysread $fin, $buffer, 0x400;
syswrite $fout, $buffer;
close $fin;
close $fout;