for(int i = 0;i < 3;i++)
{
fork();
printf("i");
}
会打印出 24 个 i 而不是 14 个
因为在fork()的调用中,整个父进程空间会原模原样地复制到子进程中,包括缓冲区
当printf以\n结尾时会打印14个。因为程序遇到“\n”,或是EOF,或是缓冲区满,或是文件描述符关闭,或是主动flush,或是程序退出,就会把数据刷出缓冲区。
for(int i = 0;i < 3;i++)
{
fork();
printf("i");
}
会打印出 24 个 i 而不是 14 个
因为在fork()的调用中,整个父进程空间会原模原样地复制到子进程中,包括缓冲区
当printf以\n结尾时会打印14个。因为程序遇到“\n”,或是EOF,或是缓冲区满,或是文件描述符关闭,或是主动flush,或是程序退出,就会把数据刷出缓冲区。