FFlush o setvbuf

Qui vengono spostati discussioni e messaggi ritenuti inadeguati per il contenuto o la forma con cui sono stati espressi.
Scrivi risposta
Avatar utente
SuperStep
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2037
Iscrizione: lunedì 19 dicembre 2011, 16:26
Desktop: Unity
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Somma Vesuviana (NA)

FFlush o setvbuf

Messaggio 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.
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
Scrivi risposta

Ritorna a “Quarantena”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti