2015-05-12 27 views
6

是否可以在/sys/class/gpio/gpioX設備樹中的文件上設置JAVA NIO WatchService以監控那裏的更改?用於UNIX sys/classes/gpio文件的NIO watchservice

從Java內部直接檢測GPIO文件(即GPIO輸入)的變化是一個不錯的主意,但我擔心這不被支持。

確認它不被支持(也許是爲什麼)就足夠了。

+0

任何這運氣?你需要更多信息嗎? –

回答

4

Java 7 NIO FileWatcher的linux實現使用inotify。 Inotify是一個用於注意文件系統更改的Linux內核子系統。它有限制,不能在/ proc,/ sys和網絡共享上運行。請閱讀inotify limitations on wiki

Inotify會報告sysfs和procfs中的一些事件,但不是所有事件。通過inotify的

通知要求內核知道的所有相關 文件系統事件,這並不總是可能的網絡 文件系統,如NFS,其中由一個客戶端所做的更改不會 立即廣播到其他客戶。

和多一點:

inotify missing events
Java WatchService doesn't work on some folders
Java WatchService not generating events while watching mapped drives

+0

這很有趣。我認爲它不適用於像/ proc和/ sys這樣的東西,但是我希望網絡文件系統能夠在協議允許的情況下實現它。 – Trejkaz

+0

@Trejkaz這是可悲的,但沒錯。內核無法控制網絡文件系統。供參考:我已經改進了我的答案 –