PDA

Visualizza versione completa : buffer con i/o da file


yag[YOG]
16-06-2003, 15.48.02
ragazzi stavo leggendo su tricky nella parte dei file binari ...come utilizzare un buffer per velocizzare le operazioni di lettura/scrittura ... solo che nn la ho capita bene ...

mi date una mano a chiarire ??

non ho proprio capito come si utilizza ce anche un codice di esempio ma.. non mi ha chiarito le idee

Krakatau
16-06-2003, 16.27.23
in merito a cosa???

cioè ci spieghi l'ambiente...

l'applicativo...

il linguaggio (non è detto sia discriminante)...

yag[YOG]
16-06-2003, 16.30.04
Originariamente inviato da Krakatau
in merito a cosa???

cioè ci spieghi l'ambiente...

l'applicativo...

il linguaggio (non è detto sia discriminante)...
linguaggio (tricky ) pensavo fosse sottointenso cmq c / c++
so che sono cose diverse cmq lasciamo perdere il c++ e parliamo solo di c in merito all'utilizzo di questa funzione
e della differenza che intercorre fra :
int setbuf( FILE *stream, char *buf);
int setbuffer( FILE *stream, char *buf, size_t size);
int setlinebuf( FILE *stream);
int setvbuf( FILE *stream, char *buf, int mode, size_t size);
fra queste oltre naturalmente al prototipo :)

P8257 WebMaster
16-06-2003, 18.32.46
Il buffer è una porzione di memoria campione che permette di snellire le operazioni di "streaming", in questo caso su un file...

Indipendentemente dal linguaggio, creare un buffer I/O è sempre buona cosa dato che le operazioni sul buffer stesso possono essere finalizzate tutte allo stesso momento, rendendo quindi superiore la velocità di elaborazione della singola operazione ..

Più informazioni si danno creando il buffer e più la procedura è snella, se in più si è in grado di comunicare anche il tipo di dato e la modalità di apertura del file, il risultato è ancora più "pulito", tra i prototipi che hai citato, userei il seguente:


int setvbuf( FILE *stream, char *buf, int mode, size_t size);


Raccomando attenzione, come con qualsiasi altra operazione che riguardi la gestione della memoria .. tenere sempre sott'occhio lo status del buffer e calcolare sempre l'esatto quantitativo di memoria da richiedere e di memoria disponibile...

Bye :cool: