当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust Child.try_wait用法及代码示例


本文简要介绍rust语言中 std::process::Child.try_wait 的用法。

用法

pub fn try_wait(&mut self) -> Result<Option<ExitStatus>>

如果孩子已经退出,则尝试收集孩子的退出状态。

该函数不会阻塞调用线程,只会检查子进程是否退出。如果孩子已经退出,那么在 Unix 上,进程 ID 将被收割。只要孩子已经退出,这个函数就保证重复返回一个成功的退出状态。

如果孩子已经退出,则返回Ok(Some(status))。如果此时退出状态不可用,则返回Ok(None)。如果发生错误,则返回该错误。

请注意,与 wait 不同,此函数不会尝试删除标准输入。

例子

基本用法:

use std::process::Command;

let mut child = Command::new("ls").spawn().unwrap();

match child.try_wait() {
    Ok(Some(status)) => println!("exited with: {}", status),
    Ok(None) => {
        println!("status not ready yet, let's really wait");
        let res = child.wait();
        println!("result: {:?}", res);
    }
    Err(e) => println!("error attempting to wait: {}", e),
}

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::process::Child.try_wait。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。