La funzione
sizeof()
ritorna la dimensione in byte di qualunque tipo di dato. Se devi sapere quanti byte leggere da un file binario, devi ovviamente sapere quanto occupa il tipo di dato che andrai a leggere.
Se ad esempio usi la funzione
ssize_t read(int fildes, void *buf, size_t nbytes);
per leggere, per calcolare nbytes dovrai usare la sizeof sul tipo di dato che andrai a leggere, es:
bytes_read = read(0, &val_double, sizeof(double));