Function std::io::stdin_locked[][src]

pub fn stdin_locked() -> StdinLock<'static>
Notable traits for StdinLock<'_>
impl Read for StdinLock<'_>
🔬 This is a nightly-only experimental API. (stdio_locked #86845)
Expand description

为当前进程的标准输入创建一个新的锁定句柄。

返回的每个句柄都是一个保护,授予对共享缓冲区的锁定访问权限,该缓冲区的访问通过互斥锁同步。 如果您需要对锁定进行更明确的控制,例如,在多线程程序中,请使用 io::stdin 函数以及 Stdin::lock 方法获取解锁句柄。

当返回的守卫作用域解除锁定。返回的防护还实现了用于访问基础数据的 ReadBufRead traits。

Note: 该句柄锁定的互斥锁不可重入。 即使在单线程程序中,调用其他访问 Stdin 的代码也可能导致死锁或 panic,如果此锁定句柄跨该调用持有。

Note: Windows 可移植性注意事项

在控制台中操作时,此流的 Windows 实现不支持非 UTF-8 字节序列。尝试读取无效的 UTF-8 字节将返回错误。

Examples

#![feature(stdio_locked)]
use std::io::{self, Read};

fn main() -> io::Result<()> {
    let mut buffer = String::new();
    let mut handle = io::stdin_locked();

    handle.read_to_string(&mut buffer)?;
    Ok(())
}
Run