gpt4 book ai didi

c - 为什么进程之间没有切换

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:03:59 26 4
gpt4 key购买 nike

我有以下程序

#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
main()
{
pid_t pid, ppid;
printf("Hello World1\n");
pid=fork();
if(pid==0)
{

printf("I am the child\n");
printf("The PID of child is %d\n",getpid());
printf("The PID of parent of child is %d\n",getppid());
}
else
{
while(1)
{
printf("I am the parent\n");
printf("The PID of parent is %d\n",getpid());
printf("The PID of parent of parent is %d\n",getppid());

}
}
}

这个程序的输出是父进程永远运行而不切换到子进程。这种情况下为什么没有切换到子进程?

最佳答案

理想情况下,父进程应该等待子进程完成,以便子进程的入口被正确收割。

waitpid(pid, 0, 0);

看看 child 是否能通过无限循环运行。为 child 运行程序和 grep:

./a.out | grep child

关于c - 为什么进程之间没有切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16096170/

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