Получить время последнего изменения файла в Linux

Я работаю над программой 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 мая.

Спасибо за любую помощь.

13
задан Nick Zuber 8 January 2017 в 02:42
поделиться