/*
	cmp.c
	Print percentage of bytes that are the same
*/

#include <stdio.h>

int main(int argc, char *argv[]) {
	FILE *f1,*f2;
	unsigned char buf1[8192], buf2[8192], c1, c2;
	unsigned long in1, in2, total_in1, total_in2, diffbytes=0, c;
	int done=0;
	
	f1=fopen(argv[1],"r");
	f2=fopen(argv[2],"r");
	
	while( !done ) {
		total_in1 += in1=fread(buf1,1,8192,f1);
		total_in2 += in2=fread(buf2,1,8192,f2);
		if(in1+in2 == 0) done=1;
		for(c=0;c<in1;c++) {
			c1=buf1[c]; c1=c1/64; c1*=4;
			c2=buf2[c]; c2=c2/64; c2*=4;
			if(c1 != c2) ++diffbytes;
		}
	}
	
	fclose (f2);
	fclose (f1);

	printf("%6.2f%% byte similarity.\n", 100.0-(100.0*diffbytes/total_in1));
}

