有谁知道为什么printf("Type q to quit")
当我运行此代码时该行在终端中打印两次:
#include <stdio.h>
#include <unistd.h>
int main (int argc, char *argv[])
{
char run[2];
run[0]='a';
int pid=0;
while (run[0]!= 'q')
{
printf("Type q to quit \n");
fgets (run, 2, stdin);
pid=fork();
//wait();
if(pid==0) { break;}
}
}
我希望孩子从循环中中断,而父母继续循环(以创建新的孩子)。如果我wait()
在第一次迭代后调用执行结束,无论我是否进入'q'
。否则它会按预期工作,但"Type q to quit"
每次都会打印两次。为什么会这样?