我编写了一个使用inotify
来观看特定文件夹的C程序。我希望在此文件夹中创建新文件时收到通知,或者如果现有文件被覆盖(即文件夹已包含a.txt
),并且我将a.txt
的较新副本复制到此文件夹中,基本上覆盖它。)
我可以使用IN_CREATE
掩码将新文件添加到此文件夹时生成通知,但我没有收到第二种情况的通知。我已经尝试IN_MODIFY
和IN_ATTRIB
,但都没有工作。
是否可以通知第二种情况?
答案 0 :(得分:1)
如果覆盖文件,则不会收到IN_MODIFY和IN_ATTRIB事件。因为,文件未被修改,文件属性也不会更改。覆盖等于创建新文件。所以,您可以尝试使用单独的两个事件。
IN_MODIFY: -
仅在修改文件时才会发生此事件。要通知此事件,您可以尝试更新或删除监视列表文件中的某些内容。
IN_ATTRIB: -
仅在更改文件属性时才会发生此事件。属性表示文件元数据。因此,如果要为文件获取此事件,可以更改监视列表文件中的文件权限。
确保您要查看此事件,您必须在事件列表中添加以下事件,初始化您的inotify。