Как обрабатывать неограниченное количество потоков с помощью boost :: process :: child? - PullRequest
0 голосов
/ 20 мая 2019

Итак, я сейчас использую boost::process::ipstream для чтения с stdout ребенка.Программа, протокол которой я пытаюсь реализовать, никоим образом не разграничивает поток, поэтому я не уверен, как мне поступить с чтением ответов (поскольку нет четкого токена «конца ответа», такого как символ новой строкии т. д.)

Как с этим справиться?

Я могу успешно прочитать подстроки ответа, если просто напишу in.read(buffer, x);, где x - это какое-то значение меньшеили равна длине ответа.Однако, если я пытаюсь прочитать весь ответ через определенный размер буфера, он просто блокируется при попытке прочитать окончательный кусок буфера.

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

Любое руководство будет высоко ценится.

Спасибо.

...