C语言 从用户级别禁用键盘设备



如何在C程序中暂时禁用键盘?我已经想到的是禁用IRQ线(IRQ 2)的键盘。我谷歌了一下,找到了disable_irq()函数,但它不起作用。下面是代码:

#include<stdio.h>
#include<irq.h>
#include<unistd.h>
void main()
    {
         printf("trying to disable the keyboard via IRQ.....");
         sleep(2);
         disable_irq(2);
         printf("IRQ line has been disabled");
         sleep(10);
         printf("Enabling IRQ.....");
     }

当我运行这个时,我得到这个错误:

irq.c:2:16: fatal error: irq.h: No such file or directory
compilation terminated.

你能帮我解决这个问题或建议其他方法吗?

不,您不能从用户空间禁用键盘。我看你也没必要这么做。如果你想让你的应用程序得到所有的按键,试着成为一个全屏窗口。

如果你试图阻止内核获得紧急按键,我永远不会安装你的应用程序。键盘是内核和用户之间通信的基本方法。内核使用它来获取指令,获取紧急恢复命令,并告诉您它正在恐慌(闪烁大写锁定灯)。

即使可以,也不要禁用键盘。

不能从用户空间调用disable_irq(2),因为它是内核调用,只能从内核模块或内核代码调用。其他禁用/禁止键盘的方法有:

  1. 使用rmmod卸载键盘设备驱动程序
  2. 重定向stdin/dev/null
  3. #define scanf //NOP
  4. 要禁用Ctrl+C等控制字符,请使用signal mask

相关内容

  • 没有找到相关文章

最新更新