我有一段代码打印出一次分叉的PID,只是一个基本的用户输入的东西,但每次我运行脚本时,有时它按预期运行,它都在一个命令中打印出来,然后下一次打印子进程它是PID,它在下一行上执行,并使终端处于一个状态,您需要按Enter键才能继续.我已经研究过这个网站,关于人们在什么都不知道的情况下,我已经在任何地方添加,但我仍然无法让它工作.
我的代码:
#include <unistd.h>
#include <stdio.h>
#include "sys/types.h"
int main(){
int pid;
int userInput;
printf("Please enter a number: ");
userInput = getchar();
printf("\nYou entered: ");
putchar(userInput);
printf ("\n");
fflush(0);
pid = fork();
if (0 == pid)
{
printf ("I am the child process, my PID is %d \n", getpid());
fflush(0);
}
else
{
printf ("I am the parent process, my PID is %d \n", getpid());
fflush(0);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这就是我运行几次时会发生的事情:

有人可以指出我出错的地方以及如何纠正它?
谢谢!