Inotify группы IN_MOVED_FROM и IN_MOVED_TO?

Я использую один дескриптор файла inotify, чтобы отслеживать множество занятых каталогов для нескольких событий, в том числе IN_MOVED_TO а также IN_MOVED_FROM,

У меня есть цикл, который вызывает read на нем (который блокирует, пока есть данные для чтения) и обрабатывает события, как они происходят.

Когда файл перемещается между двумя из отслеживаемых каталогов, два inotify_eventзаписываются в дескриптор файла inotify: один с IN_MOVED_TO бит установлен в mask и один с IN_MOVED_FROMоба с одинаковыми cookie,

Гарантируется ли, что оба события будут буферизованы одним и тем же вызовом readили мне нужно вызвать его один раз для буферизации одного события и еще раз для буферизации следующего?

1 ответ

Решение

AFAIK, нет такой гарантии.
На что мы можем положиться, так это только на тот факт, что два события (IN_MOVED_FROM, IN_MOVED_TO) на операции переименования связаны с тем же cookie,

Любое предположение, кроме вышеупомянутого, ненадежно, например:

  • Два события будут происходить последовательно (одно приходит сразу за другим).
  • Два события будут появляться в одном и том же read Системный вызов вместе.
Другие вопросы по тегам