我正在开发一个 C 程序,我需要在其中获取文件的最后修改时间。程序所做的是一个函数循环遍历目录中的每个文件,当找到特定文件时,它会调用另一个函数来检查文件的最后修改时间。
在目录中有一个mylog.txt.1
,mylog.txt.2
等等mylog.txt.3
。当我使用 ll 命令在 linux 中列出该目录时,我可以看到mylog.txt.1
并mylog.txt.2
在 5 月 4 日进行了mylog.txt.3
修改,并在 5 月 3 日进行了修改。
然而,当程序检查每个文件时,它总是返回 3rd may。下面是我正在使用的代码。
void getFileCreationTime(char *filePath)
{
struct stat attrib;
stat(filePath, &attrib);
char date[10];
strftime(date, 10, "%d-%m-%y", gmtime(&(attrib.st_ctime)));
printf("The file %s was last modified at %s\n", filePath, date);
date[0] = 0;
}
我已经尝试了 , 的所有不同变体,st_ctime
但它们都在 3 日返回。st_mtime
st_atime
感谢您的任何帮助,您可以提供。