![]() |
1
5
不确定Parallel::ForkManager实现,但如果它与标准fork()类似,则返回0,因为您在子进程中。fork将只向父进程返回非零PID。 我忘了添加,因为在开始调用之后有了“和下一个”,代码的行为与预期完全一致。 注意编辑2: 由于从开始调用中删除了“and next”,父进程也在运行下载。我猜21892是父进程的PID,它将在循环中运行多次 |
![]() |
2
5
关于您在edit2下的代码: 你改变了
到
现在你的叉子做得不正确。以前只有子进程继续执行循环体,父进程接受 下一个 ,现在两者都继续执行循环体。因此,您会看到父级(21892)的PID多次执行循环。 |
![]() |
3
4
看到那条线了吗?
父级获取PID,子级将只看到0。如果要从子进程中获取PID,只需使用magic变量
更新:
对该行的引用并不意味着邀请更改该行。但是看看它,很明显$pid在后面的代码中将是0,所以它不应该让人惊讶
|
![]() |
4
0
这将为您提供子PID,并继续使用fork处理代码。 |
![]() |
James G · 分叉过程每次打印的方式不同 7 年前 |
|
Filip Spasovski · fork()从何处开始[重复] 7 年前 |
![]() |
Alopex · 如何从子进程到父进程获取返回值? 7 年前 |
![]() |
TheAndreyx22 · 查看execvp(); 7 年前 |
![]() |
Jacob H · 如何写入正在运行的程序的stdin 7 年前 |
|
Pedro · execlp()无法检索正确的输入 7 年前 |
![]() |
Giorgi Cercvadze · 如何将暂停的进程设置为后台? 7 年前 |
![]() |
S. N · 使用C创建子进程和父进程 7 年前 |
![]() |
funcs · 无限循环中来自子级的read()标准输出 7 年前 |