D Lang文件观察者

kma*_*eny 4 d

我是D语言的新手,我正在寻找一种有效的方法来监视要更改的特定文件.

最终我想要的是让一个等待文件更改的观察者,然后根据文件的内容执行命令(将其视为纯文本队列列表).

代码示例会很好,但指向正确的方向也会非常有帮助.

此外,这将在Linux环境中运行.

更新

我正在使用系统实用程序来监视文件.

dav*_*v1d 8

如果你是在Linux上可以使用inotify,发现/usr/include/sys/inotify.h(我的系统上$PREFIX可能有所不同).

inotify在许多需要对文件系统进行更改的情况下非常有用.没有inotify,它可以通过定期(或手动请求)检查文件和目录来实现.但这种方式很慢并浪费处理器时间.inotify为如何对文件系统更改做出反应提供了非常快速和经济的方法.

您唯一要做的就是将此标题转换为"D标题",或者您可以使用DStep哪个标题可以为您翻译标题.

您可能还想使用fanotify更新的替代品inotify.

不幸的是我不知道你怎么能在Windows上做到这一点,我发现只是一个Windows-API函数: FindFirstChangeNotification

  • 这实际上是操作系统最适合的任务,因此我强烈建议您使用inotify路径. (3认同)
  • 如果有一种特定于D的方法,它只会以与操作系统无关的方式包装系统调用.因此,缺少这样的包装器,处理它的正确方法是直接使用适当的系统调用或自己创建这样的包装器. (2认同)