Ciao a tutti, ho un file binario con record a lunghezza fissa. Quello che dovrei fare è:
per ogni record N se il record N+1 contiene un certo valore allora modifico il contenuto di N.
Per il momento l'ho pensata come segue, ma prima di mettere giù il codice vorrei sapere se la logica è giusta visto che è la prima volta che provo a sovrascrivere un record e non so se ragiono nel modo corretto.

- Mi posiziono alla fine del file (SEEK_END - sizeof(StrutturaRecord))
- Leggo il record (fread)

fino a quando non raggiungo l'inizio del file
- Verifico condizione
- Mi posiziono al record precedente (SEEK_CUR - 2*sizeof(StrutturaRecord))
- Leggo il record (fread)
- Se la condizione è vera modifico i dati appena letti, mi riposiziono all'inizio del record (SEEK_CUR - sizeof(StrutturaRecord)) e lo sovrascrivo (fwrite)

La logica è giusta o esistono modi più opportuni?
E' corretto aprire il file in modalità "rwb"

Grazie
Luciano