Я пишу программное обеспечение для резервного копирования. Я хочу программно определить, был ли файл изменен с прошлого раза. Есть ли флаг или что-то подобное в файлах в файловой системе EXT3?
Linux API — информация о файле EXT3
comment
Обратите внимание, что это не имеет ничего общего с ext3. Все файловые системы, приближающиеся к соответствию с POSIX, поддерживают mtime, поскольку это стандартная часть Unix.
- person Phil Miller   schedule 12.11.2009
Ответы (2)
Конечно. Просто вызовите stat()
в файле и проверьте элемент st_mtime:
struct stat {
/* ... snip ... */
time_t st_atime; /* time of last access */
time_t st_mtime; /* time of last modification */
time_t st_ctime; /* time of last status change */
};
Если у вас есть в приложении временная метка, когда была сделана последняя резервная копия, вы можете сравнить напрямую.
Обратите внимание, что не все файловые системы действительно обновляют время изменения, так как это довольно дорого. Кажется, вы осознаете этот риск.
person
unwind
schedule
12.11.2009
mtime
обычно обновляется (поскольку это происходит только тогда, когда данные файла в любом случае изменяются, это не требует больших дополнительных затрат). atime
не всегда обновляется. Обратите внимание, что программное обеспечение для резервного копирования должно проверять как mtime
, так и ctime
, чтобы убедиться, что изменения разрешений вызывают добавочное резервное копирование.
- person caf; 13.11.2009