我正在开发一个C程序,我需要获取文件的最后修改时间.程序所做的是一个函数循环遍历目录中的每个文件,当找到特定文件时,它调用另一个函数来检查文件的最后修改时间.
在目录中有一个mylog.txt.1,mylog.txt.2和mylog.txt.3等.当我使用ll命令在linux中列出目录时,我可以看到mylog.txt.1和mylog.txt. 5月4日修改了2,mylog.txt.3于5月3日修改.
但是当程序检查这些文件时,它总是返回第3个.以下是我正在使用的代码.
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的所有不同变体,即st_mtime和st_atime,但它们都返回第3个.
感谢您的任何帮助,您可以提供.