有没有办法在POSIX下确定已打开的文件是否已被修改?更具体地说,我该如何实现下面的
为了提供上下文,我正在使用C语言编写一个模块,需要为每个文件存储其哈希值在一个表中。该接口提供
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()
等的包装器。