C和指针之IO流和缓冲区
来源:互联网 发布:淘宝比较真的法国代购 编辑:程序博客网 时间:2024/06/07 08:19
1、缓冲区介绍
缓冲区又称为缓存,它是内存空间的一部分,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区,缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区
2、为什么要缓冲区
从磁盘里取信息,我们先把读出的数据放在缓冲区,计算机再直接从缓冲区中取数据,等缓冲区的数据取完后再去磁盘中读取,这样就可以减少磁盘的读写次数,再加上计算机对缓冲区的操作大大快于对磁盘的操作,故应用缓冲区可大大提高计算机的运行速度,来缓存数据。它使得低速的输入输出设备和高速的CPU能够协调工作,避免低速的输入输出设备占用CPU,解放出CPU,使其能够高效率工作
3、缓冲区的分类
缓冲区的类型
缓冲区 分为三种类型:全缓冲、行缓冲和不带缓冲。
1) 全缓冲
在这种情况下,当填满标准I/O缓存后才进行实际I/O操作。全缓冲的典型代表是对磁盘文件的读写。
2) 行缓冲
在这种情况下,当在输入和输出中遇到换行符时,执行真正的I/O操作。这时,我们输入的字符先存放在缓冲区,等按下回车键换行时才进行实际的I/O操作。典型代表是标准输入(stdin)和标准输出(stdout)。
3) 不带缓冲
缓冲区 分为三种类型:全缓冲、行缓冲和不带缓冲。
1) 全缓冲
在这种情况下,当填满标准I/O缓存后才进行实际I/O操作。全缓冲的典型代表是对磁盘文件的读写。
2) 行缓冲
在这种情况下,当在输入和输出中遇到换行符时,执行真正的I/O操作。这时,我们输入的字符先存放在缓冲区,等按下回车键换行时才进行实际的I/O操作。典型代表是标准输入(stdin)和标准输出(stdout)。
3) 不带缓冲
也就是不进行缓冲,标准出错情况stderr是典型代表,这使得出错信息可以直接尽快地显示出来。
4、测试Demo
#include <stdio.h>/**程序调用getchar()函数时,程序就等着用户按键,并等用户按下回车键返回。期间按下的字符存放在缓冲区,第一个字符作为函数返回值。继续调用getchar()函数,将不再等用户按键,而>是返回您刚才输入的第2个字符;继续调用,返回第3个字符,直到缓冲区中的字符读完**/int main(){ char c; //first input c = getchar(); printf("c is %c\n", c); while ((c = getchar()) != '\n') { printf("c is %c\n", c); } return 0;}
5、运行结果
/**1111deMacBook-Pro:Music a1111$ vim getchar.c1111deMacBook-Pro:Music a1111$ gcc -g getchar.c -o getchar1111deMacBook-Pro:Music a1111$ ./getcharchen yuc is cc is hc is ec is nc isc is yc is u**/
阅读全文
0 0
- C和指针之IO流和缓冲区
- C和指针之IO总结
- linux系统编程之基础必备(四):C 标准库IO缓冲区和内核缓冲区的区别
- linux系统编程之基础必备(四):C 标准库IO缓冲区和内核缓冲区的区别
- linux系统编程之基础必备(四):C 标准库IO缓冲区和内核缓冲区的区别
- C语言:流和缓冲区
- 黑马程序员——Java基础------IO流之字符流、字节流和缓冲区。
- C 的输入输出流和缓冲区
- C标准缓冲区和内核缓冲区
- IO流缓冲区对象的使用和理解。
- IO技术(三)字符流和字符缓冲区
- 读书笔记之《C和指针》
- JAVA IO缓冲区(BufferedWriter 和 BufferedReader)
- IO缓冲区的原理和使用
- 环形缓冲区和c笔记
- 21-IO流-19-IO流(字符流-缓冲区-装饰设计模式和继承的区别)
- java IO 字符流之 Buffered缓冲区
- JAVA之IO技术BufferedReader,BufferedWriter的缓冲区技术的使用和原理
- CSDN博客——Markdown的表格的处理
- Java过滤器与SpringMVC拦截器之间的关系与区别
- MFC原理
- 机会给有脑子和有准备的人------转载9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路
- 折半查找法
- C和指针之IO流和缓冲区
- 实验:环形队列
- php 生命周期
- c语言四书五经
- qt 窗体全屏显示
- Nginx下Go的多种使用方式性能比较
- 【数据处理】使用xlua读取XlsxToLua生成的配置文件
- SSH网上商城2_环境配置
- spring security 启动报错