目录
缓冲区
C的IO输入输出有个缓冲区,输入输出不会立即到达目的地,会先待在缓冲区。
回车与换行
实验1:缓冲区测试
现象:停顿两秒后输出“hello Linux”。
解释:输出的数据先放到了缓冲区,程序结束时才输出到IO。
实验2:缓冲区与回车换行
现象:直接输出“hello Linux”后停顿两秒。
解释:换行回车 \n 能将光标前的数据输出并让光标回到开始。
实验3:缓冲区与回车1
现象:停顿两秒后什么都不输出。
解释:换行 \r 后光标会回到开始。
实验4:缓冲区与回车2
现象:停顿两秒后输出“Linux”。
解释:回车后光标回到开始,输入的“Linux”程序结束后输出。
实验结论总结
- 数据的输入输出不会马上到达目的地,会先呆在缓冲区。
- 缓冲区相当于一行数据空间。
- 回车时,光标回到开头。
- 换行时,会将光标之前的数据输出。
- 程序结束时,会强制将缓冲区中光标之前的数据输出。
补充
上文代码中的“sleep(2)”表示让系统休眠2s。
#头文件
#include<unistd.h>
sleep(x)#休眠x秒
usleep(x)#休眠x微秒
#1s = 1 000 ms = 1 000 000 us