2011-05-26 71 views

回答

1

要在上/ sys文件或目錄的改變通知,我用的是polling objects從蟒蛇。

import select 

poll_objet = select.poll() 
fd_object = file("/sys/what_you_want_to_survey", "r") 
poll_objet.register(fd_object) # I use the select.POLLPRI | select.POLLERR combination in my code ;) 
result = poll_object.poll() 

其中結果是被觸摸的(fd,event)列表。

+0

爲什麼你沒有「c」調用你的輪詢對象「poll_objet」? – 2016-06-23 15:24:20

+0

我用了一個Python shell並手工輸入了代碼。作爲文件我使用了「/ home/ikem/operstate」。我用一個常規的Bash shell來改變'echo'0>> operstate'和'echo'1「> operstate'的值。在Python shell中,我輸出了「result」的值。我寫了一個while循環,在每次運行時刷新並打印結果,每次「[3] [5]」我都得到相同的值對。我在這裏錯過了什麼? – 2016-06-23 15:40:00

2

更改/ sys的事件通常由udev處理。因此,您可以添加udevd規則來處理事件或使用libudev來訪問和監視sysfs。我剛剛在這裏找到一些教程:http://www.signal11.us/oss/udev/