我想在新的二进制文件中复制二进制主文件。这个文件只包含预定义的大小(20000行)。
我在做什么:
FILE *A_Lire;
FILE *A_Creer;
A_Lire = fopen(MASTERPath,"rb");
A_Creer = fopen(PARTPRGPath, "wb");
fseek(A_Lire,0,SEEK_END);
int end = ftell(A_Lire);
char* buf = (char*)malloc(end);
fread(buf,sizeof(char),end,A_Lire);
fwrite(buf,sizeof(char),end,A_Creer);
fclose(A_Creer);
fclose(A_Lire);
此代码创建具有良好大小的新文件,但这不是完全相同的文件,因为我无法像master那样使用这个新文件。有些东西是不同的,可能已损坏,也许是在文件中写入的方式???
你有什么想法???
我认为这是MFC代码
谢谢,
答案 0 :(得分:2)
当你执行fseek(.. SEEK_END)时,打开文件内的位置就在最后,无论何时调用fread,你都会得到0字节。
之后再做一个倒带:
fseek(A_Lire,0,SEEK_END); int end = ftell(A_Lire); fseek(A_Lire,0,SEEK_SET);