如何使用Perl从二进制文件中获取最后16个字节?
我使用Perl read读取图像:如何使用Perl从二进制文件中获取最后16个字节?,perl,Perl,我使用Perl read读取图像: open (FILE,"<$filename") or die $!; binmode FILE; while (($n = read FILE, $data, 4) != 0) { $buf .= $data; } close (FILE); open(FILE),用于移动到文件结束前16个字节的位置,然后读取16个字节: open (FILE,
open (FILE,"<$filename") or die $!;
binmode FILE;
while (($n = read FILE, $data, 4) != 0) {
$buf .= $data;
}
close (FILE);
open(FILE),用于移动到文件结束前16个字节的位置,然后读取16个字节:
open (FILE, "<$filename") or die $!;
binmode FILE;
seek FILE, -16, 2;
read FILE, $data, 16;
close (FILE);
如果您有perl v5.6.0或更高版本,您应该使用词法文件句柄(当它们超出范围时自动关闭)和3-argopen
(当使用2-argopen
打开时,恶意命名的文件可以执行任意程序),例如:打开我的$file,'谢谢您的建议!
use Fcntl qw(SEEK_END);
open (FILE, "<$filename") or die $!;
binmode FILE;
seek FILE, -16, SEEK_END;
read FILE, $data, 16;
close (FILE);