某些文件系统(例如ext4和JFS)提供纳秒分辨率的atime / mtime字段。如何读取ns分辨率字段? stat
syscall返回time_t
这是第二个分辨率。
答案 0 :(得分:11)
第二个分辨率时间在字段中:
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