缓冲区
《面试题》:缓冲区是什么?标准IO在文件IO的基础上封装的一片存放数据的地址(一般用来存放不着急的数据),等到缓冲区这个地址中的数据存满,或者说程序员手动刷新这片空间,空间中的数据会被调用文件IO操作。
缓冲区一共分为三大类:
-
全缓冲
- 一般为对文件的操作,全缓冲区大小为4096个字节。
- 刷新缓冲区的条件:
-
缓冲区满刷新缓冲区
-
程序结束刷新缓冲区
-
程序手动刷新缓冲区(fflush)
-
-
行缓冲
- 只有两个是行缓冲,标准输入,标准输出。行缓冲大小为1024个字节
- 刷新行缓冲的条件:
-
缓冲区满则刷新缓冲区
-
缓冲区遇到\n则刷新缓冲区
-
当标准输入和标准输出一方要使用缓冲区时,正在使用的一方需要让出缓冲区,给需要用的一方使用
-
fflush刷新缓冲区
-
程序结束
-
-
无缓冲
- 一般为标准错误输出,一般用于比较着急的数据,所以不会进入缓冲区。直接调用文件IO。
- 一般使用方式:
fprintf(stderr,"hello world");