inotify_add_watch 是不是按升序返回监视描述符?
Posted
技术标签:
【中文标题】inotify_add_watch 是不是按升序返回监视描述符?【英文标题】:Does inotify_add_watch return watch descriptors in ascending order?inotify_add_watch 是否按升序返回监视描述符? 【发布时间】:2018-04-30 11:31:17 【问题描述】:inotify_add_watch 返回一个 int。
我想将我正在观看的路径的字符串存储在一个数组中,并希望通过 inotify_add_watch 的返回值对它们进行索引。
我做了一个小规模测试(有 10 个文件),它似乎按升序(1、2、3、4...)返回它们。
这是有保证的吗?
【问题讨论】:
好吧,does the manual say so? 我不这么认为,因此不要依赖它,如果没有记录,这是一个实现细节。 【参考方案1】:the documentation 中的任何内容都无法保证。
其实这种情况:
如果文件系统对象已被监视(可能通过指向同一对象的不同链接),则返回现有监视的描述符。
似乎将答案直接定为“否”。
您会依赖open
按升序返回文件描述符吗?这是同样的情况。
【讨论】:
open 实际上必须始终返回最低的可用 fd。这是一个记录的要求,所有分配 fd 的函数都应该这样做。但是,如果其他代码可以通过在两者之间/同时打开和关闭 fds(线程、库函数、信号处理程序......),这在很大程度上是一个毫无意义的要求 @R.. 好点。但是,是的,我的观点是open
返回的序列不是单调递增的,因为close
被调用的可能性。以上是关于inotify_add_watch 是不是按升序返回监视描述符?的主要内容,如果未能解决你的问题,请参考以下文章
unnest 是不是始终在 Bigquery 中按命中数的升序显示数据