gpt4 book ai didi

c fork 的子 ppid 与父的 pid 不匹配

转载 作者:太空狗 更新时间:2023-10-29 17:01:44 24 4
gpt4 key购买 nike

我是 C 的新手。我尝试了以下代码,希望 child 的 ppid 与 parent 的 pid 匹配,但事实并非如此。

int main() {


int pid;

printf("I'm process with pid=%d\n", getpid());

switch (pid = fork()) {
case -1:
perror("fork");
exit(1);
case 0:
printf("I'm the child process: pid=%d, ppid=%d\n", getpid(), getppid());
break;
default:
printf("I'm the parent process: pid=%d, ppid=%d\n", getpid(), getppid());
break;
}

exit(0);

}
> gcc -o fork fork.c 
> ./fork
I'm process with pid=16907
I'm the parent process: pid=16907, ppid=6604
I'm the child process: pid=16908, ppid=1 // <-- expected ppid=16907, why 1?
>

我做错了什么?

最佳答案

很可能父进程已经退出,不再存在。您可以尝试在父级中进行一些延迟。

关于c fork 的子 ppid 与父的 pid 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31237993/

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