Pagina 1 di 1

FFlush o setvbuf

Inviato: domenica 17 febbraio 2013, 13:14
da SuperStep
allora, come detto in precedenza, la differenza fra una write ed una printf è che:

la printf è line buffered (ovvero scarica lo stream quando incontra /n)
la write è senza bufferizzazione (ovvero scarica lo stream subito)

la setvbuf():

Codice: Seleziona tutto

int setvbuf(FILE *stream, char *buf, int mode, size_t size);
imposta la bufferizzazione di uno stream e l'argomento mode può assumere tre valori:
1) _IONBF (i/o non bufferizzato)
2) _IOLBF (i/o bufferizzato per linea)
3) _IOFBF (i/o totalmente bufferizzato)

adesso se vuoi che la write() si comporti come la printf() prima della write imposti la bufferizzazione per linea, in caso contrario;
imposti la printf con la bufferizzazione totale.