/* chiyo1.c - Don Yang (uguu.org) 11/05/02 */ #include int main(int argc, char **argv) { unsigned int table[256], crc; FILE *infile; int i, j, c; if( argc < 2 ) { printf("%s [...]\n", *argv); } else { for(i = 0; (crc = i) < 256; table[i++] = crc) for(j = 8; j > 0; j--) crc = (crc >> 1) ^ ((crc & 1) ? 0xedb88320 : 0); for(i = 1; i < argc; i++) if( (infile = fopen(argv[i], "rb")) ) { for(crc = 0xffffffff; (c = fgetc(infile)) > -1; crc = ((crc >> 8) & 0xffffff) ^ table[(crc ^ c) & 255]); fclose(infile); printf("%s: %08x\n", argv[i], crc ^ 0xffffffff); } } return 0; }