JNotify 剂量不识别 Linux 系统更改的文件



我在linux系统(arm7)上的一个项目中使用JNotify。而且效果很好。如果我更改、重命名、删除或创建一个文件,它会引发中断。但是,如果Linux系统自己更改了一个文件,我想让我们JNotify得到通知。我使用的是BeagleBone(嵌入式Linux系统)。有一个名为value的文件,其中包含InputPin的状态(高、低)。但如果这个文件被系统更改,JNotify就不起作用了。。。如果我自己更改文件,一切都好。。。有人知道为什么在第一个案例中没有发现这种变化吗。Linux似乎使用了一种特殊的方式来编写文件。。。但是我不知道怎么。。。但是如果这个文件改变了,需要中断我的主循环。或者还有其他解决方案吗?

感谢

JNotify依赖于文件系统中的事件。对于Linux,它使用inotify系统调用(这实际上是它名称的灵感来源)。inotify仅适用于真实文件,您所描述的文件是一个不存在于磁盘上的虚拟文件,它不是存储信息的一种方式,而是访问系统信息并有时更改信息的一个简单方式)。

另一种解决方案是创建一个采样线程,该线程将检查文件、休眠并再次检查文件。由于您只关心一个特定的文件,所以这很容易。

虽然它可能感觉太贵了,但在直接处理硬件时,轮询实际上非常常见。由于该文件实际上并不是一个文件,因此读取它实际上要比读取文件快。

相关内容

最新更新