Я пишу следующие коды и запускаю его в моем linux. Каждый раз после разветвления терминалы печатают два PID, который показывает, что оба процесса запланированы ОС, а затем наступает время для запуска «scanf», оба процесса блокируются. жду ввода. Однако каждый раз, когда я ставлю число, я получаю тот же PID, напечатанный на терминале. Означает ли это, что тот же процесс вызывается ОС, когда ввод-вывод терминала встречается, или происходит что-то еще?
int main(int argc, char* argv[])
{
int num;
if(fork() >= 0)
{
printf("%x\n",getpid());
while(1)
{
if(scanf("%d",&num) != EOF)
{
printf("%x\n",getpid());
}
}
}
printf("\nit is over:%x\n", getpid());
}