Как узнать, что файл модифицирован в linux - PullRequest
1 голос
/ 03 мая 2011

Я хочу знать, какой системный вызов используется в linux C Программирование используется, чтобы узнать, был ли изменен файл.Я знаю, что утилита make компилирует файл, используя только даты модификации.Я хочу знать, как найти, изменен ли файл или нет.

Заранее спасибо

Ответы [ 3 ]

6 голосов
/ 03 мая 2011

Использование md5sum или sha1sum хеширует содержимое файла, что должно дать вам лучшее представление о фактических изменениях, чем даты изменения.

2 голосов
/ 03 мая 2011

stat(2) дает вам время файла и более.

Редактировать 0:

Вы можете посмотреть fcntl(2) и F_NOTIFY флаг - вам придется открывать каталог, а не сам файл. Или более новая версия Linux inotify(7).

0 голосов
/ 03 мая 2011

Вы можете использовать ls и различные флаги на нем, например, -l или -t и pipe до grep или что-то еще. Это скажет вам, когда последний файл был изменен. Но он на самом деле не говорит вам , если файл был изменен. Я думаю, что единственный реальный способ узнать это, если вы отслеживаете, когда в последний раз он был изменен вообще (например, проверка из резервных копий или что-то).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...