为什么要引入缓冲区?
例如,我们从磁盘里取信息,我们先把读出的数据放在缓冲区,计算机再直接从缓冲区中取数据,等缓冲区的数据取完后再去磁盘中读取,这样就可以减少磁盘的读写次数,再加上计算机对缓冲区的操作大大快于对磁盘的操作,故应用缓冲区可大大提高计算机的运行速度。缓冲区就是一块内存区, 它用在输入输出设备和CPU之间,用来缓存数据 。
缓冲区分为三种类型:全缓冲、行缓冲和不带缓冲。
全缓冲
在这种情况下,当填满标准I/O缓存后才进行实际I/O操作。全缓冲的典型代表是对磁盘文件的读写。
行缓冲
在这种情况下,当在输入和输出中遇到换行符时,执行真正的I/O操作。这时我们输入的字符先存放在缓冲区,等按下回车键换行时才进行I/O操作。典型代表是为标准输入(stdin)和标准输出(stdout)。
不带缓冲
也就是不进行缓冲,标准出错情况stderr是典型代表,这使得出错信息可以直接尽快地显示出来。