unsigned int get_file_size(FILE *fp) { unsignfile_size; fseek(fp, 0L, SEEK_END);//从文件尾开始 0L file_size = ftell(fp); //file_size获得文件的字节数 rewind(fp); return file_size; }
bool compare_file(FILE *fp1, FILE *fp2) { unsigned int file_size1, file_size2; unsigned char buff_f1, buff_f2; bool result = TRUE; file_size1 = get_file_size(fp1); //获得fp1文件的大小 file_size2 = get_file_size(fp2); //获得fp2文件的大小 if (file_size1 != file_size2) { return FALSE; } while(1) //进入死循环直到从下面跳出为止 { if (feof(fp1) || feof(fp2))//到文件尾(EOF)就跳出循环 { break; } fread((void *)&buff_f1, 1, 1, fp1); fread((void *)&buff_f2, 1, 1, fp2); if (buff_f1 != buff_f2) { result = FALSE; break; } } rewind(fp1); rewind(fp2); return result; } //end of compare_file
关于rewind函数百度解释以下