Ⅰ 小白求问linux下怎么捕获键盘信号
int catch( int sig )
{ printf("recv del\n" );
}
int main()
{
signal( SIG_INT, catch );
while( getchar() != '\n' ) ;
return 0;
}
按回车结束程序,按Del会输出recv del。
Ⅱ linux截获键盘事件不起作用
FreeBSD进入图形界面后,键盘和鼠标不能用的解决办法:
首先在命令行界面,使用如下命令打开配置文件
vi/etc/rc.conf
查看文件中是否有如下信息
moused_enable="YES"
moused_nodefault_enable="YES"
dbus_enable="YES"
hald_enable="YES"
你的rc.conf文件里是否有这些内容,如果没有,添加上,如果有,看是否一样,
注意:后面的值,一定要大写如“YES”不能写“yes”
2014-05-05 18:31:08
#1得分 0
vm安装ubuntu后,ubuntu无法识别键盘,无法输入密码的解决方案
Ubuntu应用在Vmware7下装载的最新Ubuntu10.04镜像会出现无法识别键盘输入。在登录画面时,不能输入密码,无法正常进入系统解决办法:
(1)开户屏幕键盘功能在开机界面在右下角单击小人图案,再单击“UniversalAccessPerferences”,出击“UniversalAccessPerferences”对话框,在对话框中选中“Useon-screenkeyboard”(使用屏幕键盘),以开启屏幕键盘功能,这时会有一个屏幕键盘快速闪过;
(2)重新启动打开屏幕键盘输入密码开启屏幕键盘功能后重新启动系统,这时就可以通过上面的步骤打开屏幕键盘,输入相应的密码
(3)登录后键盘功能正常使用。
注意在(1)步后没出现软键盘,需要重启机器。
(4)进入系统之后,要修改/etc/default/console-setup.的文件内容
原文XKBMODEL="SKIP"XKBLAYOUT="us"XKBVARIANT="U.S.English"XKBOPTIONS=""
改成XKBMODEL="pc105"XKBLAYOUT="us"XKBVARIANT=""XKBOPTIONS=""
然后重启,这样在登入界面时就可能使用键盘了。
Ⅲ Linux C语言 在多进程下 获得键盘按键
发所用语言为C..
一般的..要想学好嵌入式开发..就要两个都会..
如果只学linux,这个只是为以后从事linux服务器搭建,管理和维护等..差不多就是跟硬件打交道..
而嵌入式开发就相当于..在windows下用C,C++,C#,java等开发一样..只不过他的开发平台换成了linux...
如果想自学建议按照以下步骤:
学习步骤如下:
1、Linux 基础
安装Linux操作系统
Linux文件系统
Linux常用命令
Linux启动过程详解
熟悉Linux服务能够独立安装Linux操作系统
能够熟练使用Linux系统的基本命令
认识Linux系统的常用服务安装Linux操作系统
Linux基本命令实践
设置Linux环境变量
定制Linux的服务 Shell 编程基础使用vi编辑文件
使用Emacs编辑文件
使用其他编辑器
Ⅳ linux下循环读取键盘输入问题
scanf结束标志:
① 遇空格、“回车”、“跳格”键。
② 遇宽度结束。
③ 遇非法输入。
如果要识别空格的话 有三种方法:
1.人工加空格法:
用个变量读没有空格的单词,另一个变量存储变量,变量间用空格隔开。
2.gets()函数
这个函数用法比较危险,因为它无法判字符串的长度
如char a[10];
您的输入是abcdefggjhh dddda dddd
明显超过10个字符 而a数组只是存储了10个字符
3.继续我们的scanf函数 但是有规定只能是字母跟数字组成的字符串
scanf("%[ a-zA-Z0-9]s", str);
我们来看个例子:
#include <stdio.h>
int main()
{
char str[20];
scanf("%[ a-zA-Z0-9]s", str);
printf("%s\n",str);
return 0;
}
输入:
12a bbb ccc 123 1adb2
输出:
12a bbb ccc 123 1adb2
希望对楼主你有所帮助
Ⅳ 在LINUX下键盘编程 编写键盘应用程序 能够获取键盘按键
提供一个输入按键应用程序实例,你参考一下。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/select.h>
#include <sys/time.h>
#include <errno.h>
#include <linux/input.h>
int main(void)
{
int buttons_fd;
int key_value,i=0,count;
struct input_event ev_key;
buttons_fd = open("/dev/input/event0", O_RDWR);
if (buttons_fd < 0) {
perror("open device buttons");
exit(1);
}
for (;;) {
count = read(buttons_fd,&ev_key,sizeof(struct input_event));
for(i=0; i<(int)count/sizeof(struct input_event); i++)
if(EV_KEY==ev_key.type)
printf("type:%d,code:%d,value:%d\n", ev_key.type,ev_key.code-1,ev_key.value);
if(EV_SYN==ev_key.type)
printf("syn event\n\n");
}
close(buttons_fd);
return 0;
}
Ⅵ 如何在嵌入式linux开发板上使用USB键盘
首先usb键盘驱动的源代码位于一下目录:
drivers/usb/input/usbkbd.c
将usb键盘驱动编译进内核:
#make menuconfig
Device Drivers--->USB support---->USB HIDBP Keyboard (simple Boot) support
(注意:有可能默认设置USB键盘驱动是不可见的,需修改当前目录下的Kconfig文件,在此不做详细介绍,Kconfig语法有待进一步熟悉:))
保存设置后,重新编译内核:
#source setenv
#make uImage
uImage生成后位于目录:arch/arm/boot/uImage;
(或者直接将usb键盘驱动编译为驱动模块,进行加载也可);
启动系统后,确定usb键盘加载到了那个设备文件,一般为/dev/input/event0设备,可通过cat命令进行确认:
#cat /dev/input/event0
操作usb键盘,会有乱码出现;
然后应用层用这个程序来获取usb键盘的输入:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <linux/input.h>
struct input_event buff;
int fd;
int read_nu;
int main(int argc, char *argv[])
{
fd = open("/dev/input/event0", O_RDONLY);
if (fd < 0)
{
perror("can not open device usbkeyboard!");
exit(1);
}
int i = 0;
printf("--fd:%d--\n",fd);
while(1)
{
while(read(fd,&buff,sizeof(struct input_event))==0)
{
;
}
//if(buff.code > 40)
printf("type:%d code:%d value:%d\n",buff.type,buff.code,buff.value);
//#if 0
//i++;
//if(i > 12)
//{
//break;
//}
//#endif
}
close(fd);
return 1;
}
运行程序后,按下A键,可见如下输出:
--fd:3--
type:1 code:30 value:1
type:0 code:0 value:0