当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust stdin_locked用法及代码示例


本文简要介绍rust语言中 Function std::io::stdin_locked 的用法。

用法

pub fn stdin_locked() -> StdinLock<'static>

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

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

当返回的守卫超出范围时,锁被释放。返回的守卫还实现了 Read BufRead 特征以访问基础数据。

注意:该句柄锁定的互斥体是不可重入的。即使在单线程程序中,调用其他访问的代码std::io::Stdin如果该锁定句柄在该调用期间保持不变,则可能导致死锁或Panics。

注意:Windows 可移植性考虑

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

例子

#![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(())
}

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 Function std::io::stdin_locked。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。