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, Read}; fn main() -> io::Result<()> { let mut buffer = String::new(); let mut handle = io::stdin_locked(); handle.read_to_string(&mut buffer)?; Ok(()) }Run