当前位置: 首页 > 面试题库 >

获取文件的纳秒精度atime,mtime,ctime字段(状态?)

杨飞语
2023-03-14
问题内容

一些文件系统(例如ext4和JFS)提供atime /
mtime字段的纳秒分辨率。如何读取ns分辨率字段?该stat系统调用返回time_t其为第二分辨率。


问题答案:

第二解析时间在以下字段中:

           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的
“ NOTES”部分说:

从内核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


 类似资料:
  • 问题内容: 如何使用Go获取文件的ctime,mtime,atime并进行更改? 在Go 1.1.2中,* os.Stat只能获取mtime * os.Chtimes可以更改mtime和atime,而不能更改ctime。 问题答案: 的Linux 时间 ctime是索引节点或文件更改时间。更改文件属性(例如更改所有者,更改权限或将文件移至其他文件系统)时,ctime会更新,但在修改文件时也会更新。

  • 问题内容: 当我使用读取Java文件的时,返回值被截断为整秒。我知道这可以在其他系统上获得毫秒级的mtimes,所以我的可能有什么不同? 这是一个完整的独立测试,可以编译并运行: 输出为(带有我的特定测试文件),而显示: 我希望Java输出是。 我在ext4的Linux上运行。我同时尝试了openjdk 1.7和Oracle jdk 1.8。 问题答案: 通过此提交,在Java 8中添加了在* n

  • Cassandra表具有数据类型列,那么如何查看类型的纳秒值? timeuuid: 如何将此timeuuid转换为纳秒级需要一个select语句,如下所示:

  • 本文向大家介绍nodejs如何高精度计时(纳秒)?相关面试题,主要包含被问及nodejs如何高精度计时(纳秒)?时的应答技巧和注意事项,需要的朋友参考一下 const start = process.hrtime.bigint(); // 191051479007711n setTimeout(() => { const end = process.hrtime.bigint(); // 1910

  • 2015-05-09 00:10:23.999750900//后9位表示纳秒 当通过模式解析时 YYYY-MM-DD HH:MM:SS.SSSSSSS//9“s”符号 null null 有没有其他方法可以通过只向标准实现提供一个模式来获得正确的解决方案,而不需要任何其他代码修改或字符串操作?

  • 问题内容: 根据java.time文档,java.time应该能够显示具有纳秒精度的LocalDateTime或LocalTime,但是当我运行并打印出来时,它仅显示3位数字而不是9位数字。 像这样: 有没有办法获得更高的精度? 问题答案: 我假设您只是在使用,在这种情况下,文档显示为: 所使用的格式将是最短的格式,用于输出被省略部分隐含为零的时间的完整值。 如果您希望显示其他数字(即使它们为零)