正常に実行される次の錆ルーチンがあります。
use std::process::Command;
fn main() {
let out = Command::new("iwconfig")
.arg("wlan0")
.output()
.expect("Failed to execute 'iwconfig'");
println!("status:\n {}", out.status);
println!("stdout:\n {}", String::from_utf8_lossy(&out.stdout));
println!("stderr:\n {}", String::from_utf8_lossy(&out.stderr));
}
アダプタをターゲットとしてiwconfig
Linuxでコマンドの結果を出力するだけです。wlan0
このプログラムの出力は問題ありません。
私の目標は、ユーザーがアダプターを手動で入力できるようにすることです。次のプログラムを実行し、wlan0
プロンプトが表示されたら手動で入力すると:
use std::process::Command;
fn main() {
let mut adapter_input = String::new();
println!("{}", "Enter adapter name:");
io::stdin().read_line(&mut adapter_input).unwrap();
let out = Command::new("iwconfig")
.arg(adapter_input)
.output()
.expect("Failed to execute 'iwconfig'");
println!("status:\n {}", out.status);
println!("stdout:\n {}", String::from_utf8_lossy(&out.stdout));
println!("stderr:\n {}", String::from_utf8_lossy(&out.stderr));
}
次の出力が得られます。
wlan0 ステータス: 終了コード: 237 stdout: stderr: wlan0 そのようなデバイスはありません
私は何を間違っていますか?ハードコードされたときにアダプターが検出され、手動で入力すると検出されないのはなぜですか?