开始今天的内容之前,我们需要了解几个知识点: 第一点:缓冲区 看下面一段代码(Linux下运行程序) 对比上边的代码,似乎相差不大,但是运行结果却千差万别:A图代码运行结果---先输出“hello”,停3秒之后程序运行完毕;B图代码运行结果---执行程序后会先停3秒,然后再输出“hello”。差异如此大的原因与我们所学习的有关于缓冲区的知识是有关系的。 首先我们需要知道缓冲区的三种缓冲方式:全缓冲、行缓冲、无缓冲。对于一个shell中运行的程序,默认的输出方式就是控制台,并且控制台使用的是行缓冲的方式,也就是说当遇到换行符 '\n' 或者写满一行后后,就刷新一遍缓冲区的内容。printf函数在输出数据时也不是直接内容输出到显示器上,而是先将内容输入到缓冲区,当缓冲区的内容写满一行或者遇到换行符后就会刷新一次,此时才将缓冲区的内容刷新到显示器上。