Trabajo de fork () en linux gcc [duplicado]

Esta pregunta ya tiene una respuesta aquí:

printf anomalía después de "fork ()" 3 respuestas

fork() crea un nuevo proceso y el proceso secundario comienza a ejecutarse desde el estado actual del proceso primario.

Esto es lo que sé sobrefork() en Linux.

Entonces, en consecuencia, el siguiente código:

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

necesita imprimir "Hola" solo una vez según lo anterior.

Pero al ejecutar lo anterior en Linux, compilado con gcc, imprime "Hola"dos vece.

¿Puede alguien explicarme qué está sucediendo realmente al usarfork() y si he entendido el funcionamiento defork() correctamente?

Respuestas a la pregunta(5)

Su respuesta a la pregunta