Al posto di leggere un byte alla volta leggine 100 o di piu'...
Poi Sommi il ritorno di fread che e' il numero di byte letti...

while (!feof(fp)) {
letti = fread(&buffer, sizeof(char), 100, fp);
somma += letti;
}