Есть ли способ определить, был ли открытый файл изменен в POSIX? Точнее, как я могу реализовать is_modified()
ниже?
FILE *f = fopen("myfile", "r+");
// do various things with f
if (is_modified(f))
foo(f);
Чтобы обеспечить некоторый контекст, я пишу модуль на C, который для каждого файла должен хранить его хэш в таблице. Интерфейс предоставляет обертки для fopen()
и fclose()
, и хэширование может выполняться при закрытии файла. Я нашел несколько подходов для этого, но ни один из них не является настолько эффективным, чистым или защищенным от ошибок, как мне бы хотелось:
fflush(f)
и проверка, не изменилась ли временная метка. fwrite()
, fprintf()
и т.д. Любые предложения?