0

正常に実行される次の錆ルーチンがあります。

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));
}

アダプタをターゲットとしてiwconfigLinuxでコマンドの結果を出力するだけです。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 そのようなデバイスはありません

私は何を間違っていますか?ハードコードされたときにアダプターが検出され、手動で入力すると検出されないのはなぜですか?

4

0 に答える 0