【系统编程】缓冲区(全缓冲,行缓冲,不缓冲)

缓冲区的本质是一块存储区域

缓冲区分类:全缓冲,行缓冲,不缓冲。

全缓冲:

  1. 缓冲区满会输出。
  2. 程序结束会输出。
  3. 刷新缓冲区。 函数:fflush(stdout);

缓存在缓冲区的东西在缓冲区满的时候,才写入磁盘或者调用fflush刷新缓冲区才能写入到磁盘。对于全缓冲,如果缓冲区没满,或者我们没有手动刷新缓存,那么缓存区的内容是不能写入到磁盘的。

行缓冲:

  1. 碰到\n会输出。
  2. 程序结束会输出
  3. 缓冲区满会输出。
  4. 刷新缓冲区

标准输入、标准输出都是采用的行缓存,也就是遇到换行符的时候,才会将缓存区的东西写入到磁盘。

不缓冲:

  1. 直接输出缓冲区里的数据。

有时希望一些内容在第一时间写入磁盘或者显示出来,比如我们显示错误信息的时候(如标准出错,它就是直接显示出错信息,而不会先放入缓存)。

参考博客:

https://blog.csdn.net/lws123253/article/details/83029742

发布了64 篇原创文章 · 获赞 82 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_40602000/article/details/101148234