當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。