はじめに
この実験では、Rust の子プロセスについて学びます。完了した子プロセスの出力を表す process::Output 構造体と、プロセスを構築する process::Command 構造体を使用します。サンプルコードでは、rustc --version コマンドを実行し、プロセスが成功したか失敗したかを確認することで出力を処理する方法を示しています。
注: 実験でファイル名が指定されていない場合、好きなファイル名を使用できます。たとえば、
main.rsを使用して、rustc main.rs &&./mainでコンパイルして実行できます。
子プロセス
process::Output 構造体は、完了した子プロセスの出力を表し、process::Command 構造体はプロセスビルダーです。
use std::process::Command;
fn main() {
let output = Command::new("rustc")
.arg("--version")
.output().unwrap_or_else(|e| {
panic!("failed to execute process: {}", e)
});
if output.status.success() {
let s = String::from_utf8_lossy(&output.stdout);
print!("rustc succeeded and stdout was:\n{}", s);
} else {
let s = String::from_utf8_lossy(&output.stderr);
print!("rustc failed and stderr was:\n{}", s);
}
}
(rustc に渡される不正なフラグを使用して、前の例を試してみることをお勧めします)
まとめ
おめでとうございます!あなたは子プロセスの実験を完了しました。あなたの技術を向上させるために、LabEx でさらに多くの実験を練習できます。