Come posso leggere/scrivere strutture da/a files di dati?
E` relativamente immediato scrivere una struttura usando fwrite:
fwrite(&somestruct, sizeof somestruct, 1, fp);e una corrispondente invocazione fread puo` rileggerla. (Sotto il C pre-ANSI, e` richiesta una conversione (char *) sul primo argomento. Cio` che e` importante e` che fwrite riceve un puntatore a un byte, non un puntatore a una struttura.) Comunque, i file di dati cosi` scritti non saranno portabili (vedere domande 2.12 e 20.5). Notare anche che se la struttura contiene dei puntatori, solo i valori dei puntatori saranno scritti, ed e` estremamente improbabile che siano validi quando sono riletti. Infine, notare che per avere una ampia portabilita` bisogna usara la modalita` "b" quando si aprono i files con fopen; vedere domanda 12.38.
Una solutione piu` portabile, sebbene richiede un po' piu` lavoro all'inizio, consiste nello scrivere una coppia di funzioni per scrivere e leggere una struttura, campo-per-campo, in un modo portabile (forse anche leggibile da umani) .
Riferimenti:
H&S Sez. 15.13 p. 381
Leggere di seguito: prev prossima su cima
Questa pagina e` di Steve Summit // Copyright 1995 // mail feedback