Как ограничить размер буфера трубы (windows)? - PullRequest
0 голосов
/ 13 мая 2018

Я пытаюсь контролировать и читать вывод стороннего консольного приложения, исходный код которого я не могу изменить.

Я хочу использовать для этого QProcess, но это не должно иметь значения, поскольку проблема та же, что и при использовании cmd: Стороннее приложение, кажется, никогда не вызывает flush (). Поэтому прямой вызов в cmd.exe работает нормально (вывод выводится в окне cmd), но при вызове, например,

3rdPartyApp.exe > Output.txt

Output.txt остается пустым до тех пор, пока 3rdPartyApp.exe не завершится или не закроется. После того, как 3rdPartyApp.exe завершит работу или прекратит работу, все stdout можно найти в файле Output.txt.

Вопрос: Что я могу сделать, чтобы создать среду, в которой размер буфера канала ограничен, например, при вызове непосредственно в cmd.exe, который, по-видимому, ограничивает размер буфера одной строкой?

...