cmp.pl

来自「一个用于点对点传输加密的工具包源码」· PL 代码 · 共 48 行

PL
48
字号
#!/usr/local/bin/perl($#ARGV == 1) || die "usage: cmp.pl <file1> <file2>\n";open(IN0,"<$ARGV[0]") || die "unable to open $ARGV[0]\n";open(IN1,"<$ARGV[1]") || die "unable to open $ARGV[1]\n";binmode IN0;binmode IN1;$tot=0;$ret=1;for (;;)	{	$n1=sysread(IN0,$b1,4096);	$n2=sysread(IN1,$b2,4096);	last if ($n1 != $n2);	last if ($b1 ne $b2);	last if ($n1 < 0);	if ($n1 == 0)		{		$ret=0;		last;		}	$tot+=$n1;	}close(IN0);close(IN1);if ($ret)	{	printf STDERR "$ARGV[0] and $ARGV[1] are different\n";	@a1=unpack("C*",$b1);	@a2=unpack("C*",$b2);	for ($i=0; $i<=$#a1; $i++)		{		if ($a1[$i] ne $a2[$i])			{			printf "%02X %02X <<\n",$a1[$i],$a2[$i];			last;			}		}	$nm=$tot+$n1;	$tot+=$i+1;	printf STDERR "diff at char $tot of $nm\n";	}exit($ret);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?