Я пишу программу для задания, в котором я должен создать несколько дочерних процессов из родительского элемента, а затем непрерывно передавать информацию на их стандартные входы для запуска текстовой игры (а затем получать информацию от дочерних элементов через ихстандартные выходные данные, но я собираюсь разобраться с этим позже, после того, как перебираю 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 и использует информацию для создания некоторых переменных и т. д. и т. д.
Не могли бы вы дать предложения о том, что нужно проверить или попробовать.