gpt4 book ai didi

c - 为什么这个 ppid == 1?我是否遗漏了有关 fork() 的内容?

转载 作者:太空狗 更新时间:2023-10-29 14:51:59 25 4
gpt4 key购买 nike

#include <stdio.h>

int main(void)
{
fork();
fork();
printf("ppid %d pid %d\n", getppid(), getpid());
return 0;
}

上面的代码有时会打印

$ ./a.out 
ppid 3389 pid 3883
ppid 3883 pid 3885
ppid 1 pid 3884
ppid 3884 pid 3886

为什么进程 3884 的 ppid 是 1?不应该是3883吗?

最佳答案

我猜当第三个子进程检查父进程的 PID 时,父进程已经完成运行并退出。这将导致子进程在 init 下重新成为父级,进程 ID 为 1。

关于c - 为什么这个 ppid == 1?我是否遗漏了有关 fork() 的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13170757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com