Linux C语言监听键盘输入
目录
- 一、前言
- 二、代码实现
- 附:源代码下载
一、前言
本文主要介绍Linux下使用C语言实现监听键盘输入的功能。
二、代码实现
#include
#include /** 方法一:* 调用函数时配置键盘监听事件,退出则关闭监听并恢复原始配置*/// linux 监听键盘事件(按下键盘的时候程序立刻读取),阻塞读取
// 返回值:输入该键的ASCII码值int scanKeyboard()
{int in;struct termios new_settings;struct termios stored_settings;tcgetattr(0, &stored_settings); // 读取原始配置信息new_settings = stored_settings;new_settings.c_lflag &= (~ICANON); // 屏蔽整行缓存,不需要回车,输入单个字符即可输出new_settings.c_cc[VTIME] = 0;new_settings.c_cc[VMIN] = 1;tcsetattr(0, TCSANOW, &new_settings); // 设置新的配置信息in = getchar();tcsetattr(0, TCSANOW, &stored_settings); // 恢复原始配置信息return in;
}/** 方法二:* 1、初始化键盘监听事件的配置信息* 2、监听键盘输入* 3、关闭键盘监听,恢复原始配置信息*/static struct termios new_settings;
static struct termios init_settings;// 初始化键盘监听事件
void init_keyboard()
{tcgetattr(0, &init_settings); // 读取原始配置信息new_settings = init_settings;// new_settings.c_lflag |= ICANON; // 启用标准输入处理,需要回车结束输入new_settings.c_lflag &= (~ICANON); // 不启用标准输入处理,屏蔽整行缓存,不需要回车,输入单个字符即可输出new_settings.c_lflag |= ECHO; // 启动输入字符的本地回显功能
// new_settings.c_lflag &= (~ECHO); // 不启动输入字符的本地回显功能new_settings.c_lflag |= ISIG; // 启动信号new_settings.c_cc[VTIME] = 0;new_settings.c_cc[VMIN] = 1;tcsetattr(0, TCSANOW, &new_settings); // 设置新的配置信息
}// 关闭键盘监听事件,恢复原始配置
void close_keyboard()
{tcsetattr(0, TCSANOW, &init_settings); // 恢复原始配置信息
}// 键盘输入事件监听,阻塞读取
// 返回值:输入该键的ASCII码值
int scan_keyboard()
{return getchar();
}// 测试程序
int main(int argc, char *argv[])
{init_keyboard();while(1){printf(":%d\n", scan_keyboard());}close_keyboard();
}
附:源代码下载
Linux C语言监听键盘输入.zip
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
