Execve () более чем одной программы - PullRequest
2 голосов
/ 17 июня 2011

Скажем, у меня есть две программы X и Y, запрашивающие ввод из stdin. X и Y запускаются с использованием fork(), за которым следует execve() от третьего, скажем, от A.

То, что происходит, - X запланировано первым. Когда X достигает оператора scanf, Y назначается по расписанию, а X никогда не получает ввод. Как мне об этом позаботиться?

1 Ответ

4 голосов
/ 17 июня 2011

Имеют A опосредуют ввод для X и Y.A может создать канал для каждого дочернего процесса.Он может прочитать приглашение из канала, записать приглашение в стандартный вывод, прочитать ответ из стандартного ввода и записать ответ в канал для дочернего процесса.

...