【发布时间】:2015-04-28 15:22:02
【问题描述】:
我正在尝试使用多个 fork() 调用来创建几个具有不同任务的孩子 我找到了一个代码 Multiple child process
这真的很接近我想要的,但我无法完全理解它
pid_t firstChild, secondChild;
firstChild = fork();
if(firstChild != 0)
{
// In parent
secondChild = fork();
if(secondChild != 0)
{
// In parent
}
else
{
// In secondChild
}
}
else
{
// In firstChild
}
我的问题是:
- 已经创建了多少进程(我假设我们有 4 个,因为它是 2 个分叉!)?
- 在这部分代码中
firstChild = fork();
if(firstChild != 0)
{
// In parent
secondChild = fork();
if(secondChild != 0)
{
// In parent
}
“//in parent”是否意味着它们都是同一个进程(当我尝试测试时它们具有相同的 PID)。
- 如何使用 2 个叉子创建 3 个子节点?(我可以画出以 4 个叶子结尾的树,其中 3 个是子节点和 1 个父节点)
谢谢(如果我没有完全理解 Fork 的概念,请随时告诉我)
【问题讨论】: