fstream
オブジェクトを作成するよく知られた方法は次のとおりです。
_ifstream fobj("myfile.txt");
_
すなわち。ファイル名を使用します。
しかし、ファイル記述子を使用してifstreamオブジェクトを作成したいと思います。
理由:
_popen()
。_popen()
を使用してコマンドを実行したいのですが、出力を_FILE*
_として返します。したがって、FILE *ポインタが含まれていますが、ファイル名はありません。
IostreamとCI/Oは完全に分離されており、無関係であるため、標準のC++だけでこれを行うことはできません。ただし、C FILEストリームに基づくowniostreamを作成することはできます。 GCCには、ライブラリ拡張機能などのストリームクラスが1つ付属していると思います。
あるいは、C FILEストリームをラップするオブジェクトyの方法だけが必要な場合は、その目的のために 一意のポインターを使用 にすることができます。