Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.133.159.224] |
|
Сообщ.
#1
,
|
|
|
Требуется отслеживать изменения в заданном файле в ОС Linux.
Единственное, что приходит в голову это периодически вызывать функцию stat (или fstat), и сравнивать время последнего доступа (или модификации) со значением времени полученого в предыдущем вызове stat. Есть ли другие способы? Нельзя ли это как-то реализовать спомощью сигналов? |
Сообщ.
#2
,
|
|
|
Если ядро более-менее новое (старше 2.6.13) - то есть inotify, который делает как раз то, что нужно.
В userspace интерфейс для inotify появился начиная с glibc 2.4. В более старых ядрах был dnotify. man 7 inotify: The inotify API provides a mechanism for monitoring file system events. Inotify can be used to monitor individual files, or to monitor directories. When a directory is monitored, inotify will return events for the directory itself, and for files inside the directory. The following system calls are used with this API: inotify_init(), inotify_add_watch(), inotify_rm_watch(), read(), and close() Примерно как-то так: http://www.linuxjournal.com/article/8478 |