C ++ setvbuf () - C ++ - vakiokirjasto

Toimintoa setvbuf () C ++: ssa käytetään muuttamaan tai määrittämään puskurointitila ja puskurin koko.

setvbuf () -prototyyppi

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

setvbuf()Toiminto muuttaa puskuroinnin moodin tietyn tiedoston virran arvoon tilassa.

Jos puskuri ei ole nolla, puskurin koko on koko, muuten toiminto varaa puskurin automaattisesti (koon arvon perusteella).

Se määritetään otsikkotiedostossa.

setvbuf () -parametrit

  • stream: Tiedostovirta.
  • puskuri: Osoitin virrassa käytettävään puskuriin.
  • tila: puskurointitila. Puskurointitilojen tyypit ovat:
    • _IOFBF: täysi puskurointi
    • _IOLBF: linjan puskurointi
    • _IONBF: ei puskurointia
  • size: Puskurin koko tavuina.

setvbuf () Palautusarvo

setvbuf()Funktio palauttaa nollan menestystä ja nollasta poikkeava epäonnistumisesta.

Esimerkki: setvbuf () -toiminnon toiminta

 #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; )

Kun suoritat ohjelmaa, tulos on:

… Tämä on toinen rivi Tämä on ensimmäinen rivi Tämä on toinen rivi

Mielenkiintoisia artikkeleita...