所以我明白,Windows不支持Unix fork-exec模型,而是产生进程。但是,Strawberry Perl的fork仿真产生负PID的儿童。这些PID似乎是一致的,但我不明白为什么它们是否定的,或者真的,Perl如何模拟Unix分支。草莓Perl负面孩子PID分叉时
use strict;
use warnings;
my $cpid = fork();
if ($cpid == 0) {
printf "%s\n", "I'm the child, pid is $$";
} else {
printf "%s\n", "I'm the parent, pid is $$, cpid is $cpid";
}
这将产生类似于:
I'm the parent, pid is 3428, cpid is -2600
I'm the child, pid is -2600
“您应该将正PID解释为原始线程的实际PID,否定PID实际上是线程ID”这是否记录在任何位置? – ThisSuitIsBlackNot
我读了perlfork,不知道负数是从哪里来的,只有那些神秘的事情发生在用'wait',如果你得到一个伪pid为-1 –