C++ (POSIX) में कमांड कैसे चलाएँ और उसका आउटपुट प्राप्त करें?
नमस्ते साथियों! मैंने अभी Linux पर C++ सीखना शुरू किया है और एक समस्या का सामना किया: मुझे एक बाहरी कमांड (जैसे `ls -la` या `ping google.com`) को चलाना है और उसका आउटपुट सीधे प्रोग्राम में प्राप्त करना है। मैंने `system()` आज़माया — यह काम करता है, लेकिन केवल exit code लौटाता है, और आउटपुट कंसोल में दिखाई देता है। मुझे इस आउटपुट को एक string में कैप्चर करना है ताकि बाद में इसे प्रोसेस कर सकूँ।
उदाहरण के लिए, मैं एक utility लिख रहा हूँ जो जाँचती है कि कौन सी प्रक्रियाएँ चल रही हैं। मैं `ps aux` चलाना चाहता हूँ और परिणाम का विश्लेषण करना चाहता हूँ। लेकिन C++ में POSIX शैली में यह कैसे करें? मैंने `popen()` के बारे में सुना है, लेकिन यकीन नहीं है कि यह सबसे अच्छा तरीका है। इसके अलावा `fork()`, `exec()`, `pipe()` भी हैं — यह एक शुरुआती के लिए जटिल लगता है। क्या कोई सरल और विश्वसनीय तरीका है?
यहाँ मेरा वर्तमान कोड है, जो सही ढंग से काम नहीं करता:
```cpp
#include
#inc