今天翻书学习了一个叫缓冲区的东西,感觉就解释了我的一些疑惑。我的书上横线和笔记如下:
缓冲区的作用是很重要的,它保护了数据的安全,把若干个字符作为一个块进行传输比逐个发送这些字符更加节约时间。其次的,倘若用户打错字符,可以直接通过键盘修正错误,最后摁一下enter键,传输的是正确的输入。
缓冲分为两类:完全缓冲和行缓冲,完全缓冲输入指的是当缓冲区被填满时才刷新缓冲区(内容被发送至目的地)。缓冲区的大小取决于系统,常见有512和4096字节,行缓冲指的是出现换行符时刷新缓冲区,键盘输入通常是行缓冲输入,所以摁下enter键后才刷新缓冲区。
c的标准都是规定输入是缓冲的,读者可以运行echo.c程序观察输入情况,了解所用的输入类型。ANSI C里面是没有提供调用无缓冲输入的标准方式,所以有无缓冲区这全取决于计算机系统。