आप प्रोसेसेस से पाइप करने के लिए popen और pclose फ़ंक्शन्स का उपयोग कर सकते हैं। popen() फ़ंक्शन एक पाइप बनाकर, फोर्क करके, और शेल को आह्वान करके एक प्रोसेस खोलता है। हम stdout की सामग्री को पढ़ने के लिए बफर का उपयोग कर सकते हैं और इसे एक रिजल्ट स्ट्रिंग में जोड़ते रह सकते हैं और जब प्रोसेस समाप्त हो जाए तो इस स्ट्रिंग को वापस कर सकते हैं।
उदाहरण
#include <iostream> #include <stdexcept> #include <stdio.h> #include <string> using namespace std; string exec(string command) { char buffer[128]; string result = ""; // फाइल पर पाइप खोलें FILE* pipe = popen(command.c_str(), "r"); if (!pipe) { return "popen failed!"; } // प्रोसेस के अंत तक पढ़ें: while (!feof(pipe)) { // बफर का उपयोग करके पढ़ें और रिजल्ट में जोड़ें if (fgets(buffer, 128, pipe) != NULL) result += buffer; } pclose(pipe); return result; } int main() { string ls = exec("ls"); cout << ls; }
आउटपुट
यह आउटपुट देगा:
a.out hello.cpp hello.py hello.o hydeout my_file.txt watch.py