Scusate, andando ad inserire il commento mi si è cancellata la riga dove inserivo il valore nella variabile app
L'istruzione era
codice:
strcpy(app,rec.data);
Quindi il ciclo esatto è
codice:
while(!feof(fp))
    {
        strcpy(app,rec.data);
        /*omettendo questa riga il problema non si presenta*/
        now=julianDate(app);/*giorno giuliano del movimento attuale*/
        if((rec.visible==true)&&(now<max))/*se il movimento non è nascosto ed è precedente alla data*/
            {
                rec.visible=false;/*rendo il movimento non visibile */  
                fseek(fp,-sizeof(struct movimento),SEEK_CUR);/*sposto il puntatore indietro di un record*/
                fwrite(&rec,sizeof(struct movimento),1,fp);/*e sovrascrivo*/
                 
            }       
        fread(&rec,sizeof(struct movimento),1,fp);
    }


Ho anche notato che il file dove salvo la struttura diventa di dimensioni immani(da pochi KB a centinaia di MB)... può essere dovuto al fatto che il ciclo si ripeta all'infinito e quindi continua a scrivere su file?
Non capisco perchè non esce mai dal ciclo, potrebbe esserci qualche problema di valore di fp?
Il C, quant'è misterioso