io缓冲

2018-03-22  本文已影响0人  倒数第三
#include <unistd.h>  
#include <stdio.h>  
  
int main()  
{  
    for (int i = 0; i < 2; i++)  
    {  
        fork();  
        printf("*");  
    }  
      
    return 0;  
}  

此段代码会输出8个“*”,因为printf标准输出默认是行缓存,fork子进程会把父进程缓存区同样copy一份。
缓冲机制:
缓冲机制一般分为:全缓冲、行缓冲、无缓冲。
全缓冲:缓冲区满了以后,才发生真正的IO。我们通常用的磁盘文件IO就是这样的。
行缓冲:缓冲区满了以后或者缓冲区收到一个换行符(表示已输入或输出一行),后才发生真正的IO,比如标准输出和标准输入默认的缓冲机制就是行缓冲。
无缓冲:立即发生IO,通常标准出错是不带缓冲的。

上一篇 下一篇

猜你喜欢

热点阅读