Я работаю над программой C, где мне нужно получить время последнего изменения файла. файл. Что делает программа, так это функция, просматривающая каждый файл в каталоге, и когда определенный файл (s )найден, она вызывает другую функцию, чтобы проверить время последнего изменения файла.
Внутри каталога есть mylog.txt.1
, mylog.txt.2
и mylog.txt.3
и т. д. Когда я перечисляю каталог в Linux с помощью команды ll, я вижу, что mylog.txt.1
и mylog.txt.2
были изменены 4 мая. и mylog.txt.3
был изменен 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 мая.
Спасибо за любую помощь.