Function std::io::stdin_locked [−][src]
pub fn stdin_locked() -> StdinLock<'static>ⓘ
Expand description
为当前进程的标准输入创建一个新的锁定句柄。
返回的每个句柄都是一个保护,授予对共享缓冲区的锁定访问权限,该缓冲区的访问通过互斥锁同步。
如果您需要对锁定进行更明确的控制,例如,在多线程程序中,请使用 io::stdin
函数以及 Stdin::lock
方法获取解锁句柄。
当返回的守卫作用域解除锁定。返回的防护还实现了用于访问底层数据的 Read
和 BufRead
traits。
Note: 该句柄锁定的互斥锁不可重入。
即使在单线程程序中,调用其他访问 Stdin
的代码也可能导致死锁或 panic,如果此锁定句柄跨该调用持有。
Note: Windows 可移植性注意事项
在控制台中操作时,此流的 Windows 实现不支持非 UTF-8 字节序列。尝试读取无效的 UTF-8 字节将返回错误。
Examples
#![feature(stdio_locked)]
use std::io::{self, BufRead};
fn main() -> io::Result<()> {
let mut buffer = String::new();
let mut handle = io::stdin_locked();
handle.read_line(&mut buffer)?;
Ok(())
}
Run