Программа:
#include <stdio.h>
#include <sys/inotify.h>
int main()
{
int fd = inotify_init();
int wd1 = inotify_add_watch(fd, "/home/guest/a", IN_MODIFY);
struct inotify_event *event = (struct inotify_event*) malloc(sizeof(struct inotify_event));
read(fd, event, 1000);
if (event->mask & IN_MODIFY) {
printf("File '%s' is modified\n", event->name);
}
}
Вывод:
$ ./a.out
File '' is modified
$
Я ожидал, что вышеуказанная программа уведомит об изменении имени файла, если файл a будет изменен. Но он уведомляет без имени файла. Итак, как получить имя файла, если файл изменен с помощью inotify.
malloc()
иvoid *
в c вообще. И вам действительно не нужноmalloc()
вообще ничего. Простоstruct inotify_event event; read(fd, &event, sizeof(event))
. Сделаю - person Iharob Al Asimi   schedule 22.12.2015read()
. - person John Zwinck   schedule 22.12.2015