несколько процессов, использующих fork()

#c

#c

Вопрос:

Я использую это для настройки процесса в моем основном:

  pid = fork();
 if (pid == 0) 
      ChildProcess();
 else 
      ParentProcess();
  

Как бы я мог настроить больше процессов, скажем, например, x4 из них?

Комментарии:

1. Функции потрясающие.

2. Я знаю. Но мне нужно использовать процессы в моем назначении.

3. Вы можете снова вызвать fork в родительской ветви … РЕДАКТИРОВАТЬ: «функции потрясающие» означает, что вы пишете функцию для fork и сохраняете дочерний pid, затем вызываете 4x

Ответ №1:

Если вы находитесь в родительском процессе, вызовите fork() еще раз, чтобы получить другого дочернего процесса. Если вы поместите это в цикл, то вы золотой.

 for (int i = 0; i < 4;   i) {
    pids[i] = fork();
    if (pids[i] == 0) {
        ChildProcess();
        break;
    }
}
  

Убедитесь, что дочерний элемент не вызывает fork() . Только родительский.

Ответ №2:

Есть несколько способов сделать это.

Например:
1. просто повторите fork() 4 раза.
2. используйте цикл для вызова fork() 4 раза.
3. обертывает их в функции