2015-08-20 4 views
4

У меня есть функция, которая принимает класс istream.istream with popen функциональность

Мне нужно, чтобы он работал с данными gzip.

Есть ли в стандарте C++ istream-like класс с popen()-подобной функциональностью?

В качестве альтернативы, есть способ конвертировать FILE * в istream?

ответ

3

Оба подхода могут быть реализованы путем реализации подходящего буфера потока, но ни один из подходов не является частью стандарта C++. I думаю Есть варианты в Boost.

В частности, для использования с данными gzip я бы не использовал что-то, не создавая процесс. Вместо этого я бы создал буфер потока, используя библиотеку gzip (которая также может существовать в Boost).