ファイルをコピーする事が目的では無く、判定する方法が知りたいです。
以下のコードだと、想定通りに動きません。
想定している動作としては、ファイルが全てコピーできてif文内のprintf(" Found 0xFFD9\n");が
実行される事です。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]){
int read_sum = 0;
int read_size = 0;
long file_size = 0;
unsigned short buffer = 0;
FILE *fp1 = fopen(argv[1], "rb");
FILE *fp2 = fopen(argv[2], "wb");
fseek(fp1, 0, SEEK_END);
file_size = ftell(fp1);
fseek(fp1, 0, SEEK_SET);
while(read_sum != file_size){
read_size = fread(&buffer, 1, 2, fp1);
read_sum += read_size;
if(buffer == 0xFFD9){
fwrite(&buffer, 1, read_size, fp2);
printf(" Found 0xFFD9\n");
break;
}
fwrite(&buffer, 1, read_size, fp2);
}
fclose(fp1);
return 0;
}