一些文件系统(例如 ext4 和 JFS)提供 atime/mtime 字段的纳秒级分辨率。如何读取 ns-resolution 字段?系统stat
调用返回time_t
第二个分辨率。
问问题
5059 次
1 回答
12
第二解决时间在以下字段中:
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 */
但是 man http://www.kernel.org/doc/man-pages/online/pages/man2/stat.2.html的“注释”部分说:
从内核 2.5.48 开始,stat 结构支持三个文件时间戳字段的纳秒分辨率。如果定义了 _BSD_SOURCE 或 _SVID_SOURCE 功能测试宏,Glibc 使用 st_atim.tv_nsec 形式的名称公开每个字段的纳秒分量。这些字段在 POSIX.1-2008 中指定,从 2.12 版开始,如果 _POSIX_C_SOURCE 定义为 200809L 或更大,或者 _XOPEN_SOURCE 定义为 700 或更大,glibc 也会公开这些字段名称。如果上述宏均未定义,则纳秒值将以 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
于 2011-08-26T14:22:47.980 回答