首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >inotify -在目录树中超过几个级别后,无法将监视添加到新创建的目录

inotify -在目录树中超过几个级别后,无法将监视添加到新创建的目录
EN

Stack Overflow用户
提问于 2014-09-10 19:37:46
回答 1查看 124关注 0票数 0

我在Linux上使用inotify来监控一个目录。我的目录有50个子目录,我的目录树有20层深。到目前为止,我能够监控目录及其所有子目录。我使用C++ STL向量来保存每个目录的路径和它们各自的监视描述符。当我递归地添加8或10个新目录,即添加新的8-10个新级别时,我会收到关于目录树中的第28或30个级别的任何事件的通知。如果我在第28层或第30层创建一个新目录,则不会收到任何通知。

有没有人遇到过这个问题。

EN

回答 1

Stack Overflow用户

发布于 2014-09-10 21:07:55

您应该向应用程序中添加一些调试信息,以显示创建的监视数量。也许你正在达到inotify手表的数量限制。

可以使用sysctl查询max_user_watches的值

代码语言:javascript
复制
$ sudo sysctl fs.inotify.max_user_watches
fs.inotify.max_user_watches = 8192

我还建议您在程序中检查inotify_add_watch()的返回值。如果达到了用户对监视总数的限制,则可能返回ENOSPC;如果路径名是长工具,则返回ENAMETOOLONG (这可能是因为您创建了一个很深的目录树)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25764398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档