Trabalho de fork () no linux gcc [duplicado]

Esta pergunta já tem uma resposta aqui:

anomalia printf após “fork ()” 3 respostas

fork() cria um novo processo e o processo filho começa a ser executado a partir do estado atual do processo pa

Esta é a coisa que eu sei sobrefork() no Linux.

Assim, o seguinte código:

int main() {
  printf("Hi");
  fork();
  return 0;
}

precisa imprimir "Olá" apenas uma vez, conforme descrito acim

Mas ao executar o procedimento acima no Linux, compilado com o gcc, ele imprime "Hi"duas veze.

Pode alguém me explicar o que realmente está acontecendo usandofork() e se eu entendi o funcionamento defork() devidamente

questionAnswers(5)

yourAnswerToTheQuestion