如何在 c、Linux 中检查文件是否已更新/更改。
我想在打开文件和从中执行提取/ I/O 操作之前检查文件是否已更新。
查看 stat(2) 的 man 手册。获取 struct stat
结构体的 st_mtime
成员,它将告诉您文件的修改时间。如果当前修改时间晚于之前的修改时间,那么文件已被修改。
例如:
int file_is_modified(const char *path, time_t oldMTime) {
struct stat file_stat;
int err = stat(path, &file_stat);
if (err != 0) {
perror(" [file_is_modified] stat");
exit(errno);
}
return file_stat.st_mtime > oldMTime;
}
如果您正在寻找的是 inotify
的介绍,这里有一篇文章可供参考。
inotify
,那么你就可以监控文件系统操作。不过这个方法会稍微复杂一些。 - Anthony规范的方法是通过stat(2)
检查文件的修改时间。
inotify
。 - another.anon.coward