C ++ setvbuf () - Libreria standard C ++

La funzione setvbuf () in C ++ viene utilizzata per modificare o specificare la modalità e la dimensione del buffer.

prototipo setvbuf ()

 int setvbuf (FILE * stream, char * buffer, modalità int, size_t size);

La setvbuf()funzione cambia la modalità di buffering del flusso di file specificato nel valore di modalità.

Se il buffer non è nullo, la dimensione del buffer è la dimensione, altrimenti la funzione alloca automaticamente un buffer (in base al valore della dimensione).

È definito nel file di intestazione.

parametri setvbuf ()

  • stream: flusso di file.
  • buffer: puntatore al buffer che deve essere utilizzato dal flusso.
  • mode: modalità Buffering. I tipi di modalità di buffering sono:
    • _IOFBF: buffering completo
    • _IOLBF: buffer di riga
    • _IONBF: nessun buffering
  • dimensione: la dimensione del buffer in byte.

setvbuf () Restituisce il valore

La setvbuf()funzione restituisce zero in caso di successo e diverso da zero in caso di fallimento.

Esempio: come funziona la funzione setvbuf ()

 #include #include #define SIZE 1024 using namespace std; int main() ( char buffer(SIZE) = "… "; char str() = "This is first lineThis is second line"; FILE *fp = fopen("test.txt","wb+"); /* no buffering, buffer remains unchanged */ setvbuf(fp,buffer,_IONBF,SIZE); fwrite(str, sizeof(str), 1, fp); cout << buffer << endl; /* line buffering, only a single line is buffered */ setvbuf(fp,buffer,_IOLBF,SIZE); fwrite(str, sizeof(str), 1, fp); cout << buffer << endl; /* full buffering, all the contents are buffered */ setvbuf(fp,buffer,_IOFBF,SIZE); fwrite(str, sizeof(str), 1, fp); cout << buffer << endl; fclose(fp); return 0; )

Quando esegui il programma, l'output sarà:

… Questa è la seconda riga Questa è la prima riga Questa è la seconda riga

Articoli interessanti...