#include<iostream>
#include<unistd.h>
#include<stdio.h>
using namespace std;
int main()
{
fork();
fork();
fork();
fork();
printf("*"); /*This prints 16 stars*/
return 0;
}
Почему при работе с fork()
он печатает 16 *?
Я понимаю, что fork()
генерирует новый дочерний процесс, который выполняет один и тот же процесс, что объясняет, почему одна вилка генерирует 2 звезды, но с четырьмя вилками она печатает 16, что, как я вижу, удваивается с каждым fork()
.
Но я не понимаю, почему. Выполняет ли каждый форк нижестоящие функции и параметры?