Как все уже упоминали, ребенок также начинает выполнять после того, как fork()
закончил.Таким образом, он не вызывает fork
снова.
Вы можете ясно видеть это в очень распространенном использовании, как это:
int main()
{
if (fork())
{
// you are in parent. The return value of fork was the pid of the child
// here you can do stuff and perhaps eventually `wait` on the child
}
else
{
// you are in the child. The return value of fork was 0
// you may often see here an `exec*` command
}
}