时间系统一般在程序中有以下几个层次:
1. 绝对时间
2. 本机系统时间
3. 本进程运行时间
4. 用户自定义的时间(差分系统时间)
根据不同的精度需求一般又分为:
1. 日历时间
2. 高精度时间
根据场景不同,又可分为:
1. 单系统,单线程
2. 单系统,多线程(多进程)
3. 跨系统,多线程(多进程)
linux系统与windows系统又略有不同,这里总结下最近对时间系统的理解。
日历时间,往往以年,月,日,时,分,秒的格式出现,这是对精度要求不高的时间需求。
在windows API中,获取时间的函数:
CTime::GetCurrentTime();
GetLocalTime(&st);
linux下,用time_t数据类型来保存,是自1970年1月1日00:00:00以来国际标准时间所经过的描述累计值。
time_t 一般是一个long型来表示,单位是秒
而struct tm是一个结果 以年,月,日,时,分,秒等表示
相关函数: cti

本文探讨了程序中不同层次的时间表示,包括绝对时间、系统时间、进程时间及用户自定义时间,并详细分析了Windows和Linux下的高精度时间获取函数。介绍了ctime、gmtime、localtime、mktime等函数的用途和线程安全性,同时讨论了clock()和times()函数在多线程环境下的应用。文章还提到了时间表示的溢出问题及其解决方案。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



