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
Системный вызов вместе.