【发布时间】:2020-10-05 09:10:47
【问题描述】:
我很困惑在使用inotify 时是否有一些订购保证。例如:
Process1
|
|
write(fd, void *, 8192)
|
|
v
some.file ------- IN_MODIFY -------> Process2
是否保证当Process2 收到IN_MODIFY 事件时,Process1 编写的所有8192 都可供Process2 读取?
【问题讨论】:
-
为了更好地理解,最好有您阅读该订购保证的链接,或者甚至可以引用相关部分。
-
@Robert 实际上,这就是问题所在。是否有一些排序或者可以观察写入时的状态。
-
inotify甚至不提供您将收到所有事件的实际保证。请参阅inotify missing events 和Why is inotify losing events? 等,Per theinotifyman page:“健壮的应用程序应该优雅地处理丢失事件的可能性。”文件系统不是消息队列——不要试图强迫它们成为。
标签: c linux io linux-kernel inotify