Я пытаюсь создать функцию, которая открывает 2 файла - один для чтения, а другой для записи, а затем копирует первый файл в другой двоичный файл и по какой-то причине его просто не работает. Я пытался отлаживать программу несколько раз, но я не мог распознать проблему.Скопируйте содержимое файла 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'? –
Что делать, если это файл размером 800 ГБ? Возможно, неплохо было бы попытаться прочитать все это в памяти ... –
Как вы называете эту рутину? – usr2564301