您的位置:首页 > 编程语言 > C语言/C++

C语言的缓冲区

2016-05-07 21:47 211 查看
1.什么是缓冲区

缓冲区是内存的一部分空间,用缓冲输入输出的数据。缓冲区又分为输入缓冲区和输出缓冲区。缓冲区又被称为缓存.

2.缓冲区存在的意义

主要的意义就是为了提高cpu的效率。

输入端。假如没有缓冲区,我们要从磁盘中读取数据,有几个字符,CPU就要读写几次,CPU是高速率的,而读取是低速率的,这样做会降低CPU的效率。相反如果将数据都存在缓冲区里面,等要读取的时候就可以一次性读取多数的数据。大大地提高了CPU的效率。

输出端。假如要将数据打印出来,打印机是低速的,CPU是高速的。将数据放入缓冲区,避免数据被分为多次打印,就此解放了CPU,使它能去处理其他任务。

3.缓冲区的类型

缓冲区 分为三种类型:全缓冲、行缓冲和不带缓冲。

(1)全缓冲

在这种情况下,当填满标准I/O缓存后才进行实际I/O操作。全缓冲的典型代表是对磁盘文件的读写。

(2)行缓冲

在这种情况下,当在输入和输出中遇到换行符时,执行真正的I/O操作。这时,我们输入的字符先存放在缓冲区,等按下回车键换行时才进行实际的I/O操作。典型代表是键盘输入数据。

(3)不带缓冲

也就是不进行缓冲,标准出错情况stderr是典型代表,这使得出错信息可以直接尽快地显示出来。

4.缓冲区什么时候刷新

(1)缓冲区满的时候

(2)执行fflush函数时(while((ch=getchar())&&ch!='\n'&&ch!=EOF){;})

(3)执行endl;flush语句(c++)

(4)关闭文件的时候
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: