witam,
pisząc funkcję kopiującą pliki, napotkałem się z takim oto problemem;
Mam taki kod:
int MAX_BUFF=10;
int kopiujPlik(char *zrodlo, char* cel){
char buff[10];
ifstream plik1 (zrodlo);
ofstream plik2 (cel);
plik1.seekg(0,ifstream::end);
int rozmiar=plik1.tellg();
plik1.seekg(0);
int poprz=rozmiar%MAX_BUFF;
while(!plik1.eof()){
cout<<rozmiar;
plik1.read(buff, sizeof(buff));
plik2.write(buff, (plik1.tellg()<0)?poprz:sizeof(buff));
}
}
i wg mnie, jest optymalny pod względem czasowym. problem z pamięcią. Im większa wartość MAX_BUFF, tym szybciej się skopiuje, a zatem moje pytanie jest takie - czy da się jakoś wyznaczyć MAX_BUFF, tak aby nie przekraczało dostępnej pamięci, ale jednocześnie było możliwie jak największe?
Z góry dzięki za odpowiedź
Pozdrawiam