#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\r\n");
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. \r\nfile_set_val:%d file_end_val:%d \r\n", 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\r\n");
return ERROR;
}
fread(content, len, 1, fp);
printf("read content is:%s\r\n", content);
return 0;
}
int back_para_increase(char* fileName, int flag)
{
FILE* fp;
fp = fopen(fileName, "ab");
if(fp == NULL)
{
printf("read file fail\r\n");
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\r\n",flag_val);
}
free(content_1);
free(content_2);
}
int main()
{
printf("***************************\r\n");
file_compare();
return 0;
}