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