gpt4 book ai didi

C Linux stat() 以纳秒精度获取 atime/mtime

转载 作者:可可西里 更新时间:2023-11-01 11:50:11 25 4
gpt4 key购买 nike

学习 C 并且我正在尝试对 stat() 为 atime/mtime 属性和纳秒精度值返回的变量类型和大小进行直观比较。

我在文件上运行 stat() 并希望从返回的 stat 结构中获取 mtime 和 mtime nsec 值,然后将这些值存储在单独的变量中(然后我想传递到 utimes()...长话短说!)。
根据http://www.kernel.org/doc/man-pages/online/pages/man2/stat.2.html#NOTES我可以根据各种操作系统/构建条件从 st_mtim.tv_nsecst_mtimensec 获取值。在我的实际程序中,我将检查两者并使用设置的任何一个,或者只是回退到 st_mtime

的正常秒精度

为了存储 st_mtime 返回的正常时间戳,我需要声明什么变量类型和大小?

我需要声明什么变量类型和大小来存储来自 st_mtim.tv_nsecst_mtimensec 的 nsec 值?
这些是小数,包括时间的整秒数吗?或者他们只是返回时间的纳秒部分?

我是否需要根据我的系统架构为 nsec 声明不同的变量大小?

最后,使用 printf() 输出这些变量需要哪些转换说明符?

干杯,B

最佳答案

  1. st_mtime应该是 time_t .
  2. 根据 POSIX <time.h> , tv_nsec 的类型只是long .
  3. st_mtim.tv_nsec 等字段将返回纳秒数。
  4. 对于 long , 你需要 l ;对于 time_t ,它没有明确定义,AFAIK。

关于C Linux stat() 以纳秒精度获取 atime/mtime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10711801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com