Есть класс, который отвечает за установку двунаправленного соединения между процессами(через pipe), ввод в stdin дочернего процесса и вывод через его stdout производятся с помощью операторов << и >>.
Мне нужно сделать так, что была возможно как читать stdout целиком, так и по частям. Для этого я хочу написать манипулятор, в параметры которого можно будет указывать максимальный размер доступный для чтения за раз. К сожалению, не могу найти как это правильно сделать... Подскажите пожалуйста.
Вот перегрузка оператора ввода:
conepipe& operator >> (conepipe& this_pipe, std::string& buffer)
{
char buf[1024];
while (ssize_t size = read(this_pipe.fdout_,&buf, 1023))
{
buf[size] = '\0';
buffer+=buf;
}
return this_pipe;
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей