c语言的fork

先看代码,会输出多少行

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

int main()
{
    for(int i=0;i<3;i++){
	  fork();
	  printf("%d\n",i);
    }
	sleep(1);
    return 0;
}

首先,以上代码会输出2个0,4个1,8个2,顺序可能不一样 如果把printf中的\n去掉,结果就不一样了,缓冲会被子进程继承,