2015-05-12 1 views
6

Возможно ли установить JAVA NIO WatchService на файлы в дереве устройств /sys/class/gpio/gpioX, чтобы контролировать там изменения?NIO watchservice для файлов UNIX sys/classes/gpio

Было бы неплохо обнаружить изменения в файлах GPIO (т. Е. GPIO-входы) непосредственно из Java, но я боюсь, что это не поддерживается.

Подтверждение о том, что оно не поддерживается (и, возможно, почему) было бы достаточно.

+0

Любая удача с этим? Вам нужна дополнительная информация? –

ответ

4

Линукс-реализация Java 7 NIO FileWatcher использует 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

@ Трейказ это грустно, но это правда. Ядро не может контролировать сетевую файловую систему. FYI: я улучшил свой ответ –

 Смежные вопросы

  • Нет связанных вопросов^_^