fork()为什么不是无限输出

时间:2013-01-27 20:24:00

标签: c process fork

为什么

int main(...) {  
    fork();  
    printf("hello again\n");  
    exit(0);  
}

不创建无限数量的进程? 我理解如下,主进程创建一个子进程,子进程创建另一个子进程,等等。

2 个答案:

答案 0 :(得分:7)

在父级和子级的fork之后继续执行,它不会重新启动程序。

答案 1 :(得分:3)

父进程在调用fork()的执行点处“克隆”,并且两个进程都从那里继续进行。通过再次调用main(),子进程不会重新开始。