Название: Программное перенаправление stdin Отправлено: deninok от Март 10, 2009, 22:49 Уважаемые участники форума!
Подскажите, пожалуйста, как перенаправить стандартный поток ввода? Есть программа А. Она должна запустить программу B, которая в свою очередь (на определённом этапе выполнения) ожидает от пользователя ввода (например, строки). Требуется, чтобы программа А заменила собой пользователя и сама обеспечила ввод строки. Делаю нечто подобное... Код: #include <QProcess> В файле stdin уже записана некоторая строка. Я хочу, чтобы, когда программа B запросит ввод от пользователя, ожидаемая ею строка взялась из данного файла. Однако такой код не работает. Что делать, куда копать? Заранее благодарен за помощь, поскольку в Qt Assistant, к сожалению, не приводится программного примера использования функции setStandardInputFile(). Сказано лишь, что её вызов после запуска соответствующего процесса бесполезен (что, в общем-то, и так понятно). Строго говоря, можно решить указанную проблему с помощью манипуляций с системными дескрипторами процесса (применяя вызовы ::open(), ::dup() и ::close()), однако это не совсем кошерно (нужно вставлять разные заголовочники для Windows и Linux, ведь решение мне нужно кроссплатформенное). |