Я пытаюсь контролировать и читать вывод стороннего консольного приложения, исходный код которого я не могу изменить.
Я хочу использовать для этого QProcess, но это не должно иметь значения, поскольку проблема та же, что и при использовании cmd:
Стороннее приложение, кажется, никогда не вызывает flush ().
Поэтому прямой вызов в cmd.exe работает нормально (вывод выводится в окне cmd), но при вызове, например,
3rdPartyApp.exe > Output.txt
Output.txt остается пустым до тех пор, пока 3rdPartyApp.exe не завершится или не закроется.
После того, как 3rdPartyApp.exe завершит работу или прекратит работу, все stdout можно найти в файле Output.txt.
Вопрос:
Что я могу сделать, чтобы создать среду, в которой размер буфера канала ограничен, например, при вызове непосредственно в cmd.exe, который, по-видимому, ограничивает размер буфера одной строкой?