我想问一下这段代码是否可以打印190?
父亲的pid = 9 孩子的pid = 10 。 。pid_t pid = fork();
if (pid<0)
{
exit(1);
}
else if (pid>0)
{
printf("%d",getpid());
exit(0);
}
else
{
char *const argv[] = {"sleep","1",NULL};
execv("/bin/sleep", argv);
printf("%d",getpid());
}
答案 0 :(得分:0)
父pid几乎不可能是9而子pid是10,因为系统启动会生成比这更大的pid值。
答案 1 :(得分:0)
在孩子中,如果execv成功,它将永远不会返回。这会导致printf()不被执行。你看到的“190”只是来自父母打印自己的pid。