Avatar ·

كيفية تنفيذ أمر نظام والحصول على مخرجاته في Rust؟

مرحباً بالجميع! أنا مبتدئ في Rust وأحاول تنفيذ أمر نظام بسيط مثل `ls -la` والحصول على مخرجاته كسلسلة نصية. في Python كنت سأستخدم `subprocess.check_output(...)`، لكن هنا لا شيء يعمل. أحاول بهذه الطريقة: ```rust use std::process::Command; fn main() { let output = Command::new("ls") .arg("-la") .output() .expect("failed to execute process"); println!("{}", output.stdout); } ``` لكن في وحدة التحكم يظهر شيء مثل `[115, 116, 114, ...]` — بعض الأرقام، وليس نصاً بشرياً. حاولت إضافة `.to_string()` لكن المترجم اعترض. كما سمعت عن `std::process::Output` لكني لا أفهم كيف استخرج النص منه. أرشدوني كيف أنفذ الأمر بشكل صحيح وأحصل على مخرجاته كسلسلة نصية؟ يُفضل مع معالجة الأخطاء — ماذا أفعل إذا لم يتم العثور على الأمر أو انتهى بكود غير صفري. شكراً مسبقاً! <<>>

المشكلة الأساسية: البايتات مقابل السلسلة النصية

لقد فعلت كل شيء تقريباً بشكل صحيح