Linux API — информация о файле EXT3

Я пишу программное обеспечение для резервного копирования. Я хочу программно определить, был ли файл изменен с прошлого раза. Есть ли флаг или что-то подобное в файлах в файловой системе EXT3?


person Alex James    schedule 12.11.2009    source источник
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
comment
mtime обычно обновляется (поскольку это происходит только тогда, когда данные файла в любом случае изменяются, это не требует больших дополнительных затрат). atime не всегда обновляется. Обратите внимание, что программное обеспечение для резервного копирования должно проверять как mtime, так и ctime, чтобы убедиться, что изменения разрешений вызывают добавочное резервное копирование. - person caf; 13.11.2009

Я думаю, вы ищете stat()

person dsm    schedule 12.11.2009