gpt4 book ai didi

linux - 为什么 PPID 会改变?

转载 作者:太空宇宙 更新时间:2023-11-04 03:42:49 25 4
gpt4 key购买 nike

这是我的代码:

#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>

int main() {
pid_t pid;
int status;
if ((pid = fork()) < 0) {
printf("Fork failed.");
} else if (pid == 0) {
printf("CHILD:\nPID: %d, PPID: %d, UID: %d\n", pid, getppid(), getuid());
} else {
wait(&status); //wait for child to terminate
printf("PARENT:\nPID: %d, PPID: %d, UID: %d\n", pid, getppid(), getuid());
}

return 0;
}

这是输出:

CHILD:
PID: 0, PPID: 4309, UID: 1000
PARENT:
PID: 4310, PPID: 3188, UID: 1000

为什么 child 的PPID是4309?不应该是4310吗?谢谢你。

最佳答案

您没有在父代代码中打印出父代的 PID,因此您没有任何可比较的内容。 fork()子级 PID 返回给父级。在您的示例中,父级的 PID 为 4309,子级的 PID 为 4310。

关于linux - 为什么 PPID 会改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29103645/

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