mhh si ci avevo pensato, solo che poi ho pensato che anche se nell'ultimo ciclo lavoro dei dati in piu comunque fwrite( buf, 1, b, f_out); scrive solo i dati letti...Originariamente inviato da oregon
Dipende dal tipo di file che tratti ... se gestisci dei file da 500 M allora puoi usare anche 1 M di buffer ... vedi un po' tu ... al "limite", se il file non e' molto grande, puoi allocare esattamente lo spazio necessario per leggerlo tutto con una sola fread ...
Fai attenzione pero', perche' nel codice che hai mostrato, tratti soltanto blocchi da 64000 byte, mentre devi considerare che l'ultimo blocco letto e' molto probabile che sia di lunghezza minore ... Ovvero, per un file lungo 150000 byte, leggerai 3 blocchi da
64000 byte
64000 byte
22000 byte
almeno credo che sia così, sbaglio??![]()

Rispondi quotando