本文简要介绍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 Child.wait用法及代码示例
- Rust Child.wait_with_output用法及代码示例
- Rust Child.kill用法及代码示例
- Rust Child.id用法及代码示例
- Rust Child用法及代码示例
- Rust Chars.as_str用法及代码示例
- Rust Chain.get_ref用法及代码示例
- Rust Chain.get_mut用法及代码示例
- Rust ChunksExact用法及代码示例
- Rust Chain用法及代码示例
- Rust CharIndices.offset用法及代码示例
- Rust Chunks用法及代码示例
- Rust ChunksMut用法及代码示例
- Rust ChunksExactMut用法及代码示例
- Rust Chain.into_inner用法及代码示例
- Rust CStr.into_c_string用法及代码示例
- Rust Cursor.new用法及代码示例
- Rust Condvar.notify_all用法及代码示例
- Rust Cursor.remaining_slice用法及代码示例
- Rust Command.args用法及代码示例
- Rust Condvar.wait用法及代码示例
- Rust CString.into_bytes用法及代码示例
- Rust CStr.from_bytes_with_nul用法及代码示例
- Rust Cow.is_owned用法及代码示例
- Rust Cow用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 std::process::Child.try_wait。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。