我正在尝试编写一个 C 程序,它使用 Linux 系统调用来模拟 more
的行为。 Linux 终端中的命令。由于用户可能会输入诸如 q
之类的命令为了完成执行,我试图找到一种方法,在不使用 read(...)
的情况下从标准输入输出中读取击键。 ,因为我不希望按下的键出现在标准输出上。
换句话说,我希望能够在不写入的情况下检测到按下的键。
我读过 ioctl()
和 termios
struct 可以以某种方式用于此目的,但我不确定它们是如何使用的(我发现手册页有些神秘)。
我已经找到了一些使用这些函数的答案,但它们似乎都太复杂了。一定有更简单的方法来检测简单的击键,不是吗?
最佳答案
man 3 termios
,tcsetattr
,在标准输入上禁用 ECHO
。
有关详细说明,请参阅:Hide password input on terminal
或者,您可以通过下面的 termios 抽象,使用输入层 /dev/input/*
,但我认为您需要禁用从输入设备到上层的转发事件.
关于linux - 如何使用 Linux 系统调用检测何时按下某个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49190492/