關於篩選輸入裝置的裝置節點

2021-06-20 14:18:34 字數 1133 閱讀 8617

對於一些輸入裝置,尤其是熱插拔的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...