学习C语言,我试图对stat()
返回的atime/mtime属性和nsec精确值的变量类型和大小进行直观的比较。
我在一个文件上运行stat()
,希望从返回的stat结构中获得mtime和mtime nsec值,然后将这些值存储在单独的变量中(然后我希望将这些变量传递给utimes()
……说来话长!)。
根据http://www.kernel.org/doc/man-pages/online/pages/man2/stat.2.html#NOTES,我可以根据不同的操作系统/构建条件从st_mtim.tv_nsec
或st_mtimensec
获取该值。在我的实际程序中,我将检查两者,并使用设置的任何一个,或者只是后退到st_mtime
的正常秒精度
为了存储由st_mtime
返回的普通时间戳,我需要声明什么类型和大小的变量
要从st_mtim.tv_nsec
或st_mtimensec
存储nsec值,我需要声明什么变量类型和大小
这些是小数吗,包括时间的整秒数?或者他们只是在时间上返回nsec部分?
我需要根据我的系统架构为nsecs声明不同的变量大小吗?
最后,使用printf()
输出这些变量需要哪些转换说明符
干杯,B
发布于 2012-05-23 00:37:12
st_mtime
应该是一个time_t
.tv_nsec
,类型只是nanoseconds.long
会返回的编号一样,你需要l
;对于time_t
,它没有明确定义,AFAIK。发布于 2012-05-23 01:48:38
st_mtim.tv_nsec
始终在0,999999999范围内。您需要从tv_sec
获取秒数。理论上,您可以将秒数乘以1000000000,并将它们存储在一个64位的值中,但它将在几百年左右的时间内溢出。
https://stackoverflow.com/questions/10711801
复制相似问题