труба (), вилка () и для петель - PullRequest
0 голосов
/ 26 сентября 2018

Я пишу программу для задания, в котором я должен создать несколько дочерних процессов из родительского элемента, а затем непрерывно передавать информацию на их стандартные входы для запуска текстовой игры (а затем получать информацию от дочерних элементов через ихстандартные выходные данные, но я собираюсь разобраться с этим позже, после того, как перебираю stdin).

Проблема, с которой я столкнулся, заключается в том, что я могу получить первую строку ввода для всех дочерних элементов, а затем нетдругие, или получить какие-либо строки, которые я хочу пойти на одну.К сожалению, я не могу опубликовать свой код для этого раздела, потому что мой университет очень строг в отношении публикации примеров кода, но я могу предоставить базовую схему ниже.

Родитель:

for all players:
    make a pipe between player and parent
    fork()
    if child:
        close write end, redirect read to stdin, close read end
        set up parameters for player process, then execute player program
    else if parent:
        close read end
        write stuff to write end of pipe
        wait for process to be done

Ребенокв основном просто читает из stdin и использует информацию для создания некоторых переменных и т. д. и т. д.

Не могли бы вы дать предложения о том, что нужно проверить или попробовать.

...