std::process::Command::spawn
で外部プログラムを実行します。さらに、私はなぜプロセスを生成するのに失敗したのかを知りたいのですが:与えられたプログラム名が存在しない/ PATHにないか、あるいは別のエラーのためですか?私が達成したいもののコマンドがPATH /実行可能プロセスにあるかどうか確認してください。
例コード:
match Command::new("rustc").spawn() {
Ok(_) => println!("Was spawned :)"),
Err(e) => {
if /* ??? */ {
println!("`rustc` was not found! Check your PATH!")
} else {
println!("Some strange error occurred :(");
}
},
}
私は私のシステムではなく、プログラムを実行しようとすると、私が手:
Error { repr: Os { code: 2, message: "No such file or directory" } }
しかし、私はしないでくださいそれに頼りたいプログラムがPATHに存在するかどうかを判断する方法はありますか?
ありがとう:)しかし、私はもう少し深い答えを期待した。マニュアルページやその他のドキュメントへのリンク。私の 'if'条件は、プログラムが見つからなかった場合にのみ評価するべきです。それは事実ですか?どのようなエラーが返されるのかについての詳細はありますか? –
PATH区切り記号はWindowsでは ';'です。 –
@FrancisGagnéとディレクトリセパレータ '\'。私の例は確かにUnixだけでした。おそらくそれを言及していたはずです。 – jkiiski