Não: você pode definir mtime (tempo de modificação) e atime (tempo de acesso) para timestamps arbitrários (dentro dos limites do tipo de dados time_t , incluindo datas no futuro . Depois de fazer isso, ctime será o tempo atual .
A função utimes (que atualiza mtime e atime ) aceita um par de timeval estruturas, que combinam time_t (segundos) e microssegundos, aumentando potencialmente a resolução, mas não se limitando a tempos no passado.