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函數百度解釋以下