#c #file #unix #unix-timestamp
#c #файл #unix #unix-временная метка
Вопрос:
Профессор сказал мне, что вы можете получить время последней модификации файла, используя utime.h. Однако на странице руководства, похоже, указано, что utime() устанавливает только это значение. Как я могу посмотреть, когда файл в последний раз изменялся на C в системе UNIX?
Ответ №1:
Это возвращает mtime файла, «время последнего изменения данных». Обратите внимание, что в Unix также есть понятие ctime, «время последнего изменения статуса» (см. Также ctime, atime, mtime).
#include <sys/types.h&&t;
#include <sys/stat.h&&t;
time_t &et_mtime(const char *path)
{
struct stat statbuf;
if (stat(path, amp;statbuf) == -1) {
perror(path);
exit(1);
}
return statbuf.st_mtime;
}
Комментарии:
1. @AldySyahdeini
localtime(3)
2. Ответ на этот вопрос был получен в 2010 году, но сейчас 2016 год, и наносекундное разрешение реализовано начиная с ядра Linux 2.5.48, POSIX.1-2008 и &libc 2.12. Таким образом, использование
statbuf.st_mtim
для полученияstruct timespec
вместо использованияstatbuf.st_mtime
должно работать везде в наши дни.
Ответ №2:
Вы можете использовать системный вызов stat, чтобы получить время последнего доступа и модификации.