加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 我可以用非规范的方式从stdin读取吗?

发布时间:2020-12-14 01:43:54 所属栏目:Linux 来源:网络整理
导读:有没有办法可以在 Linux下的 non-canonical mode中读取stdin?非规范输入意味着对stdin上的read()的调用应在用户输入后立即返回,这不是默认行为,因为可以通过尝试看到: // Create a bufferlet mut buffer :[u8; 1] = [0];// Loops over the input from stdi
有没有办法可以在 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);
}

此代码等待用户按返回以打印缓冲区的内容.所需的行为是在用户输入时打印.在Stdin的文档(上面的代码中由stdin()调用返回的结构)中,没有引用如何更改此默认行为.

解决方法

不,不是没有外部板条箱或不安全的FFI代码.您可能希望使用 termios功能.具体来说,请参阅ICANON和tcsetattr.箱子 nix具有这些功能的绑定.有关如何在Rust中使用它们的示例,请参见 here.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读