【发布时间】:2017-02-20 15:42:47
【问题描述】:
我很难理解使用 fork() 命令最终会产生多少进程。如果我从变量 pid_t pid 开始;和调用 fork() 我将有一个孩子和一个父进程。
现在如果我在第一个 fork() 之后立即调用 fork 会怎样。我知道有 3 个或 4 个进程吗?就像这个叉子是同时调用父母和孩子,还是只是孩子?那么子进程 fork() 是否是另一个子进程,因此创建了 3 个进程?还是对父子进程都调用了 fork,所以现在父进程将有一个子进程,该子进程有自己的子进程,而父进程现在有第二个子进程?
如果再次调用 fork 第三次,所有 3 或 4 个进程都会得到子进程吗?只有最新的孩子?
根据 fork() 的工作原理,当您调用 fork() 3 次时会创建多少个进程?我被困在 4,6 或 8 之间。
【问题讨论】:
-
请澄清您的具体问题或添加其他详细信息以准确突出您的需要。正如目前所写的那样,很难准确地说出你在问什么。请参阅“如何提问”页面以获得澄清此问题的帮助。
-
请以 code 形式发布代码,而不是图片。
-
所以将代码作为图像发布比遵循网站规则并通过简单的复制/粘贴将其发布为文本更容易??
-
请注意,
fork()是函数或系统调用,而不是命令。
标签: c linux process fork child-process