Я должен выполнить любую другую программу из моей программы на C, которая непрерывно дает сообщения (промежуточный результат) на stdout.Эти сообщения (промежуточный результат), которые я могу получить после завершения завершения его выполнения (другая программа завершена), но моя проблема заключается в том, что если выполнение команды exec происходит, то как получить эти сообщения (промежуточный результат) по очереди? Основываясь на этих промежуточных результатах, я должен предоставить некоторые входы также команде exec (указать ввод в другую программу), как это сделать?Как читать промежуточные результаты команды exec параллельно при выполнении команды exec в C?
1
A
ответ
3
4
popen(3) запустит программу, предоставив вам номер FILE*
, который вы можете использовать для чтения вывода процесса.
Смежные вопросы
- 1. Сбой команды QT exec()
- 2. Выполнение команды exec php
- 3. Php exec или shell_exec не работает при выполнении команды lftp
- 4. Ограничение команды exec() в PHP?
- 5. Как заблокировать команды ruby exec
- 6. Ошибки при выполнении команды поиска через Runtime.getRuntime(). Exec()
- 7. php exec() разрешено разрешение команды
- 8. Действительно ли демонизация команды при использовании exec()?
- 9. Сохранять выходной цвет при запуске команды exec
- 10. C# Печать переменных с помощью команды «EXEC»
- 11. Запуск команды alias при вызове системы exec
- 12. Различные среды после команды EXEC
- 13. Puppet Exec без атрибута команды
- 14. -interpreter-exec консоль команды lldb
- 15. Команды PHP exec, запущенные непреднамеренно, как root
- 16. Docker Remote API exec: код выхода команды
- 17. Как избежать PHP Exec() команды в кавычках
- 18. Можно ли отключить префикс вывода «exec» для команды exec [NA] для команды NAnt?
- 19. exec(): цитирование полной команды в Windows
- 20. Runtime.getRuntime(). Exec, как запускать команды goto
- 21. Выполнение команды «exec» в Jenkins «Execute Shell»
- 22. Различные результаты при выполнении хранимой процедуры с использованием структуры Entity и команды EXEC
- 23. Как найти PID команды dash-exec
- 24. Выполнить две команды в одном Exec() вызов
- 25. exec sudo команды на ssh в python
- 26. PHP скрипт зависает после команды exec
- 27. Аргумент команды exec exec, относящийся к нескольким файлам
- 28. Как вы разделяете длинные команды exec?
- 29. запрос в EXEC команды с переменной
- 30. Выполнить две команды с помощью docker exec
Я сделал аналогичный путь (используемая труба для stdout), но в этом случае я могу читать из трубы только тогда, когда команда exec завершается (выполняется другое исполнение программы), но я не могу получить промежуточные результаты параллельно при выполнении команды exec выполнение происходит – joseph
@joseph. Вам нужно «перекрутить» ваш процесс, чтобы родительский процесс мог отправлять и получать информацию в процесс 'exec''d. Или я вас не понимаю? – strager
У меня есть fork мой процесс, в дочернем процессе сначала я использую pipe для дублирования stdout (dup2 (my_pipe [1], stdout);) then Я выполняю команду exec , а в родительском процессе я читаю промежуточный результат в цикле (используя команду чтения на my_pipe [0]), во время отладки я обнаружил, что чтение не дает никаких о/р до тех пор, пока exec не завершится (он блокируется при чтении команды, если exec еще не закончен), но мне нужен этот промежуточный результат параллельно (как только exec дает этот промежуточный результат) – joseph