一.缓冲区顾名思义即为:内存中开辟的一片缓冲区域
按类型分为:全缓冲,行缓冲,不带缓冲
可以通过标准库函数setvbuf(_Inout_ FILE * _File, _Inout_updates_opt_z_(_Size) char * _Buf, _In_ int _Mode, _In_ size_t _Size);来设置缓冲区的类型
1.全缓冲:
当当填满标准IO的缓存后才进行实际IO操作。
windows和linux都可以通过给_Mode设为_IOFBF设置全缓冲。
全缓冲的典型就是对磁盘文件的读写。
缓冲区为空,一次读满数据,再写出。
windows下测试代码1:
1 void main() 2 { 3 char buf[1024];//缓冲区大小为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 }
结果:不会输出
测试代码2:
网友评论