以下のコードを使用して、あるバイナリ ファイルから別のバイナリ ファイルにコピーしましたが、最初のファイルには EOF インジケーター (0xFF) が含まれているため、コピー関数は実際には最初の EOF インジケーターまでファイルをコピーします。
例: 私のファイルが新しいファイルに{0x01, 0x02, 0x03, 0xFF, 0x01, 0x02, 0xFF, 0xFF}のみ{0x01, 0x02, 0x03}コピーされる場合。それを修正する方法を考えてください(または、そこに何かが欠けているかもしれません...)
コード:
int Util_Copy_File(char* source, char* dest)
{
FILE *fs,*ft;
char ch;
char infile[100];
sprintf(infile, "%s", dest);
fs = fopen(infile,"r");
if(fs==NULL)
{
return -1;
}
ft = fopen(dest,"w");
if(ft==NULL)
{
fclose(fs);
return STATUS_FAIL;
}
while(1)
{
ch = getc(fs);
if(ch==EOF)
{
break;
}
else
putc(ch,ft);
}
fclose(fs);
fclose(ft);
return 0;
}
ありがとう、ビンヤミン