Копинг файла!
FILE* from;
FILE* to;
byte buf[1023];
LPSTR from_str="C:\\Prog1.exe";
LPSTR to_str="C:\\Prog2.exe";
from=fopen(from_str,"r");
to=fopen(to_str,"w");
while(!feof(from))
{
fread(buf,sizeof(buf),1,from);
fwrite(buf,sizeof(buf),1,to);
}
fclose(to);
Цитата:
Originally posted by _ReZzZ_
Помогите, плз с кодом; По задумке должен копить файл, но копит тока 1KB. Хелп!!! В чём баг?
Помогите, плз с кодом; По задумке должен копить файл, но копит тока 1KB. Хелп!!! В чём баг?
ну сразу бросаеться в глаза:
Глюк 1:
while(!feof(from))
{
size_t nLen = fread(buf,sizeof(buf),1,from);
// в nLen - сколько байт РЕАЛЬНО прочитано,
// например у тя файл размером 53 байта, но
// твоя ошибка в программе приведёт к тому что
// у тя в Prog2.exe будет 1023 байта.
fwrite(buf,nLen,1,to);
}
2. ну и на закуску:
// закрывай все файлы
fclose(to);
fclose(from);
может есть и ещё чё-нить :)) ищи сам
Да, я уж сам нашёл баг :) Читать и писать надо в бинарном виде т.е. не fopen("prog1.exe","w"), a fopen("prog1.exe","wb"); а по поводу разбухания файла, так он и толстым будет пахать; он имеет свой код, а что дальше ему пофиг :D