一.緩沖區(qū)顧名思義即為:內(nèi)存中開(kāi)辟的一片緩沖區(qū)域
按類(lèi)型分為:全緩沖,行緩沖,不帶緩沖
可以通過(guò)標(biāo)準(zhǔn)庫(kù)函數(shù)setvbuf(_Inout_ FILE * _File, _Inout_updates_opt_z_(_Size) char * _Buf, _In_ int _Mode, _In_ size_t _Size);來(lái)設(shè)置緩沖區(qū)的類(lèi)型
1.全緩沖:
當(dāng)當(dāng)填滿標(biāo)準(zhǔn)IO的緩存后才進(jìn)行實(shí)際IO操作。
windows和linux都可以通過(guò)給_Mode設(shè)為_(kāi)IOFBF設(shè)置全緩沖。
全緩沖的典型就是對(duì)磁盤(pán)文件的讀寫(xiě)。
緩沖區(qū)為空,一次讀滿數(shù)據(jù),再寫(xiě)出。
windows下測(cè)試代碼1:
1 void main() 2 { 3 char buf[1024];//緩沖區(qū)大小為1024 4 setvbuf(stdout, buf, _IOFBF, 1024); 5 printf("中國(guó)女排很給力!\n\n"); 6 //while (1) 7 //{ 8 // printf("hello"); 9 10 // Sleep(10);11 //}12 //setvbuf(stdout, NULL, _IONBF, 0);13 system("pause");14 }
結(jié)果:不會(huì)輸出
測(cè)試代碼2:
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式