C 从头到脚

C 从头到脚,c,linux,fork,C,Linux,Fork,我很困惑,因为在这段代码中。我不确定在fork之后,新流程是否会移动到开始,因为它不应该移动,应该只有一个do。规则是新进程在fork指令之后开始,不是从一开始就开始,而是出现了一些错误 #include<stdio.h> int main(){ printf(" do "); if(fork()!=0) printf("ma "); if(fork()==0) printf("to \n"); else printf("\n"); } 我认为应该

我很困惑,因为在这段代码中。我不确定在fork之后,新流程是否会移动到开始,因为它不应该移动,应该只有一个
do
。规则是新进程在fork指令之后开始,不是从一开始就开始,而是出现了一些错误

#include<stdio.h>

int main(){
    printf(" do ");
    if(fork()!=0) printf("ma ");
    if(fork()==0) printf("to \n");
    else printf("\n");
}
我认为应该是什么 妈妈

输出被缓冲。缓冲区被复制到fork进程中。但它应该在下一条指令后启动,请您再写些东西好吗?两个副本供您参考。为什么您要调用
fork
两次?这是为了更好地理解这个从未解决的问题:)
do ma 
do ma to
do to
do