Bash   发布时间:2022-05-13  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何从UNIX系统上的tty输入队列中清除未读数据?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的程序只需从标准输入中读取一个字符,因此我使用read(0,buffer,1).
但是如果用户插入多个单个字符,它们会保留在某个缓冲区中,当我再次调用读取时,它们仍然存在.

那么,我怎么能丢弃这些字符呢?
我希望当我再次调用read时,缓冲区中会填充新字符,而不是旧字符.

一个例子:
我有一个读(0,缓冲区,1),用户写abcde.我的缓冲区包含一个(并且它是正确的),但是我再次调用read(0,1)并且我希望用户从现在开始编写下一个字符,而不是之前写的b.

解决方法

你的程序想要开始读取字符时,它必须耗尽现有字符的缓冲区,然后等待读取字符.

否则,它将读取输入的最后一个字符,而不是之后输入的最后一个字符.

当然,您不需要对读取的字符做任何事情;但是,你确实需要阅读它们.

大佬总结

以上是大佬教程为你收集整理的如何从UNIX系统上的tty输入队列中清除未读数据?全部内容,希望文章能够帮你解决如何从UNIX系统上的tty输入队列中清除未读数据?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。