我正在处理一批文件,这些文件包含同一对象在其生命的不同时期的信息,唯一排序它们的方法是按创建日期。我正在使用这个:
//char* buffer has the name of file
struct stat buf;
FILE *tf;
tf = fopen(buffer,"r");
//check handle
fstat(tf, &buf);
fclose(tf);
pMyObj->lastchanged=buf.st_mtime;
但这似乎不起作用。我究竟做错了什么?还有其他更可靠/更简单的方法来获取 Linux 下的文件创建日期吗?
原文由 Srv19 发布,翻译遵循 CC BY-SA 4.0 许可协议
fstat 适用于文件描述符,而不是 FILE 结构。最简单的版本:
您需要通过检查 sys/stat.h 或使用某种 autoconf 构造来确定您的系统在其 stat 结构中是否有 st_birthtime。