将创建多少个进程fork()exec()

时间:2016-10-17 00:44:40

标签: operating-system fork exec

我是操作系统的新手,并通过我的操作系统类的笔记阅读,这是给出的问题。我试图通过阅读this讨论来计算创建的总进程数。

提出的问题:
如果,将创建多少个进程(包括父级) 以下程序中的所有fork()/ exec()系统调用都是成功的。假设 exec'ed程序没有fork()。

Main(){
    int ii = fork();
    if (ii == 0) exec();
    fork();
}

答案:
总进程数= 3

根据讨论(我上面包含的页面),我有以下过程

Main(){                  //Main program is consider as 1 process
    int ii = fork();     //fork #1, now I have 2 total processes
    if (ii == 0) exec(); 
    fork();              //fork #2, now I have 4 total processes
}

那么我有4个进程而不是3个进程吗?

1 个答案:

答案 0 :(得分:1)

你有4个进程。

使用您最喜欢的编译器也可以用您喜欢的语言轻松验证。在最后一个叉子之后打印一些东西。