Quando fai la fopen controlli che il puntatore restituito sia valido ? (diverso da NULL)?