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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部