Я пытаюсь написать stdin и читать из stdout (и stderr) из внешней программы, не меняя код.как связаться с программой с другой внешней программой
Я пробовал использовать именованные каналы, но stdout не отображается до тех пор, пока программа не будет завершена, а stdin будет работать только на первом входе (тогда cin равно null).
Я попытался использовать/proc/[pid]/fd, но это только запись и чтение с терминала, а не программы.
Я пробовал писать файл символьного устройства для этого, и он работал, но только по одной программе за раз (это нужно для работы по нескольким программам за раз).
на данный момент, насколько я знаю, я мог бы написать драйвер, который работал для мультиплексирования io через несколько программ, но я не думаю, что это «правильное» решение.
Основной целью этого является просмотр фида программы через веб-интерфейс. Я уверен, что должно быть что-то сделать. есть ли что-то, что я не пробовал, что было сделано раньше?
Это может помочь: http: // stackoverflow.com/questions/43116/how-can-i-run-an-external-program-from-c-and-parse-its-output Если вам нужно прочитать stdout и stderr процесса, вы можете выполнить его с помощью перенаправление stderr на stdout, как этот пример: "popen ("/bin/ls/etc/2> & 1 "," r "); – JustAnotherCurious