Ist ihr jede C popen() Äquivalent in C++?popen Äquivalent in C++
Antwort
können Sie die „noch nicht offizielle“ verwenden boost.process, wenn Sie einen objektorientierten Ansatz wollen die subprocess für die Verwaltung.
Oder Sie können einfach popen
selbst verwenden, wenn Sie nicht die C-ness von allem nichts ausmacht.
C++ ist ein Ober von C. popen
auch auf C++ Code verfügbar ist.
Ich glaube nicht, dass Popen vom Standard verlangt wird. – Puppy
Welcher Standard? popen kommt von POSIX.1-2001. Sogar Windows hat eine POSIX-Kompatibilitätsebene. Linux und MacOS unterstützen es natürlich nativ. Es ist eine Bibliotheksfunktion, die nicht Teil des C-Standards selbst ist. – Borealid
popen() ist Teil von POSIX, also sollte jedes UNIX-ähnliche Betriebssystem es unterstützen. Auch für Nicht-POSIX-Betriebssysteme, wenn Sie popen() in C haben, sollten Sie in der Lage sein, es in C++ zu verwenden, es sei denn, mit Ihrem Compiler ist etwas nicht in Ordnung. – Chris
Es gibt keine C++ Äquivalent in jedem Standard jedoch C++ Wrapper um diese Funktion (und andere POSIX Prozessfunktion) können auf verschiedene UI Toolkit (z.B QT, glibmm) und im pstreams library gefunden werden.
Beachten Sie, dass 'popen' ist * nicht * eine Funktion von der * [C99] vorgeschrieben (https://en.wikipedia.org/wiki/C99) Standard *. Es ist in POSIX, daher ist es in Ihrem C++ - Code für POSIX-Systeme verfügbar. –