Function std::io::stdin_locked
source · [−]pub fn stdin_locked() -> StdinLock<'static>ⓘNotable traits for StdinLock<'_>impl Read for StdinLock<'_>
Expand description
Constructs a new locked handle to the standard input of the current process.
Each handle returned is a guard granting locked access to a shared
global buffer whose access is synchronized via a mutex. If you need
more explicit control over locking, for example, in a multi-threaded
program, use the io::stdin
function to obtain an unlocked handle,
along with the Stdin::lock
method.
The lock is released when the returned guard goes out of scope. The
returned guard also implements the Read
and BufRead
traits for
accessing the underlying data.
Note: The mutex locked by this handle is not reentrant. Even in a
single-threaded program, calling other code that accesses Stdin
could cause a deadlock or panic, if this locked handle is held across
that call.
Note: Windows Portability Consideration
When operating in a console, the Windows implementation of this stream does not support non-UTF-8 byte sequences. Attempting to read bytes that are not valid UTF-8 will return an error.
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