對於一些輸入裝置,尤其是熱插拔的usb裝置,其會自動生成或者關聯裝置節點--/dev/input/eventx(x = 0,1,2,...),這時候,我們需要找到我們要操作的目標裝置節點,下面是乙個示例,可以根據輸入裝置的name域判斷.如下:
/*
function:
this demo is to detect what the input types is--base on the input-name.
author:
se7en
date:
2014-2-14
*/#include #include #include #include #include #include #include #include #include #include #include #include static int open_input_event(const char *inputpath,int flags)
static void close_input_event(int inputfd)
static int get_inputevent_name(int inputfd,char *event_name,int len)
int main(int argc,char **argv)
; int inputfd = -1,ret = -1;
if(argc != 2)
inputfd = open_input_event(argv[1],o_rdonly);
if(inputfd < 0)
ret = get_inputevent_name(inputfd,event_name,sizeof(event_name));
if(ret < 0)
exit(1);
printf("%s named %s\n",argv[1],event_name);
close_input_event(inputfd);
return 0;
}
可以直接gcc編譯,執行如下:
you are so lucky.
/dev/input/event0 named lid switch
關於裝置節點的問題
1.自動建立裝置節點 昨天剛剛試過,用一般字元裝置的方式生成模組,但是模組載入到開發板上去發現,不能在 dev下生成裝置節點,這樣就無法使用應用程式測試驅動。最後,發現是因為我使用的是動態註冊裝置的辦法,這種辦法雖然可以避免靜態註冊的麻煩,但是會造成無法直接生產裝置節點,現在在程式中加入udev m...
Zigbee裝置節點
zigbee定義了3種型別的裝置,每種裝置都有自己的功能要求 1 zigbee協調器 co ordinator 是啟動和配置網路的一種裝置,是網路的中心節點,乙個zigbee網路只允許有乙個zigbee協調器 2 zigbee路由器 router 是一種支援關聯的裝置,能夠將訊息 到其他裝置,zig...
生成裝置節點
雜項裝置的主裝置號是10,在任何linux 系統中它都是固定的。這樣雜項裝置的引入即解決了裝置號數量少的問題,又降低了使用難度,還能防止碎片化,一舉多得。雜項裝置的標頭檔案在 include linux miscdevice.h 雜項裝置註冊函式 一般在probe 中呼叫,引數是miscdevice...