Книга: Разработка приложений в среде Linux. Второе издание
11.3.6. Изменение временных меток файла
11.3.6. Изменение временных меток файла
Владелец файла может изменять mtime и atime файла на любое желаемое значение. Это делает такие метки бесполезными для целей аудита, но позволяет инструментам архивирования вроде tar
и cpio
сбрасывать временные метки файлов в то значение, когда они были архивированы. Метка ctime изменяется, когда обновляются mtime и atime, поэтому tar
и cpio
не могут восстановить их.
Существуют два способа изменения этих меток: utime()
и utimes()
. utime()
появилась в System V, после чего была адаптирована POSIX, в то время как utimes()
пришла из BSD. Обе функции эквивалентны; они отличаются только способом, каким указываются новые временные метки.
#include <utime.h>
int utime(const char *pathname, struct utimbuf *buf);
#include <sys/time.h>
int utimes(const char *pathname, struct timeval *tvp);
Версия POSIX, utime()
, принимает struct utimbuf
, которая определена в <utime.h>
, как показано ниже.
struct utimbuf {
из BSD вместо этого передает новое значение
time_t асtime;
time_t modtime;
};
utimes()atime
и mtime
через struct timeval
, которая определена в <sys/time.h>
.
struct timeval {
long tv_sec;
long tv_usec;
};
Элемент tv_sec
содержит новое значение atime;tv_usec
содержит новое значение mtime
для utimes()
.
Если каждой из функций вторым параметром передать NULL
, то обе временные метки должны быть установлены в текущее время. Новые значения atime
и mtime
устанавливаются в секундах, прошедших с начала эры (так же, как значение, возвращаемое time()
), как определено в главе 18.
- 11.3. Запрос и изменение информации inode
- 5.8.2. Смена владельца файла
- Эффективная работа с временными файлами сортировки
- Безопасность временных таблиц
- Единое имя файла параметров InterBase
- Параметры конфигурационного файла InterBase
- 13. Зарабатываем на своих файлах: файлообменники, загружаеми получаем процент за скачивание
- Листинг 15.11. Код для загрузки файла с Web-сервера
- Создание и открытие файла
- Управление файлами занятий
- Добавление, изменение и удаление элементов списка
- Добавление, изменение и удаление столбцов списка