有没有办法确定在POSIX下是否修改了打开的文件?更具体地说,我如何is_modified()
在下面实施?
FILE *f = fopen("myfile", "r+");
// do various things with f
if (is_modified(f))
foo(f);
Run Code Online (Sandbox Code Playgroud)
为了提供一些上下文,我在C中编写一个模块,每个文件都需要将其哈希存储在表中.该接口提供了包装器,fopen()
并且fclose()
在文件关闭时可以进行散列.我找到了几种方法来做到这一点,但是我没有像我希望的那样高效,干净或防错:
fflush(f)
并检查时间戳是否已更改.fwrite()
,fprintf()
等等.有什么建议?
小智 6
http://rosettacode.org/wiki/File_modification_time#POSIX_utime.28.29
您可以使用stat()函数检查上次修改的最新修改.