Если вы не хотите опрашивать файл, используя stat
, и не возражаете относиться к Linux, то вы можете использовать API inotify. Ваше ядро должно быть 2.6.13 или новее и glibc 2.4 или новее (таковым будет, если вы ориентируетесь на что-либо за последние 2 или 3 года). API в основном предоставляет дескриптор файла, который вы можете poll
или select
и read
для получения информации об измененных файлах. Если ваше приложение интерактивное, как редактор, то оно, как правило, будет иметь какой-то цикл обработки событий, который вызывает select
или poll
, и может наблюдать ваш дескриптор файла inotify для событий.
Использование inotify, как правило, предпочтительнее stat
, поскольку вы сразу получаете уведомления и не тратите время и опросы дискового ввода-вывода, когда файл не изменяется. Недостатком является то, что он может не работать через NFS или другие сетевые файловые системы и не является переносимым.
На этой странице в IBM Developerworks приведен пример кода C, а справочная страница является окончательной ссылкой.