一.緩沖區(qū)顧名思義即為:內(nèi)存中開辟的一片緩沖區(qū)域
按類型分為:全緩沖,行緩沖,不帶緩沖
可以通過標(biāo)準(zhǔn)庫函數(shù)setvbuf(_Inout_ FILE * _File, _Inout_updates_opt_z_(_Size) char * _Buf, _In_ int _Mode, _In_ size_t _Size);來設(shè)置緩沖區(qū)的類型
1.全緩沖:
當(dāng)當(dāng)填滿標(biāo)準(zhǔn)IO的緩存后才進(jìn)行實(shí)際IO操作。
windows和linux都可以通過給_Mode設(shè)為_IOFBF設(shè)置全緩沖。
全緩沖的典型就是對(duì)磁盤文件的讀寫。
緩沖區(qū)為空,一次讀滿數(shù)據(jù),再寫出。
windows下測(cè)試代碼1:
1 void main() 2 { 3 char buf[1024];//緩沖區(qū)大小為1024 4 setvbuf(stdout, buf, _IOFBF, 1024); 5 printf("中國女排很給力!\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:
網(wǎng)友評(píng)論