C'è un modo per leggere da stdin in non-canonical mode sotto Linux? Ingresso non canonica significa che le chiamate a read()
su stdin rispediscono non appena l'utente, che non è il comportamento di default, come si può vedere cercando:Posso leggere da stdin in modo non canonico?
// 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);
}
Questo codice attende che l'utente premere restituire per stampare il contenuto di buffer
. Il comportamento desiderato sarebbe che stampasse mentre l'utente digitava. Nella documentazione per Stdin
(la struttura restituita dalla chiamata stdin()
nel codice sopra), non vi è alcun riferimento a come si potrebbe modificare questo comportamento predefinito.