#include <stdio.h> #include <stdlib.h> //#include <regex.h> char* file_name_1 = "D:\testfile.txt"; char* file_name_2 = "D:\testfile_1.cfg"; char* file_name_3 = "D:\testfile_flag.txt"; #define ERROR -1 #define OK 0 int file_length(char* fileName) { FILE* fp; int file_set_val,file_end_val; fp = fopen(fileName, "r"); if(fp == NULL) { printf("read file fail "); return ERROR; } fseek(fp, 0 , SEEK_SET); file_set_val = ftell(fp); fseek(fp, 0 , SEEK_END); file_end_val = ftell(fp); printf("file length is %d. file_set_val:%d file_end_val:%d ", file_end_val-file_set_val,file_set_val, file_end_val); return file_end_val-file_set_val; } int read_file(char* fileName, char* content, int len) { FILE* fp; fp = fopen(fileName, "r"); if(fp == NULL) { printf("read file fail "); return ERROR; } fread(content, len, 1, fp); printf("read content is:%s ", content); return 0; } int back_para_increase(char* fileName, int flag) { FILE* fp; fp = fopen(fileName, "ab"); if(fp == NULL) { printf("read file fail "); return ERROR; } if(flag) { fputc('1', fp); } fclose(fp); } int file_compare() { char* content_1; char* content_2; int len = 0, flag_val = 0; len = file_length(file_name_1); content_1 = (char*)malloc(len); memset(content_1, 0, len); read_file(file_name_1, content_1, len); len = file_length(file_name_2); content_2 = (char*)malloc(len); memset(content_2, 0, len); read_file(file_name_2, content_2, len); if(strcmp(content_1, content_2)) { back_para_increase(file_name_3,1); flag_val = file_length(file_name_3); printf("back_para_increase:%d ",flag_val); } free(content_1); free(content_2); } int main() { printf("*************************** "); file_compare(); return 0; }