Puedes hacerlo con una estructura stat a partir de leer la entrada de directorio que corresponda al fichero que quieres analizar.
Te pongo un esbozo en C:
#include <stdio.h>
#include <stdlib.h>
#include <string.h> // para la ruta
#include <dirent.h> // para la struct dirent
#include <sys/stat.h> // para la struct stat
#define TAM 256 // macro TAM de la ruta
 
 
int main() {
    char * ruta 
= malloc(TAM
*sizeof(char));     strncpy(ruta
,"Aqui_la_ruta_que_quieras",TAM
);     struct dirent *entrada;
    struct stat status;
    DIR * dir = opendir(ruta); // abrimos el directorio
    if (!dir
) exit(1); // comprobamos si lo pudimos abrir     else {
        chdir(ruta);
        while ( (entrada=readdir(dir)) != NULL ) { // leemos entradas de directorio hasta que se devuelva puntero a NULL
            if ( ( strcmp(entrada
->d_name
, ".") == 0 ) ||                  ( strcmp(entrada
->d_name
, "..") == 0 ) )                  continue; // Saltamos las entradas de directorio actual y directorio raíz
            if (stat(entrada->d_name,&status) == 0) // cargamos la estructura stat (mejor usar lstat() para symbolic links)
                puts(entrada
->d_name
); // mostramos el nombre de la entrada                 puts((char *)ctime(&status.
st_mtime)); // cogemos la fecha de modificación          }
    }
}
 
Ahí te dejo el código medio comentado. Modifícalo a tus necesidades 

Bueno, el código lee las entradas de un directorio y posteriormente lista el nombre de cada entrada junto a su última fecha de modificación (m_time de la struct stat).