Die bekannte Art und Weise ein fstream
Objekt zu schaffen ist:Erstellen fstream Objekt aus einer Datei * pointer
ifstream fobj("myfile.txt");
dh. einen Dateinamen verwenden.
Aber ich möchte ein ifstream-Objekt mit einem Dateideskriptor erstellen.
Grund: Ich möchte einen Befehl auszuführen, mit
_popen()
._popen()
gibt die Ausgabe alsFILE*
zurück. Es ist also ein FILE * -Zeiger vorhanden, aber kein Dateiname.
@ Joe: Posix Filedeskriptoren sind noch eine andere Sache. Vermutlich werden sowohl C++ - Iostreams als auch C-I/O in Bezug auf sie auf einer Posix-Plattform implementiert. Die vorliegende Frage ist jedoch vernünftiger, da sowohl iostreams * als auch * C I/O Teil der Standardbibliothek sind. –
Dies ist ein Duplikat von http://stackoverflow.com/questions/2746168/how-to-construct-ac-fstream-from-a-posix-file-descriptor, vorausgesetzt, Sie können 'fileno' auf' FILE * 'verwenden zurückgegeben von 'popen' – Alnitak