1.控制讀寫跺涤、輸入的字符設備存儲在系統(tǒng)的哪里盒件?
2.如何在系統(tǒng)文件中篩選存儲設備桌肴?請寫出具體步驟寸潦。
先切換至系統(tǒng)目錄下
遍歷系統(tǒng)目錄下的所有目錄
找到設備信息相關(guān)的文件
判斷是否為鍵盤鍵盤設備(文件是否存在&是否可以讀取文件)
? 若是:將文件路徑加入列表
若不是:返回-1
3.監(jiān)控鍵盤設備是指什么色鸳?具體如何實現(xiàn)?
監(jiān)控設備即對設備添加文件描述符见转,監(jiān)控設備處于各種狀態(tài)命雀。
將設備映射到某對象中
建立字典,為設備添加文件描述符
4.在監(jiān)控鍵盤輸入的過程中斩箫,用什么庫來獲取原始數(shù)據(jù)吏砂?用什么庫來監(jiān)聽設備狀態(tài)撵儿?處理原始數(shù)據(jù)的庫是如何處理原始數(shù)據(jù)的?
獲取原始數(shù)據(jù):evdev
監(jiān)聽設備狀態(tài):select庫
endev庫將設備輸入轉(zhuǎn)化成多個event對象狐血,故在函數(shù)中需要對其解析
5.對于鍵盤設備來說淀歇,shift、caps狀態(tài)是各種狀態(tài)匈织?
6.利用python實現(xiàn)鍵盤輸入監(jiān)控的總體設計浪默。
找到所有的鍵盤設備
獲取鍵盤輸入的數(shù)據(jù)
解析從鍵盤端獲取的輸入數(shù)據(jù)
在字符緩沖區(qū)處理特殊按鍵
將獲取到的數(shù)據(jù)通過網(wǎng)絡傳輸至服務器端
7.獲取鍵盤數(shù)據(jù)過程中要實現(xiàn)哪些功能?實現(xiàn)的步驟又是什么缀匕?通過那些工具實現(xiàn)纳决?
1st:要獲得需要的鍵盤設備
產(chǎn)生本地的服務器
關(guān)聯(lián)鍵盤和本地服務器(設定文本傳輸任務)
生成緩沖區(qū)
通過select庫監(jiān)聽鍵盤設備
讀取鍵盤的輸入
2st:先尋找指定鍵盤
在本地創(chuàng)建服務器
連鍵盤和服務器用文本傳輸相關(guān)聯(lián)
將文被傳輸后教程緩沖池
用select庫監(jiān)聽鍵盤設備,并將鍵盤操作存儲在數(shù)組中;
解析鍵盤操作乡小,生成字符阔加,并將字符存儲在緩沖區(qū)中。
3st:監(jiān)聽鍵盤設備使用select庫
使用evdev庫解析鍵盤設備的輸入满钟,并將每一個輸入轉(zhuǎn)化為event對象
篩選類型為EV_key類型的鍵盤輸入
8.解析獲取的原始數(shù)據(jù)和之前的數(shù)據(jù)有何不同胜榔?需要實現(xiàn)哪些功能?
有些按鍵屬于組合鍵零远,不能使用傳統(tǒng)的方式獲取信息苗分,如:shift、caps(本功能可以理解為狀態(tài)管理的函數(shù))
需要實現(xiàn)的功能:
通過參數(shù)傳遞獲取shift牵辣、caps的初始狀態(tài)
通過方法轉(zhuǎn)化其狀態(tài)
通過方法對轉(zhuǎn)化特定的shift、caps的狀態(tài)
9.描述linux下與設備驅(qū)動相關(guān)的文件是如何存儲的奴饮?