io缓冲

#include   
#include   
  
int main()  
{  
    for (int i = 0; i < 2; i++)  
    {  
        fork();  
        printf("*");  
    }  
      
    return 0;  
}  

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

你可能感兴趣的:(io缓冲)