Rust में सिस्टम कमांड कैसे चलाएं और उसका आउटपुट कैसे पकड़ें?
नमस्ते साथियों!
मैंने Rust सीखना शुरू किया है और एक छोटा ऑटोमेशन टूल लिख रहा हूँ। मुझे एक बाहरी सिस्टम कमांड (जैसे `ls -la` या `git status`) चलानी है और उसका आउटपुट (stdout और stderr) सीधे प्रोग्राम में पढ़ना है, ताकि बाद में स्ट्रिंग्स को प्रोसेस कर सकूं।
मैंने `std::process::Command` मॉड्यूल का डॉक्यूमेंटेशन देखा, लेकिन मैं आउटपुट को सही से कैप्चर नहीं कर पा रहा हूँ। मैंने यह कोशिश की:
```rust
use std::process::Command;
fn main() {
let output = Command::new("ls")
.arg("-la")
.output()
.expect("कमांड चलाने में विफल");
println!("stdout: {}", output.stdout);
println!("stderr: {}", output.stderr);
}
```
लेकिन कंसोल में कुछ इस तरह आउटपुट आता है: `stdout: [115, 111, 109, 101, 32, 116, 101, 120, 116]` — ये बाइट्स हैं, स्ट्रिंग नहीं! मैं पढ़ने योग्य टेक्स्ट कैसे प्राप्त करूं? और अगर कमांड एरर के साथ समाप्त हो जाए तो क्या करूं? मैं समझना चाहता हूँ कि exit status को सही से कैसे हैंडल करें और stderr को अलग से कैसे कैप्चर करें।
पहले से धन्यवाद मदद के लिए!
P.S. अगर संभव हो तो,