Неправильно записывается файл С++ fwrite()
Пытаюсь прочитать exe и записать в другой файл, но после записи он не выполняется
#include <iostream>
#include <Windows.h>
using namespace std;
int main() {
FILE * firstFile;
FILE * secondFile;
BYTE * buffer;
firstFile = fopen("calc.exe", "rb");
if (firstFile == NULL) return 1;
secondFile = fopen("sss.exe", "wb");
if (secondFile == NULL) return 1;
fseek(firstFile, 0, SEEK_END);
unsigned long s2 = ftell(firstFile);
buffer = (BYTE *)malloc(s2);
int read = fread(buffer, 1, s2, firstFile);
perror("fread");
int write = fwrite(buffer, 1, s2, secondFile);
perror("fwrite");
free(buffer);
fclose(firstFile);
fclose(secondFile);
return 0;
}
Не работает не только с exe, но и с любыми другими файлами. Кто-то знает как решить эту проблему?
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
fseek(firstFile, 0, SEEK_END);
unsigned long s2 = ftell(firstFile);
А назад, на начало файла кто будет указатель откатывать? Дейкстра? :)
fseek(firstFile, 0, SEEK_END);
unsigned long s2 = ftell(firstFile);
fseek(firstFile, 0, SEEK_SET);