PDA

Visualizza la versione completa : [C] Chiarimenti su file binari, sequenziali e relative funzioni


VYCanisMajoris
23-02-2012, 12:21
Salve ragazzi, ho un dubbio.
I file come sappiamo posso essere binari o sequeziali. Vorrei sapere se quando apro un file in scrittura con accesso binario(o casuale "wb") POSSO utilizzare fgetc.
Le uniche cose che s˛ sono che se apro un file ad accesso sequenziale NON POSSO usare fseek, fwrite, fread. Se potete chiarirmi un po le idee su quando posso usare certe funzioni e quando non posso ve ne sarei grato!!
Sul web ho letto queste pagine http://pellacini.di.uniroma1.it/teaching/fondamenti11/lecture19.html
http://pellacini.di.uniroma1.it/teaching/fondamenti11/lecture20.html
Ma mi hanno lasciato comunque nel dubbio di fgetc che non mensiona...

Grazie ragazzi

oregon
23-02-2012, 12:28
Puoi usare tutte le funzioni con qualsiasi modalitÓ di accesso del file.

Un file non ha una caratteristica "intrinseca" (essere binario o essere sequenziale ...) ma solo una modalitÓ di accesso. Per il resto, *tutti i file* sono semplici sequenze di byte.

Se avrai problemi specifici, ne riparleremo ... cosý Ŕ comunque una discussione troppo generica ...

VYCanisMajoris
23-02-2012, 14:01
Ok, quindi, se per un attimo volessi mettere i paraocchi, e guardare solo l'esercizietto che potrebbe capitare l'unica differenza tra file binari e sequenziali Ŕ il fatto che i primi li apro aggiungendo una 'b' alla modalita di apertura mentre nei sequenziali non metto la 'b'

lanciafiamme
24-02-2012, 18:56
Questa forse la so :D
I file "sequenziali" sono file le cui righe terminano con un "a capo", quelli binari... tutti, compresi quelli sequenziali.
La differenza operativa Ŕ che nei file di testo puoi usare funzioni che leggono una riga alla volta, dove "riga" intende una sequena di caratteri interrotta dall' "a capo" (CR e LF o solo CR)
In sostanza con un file sequenziale puoi dire
"finchŔ non eof leggi una riga alla volta e facci qualcosa"
mentre con un file binario tocca
"fincheŔ non eof leggi un po' di dati ed elaborali"

Loading