Не могу понять, как написать манипулятор для оператора ввода

101
17 февраля 2022, 14:40

Есть класс, который отвечает за установку двунаправленного соединения между процессами(через 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;
}
READ ALSO
Как нарисовать линию с символьным паттерном?

Как нарисовать линию с символьным паттерном?

Необходимо нарисовать линию со сложным паттерном в виде символа при помощи QPainterКак в примере ниже

69
uint8_t работает также как int8_t

uint8_t работает также как int8_t

Недавно начал изучать C++Написал простенький скрипт, дабы проверить свои знания, в итоге вместо ожидаемого 255, консоль выводит -1(тоже самое,...

107
Как правильно использовать sendfile()?

Как правильно использовать sendfile()?

Узнал о вызову senfile(), прочитал про него на man(https://wwwopennet

100
Не работает проверка на ответ пользователя

Не работает проверка на ответ пользователя

У меня есть кодВычисление среднего значения вектора (отрицательные элементы)

107