Ⅰ 小白求問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