Доброго времени суток.
Господа, объясните пожалуйста специфику работы с 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, которая бы группировала одинаковые события, чтобы многократно не вызывать обработчик для заданного события.