有没有办法可以在Linux下的non-canonical mode中读取 stdin ?非规范输入意味着在用户输入时, stdin 上的read()
的调用将立即返回,这不是默认行为,正如可以通过尝试看到的那样:
// Create a buffer
let mut buffer :[u8; 1] = [0];
// Loops over the input from stdin, one character a time
while io::stdin().read(&mut buffer).unwrap() > 0 {
println!("{:?}", buffer);
}
此代码等待用户按 return 打印buffer
的内容。所需的行为是在用户输入时打印。在Stdin
的文档(上面代码中stdin()
调用返回的结构)中,没有提及如何更改此默认行为。