当前位置: 技术问答>linux和unix
如何在自己的程序中屏蔽linux的系统键?
来源: 互联网 发布时间:2015-04-24
本文导语: 比如我想编写一个程序,它会自己接受自定义的热键并处理它。可是按下ctrl+c键程序就自动退出,或者ctrl+s就是打开scroll lock。如何屏蔽这些热键?如何截获ctrl、alt等系统功能键? | 更多请...
比如我想编写一个程序,它会自己接受自定义的热键并处理它。可是按下ctrl+c键程序就自动退出,或者ctrl+s就是打开scroll lock。如何屏蔽这些热键?如何截获ctrl、alt等系统功能键?
|
更多请看unix环境高级编程(stevens)终端i/o那章
|
重新安装信号的handler
sig_act_sigint.sa_handler = timer_handler_sigint;
sig_act_sigint.sa_flags = 0;
sigemptyset(&sig_act_sigint.sa_mask);
sigaction(SIGINT, & sig_act_sigint, NULL);
......
void timer_handler_sigalarm(int signo){
my_clock.alarm_on=0;
mvprintw(5,50,"ALARM IS OFF------OFF------OFFn");
refresh();
}
这是修改了ctrl+c的handler的一段代码。
sig_act_sigint.sa_handler = timer_handler_sigint;
sig_act_sigint.sa_flags = 0;
sigemptyset(&sig_act_sigint.sa_mask);
sigaction(SIGINT, & sig_act_sigint, NULL);
......
void timer_handler_sigalarm(int signo){
my_clock.alarm_on=0;
mvprintw(5,50,"ALARM IS OFF------OFF------OFFn");
refresh();
}
这是修改了ctrl+c的handler的一段代码。