Логика работы inotify
От: real_sba http://cellwar.xyz/
Дата: 21.11.12 09:26
Оценка:
Доброго времени суток.
Господа, объясните пожалуйста специфику работы с inotify. Признаюсь, задал похожий вопрос в разделе Unix, но пока безрезультатно.
Итак суть вопроса. Несмотря на то, что man гласит:
       Each successful read(2) returns a buffer containing one or more of the following structures:

           struct inotify_event {
               int      wd;       /* Watch descriptor */
               uint32_t mask;     /* Mask of events */
               uint32_t cookie;   /* Unique cookie associating related
                                     events (for rename(2)) */
               uint32_t len;      /* Size of name field */
               char     name[];   /* Optional null-terminated name */
           };

mask contains bits that describe the event that occurred (see below).

мой код упорно получает по одной записи на каждое событие, что весьма странно, так как не соответствует информации в официальном man. Да и весьма неудобно это. Тоесть вместо одной структуры inotify_event с объединением всех событий (даже повторяющихся, что весьма удобно) я получаю длинный список где каждое событие представлено отдельно.
Вопрос: это нормальное поведение inotify? Или можно/нужно настраивать inotify?

Так выглядит, что для обеспечения наблюдения за изменениями файлов в заданном каталоге надо еще дополнительно реализовывать надстройку над inotify, которая бы группировала одинаковые события, чтобы многократно не вызывать обработчик для заданного события.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.