关于fork()
循环内行为的问题。当fork()
被调用时,假设wait()
没有被调用,父进程应该继续执行代码并循环回到顶部,提示您输入q
退出。分叉的孩子应该立即打印它的 ID 和中断,因为pid
应该等于孩子的 ID 而不是 0。相反,它进入无限循环。
谁能告诉我我在误解什么?
int main (int argc, char *argv[])
{
char run[2];
int pid=0;
while (run[0]!= 'q')
{
printf("Type q to quit \n");
fgets (run, 2, stdin);
pid=fork();
//wait();
printf("child ID: %i\n", pid);
if(pid!=0) { break;}
}
}