是否可以在/sys/class/gpio/gpioX
设备树中的文件上设置 JAVA NIO WatchService 以监督那里的更改?
直接从 Java 中检测 GPIO 文件(即 GPIO 输入)的更改是个好主意,但我担心这不受支持。
确认它不受支持(也许是为什么)就足够了。
是否可以在/sys/class/gpio/gpioX
设备树中的文件上设置 JAVA NIO WatchService 以监督那里的更改?
直接从 Java 中检测 GPIO 文件(即 GPIO 输入)的更改是个好主意,但我担心这不受支持。
确认它不受支持(也许是为什么)就足够了。
Java 7 NIO FileWatcher 的 linux 实现使用 inotify。Inotify 是一个用于通知文件系统更改的 linux 内核子系统。它有限制,不适用于 /proc、/sys 和网络共享。请阅读wiki 上的 inotify 限制:
Inotify 确实报告了 sysfs 和 procfs 中的一些但不是所有事件。
通过 inotify 进行通知要求内核了解所有相关的文件系统事件,这对于网络文件系统(例如 NFS)来说并不总是可行的,其中一个客户端所做的更改不会立即广播给其他客户端。
还有更多:
inotify 丢失事件
Java WatchService 在某些文件夹上不起作用
Java WatchService 在观看映射驱动器时未生成事件