-1
私は2つのファイルを開きます.1つは読み込み用で、もう1つは書き込み用に作成し、最初のファイルをもう1つのバイナリにコピーして、動作しません。私は数回プログラムをデバッグしようとしていたが、私は問題を認識できませんでした。imgファイルの内容を別のimgファイルにコピー
void myCopyBinary(char * * argv) {
FILE * srcFile;
FILE * dstFile;
int yesNo = 0;
char temp = ' ';
int i = 0;
int size = 0;
char * buffer;
int resultFread = 0;
int resultFwrite = 0;
srcFile = fopen(argv[1], "rb");
if (srcFile != NULL) {
dstFile = fopen(argv[2], "rb");
if (dstFile != NULL) {
printf("Would you like to overwrite it? (Every Number -YES, 0-NO): ");
scanf("%d", & yesNo);
if (yesNo == 0) {
fclose(dstFile);
exit(0);
return 1;
}
}
dstFile = fopen(argv[2], "wb");
if (dstFile != NULL) {
fseek(srcFile, 0, SEEK_END); // non-portable
size = ftell(srcFile);
buffer = (char *) malloc(sizeof(char) * size);
if (buffer == NULL) {
printf("Error with the buffer!\n");
exit(1);
}
do {
resultFread = fread(buffer, 1, sizeof(buffer), srcFile);
resultFwrite = fwrite(buffer, 1, resultFread, dstFile);
} while (resultFread > 0);
}
}
なぜ 'cp file1 file2'を使用しないのですか? –
800GBファイルの場合はどうなりますか?全部をメモリに読み込んでみることは良い考えではないかもしれません... –
どのようにこのルーチンを呼び出していますか? – usr2564301