O bifurcação fork
real ocorre dentro da% primitiva fork()
.
Você pode imaginar que dentro do código de fork
, uma chamada de sistema realmente duplica o processo e inicia sua execução no mesmo ponto com uma pequena diferença:
- a função
fork
do processo pai retornará o ID do processo filho - a função
fork
do processo filho retornará 0.
Assim você sabe onde você está durante a programação, por exemplo
if (fork())
{
printf("Parent speaking\n");
// parent's tasks
}
else
{
printf("Child here\n");
// child's tasks
}