Каково максимальное количество одновременно существующих процессов, возникающих в результате этой программы, включая исходный? - PullRequest
0 голосов
/ 26 февраля 2019

Как я могу определить это для следующей программы?

if (fork()){
    if(!fork()){
        if(fork()){
            fork();
        }
    }
}
exit(0);

1 Ответ

0 голосов
/ 26 февраля 2019

Пять.Исходный процесс плюс один для каждого вызова fork.Для подтверждения добавьте оператор ожидания и вызов print.

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

int main()
{
    printf("Process Starting\n");

    if (fork()){
        if(!fork()) {
            if(fork()){
                fork();
            }
        }
    }

    printf("Process Exiting\n");
    sleep(2); // sleep 2 seconds
    return 0;
}

Я утверждаю, что вы увидите 5 напечатанных операторов "Process Exiting".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...