C++でプロセスを開く

前回のエントリでpopenで開いたプロセスをistreamから読む方法をメモったが,新しいクラスを定義しているわけでもなんでもないので,pcloseをうまく呼ぶ方法がわからず苦戦していた

色々調べていたら,前回試してみてダメだったPstreamsでうまくできたので,メモ

ソースを軽く見てPstreamsはistreamとして使えないと思っていたが,見る場所を間違えていて,普通にistreamを継承していたので,試しに使ってみたら普通に使えた

#include "pstream.h"

string command = "gunzip -c " + file;
in = (istream *) (new redi::ipstream (command));