我正在尝试检查磁盘或磁盘映像是否为"空".我假设如果第一个1mb和最后一个1mb是零则这是真的.我开始尝试重新创建,hexdump但此时似乎有点啰嗦.
这是我的代码:
open DISK, $disk or die $!;
for( 1 .. 1024 ) {
$buffer = undef;
sysread(DISK, $buffer, 1024, 0) or last;
for ( split //, $buffer ) {
if( ord($_) =~ /[^0]/ ) {
$flag++;
}
}
}
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?
直接检查字节字符串是否$buffer包含除\0字节以外的任何内容.
if ($buffer =~ /[^\0]/) {
$flag++;
}
Run Code Online (Sandbox Code Playgroud)