Получите наносекундные точные поля atime, mtime, ctime для файла (stat?)
некоторые файловые системы (например, ext4 и JFS) предлагают наносекундное разрешение полей atime/mtime. Как я могу читать поля NS-разрешения? The stat
syscall возвращает time_t
что является вторым разрешением.
1 ответов
время второго разрешения находится в полях:
time_t st_atime; /* time of last access */
time_t st_mtime; /* time of last modification */
time_t st_ctime; /* time of last status change */
но раздел "Примечания" человека http://www.kernel.org/doc/man-pages/online/pages/man2/stat.2.html говорит:
начиная с ядра 2.5.48, структура stat поддерживает наносекундное разрешение для трех полей временных меток файлов. Glibc предоставляет наносекундный компонент каждого поле, используя имена формы st_atim.tv_nsec если _BSD_SOURCE или Функция _SVID_SOURCE тестовый макрос определен. Эти поля указаны в В POSIX.1-2008, и, начиная с версии 2.12, glibc также предоставляет эти поля имена, если _POSIX_C_SOURCE определен со значением 200809L или больше, или _XOPEN_SOURCE определяется со значением 700 или больше. Если ни один из вышеупомянутые макросы определены, затем наносекундные значения отображаются с помощью имена формы st_atimensec.
Так, части nsec времен в тот же" struct stat": (/usr/include/asm/stat.h)
unsigned long st_atime_nsec;
unsigned int st_mtime_nsec;
unsigned long st_ctime_nsec;
#define STAT_HAVE_NSEC 1