prova a leggere i dati così

codice:
...
	while (fread(&cd, sizeof(struct rec), 1, list) > 0) {
                    printf("Titolo %s \n", cd.titolo);
                    printf("Autore %s \n", cd.autore);
                    printf("Durata:%f \n", cd.durata);
}
...
dovrebbe risolvere il problema
ciao
sergio