#define _XOPEN_SOURCE 500 #include #include #include #include #include #include int main(int argc, char **argv){ int f1, f2, res; unsigned char c1, c2; unsigned long int l=0, pos, l1, l2, l3, l4; struct stat buf; f1=open("1.tar.bz2",O_RDONLY); if(f1 == -1){ puts ("Err 1"); exit(1); } f2=open("2.tar.bz2",O_RDONLY); if(f2 == -1){ puts ("Err 1"); exit(1); } fstat(f1, &buf); l1=buf.st_size; fstat(f2, &buf); l2=buf.st_size; if(l1 > l2){ l3 = l2; l4 = l1-l2; } else { l3 = l1; l4 = l2-l1; } printf("Несовпадений=%ld,Архив1=%ld,Архив2=%ld,Минимум=%ld,Дельта=%ld\n",l,l1,l2,l3,l4); for(pos=0; pos=32?c1:' ', c2>=32?c2:' '); l++; } } printf("Несовпадений=%ld,Архив1=%ld,Архив2=%ld,Минимум=%ld,Дельта=%ld\n",l,l1,l2,l3,l4); printf("Разница=%8.2f%%\n", (float)(l+l4)*100.0/(float)(l3+l4) ); }