FILE * und istream: Verbinden Sie die beiden?

8

Wenn ich eine ausführbare Datei "popen" möchte, bekomme ich dafür FILE* . Außerdem nehme ich an, ich möchte diese Datei mit einem istream -Objekt verbinden, um die Verarbeitung zu erleichtern. Gibt es eine Möglichkeit, dies zu tun?

    
jldupont 05.11.2009, 19:44
quelle

3 Antworten

4

Es gibt keinen Standardweg, aber wenn Sie eine schnelle Lösung wollen, können Sie den Dateideskriptor mit fileno () aufrufen und dann Josuttis ' fdstream . Es mag ähnliche Bemühungen geben, aber ich habe das in der fernen Vergangenheit benutzt und es hat gut funktioniert. Wenn nichts anderes sollte es eine sehr gute Karte sein, um Ihre eigenen zu implementieren.

    
Duck 05.11.2009, 21:53
quelle
13

Sie können wegkommen, indem Sie std :: basic_streambuf oder std :: streambuf Klassen ableiten.
Etwas in dieser Richtung:

%Vor%     
ihuk 05.11.2009 23:26
quelle
1

Sicher, es gibt einen Weg, implementieren Sie Ihre eigene istream , die aus einem FILE* erstellt werden kann.

Wenn Sie fragen, ob es eine Standardmethode dafür gibt, dann nein.

    
Frank Krueger 05.11.2009 19:47
quelle

Tags und Links