修改clogan_core.c文件
clogan_write 方法
if (logan_model->file_len > max_file_len) {
char *filePath = malloc(strlen(logan_model->file_path));
memcpy(filePath, logan_model->file_path, strlen(logan_model->file_path));
char *newPath = malloc(strlen(filePath)+5);
memset(newPath, 0 , strlen(filePath)+5);
memcpy(newPath, filePath, strlen(filePath));
strcat(newPath, "_copy");
FILE *fp_to;
int len; //获取文件长度
char *ch=NULL; //缓存buffer
fflush(logan_model->file); //刷新文件
if ((fp_to=fopen(newPath,"w+"))==NULL) //打开目标文件
{
return CLOAGN_WRITE_FAIL_MAXFILE;
}
len=ftell(logan_model->file); //获取源文件长度
ch=(char *)malloc(sizeof(char *)*(len)); //动态分配数组长度
memset(ch,0,len); //清零,否则无法将内容写入!!!
rewind(logan_model->file); //将源文件指针复位到开头,否则写入为空!
fread(ch,1,len,logan_model->file); //将源文件内容写到buffer中
fwrite(ch,1,len,fp_to); //将buffer中的内容写回到目标文件中
fclose(logan_model->file); //关闭文件
fclose(fp_to);
remove(filePath);
logan_model = NULL;
char *filename = strrchr(filePath, '/')+1;
clogan_open(filename);
}